📄 p_fk.pas
字号:
unit p_fk;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,p_mc, StdCtrls, Grids, DBGrids, SUIButton, SUIEdit, Buttons,
ComCtrls;
type
Tf_fk = class(TF_mc)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
DBGrid1: TDBGrid;
ckdh: TsuiCheckBox;
khm: TsuiCheckBox;
eckdh: TsuiEdit;
ekhm: TsuiEdit;
BitBtn1: TBitBtn;
DBGrid2: TDBGrid;
rq: TsuiCheckBox;
dt1: TDateTimePicker;
dt2: TDateTimePicker;
Label1: TLabel;
BitBtn2: TBitBtn;
Label2: TLabel;
zjje: TsuiEdit;
Label3: TLabel;
qkje: TsuiEdit;
Label4: TLabel;
fkje: TsuiEdit;
b_fk: TBitBtn;
mje: TsuiEdit;
Label5: TLabel;
procedure ckdhClick(Sender: TObject);
procedure khmClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure rqClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure fkjeKeyPress(Sender: TObject; var Key: Char);
procedure b_fkClick(Sender: TObject);
procedure mjeKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
f_fk: Tf_fk;
implementation
uses p_dm,db;
{$R *.dfm}
procedure Tf_fk.ckdhClick(Sender: TObject);
begin
inherited;
if ckdh.Checked then
begin
eckdh.Enabled:=true;
eckdh.SetFocus;
end
else eckdh.Enabled:=false;
end;
procedure Tf_fk.khmClick(Sender: TObject);
begin
inherited;
if khm.Checked then
begin
ekhm.Enabled:=true;
ekhm.SetFocus;
end else ekhm.Enabled:=false;
end;
procedure Tf_fk.BitBtn1Click(Sender: TObject);
begin
inherited;
with dm do
begin
query.SQL.Clear;
query.SQL.Add('select * from fk_st,kh_info where fk_st.khh=kh_info.khh and cklx like :cklx');
query.Parameters.ParamValues['cklx']:='出库';
//query.Parameters.ParamValues['ddh']:='ck'+'%';
//query.Parameters.ParamValues['jz']:='F';
if ckdh.Checked then
begin
query.SQL.Add(' and ddh like :ckdh');
query.Parameters.ParamValues['ckdh']:=trim(eckdh.Text)+'%';
end;
if khm.Checked then
begin
query.SQL.Add(' and khm like :khm');
query.Parameters.ParamValues['khm']:=trim(ekhm.Text)+'%';
end;
if rq.Checked then
begin
query.SQL.Add(' and ddrq>=:ddrq1 and ddrq<=:ddrq2');
query.Parameters.ParamValues['ddrq1']:=formatdatetime('yyyy.mm.dd',dt1.Date);
query.Parameters.ParamValues['ddrq2']:=formatdatetime('yyyy.mm.dd',dt2.Date);
end;
query.Open;
dbgrid1.OnCellClick(dbgrid1.Columns.Items[dbgrid1.SelectedRows.count]);
end; //with .. end
end;
procedure Tf_fk.BitBtn2Click(Sender: TObject);
begin
inherited;
with dm do
begin
query.SQL.Clear;
query.SQL.Add('select * from fk_st,kh_info where fk_st.khh=kh_info.khh and cklx like :cklx');
query.Parameters.ParamValues['cklx']:='出库';
//query.SQL.Add('select * from crkd_info,kh_info where crkd_info.khh=kh_info.khh and ddh like :ddh');
//query.Parameters.ParamValues['ddh']:='ck'+'%';
//query.Parameters.ParamValues['jz']:='F';
query.open;
dbgrid1.OnCellClick(dbgrid1.Columns.Items[dbgrid1.SelectedRows.count]);
end;
end;
procedure Tf_fk.rqClick(Sender: TObject);
begin
inherited;
if rq.Checked then
begin
dt1.Enabled:=true;
dt2.Enabled:=true;
end else
begin
dt1.Enabled:=false;
dt2.Enabled:=false;
end;
end;
procedure Tf_fk.DBGrid1CellClick(Column: TColumn);
begin
inherited;
with dm do
begin
if query.RecordCount=0 then
begin
t_ck.Close;
zjje.Text:='';
qkje.Text:='';
fkje.Enabled:=false;
b_fk.Enabled:=false;
exit;
end;
fkje.Enabled:=true;
b_fk.Enabled:=true;
zjje.Text:=query['zjje'];
//qkje.Text:=floattostr(query['zjje']-query['yfje']-query['mje']);
qkje.Text:=query['qk'];
fkje.Text:='0';
mje.Text:=query['mje'];
if t_ck.Active=false then t_ck.Open;
t_ck.Filter:='ddh='''+query['ddh']+'''and cklx=''出库''';
t_ck.Filtered:=true;
t_ck.Requery;
end;
end;
procedure Tf_fk.FormCreate(Sender: TObject);
begin
inherited;
dt1.Date:=now;
dt2.Date:=now;
with dm do
begin
query.SQL.Clear;
query.SQL.Add('select * from fk_st,kh_info where fk_st.khh=kh_info.khh and cklx like :cklx');
query.Parameters.ParamValues['cklx']:='出库';
//query.SQL.Add('select * from crkd_info,kh_info where crkd_info.khh=kh_info.khh and ddh like :ddh');
//query.Parameters.ParamValues['ddh']:='ck'+'%';
//query.Parameters.ParamValues['jz']:='F';
query.open;
dbgrid1.OnCellClick(dbgrid1.Columns.Items[dbgrid1.SelectedRows.count]);
end;
end;
procedure Tf_fk.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
dm.Query.Close;
end;
procedure Tf_fk.fkjeKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if not(key in['0'..'9',#8,'.','-']) then
begin
key:=#0;
end;
end;
procedure Tf_fk.b_fkClick(Sender: TObject);
var
je,zl:real;
book:tbookmark;
begin
inherited;
if mje.Text='' then mje.Text:='0';
if fkje.Text='' then fkje.Text:='0';
try
{ if strtofloat(fkje.Text)=0 then
begin
application.MessageBox('付款金额不能为零!','提示',mb_ok+mb_iconwarning);
exit;
end; }
strtofloat(fkje.Text);
if strtofloat(mje.Text)>dm.query['zjje'] then
begin
application.MessageBox('免金额不能大于总计金额!','提示',mb_ok+mb_iconwarning);
exit;
end;
except
application.MessageBox('付款金额或免金额数据不合法!','提示',mb_ok+mb_iconwarning);
exit;
end; //try .. end
with dm do
begin
book:=query.GetBookmark;
zl:=(strtofloat(fkje.Text)+query['yfje']+strtofloat(mje.Text))-query['zjje'];
if zl>0 then
je:=query['zjje']-query['yfje']-strtofloat(mje.Text)
else
je:=strtofloat(fkje.Text);
//==========================
query1.SQL.Clear;
query1.SQL.Add('update crkd_info set yfje=yfje+:je');
query1.Parameters.ParamValues['je']:=je;
query1.SQL.Add(',mje=:mje ');
query1.Parameters.ParamValues['mje']:=mje.Text;
query1.SQL.Add('where ddh=:ddh');
query1.Parameters.ParamValues['ddh']:=query['ddh'];
query1.ExecSQL;
//======================================
if zl>=0 then
application.MessageBox(pchar('结帐成功!退款 '+floattostr(zl)+' !'),'信息',mb_ok+mb_iconinformation)
else
application.MessageBox(pchar('付款成功!欠款 '+floattostr(abs(zl))+' !'),'信息',mb_ok+mb_iconinformation);
query.Requery;
query.GotoBookmark(book);
dbgrid1.OnCellClick(dbgrid1.Columns.Items[dbgrid1.SelectedRows.count]);
query.FreeBookmark(book);
end;
end;
procedure Tf_fk.mjeKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if not(key in['0'..'9',#8,'.']) then
begin
key:=#0;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -