如何动态从组中取值,将其添加到数组中,然后在页面页脚中打印单个值?
我有一个报告文件,报告提供了有关“作业”的信息 - 所以这是一份“作业单”报告。在工作票内部,有一组详细信息,提供有关各个“组件”的信息,其中可以有任何给定作业中的1个组件到6个组件。应用于每个组件的字段是一个字符串,并且是“ComponentType”({sp_JobTicket.ComponentType})。如何动态从组中取值,将其添加到数组中,然后在页面页脚中打印单个值?
我想要做的是将每行ComponentType的值放入一个Array中,然后我可以在Page Footer中调用它(即,因此我可以创建一个Text对象并在其中使用某个东西调用一个值例如“TypeforComponent [3]”),因此即使每个打印页面只显示一个组件的完整详细信息,每个页面的页面页脚仍将提供所有组件及其类型的一览视图。
现在,我们只需手工为打印页面上的所有组件编写组件类型,但我们可以通过数据库访问ComponentType,所以看起来我们应该能够打印它那个报告。
这里是一个有4个元件的印刷作业单报告的完整页面预览(因此在页脚只有1-4将有一个价值,5-6是空的),并在目前一切都摆出来,我们希望从哪里放置的东西:
所以它看起来像更简单,更直接的解决我的问题是不使用数组,而是创造一个子报表。
我做到了这一点通过创建一个新的报告,它连接到我的作业单(主)报告中使用的存储过程,和进口我需要的数据字段。然后,我开始更改子报表的页面大小以适应页面大小(1.5“x 1”),将详细信息部分设置为“专家”部分中的“多列格式”,该部分提供了一个新的“布局选项卡“我输入并选择了”具有多列[s]的格式组“。然后,我将其另存为一个单独的文件,并将该报告作为子报告导入到我的主报告中。最后,我将子报表链接设置为链接到我的“工作编号”字段,我的主工单用作参数,并将该字段用于参数。
成功完成:
很多的问题,但假设本报告运行仅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
嗨,谢谢你的回答!由于只有第一个变量(CT_Var1)有效,所以看起来不太正确。后续的会导致错误:“下标必须介于1和数组的大小之间。”当我解除其中包含CT_Array公式的GH1部分时,它在预览中显示,对于应该有4个值(因为有4个组件)的“票证”,只有1个值。 提醒:报告按sp_JobTicket.ComponentNumber分组,但实际需要的值是sp_JobTicket.ComponentType。 – AWMoore
我编辑了答案......对不起。我忘记了需要评估数组的大小 – CoSpringsGuy
感谢您的更新。这阻止了弹出的错误,但似乎后续变量只想从第一个组件(“SM”)提取信息。在这张票上,预期的组件类型值是:1:SM,2:QM,3:QM,4:注意,即使更新CT_Var2-4,它们都显示值“SM”。 – AWMoore
确定了你的idea..that可能..你在哪里打? – Siva