找回密码
 立即注册

QQ登录

只需一步,快速开始

Fishborne
金牌服务用户   /  发表于:2020-4-27 18:54  /   查看:8317  /  回复:15
1金币
本帖最后由 Lenka.Guo 于 2020-4-28 10:16 编辑

ar14 如何绑定多数据源或者多数据集?
尤其Startup里应如何对应呢?
如果返回C# Dataset, 包含多个Datatable表, 如何与报表的数据集一一对应
按下图的方式报错,  


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

15 个回复

正序浏览
Fishborne
金牌服务用户   /  发表于:2020-4-28 20:11:31
15#
报错:

本帖子中包含更多资源

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

x
回复 使用道具 举报
Fishborne
金牌服务用户   /  发表于:2020-4-28 20:10:27
14#
Startup 代码如图:

本帖子中包含更多资源

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

x
回复 使用道具 举报
Fishborne
金牌服务用户   /  发表于:2020-4-28 20:09:40
13#
报表设置 DataSet2:

本帖子中包含更多资源

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

x
回复 使用道具 举报
Fishborne
金牌服务用户   /  发表于:2020-4-28 20:08:45
12#
报表设置 DataSet1:

本帖子中包含更多资源

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

x
回复 使用道具 举报
Fishborne
金牌服务用户   /  发表于:2020-4-28 20:07:43
11#
查看上述的示例,
仍然是只有一个Table,  确实可以运行
但是当有两个Table时, 就会报错, 请提供有两个或者多个Table 的示例
是按照你上述的示例和要求的,
代码如下贴图
(经调试可以看到, 报表访问Startup时, 带的是第一个args.DataSet.Name)


回复 使用道具 举报
Fishborne
金牌服务用户   /  发表于:2020-4-28 19:09:59
10#

本帖子中包含更多资源

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

x
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-4-28 18:01:40
9#
您好
按照以下步骤:

1. 在 Startup.cs 中实现以下代码:
  1. app.UseReporting(settings =>
  2.             {
  3.                 settings.UseFileStore(new DirectoryInfo(@"D:\Demo"));
  4.                 settings.LocateDataSource = args =>
  5.                  {

  6.                      DataSet customerOrders = new DataSet("DataSource1");

  7.                      DataTable dt = new DataTable("Test");

  8.                      if (args.DataSet.Query.DataSourceName == "DataSource1")

  9.                      {

  10.                          if (args.DataSet.Name == "DataSet1")

  11.                          {

  12.                              dt.Columns.Add("Field1");

  13.                              dt.Columns.Add("Field2");

  14.                        

  15.                              dt.Rows.Add("1", "苹果");

  16.                              dt.Rows.Add("2", "葡萄");
  17.                              dt.Rows.Add("3", "葡萄11");


  18.                          }

  19.                      }
  20.                      customerOrders.Tables.Add(dt);
  21.                      return customerOrders;

  22.                  };
  23.                 settings.UseCompression = true;
  24.             });
复制代码




2. 修改报表
设置数据源为 DataSet Provider




3. 添加数据集
字段中添加要返回的字段,注意名称要与 代码中的名称匹配:



4. 在数据集【查询】输入 DataTable名称,注意名称要与 Startup中的Table名称一致,否则会无法找到该Table.

点击确定,确定可能会报错,请忽略后,继续点击确定即可关闭窗口。保存报表。






示例如附件,因为论坛 Demo限制,我删除了 Packges和dll文件,所以您可能无法直接运行。需要还原Nuget包



本帖子中包含更多资源

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

x
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-4-28 13:46:05
8#
我这边制作一个示例给您发过去吧,制作示例需要2-4小时,制作完成后给您发送。请您耐心等待下。
回复 使用道具 举报
Fishborne
金牌服务用户   /  发表于:2020-4-28 11:40:41
7#

本帖子中包含更多资源

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

x
回复 使用道具 举报
Fishborne
金牌服务用户   /  发表于:2020-4-28 11:27:30
6#
1. Startup 里返回的 Dataset 中的每一个表是否要命名?
如: DataSet ds = bll.inqTestSubDs(reportPara[3], reportPara[1], reportPara[2]);
                                ds.Tables[0].TableName = "rptMain";
                                ds.Tables[1].TableName = "rptSub";
2.  报表--数据集--》查询--》 写查询语句还是写表名?
无论怎么写都会提示报错, 而且最后报表还是报错
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部