以编程方式重复活动报告中的“详细信息”部分

时间:2014-03-10 14:00:31

标签: activereports

我需要重复一个“细节”部分,只需根据其中一个XML元素的值重复XML中的数据。

示例:

我的订单项为18的货件数量。在XML中只有一组数据,不会重复18次。我希望它能够显示18次此数据。

有没有办法以编程方式重复一节?我是一个新手,我想我曾经问过这里而不是去软件供应商,在这种情况下我什么都学不到!我尝试过800多页的手册并找不到答案。

任何我不仅仅重复细节部分的解决方案当然是受欢迎的!

报告在VB.net中编码,我的数据集是XML。

提前致谢!

肖恩

2 个答案:

答案 0 :(得分:0)

我理解您的要求,根据我的理解,您希望根据“发货量”的值重复详细信息部分中的数据。

如果值为18,则详细信息部分应重复18次,如果是下一次记录值为5,则应在报告中显示该记录的条目5次。

在不重复报告的详细信息部分的情况下实现此操作的清理程序将使用子报表。

实施流程如下:

  1. 在Report1(主报告)的详细信息部分添加子报告
  2. 设置数据源并添加要显示的字段
  3. 您可以删除子报表的ReportHeader / ReportFooter并将PageHeader / Footer的高度设置为零
  4. 在详细信息部分的格式化事件中,获取并将“出货量”的值保存在某个变量中(比如计数)。
  5. 根据这个值, 一个。重复子报告的详细信息部分(次数=计数值) 湾或多次渲染子报表(数字相当于计数值)
  6. 此致 Mohita

答案 1 :(得分:0)

我最终使用了一个计数器系统和LayoutAction(在提出这个问题之前我还不知道)

代码最终看起来像这样:

int counter = 1; 
int skip = 1; 
public void Detail_Format() { 

if (skip == 1) 
{ 
string convert =((TextBox)rpt.Sections["Detail"].Controls["txtShipQuantity"]).Text.ToString(); 
counter = int.Parse(convert); 
} 
if (counter > 1) 
{ 
rpt.LayoutAction = LayoutAction.PrintSection|LayoutAction.MoveLayout; 
counter--; 
skip = 0; 
}   
else 
{ 
rpt.LayoutAction = LayoutAction.PrintSection|LayoutAction.MoveLayout|LayoutAction.NextRecord; 
skip = 1; 
} 
} 

谢谢!

肖恩