有关使用Crystal Reports打印的条形码的问题

2020-09-25 03:53发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 如果使用Crystal R...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


如果使用Crystal Reports创建条形码并将其输出为PDF,则条形码扫描仪将正常识别条形码。

但是,导出到Word时,条形码扫描仪无法识别条形码。

即使您查看输出,Word和PDF中的条形码结果也不同。

我正在使用Visual Studio 2008,Crystal Report产品版本为11.5.12.1838。

Windows 7、10出现相同的现象。

字体使用CCodeI2of5_S4。

导出到word时,我找不到条形码输出问题的解决方案。


'============================================ ====================
'Encode_I2of5

将Dim数据作为字符串
将Dim chk作为Number

'替换 " 12345678",其中的数据字段为
data =" 12345678"

'将Check Digit设置为0或1
chk = 0

Dim结果作为字符串
Dim 数据长度为Number

Dim条码字符作为字符串
Dim条码值作为Number

Dim过滤数据为String
Dim过滤长度为数字
Dim transformdata字符串为
Dim cd as 字符串

Dim x作为数字
Dim z作为数字

cd =""
transformdata =""
结果=""
datalength = Len(data )


'过滤器输入
对于x = 0到数据长度-1
条码字符= Mid(数据,x + 1,1,)

如果AscW(条码字符) <= AscW(" 9")和AscW(" barchar")> = AscW(" 0")然后
结果=结果+条码字符
如果


下一步x
< br> filtereddata =结果
filteredlength = Len(filtereddata)

'编码
如果chk = 1然后

如果filteredlength> 253然后
filtereddata = Left(filtereddata,253)

结束If

如果(Len(filtereddata)Mod 2 = 0)然后 '使位数为奇数
filtereddata =" 0" + filtereddata
结束If

Dim generateCheckDigit_I2of5 as字符串
Dim切换为数字
Dim sumx为数字
Dim lastcharpos作为数字
Dim ResultVal作为数字

条码字符=""
条码值= 0
切换= 1
sumx = 0

generateCheckDigit_I2of5 =""

lastcharpos = Len(filtereddata)-1
对于x = lastcharpos至0步骤-1

条码字符= Mid(filtereddata,x + 1,1)
条码值=(AscW( 条码字符)-48)

如果切换= 1然后
sumx = sumx +(条码值* 3)
切换= 0
其他
sumx = sumx +条码值
切换 = 1
结束如果
下一个x

如果((sumx Mod 10)= 0)则
ResultVal = AscW(" 0")
其他
ResultVal =( 10-(sumx Mod 10))+ AscW(" 0")
结束于

generateCheckDigit_I2 of5 = Chr(ResultVal)
cd = generateCheckDigit_I2of5

其他

如果filteredlength> 254然后
filtereddata = Left(filtereddata,254)
如果If
< br> If(Len(filtereddata)Mod 2 = 1)然后'使它为偶数位数
filtereddata =" 0" + filtereddata
结束If

结束If

已过滤数据=已过滤数据+ cd



Dim getI2of5Character as string
Dim inputvalue as Number
Dim num as number

结果=""
num = 0
对于x = 0到Len(filtereddata)-1步骤2

num = Val(Mid(filtereddata,x + 1,2))

getI2of5Character =""
inputvalue = num
如果(inputvalue <= 90)And(inputvalue> = 0)然后
inputvalue = inputvalue + 32
ElseIf(inputvalue <= 99)And(inputvalue> = 91)然后
输入值=输入值+ 100
其他
输入值= -1
结束If
getI2of5Character = Chr(输入值)

结果=结果+ getI2of5Character

下一页x

结果=" {" +结果+"}"


公式=结果

4条回答

CR 11.5,只有VS随附的是CR Basic(版本10.5)。

或者CR 2008可以与VS 2008一起使用。

要升级到仅支持的.NET SDK,请转到此处,要求VS 2010-> 2017:

https: //wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads

现在出现字体问题,我从此链接下载该字体:

https://en.m.fontke.com/font/22430464/download /

我得到相同的结果,导出为PDF可以扫描条形码。 我有一台扫描仪进行测试。 我在CRD中使用了您的公式来生成条形码。

导出到Word并查看并打印出来,条形码的末尾附加了一些额外的条。

所以我导出到可以扫描的PDF。 然后,我从PDF Writer将报告导出到Word,Word再次在条形码的末尾添加了一些额外的字符。

所以这不是CR问题,请与Microsoft联系并让他们解决此Font问题。

一周热门 更多>