?? gj_gjppjg.pas
字號:
{*******************************************************}
{ }
{ 庫存核算價查詢 }
{ }
{ 中軟金馬公司版權所有。2002.12前 }
{ }
{ 編制:中軟金馬郵資票品項目開發組 }
{ }
{ }
{*******************************************************}
(*
省級集郵票,省級綜合查詢,省級系統管理
地市集郵票
*)
unit GJ_GJPPJG;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Spin, ExtCtrls, ActnList, Grids, DBGrids, RXCtrls, Db,
DBTables, CurrEdit, RXDBCtrl, Mask, ToolEdit, ComCtrls, Menus,
DBGridExport;
type
PStampLB = ^TStampLB;
TStampLB = Record
MC,PPLB:string;
end;
TFrm_GJKCHSJCX = class(TForm)
Panel3: TPanel;
BBt_Quit: TBitBtn;
Panel1: TPanel;
DWMC: TLabel;
Title: TRxLabel;
Qry_TUKCHSJ: TQuery;
DataSource2: TDataSource;
Qry_TAKCHSJ: TQuery;
DataSource1: TDataSource;
BBt_Add: TBitBtn;
BBt_Modify: TBitBtn;
Qry_Static: TQuery;
Qry_Static2: TQuery;
BBt_QYSXRQ: TBitBtn;
BBt_Send: TBitBtn;
BBt_Save: TBitBtn;
BBt_Cancel: TBitBtn;
UpdateSQL1: TUpdateSQL;
Qry_TAKCHSJPPDM: TStringField;
Qry_TAKCHSJZH: TStringField;
Qry_TAKCHSJTJC: TStringField;
Qry_TAKCHSJSCKCHSJ: TFloatField;
Qry_TAKCHSJKCHSJ: TFloatField;
Qry_TAKCHSJSXRQ: TDateTimeField;
Qry_TUKCHSJXH: TFloatField;
Qry_TUKCHSJPPDM: TStringField;
Qry_TUKCHSJZH: TStringField;
Qry_TUKCHSJTJC: TStringField;
Qry_TUKCHSJZDRQ: TDateTimeField;
Qry_TUKCHSJKCHSJ: TFloatField;
Qry_TUKCHSJSXRQ: TDateTimeField;
Qry_TAKCHSJSDATE: TDateTimeField;
Panel2: TPanel;
TV_PPLX: TTreeView;
Panel4: TPanel;
Splitter1: TSplitter;
Panel5: TPanel;
Panel6: TPanel;
RxDBGrid1: TRxDBGrid;
Panel7: TPanel;
Splitter2: TSplitter;
Panel8: TPanel;
RxDBGrid2: TRxDBGrid;
Panel9: TPanel;
Panel10: TPanel;
Label5: TLabel;
E_ZH: TEdit;
Label3: TLabel;
DateEdit1: TDateEdit;
Panel11: TPanel;
BBt_Delete: TBitBtn;
BBt_fs: TBitBtn;
procedure Act_QuitExecute(Sender: TObject);
procedure Qry_TAKCHSJAfterScroll(DataSet: TDataSet);
procedure FormCreate(Sender: TObject);
procedure BBt_AddClick(Sender: TObject);
procedure TV_PPLXClick(Sender: TObject);
procedure BBt_SaveClick(Sender: TObject);
procedure BBt_CancelClick(Sender: TObject);
procedure BBt_ModifyClick(Sender: TObject);
procedure Qry_TAKCHSJKCHSJSetText(Sender: TField; const Text: String);
procedure BBt_QYSXRQClick(Sender: TObject);
procedure E_ZHKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Qry_TAKCHSJSCKCHSJGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure BBt_DeleteClick(Sender: TObject);
procedure BBt_fsClick(Sender: TObject);
private
StampLB :PStampLB;
PPLB:String;
procedure PS_SetStatus(Value :Boolean = True);
protected
public
end;
function ExeJ_GJPPJG: Boolean;
var
Frm_GJKCHSJCX: TFrm_GJKCHSJCX;
implementation
uses
Datas,Pub;
{$R *.DFM}
function ExeJ_GJPPJG: Boolean;
begin
Application.CreateForm(TFrm_GJKCHSJCX, Frm_GJKCHSJCX);
with Frm_GJKCHSJCX do
begin
Caption := '郵資票品管理信息系統——系統維護';
DWMC.Caption := '使用單位:' + VG_UnitName;
result := ShowModal = MB_OK;
Free;
end;
end;
procedure TFrm_GJKCHSJCX.Act_QuitExecute(Sender: TObject);
begin
Close;
end;
procedure TFrm_GJKCHSJCX.Qry_TAKCHSJAfterScroll(DataSet: TDataSet);
begin
with Qry_TUKCHSJ do
begin
Close;
if Qry_TAKCHSJ.IsEmpty then Exit;
Prepare;
ParamByName('PPDM').AsString:=Qry_TAKCHSJ.FieldByName('PPDM').AsString;
Open;
end;
end;
procedure TFrm_GJKCHSJCX.FormCreate(Sender: TObject);
var
DL :String;
vl_Node:TTreeNode;
begin
DWMC.Caption := ' 使用單位:'+VG_UnitName;
PS_SetStatus;
with Qry_Static do
begin
Close;
SQL.Clear;
SQL.Add ('SELECT DISTINCT DL,SUBSTR(YZLDM,1,1) FROM TG_YZPPLDMB ORDER BY SUBSTR(YZLDM,1,1)');
Open;
while not Eof do
begin
vl_Node :=TV_PPLX.Items.Add(nil,Fields[0].AsString);
dl := Fields[0].AsString ;
with Qry_Static2 do
begin
Close;
SQL.Clear;
SQL.Add ('SELECT MC,YZLDM FROM TG_YZPPLDMB');
SQL.Add ('WHERE DL = '''+dl+''' order by YZLDM ');
Open;
while not Eof do
begin
New(StampLB);
StampLB^.MC:=FieldByName('MC').Asstring;
StampLB^.PPLB:=FieldByName('YZLDM').Asstring;
TV_PPLX.Items.AddChildObject(vl_Node,StampLB^.MC,StampLB);;
Next;
end;
end;
Next;
end;
end;
GetAllColWidth(Self);
end;
procedure TFrm_GJKCHSJCX.BBt_AddClick(Sender: TObject);
begin
if TV_PPLX.Selected.Level=0 then Exit;
with Qry_TAKCHSJ do
begin
Close;
Prepare;
ParamByName('PPLB').AsString := 'PPLB';
Open;
end;
with Qry_Static do
begin
Close;
SQL.Text := ' SELECT TDM, ZH, TJC, TPSJ, FXRQ FROM tb_yzpptxxb Y, Tg_GJPPJGB G '
+ ' WHERE Y.TDM = G.PPDM(+) AND G.KCHSJ IS NULL AND Y.pplb=:pplb ORDER BY TDM ';
Prepare;
ParamByName('PPLB').AsString := PPLB;
Open;
Qry_TAKCHSJ.DisableControls;
while not Eof do
begin
Qry_TAKCHSJ.Append;
// SELECT G.PPDM, ZH, TJC, G.SCKCHSJ, G.KCHSJ, G.SXRQ
Qry_TAKCHSJ.InsertRecord([FieldByName('TDM').Asstring ,FieldByName('ZH').Asstring ,FieldByName('TJC').Asstring , 0, FieldByName('TPSJ').AsInteger , FieldByName('FXRQ').AsDateTime ]);
Next;
end;
Qry_TAKCHSJ.EnableControls;
Close;
end;
PS_SetStatus(False);
end;
procedure TFrm_GJKCHSJCX.TV_PPLXClick(Sender: TObject);
var
Node:TTreeNode;
begin
Node:=TV_PPLX.Selected;
if Node=nil then Exit;
if Node.Level=0 then Exit;
PPLB:=PStampLB(Node.Data)^.PPLB;
with Qry_TAKCHSJ do
begin
Close;
Prepare;
ParamByName('PPLB').AsString := PPLB;
if E_ZH.Text = '' then
ParamByName('ZH').AsString := '%%'
else
ParamByName('ZH').AsString := UpperCase(E_ZH.Text)+'%';
Open;
end;
{ with Qry_TAKCHSJ do
begin
Close;
Prepare;
ParamByName('PPLB').AsString := PPLB;
ParamByName('ZH').AsString := '%%';
Open;
end; }
Qry_TAKCHSJAfterScroll(nil);
end;
procedure TFrm_GJKCHSJCX.BBt_SaveClick(Sender: TObject);
begin
with Qry_TAKCHSJ do
begin
Database.StartTransaction;
try
ApplyUpdates;
Database.Commit;
except
Database.RollBack;
CHQMsgBox('數據存儲錯誤!');
exit;
end;
CommitUpdates; //清除緩存的內容
end;
TV_PPLXClick(nil);
PS_SetStatus();
end;
procedure TFrm_GJKCHSJCX.PS_SetStatus(Value :Boolean= True);
begin
BBt_Add.Enabled := Value;
BBt_QYSXRQ.Enabled := Value;
BBt_Modify.Enabled := Value;
BBt_Send.Enabled := Value;
BBt_Save.Enabled := not Value;
BBt_Cancel.Enabled := not Value;
TV_PPLX.Enabled := Value;
E_ZH.Enabled := Value;
RxDBGrid1.ReadOnly := Value;
end;
procedure TFrm_GJKCHSJCX.BBt_CancelClick(Sender: TObject);
begin
TV_PPLXClick(nil);
PS_SetStatus;
end;
procedure TFrm_GJKCHSJCX.BBt_ModifyClick(Sender: TObject);
begin
if Qry_TAKCHSJ.IsEmpty then Exit;
Qry_TAKCHSJ.Edit ;
RxDBGrid1.SetFocus ;
PS_SetStatus(False);
end;
procedure TFrm_GJKCHSJCX.Qry_TAKCHSJKCHSJSetText(Sender: TField;
const Text: String);
begin
Qry_TAKCHSJSCKCHSJ.AsInteger := Qry_TAKCHSJKCHSJ.OldValue;
Qry_TAKCHSJSDATE.AsString :='';
Sender.AsInteger := Trunc(StrToFloat(Text)*100);
end;
procedure TFrm_GJKCHSJCX.BBt_QYSXRQClick(Sender: TObject);
begin
if Qry_TAKCHSJ.IsEmpty then Exit;
if CHQMsgBox('確實要修改生效日期嗎?', 2) = IDNO then Exit;
with Qry_Static do
begin
Close;
SQL.Clear ;
SQL.Text := ' Update TG_GJPPJGB set SXRQ =:SXRQ , SDate= '''' where EXISTS(select ''X'' from TB_YZPPTXXB where TG_GJPPJGB.PPDM = TB_YZPPTXXB.TDM AND substr(TG_GJPPJGB.PPDM,1,3)=:PPLB ';
if E_ZH.Text <> '' then
SQL.Text := SQL.Text + ' AND TB_YZPPTXXB.ZH like '''+UpperCase(E_ZH.Text)+'%''';
SQL.Text := SQL.Text + ' )';
Prepare;
ParamByName('SXRQ').AsDateTime := DateEdit1.Date;
ParamByName('PPLB').AsString := PPLB;
EXECSQL;
end;
TV_PPLXClick(nil);
end;
procedure TFrm_GJKCHSJCX.E_ZHKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_Return then
begin
with Qry_TAKCHSJ do
begin
Close;
Prepare;
ParamByName('PPLB').AsString := PPLB;
ParamByName('ZH').AsString := UpperCase(E_ZH.Text)+'%';
Open;
end;
Qry_TAKCHSJAfterScroll(nil);
end;
// Qry_TAKCHSJ.Locate('ZH',E_ZH.Text,[loCaseInsensitive, loPartialKey]);
end;
procedure TFrm_GJKCHSJCX.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
// CloseForm(BBt_Save,Action);
SaveAllColWidth(Self);
end;
procedure TFrm_GJKCHSJCX.Qry_TAKCHSJSCKCHSJGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
CurrGetText(Sender, Text, DisplayText);
end;
procedure TFrm_GJKCHSJCX.BBt_DeleteClick(Sender: TObject);
begin
if Qry_TUKCHSJ.IsEmpty then Exit;
if CHQMsgBox('確實要刪除嗎?', 2) = IDNO then Exit;
with Qry_Static do
begin
Close;
SQL.Text := ' DELETE TG_GJPPJGJLB where PPDM = :PPDM and SXRQ = :SXRQ and ZDRQ = :ZDRQ';
Prepare;
ParamByName('PPDM').AsString :=Qry_TUKCHSJ.FieldByName('PPDM').AsString;
ParamByName('SXRQ').AsDateTime:=Qry_TUKCHSJ.FieldByName('SXRQ').AsDateTime;
ParamByName('ZDRQ').AsDateTime:=Qry_TUKCHSJ.FieldByName('ZDRQ').AsDateTime;
ExecSQL;
end;
Qry_TAKCHSJAfterScroll(nil);
end;
procedure TFrm_GJKCHSJCX.BBt_fsClick(Sender: TObject);
// VG_SQLWhere:=' select * from TG_GJPPJGB '
// +' where SDATE IS NULL '; , false
// SendData('select * from TG_GJPPJGB where 1=1', 'TG_GJPPJGB', false);
var
ISQL, USQL : string;
begin
if CHQMsgBox('確定要向下級發送國家庫存核算價嗎?', 2)=IDNo then
exit;
ISQL := 'Insert into TG_GJPPJGB_caco(PPDM, KCHSJ, SXRQ, SCKCHSJ, BZ, SDATE, COMM_DEPT) Select a.PPDM, a.KCHSJ, a.SXRQ, a.SCKCHSJ, a.BZ, sysdate, b.dwdm from TG_GJPPJGB a, tgs_gxdwsjb b where b.zjxj=''1''';
USQL := 'UPDATE TG_GJPPJGB SET SDATE = SYSDATE';
data.dm.StartTransaction;
try
SetData(ISQL);
SetData(USQL);
data.dm.Commit;
except
if data.dm.InTransaction then
data.dm.rollback;
raise exception.Create('數據發送失敗!');
end;
CHQMsgBox('數據發送成功!');
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -