以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 如何编写这样的代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=37843)

--  作者:czgtiger
--  发布时间: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 = 数据动态的从产品表中读出,如何实现这些功能呢



--  作者:狐狸爸爸
--  发布时间: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
--  发布时间: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
--  发布时间:2013/7/13 18:27:00
--  

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

 


--  作者:lsy
--  发布时间:2013/7/13 18:59:00
--  

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


这一句看不懂。


--  作者:e-png
--  发布时间: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
--  发布时间: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
--  发布时间:2013/7/13 22:45:00
--  
不喜欢专业报表,用Excel报表也不复杂。 你最好上例子,让懂专业报表的人帮你。
--  作者:有点甜
--  发布时间: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
--  发布时间: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() \'预览报表

 

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

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