我目前正在运行SSRS 2012,并希望在我的某个报告中实现条形码,我已经在网上阅读了很多关于人们在尝试这样做时遇到的问题的数量,所以尽管我会在这里发布并尝试避免陷阱。
正如我所说,我安装了SSRS 2012,并且我还有许多条形码TTF文件,我们需要将其用于其他内容。我的问题是,这可用于将我的 0100415332 转换为能够扫描的条形码吗?我需要在哪里放这些文件,我已经读过他们需要在客户端机器上进入C:\ Windows \ Fonts但是在服务器端的哪个位置?
之后我相信您可以更改报告中包含条形码的相关文本字段的字体,并且可以转换并扫描一些内容。
任何帮助都是我可能出错的地方,或者在开始这项工作之前我还需要做些什么。非常感谢。
谢谢P
答案 0 :(得分:0)
您应该能够在计划使用的服务器上简单安装条形码字体。
https://docs.microsoft.com/en-us/windows/desktop/gdi/font-installation-and-deletion
此外,虽然code3of9是易于管理的条形码,但由于没有校验和,因此容易出错。您的条形码可能会损坏,并返回与实际值不同的值。对于使用校验和的条形码字体(例如Code128),如果条形码读取的内容与校验和不匹配,则不会读取条形码。我强烈建议您将Code128与以下功能配合使用,以返回带有校验和的条形码。
Public Function GetBarCode(InString as string)
Dim nSum As Decimal, i As Decimal, checkdigit as Decimal
Dim Checksum As Decimal, Checkchar As Decimal
Dim MyString As String, CVal As Decimal, sValues as string
sValues = "ä!" + chr(34) + "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyzÂÃÄÅÆÇÈÉÊËÌÍ"
' Initialize running total with value of Subset B start character
nSum = 104
' Scan the string and add character value times position
For i = 1 To Len(InString) Step 1
MyString = Mid(InString, i, 1)
' Get the numeric value of the character and subtract 32 to shift (the space character, ASCII value 32, has a numeric value of 0 as far as Code 128 is concerned)
CVal = instr(svalues,mystring)-1
' Add the weighted value into the running sum
nSum = nSum + (CVal * i)
Next i
' Calculate the Modulo 103 checksum
Checksum = nSum Mod 103
if checksum = 0 then checksum = 174
' Now format the final output string: start character, data, check character, and stop character
MyString = "{" + InString + right(left(sValues,Checksum),1) + "~"
MyString = Replace (MyString," ", "ä")
GetBarCode = MyString
End Function