如何獲取子報表的數值總和後進行統計主報表的總和

mailbao 2009-07-01 05:07:04
情況如下:

環境:C# + winform

同一個ds集:含三個數據集,其中ds為主,通過orderId等相關字段關聯另兩個分別為ds1和ds2

同一份報表:含一個主報表A和一個子報表A1,其中detail節分三部分a,b,c,在a中顯示
在a中顯示ds集數據,在b中插入子報表A1顯示ds1數據集,在c中顯示ds2數據集

報表窗體主要代碼
A cr = new A();
cr.SetDataSource(CrCtrl.GetDss(sql1, sql2, returnTableName1, returnTableName2));
this.crvOrder.ReportSource = cr;
SubreportObject subrtobj = cr.DetailSection2.ReportObjects["SubOrder"] as SubreportObject;
ReportDocument subrt = subrtobj.OpenSubreport("A1");
subrt.SetDataSource(CrCtrl.GetDataSet(sql3, returnTableName3));


問: 如何在主報表A中顯示或者獲取子表A1中統計的SubAmount總和(這個是由子報表A1中所有記錄的價錢之和),

然後再計算主報所有項的匯總數值TotalAmount ??
...全文
260 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mailbao 2009-07-03
  • 打赏
  • 举报
回复
呵呵,這次答案比較接近我想要的了...非常感謝,這方法變通幾下就可以變成我想要的東西,只是我的報表形式也要改改才行.
阿泰 2009-07-03
  • 打赏
  • 举报
回复
想了想,于是实际又做了一下,虽然稍有限制,但是可以实现的。

基本原理:使用共享变量
操作方法:

1:子报表1里增加一个公式x1,内容为:
shared numbervar allnum1;
allnum1:=sum(字段)

x1放置到子报表的报表页眉或报表页脚

2:子报表2里增加一个公式x1,内容为:
shared numbervar allnum2;
allnum2:=sum(字段)

x1放置到子报表的报表页眉或报表页脚

3:主报表里增加一个公式aa:
shared numbervar allnum1;
shared numbervar allnum2;
allnum1+allnum2

注意aa要放在两个子报表的下面的位置

mailbao 2009-07-02
  • 打赏
  • 举报
回复
等高手等到花都快謝了......汗~
阿泰 2009-07-02
  • 打赏
  • 举报
回复
无论你怎么产生,你最终还是将结果送个两个datatable里,再传递给子报表
实际上也就是操作两次,我这样说对吗?
mailbao 2009-07-02
  • 打赏
  • 举报
回复
阿泰 ,

你說的這種方法我曾想過,

不過好像有些不適合我的任務,

因為我這份報表還有很多關聯條件供不同user組作不同選擇時產生不同的數據,

莫非這樣要sum多回數據麼??
阿泰 2009-07-02
  • 打赏
  • 举报
回复
主报表先于子报表执行,所以取不到子报表上的值
可以先把子报表里的datatable里的数据,循环一下分别取到sum
然后把值加起来作为参数主动传给主报表。
mailbao 2009-07-02
  • 打赏
  • 举报
回复
沒人來搭救,可憐沒人理

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