我有一个报告文件,报告中提供了有关" Job"的信息。 - 所以这是一张"工作票"报告。在工作单内,有一个组的详细信息,提供有关个人"组件"其中任何给定作业中可以有1个组件到6个组件。每个组件都有一个字段,它是一个字符串,是" ComponentType" ({sp_JobTicket.ComponentType})。
我想要做的是将ComponentType的每一行的值放入一个数组,然后我可以在页脚中调用(即,我可以创建一个文本对象,并在其中使用类似的东西调用一个值" TypeforComponent [3]"),因此即使每个打印页面只显示一个组件的完整详细信息,每个页面的页脚也会提供所有组件的一览图。他们的类型。
就像现在一样,我们只是手工编写打印页面本身所有组件的组件类型,但是我们可以通过数据库访问ComponentType,所以看起来我们应该可以让它在报告。
以下是打印的作业单报告的完整页面预览,其中包含4个组件(因此在页面页脚中,只有1-4将具有值,5-6为空),并且当前所有内容都已布置,以及我们希望放置东西的地方:
答案 0 :(得分: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
答案 1 :(得分:1)
所以看起来我的问题更简单,更直接的解决方案是不使用数组,而是创建子报表。
我通过创建一个新报告,将其链接到我的作业单(主要)报告使用的存储过程来完成此操作,并导入了我需要的数据字段。然后我继续更改子报表的页面大小以适应页面上的大小(1.5“x 1”),在“专家”部分中将“详细信息”部分设置为“使用多列格式化”,这使新的“布局”选项卡可用“我输入并选择了”具有多列[s]的格式组“。然后我将其保存为单独的文件,并将该报告作为子报告导入到我的主报告中。最后,我将子报表链接设置为链接到我的“JobNumber”字段,我的主票据用作参数,而Field用作参数。
成功完成: