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

📄 jm_ydmxcx.pas

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

*)
unit JM_YDMXCX;

interface

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

type
  P_DM = ^T_DM;
  T_DM = record
    dm: string;
  end;
type
  TFrm_YDMXCX = 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_ydlx: TListBox;
    DataSource1: TDataSource;
    Query1: TQuery;
    RQry_pnt: TRxQuery;
    SE_year: TSpinEdit;
    Edit2: TCurrencyEdit;
    Edit1: TCurrencyEdit;
    Label12: TLabel;
    Edt_hs: TCurrencyEdit;
    Label13: TLabel;
    Edt_ydsl: TCurrencyEdit;
    procedure BitBtn1Click(Sender: TObject);
    procedure Query1YDGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure SE_yearChange(Sender: TObject);
    procedure Query1AfterOpen(DataSet: TDataSet);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    V_LSH, V_SM, V_aCXTJ: string;
    procedure SetYDLXLB;

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

var
  Frm_YDMXCX: TFrm_YDMXCX;

implementation

uses datas,pub, JM_YDMXDY;

{$R *.DFM}

function TFrm_YDMXCX.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;

begin
  Result := false;
  if not Assigned(DB) then
    exit;
  Caption := application.Title;
  try
    Result := true;
    DateEdit1.Date := GetSYSdate;
    DateEdit2.Date := GetSYSdate;
    DateEdit3.Date := GetSYSdate;
    SE_year.Text := IntToStr(VG_Year);
    SetYGDMLB;
    SetYDLXLB;

    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_YDMXCX.SetYDLXLB;
var
  v_pdm: P_DM;
begin
  LB_ydlx.Clear;
  AssignSQLstr(data.qrytmp, 'select ZLDM, ZLMC from TM_YDZLB where NF=''' + SE_year.Text + '''');
  data.qrytmp.Open;
  while not data.qrytmp.Eof do
  begin
    new(v_pdm);
    v_pdm.dm := data.qrytmp.FieldByName('ZLDM').AsString;
    LB_ydlx.Items.AddObject(data.qrytmp.Fieldbyname('ZLMC').asstring, TObject(v_pdm));
    data.qrytmp.Next;
  end;
  if LB_ydlx.Items.Count > 0 then
    LB_ydlx.ItemIndex := 0;
end;

procedure TFrm_YDMXCX.BitBtn1Click(Sender: TObject);
const
  LBSQL = 'select a.YDLX,b.ZLMC,a.LSH,1,a.SL,a.YFK*a.SL/100 YFK,a.BZJ*a.SL/100 BZJ,a.GBF/100 GBF,a.QTFY/100 QTFY,(nvl(a.YFK*a.SL,0)+nvl(a.GBF,0)+nvl(a.BZJ*a.SL,0)+nvl(a.QTFY,0))/100 FYHJ,a.JYRQ ' +
    'from TM_JYMXB a, TM_YDZLB b where a.YDLX=b.ZLDM and a.JYLX=''yd'' and b.NF=''%s'' and a.YDLX=''%s'' and a.CZZT=''0'' ';
  ZJJESQL = 'select nvl(sum(YFK*SL),0) + nvl(sum(GBF),0) + nvl(sum(BZJ*SL),0) + nvl(sum(QTFY),0) HJ, sum(1)HS, sum(SL) YDSL from TM_JYMXB where CZZT=''0'' and JYLX=''yd'' ';
var
  v_s_ydlx, v_s_sql: string;
begin
  try
    v_s_ydlx := P_DM(LB_ydlx.Items.Objects[LB_ydlx.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,4)>=LTRIM(to_char(''' +
        Edit3.Text + ''',''' + V_LSH + ''')) and SUBSTR(lsh,10,4)<=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;

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

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

    AssignSQLstr(data.qrytmp, ZJJESQL + v_s_sql);
    data.qrytmp.Open;
    Edit1.Value := data.qrytmp.FieldByName('HJ').AsFloat / 100;

    AssignSQLstr(data.qrytmp, ZJJESQL + v_s_sql + 'and YDLX=''' + v_s_ydlx + '''');
    data.qrytmp.Open;
    Edit2.Value := data.qrytmp.FieldByName('HJ').AsFloat / 100;
    Edt_hs.Value := data.qrytmp.FieldByName('HS').AsFloat;
    Edt_ydsl.Value := data.qrytmp.FieldByName('YDSL').AsFloat;
    BitBtn3.Enabled := true;
  except
    CHQMsgBox('请重新确定查询条件!');
    BitBtn3.Enabled := false;
  end;                                         {024-7827717 13009221175}
end;

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

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

procedure TFrm_YDMXCX.BitBtn3Click(Sender: TObject);
begin
  if CB_ygdm.ItemIndex = 0 then
  begin
    CHQMsgBox('请先选择一个营业员!');
    exit;
  end;
  RQry_pnt.Close;
  RQry_pnt.MacroByName('TJ').AsString := copy(V_aCXTJ, 5, length(V_aCXTJ));
  RQry_pnt.MacroByName('NF').AsString := SE_year.Text;
  RQry_pnt.Open;

  Frm_YDMXDY := TFrm_YDMXDY.Create(nil);
  with Frm_YDMXDY do
  try
    QRLabel25.Caption := VG_UnitName;
    QRLabel1.Caption := SE_year.Text + '年前台营业员预订情况查询';
    QRLabel4.Caption := FormatDateTime('yyyy"年"mm"月"d"日" ', GetsysDate);
    QRLabel2.Caption := V_SM;
    QRLabel21.Caption := CB_ygdm.Text;

    DetailLines := 1;
    Prepare;
    try
      QRLabel29.Caption := IntToStr(QRPrinter.PageCount);
    finally
      QRPrinter.Free;
      QRPrinter := nil;
    end;
    preview;
  finally
    Frm_YDMXDY.Free;
  end;
end;

procedure TFrm_YDMXCX.SE_yearChange(Sender: TObject);
begin
  SetYDLXLB;
end;

procedure TFrm_YDMXCX.Query1AfterOpen(DataSet: TDataSet);
begin
  TNumericField(Query1.FieldByName('YFK')).DisplayFormat := '#,##0.00';
  TNumericField(Query1.FieldByName('BZJ')).DisplayFormat := '#,##0.00';
  TNumericField(Query1.FieldByName('GBF')).DisplayFormat := '#,##0.00';
  TNumericField(Query1.FieldByName('QTFY')).DisplayFormat := '#,##0.00';
  TNumericField(Query1.FieldByName('FYHJ')).DisplayFormat := '#,##0.00';
  TNumericField(Query1.FieldByName('SL')).DisplayFormat := '#,##';
end;

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

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

end.

⌨️ 快捷键说明

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