0

ユーザーが1年をクリックしてから、その年の月次データを表示する別の画面が表示されるドリルスルーレポートを作成しようとしています。マスターレポートが関連付けられているストアドプロシージャに「EcoYear」が含まれていないため、コードでエラーが発生します。ストアドプロシージャにEcoYearを含むテーブルを追加できますが、すべてのケースで15ページが印刷されます。(それぞれの場合に15年あります)

デバッグ時にエラーが発生するコードは次のとおりです。

using System;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.Collections;
using System.ComponentModel;
using DevExpress.XtraReports.UI;
using System.Drawing.Printing;

namespace StdEco
{
    public partial class StdEcoRpt : DevExpress.XtraReports.UI.XtraReport
    {
        public StdEcoRpt()
        {
            InitializeComponent();
        }

        private void xrLabel1_BeforePrint(object sender, PrintEventArgs e)
        {
            ((XRLabel)sender).Tag = GetCurrentRow();
        }

        private void xrLabel1_PreviewClick(object sender, PreviewMouseEventArgs e)
        {
            DetailReport detailReport = new DetailReport();
            detailReport.CaID.Value = (int)((DataRowView)e.Brick.Value).Row["CaseID"];
            detailReport.EYear.Value = (int)((DataRowView)e.Brick.Value).Row["EcoYear"];
            detailReport.ShowPreviewDialog();
        }

        private void xrLabel1_PreviewMouseMove(object sender, PreviewMouseEventArgs e)
        {
            Cursor.Current = Cursors.Hand;
        }

    }
}

エラーは次のとおりです。列'EcoYear'はテーブルStdEcoMonthlyHeaderFooterに属していません。

これからEcoYearを取得するテーブルはStdEcoMonthlyDataです。

そのコードをStdEcoMonthlyDataストアドプロシージャに接続できるようにするか、EcoYearをStdEcoMonthlyHeaderFooterストアドプロシージャに追加するときに、ケースごとに1つのレコードのみを出力できるようにする必要があります。

ご協力ありがとうございました。

4

0 に答える 0