主题:关于VF报表打印时根据字段长度自动调整字体大小的代码
chi123
[专家分:0] 发布于 2008-10-30 16:30:00
初学者请教各位高手,先感谢各位了!!!
求VF报表打印时根据字段长度自动调整文本框字体大小的代码怎么写啊?
就是报表文本框中字符有8个时就用16号字,字符10个时用14号字,字符12个时用9号字,
代码怎么写啊,要放在报表中什么表达式中啊?(好像要先计算字符的长度)
急!!!!![em1]
回复列表 (共8个回复)
沙发
qjbzjp [专家分:8830] 发布于 2008-10-30 16:47:00
将字体设置为大小不同会使表格不美观,
可以将表格的竖线属性设置为“相对于带区高度伸展”、
域控件的属性设置为“溢出时伸展”,
这样字符过长时,就会自动折行打印。
板凳
chi123 [专家分:0] 发布于 2008-10-30 16:51:00
我打印的是票据,字大小不同没关系!!!谢谢!
有的字段一定要打在一行上!
3 楼
qjbzjp [专家分:8830] 发布于 2008-10-30 17:09:00
那只能是在同一控件位置上放置3个同样的互相重叠的控件,分别设置字号为16、14、9,在每个控件的打印条件里判断字符的个数,使其中一个符合条件的打印,另外两个不打印。
4 楼
CCB2000 [专家分:690] 发布于 2008-10-30 17:14:00
可以建立多个textbox实现:
text1: fontsize=16, when len(trim(xxx))<=8
text2: fontsize=14, when len(trim(xxx))>8 and len(trim(xxx))<=10
text3: fontsize=9, when len(trim(xxx))>10
5 楼
chi123 [专家分:0] 发布于 2008-11-07 09:54:00
有没有计算字节长度后用do case的语句实现的啊???
6 楼
qjbzjp [专家分:8830] 发布于 2008-11-07 13:45:00
可以试试:建一个自定义函数,把Do case放进去,来判断字节长度。
7 楼
chi123 [专家分:0] 发布于 2008-11-08 15:54:00
有没有具体的代码啊???
在一个textbox上实现啊???
8 楼
qjbzjp [专家分:8830] 发布于 2008-11-08 21:26:00
还是在报表的同一位置上放置3个同一字段域控件最简单有效,控件互相重叠在一起,
1.分别设置控件字号为16、14、9
2.在每个控件的条件打印里“仅当以下表达式为真时打印”框里设置判断字符个数的表达式,例如8个字符以下:LEN(alltrim(单位名称))=<8,
3.这样打印时只有一个符合条件的打印,另外两个不会打印,就可以实现按字符多少来决定打印字号了。
我来回复