在Telerik Reporting中的运行时添加表

在Telerik Reporting中的运行时添加表,telerik,telerik-mvc,telerik-reporting,Telerik,Telerik Mvc,Telerik Reporting,我一直在阅读Telerik的文档,我不确定这是否可行:有人要求我在运行时将表添加到报表中,而不是以编程方式。将运行一个获取分层数据的查询,报表所有者希望为最顶层父级的每个成员向报表中添加一个新表,以便每个最顶层父级都有自己的表,并在包含父级名称的表顶部显示一个文本框标题,模式如下: 最高领袖1 [家长表1] 最高领袖2 [家长2表] 有人知道我怎么能不通过编程来做这件事吗?我看到的每个示例和/或文档都与以编程方式添加表有关。 可以在运行时将表添加到报表中,而无需执行以下操作 这么说是程序上的

我一直在阅读Telerik的文档,我不确定这是否可行:有人要求我在运行时将表添加到报表中,而不是以编程方式。将运行一个获取分层数据的查询,报表所有者希望为最顶层父级的每个成员向报表中添加一个新表,以便每个最顶层父级都有自己的表,并在包含父级名称的表顶部显示一个文本框标题,模式如下:

最高领袖1

[家长表1]

最高领袖2

[家长2表]

有人知道我怎么能不通过编程来做这件事吗?我看到的每个示例和/或文档都与以编程方式添加表有关。



可以在运行时将表添加到报表中,而无需执行以下操作 这么说是程序上的

R:在添加表格时,必须以编程方式说出:每个元素的大小、确切位置等。。


如何创建具有条件显示的“分层”报告? 1/. 分层报告。 阅读如何:使用子报告项创建主详细报告

使用可以在另一个报告中显示一个报告。每个项目的数据可能完全不同

但你可以通过以下方式实现父母/子女关系

/!\小心\
页面部分与报表本身无关,但与纸张或屏幕相关。因此,嵌套/详细报告的页面部分将被忽略,只有主报告的页面部分可见

<> >为了在每个页上重复类似页部分的部分,考虑使用未绑定组(没有指定的分组标准),并将其部分的PrimtEngage页属性设置为true。请注意,不能在组部分中使用PageCount和PageNumber全局对象

2/. 条件显示 你需要这样做

如果希望用户选择是否需要某个子报表。 您可以通过将参数从调用应用程序传递到报表构造函数来实现这一点。 并使用诸如位字段或枚举之类的内容来选择要显示的内容

那么主报告代码后面的C#controller呢

public myReportConstructor(int SubreportToDisplay)
{
初始化组件();
隐藏显示(子报告显示);
}
私有无效隐藏显示(内部代码)
{
if(_code&(int)myEnum.InfoClient)!=(int)myEnum.InfoClient)
HideNShrink(子报告和客户);
if(_code&(int)myEnum.Item)!=(int)myEnum.Item)
{ 
HideNShrink(子报告产品项目1);
HideNShrink(子报告产品第二项);
}
}
私有void HideNShrink(ReportItem目标)
{// http://www.telerik.com/support/kb/reporting/details/collapse-the-container-when-hiding-child-report-items-
target.Visible=false;
target.Height=Telerik.Reporting.Drawing.Unit.Pixel(1);
} 
我在设计器中使用了一个小技巧,每个子报表项都设置为public:

private Telerik.Reporting.TextBox textBox17;
公共Telerik.Reporting.SubReport SubReport\u客户;
公共Sub_客户端Sub_CLI1;
隐藏客户端时,我将使用
子报表\u客户端

子报表项
,即我的
子报表Sub_客户端的容器

(是的,他们将容器和containt命名为同一个名称,一开始让人困惑,但这是Vs/Telerik的选择)
隐藏其他子报表中的子报表时。
我使用嵌套的
子报表的
容器ContaintSubReport

例如:
sub\u CLI1.嵌套式子报表


可以在运行时将表添加到报表中,而无需执行以下操作 这么说是程序上的

R:在添加表格时,必须以编程方式说出:每个元素的大小、确切位置等。。


如何创建具有条件显示的“分层”报告? 1/. 分层报告。 阅读如何:使用子报告项创建主详细报告

使用可以在另一个报告中显示一个报告。每个项目的数据可能完全不同

但你可以通过以下方式实现父母/子女关系

/!\小心\
页面部分与报表本身无关,但与纸张或屏幕相关。因此,嵌套/详细报告的页面部分将被忽略,只有主报告的页面部分可见

<> >为了在每个页上重复类似页部分的部分,考虑使用未绑定组(没有指定的分组标准),并将其部分的PrimtEngage页属性设置为true。请注意,不能在组部分中使用PageCount和PageNumber全局对象

2/. 条件显示 你需要这样做

如果希望用户选择是否需要某个子报表。 您可以通过将参数从调用应用程序传递到报表构造函数来实现这一点。 并使用诸如位字段或枚举之类的内容来选择要显示的内容

那么主报告代码后面的C#controller呢

public myReportConstructor(int SubreportToDisplay)
{
初始化组件();
隐藏显示(子报告显示);
}
私有无效隐藏显示(内部代码)
{
if(_code&(int)myEnum.InfoClient)!=(int)myEnum.InfoClient)
HideNShrink(子报告和客户);
if(_code&(int)myEnum.Item)!=(int)myEnum.Item)
{ 
HideNShrink(子报告产品项目1);
HideNShrink(子报告产品第二项);
}
}
私有void HideNShrink(ReportItem目标)
{// http://www.telerik.com/support/kb/reporting/details/collapse-the-container-when-hiding-child-report-items-
target.Visible=false;
target.Height=Telerik.Reporting.Drawing.Unit.Pixel(1)