?? ss_jypbhbh.pas
字號:
{*******************************************************}
{ }
{ 集郵票包號版號初始化 }
{ }
{ 中軟金馬公司版權(quán)所有。2002.12前 }
{ }
{ 編制:中軟金馬郵資票品項目開發(fā)組 }
{ }
{ }
{*******************************************************}
(*
本模塊在省級系統(tǒng)管理模塊里的集郵票里面調(diào)用。
*)
unit SS_JYPBHBH;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
FORMBASE, ExtCtrls, ModiPanel, Db, DBTables, RxQuery, RXDBCtrl, StdCtrls,
Buttons, Grids, DBGrids, RXCtrls;
type
Tfrm_JYPBHBHCSH = class(TFFormBase)
ModiPanel1: TModiPanel;
qryYZPPTXXB: TRxQuery;
DataSource1: TDataSource;
qryBHBH: TQuery;
UpdateSQL2: TUpdateSQL;
DataSource2: TDataSource;
Panel1: TPanel;
Label2: TLabel;
Label3: TLabel;
cmbKFH: TComboBox;
Edit1: TEdit;
DBGrid1: TDBGrid;
RxDBGrid1: TRxDBGrid;
Panel11: TPanel;
RxLabel1: TRxLabel;
DWMC: TLabel;
procedure ModiPanel1BtnClick(Index: TBtnVisible);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure cmbKFHChange(Sender: TObject);
procedure qryYZPPTXXBAfterOpen(DataSet: TDataSet);
procedure qryBHBHUpdateError(DataSet: TDataSet; E: EDatabaseError;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
procedure qryYZPPTXXBUpdateError(DataSet: TDataSet; E: EDatabaseError;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
private
{ Private declarations }
FDtState: TDataState;
function Save: Boolean;
procedure SetState(Value: TdataState);
procedure InitData;
public
{ Public declarations }
end;
function Show_JYPBHBHCSH: Boolean;
var
frm_JYPBHBHCSH: Tfrm_JYPBHBHCSH;
implementation
{$R *.DFM}
uses Pub;
function Show_JYPBHBHCSH: Boolean;
begin
result := false;
Application.CreateForm(Tfrm_JYPBHBHCSH, frm_JYPBHBHCSH); {}
with frm_JYPBHBHCSH do {FFormBase1}
try
if CheckRight(frm_JYPBHBHCSH, [ModiPanel1]) then
begin
Caption := CYZPPTIT;
DWMC.Caption := '使用單位:' + VG_UnitName;
result := ShowModal = MB_OK;
end;
finally
Free;
end;
end;
procedure Tfrm_JYPBHBHCSH.SetState(Value: TdataState);
begin
FDtState := Value;
ModiPanel1.ChangeMode(FDtState = dtBrowse);
Panel1.Enabled := FDtState = dtBrowse;
DBGrid1.ReadOnly := FDtState = dtBrowse;
with qryBHBH do
case Fdtstate of
dtBrowse: ; {browse}
dtinsert: Append; {append}
dtedit: Edit; {edit}
end;
end;
function Tfrm_JYPBHBHCSH.Save: Boolean;
begin
with qryBHBH do {query}
begin
result := True;
First;
while not Eof do
begin
if FieldByName('QSBH').Asstring = '' then
begin
result := False;
break;
end;
Edit;
FieldByName('KFDM').Asstring := qryYZPPTXXB.FieldByName('KFDM').Asstring;
FieldByName('PPDM').Asstring := qryYZPPTXXB.FieldByName('PPDM').Asstring;
post;
Next;
end;
if not result then exit;
Database.StartTransaction;
try
applyupdates;
except
if Database.InTransaction then Database.RollBack;
if errMsg = '' then
raise
else
raise exception.Create(errMsg);
end;
commitupdates;
Database.Commit;
end;
result := True;
SetState(dtBrowse);
end;
procedure Tfrm_JYPBHBHCSH.ModiPanel1BtnClick(Index: TBtnVisible);
begin
inherited;
case index of
bnAdd: SetState(dtInsert);
bnDelete:
if CHQMsgBox(MSG_DELETE, 2) = IDYES then
with qryBHBH do {query}
begin
Database.StartTransaction;
try
Delete; {query1}
Database.Commit;
except
if Database.InTransaction then Database.RollBack;
if errMsg = '' then
raise
else
raise exception.Create(errMsg);
end;
end;
bnEdit: SetState(dtEdit);
bnSave: Save;
bnCancel:
if CHQMsgBox('取消編輯, 確定嗎?', 2) = IDYES then
begin
qryBHBH.Cancelupdates; {query}
SetState(dtBrowse);
end;
bnPrint: {print}
;
bnClose: Close;
end;
end;
procedure Tfrm_JYPBHBHCSH.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
if (FDtstate in [dtInsert, dtEdit]) then
case CHQMsgBox(MSG_EXITSAVE, 3) of
IDYES:
if not Save then Action := caNone;
IDCANCEL: Action := caNone;
end;
end;
procedure Tfrm_JYPBHBHCSH.FormCreate(Sender: TObject);
const
KFSQL = 'SELECT KFDM||'' ''||KFMC FROM TGS_KFB where KFDM not in (''-1'',''-2'')';
begin
inherited;
ModiPanel1.FButtons[bnEdit].Tag := 201;
InitList(cmbKFH.Items, KFSQL);
if cmbKFH.Items.Count > 0 then cmbKFH.ItemIndex := 0;
InitData;
qryBHBH.prepare;
qryBHBH.open;
SetState(dtBrowse);
end;
procedure Tfrm_JYPBHBHCSH.InitData;
var
kfdm: string;
begin
kfdm := Copy(cmbKFH.Text, 1, pos(' ', cmbKFH.Text) - 1);
SetMacro(qryYZPPTXXB, 'CON', ' KFDM = ''' + kfdm + '''');
end;
procedure Tfrm_JYPBHBHCSH.Edit1Change(Sender: TObject);
begin
inherited;
if Edit1.Text <> '' then
qryYZPPTXXB.Locate('ZH', Edit1.Text, [loCaseInsensitive, loPartialKey]);
end;
procedure Tfrm_JYPBHBHCSH.cmbKFHChange(Sender: TObject);
begin
inherited;
InitData;
end;
procedure Tfrm_JYPBHBHCSH.qryYZPPTXXBAfterOpen(DataSet: TDataSet);
begin
inherited;
with DataSet do
begin
TNumericField(FieldByName('TS')).DisplayFormat := '#,##0';
end;
end;
procedure Tfrm_JYPBHBHCSH.qryBHBHUpdateError(DataSet: TDataSet;
E: EDatabaseError; UpdateKind: TUpdateKind;
var UpdateAction: TUpdateAction);
begin
inherited;
case GetErrCode(DataSet, E, ErrMsg) of
Err_NoMasterRec: errMsg := errMsg + '&_&' + Format(MST_NOREC, ['', '', '']);
Err_HasDetailRec: errMsg := errMsg + '&_&' + Format(DTL_EXSTREC, ['']);
Err_RecDouble: errMsg := errMsg + '&_&' + Format(DBL_REC, ['此票品的起始版號']);
Err_NotNull: errMsg := errMsg + '&_&' + Format(NOTNULL, ['起始版號, 終止版號']);
else
errMsg := errMsg + '&_&' + OTHERERROR;
end;
end;
procedure Tfrm_JYPBHBHCSH.qryYZPPTXXBUpdateError(DataSet: TDataSet;
E: EDatabaseError; UpdateKind: TUpdateKind;
var UpdateAction: TUpdateAction);
begin
inherited;
case GetErrCode(DataSet, E, ErrMsg) of
Err_NoMasterRec: errMsg := errMsg + '&_&' + Format(MST_NOREC, ['', '', '']);
Err_HasDetailRec: errMsg := errMsg + '&_&' + Format(DTL_EXSTREC, ['']);
Err_RecDouble: errMsg := errMsg + '&_&' + '輸入的起始版號不能重復。';
Err_NotNull: errMsg := errMsg + '&_&' + '起始版號、終止版號不能為空。';
else
errMsg := errMsg + '&_&' + OTHERERROR;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -