找回密码
 立即注册

QQ登录

只需一步,快速开始

bjqxst

金牌服务用户

8

主题

35

帖子

290

积分

金牌服务用户

积分
290
bjqxst
金牌服务用户   /  发表于:2016-4-12 10:53  /   查看:6497  /  回复:18
本帖最后由 Lenka.Guo 于 2016-4-12 16:37 编辑

怎么分别绑定这2个图形啊,1个的我知道。2个的,不知道怎么绑定了,通过返回Datatable的方式.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

18 个回复

倒序浏览
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-4-12 17:04:01
沙发
您好,
两张图表对应两个DataSet,DataSet1和DataSet2, 在后台根据数据集名称,添加不同的数据。

在LocateDataSource的时候添加判断即可,根据数据集名称来添加数据源:

void pageDocument_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
        {
            if (args.DataSourceName == "DataSource1")
            {
                if (args.DataSetName == "DataSet1")
                {
                    args.Data = GetDataSource();


                }
                if(args.DataSetName == "DataSet2")
                    args.Data = GetDataSource2();
            }

        }



回复 使用道具 举报
bjqxst
金牌服务用户   /  发表于:2016-4-12 17:40:46
板凳
我的有2个DataSet,后台只有1个,什么情况.我的代码有问题吗

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-4-13 09:04:59
地板
您好,
DataSet需要在报表设计时添加;
在后台根据DataSetName 为其绑定对应的数据。
参考Demo:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
bjqxst
金牌服务用户   /  发表于:2016-4-13 10:08:52
5#
你发的例子,应该是这样的
void pageDocument_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
        {
            if (args.DataSourceName == "DataSource1")
            {
                if (args.DataSetName == "DataSet1")
                {
                    args.Data = GetDataSource1();

                }
                if(args.DataSetName == "DataSet2")
                    args.Data = GetDataSource2();
            }
        }
        private DataTable GetDataSource1()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("产品编号");
            dt.Columns.Add("产品名称");
            dt.Columns.Add("单价", typeof(int));
            dt.Columns.Add("库存量", typeof(int));
            dt.Rows.Add("A10002", "苹果", 20, 50);
            dt.Rows.Add("A15681", "香蕉", 20, 50);
            dt.Rows.Add("A15681", "菠萝", 20, 50);
            columns = dt.Columns.Count;
            return dt;
        }
        private DataTable GetDataSource2()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("产品编号");
            dt.Columns.Add("产品名称");
            dt.Columns.Add("单价", typeof(int));
            dt.Columns.Add("库存量", typeof(int));
            dt.Rows.Add("A10002", "苹果", 20, 150);
            dt.Rows.Add("A15681", "香蕉", 20, 250);
            dt.Rows.Add("A15681", "菠萝", 20, 350);
            columns = dt.Columns.Count;
            return dt;
        }

问题是,我不能调试,直接就报错了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
bjqxst
金牌服务用户   /  发表于:2016-4-13 10:11:56
6#
2个DataSet是用1个DataTable 还是,各用各的
回复 使用道具 举报
bjqxst
金牌服务用户   /  发表于:2016-4-13 10:32:33
7#
我看,你那个事件,执行了,2次,是不是,不能写在这个事件里。这里只执行了,一次。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-4-13 14:44:36
8#
bjqxst 发表于 2016-4-13 10:32
我看,你那个事件,执行了,2次,是不是,不能写在这个事件里。这里只执行了,一次。

版本号与你安装的版本号不对,报的错,可以使用VS的菜单项“工具”——>转换为ActiveReports10 来转换。

您是在ActiveReports.ReportService.asmx 文件中绑定多个数据源,是同样的用法,通过DataSetName找到数据集,来绑定数据。


回复 使用道具 举报
bjqxst
金牌服务用户   /  发表于:2016-4-13 16:46:46
9#
是同样的用法,只显示最后1个,什么原因
回复 使用道具 举报
bjqxst
金牌服务用户   /  发表于:2016-4-13 17:07:36
10#
有很多DataSet,DataSet是DataSet_KaiBGS,是什么问题。
protected override void OnLocateDataSourceHandler(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
        {
            //GetData gt = new GetData();
            // 报表倒数第二个参数为当前页号的值,通过当前页号去加载新的数据
            //int pcount = args.Report.Parameters.Count;029-88331988-339曾
            //args.Data = gt.DataPage((int)args.Report.Parameters[pcount-1].Values[0].Value);
            //招标统计
            if (args.DataSourceName == "DataSource_Tender")
            {
        }
    }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部