📄 pfm_yfkcl2.pas
字号:
unit pfm_yfkcl2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, ADODB, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls, Ado_DM, Buttons,
pvar_lib;
type
Tfm_yfkcl2 = class(TForm)
ADOQuery2: TADOQuery;
DataSource2: TDataSource;
ADOQuery3: TADOQuery;
DataSource3: TDataSource;
GroupBox4: TGroupBox;
DBGrid3: TDBGrid;
Panel1: TPanel;
GroupBox3: TGroupBox;
DBGrid2: TDBGrid;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
BitnAdd: TBitBtn;
ADOQuery2fkcause: TStringField;
ADOQuery2gysmc: TStringField;
ADOQuery2lsh: TIntegerField;
ADOQuery2yfkje: TBCDField;
ADOQuery2fkje: TBCDField;
ADOQuery2sqje: TFloatField;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure ADOQuery2CalcFields(DataSet: TDataSet);
procedure BitnAddClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fm_yfkcl2: Tfm_yfkcl2;
strYfkmx:TStringList;
strYfkcl:TStringList;
strJhdmx:TstringList;
implementation
uses pfm_yfkcl;
{$R *.DFM}
const
strSqlAll='select tb_yfkmx.fkcause,tb_yfkmx.lsh,isnull(tb_yfkmx.yfkje,0) as yfkje ,isnull((select sum(fkje) from tb_yfkcl where tb_yfkmx.lsh=tb_yfkcl.lsh group by tb_yfkcl.lsh), 0) as fkje from tb_yfkmx order by tb_yfkmx.lsh desc';
const
strSqlNotAll1='select tb_yfkmx.fkcause,tb_yfkmx.lsh,isnull(tb_yfkmx.yfkje,0) as yfkje ,isnull((select sum(fkje) from tb_yfkcl where tb_yfkmx.lsh=tb_yfkcl.lsh group by tb_yfkcl.lsh), 0) as fkje from tb_yfkmx';
strSqlNotAll2=' where yfkje>isnull((select sum(fkje) from tb_yfkcl where tb_yfkmx.lsh=tb_yfkcl.lsh group by tb_yfkcl.lsh), 0) order by tb_yfkmx.lsh desc';
procedure Tfm_yfkcl2.FormCreate(Sender: TObject);
var
i:integer;
begin
strYfkmx:=TStringList.Create;
strYfkcl:=TStringlist.Create;
strJhdmx:=TStringlist.create;
strYfkmx.Add('fkcause=应付款原因');
strYfkmx.Add('lsh=流水号');
strYfkmx.Add('yfkje=应付款金额');
strYfkmx.add('fkje=已付款金额');
strYfkmx.add('sqje=尚欠金额');
strYfkmx.add('gysmc=供应商代码');
strYfkmx.add('gysname=供应商名称');
strYfkcl.add('fkcause=付款原因');
strYfkcl.add('lsh=流水号');
strYfkcl.add('fkje=已付金额');
strYfkcl.add('fkrq=付款日期');
strYfkcl.add('fkfs=付款方式');
strYfkcl.add('djhm=单据号码');
strYfkcl.add('jsrm=经手人');
strYfkcl.add('shrm=审核人');
strJhdmx.add('sptxm=商品条形码');
strJhdmx.add('spbm=商品编码');
strJhdmx.add('jhnum=进货数量');
strJhdmx.add('jhdj=进货单价');
strjhdmx.add('spmc=商品名称');
adoQuery2.Open;
adoQuery3.open;
for i:=0 to dbgrid2.columns.count-1 do
begin
dbgrid2.columns[i].title.caption:=strYfkmx.values[dbgrid2.Columns[i].FieldName];
end;
for i:=0 to dbgrid3.columns.count-1 do
begin
dbgrid3.columns[i].title.caption:=strJhdmx.values[dbgrid3.Columns[i].FieldName];
end;
end;
procedure Tfm_yfkcl2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
strYfkmx.Free;
strYfkcl.free;
strJhdmx.Free;
action:=caFree;
end;
procedure Tfm_yfkcl2.RadioButton1Click(Sender: TObject);
begin
// adoquery2.close;
// adoquery
//所有的未付清的应付款项和已付款项
adoQuery2.Close;
adoQuery2.SQL.clear;
adoquery2.SQL.Add(strSqlNotAll1+strSqlNotAll2);
adoQuery2.open;
// for i:=0 to dbgrid2.columns.count-1 do
// begin
// dbgrid2.columns[i].title.caption:=strYfkmx.values[dbgrid2.Columns[i].FieldName];
// end;
end;
procedure Tfm_yfkcl2.RadioButton2Click(Sender: TObject);
begin
adoQuery2.Close;
adoQuery2.SQL.clear;
adoquery2.SQL.Add(strSqlAll);
adoQuery2.open;
end;
procedure Tfm_yfkcl2.ADOQuery2CalcFields(DataSet: TDataSet);
begin
adoquery2.FieldByName('sqje').asfloat:=adoquery2.fieldbyname('fkje').asfloat-adoquery2.fieldbyname('yfkje').asfloat;
end;
procedure Tfm_yfkcl2.BitnAddClick(Sender: TObject);
begin
fm_yfkcl:=tfm_yfkcl.create(application);
fm_yfkcl.Edit10.Text:=adoquery2.fieldbyname('lsh').asstring;
//流水号
fm_yfkcl.edit3.text:=adoquery2.fieldbyname('yfkje').asstring;
//总计金额
fm_yfkcl.edit2.text:=adoquery2.fieldbyname('fkje').asstring;
//已付金额
fm_yfkcl.edit4.text:=floattostr(-adoquery2.fieldbyname('sqje').asfloat);
//尚欠金额
fm_yfkcl.edit1.text:=adoquery2.fieldbyname('gysmc').asstring;
//供应商名称
//fm_yfkcl.edit2.text:=edit2.text;
AddOptRecord('应付款处理,流水号'+fm_yfkcl.Edit10.Text);
fm_yfkcl.showmodal;
fm_yfkcl.free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -