Chr☆s Kwok 的技术笔记

.NET, C#, WPF, WCF, WF, .NetCore & LINQ ... I know how it works because I know why it works ...

博客园 首页 新随笔 订阅 管理

应用场景:

譬如打印一个标签要求文本串超过10个字节(一个汉字或全角字符算2个字节)则以12px字体大小,否则以22px字体大小

PS:汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符

此时由于RDLC没有现成的函数可用(有个计算字符数的函数Len功能类似,但不满足上面需求),所以需要用VB脚本来实现:

Function GetByteCount(str As String) As Integer
Dim i As Integer
Dim s As String
Dim ret As Integer
For i = 1 To Len(str)
    s = Mid(str, i, 1)
    If Len(Hex$(AscW(s))) > 2 Then
        ret = ret + 2
    Else
        ret = ret + 1
    End If
Next i
Return ret
End Function

这段代码需要嵌入到RDLC文件中,菜单【Report】->【Report Properties...】选中【代码】页签:

在应用的单元格使用表达式:

 

 

posted on 2024-01-23 16:11  Chr☆s  阅读(94)  评论(0编辑  收藏  举报