I've been reading Telerik's documentation and I'm not sure if this is possible: I'm being asked to add tables to a report at run time, without doing so programmatically. A query is run that fetches hierarchical data, and the report owner would like to add a new table to the report for each member of the topmost parent, so that each topmost parent has their own table, with a text box title on top of the table containing the parent's name, in the following pattern:
TopParent1
[Parent1's table]
TopParent2
[Parent2's table]
...
Does anyone know how I could go about doing that without doing so programmatically? Every example and/or bit of documentation I've seen pertains to programmatically adding tables.
答案 0 :(得分:2)
可以在运行时向报表添加表,而无需执行此操作 那么以编程方式?
R: 无法以编程方式添加表格:每个元素的大小,确切的位置等等.. .. ..
阅读如何:使用子报告项创建主详情报告<{3}}
使用the telerik official tutorial,您可以在另一个报告中显示一个报告。每个SubReport report item的数据可能完全不同。
但是你可以通过SubReport实现父母/中国的关系。
/!\注意/!\
页面部分与报告本身无关,但与纸张或屏幕相关。因此,将忽略嵌套/详细报告的页面部分,并且只显示主报告的页面部分。
为了在每个页面上重复与页面部分类似的部分,请考虑使用未绑定的组(未指定分组条件)并将其部分的PrintOnEveryPage属性设置为True。请注意,您不能在组部分中使用PageCount和PageNumber全局对象。
您需要Passing Parameters to a SubReport。
如果您希望用户选择是否需要某个子报告。 您可以通过将参数从调用应用程序传递到报表构造函数来完成此操作。 并使用像Bitfield或枚举这样的东西来选择要显示的内容。
那么主报告代码中的C#控制器呢?
public myReportConstructor(int SubreportToDisplay)
{
InitializeComponent();
Hiden_Display(SubreportToDisplay);
}
private void Hiden_Display(int _code)
{
if ((_code & (int)myEnum.InfoClient) != (int)myEnum.InfoClient)
HideNShrink(SUBREPORT_CLIENT);
if ((_code & (int)myEnum.Item) != (int)myEnum.Item)
{
HideNShrink(SUBREPORT_Product.Item1);
HideNShrink(SUBREPORT_Product.ItemTWO);
}
}
private void HideNShrink(ReportItem target)
{// 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;
public Telerik.Reporting.SubReport SubReport_Client;
public Sub_Client sub_CLI1;
隐藏客户端时,我会使用SubReport_Client
那是SubReport item
,我SubReport Sub_Client
的容器;
(是的,他们将容器命名为容器,并且容器名称相同,这在First中令人困惑,但它的Vs / Telerik选择)
隐藏其他子报告中的子报告时
我使用嵌套嵌套ContaintSubReport
的{{1}}容器
喜欢:SubReport
答案 1 :(得分:0)
我能够回答我自己的问题如下:
使用它,我能够在查询的第一列中为每个项目添加一个表。首先创建的报告用作查询的包装器,并且因为它作为子报表项放在另一个报表中并且我创建了分组,所以允许它重复所需的内容以显示所有行。查询。
我为此使用了master-detail reports和report structures的Telerik文档。