質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

1回答

1010閲覧

別フォームのreportviewerの操作について

superhiro

総合スコア7

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2020/01/23 05:07

前提・実現したいこと

Form12に日付入力とボタンを配置し、押下すると日付を条件にSQLによってDBよりレコードを取得します。その後Form16を開いて埋め込まれたreportviewer1にSQL結果を表示したいです。

発生している問題・エラーメッセージ

現在のコンテキストに 'reportViewer1' という名前は存在しません。

該当のソースコード

C#

1for (i = 0; i < count; ++i) 2{ 3 DataSet ds = new DataSet(); 4 command2.Parameters["@results"].Value = results[i]; 5 command2.CommandText = "select 材質1,径1,長さ1,数量1,単価1,硬度1,その他1,数量2,単価2,会社 from zairyoTBL where 入力日=@nyuryokudate2 and 会社=@results and フラグ is null"; 6 SqlDataAdapter Adp = new SqlDataAdapter(); 7 Adp.SelectCommand = command2; 8 Adp.Fill(ds);//データセットに格納 9 10 Form16 form16 = new Form16(); 11 12 // ReportViewer の初期設定 13//ここのreportViewer1が見に行けない。 14 reportViewer1.Reset(); 15 reportViewer1.ProcessingMode = ProcessingMode.Local; 16 reportViewer1.LocalReport.ReportPath = @"・・・・Report1.rdlc"; 17 18 // ReportViewer 用データセットの作成 19 ReportDataSource RepDS = new ReportDataSource(); 20 RepDS.Name = "DataSet1"; 21 RepDS.Value = ds.Tables[0]; 22 23 // ReportViewer にデータを表示 24 reportViewer1.LocalReport.DataSources.Add(RepDS); 25 reportViewer1.RefreshReport(); 26 27 form16.Show(); 28 form16.Dispose(); 29}

試したこと

このエラーはform16のreportViewer1をform1から見に行けてないのだと思い、form16.reportViewer1としたのですが、すると「'Form16.reportViewer1' はアクセスできない保護レベルになっています」と出てしまいます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

このエラーはform16のreportViewer1をform1から見に行けてないのだと思い、form16.reportViewer1としたのですが、すると「'Form16.reportViewer1' はアクセスできない保護レベルになっています」と出てしまいます。
上記のイメージで修正を行いたいのであれば、From16のreportViewer1をpublicに設定し外部からアクセスできるようにしてください。

投稿2020/01/23 05:25

kgreenjp

総合スコア97

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

superhiro

2020/01/23 05:39

Form16.Desiners.csに private Microsoft.Reporting.WinForms.ReportViewer reportViewer1; があり、 public Microsoft.Reporting.WinForms.ReportViewer reportViewer1; にすることで解決することができました。 Form16.Desiners.csにあることを知らず変に考えすぎていたようです。 kgreenjpさんありがとうございました。 余談ですが、forループで複数のレポートが起動するのですが、「form16.Dispose();」があると立ち上がったレポートがすぐ消えてしまうので、不要でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問