以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  复杂报表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=28430)

--  作者:epsunny
--  发布时间:2013/1/29 14:21:00
--  复杂报表
请问要在一个报表中包含多个数据表的数据,比如100个,如何用最简单的方法实现呢?可以通过内部函数定义一些文本,然后嵌套调用吗?
--  作者:epsunny
--  发布时间:2013/1/29 14:28:00
--  

 

内部函数 report1 的 定义:

 

 

Dim rt As prt.RenderText


rt.Text = "Hello Panyu" \'设置文本对象的内容

Return rt

 

 

 

 

报表1 的定义:

 

Dim doc As New PrintDoc \'定义一个报表

doc.body.Children.Add(Functions.Execute("report1"))

Doc.Preview() \'预览报表

 

 

预览报表1 总是出错,请问什么原因?


--  作者:狐狸爸爸
--  发布时间:2013/1/29 14:32:00
--  

Dim rt As New prt.RenderText

rt.Text = "Hello Panyu" \'设置文本对象的内容

Return rt


--  作者:lin_hailun
--  发布时间:2013/1/29 14:34:00
--  
 因为rt对象在内部函数执行结束之后,就会消失了,你最好把内容写在全局代码那里。

--------------------

 呵呵说错了,内部函数返回了对象,对象存在引用,所以不会消失的。
[此贴子已经被作者于2013-1-29 14:40:23编辑过]

--  作者:epsunny
--  发布时间:2013/1/29 16:11:00
--  

 

 

如果要调用一个参数呢? 传入一个参数,在函数内部对其进行设置后然后传出,这样可以吗?(执行出错,说数组的问题)

 

函数:setFontTitle1

 

Dim rt As prt.RenderText = Args(0)

rt = Args(0)
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中
rt.Style.Font = New Font("宋体", Functions.Execute("setFontTitle1"), FontStyle.Bold) \'设置字体

Return rt

 

 

调用这个函数的报表:

 

Dim doc As New PrintDoc \'定义一个报表


Dim rt2 As New prt.RenderText \'定义一个文本对象
rt2.Text = "第二章 前言" \'设置文本对象的内容
rt2 = Functions.Execute("setFontTitle1",rt2)
doc.Body.Children.Add(rt2) \'将文本对象加入到报表

doc.Preview() \'预览

[此贴子已经被作者于2013-1-29 16:13:54编辑过]

--  作者:狐狸爸爸
--  发布时间:2013/1/29 16:23:00
--  

Dim rt As prt.RenderText = Args(0)

rt = Args(0)
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中
rt.Style.Font = New Font("宋体", Functions.Execute("setFontTitle1"), FontStyle.Bold) \'设置字体

Return rt

 

 

改为:

 

 

Dim rt As prt.RenderText = Args(0)

rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中
rt.Style.Font = New Font("宋体", 18, FontStyle.Bold) \'设置字体