社区
Delphi
帖子详情
在FastReport中如何实现动态列
程晨c
2011-09-08 10:00:43
用DbGridEh显示查询结果,用FastReport打印查询结果
查询结果是行转列,列不固定
所以根据查询结果的列来动态初始化DbGridEh的列
但是用FastReport打印动态列,还如何处理呢。
(目前用了个变通的办法,就是直接打印DbGridEh。)
...全文
565
5
打赏
收藏
在FastReport中如何实现动态列
用DbGridEh显示查询结果,用FastReport打印查询结果 查询结果是行转列,列不固定 所以根据查询结果的列来动态初始化DbGridEh的列 但是用FastReport打印动态列,还如何处理呢。 (目前用了个变通的办法,就是直接打印DbGridEh。)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq7118622
2011-09-08
打赏
举报
回复
up..........
babydog01
2011-09-08
打赏
举报
回复
fastreport可以动态加入字段。
比较麻烦,不建议使用。。。。。
程晨c
2011-09-08
打赏
举报
回复
没有人搞过吗?
山东蓝鸟贵薪
2011-09-08
打赏
举报
回复
占个位置学习一下
学习学习先
程晨c
2011-09-08
打赏
举报
回复
up......
Fast
Report
报表合计数
Fast
Report
报表合计数,通常情况下都是在数据尾显示合计数, 但是如果要将合计数放在报表头,不能将合计字段拖到表头的,否则它会显示为0,因为
Fast
Report
是自从上往下输出数据的,是需要写脚本来
实现
。 在beforeprint 事件里,循环数据源,将合计数输出在报表头上来。
Fast
Report
数据单元格格纵向横向合并功能
实现
支持记录集多记录纵向单元格同内容合并以及
列
合并;修改单元frxEngine.pas,frxClass.pas , Xe3验证可用,内附样式文档
Fast
Report
合并相应行代码.rar
:首先是要分组,因为如果不分组,想合并的
列
与其它
列
会自动打印。这样,只能使用FR自带的隐藏重复数据的功能,但很多类似报表都是要求合并行居
中
的,这点FR就不能自动
实现
了。 2:要全并的
列
放在分组脚
中
,其它放在分组数据BAND
中
,这样,打印完分组数据BAND后,
动态
改变分组脚
中
要合并
列
的TOP和HEIGHT就可以了。而且这样打印,因为要合并的行实际上只打印了一遍,因此应该效率更高。所以这就需要在打印分组数据BAND后有一个可记录此分组已打印高度的功能。 3:代码解释 procedure MCOnAfterData(Sender: TfrxComponent); begin if =1 then MC.Tag:=Int(MC.Height) else MC.Tag:=MC.Tag+Int(MC.Height); end; 因为FR的在每次分组后重新计数,使用MC.Tag保存现在数据BAND上的所有不合并行的总高度。当然也可以使用一个变量,但放着这么多TAG不用,多浪费呀。况且使用TAG的语法也比使用变量简单,使用变量使程序看上去很难懂。 if >=1 then 这样的写法看起来多痛苦呀。 procedure MBBOnAfterData(Sender: TfrxComponent); begin MBB.Tag:=GetStandHeight(MBB.CalcHeight); //这一句是为了保持行高的一致性,如果不需要直接 MBB.Tag:=MBB.CalcHeight; //这样可能计算的行高不是标准行高的整数倍。 MBB.Visible:=False; end; procedure MD1OnBeforePrint(Sender: TfrxComponent); begin if =1 then MBB.Visible:=True; end; 上二句只是为了不多次统计CalcHeight,但不能直接设可视性为假,否则不会触发MBBOnAfterData事件。 计算此例
中
可能会很高的
列
的计算高度,这是在宽度已经确定的情况下计算的。 因为此例
中
的第二
列
单行高度可能大于其它
列
的总高度。如果没有此例
中
的特殊情况,可以省略。 4:如果此例
中
没有第二
列
单行高度可能大于其它
列
的总高度的话,MBB是不需要的。 5:如果不是要求空行为多行多
列
显示的话,GFOnBeforePrint也是不需要的,只需要在GF上放二个MEMOVIEW,宽高和左边距分别与上方的二个相同,调用我例子
中
注释掉的代码改变它们的TOP和HEIGHT即可。 6:TAG是所有Tcomponent的属性呀,这是我最常使用的一个属性。
Delphi通过RTTI
实现
TdxDBGrid,TDBGrid标题,
列
宽,显示顺序,字体大小颜色等
动态
配置
Delphi通过RTTI
实现
TdxDBGrid,TDBGrid标题,
列
宽,显示顺序,字体大小颜色等
动态
配置
C#自定义横向打印
今天再次与C#编程者分享一款自定义打印方向的代码,C#自定义横向打印,并
实现
了纸张设置和打印预览,是否打印分割线也可以设置,对打印信息进行设置,记录窗体
中
打印信息的相关设置,创建一个与数据
列
相等的字符串数组,对纸张横向或竖向的打印在一些程序打印输出时是常用的功能。 运行环境:Visual Studio2010
Delphi
5,386
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章