?? ss_flzjd.pas
字號:
{*******************************************************}
{ }
{ 分類帳校對 }
{ }
{ 中軟金馬公司版權所有。2002.12前 }
{ }
{ 編制:中軟金馬項目開發組 }
{ }
{ }
{*******************************************************}
(*
本模塊在省級系統管理模塊 集郵票、集郵品、零枚票、市場購入票四部分的分類帳校對模塊中調用。
*)
unit SS_FLZJD;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Grids, DBGrids, RXCtrls, ExtCtrls, SqlStrings, Db,
DBTables, Menus, DBGridExport;
type
TFrm_FLZJD = class(TForm)
pnl_Body: TPanel;
pnl_title: TPanel;
pnl_Control: TPanel;
pnl_Seperate: TPanel;
pnl_HS: TPanel;
DWMC: TLabel;
lbl_Sys_Use: TLabel;
lbl_Sys_useYear: TLabel;
lbl_Sys_UseMonth: TLabel;
lbl_Search: TLabel;
bbtn_Quit: TBitBtn;
bbtn_Find: TBitBtn;
bbtn_Print: TBitBtn;
rxlbl_Title: TRxLabel;
Pnl_Condition: TPanel;
edt_Sys_use_Year: TEdit;
edt_Sys_use_Month: TEdit;
rb_JJ_HS: TRadioButton;
rb_XJ_HS: TRadioButton;
dbg_FLZ: TDBGrid;
SQLStr: TSqlStrings;
qry_Tmp: TQuery;
qry_FLZJD: TQuery;
ds_FLZJD: TDataSource;
Label1: TLabel;
edt_Locate: TEdit;
procedure FormCreate(Sender: TObject);
procedure rb_JJ_HSClick(Sender: TObject);
procedure rb_XJ_HSClick(Sender: TObject);
procedure bbtn_PrintClick(Sender: TObject);
procedure bbtn_FindClick(Sender: TObject);
procedure edt_LocateKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
function Show_Sys_Init_time: Boolean; {顯示系統啟用日期,如果沒有啟用,則給出提示}
procedure Show_Field; {按照需求顯示字段}
procedure Get_Data; {顯示數據}
public
{ Public declarations }
end;
function Show_FLZJD(ll_typ: TIO_TYPE): Boolean;
var
Frm_FLZJD: TFrm_FLZJD;
l_typ: TIO_TYPE;
implementation
{$R *.DFM}
{集郵票、零枚票、集郵品、市場購入票 四部分的分類帳校對,根據系統初始化日期,
從相應明細分類帳余額表中讀取數據,進行顯示。
涉及數據庫表:
集郵票明細分類帳余額表(TYS_JYPMXFLZYEB)
零枚票明細分類帳余額表(TYS_TXPMXFLZYEB)
集郵品明細分類帳余額表(TYS_YPMXFLZYEB)
購入票明細分類帳余額表(TYS_GRPMXFLZYEB)
系統基本信息表(郵資票品信息表)(TB_YZPPXXB)
雜表(TGS_ZB)
調用了SS_JYP_Init_Search, SS_TXP_Init_Search, SS_YP_Init_Search, SS_GRP_Init_Search
四個查詢模塊,分別對四種票品進行查詢。
石玉琢 2001.09.26}
uses
datas,Pub,SS_JYP_Init_Search, SS_TXP_Init_Search, SS_YP_Init_Search, SS_GRP_Init_Search;
const
{從雜表中獲得數據}
pZB_Data: array[0..3, 0..1] of string = (('jyp_csh_n', 'jyp_csh_y'),
('txp_csh_n', 'txp_csh_y'), ('yp_csh_n', 'yp_csh_y'), ('grp_csh_n', 'grp_csh_y'));
{顯示的字段名稱}
pShow_Field_Name: array[0..3, 0..2, 0..1] of string =
(
(('JJZJJE', 'XJZJJE'), ('JJJSJE', 'XJJSJE'), ('JJYE', 'XJYE')),
// (('ZJJE', 'ZJJE'), ('JSJE', 'JSJE'), ('JCJE', 'JCJE')),
(('JJZJJE', 'XJZJJE'), ('JJJSJE', 'XJJSJE'), ('JJYE', 'XJYE')),
(('JJZJJE', 'XJZJJE'), ('JJJSJE', 'XJJSJE'), ('JJYE', 'XJYE')),
(('JJZJJE', 'XJZJJE'), ('JJJSJE', 'XJJSJE'), ('JJYE', 'XJYE'))
);
{-------------------------------------------------------------------------------}
{顯示總帳校對}
function Show_FLZJD(ll_typ: TIO_TYPE): Boolean;
begin
l_typ := ll_typ;
with TFrm_FLZJD.Create(Application) do
try
ShowModal;
finally
Free;
end;
end;
{-------------------------------------------------------------------------------}
{創建窗體,顯示默認數據}
procedure TFrm_FLZJD.FormCreate(Sender: TObject);
begin
{初始化所有查詢參數}
Init_Search_CSH;
DWMC.Caption := '使用單位:' + VG_UNITNAME;
{對于零枚票,不存在按進價核算和按銷價核算兩個部分,同時不關心進價,所以顯示的時候直接隱藏掉}
{ if l_typ = io_txp then
begin
pnl_HS.Visible := False;
dbg_FLZ.Columns[2].Visible := False;
end;}
Show_Sys_Init_time; {顯示系統初始化時間,如果沒有初始化,則給出提示}
Show_Field;
{默認顯示所有數據}
case l_typ of
io_jyp:
part_SQL := ' and b.TYPE=''jttp''';
io_grp:
part_SQL := '';
io_yp:
part_SQL := ' and b.TYPE=''yp''';
io_txp:
part_SQL := ' and ( b.TYPE=''jtlm'' or b.TYPE=''ptyp'' or b.TYPE=''fpj'') ';
end;
lbl_Search.Caption := '顯示條件——所有數據';
Get_Data; {調用查詢模塊進行查詢}
end;
{-------------------------------------------------------------------------------}
{顯示系統啟用日期,如果沒有啟用,則給出提示}
function TFrm_FLZJD.Show_Sys_Init_time: Boolean;
begin
{顯示標題}
Caption := pCaption[integer(l_typ)] + '分類帳校對';
rxlbl_Title.Caption := Caption;
{顯示}
with qry_Tmp do
begin
Close;
SQL.Text := 'Select ZFXZ From TGS_ZB where DM=''' + pZB_Data[integer(l_typ)][0] + '''';
Open;
edt_Sys_use_Year.Text := FieldByName('ZFXZ').AsString;
Close;
SQL.Text := 'Select ZFXZ From TGS_ZB where DM=''' + pZB_Data[integer(l_typ)][1] + '''';
Open;
edt_Sys_use_Month.Text := FieldByName('ZFXZ').AsString;
end;
if (edt_Sys_use_Year.Text = '') or (edt_Sys_use_Month.Text = '') then
begin
CHQMsgBox('系統初始化時間沒有設定!請先進行系統初始化!');
Result := False;
Exit;
end;
Result := True;
end;
{-------------------------------------------------------------------------------}
{按照需求顯示字段}
procedure TFrm_FLZJD.Show_Field;
begin
if rb_JJ_HS.Checked = True then
begin
{按進價核算}
dbg_FLZ.Columns[4].FieldName := pShow_Field_Name[Integer(l_typ)][0][0];
dbg_FLZ.Columns[6].FieldName := pShow_Field_Name[Integer(l_typ)][1][0];
dbg_FLZ.Columns[8].FieldName := pShow_Field_Name[Integer(l_typ)][2][0];
end
else
begin
{按銷價核算}
dbg_FLZ.Columns[4].FieldName := pShow_Field_Name[Integer(l_typ)][0][1];
dbg_FLZ.Columns[6].FieldName := pShow_Field_Name[Integer(l_typ)][1][1];
dbg_FLZ.Columns[8].FieldName := pShow_Field_Name[Integer(l_typ)][2][1];
end;
end;
{-------------------------------------------------------------------------------}
{顯示數據}
procedure TFrm_FLZJD.Get_Data;
var
SQLString: string;
begin
case l_typ of
io_jyp:
SQLString := SQLStr.jyp_Sql.Text;
io_grp:
SQLString := SQLStr.grp_Sql.Text;
io_yp:
SQLString := SQLStr.yp_Sql.Text;
io_txp:
SQLString := SQLStr.txp_Sql.Text;
end;
SQLString := SQLString + ' and a.ND=''' + edt_Sys_use_Year.Text + ''' and a.YF=''' + edt_Sys_use_Month.Text + '''' +
part_SQL + ' order by b.TDM';
{顯示數據}
with qry_FLZJD do
begin
Close;
SQL.Text := SQLString;
Open;
end;
{ if l_typ <> io_txp then
TNumericField(dbg_FLZ.Columns[2].Field).DisplayFormat := '#,##0.00';}
TNumericField(dbg_FLZ.Columns[4].Field).DisplayFormat := '#,##0.00';
TNumericField(dbg_FLZ.Columns[6].Field).DisplayFormat := '#,##0.00';
TNumericField(dbg_FLZ.Columns[8].Field).DisplayFormat := '#,##0.00';
TNumericField(dbg_FLZ.Columns[3].Field).DisplayFormat := '#,##';
TNumericField(dbg_FLZ.Columns[5].Field).DisplayFormat := '#,##';
TNumericField(dbg_FLZ.Columns[7].Field).DisplayFormat := '#,##';
end;
{-------------------------------------------------------------------------------}
{刷新選項}{下面都是在根據進價和銷價顯示時需要進行刷新的}
procedure TFrm_FLZJD.rb_JJ_HSClick(Sender: TObject);
begin
Show_Field;
TNumericField(dbg_FLZ.Columns[4].Field).DisplayFormat := '#,##0.00';
TNumericField(dbg_FLZ.Columns[6].Field).DisplayFormat := '#,##0.00';
TNumericField(dbg_FLZ.Columns[8].Field).DisplayFormat := '#,##0.00';
end;
procedure TFrm_FLZJD.rb_XJ_HSClick(Sender: TObject);
begin
Show_Field;
TNumericField(dbg_FLZ.Columns[4].Field).DisplayFormat := '#,##0.00';
TNumericField(dbg_FLZ.Columns[6].Field).DisplayFormat := '#,##0.00';
TNumericField(dbg_FLZ.Columns[8].Field).DisplayFormat := '#,##0.00';
end;
{-------------------------------------------------------------------------------}
{根據不同條件,調用不同的查詢窗體,查詢不同的內容}
procedure TFrm_FLZJD.bbtn_FindClick(Sender: TObject);
var
Form: TFormClass;
begin
{不同的票品,調用不同的查詢模塊進行查詢}
case l_typ of
io_jyp:
Form := TFrm_JYP_Init_Search;
io_grp:
Form := TFrm_GRP_Init_Search;
io_yp:
Form := TFrm_YP_Init_Search;
io_txp:
Form := TFrm_TXP_Init_Search;
end;
with Form.Create(Application) do
try
ShowModal;
if ModalResult = mrOk then
begin
lbl_Search.Caption := Search_Caption;
Get_Data; {確認執行,需要進行查詢了} {}
end;
finally
Free;
end;
end;
{-------------------------------------------------------------------------------}
{進行打印操作}
procedure TFrm_FLZJD.bbtn_PrintClick(Sender: TObject);
begin
PrintDBGrid(dbg_FLZ, RxLbl_Title.Caption);
end;
{按照志號定位}
procedure TFrm_FLZJD.edt_LocateKeyPress(Sender: TObject; var Key: Char);
begin
if qry_FLZJD.Active = True then
begin
if Key in ['a'..'z'] then Key := Chr(Ord(key) + Ord('A') - Ord('a'));
qry_FLZJD.Locate('ZH', edt_Locate.Text + Key, [loCaseInsensitive, loPartialKey]);
end
else
Key := Chr(0);
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -