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

📄 jm_xsqktj.pas

📁 省级集邮品管理ERP
💻 PAS
字号:
{*******************************************************}
{                                                       }
{                       销售情况统计                    }
{                                                       }
{            中软金马公司版权所有。2002.12前            }
{                                                       }
{            编制:中软金马邮资票品项目开发组           }
{                                                       }
{                                                       }
{*******************************************************}
(*
本模块在地市集邮票管理,地市集邮品管理,地市市场购入票里面调用。

*)
unit JM_XSQKTJ;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids, DBGrids, ExtCtrls, ComCtrls, RXSpin, Mask, ToolEdit,
  Spin, RXCtrls, Db, DBTables, JM_data, FieldComboBox,
  DBCtrls, YzppSelect, RxQuery, Menus, DBGridExport;
type
  PYGXX = ^TYGXX;
  TYGXX = record
    YGDM: string;
    YGMC: string;
  end;

type
  Tfrm_XSQKTJ = class(TForm)
    Panel4: TPanel;
    XttxTitle: TRxLabel;
    Lbl_user: TLabel;
    Panel1: TPanel;
    Label6: TLabel;
    DataSource1: TDataSource;
    rxQry_find: TRxQuery;
    Qry_YYY: TQuery;
    DataSource2: TDataSource;
    Panel2: TPanel;
    DBGrid1: TDBGrid;
    Panel3: TPanel;
    GroupBox2: TGroupBox;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    CBo_PP: TCheckBox;
    YzppSelect: TYzppSelect;
    DEd_from: TDateEdit;
    DEd_to: TDateEdit;
    btnFind: TButton;
    btnPrint: TButton;
    btnEdit: TButton;
    rxQry_findPPDM: TStringField;
    rxQry_findLB: TStringField;
    rxQry_findSJ: TFloatField;
    rxQry_findSUMLSSL: TFloatField;
    rxQry_findSUMLSJE: TFloatField;
    rxQry_findSUMCKLSSL: TFloatField;
    rxQry_findSUMCKLSJE: TFloatField;
    rxQry_findSUMCKYSSL: TFloatField;
    rxQry_findSUMCKYSJE: TFloatField;
    rxQry_findSUMJSJE: TFloatField;
    rxQry_findSUMTBJE: TFloatField;
    RB_YYY: TRadioButton;
    cmbYYY: TComboBox;
    RB_BDW: TRadioButton;
    rxQry_findPPMC: TStringField;
    rxQry_findZH: TStringField;
    procedure btnFindClick(Sender: TObject);
    procedure Qry_find0DJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure Qry_find0DJSetText(Sender: TField; const Text: string);
    procedure btnPrintClick(Sender: TObject);
    procedure GetYGXX;
    procedure rxQry_findSJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure rxQry_findSJSetText(Sender: TField; const Text: string);
    procedure rxQry_findSUMLSJEGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure rxQry_findSUMLSJESetText(Sender: TField; const Text: string);
    procedure rxQry_findSUMCKLSJEGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure rxQry_findSUMCKLSJESetText(Sender: TField;
      const Text: string);
    procedure rxQry_findSUMCKYSJEGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure rxQry_findSUMCKYSJESetText(Sender: TField;
      const Text: string);
    procedure rxQry_findSUMJSJEGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure rxQry_findSUMJSJESetText(Sender: TField; const Text: string);
    procedure rxQry_findSUMTBJEGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure rxQry_findSUMTBJESetText(Sender: TField; const Text: string);
    procedure CBo_PPClick(Sender: TObject);
  private
    YGDM: string;
    SqlStr: string;
    PartSql, YzppSelect_PartSql: string; {PartSql 查询的条件;YzppSelect_Partsql在
                                         小阕控件中选择票品的条件}
    function CheckedCondi: boolean; {生成查询条件}
    procedure GenQryMacros; {设置查询语句}
  public
    function Execute(p_ISQH: TQH_TYPE): Boolean;
  end;

var
  frm_XSQKTJ: Tfrm_XSQKTJ;

implementation
uses pub;
{$R *.DFM}

function Tfrm_XSQKTJ.Execute(p_ISQH: TQH_TYPE): Boolean;
begin
  Result := false;
  try
    YzppSelect.Open;
    Lbl_user.Caption := ' 操作员:' + VG_UserName;
    SQLstr := '';
    Result := true;
    DEd_from.Date := EncodeDate(VG_Year, 1, 1);
    DEd_to.Date := StrToDate(VarToStr(VG_Year) + '-' + VarToStr(VG_Month) + '-' + VarToStr(VG_Day));
    GetYGXX;
    Caption := Application.Title;
    CBo_PPClick(nil);
  except
    CHQMsgBox('不能打开 <集邮门市信息> 表 !');
    exit;
  end;
