📄 ss_zzjd.pas
字号:
{*******************************************************}
{ }
{ 集邮票总帐校对 }
{ }
{ 中软金马公司版权所有。2002.12前 }
{ }
{ 编制:中软金马邮资票品项目开发组 }
{ }
{ }
{*******************************************************}
(*
本模块在省级系统管理模块里的集邮票,集邮品,零枚,购入票里面调用。
*)
unit SS_ZZJD;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, RXCtrls, StdCtrls, Grids, DBGrids, Buttons, SqlStrings, Db,
DBTables;
type
TFrm_ZZJD = class(TForm)
pnl_Top: TPanel;
rxlbl_Title: TRxLabel;
DWMC: TLabel;
pnl_Option: TPanel;
lbl_Sys_Use: TLabel;
edt_Sys_use_Year: TEdit;
edt_Sys_use_Month: TEdit;
lbl_Sys_useYear: TLabel;
lbl_Sys_UseMonth: TLabel;
pnl_HS: TPanel;
rb_JJ_HS: TRadioButton;
rb_XJ_HS: TRadioButton;
pnl_Body: TPanel;
dbg_ZZJD: TDBGrid;
pnl_Bottom: TPanel;
bbtn_Print: TBitBtn;
bbtn_Exit: TBitBtn;
SQLStr: TSqlStrings;
qry_Tmp: TQuery;
qry_ZZJD: TQuery;
ds_ZZJD: TDataSource;
procedure FormCreate(Sender: TObject);
procedure rb_JJ_HSClick(Sender: TObject);
procedure rb_XJ_HSClick(Sender: TObject);
procedure bbtn_PrintClick(Sender: TObject);
private
{ Private declarations }
function Show_Sys_Init_time: Boolean; {显示系统启用日期,如果没有启用,则给出提示}
procedure Get_Data; {显示数据}
procedure Show_Field; {按照需求显示字段}
public
{ Public declarations }
end;
function Show_ZZJD(ll_typ: TIO_TYPE): Boolean;
var
Frm_ZZJD: TFrm_ZZJD;
l_typ: TIO_TYPE;
implementation
{$R *.DFM}
{总帐校对模块,整个重新编写,共有四个菜单调用此模块。
代码比较晦涩难懂,对于金额的显示,直接在SQL语句中除以100,动态给DBGrid字段赋值,一边显示不同情况。
涉及数据库表:
集邮票总帐余额表(TYS_JYPZZYEB)
零枚票总帐余额表(TYS_TXPZZYEB)
集邮品总帐余额表(TYS_YPZZYEB)
购入票总帐余额表(TYS_GRPZZYEB)
杂表(TGS_ZB)
石玉琢 2001.09.24}
uses Pub;
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'), ('YE', 'YE')),
(('JJZJJE', 'XJZJJE'), ('JJJSJE', 'XJJSJE'), ('JJYE', 'XJYE')),
(('JJZJJE', 'XJZJJE'), ('JJJSJE', 'XJJSJE'), ('JJYE', 'XJYE')),
(('JJZJJE', 'XJZJJE'), ('JJJSJE', 'XJJSJE'), ('JJYE', 'XJYE'))
);
{-------------------------------------------------------------------------------}
{显示总帐校对}
function Show_ZZJD(ll_typ: TIO_TYPE): Boolean;
begin
l_typ := ll_typ;
with TFrm_ZZJD.Create(Application) do
try
ShowModal;
finally
Free;
end;
end;
{-------------------------------------------------------------------------------}
procedure TFrm_ZZJD.FormCreate(Sender: TObject);
begin
DWMC.Caption := '使用单位:'+VG_UNITNAME;
{ if l_typ = io_txp then
pnl_HS.Visible := False; }
Show_Sys_Init_time;
Show_Field;
Get_Data;
TNumericField(dbg_ZZJD.Columns[4].Field).DisplayFormat := '#,##0.00';
TNumericField(dbg_ZZJD.Columns[5].Field).DisplayFormat := '#,##0.00';
TNumericField(dbg_ZZJD.Columns[6].Field).DisplayFormat := '#,##0.00';
end;
{-------------------------------------------------------------------------------}
{显示系统启用日期,如果没有启用,则给出提示}
function TFrm_ZZJD.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_ZZJD.Get_Data;
begin
{显示数据}
with qry_ZZJD do
begin
Close;
case l_typ of
io_jyp:
SQL := SQLStr.jyp_Sql;
io_grp:
SQL := SQLStr.grp_Sql;
io_yp:
SQL := SQLStr.yp_Sql;
io_txp:
SQL := SQLStr.txp_Sql;
end;
ParamByName('l_ZY').AsString := pCaption[integer(l_typ)] + '初始化';
ParamByName('l_ND').AsString := edt_Sys_use_Year.Text;
ParamByName('l_YF').AsString := edt_Sys_use_Month.Text;
Open;
end;
end;
{-------------------------------------------------------------------------------}
{按照需求显示字段}
procedure TFrm_ZZJD.Show_Field;
begin
if rb_JJ_HS.Checked = True then
begin
{按进价核算}
dbg_ZZJD.Columns[4].FieldName := pShow_Field_Name[Integer(l_typ)][0][0];
dbg_ZZJD.Columns[5].FieldName := pShow_Field_Name[Integer(l_typ)][1][0];
dbg_ZZJD.Columns[6].FieldName := pShow_Field_Name[Integer(l_typ)][2][0];
end
else
begin
{按销价核算}
dbg_ZZJD.Columns[4].FieldName := pShow_Field_Name[Integer(l_typ)][0][1];
dbg_ZZJD.Columns[5].FieldName := pShow_Field_Name[Integer(l_typ)][1][1];
dbg_ZZJD.Columns[6].FieldName := pShow_Field_Name[Integer(l_typ)][2][1];
end;
end;
{-------------------------------------------------------------------------------}
{刷新选项}
procedure TFrm_ZZJD.rb_JJ_HSClick(Sender: TObject);
begin
Show_Field;
TNumericField(dbg_ZZJD.Columns[4].Field).DisplayFormat := '#,##0.00';
TNumericField(dbg_ZZJD.Columns[5].Field).DisplayFormat := '#,##0.00';
TNumericField(dbg_ZZJD.Columns[6].Field).DisplayFormat := '#,##0.00';
end;
procedure TFrm_ZZJD.rb_XJ_HSClick(Sender: TObject);
begin
Show_Field;
TNumericField(dbg_ZZJD.Columns[4].Field).DisplayFormat := '#,##0.00';
TNumericField(dbg_ZZJD.Columns[5].Field).DisplayFormat := '#,##0.00';
TNumericField(dbg_ZZJD.Columns[6].Field).DisplayFormat := '#,##0.00';
end;
{-------------------------------------------------------------------------------}
{进行打印操作}
procedure TFrm_ZZJD.bbtn_PrintClick(Sender: TObject);
begin
PrintDBGrid(dbg_ZZJD, RxLbl_Title.Caption);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -