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

📄 jm_jymxcx.pas

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

*)
unit JM_JYMXCX;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids, DBGrids, ComCtrls, RXCtrls, ExtCtrls, Buttons, Mask,
  ToolEdit, dbtables, Db, RxQuery, CurrEdit, DBGridExport,
  Menus, JM_data;

type
  P_DM = ^T_DM;
  T_DM = record
    dm: string;
  end;
type
  TFrm_JYMXCX = class(TForm)
    Panel4: TPanel;
    RxLabel1: TRxLabel;
    Panel1: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    Panel6: TPanel;
    Panel5: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label1: TLabel;
    Label6: TLabel;
    ListBox1: TListBox;
    DBGrid2: TDBGrid;
    Panel3: TPanel;
    Label5: TLabel;
    Panel2: TPanel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    RadioButton1: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton2: TRadioButton;
    DateEdit1: TDateEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    DateEdit2: TDateEdit;
    DateEdit3: TDateEdit;
    Lbl_user: TLabel;
    Label11: TLabel;
    CB_ygdm: TComboBox;
    LB_jylx: TListBox;
    DataSource1: TDataSource;
    Query1: TQuery;
    Query1YD: TFloatField;
    Query1LSH: TStringField;
    Query1JYRQ: TDateTimeField;
    RQry_pnt: TRxQuery;
    Edit1: TCurrencyEdit;
    Edit2: TCurrencyEdit;
    procedure BitBtn1Click(Sender: TObject);
    procedure Query1YDGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    V_LSH, V_SM, V_aCXTJ: string;

    { Private declarations }
  public
    { Public declarations }
    function Execute(const DB: TDataBase; p_ISQH: TQH_TYPE): Boolean;
  end;

var
  Frm_JYMXCX: TFrm_JYMXCX;

implementation

uses datas,pub, JM_JYMXDY;

{$R *.DFM}

function TFrm_JYMXCX.Execute(const DB: TDataBase; p_ISQH: TQH_TYPE): Boolean;
var
  v_pdm: P_DM;
  i: Integer;
  procedure SetYGDMLB;
  begin
    new(v_pdm);
    v_pdm.dm := '';
    CB_ygdm.Items.AddObject('全部', TObject(v_pdm));
    AssignSQLstr(data.qrytmp, 'select YGDM, YGMC from TGS_RYB where YGDM in( select YGDM from TM_YYYYEB)');
    data.qrytmp.Open;
    while not data.qrytmp.Eof do
    begin
      new(v_pdm);
      v_pdm.dm := data.qrytmp.FieldByName('YGDM').AsString;
      CB_ygdm.Items.AddObject(data.qrytmp.Fieldbyname('YGMC').asstring + '(' + data.qrytmp.FieldByName('YGDM').AsString + ')', TObject(v_pdm));
      if v_pdm.dm = VG_UserID then
        i := CB_ygdm.Items.Count - 1;
      data.qrytmp.Next;
    end;
    if p_ISQH = is_Q then
    begin
      CB_ygdm.ItemIndex := i;
      CB_ygdm.Enabled := false;
    end
    else
      CB_ygdm.ItemIndex := 0;
  end;

  procedure SetJYLXLB;
    procedure ADDJYLX(AMC, ADM: string);
    begin
      new(v_pdm);
      v_pdm.dm := ADM;
      LB_jylx.Items.AddObject(AMC, TObject(v_pdm));
    end;
  begin
    ADDJYLX('预付款', 'yfk');
    ADDJYLX('保证金', 'bzj');
    ADDJYLX('工本费', 'gbf');
    ADDJYLX('其他费用', 'qtfy');
    ADDJYLX('零售', 'ls');
    ADDJYLX('加收', 'js');
    ADDJYLX('退补', 'tb');
    ADDJYLX('磁卡零售', 'ckls');
    ADDJYLX('换卡', 'hk');
    ADDJYLX('退保证金', 'tbzj');
    LB_jylx.ItemIndex := 0;
  end;

begin
  Result := false;
  if not Assigned(DB) then
    exit;
  Caption := application.Title;
  try
    Result := true;

    DateEdit1.Date := GetSYSdate;
    DateEdit2.Date := GetSYSdate;
    DateEdit3.Date := GetSYSdate;
    SetYGDMLB;
    SetJYLXLB;

    AssignSQLstr(data.qrytmp, 'select LSHWS from TG_DHSJBBMGF where DHDM=''mq_jylsh''');
    data.qrytmp.Open;
    if data.qrytmp.IsEmpty then
    begin
      CHQMsgBox('单号数据编码规范没有设定!');
      exit;
    end
    else if data.qrytmp.Fields[0].AsInteger <= 0 then
    begin
      CHQMsgBox('单号数据编码规范没有设定!');
      exit;
    end;

    for i := 1 to data.qrytmp.Fields[0].AsInteger do
      V_LSH := V_LSH + '0';
  except
    CHQMsgBox('不能打开 <集邮门市交易明细> 表!');
    exit;
  end;
end;

procedure TFrm_JYMXCX.BitBtn1Click(Sender: TObject);
const
  LBSQL = 'select sum(%s) JE, LSH, JYRQ from VW_JYMXB where %s is not Null ';
  ZJJESQL = 'select nvl(sum(YFK),0) + nvl(sum(BZJ),0) + nvl(sum(GBF),0) + nvl(sum(QTFY),0) + nvl(sum(LS),0) + nvl(sum(JS),0) - nvl(sum(TB),0) + nvl(sum(CKLS),0) + nvl(sum(HK),0) - nvl(sum(TBZJ),0) from VW_JYMXB where 1=1 ';
  JYJESQL = 'select nvl(sum(%s),0) from VW_JYMXB where 1=1 ';

var
  v_s_ywlx, v_s_sql: string;
begin
  try
    v_s_ywlx := P_DM(LB_jylx.Items.Objects[LB_jylx.ItemIndex])^.dm;
    if RadioButton1.Checked then
    begin
      if (DateEdit1.Date = 0) or (trim(Edit3.Text) = '') or (trim(Edit4.Text) = '') then
      begin
        CHQMsgBox('请确定查询条件!');
        exit;
      end;
      v_s_sql := v_s_sql + ' and to_char(JYRQ, ''YYYYMMDD'') =''' +
        FormatDateTime('YYYYMMDD', DateEdit1.Date) + ''' and SUBSTR(lsh,10,3)>=LTRIM(to_char(''' +
        Edit3.Text + ''',''' + V_LSH + ''')) and SUBSTR(lsh,10,3)<=LTRIM(to_char(''' +
        Edit4.Text + ''',''' + V_LSH + ''')) ';
      V_SM := DateEdit1.Text + '日产生的交易流水从' + Edit3.Text + '到' + Edit4.Text + '的交易汇总';
    end
    else if RadioButton2.Checked then
    begin
      if (DateEdit2.Date = 0) or (DateEdit3.Date = 0) then
      begin
        CHQMsgBox('请确定查询条件!');
        exit;
      end;
      v_s_sql := v_s_sql + ' and to_char(JYRQ, ''YYYYMMDD'') >=''' +
        FormatDateTime('YYYYMMDD', DateEdit2.Date) + ''' and to_char(JYRQ, ''YYYYMMDD'') <=''' +
        FormatDateTime('YYYYMMDD', DateEdit3.Date) + ''' ';
      V_SM := '从' + DateEdit2.Text + '到' + DateEdit3.Text + '产生的交易汇总';
    end
    else if RadioButton3.Checked then
    begin
      if (trim(Edit5.Text) = '') or (trim(Edit6.Text) = '') then
      begin
        CHQMsgBox('请确定查询条件!');
        exit;
      end;
      v_s_sql := v_s_sql + ' and lsh>=''' + Edit5.Text + ''' and lsh<=''' + Edit6.Text + ''' ';
      V_SM := '收据号从' + Edit5.Text + '到' + Edit6.Text + '的交易汇总';
    end;

    V_aCXTJ := v_s_sql;
    if CB_ygdm.ItemIndex <> 0 then
    begin
      v_s_sql := ' and YGDM=''' + P_DM(CB_ygdm.Items.Objects[CB_ygdm.ItemIndex])^.dm + ''' ' + v_s_sql;
    end;

    AssignSQLstr(Query1, format(LBSQL, [v_s_ywlx, v_s_ywlx]) + v_s_sql + ' group by LSH, JYRQ order by LSH, JYRQ');
    Query1.Open;
    Label6.Caption := '交易数目:' + inttostr(Query1.RecordCount);

    AssignSQLstr(data.qrytmp, ZJJESQL + v_s_sql);
    data.qrytmp.Open;
    Edit1.Text := formatfloat('#,##0.00##', data.qrytmp.Fields[0].AsFloat / 100);

    AssignSQLstr(data.qrytmp, format(JYJESQL, [v_s_ywlx]) + v_s_sql + ' and ' + v_s_ywlx + ' is not null');
    data.qrytmp.Open;
    Edit2.Text := formatfloat('#,##0.00##', data.qrytmp.Fields[0].AsFloat / 100);
    BitBtn3.Enabled := true;
  except
    CHQMsgBox('请重新确定查询条件!');
    BitBtn3.Enabled := false;
  end;
end;

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

procedure TFrm_JYMXCX.BitBtn2Click(Sender: TObject);
begin
  Close;
end;

procedure TFrm_JYMXCX.BitBtn3Click(Sender: TObject);
begin
  RQry_pnt.Close;
  RQry_pnt.MacroByName('TJ').AsString := copy(V_aCXTJ, 5, length(V_aCXTJ));
  RQry_pnt.Open;
  Frm_JYMXDY := TFrm_JYMXDY.Create(nil);
  with Frm_JYMXDY do
  try
    QRLabel25.Caption := VG_UnitName;
    QRLabel4.Caption := FormatDateTime('yyyy"年"mm"月"d"日" ', GetsysDate);
    QRLabel2.Caption := V_SM;
    DetailLines := 1;
    Prepare;
    try
      QRLabel29.Caption := IntToStr(QRPrinter.PageCount);
    finally
      QRPrinter.Free;
      QRPrinter := nil;
    end;
    preview;
  finally
    Frm_JYMXDY.Free;
  end;
end;

procedure TFrm_JYMXCX.FormCreate(Sender: TObject);
begin
  GetAllColWidth(self);
end;

procedure TFrm_JYMXCX.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  SaveAllColWidth(self);
end;

end.

⌨️ 快捷键说明

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