end;

procedure Tfrm_XSQKTJ.btnFindClick(Sender: TObject);
begin

  if RB_BDW.Checked then
  begin
    ygdm := '';

  end
  else begin
    ygdm := '';
    if Trim(CmbYYY.Text) = '' then
    begin
      CHQMSGBOX('请选择营业员!');
      exit;
    end;
    ygdm := ' and ygdm=''' + PYGXX(cmbyyy.Items.Objects[cmbyyy.ItemIndex])^.YGDM + '''';
  end;
  rxQry_find.Close;
  rxQry_find.SQL.Clear;
  GenQryMacros;
  rxQry_find.Open;
end;

function Tfrm_XSQKTJ.CheckedCondi: boolean;
begin
  Result := false;
  PartSql := '';
  YzppSelect_partSql := '';

  //增加类别查询条件
  if CheckBox1.Checked and CheckBox2.Checked and CheckBox3.Checked then
  begin
    PartSql := PartSql + ' and  a.lb in(''0'',''1'',''2'')';
    YzppSelect_PartSql := ' ';
  end;
  if CheckBox1.Checked and (not CheckBox2.Checked) and CheckBox3.Checked then
  begin
    PartSql := PartSql + '  and a.lb in(''0'',''2'')';
    YzppSelect_partSql := ' where type <>''yp''';
  end;
  if CheckBox1.Checked and CheckBox2.Checked and (not CheckBox3.Checked) then
  begin
    PartSql := PartSql + ' and  a.lb in(''0'',''1'')';
    YzppSelect_partsql := ' where type  in (''jttp'',''yp'')';
  end;
  if CheckBox1.Checked and (not CheckBox2.Checked) and (not CheckBox3.Checked) then
  begin
    PartSql := PartSql + '  and a.lb in(''0'')';
    YzppSelect_partSql := ' where type =''jttp'' ';
  end;
  if (not CheckBox1.Checked) and CheckBox2.Checked and CheckBox3.Checked then
  begin
    PartSql := PartSql + ' and a.lb in(''1'',''2'')';
    YzppSelect_partsql := ' where type <>''jttp''';
  end;
  if (not CheckBox1.Checked) and CheckBox2.Checked and (not CheckBox3.Checked) then
  begin
    PartSql := PartSql + ' and a.lb in(''1'')';
    YzppSelect_partsql := ' where type =''yp''';
  end;
  if (not CheckBox1.Checked) and (not CheckBox2.Checked) and CheckBox3.Checked then
  begin
    PartSql := PartSql + ' and a.lb in(''2'')';
    yzppselect_partsql := ' where type <>''jttp'' and type <>''yp''';
  end;
  if (not CheckBox1.Checked) and (not CheckBox2.Checked) and (not CheckBox3.Checked) then
  begin
    PartSql := PartSql + '';
    yzppselect_partsql := '';
  end;
  if CBo_pp.Checked then
    PartSql := partsql + ' and a.ppdm=''' + yzppselect.GetPPDM + ''''
  else
    PartSql := PartSql + '';
  Result := true;
end;

procedure Tfrm_XSQKTJ.Qry_find0DJGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  CurrGetText(Sender, Text, DisplayText);
end;

procedure Tfrm_XSQKTJ.Qry_find0DJSetText(Sender: TField; const Text: string);
begin
  CurrSetText(Sender, Text);
end;

procedure Tfrm_XSQKTJ.btnPrintClick(Sender: TObject);
begin
  if RB_YYY.Checked then
    PrintDBGrid(DBGrid1, '营业员销售情况');
  if RB_BDW.Checked then
    PrintDBGrid(DBGrid1, '本单位销售情况');
end;

procedure Tfrm_XSQKTJ.GenQryMacros;
var
  temp: string;
begin
  CheckedCondi; {生成查询条件}
  if Trim(ygdm) <> '' then
    temp := 'select a.*,b.tmc ppmc,b.zh from (select ppdm,lb,sj,ygdm,sum(lssl),sum(lsje),sum(CKLSSL), sum(CKLSJE), sum(CKYSSL), sum(CKYSJE), sum(JSJE), sum(TBJE) from tm_xsqkmx where (ppdm,lb) in (select ppdm,lb' +
      ' from tm_jymxb where  jylx=''ls''' + ygdm + ')' + ygdm + ' and to_char(jyrq,''yyyy-mm-dd'')>=:rq1 and to_char(jyrq,''yyyy-mm-dd'')<=:rq2 group by ppdm,lb,sj,ygdm ' +
      ' union ' +
      ' select ppdm,lb,sj,ygdm,sum(lssl),sum(lsje),sum(CKLSSL), sum(CKLSJE), sum(CKYSSL), sum(CKYSJE), sum(JSJE), sum(TBJE) from tm_xsqkmx where (ppdm,lb) in (select ppdm,lb' +
      ' from tm_jymxb where  jylx=''tb'' ' + ygdm + ')' + ygdm + ' and to_char(jyrq,''yyyy-mm-dd'')>=:rq1 and to_char(jyrq,''yyyy-mm-dd'')<=:rq2 group by ppdm,lb,sj ,ygdm' +
      ' union ' +
      ' select ppdm,lb,sj,ygdm,sum(lssl),sum(lsje),sum(CKLSSL), sum(CKLSJE), sum(CKYSSL), sum(CKYSJE), sum(JSJE), sum(TBJE) from tm_xsqkmx where (ppdm,lb) in (select ppdm,lb' +
      ' from tm_jymxb where  jylx=''js''' + ygdm + ')' + ygdm + '  and  to_char(jyrq,''yyyy-mm-dd'')>=:rq1 and to_char(jyrq,''yyyy-mm-dd'')<=:rq2 group by ppdm,lb,sj,ygdm ' +
      ' union ' +
      ' select ppdm,lb,sj,ygdm,sum(lssl),sum(lsje),sum(CKLSSL), sum(CKLSJE), sum(CKYSSL), sum(CKYSJE), sum(JSJE), sum(TBJE) from tm_xsqkmx where (ppdm,lb) in (select ppdm,lb' +
      ' from tm_jymxb where  jylx=''ys''' + ygdm + ')' + ygdm + ' and  to_char(jyrq,''yyyy-mm-dd'')>=:rq1 and to_char(jyrq,''yyyy-mm-dd'')<=:rq2 group by ppdm,lb,sj,ygdm ' +
      ' union ' +
      ' select ppdm,lb,sj,ygdm,sum(lssl),sum(lsje),sum(CKLSSL), sum(CKLSJE), sum(CKYSSL), sum(CKYSJE), sum(JSJE), sum(TBJE) from tm_xsqkmx where (ppdm,lb) in (select ppdm,lb' +
      ' from tm_jymxb where  jylx=''ckls''' + ygdm + ')' + ygdm + ' and  to_char(jyrq,''yyyy-mm-dd'')>=:rq1 and to_char(jyrq,''yyyy-mm-dd'')<=:rq2 group by ppdm,lb,sj ,ygdm ' +
      ' ) a,tb_yzppxxb b where a.ppdm=b.tdm ' + partsql + ' order by a.ppdm,a.lb,a.sj';
  if Trim(ygdm) = '' then
    temp := 'select a.*,b.tmc ppmc,b.zh from (select ppdm,lb,sj,sum(lssl),sum(lsje),sum(CKLSSL), sum(CKLSJE), sum(CKYSSL), sum(CKYSJE), sum(JSJE), sum(TBJE) from tm_xsqkmx where (ppdm,lb) in (select ppdm,lb' +
      ' from tm_jymxb where  jylx=''ls'') and to_char(jyrq,''yyyy-mm-dd'')>=:rq1 and to_char(jyrq,''yyyy-mm-dd'')<=:rq2 group by ppdm,lb,sj' +
      ' union ' +
      ' select ppdm,lb,sj,sum(lssl),sum(lsje),sum(CKLSSL), sum(CKLSJE), sum(CKYSSL), sum(CKYSJE), sum(JSJE), sum(TBJE) from tm_xsqkmx where (ppdm,lb) in (select ppdm,lb' +
      ' from tm_jymxb where  jylx=''tb'' ) and to_char(jyrq,''yyyy-mm-dd'')>=:rq1 and to_char(jyrq,''yyyy-mm-dd'')<=:rq2 group by ppdm,lb,sj ' +
      ' union ' +
      ' select ppdm,lb,sj,sum(lssl),sum(lsje),sum(CKLSSL), sum(CKLSJE), sum(CKYSSL), sum(CKYSJE), sum(JSJE), sum(TBJE) from tm_xsqkmx where (ppdm,lb) in (select ppdm,lb' +
      ' from tm_jymxb where  jylx=''js'') and  to_char(jyrq,''yyyy-mm-dd'')>=:rq1 and to_char(jyrq,''yyyy-mm-dd'')<=:rq2 group by ppdm,lb,sj ' +
      ' union ' +
      ' select ppdm,lb,sj,sum(lssl),sum(lsje),sum(CKLSSL), sum(CKLSJE), sum(CKYSSL), sum(CKYSJE), sum(JSJE), sum(TBJE) from tm_xsqkmx where (ppdm,lb) in (select ppdm,lb' +
      ' from tm_jymxb where  jylx=''ys'') and  to_char(jyrq,''yyyy-mm-dd'')>=:rq1 and to_char(jyrq,''yyyy-mm-dd'')<=:rq2 group by ppdm,lb,sj ' +
      ' union ' +
      ' select ppdm,lb,sj,sum(lssl),sum(lsje),sum(CKLSSL), sum(CKLSJE), sum(CKYSSL), sum(CKYSJE), sum(JSJE), sum(TBJE) from tm_xsqkmx where (ppdm,lb) in (select ppdm,lb' +
      ' from tm_jymxb where  jylx=''ckls'') and  to_char(jyrq,''yyyy-mm-dd'')>=:rq1 and to_char(jyrq,''yyyy-mm-dd'')<=:rq2 group by ppdm,lb,sj  ' +
      ' ) a,tb_yzppxxb b where a.ppdm=b.tdm ' + partsql + ' order by a.ppdm,a.lb,a.sj';

  rxQry_find.SQL.Text := temp;
  rxQry_find.Prepare;
  with rxQry_find do
  begin
    Params.ParamByName('rq1').Value := FormatDateTime('yyyy-mm-dd', DEd_from.DateTime);
    Params.ParamByName('rq2').Value := FormatDateTime('yyyy-mm-dd', DEd_to.DateTime);
  end;
