以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  报表问题,请教老师们  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=24674)

--  作者:mamuaiqing
--  发布时间:2012/10/19 22:55:00
--  报表问题,请教老师们

上传项目先,在命令窗口输入以下代码发现表中的内容没完整,图一为执行后的预揽,图二为表中内容,问题出在哪了,请教老师们

Dim doc As New PrintDoc \'定义一个报表
Dim rt As New prt.RenderTable() \'定义一个表格对象
Dim rx As New prt.RenderText \'定义一个文本对象
doc.PageSetting.Width = 150 \'纸张宽度为100毫米
doc.PageSetting.Height = 190 \'纸张高度为120毫米
Doc.PageSetting.TopMargin = 40 \'设置上边距
rx.text = "订   货"
rx.Style.FontBold = True \'字体加粗
rx.Style.FontSize = 16 \'大体大小为16磅
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中排列
rx.Style.Spacing.Bottom = 10 \'和下面的对象(表格)距离20毫米
doc.Body.Children.Add(rx) \'加入到报表中

rt = New prt.RenderTable
rt.Style.FontSize = 14 \'大体大小为16磅
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
rt.Style.TextAlignVert = prt.AlignVertEnum.Center
rt.CellStyle.Spacing.All = 1 \'单元格内容缩进0.1毫米
rt.Cols.Count = 5
With Tables("日期.内容")
    For r As Integer = 0 To .Rows.Count - 1 \'遍历关联表每一行
        rt.Cells(r+1,0).Text = .rows(r)("产品名称")
        rt.Cells(r+1,1).Text = .rows(r)("规格")
        rt.Cells(r+1,2).Text = .rows(r)("厚度")
        rt.Cells(r+1,3).Text = .rows(r)("数量")
        rt.Cells(r+1,4).Text = .rows(r)("备注")
    Next
End With
doc.Body.Children.Add(rt)
rx = New prt.RenderText \'创建文本对象
rx.Style.FontSize = 12 \'大体大小为16磅
rx.Style.FontBold = True \'字体加粗
rx.Style.Spacing.Top = 3
rx.Text = "" & Tables("日期").Current("日期")
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Right  \'水平靠右排列
doc.Body.Children.Add(rx)
Doc.PrinterName = "DPK770E"
doc.Preview

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.zip


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

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

--  作者:lin_hailun
--  发布时间:2012/10/20 9:21:00
--  
 楼主,显示的值,并不是实际的值,你看看DrawCell的代码。

If e.Col.Name = "规格" AndAlso e.Text > "" Then
     e.text = e.text & "cm"
End If
If e.Col.Name = "厚度" AndAlso e.Text > "" Then
     e.text = e.text & "C"
End If
If e.Col.Name = "数量" AndAlso e.Text > "" Then
     e.text = e.text & "件"
End If

--  作者:mamuaiqing
--  发布时间:2012/10/20 20:53:00
--  
图片点击可在新窗口打开查看那代码该怎么修改,俺的学习很慢,求请教,谢谢了
--  作者:czy
--  发布时间:2012/10/20 20:59:00
--  

直接加上就行了吧?

 

……

With Tables("日期.内容")
    For r As Integer = 0 To .Rows.Count - 1 \'遍历关联表每一行
        rt.Cells(r+1,0).Text = .rows(r)("产品名称")
        rt.Cells(r+1,1).Text = .rows(r)("规格") & "cm"
        rt.Cells(r+1,2).Text = .rows(r)("厚度") & "C"
        rt.Cells(r+1,3).Text = .rows(r)("数量") & "件"
        rt.Cells(r+1,4).Text = .rows(r)("备注")
    Next
End With

……


--  作者:mamuaiqing
--  发布时间:2012/10/20 21:53:00
--  
图片点击可在新窗口打开查看这样也行?图片点击可在新窗口打开查看太高兴了,又学会一招,感谢两位老师的点拨