以文本方式查看主题
- 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() \'预览报表
======================================
谢谢,还是不行,运行后,一片空白,没有显示出结果,预览报表上没有显示任何东西
|