标题:求助 CORD39条形码怎样才能保存在自由表的通用型字段中?
只看楼主
chqzhpnggq
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2022-7-13
结帖率:100%
已结贴  问题点数:20 回复次数:18 
求助 CORD39条形码怎样才能保存在自由表的通用型字段中?
设想是将自由表中一个字符型字段转换成CORD39的条形码(jpg格式),并保存在同一条记录中的一个通用型字段中以便查询或导出为EXCL表。查看了论坛中有关条形码的讨论,试了很久,发现就是这个jpg格式的图像文件不知道如何命名才能得以保存?原来一直没有涉及过条形码,请各位大能指点,先谢谢了!
搜索更多相关主题的帖子: 条形码 jpg 通用 字段 存在 
2022-10-13 14:08
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:5 
楼主的问题可以按照保存图片文件的思路考虑
保存时:
xchr = FILETOSTR(图片文件名)
REPLACE 保存图片的字段名 WITH strconv(xchr,13)

读取时:
strtofile(strconv(alltrim(保存图片的字段名),14),图片文件名)

这种保存方式下有个问题,导出的EXCEL文件中并不能直接看到条码图片

另一种方法,用foxbarcode工具,实时输出barcode图片


[此贴子已经被作者于2022-10-13 14:21编辑过]

2022-10-13 14:18
chqzhpnggq
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2022-7-13
得分:0 
回复 2楼 laowan001
谢谢指点!我想用你提供的第二种方式保存,因为用foxbarcord生成的条形码图形比较容易且标准,但就是找不到如何命名使得这个图形的文件名可用,仿照论坛里几个方法总是出错,烦请能提供具体代码。谢谢了。
2022-10-13 17:00
zhken
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:273
专家分:594
注 册:2012-9-21
得分:1 
回复 3楼 chqzhpnggq
可以在表单上放一图片控件,再用这个图片的 PICTUREVAL=保存在备注字段的数据流。即可在表单上显示
2022-10-13 22:43
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:5 
以下是引用chqzhpnggq在2022-10-13 17:00:42的发言:

谢谢指点!我想用你提供的第二种方式保存,因为用foxbarcord生成的条形码图形比较容易且标准,但就是找不到如何命名使得这个图形的文件名可用,仿照论坛里几个方法总是出错,烦请能提供具体代码。谢谢了。


poFbc = CREATEOBJECT("FoxBarcode")
WITH poFbc
  .cImageType = "JPG"
  .nBarcodeType = 110  && Code 128
  .cSet128 = "B"    &&"Auto" && Set 128 C
  .nImageHeight = 70
  .nFactor = 2
ENDWITH

xfilename = poFbc.barcodeimage('123123',SYS(5)+SYS(2003)+'\'+SYS(2015))
MESSAGEBOX( xfilename)
2022-10-14 10:31
chqzhpnggq
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2022-7-13
得分:0 
回复 5楼 laowan001
谢谢指点!这段代码完美的解决了条形码图片的命名和保存在指定位置的问题,就是图片文件名是随机生成的,不便于查询。根据你提供的思路,我写了一段代码,成功的将生成的条形码存入了名为“条形码”的通用字段中,查看条形码的图像显示的文件名也是随机的,但有生成条码的字符型字段可对应查找。但现在还有不少问题:一是我设
程序及表.rar (62.52 KB)
定的CODE39的编码,生成的条形码除了前后的“*”号外,在结尾*号前还有一个随机的字母,不知道我生成的是不是CODE39的条形码?二是如何将表中“条形码”内的图片调出来打印?  附生成条码的代码及数据表。谢谢了!

[此贴子已经被作者于2022-10-14 16:26编辑过]

2022-10-14 16:19
chqzhpnggq
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2022-7-13
得分:0 
由于我是初次涉及条形码相关的内容,所以完全是白丁一个,可能提出的问题有点弱,希望各位大能谅解并不吝赐教谢谢!
2022-10-14 16:30
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:2 
poFbc.barcodeimage('123123',SYS(5)+SYS(2003)+'\'+SYS(2015))
这个例子中的文件名是随机的,这里的sys(2015)可以改成你指定的文件名(不含扩展名)

至于把条码图片调出来打印的问题,可分解为两个问题:
(1)怎样把字段中的内容保存为图片,下面这句就是
strtofile(strconv(alltrim(保存图片的字段名),14),图片文件名)
(2)把图片打印出来。既然已经保存为文件了,打印应该不是问题了吧
2022-10-14 21:11
chqzhpnggq
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2022-7-13
得分:0 
回复 8楼 laowan001
好的,我去试一下。谢谢指点!
     已经试过了,strconv(alltrim(保存图片的字段名),14)  这个函数提示“函数参数的值、类型或数目无效”。查了一下,在VFP7.0里就有这个函数,功能是将字符表达式转换成另一种形式,一共有1-8种类型,但主要是字符的字节和地区相关的大小写转换。9.0增加到了16种,其中14是“将 cExpression 中的 base64 编码数据转换为原始的未编码数据。”,感觉应该可用,但就是过不了。

[此贴子已经被作者于2022-10-15 11:21编辑过]

2022-10-15 09:55
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:2 
不要使用通用型字段!除非你想受虐。保留这种类型的唯一理由是维护旧的应用程序。用 BLOB 或 MEMO
所谓“通用”具有欺骗性,实际上是最不通用的字段类型,存储在其中的文件或图片,没有官方提供的命令或函数准确的将其还原出来。

提示的值、类型或数目无效,估计就是 alltrim(通用型字段名) 引起的
即使去掉 alltrim,函数 strconv 可能也会同样拒绝接受通用型数据

[此贴子已经被作者于2022-10-15 14:34编辑过]

2022-10-15 14:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510291-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054656 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved