如何动态从组中取值,将其添加到数组中,然后在页面页脚中打印单个值?

问题描述:

我有一个报告文件,报告提供了有关“作业”的信息 - 所以这是一份“作业单”报告。在工作票内部,有一组详细信息,提供有关各个“组件”的信息,其中可以有任何给定作业中的1个组件到6个组件。应用于每个组件的字段是一个字符串,并且是“ComponentType”({sp_JobTicket.ComponentType})。如何动态从组中取值,将其添加到数组中,然后在页面页脚中打印单个值?

我想要做的是将每行ComponentType的值放入一个Array中,然后我可以在Page Footer中调用它(即,因此我可以创建一个Text对象并在其中使用某个东西调用一个值例如“TypeforComponent [3]”),因此即使每个打印页面只显示一个组件的完整详细信息,每个页面的页面页脚仍将提供所有组件及其类型的一览视图。

现在,我们只需手工为打印页面上的所有组件编写组件类型,但我们可以通过数据库访问ComponentType,所以看起来我们应该能够打印它那个报告。

ComponentType List Printed in the Page Footer

这里是一个有4个元件的印刷作业单报告的完整页面预览(因此在页脚只有1-4将有一个价值,5-6是空的),并在目前一切都摆出来,我们希望从哪里放置的东西: Full Report Preview

+0

确定了你的idea..that可能..你在哪里打? – Siva

所以它看起来像更简单,更直接的解决我的问题是不使用数组,而是创造一个子报表。

Subreport

我做到了这一点通过创建一个新的报告,它连接到我的作业单(主)报告中使用的存储过程,和进口我需要的数据字段。然后,我开始更改子报表的页面大小以适应页面大小(1.5“x 1”),将详细信息部分设置为“专家”部分中的“多列格式”,该部分提供了一个新的“布局选项卡“我输入并选择了”具有多列[s]的格式组“。然后,我将其另存为一个单独的文件,并将该报告作为子报告导入到我的主报告中。最后,我将子报表链接设置为链接到我的“工作编号”字段,我的主工单用作参数,并将该字段用于参数。

Setting Subreport Links

成功完成: Completed Successful Report

很多的问题,但假设本报告运行仅1票工作在这里的时间是一种可能性: 创建公式称为CT_Array并放置在header1部分并抑制:

WhileReadingRecords; 
stringvar array CT_Array ; 
stringvar output := ""; 
numbervar i := ubound(CT_Array)+1; 
redim preserve CT_Array[i]; 
CT_Array[i] := {sp_JobTicket.ComponentType}; 

然后创建6个式(CT_Var1通过CT_Var6),内容如下:

WhileReadingRecords; 
stringvar array CT_Array ; 
CT_Array[1] 

更换CT_Array [1]与下一个数组编号

地点那些需要在页的页脚公式。

CT_Var2

WhileReadingRecords; stringvar array CT_Array ; 
if ubound(CT_Array) > 
1 then CT_Array[2] else "" 

等等......对于CT_Var3至6

+0

嗨,谢谢你的回答!由于只有第一个变量(CT_Var1)有效,所以看起来不太正确。后续的会导致错误:“下标必须介于1和数组的大小之间。”当我解除其中包含CT_Array公式的GH1部分时,它在预览中显示,对于应该有4个值(因为有4个组件)的“票证”,只有1个值。 提醒:报告按sp_JobTicket.ComponentNumber分组,但实际需要的值是sp_JobTicket.ComponentType。 – AWMoore

+0

我编辑了答案......对不起。我忘记了需要评估数组的大小 – CoSpringsGuy

+0

感谢您的更新。这阻止了弹出的错误,但似乎后续变量只想从第一个组件(“SM”)提取信息。在这张票上,预期的组件类型值是:1:SM,2:QM,3:QM,4:注意,即使更新CT_Var2-4,它们都显示值“SM”。 – AWMoore