水晶报表中文本型长字段的等宽显示的问题解决.ASP.NET2005

水晶报表中文本型长字段的等宽显示的问题解决.ASP.NET2005 C#2005

 

对于文本型的字段(或公式,或参数或文本框等等),如果内容较多,可以通过在字段上点右键,设置对象格式,勾选可以扩大即可进行分行显示。
不过有时候效果并不能令我们满意,比如对于一个字段:有一个字段内容为:xxxxxxx yyyyyyyyyyy zzzzzzzzzzzz
这个字段在水晶报中显示为:
xxxxxxx
yyyyyyyyyyy
zzzzzzzzzzzz

而实际上要显示为:
xxxxxxx yyyyy
yyyyyy  zzzzzz
zzzzzz

因为水晶报表在换行时,优先保留了单词的完整性(或者说优先以空格、符号位置换行),所以一般不会在单词中间断开的。

这里我们可以做一个公式,对其主动换行。使用 basic 语法

Dim  i  as  number
Dim  j  as  number
Dim  s1  as   string
Dim  s2  as   string
' 要处理的字符串
s1 = " xxxxxxx yyyyyyyyyyy zzzzzzzzzzzz "
' 每行需要的宽度
j = Length( " xxxxxxx yyyyyy " )
for  i = 1   to   Len (s1) 
    
' 如果是第一行,不用换行
     if  i = 1   then  
        s2
= Mid (s1,i,j)
    
Else
        
' 不是第一行则加一个换行
        s2 =  s2  &   chr ( 13 &   Mid (s1,i,j)
    
End   if
    
' 切换到下一个分割点
    i = i + j
Next
formula
= s2

 

这个对纯英文字符是可以直接用的(该公式拖到模板上后也要将其设置为可扩大),但是如果是中文或其他语种可能就要注意宽度。

比如这样一段文本:汇景大道宝德花园南区15街2座10梯201房、401房、501房;东风东路锦城花园A区2座1601房、 1701房、1801房。

明显数字和汉字的宽度是不一样的,而且数字1和数字5的显示宽度上也有差异,在处理的时候则要特别注意些。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值