begin
i:
=i+1;
Engine.ShowBand(Child1); //印空白表格
end;
child1.visible:
=False;
end;
begin
end.
6.在首页打印本页小计,最后一页打印本页小计和合计(如果只有一页,则打印本页小计和合计)
frxReport1.PrepareReport();
frxReport1.Variables['pageQ']:
=pageQ;
frxReport1.Variables['hander']:
=QuotedStr(hander);
frxReport1.Variables['doubleline']:
=QuotedStr(StringOfChar('=',Length(hander)+12));
whName:
='设备资产';
frxReport1.Variables['p1']:
=QuotedStr('仓库:
'+whName);
frxReport1.Variables['p9']:
=QuotedStr('领用科室:
'+DepName);
frxReport1.Variables['p2']:
=QuotedStr('日期:
'+ywDate);
frxReport1.Variables['p3']:
=QuotedStr('单据号:
'+VoucherNo);
ifwarehouseno=3then
begin
frxReport1.Variables['p8']:
=QuotedStr('经手:
');
frxReport1.Variables['p4']:
=QuotedStr('保管:
');
frxReport1.Variables['p5']:
=QuotedStr('负责人:
');
end
else
begin
frxReport1.Variables['p8']:
=QuotedStr('采购:
');
frxReport1.Variables['p4']:
=QuotedStr('验收:
');
frxReport1.Variables['p5']:
=QuotedStr('科室签字:
');
end;
frxReport1.Variables['p6']:
=QuotedStr('操作员:
'+Operator);
frxReport1.Variables['p7']:
=QuotedStr('打印日期:
'+prDate);
frxReport1.Variables['p10']:
=QuotedStr('('+ShareGlobalVar.GlobalVar.GetUnitID+')');
ifIsPreViewthen
begin
frxReport1.ShowReport;
end
else
begin
frxReport1.PrintOptions.ShowDialog:
=False;
frxReport1.PrepareReport();
frxReport1.Print;
end;
end;
在FastReport写入代码
procedureColumnFooter1OnBeforePrint(Sender:
TfrxComponent);
var
bVisible:
boolean;
begin
bVisible:
==;
Memo12.visible:
=bVisible;
Memo21.visible:
=bVisible;
Memo16.visible:
=bVisible;
Memo14.visible:
=bVisible;
ifnotbvisiblethen
begin
p8.Top:
=27;
p7.Top:
=27;
p4.Top:
= 27;
p5.Top:
= 27;
p6.Top:
= 27;
end
else
begin
p8.Top:
=49.46;
p7.Top:
=49.46;
p4.Top:
= 49.46;
p5.Top:
= 49.46;
p6.Top:
= 49.46;
end;
end;
procedurePage1OnBeforePrint(Sender:
TfrxComponent);
var
bVisible:
boolean;
begin
bVisible:
==;
ifnotbvisiblethen
begin
ColumnFooter1.Height:
=48;
end
else
begin
ColumnFooter1.Height:
=69.35;
end;
end;
begin
end.
7.加入自定义函数
(1)在delphi程序中定义函数
frxReport1.AddFunction('functionMoneyCn(mmje:
Double):
String;','Myfunction','小写金额转大写的函数');
frxReport1.OnUserFunction:
=frxUserFunction;
(2)在frxUserFunction事件中加载函数
functionTFunComm.frxUserFunction(constMethodName:
string;
varParams:
Variant):
Variant;
begin
ifUpperCase(MethodName)=UpperCase('MoneyCn')then
Result:
=MoneyCn(Params[0]);
end;
(3)实现函数(数字转大写)
functionMoneyCn(mmje:
Double):
string;
const
s1:
string='零壹贰叁肆伍陆柒捌玖';
s2:
string='分角元拾佰仟万拾佰仟亿拾佰仟万';
functionStrTran(constS,s1,s2:
string):
string;
begin
Result:
=StringReplace(S,s1,s2,[rfReplaceAll]);
end;
var
S,dx:
string;
i,Len:
Integer;
begin
ifmmje<0then
begin
dx:
='负';
mmje:
=-mmje;
end;
S:
=Format('%.0f',[mmje*100]);
Len:
=Length(S);
fori:
=1toLendo
dx:
=dx+Copy(s1,(Ord(S[i])-Ord('0'))*2+1,2)+Copy(s2,(Len-i)
*2+1,2);
dx:
=StrTran(StrTran(StrTran(StrTran(StrTran(dx,'零仟','零'),'零佰',
'零'),
'零拾','零'),'零角','零'),'零分','整');
dx:
=StrTran(StrTran(StrTran(StrTran(StrTran(dx,'零零','零'),'零零',
'零'),
'零亿','亿'),'零万','万'),'零元','元');
ifdx='整'then
Result:
='零元整'
else
Result:
=StrTran(StrTran(dx,'亿万','亿零'),'零整','整');
end;
(4)FastReport中引用函数
如:
[MoneyCn(,MasterData1,2)>)]
8.在FastReport中将两字段连接起来(用脚本实现)
[Trim()+''+Trim()]
9.数据栏的动态调试设置
MasterData根据数据自动设置其高度
(1)首先设置MasterData栏的Stretch为True
(2) 再右键单击MasterData栏的各个字段,选中StretchtoMaxHeight
即可
10.在Delphi中定义数据字段
var
frxMemo:
TfrxMemoView;
iffrxMemo<>nilthen
begin
frxMemo.AllowExpressions:
=True;
frxMemo.Memo.Text:
='[SUM(,MasterData1)]';
end;
11.分组时打印页号,如1/1,2/1,1/2,2/2,3/2,4/2
在FastReport的脚本中写入:
var
GPage,GIndex,FGIndex:
integer;
PageList:
arrayofinteger;
procedurePageFooter1OnBeforePrint(Sender:
TfrxComponent);
begin
GPage:
=GPage+1;
FGIndex:
=0;
end;
procedurePage1OnBeforePrint(Sender:
TfrxComponent);
begin
GPage:
=1;
end;
procedureGroupFooter1OnBeforePrint(Sender:
TfrxComponent);
begin
ifEngine.FinalPassthen //二次遍历时增加分组索引
FGIndex:
=FGIndex+1
else
begin
setLength(PageList,GIndex+1);
PageList[GIndex]:
=GPage;//存放分组的总页数
GIndex:
=GIndex+1;
end;
GPage:
=0;
end;
procedureMemo6OnBeforePrint(Sender:
TfrxComponent);
begin
ifnotEngine.FinalPassthenexit;
Memo6.Lines[0]:
='总页号:
'+IntToStr(PageList[FGIndex]); //Memo6为总页数
end;
begin
end.
分页号的memo中写入
分页号:
[GPage]
12.如果分组头要每页都显示,则在GroupHeader1的右键中选择StartNewPage,KeepTogether,ReprintonNewPage,ResetPageNumbers