Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c创建具有3个或更多级别的报告# 公共类ClassA{ 公共字符串属性1{get;set;} 公共字符串属性2{get;set;} 列表ListClassB{get;set;} 列表ListClassC{get;set;} } 公共B类{ 公共字符串属性3{get;set;} 公共字符串属性4{get;set;} 列表ListClassD{get;set;} } 公共类C类{ 公共字符串属性5{get;set;} 公共字符串属性6{get;set;} 公共字符串属性7{get;set;} } 公共类D{ 公共字符串属性8{get;set;} 公共字符串属性9{get;set;} 公共字符串属性10{get;set;} }_C#_Reporting Services_Reporting_Rdlc - Fatal编程技术网

C# 使用c创建具有3个或更多级别的报告# 公共类ClassA{ 公共字符串属性1{get;set;} 公共字符串属性2{get;set;} 列表ListClassB{get;set;} 列表ListClassC{get;set;} } 公共B类{ 公共字符串属性3{get;set;} 公共字符串属性4{get;set;} 列表ListClassD{get;set;} } 公共类C类{ 公共字符串属性5{get;set;} 公共字符串属性6{get;set;} 公共字符串属性7{get;set;} } 公共类D{ 公共字符串属性8{get;set;} 公共字符串属性9{get;set;} 公共字符串属性10{get;set;} }

C# 使用c创建具有3个或更多级别的报告# 公共类ClassA{ 公共字符串属性1{get;set;} 公共字符串属性2{get;set;} 列表ListClassB{get;set;} 列表ListClassC{get;set;} } 公共B类{ 公共字符串属性3{get;set;} 公共字符串属性4{get;set;} 列表ListClassD{get;set;} } 公共类C类{ 公共字符串属性5{get;set;} 公共字符串属性6{get;set;} 公共字符串属性7{get;set;} } 公共类D{ 公共字符串属性8{get;set;} 公共字符串属性9{get;set;} 公共字符串属性10{get;set;} },c#,reporting-services,reporting,rdlc,C#,Reporting Services,Reporting,Rdlc,各位好, 这里的问题是,我需要使用结构类似于ClassA的对象的.rdlc报告来创建报告。目前,我只能创建一个“主详细信息”报告,只考虑ClassA和ClassB 这是通过以下来源实现的: 但是现在,我无法使用相同的方法包含ClassC中的数据,因为无法为第三级设置数据源 任何解决此问题的指导或来源都是受欢迎的 杰西蒙 更新 我制作了一个快速的小型原型,它实现了一个具有两个级别的报告。对于第二级,我们需要做的唯一事情是实现子报表处理事件。这是代码 private void LoadApplic

各位好,

这里的问题是,我需要使用结构类似于
ClassA
的对象的
.rdlc
报告来创建报告。目前,我只能创建一个“主详细信息”报告,只考虑
ClassA
ClassB
这是通过以下来源实现的:

但是现在,我无法使用相同的方法包含
ClassC
中的数据,因为无法为第三级设置数据源

任何解决此问题的指导或来源都是受欢迎的

杰西蒙

更新

我制作了一个快速的小型原型,它实现了一个具有两个级别的报告。对于第二级,我们需要做的唯一事情是实现
子报表处理
事件。这是代码

private void LoadApplicationsCatalog()
{
使用(IdentityDataContext=newidentitydatacontext())
{
this.reportViewer1.LocalReport.DataSources.Clear();
var applicationscalog=context.spGetApplicationsCatalog().Select(a=>new{a.IdentityApplicationCatalogId,a.Name,a.IdentityApplicationId}).ToList();
this.reportViewer1.LocalReport.DataSources.Add(新的ReportDataSource(“ApplicationCatalog”,ApplicationCatalog));
this.reportViewer1.LocalReport.SubreportProcessing+=LocalReport\u SubreportProcessing;
this.reportViewer1.Refresh();
this.reportViewer1.RefreshReport();
}
}
私有void LocalReport_SubreportProcessing(对象发送方,SubreportProcessingEventArgs e)
{
int-identityApplicationId=Convert.ToInt32(e.Parameters[0].Values[0]);
使用(IdentityDataContext=newidentitydatacontext())
{
var applications=context.IdentityApplications.Where(a=>a.IdentityApplicationId==IdentityApplicationId).ToList();
ReportDataSource datasource=新的ReportDataSource(“应用程序”),应用程序;
e、 添加(数据源);
}
var applicationCatalogReport=(LocalReport)发送方;
}

不幸的是,我还没有找到一种方法来填充第三个级别的数据源。

几天后,我发现这一点帮助我解决了创建3个或更多级别的报告的问题

几天后,我发现了这一点,它帮助我解决了创建3级或3级以上报告的问题

在你的链接上看第14步。如果您添加了另一个类,而不需要在Employees旁边添加列,或者在Employees列中有两个表,一个用于C类,另一个用于D类,根据您所说的,这只能得到一个2级报告。按照employees的示例,我需要的是在每个employees行中添加第三个表的方法。B类和C类是独占的。所有属性都不相同。您有两个表,其中类A包含这两个表。一个表具有B类,另一个表具有C类。因此,B类是员工列,D类是部门。C类只是一个表,有三列5、6、7。我不确定我是否理解正确。ClassA->Departments ClassB->Employees ClassC->未在示例中映射,但假设它是Supervisors ClassD->未在示例中映射,但假设它是Addresses在示例中它只有一个考虑部门(ClassA)和员工(ClassB)的报告。的确,如果我在Employee旁边添加一个新列,我将能够添加Supervisors(ClassC),正如您所指出的,Supervisors(ClassC)和Employees(ClassC)是排他性的。这里的问题是,我需要显示每个员工的地址列表(ClassD),然后ClassD成为单元格中表的行,列为属性8、9和10。类B是Employee列中的行,行的名称是链接上的属性3和4请参见步骤14。如果您添加了另一个类,而不需要在Employees旁边添加列,或者在Employees列中有两个表,一个用于C类,另一个用于D类,根据您所说的,这只能得到一个2级报告。按照employees的示例,我需要的是在每个employees行中添加第三个表的方法。B类和C类是独占的。所有属性都不相同。您有两个表,其中类A包含这两个表。一个表具有B类,另一个表具有C类。因此,B类是员工列,D类是部门。C类只是一个表,有三列5、6、7。我不确定我是否理解正确。ClassA->Departments ClassB->Employees ClassC->未在示例中映射,但假设它是Supervisors ClassD->未在示例中映射,但假设它是Addresses在示例中它只有一个考虑部门(ClassA)和员工(ClassB)的报告。的确,如果我在Employee旁边添加一个新列,我将能够添加Supervisors(ClassC),正如您所指出的,Supervisors(ClassC)和Employees(ClassC)是排他性的。这里的问题是,我需要显示每个员工的地址列表(ClassD),然后ClassD成为单元格wi中表的行