⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pfm_yskcl2.pas

📁 POS收银系统
💻 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 + -