?? startdate.pas
字號(hào):
{*******************************************************}
{ }
{ }
{ }
{ 中軟金馬公司版權(quán)所有。2002.12前 }
{ }
{ 編制:中軟金馬郵資票品項(xiàng)目開發(fā)組 }
{ }
{ }
{*******************************************************}
(*
本模塊在省級(jí)系統(tǒng)管理里面調(diào)用。
*)
{有兩點(diǎn)
1. 在雜表中設(shè)置年度和月份
2. 自制基礎(chǔ)信息}
unit StartDate;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Menus, libproc, Db, DBTables, Spin, Buttons, ExtCtrls, DBCtrls,
Grids, DBGrids, sqlstrings;
type
TfrmStartDate = class(TForm)
GBo_CSH: TGroupBox;
sp1: TSpinEdit;
sp2: TSpinEdit;
Label1: TLabel;
StoredProc1: TStoredProc;
BitBtn1: TBitBtn;
button2: TBitBtn;
Query1: TQuery;
GBo_YJ: TGroupBox;
SE_yj_r: TSpinEdit;
Label2: TLabel;
procedure Button2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
function DoCheckGXDW: boolean;
function DoSetYJRQ: boolean;
public
{ Public declarations }
end;
function ShowStartDate(p_typ: TIO_TYPE; const SenderTag: Integer): Boolean;
function ShowYJDate(p_typ: TIO_TYPE; const SenderTag: Integer): Boolean;
var
frmStartDate: TfrmStartDate;
v_b_IsYJ: boolean;
implementation
uses datas;
{$R *.DFM}
var
l_typ: TIO_TYPE;
function ShowStartDate(p_typ: TIO_TYPE; const SenderTag: Integer): Boolean;
var
v_s_sql: string;
begin
Result := false;
v_b_IsYJ := false;
l_typ := p_typ;
Application.CreateForm(TfrmStartDate, frmStartDate);
with frmStartDate do
try
tag := SenderTag;
if CheckRight(frmStartDate, [BitBtn1]) then
begin
Caption := CYZPPTIT;
bitbtn1.Caption := pCaption[integer(l_typ)] + '設(shè)置';
case p_typ of
io_jyp:
v_s_sql := 'jyp_jyny';
io_txp:
v_s_sql := 'txp_jyny';
io_yp:
v_s_sql := 'yp_jyny';
io_grp:
v_s_sql := 'grp_jyny';
end;
GetData('SELECT ZFXZ FROM TGS_ZB WHERE DM = ''' + v_s_sql + '''');
if data.qrytmp.Fields[0].IsNull then
begin
sp1.Value := VG_Year;
sp2.Value := VG_Month;
end
else
with data.qrytmp do
begin
sp1.Value := strToInt(Copy(FieldByName('ZFXZ').Asstring, 1, 4));
sp2.Value := strToInt(Copy(FieldByName('ZFXZ').Asstring, 5, 2));
end;
result := ShowModal = MB_OK;
end;
finally
Free;
end;
end;
function ShowYJDate(p_typ: TIO_TYPE; const SenderTag: Integer): Boolean;
var
v_s_sql: string;
begin
Result := false;
v_b_IsYJ := true;
l_typ := p_typ;
Application.CreateForm(TfrmStartDate, frmStartDate);
with frmStartDate do
try
Tag := SenderTag;
if CheckRight(frmStartDate, [BitBtn1]) then
begin
Caption := CYZPPTIT;
bitbtn1.Caption := pCaption[integer(l_typ)] + '設(shè)置';
case p_typ of
io_jyp:
v_s_sql := 'jyp_yjrq';
io_txp:
v_s_sql := 'txp_yjrq';
io_yp:
v_s_sql := 'yp_yjrq';
io_grp:
v_s_sql := 'grp_yjrq';
end;
Query1.Close;
Query1.SQL.Clear;
v_s_sql := 'SELECT ZFXZ FROM TGS_ZB WHERE DM = ''' + v_s_sql + '''';
Query1.SQL.Add(v_s_sql);
Query1.Open;
if Query1.Fields[0].IsNull then
SE_yj_r.Text := '25'
else
SE_yj_r.Text := Query1.Fields[0].AsString;
result := ShowModal = MB_OK;
end;
finally
Free;
end;
end;
procedure TfrmStartDate.Button2Click(Sender: TObject);
begin
close;
end;
procedure TfrmStartDate.BitBtn1Click(Sender: TObject);
begin
if v_b_isYJ then
begin
DoSetYJRQ;
exit;
end;
if not DoCheckGXDW then
exit;
with StoredProc1 do
begin
Close;
Params[1].Asstring := Trim(floatTostr(sp1.value));
Params[2].Asstring := Trim(floatTostr(sp2.value));
Params[3].AsInteger := integer(l_typ) + 1;
data.dm.StartTransaction;
try
ExecProc;
except
if data.dm.InTransaction then data.dm.Rollback;
raise;
end;
if data.dm.InTransaction then
if Params[0].AsInteger = 0 then
data.dm.Commit
else
data.dm.Rollback;
case Params[0].AsInteger of
0:
CHQMsgBox(pCaption[integer(l_typ)] + '啟用日期設(shè)置成功!');
1:
CHQMsgBox(pCaption[integer(l_typ)] + '啟用日期設(shè)置失敗!請(qǐng)與軟件開發(fā)商聯(lián)系。');
end;
end;
end;
function TfrmStartDate.DoCheckGXDW: boolean;
const
C_GXDW_BJSQL = 'select count(DWDM) from TGS_GXDWSJB where (BJ=''1'')';
C_GXDW_XJSQL = 'select count(DWDM) from TGS_GXDWSJB where (ZJXJ=''1'')';
C_KFBSQL = 'select count(KFDM) from TGS_KFB where not KFDM in (''-1'',''-2'')';
C_INITED = 'select ZFXZ from TGS_ZB where DM = %s';
function DoRunCheckSQL(const ASQL, AMsgStr: string; Chk_RQ: boolean = false): boolean;
begin
Result := true;
with query1 do
begin
Close;
sql.Clear;
if Chk_RQ then
case l_typ of
io_jyp:
sql.Add(format(ASQL, ['''jyp_csh_n''']));
io_txp:
sql.Add(format(ASQL, ['''txp_csh_n''']));
io_yp:
sql.Add(format(ASQL, ['''yp_csh_n''']));
io_grp:
sql.Add(format(ASQL, ['''grp_csh_n''']));
end
else
sql.Add(ASQL);
Open;
if Chk_RQ then
begin
if Length(Fields[0].AsString) > 0 then
begin
Result := false;
CHQMsgBox(AMsgStr);
exit;
end
end
else if Fields[0].AsFloat = 0 then
begin
Result := false;
CHQMsgBox(AMsgStr);
exit;
end;
end;
end;
begin
Result := false;
if not DoRunCheckSQL(C_GXDW_BJSQL, '請(qǐng)先維護(hù)本單位信息!') then exit;
if not DoRunCheckSQL(C_GXDW_XJSQL, '請(qǐng)先維護(hù)下級(jí)單位信息!') then exit;
if not DoRunCheckSQL(C_KFBSQL, '請(qǐng)先維護(hù)庫房信息!') then exit;
if not DoRunCheckSQL(C_INITED, '系統(tǒng)啟用日期已經(jīng)設(shè)置!', true) then exit;
Result := true;
end;
function TfrmStartDate.DoSetYJRQ: boolean;
const
c_s_sql = 'update TGS_ZB set ZFXZ=''%s'' where DM=''%s''';
function formatRQ: string;
begin
Result := SE_yj_r.Text;
if Length(SE_yj_r.Text) = 1 then
Result := '0' + SE_yj_r.Text;
end;
begin
Result := true;
try
with Query1 do
begin
Close;
SQL.Clear;
case l_typ of
io_jyp:
SQL.Add(format(c_s_sql, [formatRQ, 'jyp_yjrq']));
io_txp:
SQL.Add(format(c_s_sql, [formatRQ, 'txp_yjrq']));
io_yp:
SQL.Add(format(c_s_sql, [formatRQ, 'yp_yjrq']));
io_grp:
SQL.Add(format(c_s_sql, [formatRQ, 'grp_yjrq']));
end;
ExecSQL;
end;
CHQMsgBox(pCaption[integer(l_typ)] + '月結(jié)日設(shè)置成功!');
except
CHQMsgBox(pCaption[integer(l_typ)] + '月結(jié)日設(shè)置失敗!請(qǐng)與軟件開發(fā)商聯(lián)系。');
end;
end;
procedure TfrmStartDate.FormCreate(Sender: TObject);
begin
GBo_CSH.Left := 18;
GBo_CSH.Top := 26;
GBo_YJ.Left := 18;
GBo_YJ.Top := 26;
GBo_CSH.Visible := not v_b_isYJ;
GBo_YJ.Visible := v_b_isYJ;
BitBtn1.BringToFront;
end;
{
又是一個(gè),秋天晴朗的早晨
}
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -