📄 jm_rpt_qttj.pas
字号:
{*******************************************************}
{ }
{ 营业员票品退缴单打印 }
{ }
{ 中软金马公司版权所有。2002.12前 }
{ }
{ 编制:中软金马邮资票品项目开发组 }
{ }
{ }
{*******************************************************}
(*
本模块在地市集邮票管理,地市集邮品管理,地市市场购入票里面调用。
*)
{===============================================================================
邮资票品管理系统 V1.0——集邮业务管理子系统的功能是对集邮票的分配计划、出库
计划、下级需求计划、下级请领表,集邮票的入库、集邮票的发货等业务进行了系统管
理。同时对下级营业员的集邮票的调配、退缴、分票、缴款等业务进行了处理,另外包
括对帐务以及营业员帐务的查询,以及由此形成的报表,库存以及下级库存的查询等功
能。
集邮业务管理子系统和其他子系统的关系:系统管理子系统负责集邮业务管理子系统的
各种数据的初始化工作。该子系统负责集邮门市管理中集邮票的发票、营业员票品调配、
营业员缴款等前台营业员业务。
本模块功能:营业员退缴单的打印
问题:
1、不能确定打印纸张的型号,随客户的需求随时可能改变。
2、
徐 申 2001.10.14
更改:1、更改纸张大小为(210mm,127mm).
2、更改了所有的控件名称符合规定
3、依照省级的格式打印营业员退缴单
徐申 2002.02.26
===============================================================================}
unit JM_RPT_QTTJ;
interface
uses Windows, SysUtils, Messages, Classes, Graphics, Controls,
StdCtrls, ExtCtrls, Forms, Quickrpt, QRCtrls, Dialogs, Db, DBTables, JM_data;
type
TFrm_rptqttj = class(TQuickRep)
PageFooterBand1: TQRBand;
ColumnHeaderBand1: TQRBand;
DetailBand1: TQRBand;
QRShape3: TQRShape;
QRShape14: TQRShape;
QRShape16: TQRShape;
QRShape5: TQRShape;
QRShape9: TQRShape;
QRShape11: TQRShape;
qry_qttjpp: TQuery;
QRShape4: TQRShape;
QRLabel12: TQRLabel;
QRLabel3: TQRLabel;
QRLabel1: TQRLabel;
QRLabel5: TQRLabel;
qrl_page: TQRLabel;
QRLabel18: TQRLabel;
QRLabel28: TQRLabel;
QRLabel8: TQRLabel;
QRLabel30: TQRLabel;
QRLabel31: TQRLabel;
QRShape1: TQRShape;
QRShape2: TQRShape;
QRShape7: TQRShape;
QRShape10: TQRShape;
QRShape13: TQRShape;
QRShape17: TQRShape;
QRShape18: TQRShape;
QRShape19: TQRShape;
QRLabel2: TQRLabel;
QRShape6: TQRShape;
QRShape8: TQRShape;
qrrt_zh: TQRRichText;
qrrt_ppmc: TQRRichText;
qrrt_lb: TQRRichText;
qrrt_jj: TQRRichText;
qrrt_sj: TQRRichText;
qrrt_sl: TQRRichText;
QRLabel13: TQRLabel;
QRLabel6: TQRLabel;
QRShape12: TQRShape;
QRShape15: TQRShape;
QRShape20: TQRShape;
QRLabel7: TQRLabel;
QRSysData1: TQRSysData;
QRLabel9: TQRLabel;
qrl_tjdw: TQRLabel;
qrl_kdrq: TQRLabel;
qrl_dh: TQRLabel;
qry_qttjd: TQuery;
procedure Query2SJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure Query2SJSetText(Sender: TField; const Text: string);
procedure qry_qttjppDJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure qry_qttjppDJSetText(Sender: TField; const Text: string);
procedure qry_qttjppJJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure qry_qttjppJJSetText(Sender: TField; const Text: string);
procedure QuickRepNeedData(Sender: TObject; var MoreData: Boolean);
procedure QuickRepBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
procedure QuickRepStartPage(Sender: TCustomQuickRep);
procedure qry_qttjdAfterOpen(DataSet: TDataSet);
private
public
line_count: integer; {记录本页行数,用以控制每页显示的行数}
taoda_flag: Boolean; { 是否采用套打的标记}
end;
var
Frm_rptqttj: TFrm_rptqttj;
implementation
{$R *.DFM}
uses pub; {使用其中的公共函数currGetText,CurrSetText格式化进价、销价等字段
信息的显示}
procedure TFrm_rptqttj.Query2SJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
CurrGetText(Sender, Text, DisplayText);
end;
procedure TFrm_rptqttj.Query2SJSetText(Sender: TField; const Text: string);
begin
CurrSetText(Sender, Text);
end;
procedure TFrm_rptqttj.qry_qttjppDJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
CurrGetText(Sender, Text, DisplayText);
end;
procedure TFrm_rptqttj.qry_qttjppDJSetText(Sender: TField; const Text: string);
begin
CurrSetText(Sender, Text);
end;
procedure TFrm_rptqttj.qry_qttjppJJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
CurrGetText(Sender, Text, DisplayText);
end;
procedure TFrm_rptqttj.qry_qttjppJJSetText(Sender: TField; const Text: string);
begin
CurrSetText(Sender, Text);
end;
procedure TFrm_rptqttj.QuickRepNeedData(Sender: TObject;
var MoreData: Boolean);
begin
if line_count < 6 then
begin
Inc(line_count);
MoreData := True;
end;
if not qry_qttjpp.Eof then
{如果没有到查询结果的末尾,那么逐行增加每条调配票品信息}
with qry_qttjpp do
begin
qrrt_zh.Lines.Text := FieldbyName('zh').AsString;
qrrt_ppmc.Lines.Text := FieldbyName('ppmc').AsString;
if qrrt_ppmc.Lines.Count > 1 then
{如果票品名称超过两行,那么重新设置显示的位置,以便能显示下两行的信息}
begin
qrrt_ppmc.Top := 2;
qrrt_ppmc.Height := 26;
end
else begin
qrrt_ppmc.Top := qrrt_zh.top;
qrrt_ppmc.Height := qrrt_zh.Height;
end;
qrrt_lb.Lines.Text := FieldbyName('lb').AsString;
qrrt_jj.Lines.Text := FormatFloat('#,##0.00', FieldbyName('jj').AsFloat);
qrrt_sj.Lines.Text := Formatfloat('#,##0.00', FieldbyName('sj').AsFloat);
qrrt_sl.Lines.Text := FieldbyName('sl').AsString;
end;
if qry_qttjpp.eof then
{如果已经显示完所有的调配票品,但该页还未满五行,那么增加空白行}
begin
qrrt_zh.Lines.Text := '';
qrrt_ppmc.Lines.Text := '';
qrrt_lb.Lines.Text := '';
qrrt_jj.Lines.Text := '';
qrrt_sj.Lines.Text := '';
qrrt_sl.Lines.Text := '';
end;
if not qry_qttjpp.Eof then
qry_qttjpp.Next;
if (line_count = 6) and qry_qttjpp.eof then
{如果该页已经显示满5行信息,并且并且查询结果的游标已经在末尾,那么终止显示}
MoreData := false;
if line_count = 6 then
line_count := 1;
end;
procedure TFrm_rptqttj.QuickRepBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
{在打印之前,再次的初始化行数并置查询结果集的游标于顶部,以防不能打印信息或打印的信息不完整}
Line_count := 0;
qry_qttjpp.First;
end;
procedure TFrm_rptqttj.QuickRepStartPage(Sender: TCustomQuickRep);
var
i: Integer;
begin
if taoda_flag then {如果套打时,不显示某些信息}
begin
{不显示ColumnHeaderBand1中的某些信息和线条 }
for i := 0 to ColumnHeaderBand1.ControlCount - 1 do
begin
if (Pos('QRLabel', ColumnHeaderBand1.Controls[i].Name) > 0)
or (Pos('QRShape', ColumnHeaderBand1.Controls[i].Name) > 0) then
ColumnHeaderBand1.Controls[i].Enabled := False;
end;
{不显示DetailBand1中的某些信息和线条 }
for i := 0 to DetailBand1.ControlCount - 1 do
begin
if (Pos('QRLabel', DetailBand1.Controls[i].Name) > 0)
or (Pos('QRShape', DetailBand1.Controls[i].Name) > 0) then
DetailBand1.Controls[i].Enabled := False;
end;
{不显示PageFooterBand中的某些信息和线条 }
for i := 0 to PageFooterBand1.ControlCount - 1 do
begin
if (Pos('QRLabel', PageFooterBand1.Controls[i].Name) > 0)
or (Pos('QRShape', PageFooterBand1.Controls[i].Name) > 0) then
PageFooterBand1.Controls[i].Enabled := False;
end;
end;
end;
procedure TFrm_rptqttj.qry_qttjdAfterOpen(DataSet: TDataSet);
var
StrSql: string;
begin
StrSql := 'select a.fpdh,a.ppdm,a.ppmc,a.zh,a.jj/100 jj,a.sj/100 sj,a.sl,' +
' decode(a.lb,''0'',''集邮票'',''1'',''集邮品'',''2'',''购入票'') lb,a.sl from ' +
' tm_qttjppmx a,tm_qttjd b where a.fpdh=b.fpdh and b.fpdh=''' + Qry_qttjd.FieldByName('fpdh').AsString + '''';
with qry_qttjpp do
begin
Close;
SQL.clear;
SQL.Add(StrSql);
Open;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -