如何让Fastreport中某个masterData像pageheader那样每页都显示?

liangyx46 2014-01-07 10:37:30

需要打印的样式如图所示(但具体内容有所修改),上面的红色部分是每页都要打印的,即每页内容都相同,直到下面“获得荣誉”打印完毕
说明一下,获得荣誉与岗位变化是没有主从关系的,所以现在分别用两个masterdata,但是“岗位变化”需要每页都显示,这个我就不知道应该如何处理?怎么让“岗位变化”的对应masterData像pageheader那样每页都显示一样的内容?本人对fastreport不熟
...全文
871 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangyx46 2014-02-03
  • 打赏
  • 举报
回复
procedure Header2OnBeforePrint(Sender: TfrxComponent); begin IF <Page#><>1 then begin Engine.ShowBand(Header1); MasterData1.DataSet.first; while not MasterData1.DataSet.eof do begin Engine.ShowBand(MasterData1); MasterData1.DataSet.next; end; end; end; 用了上面的方法,但MasterData1只打印第一行,后面的都空白?为什么?
liangyx46 2014-01-27
  • 打赏
  • 举报
回复
引用 6 楼 babydog01 的回复:
你下面的两个可放两个主数据带。 fR支持多个数据带的。系统打印完成每一个再打印第二个。
我就是想问怎样使第一个数据带每页都打印相同的结果~ 因为第一个数据带一般只有一两条记录,而第二个数据带则比较多,所以第一个数据带在第一页打印完后第二页就不出现了~ 之前试了一下在Page1OnBeforePrint事件加了一个 MasterData1.DataSet.first,但没效果~有什么方法让MasterData1每页都打印?
babydog01 2014-01-10
  • 打赏
  • 举报
回复
你下面的两个可放两个主数据带。 fR支持多个数据带的。系统打印完成每一个再打印第二个。
liangyx46 2014-01-09
  • 打赏
  • 举报
回复
引用 3 楼 babydog01 的回复:
[quote=引用 2 楼 liangyx46 的回复:] [quote=引用 1 楼 babydog01 的回复:] 你直接把字段拖放在页首栏中就可以了。条件是每次只能打印一条主记录,它不会向下移动记录指针。
只能打印一条主记录?但我要的是不止一条记录,而且每页都有,并且是相同的[/quote] 还是没有明白你的意思?既然所有页都相同,那这个方法就可行。[/quote] “员工姓名”,“入职时间”用TfrxMemoView(frxReport1.FindObject('Memo13')).Memo.Text:=adoquery1.fieldbyname('姓名').asstring;这方法是没问题, 但每位员工“岗位变化”记录是有若干条的,我就是想问这个“岗位变化”怎样每页都打印一样的几条记录?
babydog01 2014-01-09
  • 打赏
  • 举报
回复
用这个方法就不用主从表了。 我们称表1,表2了,表1在表2中对应多个记录。 如果要打印表1的多个记录,在delphi 中用循环改变表1表2的内容直接打印就可了。 while not adoquery1.eof do begin adoquery2.close; adoquery2.sql.clear; adouqery2.sql.add('select * from 表2 where ....') self.frxReport1.LoadFromFile('reports\统计明细表.fr3'); //这里也可以不用将表头数据关联至表1,用这个直接改变表头的值 //TfrxMemoView(frxReport1.FindObject('Memo13')).Memo.Text:=adoquery1.fieldbyname('姓名').asstring; self.frxReport1.ShowReport; adoquery1.next; 自己动手试一下就明白了。 end; 手写代码,大概这个意思了。
babydog01 2014-01-09
  • 打赏
  • 举报
回复
引用 2 楼 liangyx46 的回复:
[quote=引用 1 楼 babydog01 的回复:] 你直接把字段拖放在页首栏中就可以了。条件是每次只能打印一条主记录,它不会向下移动记录指针。
只能打印一条主记录?但我要的是不止一条记录,而且每页都有,并且是相同的[/quote] 还是没有明白你的意思?既然所有页都相同,那这个方法就可行。
liangyx46 2014-01-08
  • 打赏
  • 举报
回复
引用 1 楼 babydog01 的回复:
你直接把字段拖放在页首栏中就可以了。条件是每次只能打印一条主记录,它不会向下移动记录指针。
只能打印一条主记录?但我要的是不止一条记录,而且每页都有,并且是相同的
babydog01 2014-01-08
  • 打赏
  • 举报
回复
你直接把字段拖放在页首栏中就可以了。条件是每次只能打印一条主记录,它不会向下移动记录指针。
下载代码方式:https://pan.quark.cn/s/dd3561eca308 在软件开发领域,面向对象编程(OOP)是一种普遍采纳的结构化方法,它使得开发者能够借助模拟现实环境的实体和关系来构建软件系统。在本案例,我们观察到的是一个关于借助抽象类来执行不同几何图形面积求解的实践应用。现在,让我们详细分析这一议题。 标题 "应用抽象类计算面积" 清晰地表明我们将要讨论一个抽象类,此类设定了一个用于测量图形面积的标准函数,但并未提供实际的执行过程。抽象类在诸如C#或Java等编程语言通常借助`abstract`修饰符进行声明,它们无法直接创建对象实例,仅能作为其他类的基础模板。 描述部分提及的"图形界面应用"暗示这是一个基于视觉用户界面(GUI)的系统,可能运用了.NET Framework的Windows Forms或WPF技术,或者是Java平台的Swing或JavaFX框架。在这样环境下,用户能够通过视觉元素与这些几何体进行互动,例如输入相关尺寸并观看到计算得出的面积值。 抽象类“几何体”内嵌了“计算面积”这一抽象函数。在代码层面,这可以被表述为: ```csharp public abstract class GeometricShape { public abstract double CalculateArea(); } ``` 随后,有三个派生类:圆(Circle)、矩形(Rectangle)和三角形(Triangle),它们各自提供了这个抽象函数的具体实现。比如,圆的面积是通过π乘以半径的平方得到的,矩形的面积是长和宽的乘积,而三角形的面积可能是底乘以高再除以2的结果。这些类将提供具体实现来计算它们各自的面积: ```csharp p...

5,943

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