回 帖 发 新 帖 刷新版面

主题:关于VF报表打印时根据字段长度自动调整字体大小的代码

初学者请教各位高手,先感谢各位了!!!

求VF报表打印时根据字段长度自动调整文本框字体大小的代码怎么写啊?

就是报表文本框中字符有8个时就用16号字,字符10个时用14号字,字符12个时用9号字,
代码怎么写啊,要放在报表中什么表达式中啊?(好像要先计算字符的长度)

急!!!!![em1]

回复列表 (共8个回复)

沙发

将字体设置为大小不同会使表格不美观,
可以将表格的竖线属性设置为“相对于带区高度伸展”、
域控件的属性设置为“溢出时伸展”,
这样字符过长时,就会自动折行打印。

板凳

我打印的是票据,字大小不同没关系!!!谢谢!

有的字段一定要打在一行上!

3 楼

那只能是在同一控件位置上放置3个同样的互相重叠的控件,分别设置字号为16、14、9,在每个控件的打印条件里判断字符的个数,使其中一个符合条件的打印,另外两个不打印。

4 楼

可以建立多个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 楼

有没有计算字节长度后用do case的语句实现的啊???

6 楼

可以试试:建一个自定义函数,把Do case放进去,来判断字节长度。

7 楼


有没有具体的代码啊???

在一个textbox上实现啊???

8 楼

还是在报表的同一位置上放置3个同一字段域控件最简单有效,控件互相重叠在一起,
1.分别设置控件字号为16、14、9
2.在每个控件的条件打印里“仅当以下表达式为真时打印”框里设置判断字符个数的表达式,例如8个字符以下:LEN(alltrim(单位名称))=<8,
3.这样打印时只有一个符合条件的打印,另外两个不会打印,就可以实现按字符多少来决定打印字号了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册