📄 pfm_yskcl2.pas
字号:
unit pfm_yskcl2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, ADODB, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls, ado_dm, Buttons,
pvar_lib;
type
Tfm_yskcl2 = class(TForm)
GroupBox1: TGroupBox;
GroupBox4: TGroupBox;
DBGrid3: TDBGrid;
ADOQuery2: TADOQuery;
DataSource2: TDataSource;
ADOQuery3: TADOQuery;
DataSource3: TDataSource;
ADOQuery2skcause: TStringField;
ADOQuery2lsh: TIntegerField;
ADOQuery2yskje: TBCDField;
ADOQuery2skje: TBCDField;
ADOQuery2sqje: TFloatField;
GroupBox3: TGroupBox;
DBGrid2: TDBGrid;
Panel1: TPanel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
ComboBox1: TComboBox;
Label1: TLabel;
BBtnYsk: TBitBtn;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DataSource4: TDataSource;
ADOQuery4: TADOQuery;
StringField1: TStringField;
IntegerField1: TIntegerField;
BCDField1: TBCDField;
BCDField2: TBCDField;
FloatField1: TFloatField;
ADOQuery2khmc: TStringField;
ADOQuery4gysmc: TStringField;
procedure FormCreate(Sender: TObject);
procedure ADOQuery2CalcFields(DataSet: TDataSet);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ComboBox1Change(Sender: TObject);
procedure BBtnYskClick(Sender: TObject);
procedure ADOQuery4CalcFields(DataSet: TDataSet);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fm_yskcl2: Tfm_yskcl2;
strYskmx:TStringList;
strsptuihuodmx:TStringList;
strpfdmx:TstringList;
implementation
uses pfm_yskcl0;
{$R *.DFM}
const
strSqlAll='select tb_yskmx.skcause,tb_yskmx.lsh,isnull(tb_yskmx.yskje,0) as yskje ,isnull((select sum(skje) from tb_yskcl where tb_yskmx.lsh=tb_yskcl.lsh group by tb_yskcl.lsh), 0) as skje from tb_yskmx order by tb_yskmx.lsh desc';
const
strSqlNotAll1='select tb_yskmx.skcause,tb_yskmx.lsh,isnull(tb_yskmx.yskje,0) as yskje ,isnull((select sum(skje) from tb_yskcl where tb_yskmx.lsh=tb_yskcl.lsh group by tb_yskcl.lsh), 0) as skje from tb_yskmx';
strSqlNotAll2=' where yskje>isnull((select sum(skje) from tb_yskcl where tb_yskmx.lsh=tb_yskcl.lsh group by tb_yskcl.lsh), 0) order by tb_yskmx.lsh desc';
procedure Tfm_yskcl2.FormCreate(Sender: TObject);
var
i:integer;
begin
strYskmx:=TStringList.Create;
strsptuihuodmx:=TStringlist.Create;
strpfdmx:=TStringlist.create;
strYskmx.Add('skcause=应收款原因');
strYskmx.Add('lsh=流水号');
strYskmx.Add('khmc=客户代码');
strYskmx.Add('gysmc=供应商代码');
strYskmx.Add('yskje=应收款金额');
strYskmx.add('skje=已收款金额');
strYskmx.add('sqje=未收金额');
strsptuihuodmx.add('spbm=商品编码');
strsptuihuodmx.add('sptxm=商品条形码');
strsptuihuodmx.add('spmc=商品名称');
strsptuihuodmx.add('spnum=商品数量');
strsptuihuodmx.add('spthdj=退货单价');
strsptuihuodmx.add('djhm=单据号码');
{strYskcl.add('skcause=收款原因');
strYskcl.add('lsh=流水号');
strYskcl.add('skje=已收金额');
strYskcl.add('skrq=收款日期');
strYskcl.add('skfs=收款方式');
strYskcl.add('djhm=单据号码');
strYskcl.add('jsrm=经手人');
strYskcl.add('shrm=审核人');
}
strpfdmx.add('sptxm=商品条形码');
strpfdmx.add('spbm=商品编码');
strpfdmx.add('spmc=商品名称');
strpfdmx.add('pfnum=批发数量');
strpfdmx.add('pfdj=批发单价');
strpfdmx.add('pfsl=批发税率(%)');
strpfdmx.add('yhl=折扣(%)');
strpfdmx.add('djhm=单据号码');
strpfdmx.add('hth=合同号');
combobox1.ItemIndex:=0;
adoQuery2.active:=true;
adoQuery3.active:=true;
for i:=0 to dbgrid2.columns.count-1 do
begin
dbgrid2.columns[i].title.caption:=strYskmx.values[dbgrid2.Columns[i].FieldName];
end;
for i:=0 to dbgrid3.columns.count-1 do
begin
dbgrid3.columns[i].title.caption:=strpfdmx.values[dbgrid3.Columns[i].FieldName];
end;
end;
procedure Tfm_yskcl2.ADOQuery2CalcFields(DataSet: TDataSet);
begin
adoquery2.FieldByName('sqje').asfloat:=adoquery2.fieldbyname('yskje').asfloat-adoquery2.fieldbyname('skje').asfloat;
end;
procedure Tfm_yskcl2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
strYskmx.Free;
strsptuihuodmx.free;
strpfdmx.Free;
action:=caFree;
end;
procedure Tfm_yskcl2.ComboBox1Change(Sender: TObject);
var
i:integer;
lshpara:TParameter;
begin
// adoquery2.Filter:='skcause='''+combobox1.Text+'''';
// adoquery2.filtered:=true;
if combobox1.Text='批发' then
begin
groupbox4.caption:='批发商品数量及单价';
{ adoquery3.active:=false;
adoquery3.SQL.Clear;
adoquery3.sql.Add('select spbm,sptxm,spmc,pfnum,pfdj,yhl,pfsl,djhm from tb_pfdmx,tb_spmc where tb_pfdmx.spbm=tb_spmc.spbm and lsh=:lsh');
adoquery3.Prepared;
adoquery3.Parameters.Clear;
lshpara:=adoquery3.Parameters.AddParameter();
lshpara.Name:='lsh'; }
adoquery1.active:=false;
adoquery4.Active:=false;
dbgrid3.DataSource:=datasource3;
dbgrid2.DataSource:=datasource2;
adoquery2.active:=true;
adoquery3.Active:=true;
for i:=0 to dbgrid2.columns.count-1 do
begin
dbgrid2.columns[i].title.caption:=strYskmx.values[dbgrid2.Columns[i].FieldName];
end;
for i:=0 to dbgrid3.columns.count-1 do
begin
dbgrid3.columns[i].title.caption:=strpfdmx.values[dbgrid3.Columns[i].FieldName];
end;
end
else
begin
groupbox4.caption:='退货商品数量及单价';
{ adoquery3.active:=false;
adoquery3.SQL.Clear;
adoquery3.sql.Add('select spbm,sptxm,spmc,spnum,spthdj,djhm from tb_sptuihuomx,tb_spmc where tb_sptuihuomx.spbm=tb_spmc.spbm and lsh=:lsh');
adoquery3.Prepared;
adoquery3.Parameters.Clear;
lshpara:=adoquery3.Parameters.AddParameter();
lshpara.Name:='lsh'; }
adoquery3.active:=false;
adoquery2.active:=false;
dbgrid3.DataSource:=datasource1;
dbgrid2.DataSource:=datasource4;
adoquery4.Active:=true;
adoquery1.Active:=true;
for i:=0 to dbgrid2.columns.count-1 do
begin
dbgrid2.columns[i].title.caption:=strYskmx.values[dbgrid2.Columns[i].FieldName];
end;
for i:=0 to dbgrid3.columns.count-1 do
begin
dbgrid3.columns[i].title.caption:=strsptuihuodmx.values[dbgrid3.Columns[i].FieldName];
end;
end;
end;
procedure Tfm_yskcl2.BBtnYskClick(Sender: TObject);
begin
if combobox1.text='批发' then
begin
fm_yskcl0:=tfm_yskcl0.create(application);
fm_yskcl0.Edit10.Text:=adoquery2.fieldbyname('lsh').asstring;
//流水号
fm_yskcl0.edit3.text:=adoquery2.fieldbyname('yskje').asstring;
//总计金额
fm_yskcl0.edit2.text:=adoquery2.fieldbyname('skje').asstring;
//已付金额
fm_yskcl0.edit4.text:=floattostr(adoquery2.fieldbyname('sqje').asfloat);
//尚欠金额
fm_yskcl0.edit1.text:=adoquery2.fieldbyname('khmc').asstring;
//供应商名称
//fm_yskcl0.edit2.text:=edit2.text;
fm_yskcl0.label11.Caption:='客户代码';
fm_yskcl0.GroupBox1.Caption:='批发应收款处理';
fm_yskcl0.skcause:='批发';
AddOptRecord(fm_yskcl0.skcause+'应收款处理,流水号'+fm_yskcl0.Edit10.Text);
fm_yskcl0.showmodal;
fm_yskcl0.free;
adoquery3.active:=false;
adoquery2.Active:=false;
adoquery2.active:=true;
adoquery3.active:=true;
end
else
begin
fm_yskcl0:=tfm_yskcl0.create(application);
fm_yskcl0.Edit10.Text:=adoquery4.fieldbyname('lsh').asstring;
//流水号
fm_yskcl0.edit3.text:=adoquery4.fieldbyname('yskje').asstring;
//总计金额
fm_yskcl0.edit2.text:=adoquery4.fieldbyname('skje').asstring;
//已付金额
fm_yskcl0.edit4.text:=floattostr(adoquery4.fieldbyname('sqje').asfloat);
//尚欠金额
fm_yskcl0.edit1.text:=adoquery4.fieldbyname('gysmc').asstring;
//供应商名称
//fm_yskcl0.edit2.text:=edit2.text;
fm_yskcl0.label11.Caption:='供应商代码';
fm_yskcl0.GroupBox1.Caption:='退货应收款处理';
fm_yskcl0.skcause:='退货';
AddOptRecord(fm_yskcl0.skcause+'应收款处理,流水号'+fm_yskcl0.Edit10.Text);
fm_yskcl0.showmodal;
fm_yskcl0.free;
adoquery1.active:=false;
adoquery4.Active:=false;
adoquery4.active:=true;
adoquery1.active:=true;
end;
end;
procedure Tfm_yskcl2.ADOQuery4CalcFields(DataSet: TDataSet);
begin
adoquery4.FieldByName('sqje').asfloat:=adoquery4.fieldbyname('yskje').asfloat-adoquery4.fieldbyname('skje').asfloat;
end;
procedure Tfm_yskcl2.RadioButton2Click(Sender: TObject);
begin
if combobox1.text='批发' then
begin
//adoquery2.Filter:='sqje<>0';
adoquery2.Filtered:=false;
end
else
begin
//adoquery4.Filter:='sqje<>0';
adoquery4.Filtered:=false;
end;
end;
procedure Tfm_yskcl2.RadioButton1Click(Sender: TObject);
begin
if combobox1.text='批发' then
begin
adoquery2.Filter:='sqje<>0';
adoquery2.Filtered:=true;
end
else
begin
adoquery4.Filter:='sqje<>0';
adoquery4.Filtered:=true;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -