Foxtable(狐表)用户栏目专家坐堂 → [求助] 如何编写这样的代码


  共有6290人关注过本帖树形打印复制链接

主题:[求助] 如何编写这样的代码

帅哥哟,离线,有人找我吗?
czgtiger
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:475 积分:3548 威望:0 精华:0 注册:2012/8/30 10:58:00
[求助] 如何编写这样的代码  发帖心情 Post By:2013/7/12 21:33:00 [只看该作者]

目的:通过复选框选中编号,打印出"份数"例中的份数,


此主题相关图片如下:1.jpg
按此在新窗口浏览图片
比方,选中YR-35,"份数"中是5,预览结果如下:
此主题相关图片如下:2.jpg
按此在新窗口浏览图片

现在编写了一段代码,不知道如何修改,请高手指点


Dim doc As New PrintDoc '定义一个报表
Dim rs As New prt.RenderText()
doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight '设置排列方式
For i As Integer = 1 To 5
    Dim rt As New prt.RenderTable() '定义一个表格对象  
    rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
    rt.Width = 70 '表格宽度为50mm
    rt.Style.Spacing.All = 2 '和其他对象之间的间隔为2mm
    rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never '避免垂直换页的时候,表格被分割成两部分.
    rt.Cols(0).Width = 15
    rt.cells(0,0).Text = "产品编号"
    rt.cells(0,1).text = "YR-35"
    rt.Cells(1,0).Text = "成份比例"
    rt.Cells(2,0).Text = "纱支"
    rt.Cells(3,0).Text = "密度"
    rt.Cells(4,0).Text= "幅宽"
    rt.cells(5,0).text = "克重"  
    rt.cells(6,0).Text = "备注"
    rt.Cells(7,0).SpanCols =2
    rt.cells(7,0).text = "           上海佑冉经贸发展有限公司"
    rt.Rows(7).Style.BackColor = Color.LightGray
    doc.Body.Children.Add(rt) '将表格对象加入到报表中
Next
Doc.Preview() '预览报表

 

最好其中的rt.cells().text = 数据动态的从产品表中读出,如何实现这些功能呢



 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/7/13 9:12:00 [只看该作者]

Dim doc As New PrintDoc '定义一个报表
Dim rs As New prt.RenderText()
doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight '设置排列方式
For i As Integer = 1 To Tables("表名").Current("份数")
    Dim rt As New prt.RenderTable() '定义一个表格对象  
    rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
    rt.Width = 70 '表格宽度为50mm
    rt.Style.Spacing.All = 2 '和其他对象之间的间隔为2mm
    rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never '避免垂直换页的时候,表格被分割成两部分.
    rt.Cols(0).Width = 15
    rt.cells(0,0).Text = "产品编号"
    rt.cells(0,1).text = "YR-35"
    rt.Cells(1,0).Text = "成份比例"
    rt.Cells(2,0).Text = "纱支"
    rt.Cells(3,0).Text = "密度"
    rt.Cells(4,0).Text= "幅宽"
    rt.cells(5,0).text = "克重"  
    rt.cells(6,0).Text = "备注"
    rt.Cells(7,0).SpanCols =2
    rt.cells(7,0).text = "           上海佑冉经贸发展有限公司"
    rt.Rows(7).Style.BackColor = Color.LightGray
    doc.Body.Children.Add(rt) '将表格对象加入到报表中
Next
Doc.Preview() '预览报表


 回到顶部
帅哥哟,离线,有人找我吗?
czgtiger
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:475 积分:3548 威望:0 精华:0 注册:2012/8/30 10:58:00
  发帖心情 Post By:2013/7/13 10:24:00 [只看该作者]

谢谢狐爸,如果我选择3个产品编号,第一个产品编号份数为3,第二个为2,第三个为1,这样的代码如何编写呢?自己写了一下,始终不对,不知道问题在哪里?

