?? ckjh_jjw_addpp.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 + -