0

私のWindowsプロジェクトにレポートページがあります。その中にmicrosoftReportViewerが含まれています。そのページに 2 つのコンボボックスがあります。最初のコンボボックスの項目は次のとおりです。

  1. 会社概要
  2. チティーホールディング
  3. ローンの詳細。

コンボボックス 1 でこのアイテムを選択すると、コンボボックス内のアイテムが変化します。レポートが必要です 2 コンボボックスでこの値に従ってください。

私のコードは

if (cbReprt.Text == "FirmDetails")
        {

            if (cbGeneral.Text == "AllFirmDetails")
            {
                reportViewer1.RefreshReport();
                SqlConnection con = new SqlConnection("Data Source=202.88.231.102;Initial Catalog=dbs_Merchant;Persist Security Info=True;User ID=sa;Password=abc123*");
                con.Open();
                allfirmdetails ds = new allfirmdetails();
                string str = "Select * from View_2";
                SqlCommand cmd = new SqlCommand(str, con);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(ds);
                DataTable dt = new DataTable();
                da.Fill(dt);
                reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;
                reportViewer1.LocalReport.ReportPath = "F:\\MerchantAssociation\\MerchantAssociation\\Report7.rdlc";
                reportViewer1.LocalReport.DataSources.Clear();
                reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("allfirmdetails_View_2", dt));
                reportViewer1.RefreshReport();
            }


            else
            {
                reportViewer1.RefreshReport();
                SqlConnection con = new SqlConnection("Data Source=202.88.231.102;Initial Catalog=dbs_Merchant;Persist Security Info=True;User ID=sa;Password=abc123*");
                con.Open();
                allfirmdetails ds1 = new allfirmdetails();
                string str1 = "Select * from View_2 where FirmName='" + cbGeneral.Text + "'";
                SqlCommand cmd1 = new SqlCommand(str1, con);
                SqlDataAdapter da1 = new SqlDataAdapter(cmd1);
                da1.Fill(ds1);
                DataTable dt1 = new DataTable();
                da1.Fill(dt1);
                reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;
                reportViewer1.LocalReport.ReportPath = "F:\\MerchantAssociation\\MerchantAssociation\\firmwise.rdlc";
                reportViewer1.LocalReport.DataSources.Clear();
                reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("allfirmdetails_View_2", dt1));
                reportViewer1.RefreshReport();

            }
        }
        else if (cbReprt.Text == "ChittyDetails")
        {
            if (cbGeneral.Text == "AllChittyDetails")
            {
                reportViewer1.RefreshReport();
                SqlConnection con = new SqlConnection("Data Source=202.88.231.102;Initial Catalog=dbs_Merchant;Persist Security Info=True;User ID=sa;Password=abc123*");
                con.Open();
                ChittyDetails ds2 = new ChittyDetails();
                string str2 = "Select * from View_1";
                SqlCommand cmd2 = new SqlCommand(str2, con);
                SqlDataAdapter da2 = new SqlDataAdapter(cmd2);
                da2.Fill(ds2);
                DataTable dt2 = new DataTable();
                da2.Fill(dt2);
                reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;
                reportViewer1.LocalReport.ReportPath = "F:\\MerchantAssociation\\MerchantAssociation\\allchitty.rdlc";
                reportViewer1.LocalReport.DataSources.Clear();
                reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("ChittyDetails_View_1", dt2));
                reportViewer1.RefreshReport();
            }

まず、chittyholding の詳細を選択します。その後、報告を受けました。次に、chitty details report を選択すると、 のようなエラーが発生しました **An error occured during local report processing .A data sourcr instance has not been supplied for the data source "ChittyHolding_View_7"**。プロジェクトを閉じて再度実行すると、その会社の詳細の選択は機能しますが、別の選択は機能しません。これは、1 つの選択に対してのみレポートを取得していることを意味します。なんで?このエラーを解決してください

4

1 に答える 1

0

すべての条件の先頭ではreportViewer1.Reset();なく、呼び出すようにしてくださいreportViewer1.Refresh();

于 2012-12-07T15:29:05.140 に答える