Dim doc As New PrintDoc '定义一个报表
Dim rs As New prt.RenderText()
doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight '设置排列方式
For Each a As Rowd(of String) =  Tables("产品").GetCheckedRows
    For i As Integer = 1 To Tables("产品").Current("份数")
        Dim rt As New prt.RenderTable() '定义一个表格对象
        rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
        rt.Width = 70 '表格宽度为50mm
        rt.Style.Spacing.All = 2 '和其他对象之间的间隔为2mm
        rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never '避免垂直换页的时候,表格被分割成两部分.
        rt.Cols(0).Width = 15
        rt.cells(0,0).Text = "产品编号"
        rt.cells(0,1).text = "YR-35"
        rt.Cells(1,0).Text = "成份比例"
        rt.Cells(2,0).Text = "纱支"
        rt.Cells(3,0).Text = "密度"
        rt.Cells(4,0).Text= "幅宽"
        rt.cells(5,0).text = "克重"
        rt.cells(6,0).Text = "备注"
        rt.Cells(7,0).SpanCols =2
        rt.cells(7,0).text = "           上海佑冉经贸发展有限公司"
        rt.Rows(7).Style.BackColor = Color.LightGray
        doc.Body.Children.Add(rt) '将表格对象加入到报表中
    Next
Next
Doc.Preview() '预览报表


 回到顶部
帅哥哟,离线,有人找我吗?
czgtiger
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:475 积分:3548 威望:0 精华:0 注册:2012/8/30 10:58:00
  发帖心情 Post By:2013/7/13 18:27:00 [只看该作者]

请高手指点啊,上面这个问题已经困扰我好长时间了,请帮忙解决此问题

 


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/7/13 18:59:00 [只看该作者]

For Each a As Rowd(of String) =  Tables("产品").GetCheckedRows


这一句看不懂。


 回到顶部
帅哥哟,离线,有人找我吗?
e-png
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/7/13 21:29:00 [只看该作者]

以下是引用lsy在2013-7-13 18:59:00的发言:

For Each a As Rowd(of String) =  Tables("产品").GetCheckedRows


这一句看不懂。

应该是:For Each a As Row In Tables("表B").GetCheckedRows


 回到顶部
帅哥哟,离线,有人找我吗?
czgtiger
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:475 积分:3548 威望:0 精华:0 注册:2012/8/30 10:58:00
  发帖心情 Post By:2013/7/13 22:33:00 [只看该作者]

Dim doc As New PrintDoc '定义一个报表
doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight '设置排列方式
For Each r As  Row In Tables("产品").GetCheckedRows()
    For i As Integer = 1 To Tables("产品").current("份数")
        Dim rt As New prt.RenderTable() '定义一个表格对象
        rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
        rt.Width = 80 '表格宽度为80mm
        rt.Style.Spacing.All = 3 '和其他对象之间的间隔为2mm
        rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never '避免垂直换页的时候,表格被分割成两部分.
        rt.Cols(0).Width = 15
        rt.cells(0,0).Text = "产品编号"
        rt.cells(0,1).text = Tables("产品").current("产品编号")
        rt.Cells(1,0).Text = "成份比例"
        rt.cells(1,1).text = Tables("产品").current("成分比例")
        rt.Cells(2,0).Text = "纱支"
        rt.cells(2,1).text = Tables("产品").current("纱支")
        rt.Cells(3,0).Text = "密度"
        rt.cells(3,1).text = Tables("产品").current("密度")
        rt.Cells(4,0).Text= "幅宽"
        rt.cells(4,1).text = Tables("产品").current("幅宽")
        rt.cells(5,0).text = "克重"
        rt.cells(5,1).text = Tables("产品").current("克重")
        rt.cells(6,0).Text = "备注"
        rt.cells(6,1).text = Tables("产品.产品调用明细表").current("备注")
        rt.Cells(7,0).SpanCols =2
        rt.cells(7,0).text = "           上海佑冉经贸发展有限公司"
        rt.Rows(7).Style.BackColor = Color.LightGray
        doc.Body.Children.Add(rt) '将表格对象加入到报表中
    Next
Next
Doc.Preview() '预览报表

 

语法上没有问题,可是执行时,却一个也打印不出来,问题出在哪里呢?请高手指点


 回到顶部
