?? ss_grp_init_search.pas
字號:
{*******************************************************}
{ }
{ 選擇查詢選項 }
{ }
{ 中軟金馬公司版權所有。2002.12前 }
{ }
{ 編制:中軟金馬郵資票品項目開發組 }
{ }
{ }
{*******************************************************}
(*
本模塊在省級系統管理模塊里庫存初始化,分類帳校對調用。
*)
unit SS_GRP_Init_Search;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Spin, FieldComboBox, ExtCtrls, Db, DBTables, ClipBrd;
type
TFrm_GRP_Init_Search = class(TForm)
pnl_Search: TPanel;
chk_PPMZ: TCheckBox;
chk_ND: TCheckBox;
chk_PPSJ: TCheckBox;
chk_ZH: TCheckBox;
chk_PPLB: TCheckBox;
fcb_PPLB: TFieldComboBox;
fcb_PPXLB: TFieldComboBox;
edt_PPMZ: TEdit;
se_From_ND: TSpinEdit;
edt_SJ: TEdit;
edt_ZH: TEdit;
chk_PPXLB: TCheckBox;
bbtn_Search: TBitBtn;
bbtn_Cancel: TBitBtn;
lbl_PPMZ: TLabel;
lbl_SJ: TLabel;
qry_Tmp: TQuery;
se_To_ND: TSpinEdit;
lbl_To_ND: TLabel;
chk_MC: TCheckBox;
edt_MC: TEdit;
chk_PPDLB: TCheckBox;
fcb_PPDLB: TFieldComboBox;
procedure FormCreate(Sender: TObject);
procedure fcb_PPLBChange(Sender: TObject);
procedure chk_PPLBClick(Sender: TObject);
procedure chk_NDClick(Sender: TObject);
procedure chk_PPMZClick(Sender: TObject);
procedure chk_PPSJClick(Sender: TObject);
procedure chk_ZHClick(Sender: TObject);
procedure chk_PPXLBClick(Sender: TObject);
procedure edt_PPMZKeyPress(Sender: TObject; var Key: Char);
procedure bbtn_SearchClick(Sender: TObject);
procedure bbtn_CancelClick(Sender: TObject);
procedure chk_MCClick(Sender: TObject);
procedure chk_PPDLBClick(Sender: TObject);
procedure fcb_PPDLBChange(Sender: TObject);
private
{ Private declarations }
procedure Init_Public_Data; {初始化公共數據}
function Test_Input: Boolean; {測試輸入是否合法}
function Generate_SQL_part: Boolean; {生成查詢的部分SQL}
function Change_Comma(Text: string): string; {改變成符合SQL的語句}
public
{ Public declarations }
procedure Get_Default; {取得默認值}
end;
var
Frm_GRP_Init_Search: TFrm_GRP_Init_Search;
implementation
{$R *.DFM}
{購入票查詢的公共模塊,實際是拼寫SQL的Where后面的條件。使用了公共系統變量
VG_l_PPLB、VG_l_PPDLB、VG_l_PPXLB、VG_l_From_ND、VG_l_To_ND、VG_l_PPMZ
VG_l_PPSJ、VG_l_ZH、VG_l_MC、part_SQL、Search_Caption
這些變量保存在libproc中。
拼寫完成的SQL保存在part_SQL中,同時生成說明Search_Caption。
石玉琢 2001.09.26補}
uses
Pub; {從中獲得一些初始化數據}
{-------------------------------------------------------------------------------}
{初始化公共數據}
procedure TFrm_GRP_Init_Search.Init_Public_Data;
begin
{顯示默認年度}
with qry_Tmp do
begin
Close;
SQL.Text := 'Select SysDate from Dual';
Open;
se_From_ND.Text := FormatDateTime('yyyy', FieldByName('SysDate').AsDateTime);
se_To_ND.Text := FormatDateTime('yyyy', FieldByName('SysDate').AsDateTime);
end;
fcb_PPLB.ClearAll;
fcb_PPLB.FieldItems.Add('ptyp');
fcb_PPLB.Items.Add('普通郵票');
fcb_PPLB.FieldItems.Add('jttp');
fcb_PPLB.Items.Add('紀特套票');
fcb_PPLB.FieldItems.Add('jtlm');
fcb_PPLB.Items.Add('紀特零枚');
fcb_PPLB.FieldItems.Add('fpj');
fcb_PPLB.Items.Add('封片簡');
fcb_PPLB.FieldItems.Add('yp');
fcb_PPLB.Items.Add('郵品');
end;
{-------------------------------------------------------------------------------}
{大類改變,二類跟著改變}
procedure TFrm_GRP_Init_Search.fcb_PPLBChange(Sender: TObject);
begin
fcb_PPDLB.ClearAll;
if fcb_PPLB.FieldString = 'ptyp' then
begin {普通郵票} {}
fcb_PPDLB.Items.Add('普通郵票');
fcb_PPDLB.FieldItems.Add('ptyp');
end
else if (fcb_PPLB.FieldString = 'jttp') or (fcb_PPLB.FieldString = 'jtlm') then
begin {集郵票和紀特零枚} {}
with qry_Tmp do
begin
Close;
SQL.Text := 'Select distinct DL,SubStr(YZLDM,1,1) sort_order from TG_YZPPLDMB'#13#10 +
'where (YZLDM like ''9%'') or (YZLDM like ''8%'') or (YZLDM like ''1%'' and YZLDM <>''101'') order by sort_order';
Open;
while not Eof do
begin
fcb_PPDLB.Items.Add(FieldByName('DL').AsString);
fcb_PPDLB.FieldItems.Add(FieldByName('DL').AsString);
Next;
end;
end;
end
else if fcb_PPLB.FieldString = 'fpj' then
begin {封片簡} {}
with qry_Tmp do
begin
Close;
SQL.Text := 'Select distinct DL,SubStr(YZLDM,1,1) sort_order from TG_YZPPLDMB'#13#10 +
'where (YZLDM like ''2%'') or (YZLDM like ''3%'') or (YZLDM like ''4%'') or (YZLDM like ''5%'') or (YZLDM like ''6%'') order by sort_order';
Open;
while not Eof do
begin
fcb_PPDLB.Items.Add(FieldByName('DL').AsString);
fcb_PPDLB.FieldItems.Add(FieldByName('DL').AsString);
Next;
end;
end;
end
else if fcb_PPLB.FieldString = 'yp' then
begin {集郵品} {}
with qry_Tmp do
begin
Close;
SQL.Text := 'Select MC,JYPLDM From TG_JYPLDMB Where LB=''大類''';
Open;
while not Eof do
begin
fcb_PPDLB.Items.Add(FieldByName('MC').AsString);
fcb_PPDLB.FieldItems.Add(FieldByName('JYPLDM').AsString);
Next;
end;
end;
end;
fcb_PPDLBChange(Sender); {刷新小類}
end;
{-------------------------------------------------------------------------------}
{二類改變,小類跟著改變}
procedure TFrm_GRP_Init_Search.fcb_PPDLBChange(Sender: TObject);
begin
fcb_PPXLB.ClearAll;
if fcb_PPLB.FieldString = 'ptyp' then
begin {普通郵票} {}
fcb_PPXLB.Items.Add('普通郵票');
fcb_PPXLB.FieldItems.Add('ptyp');
end
else if (fcb_PPLB.FieldString = 'jttp') or (fcb_PPLB.FieldString = 'jtlm') or (fcb_PPLB.FieldString = 'fpj') then
begin {集郵票和紀特零枚} {}
with qry_Tmp do
begin
Close;
SQL.Text := 'Select YZLDM,MC from TG_YZPPLDMB where DL=''' + fcb_PPDLB.FieldString + ''' order by YZLDM';
Open;
while not Eof do
begin
fcb_PPXLB.Items.Add(FieldByName('MC').AsString);
fcb_PPXLB.FieldItems.Add(FieldByName('YZLDM').AsString);
Next;
end;
end;
end
else if fcb_PPLB.FieldString = 'yp' then
begin {集郵品} {}
with qry_Tmp do
begin
Close;
SQL.Text := 'Select MC,JYPLDM From TG_JYPLDMB Where LB=''小類'' and SubStr(JYPLDM,1,1)=''' + fcb_PPDLB.FieldString + '''';
Open;
while not Eof do
begin
fcb_PPXLB.Items.Add(FieldByName('MC').AsString);
fcb_PPXLB.FieldItems.Add(FieldByName('JYPLDM').AsString);
Next;
end;
end;
end;
end;
{------------------------------------------------------------------------------}
{取得默認值}
procedure TFrm_GRP_Init_Search.Get_Default;
begin
{選擇了大類}
if VG_l_PPLB <> '' then
begin
chk_PPLB.Checked := True;
fcb_PPLB.Enabled := True;
fcb_PPLB.ItemIndex := fcb_PPLB.FieldItems.IndexOf(VG_l_PPLB);
chk_PPDLB.Checked := False;
fcb_PPDLB.Enabled := False;
fcb_PPLBChange(nil);
chk_PPXLB.Checked := False;
fcb_PPXLB.Enabled := False;
end;
{選擇了二類}
if VG_l_PPDLB <> '' then
begin
chk_PPLB.Checked := True;
fcb_PPLB.Enabled := True;
fcb_PPLB.ItemIndex := fcb_PPLB.FieldItems.IndexOf(VG_l_PPLB);
chk_PPDLB.Checked := True;
fcb_PPDLB.Enabled := True;
fcb_PPLBChange(nil);
fcb_PPDLBChange(nil);
chk_PPXLB.Checked := False;
fcb_PPXLB.Enabled := False;
fcb_PPDLB.ItemIndex := fcb_PPDLB.FieldItems.IndexOf(VG_l_PPDLB);
end;
{選擇了小類}
if VG_l_PPXLB <> '' then
begin
chk_PPLB.Checked := True;
fcb_PPLB.Enabled := True;
fcb_PPLB.ItemIndex := fcb_PPLB.FieldItems.IndexOf(VG_l_PPLB);
fcb_PPLBChange(nil);
chk_PPDLB.Checked := True;
fcb_PPDLB.Enabled := True;
fcb_PPDLB.ItemIndex := fcb_PPDLB.FieldItems.IndexOf(VG_l_PPDLB);
fcb_PPDLBChange(nil);
chk_PPXLB.Checked := True;
fcb_PPXLB.Enabled := True;
fcb_PPXLB.ItemIndex := fcb_PPXLB.FieldItems.IndexOf(VG_l_PPXLB);
end;
{選擇了年度}
if VG_l_From_ND <> 0 then
begin
chk_ND.Checked := True;
se_From_ND.Text := IntToStr(VG_l_From_ND);
end;
if VG_l_To_ND <> 0 then
begin
chk_ND.Checked := True;
se_To_ND.Text := IntToStr(VG_l_to_ND);
end;
{選擇了票品面值}
if VG_l_PPMZ <> 0 then
begin
chk_PPMZ.Checked := True;
edt_PPMZ.Enabled := True;
edt_PPMZ.Text := FloatToStr(VG_l_PPMZ);
end;
{選擇了票品售價}
if VG_l_PPSJ <> 0 then
begin
chk_PPSJ.Checked := True;
edt_SJ.Enabled := True;
edt_SJ.Text := FloatToStr(VG_l_PPSJ);
end;
{填寫默認志號}
if VG_l_ZH <> '' then
begin
chk_ZH.Checked := True;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -