?? sy_lmndqljh.pas
字號:
{*******************************************************}
{ }
{ 紀(jì)特零枚年度請領(lǐng)計(jì)劃補(bǔ)錄 }
{ }
{ 中軟金馬公司版權(quán)所有。2002.12前 }
{ }
{ 編制:中軟金馬項(xiàng)目開發(fā)組 }
{ }
{ }
{*******************************************************}
(*
本模塊在省級零枚票管理模塊 需求管理部分的 紀(jì)特零枚年度請領(lǐng)計(jì)劃 菜單調(diào)用。
*)
{數(shù)據(jù)說明:
根據(jù)年度SpinEdit、本級/下級RadioGroup、單位名稱LookupComboBox刷新年度請領(lǐng)計(jì)劃DBGrid;
單位名稱LookupComboBox數(shù)據(jù)來源:TGS_GXDWSJB,直接下級&零枚業(yè)務(wù)&發(fā)貨對象
年度請領(lǐng)計(jì)劃DBGrid讀取數(shù)據(jù)來源:TY_JJNXQB_LM, TF_PFXJHTAO;寫數(shù)據(jù):TY_JJNXQB_LM。
郵票名稱Edit回車定位票品。
增加:將當(dāng)前年度、當(dāng)前單位中沒有做分配計(jì)劃的票品append到分配計(jì)劃中。
刪除:將分配計(jì)劃中當(dāng)前選中的一條記錄刪掉。
保存:將分配數(shù)量為0的記錄刪掉,提交。
2002.06 jillshao
}
unit SY_LMNDQLJH;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, DBCtrls, EHGrids, DBGridEh, Buttons, Spin, RXCtrls,
Db, DBTables, Grids, Menus, DBGrids, DBGridEhExport;
type
TDataState = (dsBrowse, dsInsert, dsEdit);
type
TFrmY_LMNDQLJH = class(TForm)
Panel5: TPanel;
XttxTitle: TRxLabel;
DWMC: TLabel;
Label8: TLabel;
SE_year: TSpinEdit;
Panel1: TPanel;
BBt_edt: TBitBtn;
BBt_sav: TBitBtn;
BBt_can: TBitBtn;
BBt_rtn: TBitBtn;
DBGE_qljh: TDBGridEh;
BBt_re: TBitBtn;
BBt_snd: TBitBtn;
Panel4: TPanel;
RG_JB: TRadioGroup;
DS_dw: TDataSource;
Qry_dw: TQuery;
Label3: TLabel;
DBLCBo_dw: TDBLookupComboBox;
Qry_qljh: TQuery;
DS_qljh: TDataSource;
USQL_qljh: TUpdateSQL;
Label1: TLabel;
Edt_ypmc: TEdit;
Qry_qljhJHH: TStringField;
Qry_qljhTX: TFloatField;
Qry_qljhSQDWDM: TStringField;
Qry_qljhND: TStringField;
Qry_qljhZT: TStringField;
Qry_qljhPPMC: TStringField;
Qry_qljhXQZTS: TFloatField;
Qry_qljhZBR: TStringField;
Qry_qljhPZR: TStringField;
Qry_qljhZDRQ: TDateTimeField;
Qry_qljhBZ: TStringField;
procedure Qry_dwAfterScroll(DataSet: TDataSet);
procedure SE_yearChange(Sender: TObject);
procedure RG_JBClick(Sender: TObject);
procedure BBt_reClick(Sender: TObject);
procedure BBt_edtClick(Sender: TObject);
procedure Qry_qljhUpdateError(DataSet: TDataSet; E: EDatabaseError;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
procedure BBt_savClick(Sender: TObject);
procedure BBt_canClick(Sender: TObject);
procedure BBt_sndClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure DBGE_qljhDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
procedure DBGE_qljhGetFooterParams(Sender: TObject; DataCol,
Row: Integer; Column: TColumnEh; AFont: TFont;
var Background: TColor; var Alignment: TAlignment;
State: TGridDrawState; var Text: string);
procedure BBt_rtnClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Qry_qljhFilterRecord(DataSet: TDataSet; var Accept: Boolean);
procedure Edt_ypmcKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Qry_qljhXQZTSSetText(Sender: TField; const Text: string);
procedure Qry_qljhBeforeInsert(DataSet: TDataSet);
private
FDataEditState: TDataState;
vlp_s_errmsg: string;
V_S_locPPMC: string;
procedure SetParams(APname, APval: string);
function DoCXSCTJ(B_IsAPP: boolean = false): boolean;
procedure SetDataEdit(const state: TDataState);
function CheckExit(): boolean;
{ Private declarations }
public
{ Public declarations }
end;
var
FrmY_LMNDQLJH: TFrmY_LMNDQLJH;
implementation
uses datas, pub;
{$R *.DFM}
procedure TFrmY_LMNDQLJH.SetParams(APname, APval: string);
begin
Qry_qljh.Close;
Qry_qljh.ParamByName(APname).AsString := APval;
Qry_qljh.Open;
end;
procedure TFrmY_LMNDQLJH.Qry_dwAfterScroll(DataSet: TDataSet);
begin
SetParams('SQDWDM', Qry_dw.FieldByName('DWDM').AsString);
end;
procedure TFrmY_LMNDQLJH.SE_yearChange(Sender: TObject);
begin
SetParams('ND', SE_year.Text);
end;
procedure TFrmY_LMNDQLJH.RG_JBClick(Sender: TObject);
begin
case RG_JB.ItemIndex of
0:
begin
DBLCBo_dw.Enabled := false;
DBLCBo_dw.Color := clBtnFace;
SetParams('SQDWDM', VG_UnitID);
BBt_re.Caption := '重新生成';
end;
1:
begin
DBLCBo_dw.Enabled := true;
DBLCBo_dw.Color := clWindow;
SetParams('SQDWDM', DBLCBo_dw.keyValue);
BBt_re.Caption := '增加';
end;
end;
BBt_snd.Enabled := (RG_JB.ItemIndex = 0);
end;
procedure TFrmY_LMNDQLJH.BBt_reClick(Sender: TObject);
var
v_JHH, v_TX: string;
begin
case RG_JB.ItemIndex of
0:
v_JHH := VG_UnitName;
1:
v_JHH := qry_dw.FieldbyName('DWMC').AsString;
end;
v_JHH := Qry_qljh.FieldByName('JHH').AsString;
v_TX := Qry_qljh.FieldByName('TX').AsString;
DoCXSCTJ;
end;
function TFrmY_LMNDQLJH.DoCXSCTJ(B_IsAPP: boolean = false): boolean;
const
c_s_del = 'delete from TY_JJNXQB_LM where ND=''%s'' and SQDWDM=''%s''';
c_s_ins1 = 'insert into TY_JJNXQB_LM(JHH, TX, SQDWDM, ND, PPMC, XQZTS, ZT, ZBR, ZDRQ) ';
c_s_ins2 = 'select a.JHH, a.TX, ''%s'', b.ND, b.TMC, 0 XQZTS, 0, ''%s'', sysdate ' +
'from TF_PFXJHTU a, TF_PFXJHTAO b ';
c_s_ins3 = 'where a.JHH=b.JHH and b.ND=''%s'' and a.TZDM=''01'' ' +
'and (a.JHH, a.TX) not in (select JHH, TX from TY_JJNXQB_LM where ND=''%s'' and SQDWDM=''%s'')';
c_s_hz = 'select JHH, TX, ''%s'', ND, PPMC TMC, sum(XQZTS) XQZTS, 0, ''%s'', sysdate from TY_JJNXQB_LM ' +
'where ND=''%s'' and SQDWDM<>''%s'' group by JHH, TX, ND, PPMC';
{ c_s_hz = 'select JHH, TX, ''%s'', ND, PPMC TMC, sum(XQZTS) XQZTS, 0, ''%s'', sysdate from TY_JJNXQB_LM ' +
'where ND=''%s'' and (JHH,TX) not in(select JHH,TX from TY_JJNXQB_LM where ND=''%s'' and SQDWDM=''%s'') group by JHH, TX, ND, PPMC';}
var
v_JHH, v_tx: string;
v_edt: boolean;
begin
result := true;
try
data.qrytmp.Close;
data.qrytmp.SQL.Clear;
if (RG_JB.ItemIndex = 1) then //下級單位app(數(shù)量0)
begin
data.qrytmp.SQL.Add(format(c_s_ins2, [Qry_qljh.ParamByName('SQDWDM').AsString, VG_UserName]));
data.qrytmp.SQL.Add(format(c_s_ins3, [SE_year.Text, SE_year.Text, Qry_qljh.ParamByName('SQDWDM').AsString]));
end
else //本單位匯總app(數(shù)量0)
begin
{ data.qrytmp.SQL.Add(format(c_s_del, [SE_year.Text, VG_UnitID]));
data.qrytmp.ExecSQL;
data.qrytmp.SQL.Clear; }
data.qrytmp.SQL.Add(format(c_s_hz, [VG_UnitID, VG_UserName, SE_year.Text, VG_UnitID]));
end;
data.qrytmp.Open;
if not data.qrytmp.IsEmpty then
begin
data.qrytmp.First;
v_JHH := data.qrytmp.FieldByName('JHH').AsString;
v_TX := data.qrytmp.FieldByName('TX').AsString;
Qry_qljh.BeforeInsert := nil;
while not data.qrytmp.Eof do
begin
v_edt := false;
if (RG_JB.ItemIndex = 0) then
if Qry_qljh.Locate('JHH;TX', varArrayOf([data.qrytmp.FieldByName('JHH').AsString, data.qrytmp.FieldByName('TX').AsString]), []) then
begin
v_edt := true;
Qry_qljh.Edit;
Qry_qljh.FieldByName('XQZTS').AsInteger := data.qrytmp.FieldByName('XQZTS').AsInteger;
end;
if not v_edt then
begin
Qry_qljh.Append;
Qry_qljh.FieldByName('JHH').AsString := data.qrytmp.FieldByName('JHH').AsString;
Qry_qljh.FieldByName('TX').AsString := data.qrytmp.FieldByName('TX').AsString;
Qry_qljh.FieldByName('SQDWDM').AsString := Qry_qljh.ParamByName('SQDWDM').AsString;
Qry_qljh.FieldByName('XQZTS').AsInteger := data.qrytmp.FieldByName('XQZTS').AsInteger;
Qry_qljh.FieldByName('ND').AsString := SE_year.Text;
Qry_qljh.FieldByName('PPMC').AsString := data.qrytmp.FieldByName('TMC').AsString;
Qry_qljh.FieldByName('ZT').AsString := '0';
Qry_qljh.FieldByName('ZBR').AsString := VG_UserName;
Qry_qljh.FieldByName('ZDRQ').AsDateTime := data.qrytmp.FieldByName('sysdate').AsDateTime;
end;
data.qrytmp.Next;
end;
SetDataEdit(dsEdit);
Qry_qljh.BeforeInsert := Qry_qljhBeforeInsert;
Qry_qljh.Locate('JHH;TX', varArrayOf([v_JHH, v_TX]), [loCaseInsensitive, loPartialKey]);
end;
except
result := false;
end;
end;
procedure TFrmY_LMNDQLJH.BBt_edtClick(Sender: TObject);
begin
if Qry_qljh.IsEmpty then
begin
CHQMsgBox('沒有可修改的數(shù)據(jù)!');
exit;
end;
SetDataEdit(dsEdit);
end;
procedure TFrmY_LMNDQLJH.SetDataEdit(const state: TDataState);
begin
FDataEditState := state;
DBGE_qljh.ReadOnly := (state = dsBrowse);
SE_year.ReadOnly := (state <> dsBrowse);
RG_JB.Enabled := (state = dsBrowse);
DBLCBo_dw.Enabled := (RG_JB.ItemIndex = 1) and (state = dsBrowse);
DBGE_qljh.ReadOnly := (State = dsBrowse);
case state of
dsEdit:
Qry_qljh.Edit;
dsBrowse:
begin
end;
end;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -