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

📄 ckjh_jjw_addpp.pas

📁 省级集邮品管理ERP
💻 PAS
字号:
{*******************************************************}
{                                                       }
{                省级单去向多品种分配                   }
{                                                       }
{            中软金马公司版权所有。2002.12              }
{                                                       }
{                    编制:杨俊                         }
{                                                       }
{                                                       }
{*******************************************************}
(*
    集邮票管理

   思路步骤:


   根据出库性质选择单位

   10     单位 :'select * from TGS_GXDWSJB WHERE JYYW = ''1'' and FHDX =''1'' ';
   12     V_DWDM := '-3'    V_DWMC := '注销出库';
   14     Qry_Static.SQL.Text := 'select * from TGS_GXDWSJB WHERE ZJSJ=''1'' or SJFH=''1'' or (JYYW=''1'' and KH=''1'') or (JYYW=''1'' and FHDX=''1'') ';

*)

unit CKJH_JJW_AddPP;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, Grids, DBGrids, StdCtrls, ExtCtrls, Buttons, Db, DBTables,
  FieldComboBox;

type
  TFrm_CKJH_JJW_AddPP = class(TForm)
    bbtn_prv: TBitBtn;
    bbtn_Next: TBitBtn;
    qry_DW: TQuery;
    qry_YJD: TQuery;
    qry_PPInfo_Y: TQuery;
    qry_PPInfo_N: TQuery;
    ds_dW: TDataSource;
    ds_DH: TDataSource;
    qry_PP_Y: TDataSource;
    ds_PP_N: TDataSource;
    bbtn_finish: TBitBtn;
    Panel1: TPanel;
    pgc_PP: TPageControl;
    TabSheet1: TTabSheet;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    DBGrid1: TDBGrid;
    fcb_CKXZ: TFieldComboBox;
    TabSheet2: TTabSheet;
    rg_CKXZ: TRadioGroup;
    pgc_ADDPP: TPageControl;
    TabSheet3: TTabSheet;
    dbg_DWFP: TDBGrid;
    dbg_CKXZ: TDBGrid;
    TabSheet4: TTabSheet;
    bbtn_PPSel: TBitBtn;
    dbg_PP: TDBGrid;
    BitBtn1: TBitBtn;
    qry_PPInfo_NTYPE: TStringField;
    qry_PPInfo_NKFDM: TStringField;
    qry_PPInfo_NKFMC: TStringField;
    qry_PPInfo_NPPDM: TStringField;
    qry_PPInfo_NPPMC: TStringField;
    qry_PPInfo_NZH: TStringField;
    qry_PPInfo_NMZ: TFloatField;
    qry_PPInfo_NSJ: TFloatField;
    qry_PPInfo_NKWH: TStringField;
    qry_PPInfo_NPPLB: TStringField;
    qry_PPInfo_NJJ: TFloatField;
    qry_PPInfo_NXJ: TFloatField;
    qry_PPInfo_NJSJ: TFloatField;
    qry_PPInfo_NZK: TFloatField;
    qry_PPInfo_NSL: TFloatField;
    procedure FormCreate(Sender: TObject);
    procedure bbtn_NextClick(Sender: TObject);
    procedure qry_YJDAfterScroll(DataSet: TDataSet);
    procedure rg_CKXZClick(Sender: TObject);
    procedure bbtn_prvClick(Sender: TObject);
    procedure bbtn_PPSelClick(Sender: TObject);
    procedure fcb_CKXZChange(Sender: TObject);
    procedure bbtn_finishClick(Sender: TObject);
    procedure qry_PPInfo_NJJGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure qry_PPInfo_NMZGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure qry_PPInfo_NSLGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_CKJH_JJW_AddPP: TFrm_CKJH_JJW_AddPP;

implementation

uses Datas, SearchPP, sqlstrings;

{$R *.DFM}

procedure TFrm_CKJH_JJW_AddPP.FormCreate(Sender: TObject);
begin
  fcb_CKXZ.ItemIndex := 0;
  fcb_CKXZ.OnChange(nil);

  bbtn_prv.Enabled := False;
  bbtn_Next.Enabled := True;
  bbtn_finish.Enabled := False;

  pgc_PP.ActivePageIndex := 0;
end;

{-------------------------------------------------------------------------------}
{根据出库性质选择出库单位}
procedure TFrm_CKJH_JJW_AddPP.fcb_CKXZChange(Sender: TObject);
var
  l_SQL: String;
begin
  with qry_DW do
  begin
    Close;
    SQL.Text := 'select DWDM, DWMC, DWJC, DH, LXR, EMAIL, DZ, BZ, BJ, ZJSJ, SJFH, ZJXJ, KH, GYS, TXYW, JYYW, PXM, GKGX, FHDX, HOSTNAME from TGS_GXDWSJB ';
    Open;
  end;

  case fcb_CKXZ.ItemIndex of
    0:                                                      {出库}
      l_SQL := 'select DWDM, DWMC, DWJC, DH, LXR, EMAIL, DZ, BZ, BJ, ZJSJ, SJFH, ZJXJ, KH, GYS, TXYW, JYYW, PXM, GKGX, FHDX, HOSTNAME from TGS_GXDWSJB where JYYW = ''1'' and FHDX =''1'' order by PXM ';
    1:                                                      {注销}
      l_SQL := 'select DWDM, DWMC, DWJC, DH, LXR, EMAIL, DZ, BZ, BJ, ZJSJ, SJFH, ZJXJ, KH, GYS, TXYW, JYYW, PXM, GKGX, FHDX, HOSTNAME from TGS_GXDWSJB where DWDM = ''-3'' ';
    2:                                                      {退缴}
      l_SQL := 'select DWDM, DWMC, DWJC, DH, LXR, EMAIL, DZ, BZ, BJ, ZJSJ, SJFH, ZJXJ, KH, GYS, TXYW, JYYW, PXM, GKGX, FHDX, HOSTNAME from TGS_GXDWSJB WHERE ZJSJ=''1'' or SJFH=''1'' or (JYYW=''1'' and KH=''1'') or (JYYW=''1'' and FHDX=''1'')  order by PXM';
  end;
  with qry_DW do
  begin
    Close;
    SQL.Text := l_SQL;
    Open;
  end;
end;


{-------------------------------------------------------------------------------}
{选择完成单位之后,选择票品 如果有分配计划,默认根据分配计划}
procedure TFrm_CKJH_JJW_AddPP.bbtn_NextClick(Sender: TObject);
begin
  if qry_DW.IsEmpty then
    Exit;
  {1.选择分配计划单}
  with qry_YJD do
  begin
    Close;
    SQL.Text := 'select distinct QLDH from TY_JJWXQB where ZT=0 and DWDM=' + QuotedStr(qry_DW.FieldbyName('DWDM').AsString);
    Open;
    if IsEmpty then
    begin
      qry_PPInfo_Y.Close;
      rg_CKXZ.ItemIndex := 1;
    end
    else
      rg_CKXZ.ItemIndex := 0;
    rg_CKXZ.OnClick(nil);
  end;

  pgc_PP.ActivePageIndex := 1;
  bbtn_finish.Enabled := True;
  bbtn_Next.Enabled := False;

  bbtn_prv.Enabled := True;
end;


{-------------------------------------------------------------------------------}
{根据选择的计划号,显示票品}
procedure TFrm_CKJH_JJW_AddPP.qry_YJDAfterScroll(DataSet: TDataSet);
begin
  with qry_PPInfo_Y do
  begin
    Close;
    SQL.Text :=
      {      'select DWDM,PPMC,a.TDM PPDM,SUM(XQZTS) XQZTS,c.ZH,b.JJ,b.XJ,b.ZK,b.JSJ,b.KFDM,b.KFMC from TY_JJWXQB a,'#13#10 +
          '  (select a.KFDM,KFMC,PPDM,JJ,XJ,ZK,JSJ,Max(TS)'#13#10 +
          '   from TYS_JYPPKC a,TY_JJWXQB b,TGS_KFB c'#13#10 +
          '   where a.PPDM=b.TDM and a.KFDM=c.KFDM and b.QLDH = ' + QuotedStr(qry_YJD.FieldbyName('QLDH').AsString) + #13#10 +
          '   group by a.KFDM,c.KFMC,a.PPDM,JJ,XJ,ZK,JSJ
          ')b,TB_YZPPTXXB c'#13#10 +
          'where a.TDM=b.PPDM(+) and a.TDM=c.TDM and a.QLDH =' + QuotedStr(qry_YJD.FieldbyName('QLDH').AsString) + #13#10 +
          'group by a.DWDM,a.PPMC,c.ZH,a.TDM,b.KFDM,b.KFMC,b.JJ,b.XJ,b.ZK,b.JSJ';}
          
      {描述,根据请领单号查询票品信息,子查询的目的是为了得到该票品在各个库房中,库存最大的那个信息}    
      'select DWDM,PPMC,a.TDM PPDM,SUM(XQZTS) XQZTS,c.ZH,b.JJ,b.XJ,b.ZK,b.JSJ,b.KFDM,b.KFMC'#13#10+
      'from TY_JJWXQB a,'#13#10 +
      '('#13#10+
      '  select a.KFDM,KFMC,a.PPDM,JJ,XJ,ZK,JSJ,a.TS'#13#10+
      '  from TYS_JYPPKC a,TY_JJWXQB b,TGS_KFB c,'#13#10+
      '      (select PPDM,max(TS)TS'#13#10+
      '       from TYS_JYPPKC a,TY_JJWXQB b,TGS_KFB c'#13#10+
      '       where a.PPDM=b.TDM and a.KFDM=c.KFDM and b.QLDH = '+QuotedStr(qry_YJD.FieldbyName('QLDH').AsString)+' group by PPDM)d'#13#10+
      '  where a.PPDM=b.TDM and a.KFDM=c.KFDM and b.QLDH = '+QuotedStr(qry_YJD.FieldbyName('QLDH').AsString)+' and a.PPDM=d.PPDM and a.TS=d.TS'#13#10+
      ')b,TB_YZPPTXXB c'#13#10 +
      'where a.TDM=b.PPDM(+) and a.TDM=c.TDM and a.QLDH =' + QuotedStr(qry_YJD.FieldbyName('QLDH').AsString) + #13#10 +
      'group by a.DWDM,a.PPMC,c.ZH,a.TDM,b.KFDM,b.KFMC,b.JJ,b.XJ,b.ZK,b.JSJ';
    Open;
  end;
end;

{-------------------------------------------------------------------------------}
{根据依据选择票品}
procedure TFrm_CKJH_JJW_AddPP.rg_CKXZClick(Sender: TObject);
begin
  pgc_ADDPP.ActivePageIndex := rg_CKXZ.ItemIndex;
end;

{-------------------------------------------------------------------------------}
{上一步}
procedure TFrm_CKJH_JJW_AddPP.bbtn_prvClick(Sender: TObject);
begin
  pgc_PP.ActivePageIndex := 0;
  bbtn_Next.Enabled := True;
  bbtn_finish.Enabled := False;
end;

{-------------------------------------------------------------------------------}
{查询五原头数据的票品}
procedure TFrm_CKJH_JJW_AddPP.bbtn_PPSelClick(Sender: TObject);
var
  l_ModalResult: Integer;
begin
  with TFrm_SearchPP.Create(Application) do
  try
    Lios_Type := io_jyp;
    FB_ShowZero := false;
    fcb_PPDLBChange(nil);                                   {刷新小类}
    l_ModalResult := ShowModal;
    if l_ModalResult = mrOK then
    begin
      with qry_PPInfo_N do
      begin
        Close;
        SQL.Text := GetSQL(True);                           {由选择票品模块生成的SQL语句}
        Open;
      end;
    end;
  finally
    Free;
  end;

end;

{-------------------------------------------------------------------------------}
{完成}
procedure TFrm_CKJH_JJW_AddPP.bbtn_finishClick(Sender: TObject);
begin
  case rg_CKXZ.ItemIndex of
    0:
      if qry_PPInfo_Y.IsEmpty then
        Application.MessageBox('没有票品被选择!', '提示', Mb_Ok + MB_ICONINFORMATION)
      else
        ModalResult := mrOk;
    1:
      if dbg_PP.SelectedRows.Count = 0 then
        Application.MessageBox('请至少选择一个票品!', '提示', mb_Ok + MB_ICONINFORMATION)
      else
        ModalResult := mrOk;
  end;
end;

procedure TFrm_CKJH_JJW_AddPP.qry_PPInfo_NJJGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  if Trim(Sender.AsString) = '' then
    Exit;

  try
    if Sender.AsInteger <> 0 then
      Text := FormatFloat('¥#,##0.000', Sender.AsFloat / 100);
  except

  end;
end;

procedure TFrm_CKJH_JJW_AddPP.qry_PPInfo_NMZGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  if Trim(Sender.AsString) = '' then
    Exit;

  try
    if Sender.AsInteger <> 0 then
      Text := FormatFloat('¥#,##0.00', Sender.AsFloat / 100);
  except

  end;
end;

procedure TFrm_CKJH_JJW_AddPP.qry_PPInfo_NSLGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  if Trim(Sender.AsString) = '' then
    Exit;

  try
    if Sender.AsInteger <> 0 then
      Text := FormatFloat('#,##0', Sender.AsFloat);
  except

  end;
end;

end.

⌨️ 快捷键说明

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