📄 sj_jshzd.pas
字号:
{*******************************************************}
{ }
{ 结算汇总单 }
{ }
{ 中软金马公司版权所有。2002.12前 }
{ }
{ 编制:中软金马项目开发组 }
{ }
{ }
{*******************************************************}
(*
本模块在省级集邮票管理、省级市场购入票管理、省级集邮品管理、省级零枚票管理、
地市集邮票管理、地市集邮品管理、地市市场购入票管理 七个模块调用
*)
unit SJ_JSHZD;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, DBTables, Grids, DBGrids, Buttons, ExtCtrls, RXDBCtrl, FORMBASE,
RxQuery, sqlstrings, RXCtrls, Spin, DBGridExport, Menus,
DBCtrls;
type
TSearchState = (ssHZ, ssMX);
type
Tfrm_JSHZD = class(TFFormBase)
RxDBG_hz: TRxDBGrid;
Panel1: TPanel;
DS_hz: TDataSource;
qry_hz: TRxQuery;
BitBtn1: TBitBtn;
Panel2: TPanel;
XttxTitle: TRxLabel;
DWMC: TLabel;
Panel3: TPanel;
BitBtn3: TBitBtn;
Pnl_Condition: TPanel;
Label5: TLabel;
RGr_Base: TRadioGroup;
l2: TLabel;
l1: TLabel;
RG_view: TRadioGroup;
Label2: TLabel;
SE_nd: TSpinEdit;
RxDBG_mx: TRxDBGrid;
SqlS_hzR: TSqlStrings;
DBLCB_dw: TDBLookupComboBox;
DS_dw: TDataSource;
Qry_dw: TRxQuery;
CB_chked: TCheckBox;
SqlS_hzC: TSqlStrings;
SqlS_mxR: TSqlStrings;
SqlS_mxC: TSqlStrings;
Qry_mx: TRxQuery;
DS_mx: TDataSource;
SE_frm: TSpinEdit;
SE_to: TSpinEdit;
procedure RxDBGrid1TitleClick(Column: TColumn);
procedure qry_JYPJJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure qry_hzAfterOpen(DataSet: TDataSet);
procedure BitBtn3Click(Sender: TObject);
procedure RG_viewClick(Sender: TObject);
procedure select(Sender: TObject);
procedure Qry_mxAfterOpen(DataSet: TDataSet);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
FSearchState: TSearchState;
Fio_Type: TIO_TYPE;
procedure Set_SearchState(Value: TSearchState);
public
{ Public declarations }
published
property SearchState: TSearchState read FSearchState write Set_SearchState default ssHZ;
{published declarations }
end;
function Show_JSHZD(io_typ: TIO_TYPE; ATag: Integer): Boolean;
var
frm_JSHZD: Tfrm_JSHZD;
implementation
uses pub,SY_YJHZ_RPT;
{$R *.DFM}
function Show_JSHZD(io_typ: TIO_TYPE; ATag: Integer): Boolean;
begin
Application.CreateForm(Tfrm_JSHZD, frm_JSHZD);
with frm_JSHZD do
try
Tag := ATag;
DWMC.Caption := '使用单位:' + VG_UnitName;
FIO_type := io_typ;
Caption := '邮资票品管理信息系统——' + pCaption[integer(Fio_Type)] + '业务';
XttxTitle.Caption := '结算汇总单';
case Fio_type of
io_txp:
Qry_dw.MacroByName('TJ').AsString := 'TXYW=''1''';
else
Qry_dw.MacroByName('TJ').AsString := 'JYYW=''1''';
end;
Qry_dw.Open;
SE_frm.Value := 1;
SE_to.Value := VG_Month;
SE_nd.Value := VG_Year;
RG_view.OnClick(nil);
result := ShowModal = MB_OK;
finally
Destroy;
end;
end;
procedure Tfrm_JSHZD.RxDBGrid1TitleClick(Column: TColumn);
procedure SetEmpty;
begin
with TRxQuery(TDBGrid(Column.Grid).DataSource.DataSet) do
begin
Close;
MacroByName('CON1').AsString := '''''';
MacroByName('CON2').AsString := '''''';
MacroByName('CON3').AsString := '''''';
MacroByName('CON4').AsString := '''''';
MacroByName('CON5').AsString := '''''';
MacroByName('CON6').AsString := '''''';
MacroByName('CON7').AsString := '''''';
end;
end;
begin
with TRxQuery(TDBGrid(Column.Grid).DataSource.DataSet) do
begin
if Column.FieldName = 'DWMC' then
begin
SetEmpty;
MacroByName('CON1').AsString := 'DWMC';
MacroByName('CON_GRP').AsString := 'DWMC';
MacroByName('CON_ORD').AsString := 'DWMC';
Open;
end
else if Column.FieldName = 'RCKXZMC' then
begin
SetEmpty;
MacroByName('CON2').AsString := 'R.RCKXZMC';
MacroByName('CON_GRP').AsString := 'R.RCKXZMC';
MacroByName('CON_ORD').AsString := 'RCKXZMC';
Open;
end
else if Column.FieldName = 'PPDM' then
begin
SetEmpty;
case Fio_type of
io_yp:
begin
MacroByName('CON3').AsString := '''(''||Y.ZH||'')''||Y.MC';
MacroByName('CON_GRP').AsString := '''(''||Y.ZH||'')''||Y.MC';
end;
io_txp:
begin
MacroByName('CON3').AsString := '''(''||Y.ZH||'')''||Y.TMC';
MacroByName('CON_GRP').AsString := '''(''||Y.ZH||'')''||Y.TMC';
end;
else
begin
MacroByName('CON3').AsString := '''(''||Y.ZH||'')''||Y.TJC';
MacroByName('CON_GRP').AsString := '''(''||Y.ZH||'')''||Y.TJC';
end;
end;
MacroByName('CON_ORD').AsString := 'PPDM';
Open;
end
else if Column.FieldName = 'JSZT' then
begin
SetEmpty;
MacroByName('CON4').AsString := 'DECODE(JSZT, 0, ''否'', ''是'')';
MacroByName('CON_GRP').AsString := 'DECODE(JSZT, 0, ''否'', ''是'')';
MacroByName('CON_ORD').AsString := 'JSZT';
Open;
end
else if Column.FieldName = 'FH' then
begin
SetEmpty;
MacroByName('CON5').AsString := 'DECODE(JZY, NULL, ''否'', ''是'')';
MacroByName('CON_GRP').AsString := 'DECODE(JZY, NULL, ''否'', ''是'')';
MacroByName('CON_ORD').AsString := 'FH';
Open;
end
else if Column.FieldName = 'KDRQ' then
begin
SetEmpty;
MacroByName('CON6').AsString := 'TO_CHAR(KDRQ,''YYYY-MM-DD'')';
MacroByName('CON_GRP').AsString := 'TO_CHAR(KDRQ,''YYYY-MM-DD'')';
MacroByName('CON_ORD').AsString := 'KDRQ';
Open;
end
else if Column.FieldName = 'DJRQ' then
begin
SetEmpty;
MacroByName('CON7').AsString := 'TO_CHAR(DJRQ,''YYYY-MM-DD'')';
MacroByName('CON_GRP').AsString := 'TO_CHAR(DJRQ,''YYYY-MM-DD'')';
MacroByName('CON_ORD').AsString := 'DJRQ';
Open;
end;
end;
end;
procedure Tfrm_JSHZD.qry_JYPJJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
CurrGetText(Sender, Text, DisplayText);
end;
procedure Tfrm_JSHZD.qry_hzAfterOpen(DataSet: TDataSet);
begin
with DataSet do
TNumericField(FieldByName('JSJE')).DisplayFormat := '#,##0.00';
end;
procedure Tfrm_JSHZD.BitBtn3Click(Sender: TObject);
begin
if (SE_frm.Value <> SE_to.Value) then
begin
CHQMsgBox('打印结算汇总单的起始月份和截止月份必须相同');
exit;
end;
if not AsSigned(QuickRep_yjhz) then
QuickRep_yjhz := TQuickRep_yjhz.Create(nil);
with QuickRep_yjhz do
try
begin
with Qry_Print do
begin
Close;
case RGr_Base.ItemIndex of
0:
begin
SQL := SqlStrings2.FSqlText[Fio_type];
ParamByName('MM').Value := SE_frm.Value; //VG_Month;
end;
1:
begin
SQL := SqlStrings1.FSqlText[Fio_type];
ParamByName('MM').Value := SE_frm.Value; //VG_Month;
end;
end;
Open;
end;
QRLabel1.Caption := pCaption[integer(Fio_Type)] + '月结算汇总报表';
QRLabel1.Left := Round((PageHeaderBand1.Width - QrLabel1.Width) / 2);
QRLabel7.Caption := VarToStr(VG_Year) + ' 年 ' + VarToStr(SE_frm.Value) + ' 月';
QRLabel7.Left := Round((PageHeaderBand1.Width - QrLabel7.Width) / 2);
QRLabel12.Caption := '单位名称:' + VG_UNITNAME;
QRLabel9.Caption := '制表日期:' + FormatDateTime('YYYY"年"MM"月"DD"日"', now);
prepare;
QRLabel11.Caption := IntToStr(QRPrinter.PageCount);
Qry_Print.First;
LineCount := 0;
sum_jsje := 0;
sum_xjje := 0;
Preview;
end;
finally
Free;
QuickRep_yjhz := nil;
end;
end;
procedure Tfrm_JSHZD.RG_viewClick(Sender: TObject);
begin
case RG_view.ItemIndex of
0: SearchState := ssHZ;
1: SearchState := ssMX;
end;
end;
procedure Tfrm_JSHZD.select(Sender: TObject);
procedure SetMacros;
var
v_s_mac: string;
begin
v_s_mac := 'AND to_char(F.KDRQ, ''YYYYMM'') >= ''' + SE_nd.Text + formatfloat('00', SE_frm.Value) + ''' ';
v_s_mac := v_s_mac + 'AND to_char(F.KDRQ, ''YYYYMM'') <= ''' + SE_nd.Text + formatfloat('00', SE_to.Value) + ''' ';
if DBLCB_dw.KeyValue <> ' ' then
v_s_mac := v_s_mac + 'AND G.DWDM=''' + qRY_DW.FieldByName('DWDM').AsString + ''' ';
if CB_chked.Checked then
case RGr_Base.ItemIndex of
0:
v_s_mac := v_s_mac + ' AND not F.HDR is Null ';
1:
v_s_mac := v_s_mac + ' AND not F.JZY is Null ';
end;
qry_hz.MacroByName('TJ').AsString := v_s_mac;
qry_mx.MacroByName('TJ').AsString := v_s_mac;
end;
begin
Qry_hz.Close;
Qry_mx.Close;
case RGr_Base.ItemIndex of
0:
begin
qry_hz.SQL := SqlS_hzC.FSqlText[Fio_type];
qry_mx.SQL := SqlS_mxC.FSqlText[Fio_type];
end;
1:
begin
qry_hz.SQL := SqlS_hzR.FSqlText[Fio_type];
qry_mx.SQL := SqlS_mxR.FSqlText[Fio_type];
end;
end;
SetMacros;
Qry_hz.Open;
Qry_mx.Open;
RxDBG_hz.Columns[0].Visible := DBLCB_dw.KeyValue = ' ';
RxDBG_mx.Columns[0].Visible := DBLCB_dw.KeyValue = ' ';
RxDBG_hz.Columns[7].Visible := RGr_Base.ItemIndex = 0;
RxDBG_mx.Columns[11].Visible := RGr_Base.ItemIndex = 0;
end;
procedure Tfrm_JSHZD.Set_SearchState(Value: TSearchState);
begin
FSearchState := Value;
case Value of
ssHZ: //总分户帐
begin
RxDBG_mx.Visible := False;
RxDBG_hz.Align := alClient;
RxDBG_hz.Visible := True;
end;
ssMX: //总分户帐明细
begin
RxDBG_hz.Visible := False;
RxDBG_mx.Align := alClient;
RxDBG_mx.Visible := True;
end;
end;
end;
procedure Tfrm_JSHZD.Qry_mxAfterOpen(DataSet: TDataSet);
begin
with DataSet do
begin
TNumericField(FieldByName('JJ')).DisplayFormat := '#,##0.00';
TNumericField(FieldByName('XJ')).DisplayFormat := '#,##0.00';
TNumericField(FieldByName('JSJ')).DisplayFormat := '#,##0.00';
TNumericField(FieldByName('JSJE')).DisplayFormat := '#,##0.00';
TNumericField(FieldByName('SL')).DisplayFormat := '#,##0';
end;
end;
procedure Tfrm_JSHZD.FormCreate(Sender: TObject);
begin
GetAllColWidth(Self);
end;
procedure Tfrm_JSHZD.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SaveAllColWidth(Self);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -