📄 frmdxunit.pas
字号:
unit frmDXUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, frmBaseUnit, DB, StdCtrls, Buttons, ExtCtrls, ADODB,
wwdbdatetimepicker, Mask, wwdbedit, wwdblook, Wwdbdlg, Grids, Wwdbigrd,
Wwdbgrid;
type
TfrmDX = class(TfrmBase)
qryDX: TADOQuery;
qryDXDXDH: TStringField;
qryDXSAL_NO: TStringField;
qryDXDXDATE: TDateTimeField;
qryDXOS_NO: TStringField;
qryDXYQTY: TBCDField;
qryDXRate: TBCDField;
qryDXQTY: TBCDField;
Label1: TLabel;
wwDBEdit1: TwwDBEdit;
Label2: TLabel;
Label3: TLabel;
wwDBDateTimePicker1: TwwDBDateTimePicker;
Label4: TLabel;
wwDBLookupComboDlg1: TwwDBLookupComboDlg;
qrySO: TADOQuery;
qrySOoS_NO: TStringField;
qrySOCUS_NO: TStringField;
qrySOOS_DD: TDateTimeField;
qrySOSAL_NO: TStringField;
Label5: TLabel;
wwDBLookupComboDlg2: TwwDBLookupComboDlg;
qrySAL_NAME: TADOQuery;
qrySAL_NAMESAL_NO: TStringField;
qrySAL_NAMENAME: TStringField;
Label6: TLabel;
Label7: TLabel;
wwDBEdit3: TwwDBEdit;
Label8: TLabel;
wwDBEdit4: TwwDBEdit;
Label9: TLabel;
wwDBEdit5: TwwDBEdit;
wwDBEdit2: TwwDBEdit;
wwDBGrid1: TwwDBGrid;
qryDXSAL_NAME: TStringField;
qryCUS_NO: TADOQuery;
qryCUS_NOcus_no: TStringField;
qryCUS_NOname: TStringField;
Label10: TLabel;
ww1: TwwDBLookupComboDlg;
qrySAL_NAME2: TADOQuery;
StringField1: TStringField;
StringField2: TStringField;
ww3: TwwDBLookupComboDlg;
Label11: TLabel;
ww4: TwwDBLookupComboDlg;
Label12: TLabel;
qrySO2: TADOQuery;
StringField3: TStringField;
DateTimeField1: TDateTimeField;
StringField4: TStringField;
StringField5: TStringField;
ww5: TwwDBLookupComboDlg;
ww6: TwwDBLookupComboDlg;
Button1: TButton;
ww2: TwwDBLookupComboDlg;
qryDXQTY1: TBCDField;
qryDXQTY2: TBCDField;
qryDXQTY3: TBCDField;
qryDXQTY4: TBCDField;
Label13: TLabel;
wwDBEdit6: TwwDBEdit;
Label14: TLabel;
wwDBEdit7: TwwDBEdit;
Label15: TLabel;
wwDBEdit8: TwwDBEdit;
Label16: TLabel;
wwDBEdit9: TwwDBEdit;
procedure btn_InsertClick(Sender: TObject);
procedure wwDBLookupComboDlg1Change(Sender: TObject);
procedure btn_EditClick(Sender: TObject);
procedure btn_DeleteClick(Sender: TObject);
procedure btn_PrintClick(Sender: TObject);
procedure btn_SaveClick(Sender: TObject);
procedure btn_CloseClick(Sender: TObject);
procedure btn_SearchClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure wwDBEdit1Enter(Sender: TObject);
procedure wwDBEdit2Exit(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
vFORMDX:TFORM;
{ Public declarations }
end;
var
frmDX: TfrmDX;
implementation
uses dmUnit;
{$R *.dfm}
procedure TfrmDX.btn_InsertClick(Sender: TObject);
begin
inherited;
if qryDX.State in [dsInsert] then exit;
qryDX.Append;
qryDXDXDate.AsString:=FormatDatetime('YYYY-MM-DD',now);
wwDBEdit1.SetFocus;
end;
procedure TfrmDX.wwDBLookupComboDlg1Change(Sender: TObject);
var
q1,q2,q3,q4:double; //
sql:string;
begin
inherited;
if qryDX.State in [dsBrowse] then exit;
if qryDX.FieldByName('OS_NO').AsString='' then exit;
qryDX.FieldByName('SAL_NO').AsString:=qrySO.FieldByname('SAL_NO').AsString;
sql:='select A.OS_NO,QTY=sum(isnull(A.QTY,0)*isnull(A.UP,0)) from TF_POS A '
+' where A.OS_NO='''+qryDXOS_NO.asstring+''' group by A.OS_NO ';
dm.getQuery(sql);
q1:=dm.qryQuery.Fields[1].AsFloat; // 订单金额
qryDX.FieldByName('qty1').AsFloat:=q1;
sql:='select A.OS_NO,QTY=sum(isnull(A.QTY_PRE,0)*isnull(A.UP,0)) from TF_POS A '
+' where A.OS_NO='''+qryDXOS_NO.asstring+''' group by A.OS_NO ';
dm.getQuery(sql);
q2:=dm.qryQuery.Fields[1].AsFloat; //订单退回金额
qryDX.FieldByName('qty2').AsFloat:=q2;
sql:='select A.OS_NO,QTY=sum((isnull(A.QTY,0)-isnull(A.qty_PRE,0))*isnull(B.A,0)) '
+' from TF_POS A,TF_POS_Z B where A.OS_NO=B.OS_NO AND A.EST_ITM=B.ITM '
+' and A.OS_NO='''+qryDXOS_NO.asstring+''' group by A.OS_NO ';
dm.getQuery(sql);
q3:=dm.qryQuery.Fields[1].AsFloat; //底价金额
qryDX.FieldByName('qty3').AsFloat:=q3;
sql:='select OS_NO,qty=sum(isnull(qty,0)) from fyList where '
+' OS_NO='''+qryDXOS_NO.AsString+''' group by os_no ';
dm.getQuery(sql);
q4:=dm.qryQuery.Fields[1].AsFloat; //费用合计
qryDX.FieldByName('qty4').AsFloat:=q4;
qryDXYQTY.AsFloat:=q1-q2-q3-q4;
end;
procedure TfrmDX.btn_EditClick(Sender: TObject);
begin
inherited;
qryDX.Edit;
end;
procedure TfrmDX.btn_DeleteClick(Sender: TObject);
begin
inherited;
qryDX.Delete;
end;
procedure TfrmDX.btn_PrintClick(Sender: TObject);
begin
inherited;
wwDBGrid1.ExportOptions.FileName:=fSave.FileName+'.csv';
wwDBGrid1.ExportOptions.Save;
end;
procedure TfrmDX.btn_SaveClick(Sender: TObject);
begin
inherited;
if qryDX.State in [dsEdit,dsInsert] then qryDX.Post;
end;
procedure TfrmDX.btn_CloseClick(Sender: TObject);
begin
inherited;
close;
end;
procedure TfrmDX.btn_SearchClick(Sender: TObject);
begin
inherited;
dm.getSearch(vFORMDX,qryDX,'select * from dx where 1=1 ','dxDate','dxDate','兑现表','DXDATE','兑现日期','OS_NO','受订单号');
end;
procedure TfrmDX.FormShow(Sender: TObject);
begin
inherited;
qryDX.Active:=True;
qrySO.Active:=True;
qrySAL_NAME.Active:=True;
qrySO2.Active:=True;
qrySAL_NAME2.Active:=True;
qryCUS_NO.Active:=True;
end;
procedure TfrmDX.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
action:=caFree;
frmDX:=nil;
end;
procedure TfrmDX.wwDBEdit1Enter(Sender: TObject);
begin
inherited;
if ((qryDX.State in [dsInsert]) and (qryDX.FieldByName('DXDH').AsString='')) then
begin
qryDX.FieldByname('DXDH').asstring:=dm.GetAutoNo('DX','DXDH','DX'+FormatDateTIME('YYMMDD',now));
end;
end;
procedure TfrmDX.wwDBEdit2Exit(Sender: TObject);
begin
inherited;
if qryDX.State in [dsBrowse] then exit;
if (qryDX.FieldByName('Rate').AsString<>'') and (qryDX.FieldByName('YQTY').AsString<>'') then
qryDXQTY.AsFloat:=(qryDXRate.AsFloat*qryDXYQTY.AsFloat)/100.00;
end;
procedure TfrmDX.Button1Click(Sender: TObject);
var
sql:string;
begin
inherited;
sql:='select * from dx where 1=1 ';
if ww1.Text<>'' then
sql:=sql+' and os_no in (select os_no from mf_pos where CUS_NO>='''+ww1.Text+''') ';
if ww2.Text<>'' then
sql:=sql+' and os_no in (select os_no from mf_pos where CUS_NO<='''+ww2.Text+''') ';
if ww3.Text<>'' then
sql:=sql+' and SAL_NO>='''+ww3.Text+'''';
if ww4.Text<>'' then
sql:=sql+' and SAL_NO<='''+ww4.Text+'''';
if ww5.Text<>'' then
sql:=sql+' and OS_NO>='''+ww5.Text+'''';
if ww6.Text<>'' then
sql:=sql+' and OS_no<='''+ww6.Text+'''';
qryDX.Active:=False;
qryDX.SQL.Clear;
qryDX.SQL.Add(sql);
qryDX.Active:=True;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -