社区
Delphi
帖子详情
fastreport数据重复
lyguo
2004-11-23 10:39:07
我用直接将MEMO.text赋给报表的RICHTEXT
报表上用BAND+RICHTEXT 因Memo.text值太长,可能有三页以上,故将BAND+RICHTEXT设成自动延长
但现在却把MEMO.text的内容重复十几次打印输出。数据集设为虚拟数据集,记录数1
什么地方设错啦?
...全文
433
9
打赏
收藏
fastreport数据重复
我用直接将MEMO.text赋给报表的RICHTEXT 报表上用BAND+RICHTEXT 因Memo.text值太长,可能有三页以上,故将BAND+RICHTEXT设成自动延长 但现在却把MEMO.text的内容重复十几次打印输出。数据集设为虚拟数据集,记录数1 什么地方设错啦?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lyguo
2005-01-23
打赏
举报
回复
bands分隔
当打印一个FastReport的band时,如果在页面上有空间,但空间不够,它将生成新的页面并打印在上面。而且页面空间没有用尽,尤其在band的高度非常大的情况下。
为了在页面上打印多行文本,band不必激活“伸展”选项,但必须激活“分隔”。之后报表大概是这个样子:
如果报表是多栏的,对象中的内容将延续到下一栏:
“Text”,“RoundRect”和“RichText”对象能够分隔内容。其它所有对象当没有足够空间时将输出到下一页。
lyguo
2005-01-23
打赏
举报
回复
问题我自己解决啦,解啦
longtusoft
2004-12-17
打赏
举报
回复
顶啊
bmwyc
2004-12-17
打赏
举报
回复
up
lyguo
2004-12-16
打赏
举报
回复
记当数为1啊,数据库中就没有别的数据,虚拟数据集也设置为1啦
我又回来啦
2004-11-25
打赏
举报
回复
这个问题好像是记录数不为1的时候造成的吧,你也可以试着测试打印仅仅一行数据的报表看看,是不是这个样子、
lyguo
2004-11-23
打赏
举报
回复
这应该与数据库没有关系了吧,数据库中我也看了,确实有一条记录,而且我是把它给MEMOTEXT又反给报表的啊,
trainbox
2004-11-23
打赏
举报
回复
确认记录数为1?
whythinkwhy
2004-11-23
打赏
举报
回复
memo.text得的值要一行一行的赋值 语句:memo.lines.... 可以使用循环
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的属性呀,这是我最常使用的一个属性。
初级到CS开发高手通用权限管理系统全程实录
本课程主讲项目的功能模块主要有:用户管理、角色管理、菜单管理、权限管理、组织机构管理、特权管理、用户角色管理、角色权限管理、日志管理、报表统计、智能客户端、报表设计器和按纽权限组。另外像ADO.NET、分层、事务、视图、委托、反射、WebService、
Fast
Report
.NET、Dev、RDLC、EpPlus操作EXCEL等知识点全部贯穿在视频中讲解
Fast
Report
Demo 1
问题出处:http://topic.csdn.net/u/20080429/10/b0b7f19e-1044-4415-88a3-439ff4ba41ec.html?1013248815
解决方案:
1.将
数据
集整理成主从形式,可以解决单据号显示不正常的问题。
2.加空行,用脚本解决,根据FreeSpace的值,详见附件。
3.金额累加,用脚本解决,设置全局变量,我是在报表表中设置的,不知道可不可以有更好的地方设置。
--------------------------------
Demo程序说明:
1.本人是放在D:\Delphi\MyDemo\
Fast
Report
下完成的,如果要放在别的地方,请设置Access
数据
库位置。
2.
Fast
Report
控件有改过,增加了大小写的函数,如要控件可以联系本人(QQ:56278174),您也可以用自己的函数替代。
VFP]对报表.FRX文件的分析
字段名称 类型 长度 小数 说明 1 PLATFORM C 8 操作平台(_DOS或_WINDOWS) 2 UNIQUEID C 10 唯一标识(当NAME合EXPR都为空时以_RHE开头, 否则以_RNR开头) 3 TIMESTAMP N 10 时间标签(先后次序) 4 OBJTYPE N 2 目标类型(1.环境; 2.
数据
库; 5.文字; 8.变量;9.TIMESTAMP为空; 23.TIMESTAMP为空) 5 OBJCODE N 3 目标代码(1.;4.;7.;53) 6 NAME M 10 名称(
数据
库名称) 7 EXPR M 10 表达式 8 VPOS N 9 3 行座标 9 HPOS N 9 3 列座标 10 HEIGHT N 9 3 高度 11 WIDTH N 9 3 宽度 12 STYLE M 10 风格(透明,不透明) 13 PICTURE M 10 格式或OLE文件名称 14 ORDER M 10 索引排序 15 UNIQUE L 1 唯一
数据
库(.F.,.T.,空) 16 COMMENT M 10 注释 17 ENVIRON L 1 是否报表运行环境(.T.时) 18 BOXCHAR C 1 画框字符 19 FILLCHAR C 1 表达式类型(C,N,D等,文字型的为空) 20 TAG M 10 (当该记录为记录环境的记录时,该字段储存打印信息等;记录
数据
库时,储存
数据
库名称) 21 TAG2 M 10 当该记录为记录环境的记录时,该字段储存打印控制等 22 PENRED N 5 前景红 23 PENGREEN N 5 前景绿 24 PENBLUE N 5 前景蓝 25 FILLRED N 5 填充红 26 FILLGREEN N 5 填充绿 27 FILLBLUE N 5 填充蓝 28 PENSIZE N 5 划线宽度 29 PENPAT N 5 指定填充图案(0.空;1.实体;2.水平;3.垂线;4.左 斜;5右斜;6.交叉;7.斜交叉) 30 FILLPAT N 5 划线类型(0.无;1.点;2.虚线;3. 虚线-点;4. 虚线-点-点) 31 FONTFACE M 10 字体类型 32 FONTSTYLE N 3 字体风格 33 FONTSIZE N 3 字体大小 34 MODE N 3 模式 35 RULER N 1 标尺(2-默认值,3-象素) 36 RULERLINES N 1 标线宽度 37 GRID L 1 是否显示网格线 38 GRIDV N 2 垂直网格线刻度 39 GRIDH N 2 水平网格线刻度 40 FLOAT L 1 浮动 41 STRETCH L 1 溢出时伸展 42 STRETCHTOP L 1 相对于顶端伸展 43 TOP L 1 相对于顶端固定 44 BOTTOM L 1 相对于底端固定 45 SUPTYPE N 1 控制类型 46 SUPREST N 1 控制设置 47 NOREPEAT L 1 每页都打印页标题 48 RESETRPT N 2 重置报表 49 PAGEBREAK L 1 每组从新的一页开始 50 COLBREAK L 1 从新的一列开始 51 RESETPAGE L 1 每组页号重新从1开始 52 GENERAL N 3 通用 53 SPACING N 3 空格 54 DOUBLE L 1 是否加倍 55 SWAPHEADER L 1 头互换 56 SWAPFOOTER L 1 脚注互换 57 EJECTBEFOR L 1 打印前走纸 58 EJECTAFTER L 1 打印后走纸 59 PLAIN L 1 指定只在报表开始位置出现页标题 60 SUMMARY L 1 是否仅打印总计和分类总计信息 61 ADDALIAS L 1 是否增加别名 62 OFFSET N 3 偏移(0-左;1-右;2-居中) 63 TOPMARGIN N 3 上边界高度 64 BOTMARGIN N 3 下边界高度 65 TOTALTYPE N 2 计算类型 66 RESETTOTAL N 2 重置(1-表尾,2-页尾) 67 RESOID N 3 源标识 68 CURPOS L 1 是否显示当前位置 69 SUPALWAYS L 1 是否打印
重复
值 70 SUPOVFLOW L 1 当细节区
数据
溢出时到新页或新列打印 71 SUPRPCOL N 1 当此列改变时打印 72 SUPGROUP N 2 当此组改变时打印 73 SUPVALCHNG L 1 若空行则删除 74 SUPEXPR M 10 是否打印控制条件 ============================== Objtype Objcode Offset 含义 5 0 文字 8 0 表达式 6 0 1 直线(水平线) 6 0 0 直线(垂直线) 7 4 矩形框(0~99椭圆) 用于报表布局的控制的特征值列入下表: Objtype Objcode 含义 9 0 页头高度 9 1 页细节高度 9 3 组标头高度 9 4 组细节高度 9 5 组脚注高度 9 7 页脚注高度 其他常用到的字段有: ①水平坐标(Hpos); ②宽度(Width); ③表达式类型(Fillchar); ④字体(Fontface); ⑤对齐方式(Offset)。
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章