?? sys_jypydlx.pas
字號:
{*******************************************************}
{ }
{ 發行量類型管理 }
{ }
{ 中軟金馬公司版權所有。2002.12前 }
{ }
{ 編制:中軟金馬郵資票品項目開發組 }
{ }
{ }
{*******************************************************}
(*
本模塊在省級系統管理模塊里面調用。
*)
unit sys_jypydlx;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, ComCtrls, ImgList, ExtCtrls, StdCtrls, CheckLst, Grids,
DBGrids, ActnList, Buttons, Spin;
type
TDataState = (dsBrowse, dsInsert, dsEdit);
type
TFrm_jypydlx = class(TForm)
Qry_ydlx: TQuery;
ILi_Edit: TImageList;
Panel1: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
ActionList1: TActionList;
Act_add: TAction;
Act_del: TAction;
Act_mod: TAction;
Act_sav: TAction;
Act_can: TAction;
Act_rtn: TAction;
DS_ydlx: TDataSource;
Qry_super: TQuery;
Act_pagechange: TAction;
tabCtl_lx: TTabControl;
ImageList1: TImageList;
DBGid_ydlx: TDBGrid;
Panel2: TPanel;
chkBox_tz: TCheckListBox;
Panel3: TPanel;
Label1: TLabel;
Splitter1: TSplitter;
SpinEdit1: TSpinEdit;
Label2: TLabel;
Eit_dm: TEdit;
Label3: TLabel;
Eit_mc: TEdit;
Act_tzExit: TAction;
BitBtn7: TBitBtn;
Act_send: TAction;
procedure Act_addExecute(Sender: TObject);
procedure Act_modExecute(Sender: TObject);
procedure Act_canExecute(Sender: TObject);
procedure Act_rtnExecute(Sender: TObject);
procedure Act_pagechangeExecute(Sender: TObject);
procedure Qry_ydlxAfterScroll(DataSet: TDataSet);
procedure Act_savExecute(Sender: TObject);
procedure Act_tzExitExecute(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure chkBox_tzClickCheck(Sender: TObject);
procedure Act_delExecute(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Act_sendExecute(Sender: TObject);
private
{ Private declarations }
vlp_ba_tz: array of boolean;
vlp_sl_tz: TStringList;
FDataEditState: TDataState;
procedure SetDataEdit(const state: TDataState);
Function ExistRecord(Tablenamestr, Conditionstr: string): boolean;
Function CheckExit(): boolean;
public
{ Public declarations }
function Execute(const DB: TDatabase): boolean;
end;
var
Frm_jypydlx: TFrm_jypydlx;
implementation
uses
datas, Pub,GF_pub;
{$R *.DFM}
Function TFrm_jypydlx.CheckExit(): boolean;
begin
result := true;
if (FDataEditState <> dsBrowse) then
case CHQMsgBox('確定要放棄所做修改嗎?', 3) of
IDNo:
begin
Act_savExecute(nil);
if FDataEditState = dsBrowse then
begin
Qry_ydlx.Close;
Qry_super.Close;
if Assigned(vlp_sl_tz) then
vlp_sl_tz.Free;
end else
result := false;
end;
IDYes:
begin
Act_canExecute(nil);
Qry_ydlx.Close;
Qry_super.Close;
if Assigned(vlp_sl_tz) then
vlp_sl_tz.Free;
end;
IDCancel:
result := false;
end
else
begin
Qry_ydlx.Close;
Qry_super.Close;
if Assigned(vlp_sl_tz) then
vlp_sl_tz.Free;
end;
end;
Function TFrm_jypydlx.ExistRecord(Tablenamestr, Conditionstr: string): boolean;
begin
with Qry_super do
begin
CLose;
SQL.Clear;
SQL.Add('Select count(*) from ' + Tablenamestr + ' Where ' + Conditionstr);
Open;
ExistRecord := (Fields[0].Asinteger > 0);
end;
end;
procedure TFrm_jypydlx.SetDataEdit(const state: TDataState);
var
i: integer;
begin
FDataEditState := state;
Act_Sav.Enabled := not (state = dsBrowse);
Act_Can.Enabled := not (state = dsBrowse);
Act_add.Enabled := (state = dsBrowse);
Act_del.Enabled := (state = dsBrowse);
Act_mod.Enabled := (state = dsBrowse);
Eit_dm.ReadOnly := (state = dsBrowse) or (state = dsEdit);
Eit_mc.ReadOnly := (state = dsBrowse);
if (state = dsInsert) then
begin
Eit_dm.Text := '';
Eit_mc.Text := '';
for i:= 0 to chkBox_tz.Items.Count -1 do
chkBox_tz.Checked[i]:= false;
ActiveControl := Eit_dm;
end;
if (state = dsEdit) then
begin
SetLength(vlp_ba_tz, chkBox_tz.Items.Count);
for i:= 0 to chkBox_tz.Items.Count -1 do
if chkBox_tz.Checked[i] then
vlp_ba_tz[i] := true
else
vlp_ba_tz[i] := false;
ActiveControl := chkBox_tz;
end;
end;
function TFrm_jypydlx.Execute(const DB: TDatabase): boolean;
begin
Result := false;
if not Assigned(DB) then
exit;
Caption := CYZPPTIT;
SpinEdit1.Text := formatdatetime('YYYY',now);
if not assigned(vlp_sl_tz) then
vlp_sl_tz:= TStringList.Create;
try
Qry_ydlx.Close;
Qry_ydlx.AfterScroll := nil;
Qry_ydlx.DatabaseName := DB.DatabaseName;
Qry_super.Close;
Qry_super.DatabaseName := DB.DatabaseName;
SetDataEdit(dsBrowse);
Act_pagechangeExecute(nil);
Qry_ydlx.AfterScroll := Qry_ydlxAfterScroll;
Eit_dm.MaxLength := Qry_ydlx.FieldByName('YDLXDM').Size;
Eit_mc.MaxLength := Qry_ydlx.FieldByName('YDLXMC').Size;
Result := true;
except
CHQMsgBox('不能打開 <集郵票品發行量類型> 表 !');
exit;
end;
end;
procedure TFrm_jypydlx.Act_addExecute(Sender: TObject);
begin
SetDataEdit(dsInsert);
end;
procedure TFrm_jypydlx.Act_modExecute(Sender: TObject);
begin
if Qry_ydlx.IsEmpty then
exit;
SetDataEdit(dsEdit);
end;
procedure TFrm_jypydlx.Act_canExecute(Sender: TObject);
begin
SetDataEdit(dsBrowse);
Qry_ydlxAfterScroll(nil);
end;
procedure TFrm_jypydlx.Act_rtnExecute(Sender: TObject);
begin
close;
end;
procedure TFrm_jypydlx.Act_pagechangeExecute(Sender: TObject);
begin
if (FDataEditState <> dsBrowse) then
begin
case tabCtl_lx.TabIndex of
0:
tabCtl_lx.TabIndex := 1;
1:
tabCtl_lx.TabIndex := 0;
end;
exit;
end;
with Qry_ydlx do
begin
Close;
SQL.Clear;
case tabCtl_lx.TabIndex of
0:
SQL.Add('select distinct YDLXDM,YDLXMC from TG_YZPPYDLXB ' +
'where ND=:ND order by YDLXDM');
1:
SQL.Add('select distinct YDLXDM,YDLXMC from TG_JYPYDLXB ' +
'where ND=:ND order by YDLXDM');
end;
Params[0].Value := SpinEdit1.Text;
Open;
end;
with Qry_super do
begin
Close;
SQL.Clear;
case tabCtl_lx.TabIndex of
0:
begin
SQL.Add('select a.JHH as DM, concat(a.TMC, concat(''-'',b.MC)) as MC ' +
'from TF_PFXJHTAO a, TG_YZPPTZDM b ' +
'where a.TZDM = b.TZDM(+) and a.ND = :ND and ' +
'length(a.PPLB) = 3 and ((a.PPLB like ''1%'') or (a.PPLB like ''8%'') or (a.PPLB like ''9%'')) and a.PPLB <> ''101'' ' +
'order by a.fxl,a.xh');
Params[0].Value := SpinEdit1.Text;
end;
1:
SQL.Add('select JYPLDM as DM,MC from TG_JYPLDMB order by JYPLDM');
end;
Open;
chkBox_tz.Items.Clear;
if not Assigned(vlp_sl_tz) then
vlp_sl_tz := TStringList.Create
else
vlp_sl_tz.Clear;
while not Eof do
begin
chkBox_tz.Items.Add(FieldByName('MC').AsString);
vlp_sl_tz.Add(FieldByName('DM').AsString);
Next;
end;
end;
Qry_ydlxAfterScroll(nil);
Act_add.Enabled := tabCtl_lx.TabIndex = 1;
Act_del.Enabled := (tabCtl_lx.TabIndex = 1) and (not Qry_ydlx.IsEmpty);
Act_mod.Enabled := (tabCtl_lx.TabIndex = 1) and (not Qry_ydlx.IsEmpty);
end;
procedure TFrm_jypydlx.Qry_ydlxAfterScroll(DataSet: TDataSet);
var
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -