0

「ジョブ」に関する情報を提供するレポート ファイルがあります。つまり、これは「ジョブ チケット」レポートです。ジョブ チケット内には、個々の「コンポーネント」に関する情報を提供する詳細を含むグループがあり、特定のジョブには 1 つのコンポーネントから 6 つのコンポーネントまで存在する可能性があります。各コンポーネントに適用される文字列であり、「ComponentType」({sp_JobTicket.ComponentType}) であるフィールドがあります。

私がやりたいのは、ComponentType の各行の値を配列に入れ、それをページ フッターで呼び出すことができるようにすることです (つまり、テキスト オブジェクトを作成し、"TypeforComponent[ 3]")、印刷された各ページには 1 つのコンポーネントの完全な詳細のみが表示されますが、各ページのページ フッターには、すべてのコンポーネントとそのタイプが一目でわかるように表示されます。

現時点では、すべてのコンポーネントのコンポーネント タイプを印刷ページ自体に手書きするだけですが、データベースを介して ComponentType にアクセスできるため、レポートに印刷できるはずです。

ページ フッターに表示される ComponentType リスト

以下は、4 つのコンポーネント (つまり、ページ フッターでは 1 ~ 4 のみが値を持ち、5 ~ 6 は空) を持ち、すべてが現在レイアウトされている、印刷されたジョブ チケット レポートの全ページ プレビューです。物事を配置することを望んでいます: 完全なレポートのプレビュー

4

2 に答える 2

1

多くの質問がありますが、このレポートが一度に 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 ""

etc... CT_Var3 から 6 まで

于 2015-04-07T15:54:21.543 に答える
1

したがって、私の問題に対するより単純で簡単な解決策は、配列を使用するのではなく、サブレポートを作成することだったようです。

サブレポート

これを実現するには、新しいレポートを作成し、それをジョブ チケット (メイン) レポートで使用されるストアド プロシージャにリンクし、必要なデータ フィールドをインポートしました。次に、サブレポートのページ サイズをページのサイズ (1.5" x 1") に合わせて変更し、セクション エキスパートで [詳細] セクションを [複数列の書式設定] に設定して、新しい [レイアウト] タブを使用できるようにしました。 」を入力し、「複数の列でグループをフォーマット」を選択しました。次に、それを別のファイルとして保存し、そのレポートをサブレポートとしてメイン レポートにインポートしました。最後に、サブレポート リンクを設定して、メイン チケットがパラメータとして使用する「JobNumber」フィールドにリンクし、そのフィールドをパラメータにリンクします。

サブレポート リンクの設定

正常に完了しました: 合格報告完了

于 2015-04-08T18:43:41.350 に答える