?? sj_pplbwh.pas
字號:
{*******************************************************}
{ }
{ 集郵品類別維護 }
{ }
{ 中軟金馬公司版權所有。2002.12前 }
{ }
{ 編制:中軟金馬郵資票品項目開發組 }
{ }
{ }
{*******************************************************}
(*
本模塊在省級系統管理模塊里面調用。
*)
unit Sj_pplbwh;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, Db, DBTables, StdCtrls, Mask, DBCtrls, Buttons, RXDBCtrl, ClipBrd,
RXCtrls, ExtCtrls;
type
TFrm_pplbwh = class(TForm)
qry_LB1: TQuery;
ds_LB1: TDataSource;
bbtn_Add: TBitBtn;
bbtn_Modify: TBitBtn;
bbtn_Delete: TBitBtn;
bbtn_Save: TBitBtn;
bbtn_Cancel: TBitBtn;
gb_LB2: TGroupBox;
dbe_LB2: TDBEdit;
dbe_MC2: TDBEdit;
dbe_BH2: TDBEdit;
lbl_BH2: TLabel;
lbl_MC2: TLabel;
lbl_LB2: TLabel;
lbl_JYPLDM2: TLabel;
bbtn_Exit: TBitBtn;
qry_LB2: TQuery;
ds_LB2: TDataSource;
RXDBG_LB1: TRxDBGrid;
RXDBG_LB2: TRxDBGrid;
gb_LB1: TGroupBox;
lbl_BH1: TLabel;
lbl_MC1: TLabel;
lbl_LB1: TLabel;
lbl_JYPLDM1: TLabel;
dbe_JYPLDM1: TDBEdit;
dbe_LB1: TDBEdit;
dbe_MC1: TDBEdit;
dbe_BH1: TDBEdit;
qry_Tmp: TQuery;
dbe_JYPLDM2: TEdit;
upSQL_1: TUpdateSQL;
upSQL_2: TUpdateSQL;
Panel11: TPanel;
RxLabel1: TRxLabel;
DWMC: TLabel;
Panel1: TPanel;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
procedure FormCreate(Sender: TObject);
procedure bbtn_ExitClick(Sender: TObject);
procedure RXDBG_LB1Enter(Sender: TObject);
procedure RXDBG_LB2Enter(Sender: TObject);
procedure qry_LB1AfterScroll(DataSet: TDataSet);
procedure bbtn_AddClick(Sender: TObject);
procedure bbtn_CancelClick(Sender: TObject);
procedure bbtn_DeleteClick(Sender: TObject);
procedure bbtn_ModifyClick(Sender: TObject);
procedure bbtn_SaveClick(Sender: TObject);
procedure qry_LB2AfterScroll(DataSet: TDataSet);
procedure dbe_JYPLDM2Exit(Sender: TObject);
procedure qry_LB1BeforeInsert(DataSet: TDataSet);
procedure qry_LB2BeforeInsert(DataSet: TDataSet);
procedure RXDBG_LB1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure RXDBG_LB2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
procedure Edit_State(State: Integer); {設置界面狀態}
function if_Can_Modify: Boolean; {數據是否允許被修改}
function Test_Fit_Ok: Boolean; {測試是否已經填寫OK}
function Test_Can_Modify: Boolean; {測試是否允許對選擇的類進行修改} {判斷是否在其他表中存在關聯關系}
function Test_Exist_Sub: Boolean; {測試大類是否存在小類,如果存在,則不能修改}
function Sub_Test_Can_Modify(l_lb, l_BH: string): Boolean; {測試是否允許對選擇地類進行修改}
function Test_Can_Save: Boolean; {測試是否能夠保存}
public
{ Public declarations }
end;
var
Frm_pplbwh: TFrm_pplbwh;
implementation
uses datas,Pub;
{$R *.DFM}
var
Sys_State: Integer; {標志當前系統處于的狀態}
procedure TFrm_pplbwh.FormCreate(Sender: TObject);
begin
Caption := CYZPPTIT;
DWMC.Caption := '使用單位:' + VG_UnitName;
with qry_LB1 do
begin
Close;
SQL.Text := 'Select JYPLDM,LB,MC,BH,ZT from TG_JYPLDMB where Length(JYPLDM)=1 order by JYPLDM';
Open;
end;
Edit_State(0);
GetAllColWidth(Self);
end;
procedure TFrm_pplbwh.qry_LB1AfterScroll(DataSet: TDataSet);
begin
with qry_LB2 do
begin
Close;
SQL.Text := 'Select JYPLDM,LB,MC,BH,ZT from TG_JYPLDMB where Length(JYPLDM)=3 and SubStr(JYPLDM,1,1)=''' + qry_LB1.FieldByName('JYPLDM').AsString + ''' order by JYPLDM';
Open;
end;
end;
procedure TFrm_pplbwh.RXDBG_LB1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if qry_LB1.FieldByName('ZT').AsString = '0' then
RXDBG_LB1.Canvas.Font.Color := clred;
RXDBG_LB1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
procedure TFrm_pplbwh.RXDBG_LB2DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if qry_LB2.FieldByName('ZT').AsString = '0' then
RXDBG_LB2.Canvas.Font.Color := clred;
RXDBG_LB2.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
procedure TFrm_pplbwh.qry_LB2AfterScroll(DataSet: TDataSet);
begin
dbe_JYPLDM2.Text := Copy(qry_LB2.FieldByName('JYPLDM').AsString, 2, 2);
end;
procedure TFrm_pplbwh.bbtn_ExitClick(Sender: TObject);
begin
Close;
end;
procedure TFrm_pplbwh.dbe_JYPLDM2Exit(Sender: TObject);
begin
if (Sys_State = 3) or (Sys_State = 2) then
begin
qry_LB2.Edit;
if Length(dbe_JYPLDM2.Text) = 1 then
dbe_JYPLDM2.Text := '0' + dbe_JYPLDM2.Text;
qry_LB2.FieldByName('JYPLDM').AsString := qry_LB1.FieldByName('JYPLDM').AsString + dbe_JYPLDM2.Text;
end;
end;
procedure TFrm_pplbwh.RXDBG_LB1Enter(Sender: TObject);
begin
gb_LB1.Visible := True;
gb_LB2.Visible := False;
end;
procedure TFrm_pplbwh.RXDBG_LB2Enter(Sender: TObject);
begin
gb_LB1.Visible := False;
gb_LB2.Visible := True;
end;
procedure TFrm_pplbwh.qry_LB1BeforeInsert(DataSet: TDataSet);
begin
Abort;
end;
procedure TFrm_pplbwh.qry_LB2BeforeInsert(DataSet: TDataSet);
begin
Abort;
end;
{===============================================================================}
{新增}
procedure TFrm_pplbwh.bbtn_AddClick(Sender: TObject);
var
Before_Insert: TDataSetNotifyEvent;
begin
if gb_LB1.Visible = True then
begin {增加大類} {}
Edit_State(1);
dbe_JYPLDM1.SetFocus;
with qry_LB1 do
begin
Before_Insert := qry_LB1.BeforeInsert;
qry_LB1.BeforeInsert := nil;
Append;
qry_LB1.BeforeInsert := Before_Insert;
FieldByName('LB').AsString := '大類';
end;
end
else
begin {增加小類} {}
Edit_State(2);
dbe_JYPLDM2.SetFocus;
with qry_LB2 do
begin
Before_Insert := qry_LB2.BeforeInsert;
qry_LB2.BeforeInsert := nil;
Append;
qry_LB2.BeforeInsert := Before_Insert;
FieldByName('LB').AsString := '小類';
end;
end;
end;
{-------------------------------------------------------------------------------}
{修改}
procedure TFrm_pplbwh.bbtn_ModifyClick(Sender: TObject);
begin
if if_Can_Modify = False then
begin
CHQMsgBox('當前記錄屬于系統必須數據,不能修改!');
Exit;
end;
if Test_Can_Modify = False then
begin
CHQMsgBox('當前記錄已經在系統中使用,不能再進行修改!');
Exit;
end;
if Test_Exist_Sub = True then
begin
CHQMsgBox('當前大類下已經存在小類,不能再進行修改!');
Exit;
end;
if gb_LB1.Visible = True then
begin {增加大類} {}
if qry_LB1.IsEmpty = True then Exit;
Edit_State(1);
qry_LB1.Edit;
end
else
begin {增加小類} {}
if qry_LB2.IsEmpty = True then Exit;
Edit_State(3);
qry_LB2.Edit;
end;
end;
{-------------------------------------------------------------------------------}
{刪除數據}
procedure TFrm_pplbwh.bbtn_DeleteClick(Sender: TObject);
var
l_JYPLDM: string;
l_JYPLDM_XL: string;
SQLString: string;
begin
if gb_LB1.Visible = True then
begin
if qry_LB1.IsEmpty = True then
Exit;
end
else if qry_LB2.IsEmpty = True then
Exit;
if if_Can_Modify = False then
begin
CHQMsgBox('當前記錄屬于系統必須數據,不能刪除!');
Exit;
end;
if Test_Can_Modify = False then
begin
CHQMsgBox('當前記錄已經在系統中使用,不能刪除!');
Exit;
end;
if Test_Exist_Sub = True then
begin
CHQMsgBox('當前大類下已經存在小類,不能刪除!');
Exit;
end;
if CHQMsgBox('確實要刪除記錄嗎', 2) = mrNo then
Exit;
if gb_LB1.Visible = True then
begin
SQLString := 'Delete from TG_JYPLDMB where JYPLDM=''' + qry_LB1.FieldByName('JYPLDM').AsString + '''';
qry_LB1.Prior;
if qry_LB1.Bof = True then qry_LB1.Next;
l_JYPLDM := qry_LB1.FieldByName('JYPLDM').AsString;
with qry_Tmp do
begin
Close;
SQL.Text := SQLString;
ExecSQL;
end;
FormCreate(Sender); {重新讀取數據} {}
qry_LB1.Locate('JYPLDM', l_JYPLDM, []);
end
else
begin
SQLString := 'Delete from TG_JYPLDMB where JYPLDM=''' + qry_LB2.FieldByName('JYPLDM').AsString + '''';
qry_LB2.Prior;
if qry_LB2.Bof = True then qry_LB2.Next;
l_JYPLDM_XL := qry_LB2.FieldByName('JYPLDM').AsString;
l_JYPLDM := qry_LB1.FieldByName('JYPLDM').AsString;
with qry_Tmp do
begin
Close;
SQL.Text := SQLString;
ExecSQL;
end;
FormCreate(Sender); {重新讀取數據} {}
qry_LB1.Locate('JYPLDM', l_JYPLDM, []);
qry_LB2.Locate('JYPLDM', l_JYPLDM_XL, []);
RXDBG_LB2.SetFocus;
end;
end;
{-------------------------------------------------------------------------------}
{保存}
procedure TFrm_pplbwh.bbtn_SaveClick(Sender: TObject);
begin
if Test_Fit_Ok = False then
Exit;
if Test_Can_Save = False then
begin
CHQMsgBox('已經存在此類代碼,不能保存!');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -