rcsy001 发表于 2016-3-22 16:50:41

AR10 如何使用MVC控制器提供的数据源

本帖最后由 Lenka.Guo 于 2016-3-22 17:26 编辑

AR10 如何使用MVC控制器提供的数据源?

MVC控制器 向前台传一个List<users> AR10如何使用这个数据源,有示例吗?
我的开发环境:VS2012+ ASP.net MVC4 +SQL2008

Lenka.Guo 发表于 2016-3-22 17:25:56

您好,
MVC中使用报表可参考帖子:http://gcdn.gcpowertools.com.cn/showtopic-19954-1-1.html

实现思路:
1. 创建新报表模板,设置数据源类型为:Object ProVider
2. 添加数据集字段如字段1,字段2,与List传值的名称对应
3. 添加服务,在工程中添加一个【Web 服务】,然后切换到代码视图,修改该类继承的原始类型为GrapeCity.ActiveReports.Web.ReportService。4. 在GrapeCity.ActiveReports.Web.ReportService 中重写OnCreateReportHandler方法,实现LocateDataSource接口


pageReport.Document.LocateDataSource += Document_LocateDataSource;

void Document_LocateDataSource(object sender, LocateDataSourceEventArgs args)
      {
            args.Data = GetObjectDataSource();
      }


5. 在LocateDataSource接口中设置List数据:


   private object GetObjectDataSource()
      {
            List<CustomObject> data = new List<CustomObject>();

            data.Add(new CustomObject { Name = "car", Description = "car description" });
            data.Add(new CustomObject { Name = "bike", Description = "bike description" });

            return data;
      }

rcsy001 发表于 2016-3-22 17:52:58

请问:
private object GetObjectDataSource() 看例子这个必须写在【Web 服务】
我是说,Controller 生成了一个list 这个如何使用

Lenka.Guo 发表于 2016-3-22 18:22:02

建议您将Controller 生成的List放在公用的类或方法中,让Web服务文件和Controller都可以访问。

rcsy001 发表于 2016-3-22 19:17:28

Web服务不太熟悉,没用过。
能不能详细说明一下:建议您将Controller 生成的List放在公用的类或方法中,让Web服务文件和Controller都可以访问。
或给个简单示例

Lenka.Guo 发表于 2016-3-23 16:08:08

本帖最后由 Lenka.Guo 于 2016-3-28 16:05 编辑

制作Demo需要时间,好了之后会给您回复。

Lenka.Guo 发表于 2016-3-30 09:21:43

帮您找了一些MVC的入门教程,希望能对您有帮助:http://www.cnblogs.com/powertoolsteam/p/MVC_one.html

rcsy001 发表于 2016-4-3 21:18:10

能不能给个传参数给Web服务,返回数据的示例,关键代码也行

Lenka.Guo 发表于 2016-4-5 13:47:37

RE: AR10 如何使用MVC控制器提供的数据源

rcsy001 发表于 2016-4-3 21:18
能不能给个传参数给Web服务,返回数据的示例,关键代码也行
您好,
您说的传参数给Web 服务,是指报表参数传递,还是变量传递?

1. 如果是报表参数传递:MVC中浏览报表,采用的是HTML5Viewer ,因此报表参数传递等功能,可在初始化HTML5Viewer时,通常是在Index.cshtml页面中添加代码,可参考源码库: http://gcdn.gcpowertools.com.cn/showtopic-20547-1-1.html
[*] report: {
[*]                            id: 'RdlReport1.rdlx',
[*]                            parameters: [{
[*]                              name: 'ReportParameter1',
[*]                              value: $("#input_text1").val(),
[*]                            }]},


2. 如果是获取Controller 生成的数据将变量值传递给Web 服务;分为两步:
    1. 在Controller中生成数据,可参考本地示例中CustomersController,路径:C:\Users\lenkaguo.GRAPECITY\Documents\GrapeCity Samples\ActiveReports 10\Professional\ActiveReportsWithMVC5WebAPI
   2. 在Web服务中直接调用Controller,示例代码如下:
   var list = (new ActiveReportsWithMVC5.Controllers.CustomersController()).Get();


页: [1]
查看完整版本: AR10 如何使用MVC控制器提供的数据源