以文本方式查看主题 - 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个字段的题名和内容,如何自动读取所有字段标题及其内容呢? 谢谢!!
|
||||
-- 作者:Bin -- 发布时间:2013/12/12 11:06:00 -- .
|
||||
-- 作者: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 --
首先感谢版主的帮助,在版主的帮助下,我根据自己的实际修改了一下代码,目前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()
打印没有显示,怎么办?
|