end;

procedure Tfrm_XSQKTJ.GetYGXX;
var
  FYGXX: PYGXX;
begin
  cmbYYY.Items.Clear;
  with Qry_yyy do
  begin
    Close;
    Sql.Clear;
    Sql.Add('select ygdm,ygmc from tgs_ryb ');
    Open;
    First;
    while not eof do
    begin
      New(FYGXX);
      FYGXX^.YGDM := FieldByName('YGDM').AsString;
      FYGXX^.YGMC := FieldByName('YGMC').AsString;
      cmbYYY.Items.AddObject(FYGXX^.YGMC, TObject(FYGXX));
      Next;
    end;
  end;
  if Cmbyyy.Items.Count > 0 then Cmbyyy.ItemIndex := 0;
end;

procedure Tfrm_XSQKTJ.rxQry_findSJGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  CurrGetText(Sender, Text, DisplayText);
end;

procedure Tfrm_XSQKTJ.rxQry_findSJSetText(Sender: TField;
  const Text: string);
begin
  CurrSetText(Sender, Text);
end;

procedure Tfrm_XSQKTJ.rxQry_findSUMLSJEGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin
  CurrGetText(Sender, Text, DisplayText);
end;

procedure Tfrm_XSQKTJ.rxQry_findSUMLSJESetText(Sender: TField;
  const Text: string);
