0

我有一个报告文件,其中报告提供有关“工作”的信息 - 所以这是一个“工作票”报告。在 Job Ticket 中,有一个包含详细信息的组,提供有关单个“组件”的信息,其中任何给定 Job 中的任何位置都可以有 1 个组件到 6 个组件。每个组件都有一个字段,它是一个字符串,是“ComponentType”({sp_JobTicket.ComponentType})。

我想做的是将 ComponentType 的每一行的值放入一个数组中,然后我可以在页脚中调用它(即,我可以创建一个文本对象并在其中使用类似“TypeforComponent [ 3]"),因此即使每个打印页面仅显示一个组件的完整详细信息,每个页面的页脚将提供所有组件及其类型的概览视图。

就像现在一样,我们只是在打印页面本身上手写所有组件的组件类型,但是我们可以通过数据库访问 ComponentType,所以看起来我们应该能够将它打印到报表上。

页脚中打印的 ComponentType 列表

这是打印的 Job Ticket 报告的全页预览,该报告包含 4 个组件(因此在页脚中只有 1-4 有值,5-6 为空),以及当前所有内容的布局,以及我们在哪里'希望把东西放好: 完整报告预览

4

2 回答 2

1

有很多问题,但假设此报告一次仅针对 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

于 2015-04-07T15:54:21.543 回答
1

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

子报表

我通过创建一个新报告来完成此操作,将其链接到我的作业单(主)报告使用的存储过程,并导入我需要的数据字段。然后,我继续更改子报表的页面大小以适应页面上的大小(1.5“x 1”),在部分专家中将详细信息部分设置为“多列格式”,这使得新的“布局选项卡”可用”,我输入并选择了“用多列格式化组”。然后我将它保存为一个单独的文件,并将该报告作为子报告导入到我的主报告中。最后,我将 Subreport Links 设置为链接到我的主工单用作参数的“JobNumber”字段,并将该字段链接到参数。

设置子报表链接

成功完成: 完成成功报告

于 2015-04-08T18:43:41.350 回答