D7wmguihua/样品/U_OrderSubFH.pas
DESKTOP-E401PHE\Administrator b4b5840f18 1
2025-01-18 16:22:10 +08:00

468 lines
14 KiB
ObjectPascal
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_OrderSubFH;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, ADODB, DBClient,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, StdCtrls, ComCtrls, ExtCtrls,
ToolWin, cxCalendar, cxButtonEdit, cxCheckBox;
type
TfrmOrderSubFH = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBAdd: TToolButton;
TBDel: TToolButton;
TBExport: TToolButton;
TBPrint: TToolButton;
TBClose: TToolButton;
TBTP: TToolButton;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
OrderNoM: TEdit;
PRTCodeNameM: TEdit;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1OrderNo: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1PRTSpec: TcxGridDBColumn;
v1PRTColor: TcxGridDBColumn;
v1PRTMF: TcxGridDBColumn;
v1PRTKZ: TcxGridDBColumn;
v1PRTOrderQty: TcxGridDBColumn;
v1OrderUnit: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
cxGridPopupMenu1: TcxGridPopupMenu;
DataSource1: TDataSource;
Order_Main: TClientDataSet;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
v1Column3: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBRafreshClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure PRTCodeNameMChange(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure v1Column5PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure TBTPClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure v1Column9PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
function DelData():Boolean;
procedure OneKeyPostHD(Tv1:TcxGridDBTableView;CDS_Sub:TClientDataSet);
public
{ Public declarations }
end;
var
frmOrderSubFH: TfrmOrderSubFH;
implementation
uses
U_DataLink,U_Fun,U_ProductOrderList,U_ZDYHelp;
{$R *.dfm}
procedure TfrmOrderSubFH.FormDestroy(Sender: TObject);
begin
frmOrderSubFH:=nil;
end;
procedure TfrmOrderSubFH.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmOrderSubFH.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmOrderSubFH.InitGrid();
var
fsj:String;
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add('exec Order_FHQryList :WSQl');
fsj:=' and OT.FHDate>='+QuotedStr(Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime)))
+' and OT.FHDate<'+QuotedStr(Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1)));
Parameters.ParamByName('WSQl').Value:=fsj;
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmOrderSubFH.FormShow(Sender: TObject);
begin
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>',Tv1,ʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7;
EndDate.DateTime:=SGetServerDate10(ADOQueryTemp);
InitGrid();
end;
procedure TfrmOrderSubFH.PRTCodeNameMChange(Sender: TObject);
begin
if ADOQueryMain.Active=False then Exit;
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
end;
procedure TfrmOrderSubFH.TBCloseClick(Sender: TObject);
begin
Close;
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>',Tv1,ʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmOrderSubFH.FormCreate(Sender: TObject);
begin
cxGrid1.Align:=alClient;
end;
procedure TfrmOrderSubFH.TBAddClick(Sender: TObject);
begin
try
frmProductOrderList:=TfrmProductOrderList.Create(Application);
with frmProductOrderList do
begin
FFInt:=1;
frmProductOrderList.TBAdd.Visible:=False;
frmProductOrderList.TBEdit.Visible:=False;
frmProductOrderList.TBDel.Visible:=False;
frmProductOrderList.TBExport.Visible:=False;
frmProductOrderList.TBPrint.Visible:=False;
frmProductOrderList.TBTP.Visible:=False;
frmProductOrderList.cxGrid2.Visible:=False;
frmProductOrderList.ToolButton1.Visible:=True;
frmProductOrderList.ToolButton2.Visible:=True;
frmProductOrderList.ToolButton3.Visible:=True;
if ShowModal=1 then
begin
with frmProductOrderList.Order_Main do
begin
frmProductOrderList.Order_Main.First;
while not Eof do
begin
if frmProductOrderList.Order_Main.FieldByName('SSel').AsBoolean=True then
begin
with Self.Order_Main do
begin
Append;
Self.Order_Main.FieldByName('SubId').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('SubId').AsString);
Self.Order_Main.FieldByName('OrderNoM').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('OrderNo').AsString);
Self.Order_Main.FieldByName('PRTCodeNameM').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('PRTCodeName').AsString);
Self.Order_Main.FieldByName('PRTSpec').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('PRTSpec').AsString);
Self.Order_Main.FieldByName('PRTMF').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('PRTColor').AsString);
Self.Order_Main.FieldByName('PRTKZ').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('PRTColor').AsString);
if Trim(frmProductOrderList.Order_Main.fieldbyname('PRTOrderQty').AsString)<>'' then
Self.Order_Main.FieldByName('PRTOrderQty').Value:=frmProductOrderList.Order_Main.fieldbyname('PRTOrderQty').AsFloat;
Self.Order_Main.FieldByName('OrderUnit').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('OrderUnit').AsString);
Self.Order_Main.FieldByName('SSel').Value:=1;
if Trim(frmProductOrderList.Order_Main.fieldbyname('PRTQty').AsString)<>'' then
Self.Order_Main.FieldByName('PRTQty').Value:=frmProductOrderList.Order_Main.fieldbyname('PRTQty').AsFloat;
if Trim(frmProductOrderList.Order_Main.fieldbyname('Qty1').AsString)<>'' then
Self.Order_Main.FieldByName('CQty1').Value:=frmProductOrderList.Order_Main.fieldbyname('Qty1').AsFloat;
Self.Order_Main.FieldByName('PRTUnit').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('PRTUnit').AsString);
end;
end;
frmProductOrderList.Order_Main.Next;
end;
end;
end;
end;
finally
frmProductOrderList.Free;
end;
end;
procedure TfrmOrderSubFH.v1Column5PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='CustomNoName';
flagname:='<27>ͻ<EFBFBD>';
if ShowModal=1 then
begin
Self.Order_Main.Edit;
Self.Order_Main.FieldByName('CustomNoName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
Self.Order_Main.FieldByName('CustomNo').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmOrderSubFH.TBTPClick(Sender: TObject);
var
FQty,FQty1,MaxNo:String;
begin
if Order_Main.IsEmpty then Exit;
if Order_Main.Locate('SSel',True,[])=false then
begin
Application.MessageBox(ѡ<CEB4><D1A1><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>','<27><>ʾ',0);
Exit;
end;
BegDate.SetFocus;
try
ADOQueryCmd.Connection.BeginTrans;
with Order_Main do
begin
First;
while not Eof do
begin
{if Trim(Order_Main.fieldbyname('FHQty').AsString)='' then
FQty:='0.0'
else
FQty:=Trim(Order_Main.fieldbyname('FHQty').AsString);
if Trim(Order_Main.fieldbyname('Qty1').AsString)='' then
FQty1:='0.0'
else
FQty1:=Trim(Order_Main.fieldbyname('Qty1').AsString); }
if Order_Main.FieldByName('SSel').AsBoolean=True then
begin
if Trim(Order_Main.fieldbyname('ToId').AsString)='' then
begin
if GetLSNo(ADOQueryCmd,maxno,'To','Order_Sub_To',4,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
end else
begin
maxno:=Trim(Order_Main.fieldbyname('ToId').AsString);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from Order_Sub_To where ToId='''+Trim(Order_Main.fieldbyname('ToId').AsString)+'''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(Order_Main.fieldbyname('ToId').AsString)='' then
Append
else
Edit;
FieldByName('ToId').Value:=Trim(maxno);
FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString);
SSetSaveDataCDSNew(ADOQueryCmd,Tv1,Order_Main,'Order_Sub_To',3);
Post;
end;
with Order_Main do
begin
Edit;
FieldByName('ToId').Value:=Trim(maxno);
Post;
end;
end;
Next;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ',0);
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmOrderSubFH.TBDelClick(Sender: TObject);
begin
if Order_Main.IsEmpty then Exit;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
if DelData() then
begin
//TBRafresh.Click;
//TBFind.Click;
Order_Main.Delete;
end;
end;
function TfrmOrderSubFH.DelData():Boolean;
begin
try
Result:=false;
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete Order_Sub_To where ToId='''+Trim(Order_Main.fieldbyname('ToId').AsString)+'''');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
Result:=True;
except
ADOQueryCmd.Connection.RollbackTrans;
Result:=False;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><ECB3A3>','<27><>ʾ',0);
end;
end;
procedure TfrmOrderSubFH.TBExportClick(Sender: TObject);
begin
if Order_Main.IsEmpty then Exit;
TcxGridToExcel('<27><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>',cxGrid1);
end;
procedure TfrmOrderSubFH.v1Column9PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='PriceUnit';
flagname:='<27>Ƽ۵<C6BC>λ';
if ShowModal=1 then
begin
Self.Order_Main.Edit;
Self.Order_Main.FieldByName('JJUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
//Self.Order_Main.FieldByName('CustomNo').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmOrderSubFH.ToolButton1Click(Sender: TObject);
begin
Order_Main.DisableControls;
with Order_Main do
begin
First;
while not Eof do
begin
Edit;
FieldByName('SSel').Value:=1;
Post;
Next;
end;
end;
Order_Main.EnableControls;
end;
procedure TfrmOrderSubFH.ToolButton2Click(Sender: TObject);
begin
Order_Main.DisableControls;
with Order_Main do
begin
First;
while not Eof do
begin
Edit;
FieldByName('SSel').Value:=0;
Post;
Next;
end;
end;
Order_Main.EnableControls;
end;
procedure TfrmOrderSubFH.OneKeyPostHD(Tv1:TcxGridDBTableView;CDS_Sub:TClientDataSet);
var
FValue,FFValue,FColumn,FFColumn:String;
begin
FColumn:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName;
FFColumn:=Tv1.Controller.FocusedColumn.Summary.GroupFormat;
FValue:=Trim(CDS_Sub.fieldbyname(FColumn).AsString);
if Trim(FFColumn)<>'' then
begin
FFValue:=Trim(CDS_Sub.fieldbyname(FFColumn).AsString);
end;
with CDS_Sub do
begin
DisableControls;
First;
while not Eof do
begin
Edit;
if CDS_Sub.FieldByName('Ssel').AsBoolean=True then
begin
if FValue='' then
begin
CDS_Sub.FieldByName(FColumn).Value:=null;
end else
begin
CDS_Sub.FieldByName(FColumn).Value:=FValue;
end;
if Trim(FFColumn)<>'' then
begin
if FFValue='' then
begin
CDS_Sub.FieldByName(FFColumn).Value:=null;
end else
begin
CDS_Sub.FieldByName(FFColumn).Value:=FFValue;
end;
end;
Post;
end;
Next;
end;
EnableControls;
end;
end;
procedure TfrmOrderSubFH.ToolButton3Click(Sender: TObject);
begin
if Order_Main.IsEmpty then Exit;
BegDate.SetFocus;
OneKeyPostHD(Tv1,Order_Main);
end;
end.