以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]二维码打印有关问题,急~~~  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=43644)

--  作者:云淡风轻
--  发布时间:2013/12/12 10:50:00
--  [求助]二维码打印有关问题,急~~~

我参看了案例和帮助文档,做了一个二维码打印的窗口,目的是将二维码打印出来后剪下来贴在实物上,但以下3个问题还未能解决:

1、打印预览效果不好,二维码都挤在一起了,如何设置各二维码打印的间距,每行和每列的个数(每行3个,每列5个)?

2、我想在打印预览中每个二维码上方显示文本信息(即数据表字段“档号”的内容),如何做到?

3、打印内容格式为“字段题名+字段内容”,目前只手工添加了2个字段的题名和内容,如何自动读取所有字段标题及其内容呢?

谢谢!!

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:二维码.rar


--  作者:Bin
--  发布时间:2013/12/12 11:06:00
--  
.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:二维码.foxdb


--  作者:Bin
--  发布时间:2013/12/12 11:07:00
--  
多学习一下http://www.foxtable.com/help/topics/1186.htm
--  作者:云淡风轻
--  发布时间:2013/12/12 11:18:00
--  

非常谢谢,关于第三问,bar.Code = "档号:" + r("档号") + ";案卷题名:" + r("案卷题名")

自动读取数据表的字段名称和内容如何设置(主要是自动获取字段题名)?


--  作者:Bin
--  发布时间:2013/12/12 11:24:00
--  
什么叫做自动获取? 你现在不是已经自动获取了吗?
--  作者:云淡风轻
--  发布时间:2013/12/12 11:52:00
--  

自动获取是循环遍历获取数据表的所有字段名称的意思,案卷库共有8个字段,8个字段名称都写在二维码里,但是不是手工一个一个中文写上去,是否有获取字段名称的属性,比如col.name还是col.title等等

[此贴子已经被作者于2013-12-12 11:52:20编辑过]

--  作者:Bin
--  发布时间:2013/12/12 11:57:00
--  
for each c as col in tables("表A").cols
     messagebox.show(c.name)
next

--  作者:云淡风轻
--  发布时间:2013/12/12 16:00:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:二维码.rar

首先感谢版主的帮助,在版主的帮助下,我根据自己的实际修改了一下代码,目前3个问题都已解决,而且取得了预期和理想的效果!

目前能做到对任意当前表的所有行的二维码打印,无需指定表名、行名和列名,代码迁移性和灵活性非常好。

但是我又想了想,能否优化代码,可以对选定行打印二位码,而不仅仅是当前表的所有行?

这样的话灵活性、实用性就更好了,不仅可以打印单个二维码,也可以批量打印二维码。

请求帮助~~~

[此贴子已经被作者于2013-12-12 16:01:09编辑过]

--  作者:Bin
--  发布时间:2013/12/12 16:01:00
--  
利用  getCheckedrows 不就可以获得所有选中行了吗? 然后循环它就好了


--  作者:云淡风轻
--  发布时间:2013/12/12 16:09:00
--  

以下内容为程序代码:

1 Dim doc As New PrintDoc
2 Dim img As prt.RenderImage
3 Dim Bar As New BarCodeBuilder
4 Dim rt As new prt.RenderText
5 Bar.Symbology = Barpro.Symbology.QRCode
6 Bar.BarRatio = 0.3
7 Bar.BarWidth = 5
8 Bar.BarHeight = 5
9 Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
10 For Each r As Row In CurrentTable.GetCheckedRows
11 Dim ra As New prt.RenderArea
12 ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never \'禁止水平分割
13 ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止垂直分割
14 ra.width = 50
15 ra.height = 60
16 rt = New prt.RenderText
17 rt.Text = "档号:" & r("档号")
18 rt.X = 5
19 rt.Y = 2
20 ra.Children.Add(rt) \'添加到容器中
21 Dim i As Integer = 0
22 Dim temp As String = ""
23 For Each c As Col In CurrentTable.cols
24 temp = temp & "(" & i+1 & ")" & c.name & ":" & r(i) & ";"
25 i = i + 1
26 Next
27 bar.Code = temp.Substring(0,temp.length-1)
28 img = new prt.RenderImage
29 img.Image = bar.GetImage
30 img.Width = 45
31 img.height = 45
32 img.Style.Spacing.All = 2
33 img.Y = 5
34 ra.Children.Add(img)
35 Doc.Body.Children.Add(ra)
36 Next
37 Doc.Preview()

 

 

打印没有显示,怎么办?