Fastreport 如何在一行里显示多列?

cowboooo 2013-01-15 02:53:17
在一行里显示多列,
而且是不同的记录?
比如下面,我要分三列。。
如何操作,请大虾指点。。

比如:

ID name ID name ID name
--------- --------- ---------
1 cowbo 2 hackc 3 xiu


...全文
476 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
babydog01 2013-01-15
  • 打赏
  • 举报
回复
在数据带设置一下就可以了。


bdmh 2013-01-15
  • 打赏
  • 举报
回复
模版中可以设置分栏
Oraclers 2013-01-15
  • 打赏
  • 举报
回复
设成3列就可,设计时有这个属性。
:首先是要分组,因为如果不分组,想合并的列与其它列会自动打印。这样,只能使用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的属性呀,这是我最常使用的一个属性。
第一章 设计 7 1.1、控制键 8 1.2、鼠标操作 9 1.3、工具栏 10 1.3.1、设计模式工具栏 10 1.3.2、“标准”工具栏 10 1.3.3、“文本”工具栏 11 1.3.4、“边框”工具栏 12 1.3.5、“对齐”工具栏 12 1.4、设计选项 13 1.5、报表设置 15 1.6 页面设置 16 第二章 创建报表 19 2.1、报表对象 20 2.2、“世界,你好!”报表示例 20 2.3、“Text”组件 21 2.4、在“Text”组件中使用HTML标记 23 2.5、通过“Text”组件显示公式 24 2.6、FastReport中的Bands 25 2.7、Data Band 26 2.8、TfrxDBDataSet组件 27 2.9、“客户列表”报表 27 2.10、通过text组件显示数据表字段 29 2.11别名 30 2.12、变量。 30 2.13、“Picture”控件 32 2.14、图形报表 33 2.15、多行文本显示 34 2.16、文本拆分 36 2.17、组件的Wrap 37 2.18、显示数据表中的数据 38 2.19、标签式打印 40 2.20、子bands 42 2.21、组件的移动 43 2.22、两个数据阶的报表(主—细) 43 2.23、页首和页尾数据Band 46 2.24、多页报表 47 第三章 分组集合体 50 3.1、分组打印 51 3.2、其他分组特性 53 3.3页码的重设 55 3.4、组的操作 55 3.5、行数 56 3.6、函数集 57 3.7、页和报表的统计 60 3.8、插入汇总函数 61 第四章 格式化、加强 62 4.1、格式化输出结果 63 4.2、内嵌格式化 63 4.3、条件显示 65 4.4、分行显示数据行的颜色 66 第五章 嵌套报表 68 5.1嵌套报表 69 5.2、设计子报表 69 5.3、子报表中的限制 69 5.4、PrintOnParent选项 70 第六章 脚本 72 6.1、体验脚本语言 73 6.2、脚本结构 76 6.3、“世界你好!”脚本 78 6.4、脚本中组件对象的使用 79 6.5、调用报表变量列表中的变量。 79 6.6、调用数据表子段 80 6.7、脚本中调用汇总函数 80 6.8、报表中变量值的显示 80 6.9、事件 81 6.10、一个使用“OnBeforePrint”事件的例子 82 6.11、在组头打印组的汇总信息 84 6.12、“OnAfterData”事件 88 6.13、Service组件 89 6.13.1、Report组件 89 6.13.2、Engine组件 90 6.13.3、“OutLine”组件 91 6.13.4、引擎组件的使用 91 6.15 Anchors 94 6.16 “Outline” 组件的使用方法 96 6.17 “OnManualBuild” 页面事件 98 6.18 脚本中的组件的建立 104 第七章 交叉报表 106 7.1、创建交叉报表 108 7.2、改变显示 110 7.3、使用函数 112 7.4、对结果进行排序 112 7.5、组合标题的表格 113 7.6、调整单元格的宽度 115 7.7、字体颜色和突出显示 117 7.8、使用脚本语言管理组件 118 7.9、调整行和列的大小 123 7.10、手动填充表格单元 124 7.11、在表格单元中加入其他组件 126 7.12、一些有用的设置 129 第八章 制图表 132 8.1、chart数据中数字的限制 137 8.2、设置 137 8.3、指定数字制表 138 8.4、利用脚本进行制表 139 8.5、在delphi环境中创建的报表的打印 139 第九章 点阵报表 140 9.1、点阵报表使用交叉报表 144 9.2、点阵报表的打印 145 9.3、命令组件 146 第十章 对话框窗体 147 10.1、控件 148 10.2、“世界你好!”报表 149 10.3、输入参数,并传递到报表中 150 10.4、组件的交互 150 10.5、多个对话框表单 151 10.6、对话框窗体的管理 152 第十一章 数据访问组件 155 11.1、组件的描述 156 11.1.1、TfrxDBLookupCombobox组件 157 11.1.2、TfrxADOTable组件 157 11.1.3、TfrxAdoQuery组件 159 11.1.4、TfrxADODatabase组件 161 11.2、创建报表 161 11.3、简单的列表式报表 162 11.4、参数查询报表 163 11.5、其他可用配置 164 第十二章 报表的继承性 166 12.1、创建报表 167 12.2、修改基础模板 169 12.3、组件的继承 170 第十三章 报表向导 171 13.1、新报表向导 172 13.2、数据连接向导 175 13.3、新table向导 176 13.4、新query向导 177 13.5、查询语句生成 177 第十四章 报表的预览 打印 导出 180 14.1、控制键 182 14.2、鼠标控制 182 14.3、报表的打印 183 14.4、报表中的文字搜索 183 14.5、报表的导出 184

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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