帅哥哟,离线,有人找我吗?
e-png
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/7/13 22:45:00 [只看该作者]

不喜欢专业报表,用Excel报表也不复杂。 你最好上例子,让懂专业报表的人帮你。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/7/14 8:11:00 [只看该作者]

Dim doc As New PrintDoc '定义一个报表
doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight '设置排列方式
For Each r As  Row In Tables("产品").GetCheckedRows()
    For i As Integer = 1 To r("份数")
        Dim rt As New prt.RenderTable() '定义一个表格对象
        rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
        rt.Width = 80 '表格宽度为80mm
        rt.Style.Spacing.All = 3 '和其他对象之间的间隔为2mm
        rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never '避免垂直换页的时候,表格被分割成两部分.
        rt.Cols(0).Width = 15
        rt.cells(0,0).Text = "产品编号"
        rt.cells(0,1).text = Tables("产品").current("产品编号")
        rt.Cells(1,0).Text = "成份比例"
        rt.cells(1,1).text = Tables("产品").current("成分比例")
        rt.Cells(2,0).Text = "纱支"
        rt.cells(2,1).text = Tables("产品").current("纱支")
        rt.Cells(3,0).Text = "密度"
        rt.cells(3,1).text = Tables("产品").current("密度")
        rt.Cells(4,0).Text= "幅宽"
        rt.cells(4,1).text = Tables("产品").current("幅宽")
        rt.cells(5,0).text = "克重"
        rt.cells(5,1).text = Tables("产品").current("克重")
        rt.cells(6,0).Text = "备注"
        rt.cells(6,1).text = Tables("产品.产品调用明细表").current("备注")
        rt.Cells(7,0).SpanCols =2
        rt.cells(7,0).text = "           上海佑冉经贸发展有限公司"
        rt.Rows(7).Style.BackColor = Color.LightGray
        doc.Body.Children.Add(rt) '将表格对象加入到报表中
    Next
Next
Doc.Preview() '预览报表


 回到顶部
帅哥哟,离线,有人找我吗?
czgtiger
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:475 积分:3548 威望:0 精华:0 注册:2012/8/30 10:58:00
  发帖心情 Post By:2013/7/14 11:37:00 [只看该作者]

以下是引用有点甜在2013-7-14 8:11:00的发言:

Dim doc As New PrintDoc '定义一个报表
doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight '设置排列方式
For Each r As  Row In Tables("产品").GetCheckedRows()
    For i As Integer = 1 To r("份数")
        Dim rt As New prt.RenderTable() '定义一个表格对象
        rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
        rt.Width = 80 '表格宽度为80mm
        rt.Style.Spacing.All = 3 '和其他对象之间的间隔为2mm
        rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never '避免垂直换页的时候,表格被分割成两部分.
        rt.Cols(0).Width = 15
        rt.cells(0,0).Text = "产品编号"
        rt.cells(0,1).text = Tables("产品").current("产品编号")
        rt.Cells(1,0).Text = "成份比例"
        rt.cells(1,1).text = Tables("产品").current("成分比例")
        rt.Cells(2,0).Text = "纱支"
        rt.cells(2,1).text = Tables("产品").current("纱支")
        rt.Cells(3,0).Text = "密度"
        rt.cells(3,1).text = Tables("产品").current("密度")
        rt.Cells(4,0).Text= "幅宽"
        rt.cells(4,1).text = Tables("产品").current("幅宽")
        rt.cells(5,0).text = "克重"
        rt.cells(5,1).text = Tables("产品").current("克重")
        rt.cells(6,0).Text = "备注"
        rt.cells(6,1).text = Tables("产品.产品调用明细表").current("备注")
        rt.Cells(7,0).SpanCols =2
        rt.cells(7,0).text = "           上海佑冉经贸发展有限公司"
        rt.Rows(7).Style.BackColor = Color.LightGray
        doc.Body.Children.Add(rt) '将表格对象加入到报表中
    Next
Next
Doc.Preview() '预览报表

 

======================================

谢谢,还是不行,运行后,一片空白,没有显示出结果,预览报表上没有显示任何东西


 回到顶部
总数 12 1 2 下一页