RDLC如何解决多行文本的行高问题.

国外.一位大神给的脑洞大开的解决方案.

原理
利用HTML标记把单个文字的字体调大, 强行把行高撑高.然后用换成白色,隐藏掉这个字符.

<span style="font-size:15pt; color:white;">|</span>文本其它内容

实现方法,
第一种方法是: 插入一个比较大的字符把行高撑高,然后用白色隐藏掉它. 缺点是会在插入的地方有空白的宽度.
第二种方法是: 把特殊字符, 例如 逗号, 空格, 句号, 冒号. 等字符换成大字符. 利用它们撑高行高. 缺点是,如果文本内容没有特殊符号,那么还是会行距不足.

考虑到一般的文本中都会有逗号和句号,所以我选择第二种. 这种方法对文本的排版无太大影响.

实现过程:
在文本框中 创建占位符-> 占位符属性->常规->标记类型-> 将HTML标记解释为样式.

然后在这个占位符的值 表达式中写入

  =Code.LineHeight(  First(Fields!RouYanSuoJian.Value, "DiagnosisData"), "15pt")

然后报表属性中->代码-> 增加如下函数.

    Public Function LineHeight(val As String, height As String) As String
        val = Replace(val, ",", ",") '中文2英文
        val = Replace(val, "。", ".") '中文2英文
        val = Replace(val, ",", "<span style='font-size:" + height + ";'>,</span>") '英文
        val = Replace(val, ".", "<span style='font-size:" + height + ";'>.</span>")
        Return val
    End Function

完成

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值