Foxtable(狐表)用户栏目专家坐堂 → 关于databinding的疑惑及一点建议


  共有4953人关注过本帖树形打印复制链接

主题:关于databinding的疑惑及一点建议

帅哥哟,离线,有人找我吗?
东坡一剑
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
关于databinding的疑惑及一点建议  发帖心情 Post By:2013/11/14 23:51:00 [显示全部帖子]

 下面两段代码都是从帮助文件复制的。请留意用红色大字标明的两行。

当我把代码1的那行改为 rt.DataBinding= ra.databinding

报错:databinding属性为只读

当我把代码2的那行改为 agg.DataBinding.datasource = rt.DataBinding.datasource

报错:未将设置引用到对象的实例

很疑惑,求指教。

另外,感觉“专业报表”的帮助文件似乎应该加上一节,把相关对象的所有属性和方法列举总括一下。

 

代码1

Dim doc As New PrintDoc
Dim
rt As New prt.RenderText
Dim
ra As New prt.RenderArea

ra.DataBinding.DataSource = BindTables(
"订单") '将容器绑定到订单表
ra.DataBinding.Grouping.Expressions.Add(
"Fields!产品.Value") '根据产品进行分组
ra.Style.Spacing.Bottom =
2

'这一个RenderText无需设置DataBinding,这样每一个分组只打印一次

rt.Text=
"[Fields!产品.Value]明细:"
rt.Style.FontSize =
14
rt.Style.FontBold =
True
ra.Children.Add(rt)


'这一个RenderText需要单独设置DataBinding,这样才会针对每一个数据行打印副本

rt
= New prt.RenderText
rt.Text =
"日期:[Format(Fields!日期.Value,""yyyy-MM-dd"")] 客户:[Fields!客户.Value] 数量:[Fields!数量.Value]"
rt.DataBinding.DataSource = ra.DataBinding.DataSource '不能漏掉这一行
ra.Children.Add(rt)

doc.body.Children.Add(ra)

doc.Preview()

 

 

 

代码2

Dim doc As New PrintDoc
Dim
rt As New prt.RenderText
Dim
Agg As New prt.DataBinding.Aggregate("GroupSum") '新定义统计的名称为GroupSum,名称随意即可。

rt.DataBinding.DataSource = BindTables(
"订单") '将容器绑定到订单表
rt.DataBinding.Grouping.Expressions.Add(
"Fields!产品.Value") '根据产品进行分组
rt.Text=
"[Fields!产品.Value]: [Aggregates!GroupSum.Value]" '设置打印内容
doc.body.Children.Add(rt)

agg.DataBinding = rt.DataBinding
'Agg的DataBinding属性,应该设为打印对象的DataBinding
agg.Running = 1
'分组统计
agg.ExpressionText =
"Fields!数量.Value" '统计字段
doc.DataSchema.Aggregates.Add(agg)
'定义好的统计必须添加到报表的DataSchema中

doc.Preview()

 

 


 回到顶部