度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 739|回复: 6

[分享] 报表设计中获取数据DataTable使用脚本介绍

[复制链接]

197

主题

1307

帖子

3568

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3568
发表于 2018-6-20 10:18:41 | 显示全部楼层 |阅读模式
度量快速开发平台中,集成了强大的报表工具,除了使用拖拉设置好报表外,还可以在报表设计中,编写C#的脚本,进行各类数据的汇总与处理,并显示复杂的效果。
下图是一个使用效果。
报表.jpg
图片中A,B,C区域都是有汇总的设置,其中A区域是对原价进行汇总,B区域是对卖价汇总,C区域里面的值是要卖价汇总后再除以原价汇总的数据。

A,B区域只是对一个字段进行汇总,我们可以直接使用报表设置汇总设置:
求和.jpg

C区域因为要用到几个字段的 汇总,所以不好直接通过界面上设置。
大家知道,在度量快速开发平台中,可以对查询出来的数据通过DataTable获取出来,通过DataTable直接进行各种处理。因此我们在报表设计中,也可以采用这样的方式进行。
点击报表中的 “脚本”
脚本1.jpg

选择报表的DataSourceDemanded事件,在里面编写代码:

脚本2.jpg

代码说明:
    //因为报表的脚本开发用没有引用C#的各个空间类,所有使用的时候需要把控件写出来。
    //例如定义一个DataTable,就需要按照以下方法:
    // System.Data.DataTable  dt
   //比如要使用Ronud函数,就需要用 System.Math.Round
  //所有用法完全遵循C#的标准写法。每行代码完成后需要加分号隔开。
  // 获取报表中的业务表:((System.Data.DataSet)xtraReport1.DataSource).Tables["业务表名称"]
  //获取报表中的业务表:((System.Data.DataSet)xtraReport1.DataSource).Tables[0]
private void xtraReport1_DataSourceDemanded(object sender, System.EventArgs e) {
    //定义一个DataTable获取到报表中的业务表。
     System.Data.DataTable dt = ((System.Data.DataSet)xtraReport1.DataSource).Tables["价格单"];
    //设置值
     CC.Text = System.Math.Round(Convert.ToDouble(dt.Compute("SUM(卖价)/SUM(原价)*100","True")),2).ToString();
}


通过代码的方式,就可以任意的计算出报表想要的数据。
注意:
目前脚本编辑区域里面,直接输入汉字还有些问题,但是可以拷贝到脚本中。

回复

使用道具 举报

197

主题

1307

帖子

3568

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3568
 楼主| 发表于 2018-6-20 10:19:53 | 显示全部楼层
这样在报表设置的时候也能很灵活实现。
回复 支持 反对

使用道具 举报

197

主题

1307

帖子

3568

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3568
 楼主| 发表于 2018-6-20 10:21:39 | 显示全部楼层
如果是多个业务表的报表,可以用
((System.Data.DataSet)xtraReport1.DataSource).Tables[0]
((System.Data.DataSet)xtraReport1.DataSource).Tables[1]
((System.Data.DataSet)xtraReport1.DataSource).Tables[2]
或者每一个业务表的名称
回复 支持 反对

使用道具 举报

348

主题

3590

帖子

8888

积分

论坛元老

Rank: 8Rank: 8

积分
8888
发表于 2018-6-21 00:04:47 | 显示全部楼层
这个强大了
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

348

主题

3590

帖子

8888

积分

论坛元老

Rank: 8Rank: 8

积分
8888
发表于 2018-6-21 00:06:27 | 显示全部楼层
比如一个table指定某列相同数据合并单元格,怎么搞
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

348

主题

3590

帖子

8888

积分

论坛元老

Rank: 8Rank: 8

积分
8888
发表于 2018-6-21 00:07:24 | 显示全部楼层
我有预感,我要用到了
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

197

主题

1307

帖子

3568

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3568
 楼主| 发表于 2018-6-21 14:37:57 | 显示全部楼层
这种合并应该是很好弄的,需要研究研究。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2018-12-13 00:03 , Processed in 0.425727 second(s), 34 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表