?? sy_ck_jyp_add.pas
字號:
{*******************************************************}
{ }
{ 集郵出庫計劃單制定——選擇票品模塊 }
{ }
{ 中軟金馬公司版權(quán)所有。2002.06 }
{ }
{ 編制:楊俊 }
{ }
{ }
{*******************************************************}
(*==============================================================================
省級集郵票
程序說明:
1. 票品類別的選擇不可用,僅供查看,因為票品類別是從票品選擇模塊中傳來了參數(shù),
如果選擇,直接調(diào)用票品選擇模塊;
2、僅取本年度的分配計劃或者本年度的分配單;
3、 零枚、普票的計劃從紀_計內(nèi)_分配計劃(零枚)TY_JJNFPJH_JY中取
封片的計劃從紀_計內(nèi)_分配計劃(封片)TY_JJNFPJH_FP中取 (需要與TB_YZPPXXB關(guān)聯(lián),存在套或者圖的信息)
4、沒有依據(jù)的出庫也應該允許,即除分配計劃、出庫單外,在加上無依據(jù)
對無依據(jù)的處理結(jié)果是,分配的單位選擇TGS_GXDWSJB中,ZJXJ=1 AND TXYW=1
AND FHDX=1,分配數(shù)量默認為0
5、每次僅處理一個庫房的一中票品;
修改記錄 ,在俺分配計劃出庫的時候 出庫數(shù)量由四部分數(shù)據(jù)選擇加起來得到
楊俊 2003.2.18
===============================================================================*)
unit SY_CK_JYP_Add;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Grids, DBGrids, ExtCtrls, ComCtrls, Db, DBTables,
FieldComboBox, sqlstrings, clipbrd, Mask, ToolEdit, CurrEdit;
type
TFrm_SY_CK_JYP_Add = class(TForm)
bbtn_Finish: TBitBtn;
bbtn_Cancel: TBitBtn;
pgc_Select: TPageControl;
tbs_PP: TTabSheet;
tbs_DW: TTabSheet;
rg_CKXZ: TRadioGroup;
dbg_CKXZ: TDBGrid;
dbg_DWFP: TDBGrid;
bbtn_Prior: TBitBtn;
bbtn_Next: TBitBtn;
bbtn_Search: TBitBtn;
rg_Round: TRadioGroup;
rg_Round_Style: TRadioGroup;
qry_PP: TQuery;
ds_PP: TDataSource;
qry_CKXZ: TQuery;
ds_CKXZ: TDataSource;
qry_DWFP: TQuery;
ds_DWFP: TDataSource;
qry_Tmp: TQuery;
usql_DWFP: TUpdateSQL;
qry_PPKFDM: TStringField;
qry_PPKFMC: TStringField;
qry_PPPPMC: TStringField;
qry_PPZH: TStringField;
qry_PPMZ: TFloatField;
qry_PPSJ: TFloatField;
qry_PPKWH: TStringField;
qry_PPPPLB: TStringField;
qry_PPJSJ: TFloatField;
qry_PPZK: TFloatField;
qry_PPSL: TFloatField;
qry_PPTYPE: TStringField;
qry_DWFPDWDM: TStringField;
qry_DWFPSL: TFloatField;
qry_DWFPSL_OLD: TFloatField;
qry_DWFPDWMC: TStringField;
qry_PPJJ: TFloatField;
qry_PPXJ: TFloatField;
dbg_PP: TDBGrid;
pgc_SeleInfo: TPageControl;
tbs_SeleBGG: TTabSheet;
tbs_SeleMBMS: TTabSheet;
tbs_BCB: TTabSheet;
lbl_BZGG: TLabel;
Label1: TLabel;
qry_PPPPDM: TStringField;
cb_BZGG: TComboBox;
cb_BGG: TComboBox;
gb_Choose: TGroupBox;
chk_YD: TCheckBox;
chk_LS: TCheckBox;
chk_NC: TCheckBox;
chk_YP: TCheckBox;
qry_DWFPYDTS: TFloatField;
qry_DWFPLSTS: TFloatField;
qry_DWFPNCTS: TFloatField;
qry_DWFPYPTS: TFloatField;
Label2: TLabel;
ce_BL: TCurrencyEdit;
procedure bbtn_SearchClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure bbtn_PriorClick(Sender: TObject);
procedure bbtn_NextClick(Sender: TObject);
procedure rg_TypeClick(Sender: TObject);
procedure rg_RoundClick(Sender: TObject);
procedure rg_CKXZClick(Sender: TObject);
procedure qry_CKXZAfterScroll(DataSet: TDataSet);
procedure dbg_PPDblClick(Sender: TObject);
procedure bbtn_FinishClick(Sender: TObject);
procedure rg_Round_StyleClick(Sender: TObject);
procedure qry_PPMZGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure qry_PPAfterScroll(DataSet: TDataSet);
procedure cb_BGGChange(Sender: TObject);
procedure cb_BZGGChange(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure qry_PPSJGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure qry_PPSLGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure chk_YDClick(Sender: TObject);
procedure ce_BLExit(Sender: TObject);
procedure ce_BLKeyPress(Sender: TObject; var Key: Char);
private
procedure SetState(A_Style: Integer); {按步處理的界面顯示設(shè)置}
procedure SetRoundSL(A_Round, A_Round_Style, A_SingleDest: Integer); {分配數(shù)量的湊整處理}
function GetRoundNumber(A_source, A_SingleDest,
A_type: Integer): Integer; {返回湊整后的數(shù)據(jù)}
procedure SetRounding; {湊包湊版調(diào)用}
procedure GetGG(A_PPDM: string); {取得湊整的規(guī)格}
procedure SetChooseSL;
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_SY_CK_JYP_Add: TFrm_SY_CK_JYP_Add;
implementation
{$R *.DFM}
uses
SearchPP;
var
VL_ND: string; {服務(wù)器年度}
VL_Type: Integer; {票品類型}
VL_Ban_GG: Integer; {取得該票品的版的規(guī)格}
VL_ZXTS: TStringList;
{-------------------------------------------------------------------------------}
{初始化}
procedure TFrm_SY_CK_JYP_Add.FormCreate(Sender: TObject);
begin
SetState(0);
rg_RoundClick(nil);
{取服務(wù)器年度}
with qry_Tmp do
begin
Close;
SQL.Text := 'Select SysDate from Dual';
Open;
VL_ND := FormatDateTime('yyyy', FieldByName('SysDate').AsDateTime);
Close;
end;
VL_ZXTS := TStringList.Create;
end;
{-------------------------------------------------------------------------------}
{票品類別的選擇不可用,僅供查看,因為票品類別是從票品選擇模塊中傳來了參數(shù),
如果選擇,直接調(diào)用票品選擇模塊;}
procedure TFrm_SY_CK_JYP_Add.rg_TypeClick(Sender: TObject);
begin
bbtn_SearchClick(nil);
end;
{-------------------------------------------------------------------------------}
{雙擊等于點擊下一步}
procedure TFrm_SY_CK_JYP_Add.dbg_PPDblClick(Sender: TObject);
begin
bbtn_NextClick(nil);
end;
{-------------------------------------------------------------------------------}
{出庫時選擇的依據(jù):0、依據(jù)計劃,1、依據(jù)本年度出庫單}
procedure TFrm_SY_CK_JYP_Add.rg_CKXZClick(Sender: TObject);
var
l_sql: string;
begin
(* rg_Round.Enabled := True;
dbg_CKXZ.Columns[1].Visible := True;
dbg_CKXZ.Columns[1].Width := 120;
dbg_CKXZ.Columns[2].Visible := False; {圖序號}
case rg_CKXZ.ItemIndex of
0: {按照分配計劃} {}
begin
{對于不同的票品,依據(jù)計劃也不同(普票,零枚用紀_計內(nèi)_分配計劃(零枚)TY_JJNFPJH_JY,
封片簡用紀_計內(nèi)_分配計劃(封片)TY_JJNFPJH_FP)}
case rg_Type.ItemIndex of
0, 1: {普票、零枚} {}
begin
dbg_CKXZ.Columns[0].Title.Caption := '計劃號';
dbg_CKXZ.Columns[0].FieldName := 'JHH';
dbg_CKXZ.Columns[1].Width := 95;
dbg_CKXZ.Columns[2].Visible := True; {圖序號}
L_SQL := 'select distinct a.JHH, c.TUDM PPDM, a.PPMC, a.TX from TY_JJNFPJH_JY a, TB_YZPPTXXB b,TB_YZPPTUXXB c ' +
' where a.JHH =b.JHH and b.TDM= c.TDM and c.TXH = a.TX and a.ND =' + QuotedStr(VL_ND);
end;
2: {封片} {}
begin
dbg_CKXZ.Columns[1].Visible := False;
dbg_CKXZ.Columns[0].Title.Caption := '郵資類名稱';
dbg_CKXZ.Columns[0].FieldName := 'MC';
l_sql := ' select distinct a.YZLDM, b.MC, a.YZLDM PPDM ' +
' from TY_JJNFPJH_FP a, TG_YZPPLDMB b where a.YZLDM = b.YZLDM ' +
' and a.ND =' + QuotedStr(VL_ND);
end;
end;
end;
1: {按照出庫單} {}
begin
dbg_CKXZ.Columns[0].Title.Caption := '出庫計劃單號';
dbg_CKXZ.Columns[0].FieldName := 'JHH';
L_SQL := 'select distinct a.CKJHDH JHH, a.PPDM, a.PPMC ' +
' from TYS_TXCKJHDPPB a, TYS_TXPCKJHDB b ' +
' where a.CKJHDH = b.CKJHDH and a.CKJHDH like ''TX%'' and b.CKXZ =''10'' ' +
' and to_char(b.ZDRQ, ''YYYY'') = ' + QuotedStr(VL_ND);
end;
2: {無依據(jù)} {}
begin
{不能湊包版}
rg_Round.ItemIndex := 2;
rg_Round.Enabled := False;
qry_CKXZ.Close;
with qry_DWFP do
begin
Close;
SQL.Text := 'select DWDM, DWJC DWMC, 0 SL, 0 SL_OLD from TGS_GXDWSJB ' +
' where ZJXJ=''1'' and TXYW=''1'' and FHDX=''1'' order by PXM ';
Open;
end;
Exit;
end;
end;
with qry_CKXZ do
begin
Close;
SQL.Text := l_sql;
Open;
if IsEmpty then {為空時清空子表} {}
qry_CKXZAfterScroll(nil)
else if rg_Type.ItemIndex <> 2 then { 普票和零枚定位到上一步所選擇的票品 } {}
Locate('PPDM', qry_PP.FieldByName('TUDM').AsString, [])
else if rg_Type.ItemIndex = 2 then { 封片需要定位到上一步所選擇的票品的類別(前三位) } {}
Locate('PPDM', Copy(qry_PP.FieldByName('TUDM').AsString, 1, 3), []);
end;
*)
{*********楊俊 選擇分配依據(jù)************}
rg_Round.Enabled := True;
gb_Choose.Visible := rg_CKXZ.ItemIndex = 0;
case rg_CKXZ.ItemIndex of
0: {分配計劃}
begin
l_SQL := 'select distinct a.JHH,b.TDM PPDM,b.TJC PPMC '#13#10 +
'from TY_JJNFPJH a,TB_YZPPTXXB b'#13#10 +
'where a.JHH=b.JHH and a.ND =' + QuotedStr(VL_ND);
end;
1: {出庫單}
begin
L_SQL := 'select distinct a.CKJHDH JHH, a.PPDM, a.PPMC ' +
' from TYS_JYCKJHDPPB a, TYS_JYCKJHDB b ' +
' where a.CKJHDH = b.CKJHDH and a.CKJHDH like ''JN%'' and b.CKXZ =''10'' ' +
' and to_char(b.ZDRQ, ''YYYY'') = ' + QuotedStr(VL_ND);
end;
2: {無依據(jù)}
begin
{不能湊包版}
rg_Round.ItemIndex := 2;
rg_Round.Enabled := False;
qry_CKXZ.Close;
with qry_DWFP do
begin
Close;
SQL.Text := 'select DWDM, DWJC DWMC, 0 SL, 0 SL_OLD, 0 YDTS, 0 LSTS, 0 NCTS, 0 YPTS from TGS_GXDWSJB ' +
' where ZJXJ=''1'' and JYYW=''1'' and FHDX=''1'' order by PXM ';
Open;
end;
Exit;
end;
end;
with qry_CKXZ do
begin
Close;
SQL.Text := l_sql;
Open;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -