FastReport问题,送分!(100分)

  • 主题发起人 主题发起人 绝对菜鸟
  • 开始时间 开始时间

绝对菜鸟

Unregistered / Unconfirmed
GUEST, unregistred user!
偶系统中有打印花名册(其中字段有:编号,姓名,性别,职称,政治面貌,年龄等等)
客户要求有选择打印(有时候他们只打印编号和姓名,或者打印姓名,性别,职称,有时候只打印男的或者女的,等等)
我想用FastReport做一个动态打印的报表。在打印前,可以让客户选择要打印的内容
然后在打印的时候可以让他们选择的内容按照列表横向排列当作表头,空间根据内容变化,没有选择的内容不作为打印内容!
如果哪位仁兄,好姐妹们能不吝赐教,偶不胜感激!如果有源码发到偶信箱里更是感激
E-mail:dabing123788@hotmail.com
 
用frPrintGrid吧,可以打印DBGrid中的内容,若某列的Visble为False则不会被打印
 
http://www.pcbookcn.com/list.asp?id=1010
看看书吧
 
动态产生报表,给你一点思路吧:
procedure AddBandView(Left,Top,Width,Height:integer;BandType:TfrBandType;Page: TfrPage);
var
b: TfrBandView;
begin
b := TfrBandView.Create;

b.SetBounds(Left,Top ,width,height);

b.BandType := BandType;

if BandType=btMasterData then
b.DataSet:=mData.Name;
Page.Objects.Add(b);
end;

procedure AddMemoView(Left,Top,Width,Height,FrameTyp,Alignment:integer;Memo,Cap:String;Page: TfrPage);
var
v,v1:TfrMemoView;
begin
v := TfrMemoView.Create;
// 明细
v.SetBounds(Left + frRepMarginLeft ,200 ,width,DetailHgt);
v.Memo.Add(Memo);
v.FrameTyp:=FrameTyp;
v.Alignment:=Alignment;
Page.Objects.Add(v);
v1 := TfrMemoView.Create;
//标题
v1.SetBounds(Left + frRepMarginLeft ,140 ,width,CapHgt);
v1.Memo.Add(Cap);
v1.FrameTyp:=FrameTyp;
v1.Alignment:=2;
v1.Font.Style:=[fsBold];
Page.Objects.Add(v1);
end;

procedure AddMemoView1(Left,Top,Width,Height,FrameTyp,Alignment,FontSize:integer;FontStyle:TFontStyles;
Cap:String;
Page: TfrPage);
//增加一个Memo
var
v1:TfrMemoView;
begin
v1 := TfrMemoView.Create;
// create data field
v1.SetBounds(Left + frRepMarginLeft ,Top ,width,height );
v1.Memo.Add(Cap);
v1.FrameTyp:=FrameTyp;
v1.Alignment:=Alignment;
v1.Font.Size:=FontSize;
v1.Font.Style:=FontStyle;
//v1.BandAlign:=baRest;
Page.Objects.Add(v1);
end;

procedure NewPage(var frReport:array of TfrReport;var Page:TfrPage;var iPageWidth,iCurLeft,iRepCnt:integer);
var
i:integer;
begin
frReport[iRepCnt]:=TfrReport.Create(fMain);
//frReport[iRepCnt].LoadFromFile('asd.frf');
frReport[iRepCnt].Pages.Add;
Page := frReport[iRepCnt].Pages[0];

Page.ChangePaper($100, frRepPageWidth, frRepPageHeight ,$ffff,poPortrait);
//$100 自定义
Page.pgMargins.Left := frRepMarginLeft;
Page.pgMargins.Top:=frRepMarginTop;
Page.pgMargins.Right:=frRepMarginRight;
Page.pgMargins.Bottom:=frRepMarginBottom;


AddBandView(0,20 ,0,20 ,btReportTitle ,Page);
//添加报表头
。。。。。

 
我有源代码,已以
 
请不要到处传送
 
To:zdwwf,谢谢你费了那么多力气,好象你给的有一点是我用的!
To:江西的delphi,多谢了!我能保证不到处乱传的!
哪位还有要发表意见的吗?
该帖保留一周,一周后我就接受答案,分配积分了!
 
结束吧,分分
 

Similar threads

回复
0
查看
848
不得闲
回复
0
查看
1K
不得闲
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
777
DelphiTeacher的专栏
D
后退
顶部