次のコードスニペットがこのように機能するかどうかはわかりません。「開発者として」、フィールドの数が制御されておらず、同様のデータバインディングを使用して、データ表示制御の作成を自動化しようとすることがあるため、アプリケーションを確認する前に一部の人はこれを残しました:
イベントActiveReport_ReportStart()
中:
for (Ind = 1; Ind <=CM.Length; Ind++) {
if (Ind == 1) {
Left = ((Line)rpt.Sections["PageHeader"].Controls["lnH8"]).Left + 0.05f;
} else if (Ind == 2) {
Left = ((Line)rpt.Sections["PageHeader"].Controls["lnH9"]).Left + 0.05f;
} else if (Ind == 3) {
Left = ((Line)rpt.Sections["PageHeader"].Controls["lnH10"]).Left + 0.05f;
}
TextBox TB = new TextBox();
TB.Size = ((Label)rpt.Sections["PageHeader"].Controls["tbColorway1"]).Size;
TB.Font = ((Label)rpt.Sections["PageHeader"].Controls["tbColorway1"]).Font;
TB.Width = ((Label)rpt.Sections["PageHeader"].Controls["tbColorway1"]).Width;
TB.Height = ((Label)rpt.Sections["PageHeader"].Controls["tbColorway1"]).Height;
TB.VerticalAlignment = VerticalTextAlignment.Top;
TB.Location = new System.Drawing.PointF(Left, ((Label)rpt.Sections["PageHeader"].Controls["tbColorway1"]).Top);
TB.DataField = "ColorText" + Ind + ColorwayNumber;
rpt.Sections["Detail"].Controls.Add(TB);
プレビュー時にコンパイルエラーは発生せず、自動生成されない他のフィールド(ReporHeader、ReportFooter)も正しく表示されますが、IMHOは、このメカニズムを詳細セクション内のサブレポートに置き換える方がよいと思います。もちろん、これらはフィールドは、レポートの詳細セクションに表示する必要があります。とにかく、実行時にテキストボックスまたはラベルを自動生成できる場合は、このコードが機能しなかった理由を上司に説明する必要があるため、いくつかの推奨事項を確認したいと思います。代わりにサブレポートを使用する必要がある場合は、その方法を知る必要があります。パラメータを渡し(少なくとも、別のSQLクエリを生成するために2つのパラメータを操作する必要があります)、スクリプトを挿入するのに適切な「イベント」は何ですか。
最も重要な問題は、sqlqueryの戻り値によって制限された実行時にレポートの詳細に追加されたフィールド/テキストボックスの数によってレポート形式の変更を取得することであることがわかりました。次に例を示します。
- 返されたSQLQuery値=4
- 詳細行1用に生成された10個のフィールド
- 行2の6つのフィールド
- 行3の4つのフィールド
詳細フィールドはSQLストアドプロシージャにバインドされています*
レポートは次のように印刷/表示されることになっています:
//Report Init
ページ1 : |フィールド1|フィールド2|フィールド3|フィールド4| -------------------------------------------------- -------- 行1| valA1 | valA2 | valA3 | valA4 | -------------------------------------------------- -------- row2 | valB1 | valB2 | valB3 | valB4 | -------------------------------------------------- -------- 行3| valC1 | valC2 | valC3 | valC4 | -------------------------------------------------- -------- 2ページ : |フィールド1|フィールド2|フィールド3|フィールド4| -------------------------------------------------- -------- 行1| valA5 | valA6 | valA7 | valA8 | -------------------------------------------------- -------- row2 | valB5 | valB6 | -------------------------------------------------- -------- 行3 -------------------------------------------------- -------- ページ3: |フィールド1|フィールド2|フィールド3|フィールド4| -------------------------------------------------- -------- 行1| valA9 | valA10 | -------------------------------------------------- -------- 行2 -------------------------------------------------- -------- 行3 -------------------------------------------------- --------
//End of Report
どんな助けでもありがたいです
どうもありがとう