begin
  CurrSetText(Sender, Text);
end;

procedure Tfrm_XSQKTJ.rxQry_findSUMCKLSJEGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin
  CurrGetText(Sender, Text, DisplayText);
end;

procedure Tfrm_XSQKTJ.rxQry_findSUMCKLSJESetText(Sender: TField;
  const Text: string);
begin
  CurrSetText(Sender, Text);
end;

procedure Tfrm_XSQKTJ.rxQry_findSUMCKYSJEGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin
  CurrGetText(Sender, Text, DisplayText);
end;

procedure Tfrm_XSQKTJ.rxQry_findSUMCKYSJESetText(Sender: TField;
  const Text: string);
begin
  CurrSetText(Sender, Text);
end;

procedure Tfrm_XSQKTJ.rxQry_findSUMJSJEGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin
  CurrGetText(Sender, Text, DisplayText);
end;

procedure Tfrm_XSQKTJ.rxQry_findSUMJSJESetText(Sender: TField;
  const Text: string);
begin
  CurrSetText(Sender, Text);
end;

procedure Tfrm_XSQKTJ.rxQry_findSUMTBJEGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin
  CurrGetText(Sender, Text, DisplayText);
end;

procedure Tfrm_XSQKTJ.rxQry_findSUMTBJESetText(Sender: TField;
  const Text: string);
begin
  CurrSetText(Sender, Text);
end;

procedure Tfrm_XSQKTJ.CBo_PPClick(Sender: TObject);
begin
  if Cbo_pp.Checked then
  begin
    YzppSelect.Enabled := True;
    CheckedCondi;
    yzppselect.SQL.Text := 'select tdm,tmc tjc,zh,tpsj/100 mc from tb_yzppxxb  ' + YzppSelect_Partsql + '  order by zh';
    yzppselect.open;
  end
  else YzppSelect.Enabled := False;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -