?? 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 + -