以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  专业报表打印方向  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=81348)

--  作者:kaituozhe
--  发布时间:2016/2/25 12:03:00
--  专业报表打印方向
有没有可能是一个专业报表文件中部分纵向打印 部分页横向打印。  比如 一个专业报表文件可能是10页,假如其中的3页是表格需要横向,其他的是文字还是纵向打印,有没有可能实现
--  作者:大红袍
--  发布时间:2016/2/25 12:29:00
--  

不能这样的。你生成的时候,横向生成不就行了?

 

Dim doc As New PrintDoc \'定义一个报表
Dim rt As New prt.RenderTable() \'定义一个表格对象
doc.Body.Children.Add(rt) \'将表格对象加入到报表中
rt.Style.GridLines.All = New prt.Linedef \'设置网格线

rt.Width = 30
For r As Integer = 0 To 5
    rt.Rows(r).height = 20
    For c As Integer = 0 To 5
        Dim rx As New prt.RenderText \'定义一个文本对象
        rx.Text = r & "," & c \'为文本对象设置内容
        rt.Cells(r, c).RenderObject = rx \'将文本对象放置在单元格中
    Next
Next
rt.Style.TextAngle = -90 \'顺时钟旋转45度

doc.Preview() \'预览


--  作者:kaituozhe
--  发布时间:2016/2/25 12:46:00
--  
Dim Doc As new PrintDoc
Dim rx As prt.RenderText
Dim rt As prt.RenderTable
rx = new prt.RenderText
rx.text = "资产负债表"
rx.Style.FontBold = True \'字体加粗
rx.Style.FontSize = 16 \'大体大小为16磅
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中排列
rx.Style.Spacing.Bottom = 3 \'和下面的对象(表格)距离3毫米
rx.Style.TextAngle = -90
doc.Body.Children.Add(rx) \'加入到报表中
rt = new prt.RenderTable
rt.Style.GridLines.All = New prt.LineDef
rt.Cols.Count = 20
rt.rows.Count = 10
rt.Width = 150 \'表宽为150毫米
rt.Height = 220 \'表高为150毫米
For n As Integer = 0 To 9
    rt.Cells(n,n).text = 10 * n
Next
Doc.Body.Children.Add(rt)
rt.Style.TextAngle = -90
\'doc.PageSetting.Landscape = True \'横向打印
Doc.Preview

--  作者:kaituozhe
--  发布时间:2016/2/25 12:49:00
--  

标题怎么能到表的上端


--  作者:kaituozhe
--  发布时间:2016/2/25 13:27:00
--  

Dim Doc As new PrintDoc
Dim rx As prt.RenderText
Dim rt As prt.RenderTable
\'rx = new prt.RenderText
\'rx.text = "资产负债表"
\'rx.Style.FontBold = True \'字体加粗
\'rx.Style.FontSize = 16 \'大体大小为16磅
\'rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中排列
\'rx.Style.Spacing.Bottom = 3 \'和下面的对象(表格)距离3毫米
\'rx.Style.TextAngle = -90
\'doc.Body.Children.Add(rx) \'加入到报表中
rt = new prt.RenderTable
rt.Style.GridLines.All = New prt.LineDef
rt.Cols.Count = 22
rt.rows.Count = 10
rt.Width = 150 \'表宽为150毫米
rt.Height = 220 \'表高为150毫米
rt.Cells(0,21).Spanrows = 10
rt.cols(21).Style.GridLines.All = New prt.LineDef("0mm", Color.Red)
rt.cols(20).Style.GridLines.All = New prt.LineDef("0mm", Color.Red)
rt.cols(19).Style.GridLines.top = New prt.LineDef
\'rt.cols(20).Style.Borders.left = New prt.LineDef("0mm", Color.Red)
\'rt.cols(19).Style.GridLines.Top = New prt.LineDef
Dim nms() As String = {"资产","流动资产","货币资金","应收款项"}
rt.Cells(0,21).text = "资产负债表"
rt.Cells(0,19).text = "资产"
rt.Cells(0,18).text = "流动资产:"
rt.Cells(0,17).text = "货币资金"
rt.Cells(0,16).text = "应收款项"


For n As Integer = 0 To 9
    rt.Cells(n,n).text = 10 * n
Next
Doc.Body.Children.Add(rt)
rt.Style.TextAngle = -90
\'doc.PageSetting.Landscape = True \'横向打印
Doc.Preview

 

黄色部分把第22、21列框线都去掉,橙色部分为20列右边的框线加上,可是怎么换参数都不行,该怎么修改呀?把top 换成Bottom:底边框
Left:   左边框
Right: 右边框
Top:   上边框
Horz:  水平网格线
Vert:  垂直网格线


--  作者:大红袍
--  发布时间:2016/2/25 14:28:00
--  

1、你有必要这样做吗?分开来打印就好了啊,先打印竖的,再打印横的,再打印竖的啊;

 

2、如果要做,这句代码去掉 rt.Style.GridLines.All = New prt.LineDef

 

然后,哪里需要画线,就直接给行、列、或单元格画线即可。