1

Visual Studio 2010 と C# を使用して、2 つのデータベースにクエリを実行し、サブレポートも含むレポートを生成するアプリケーションを構築しています。メイン レポートは、サブレポートに 3 つのパラメーターを渡しています。サブレポートは、メイン レポートのすべてのレコードで空白になっていました。このため、NoRowsMessage を「Nothing Returned」に設定して、サブレポートが実際に表示されていることを確認しました。サブレポートが空白になる代わりに、メッセージが返されるようになりました。データをプレビューし、パラメーターの値を入力して、tableadapter をテストしました。結果は問題なく表示されます。私の推測では、何らかの理由でパラメーターがサブレポートに正しく渡されていません。null 値を許可し、空白値も許可するようにパラメーターを設定しようとしました。何も変わりません。LocalReport を設定しました。SubreportProcessing を新しい SubreportProcessingEventHandler に変更します。サブレポートのイベント ハンドラーにデータソースを設定しました。何が欠けているのかわからない。どんな提案も役に立ちます。

メインフォームのコードは次のとおりです

private void JointAgreement_Load(object sender, EventArgs e) { // TODO: このコード行は、データを「termLookup.ACADEMICCALENDAR」テーブルにロードします。必要に応じて移動または削除できます。this.aCADEMICCALENDARTableAdapter1.Fill(this.termLookup.ACADEMICCALENDAR); // TODO: このコード行は、データを「yearLookup.ACADEMICCALENDAR」テーブルにロードします。必要に応じて移動または削除できます。this.aCADEMICCALENDARTableAdapter.Fill(this.yearLookup.ACADEMICCALENDAR); }

    private void button1_Click(object sender, EventArgs e)
    {
        string year = comboBox1.Text;
        string term = comboBox2.Text;
        Classes.Functions.GetStudentList(year, term);
        List<ReportParameter> paramList = new List<ReportParameter>();
        paramList.Add(new ReportParameter("Year", year, false));
        paramList.Add(new ReportParameter("Term", term, false));
        reportViewer1.LocalReport.SetParameters(paramList);
        reportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(SetSubDataSource);
        this.joint_Agreement_InfoTableAdapter.Fill(this.jointAgreementInfo.Joint_Agreement_Info);
        this.reportViewer1.RefreshReport();
    }

    public void SetSubDataSource(object sender, SubreportProcessingEventArgs e)
    {

        e.DataSources.Add(new ReportDataSource("StudentDetail", tRANSCRIPTDETAILBindingSource));

    }
4

1 に答える 1