以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  老大,帮我看看这个专业报表代码应该怎么改?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=21693)

--  作者:blackzhu
--  发布时间:2012/7/21 16:22:00
--  老大,帮我看看这个专业报表代码应该怎么改?
Tables(e.Form.Name & "_Table1") .Select(0, 0, CurrentTable.Rows.Count - 1, CurrentTable.Cols.Count - 1)
Dim doc As New PrintDoc \'定义一个报表
\'Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
Dim ra As New prt.RenderArea
Dim rt As prt.RenderText
ra.Width = 60 \'设置标签宽度
ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never \'禁止水平分割
ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止垂直分割
ra.Style.Spacing.Right = 2 \'设置标签之间的所有和上下间隔为2毫米
ra.Style.Spacing.Bottom = 2
ra.Style.Padding.All = 1 \' 标签内容距离边框为1毫米
ra.Style.Borders.All = New prt.Linedef(0.3, Color.Black) \'设置边框
ra.DataBinding.DataSource = BindTables("代券信息_Table1") \'将容器绑定到员工表
Dim Bar As New BarCodeBuilder
Bar.Symbology = Barpro.Symbology.QRCode
Bar.Code = "[Fields!代券代码.Value]"
Dim rm As New prt.RenderImage
rm.Image = Bar.GetImage(200)
doc.Body.Children.Add(rm)
Doc.Body.ChildRen.Add(ra) \'将容器加入到报表中 
rt = New prt.RenderText
rt.Text = "代券代码:[Fields!代券代码.Value]"
ra.Children.Add(rt) \'添加到容器中
rt = New prt.RenderText
rt.Text = "启始日期:[Format(Fields!启始日期.Value,""yyyy-MM-dd"")]"
ra.Children.Add(rt) 
rt = New prt.RenderText
rt.Text = "结束日期:[Format(Fields!结束日期.Value,""yyyy-MM-dd"")]"
ra.Children.Add(rt) 
rt = New prt.RenderText
rt.Text = "使用规则:[Fields!使用规则.Value]"
ra.Children.Add(rt) \'
Doc.Preview()


  我想是一行  并排 


  条形码      框子                   条形码    框子



  这样的格式

--  作者:blackzhu
--  发布时间:2012/7/21 16:26:00
--  
现在是这样的.

图片点击可在新窗口打开查看此主题相关图片如下:报表_page1_page1.jpg
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2012/7/21 16:52:00
--  
这是没有办法解决的,你只能不用绑定,手工编码遍历所有行,逐行生成条码和框子,逐个加入。
--  作者:blackzhu
--  发布时间:2012/7/21 17:08:00
--  
啊!不会吧?

Tables(e.Form.Name & "_Table1") .Select(0, 0, CurrentTable.Rows.Count - 1, CurrentTable.Cols.Count - 1)
Dim doc As New PrintDoc \'定义一个报表
Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
Dim ra As New prt.RenderArea
Dim rt As prt.RenderText
ra.Width = 60 \'设置标签宽度
ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never \'禁止水平分割
ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止垂直分割
ra.Style.Spacing.Right = 2 \'设置标签之间的所有和上下间隔为2毫米
ra.Style.Spacing.Bottom = 2
ra.Style.Padding.All = 1 \' 标签内容距离边框为1毫米
ra.Style.Borders.All = New prt.Linedef(0.3, Color.Black) \'设置边框
ra.DataBinding.DataSource = BindTables("代券信息_Table1") \'将容器绑定到员工表
Doc.Body.ChildRen.Add(ra) \'将容器加入到报表中
Dim Bar As New BarCodeBuilder
Bar.Symbology = Barpro.Symbology.QRCode
Bar.BarRatio = 0.3
Bar.BarHeight = 5
Bar.Code = "代券代码:[Fields!代券代码.Value]"
Dim rm As New prt.RenderImage
rm.Image = Bar.GetImage(300)
ra.Children.Add(rm)
rt = New prt.RenderText
rt.Text = "代券代码:[Fields!代券代码.Value]"
ra.Children.Add(rt) \'添加到容器中
rt = New prt.RenderText
rt.Text = "启始日期:[Format(Fields!启始日期.Value,""yyyy-MM-dd"")]"
ra.Children.Add(rt)
rt = New prt.RenderText
rt.Text = "结束日期:[Format(Fields!结束日期.Value,""yyyy-MM-dd"")]"
ra.Children.Add(rt)
rt = New prt.RenderText
rt.Text = "使用规则:[Fields!使用规则.Value]"
ra.Children.Add(rt) \'
Doc.Preview()

  我现在的这个 变成了.

图片点击可在新窗口打开查看此主题相关图片如下:hh_page1.jpg
图片点击可在新窗口打开查看


--  作者:blackzhu
--  发布时间:2012/7/21 17:08:00
--  
但是不好看  ,EXCEL有这个二维码打印的字体吗?
--  作者:狐狸爸爸
--  发布时间:2012/7/22 11:12:00
--  

其实自己遍历,不知道多方便,你打开CaseStudy目录下的文件: Excel报表.Table

 

然后在命令窗口执行下面的代码:

 


Dim doc As New PrintDoc
Dim Bar As New BarCodeBuilder
doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
Bar.Symbology = Barpro.Symbology.QRCode
For Each r As Row In Tables("员工").Rows
    Dim rt As New prt.RenderTable() \'定义一个表格对象
    rt.Style.GridLines.All = New prt.LineDef \'将网格线类型设为默认类型
    rt.Width = 70 \'表格宽度为70mm
    rt.Style.Spacing.All = 2 \'和其他对象之间的间隔为2mm
    rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'避免垂直换页的时候,表格被分割成两部分.
    rt.Cols(0).Width = 20
    rt.cells(0,1).Text = "姓名"
    rt.Cells(0,2).Text = r("姓名")
    rt.Cells(1,1).Text = "部门"
    rt.Cells(1,2).Text = r("部门")
    rt.Cells(2,1).Text= "职务"
    rt.cells(2,2).Text = r("职务")
    rt.Cells(0,0).SpanRows = 3
    Bar.Code = r("地址")
    rt.Cells(0,0).Image = bar.GetImage
    doc.Body.Children.Add(rt) \'将表格对象加入到
Next
Doc.Preview()