📄 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 + -