C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

VisualStudio2017でReportViewer /たかし (19/10/31(Thu) 18:27) #92818
Re[1]: VisualStudio2017でReportViewer /WebSurfer (19/10/31(Thu) 21:55) #92822
Re[1]: VisualStudio2017でReportViewer /大谷刑部 (19/11/01(Fri) 14:38) #92832
Re[1]: VisualStudio2017でReportViewer /魔界の仮面弁士 (19/11/01(Fri) 15:27) #92838
  └ Re[2]: VisualStudio2017でReportViewer /WebSurfer (19/11/01(Fri) 18:28) #92843
    └ Re[3]: VisualStudio2017でReportViewer /たかし (19/11/02(Sat) 18:27) #92851
      ├ Re[4]: VisualStudio2017でReportViewer /WebSurfer (19/11/02(Sat) 20:34) #92852
      └ Re[4]: VisualStudio2017でReportViewer /魔界の仮面弁士 (19/11/03(Sun) 14:17) #92862
        └ Re[5]: VisualStudio2017でReportViewer /たかし (19/11/03(Sun) 14:02) #92861
          ├ Re[6]: VisualStudio2017でReportViewer /魔界の仮面弁士 (19/11/03(Sun) 14:59) #92864
          ├ Re[6]: VisualStudio2017でReportViewer /WebSurfer (19/11/03(Sun) 14:23) #92863
          └ Re[6]: VisualStudio2017でReportViewer /魔界の仮面弁士 (19/11/03(Sun) 15:38) #92865
            └ Re[7]: VisualStudio2017でReportViewer /たかし (19/11/04(Mon) 10:26) #92869
              └ Re[8]: VisualStudio2017でReportViewer /大谷刑部 (19/11/06(Wed) 15:35) #92902


親記事 / ▼[ 92822 ] ▼[ 92832 ] ▼[ 92838 ]
■92818 / 親階層)  VisualStudio2017でReportViewer
□投稿者/ たかし (16回)-(2019/10/31(Thu) 18:27:55)

分類:[.NET 全般] 

お世話になっております。たかしと申します。

VB.NETでレポートを作りたいと思い、
https://qiita.com/vicugna-pacos/items/80e76059af2a29d5835f
の記事に従ってReportViewerをインストールしました。
新しいフォームを作ってツールボックスからReportViewerをドラッグしてみましたが、
どうしてもフォームに配置することが出来ません。
なおこのとき、コンポーネントトレイには「ReportViewer1」が出来ています。
何度かドラッグしてみるのですが、そのたびに「ReportViewer2」「ReportViewer3」・・・が出来るだけです。
どうやったら使えるのか、どなたか教えていただけないでしょうか?

[ □ Tree ] 返信 編集キー/

▲[ 92818 ] / 返信無し
■92822 / 1階層)  Re[1]: VisualStudio2017でReportViewer
□投稿者/ WebSurfer (1961回)-(2019/10/31(Thu) 21:55:32)
No92818 (たかし さん) に返信

Windows Forms か ASP.NET Web Forms のどちらですか?

そういう情報は質問の一番最初に書いてほしいのですが・・・
[ 親 92818 / □ Tree ] 返信 編集キー/

▲[ 92818 ] / 返信無し
■92832 / 1階層)  Re[1]: VisualStudio2017でReportViewer
□投稿者/ 大谷刑部 (55回)-(2019/11/01(Fri) 14:38:10)
No92818 (たかし さん) に返信
> お世話になっております。たかしと申します。
>
> VB.NETでレポートを作りたいと思い、
> https://qiita.com/vicugna-pacos/items/80e76059af2a29d5835f
> の記事に従ってReportViewerをインストールしました。
> 新しいフォームを作ってツールボックスからReportViewerをドラッグしてみましたが、
> どうしてもフォームに配置することが出来ません。
> なおこのとき、コンポーネントトレイには「ReportViewer1」が出来ています。
正常な動きだと思いますが?何がダメだと思っているのですか?
配置したReportViewerの名前がReportViewer1とつけられる他のコントロールと同様の昔からMSのデフォルト名称のつけ方にしか見えませんが。
[ 親 92818 / □ Tree ] 返信 編集キー/

▲[ 92818 ] / ▼[ 92843 ]
■92838 / 1階層)  Re[1]: VisualStudio2017でReportViewer
□投稿者/ 魔界の仮面弁士 (2452回)-(2019/11/01(Fri) 15:27:51)
No92818 (たかし さん) に返信
> なおこのとき、コンポーネントトレイには「ReportViewer1」が出来ています。
> 何度かドラッグしてみるのですが、そのたびに「ReportViewer2」「ReportViewer3」・・・が出来るだけです。

デザイナによって、コントロールではなくコンポーネントとして扱われているのだとしたら、
参照しているアセンブリが間違っているのだと思います。


参照設定に Microsoft.ReportViewer.WinForms.dll が追加されていると思いますが、
どのバージョンをお使いでしょうか? (8.0、9.0、10.0、11.0、12.0…)

正しいバージョンを指定しないと、フォームに貼る事はできません。
(InitializeComponent も無理矢理書き換えれば、フォームに配置できなくもないのですが、
 バージョン不整合のままだと、COM 参照 VBIDE の依存性エラーになるなどの問題が生じます)
[ 親 92818 / □ Tree ] 返信 編集キー/

▲[ 92838 ] / ▼[ 92851 ]
■92843 / 2階層)  Re[2]: VisualStudio2017でReportViewer
□投稿者/ WebSurfer (1963回)-(2019/11/01(Fri) 18:28:56)
Web Forms 用か Windows Forms 用か不明ですが、いずれにせよ最新版 v15 は NuGet で
インストールするのがよさそうです。

ReportViewer コントロールを使用した Reporting Services の統合 - 概要
https://docs.microsoft.com/ja-jp/sql/reporting-services/application-integration/integrating-reporting-services-using-reportviewer-controls-get-started?view=sql-server-2017

ただし、v15 の中でも最新版 150.1358.0 は .NET 4.6 以降でないと使えないので注意し
てください。
[ 親 92818 / □ Tree ] 返信 編集キー/

▲[ 92843 ] / ▼[ 92852 ] ▼[ 92862 ]
■92851 / 3階層)  Re[3]: VisualStudio2017でReportViewer
□投稿者/ たかし (17回)-(2019/11/02(Sat) 18:27:35)
No92843 (WebSurfer さん) に返信
> Web Forms 用か Windows Forms 用か不明ですが、いずれにせよ最新版 v15 は NuGet で
> インストールするのがよさそうです。
>
> ReportViewer コントロールを使用した Reporting Services の統合 - 概要
> https://docs.microsoft.com/ja-jp/sql/reporting-services/application-integration/integrating-reporting-services-using-reportviewer-controls-get-started?view=sql-server-2017
>
> ただし、v15 の中でも最新版 150.1358.0 は .NET 4.6 以降でないと使えないので注意し
> てください。

みなさんありがとうございます。

プロパティの詳細を見ると、
MicrosoftReportViewer.Winforms.dll
ファイルバージョン:15.0.1358.0
となっておりますが、これではだめなのでしょうか?
なおVisualStudioのバージョンは4.8.03752
です。.NETのバージョンとはこれのことでよろしいのでしょうか?

[ 親 92818 / □ Tree ] 返信 編集キー/

▲[ 92851 ] / 返信無し
■92852 / 4階層)  Re[4]: VisualStudio2017でReportViewer
□投稿者/ WebSurfer (1966回)-(2019/11/02(Sat) 20:34:23)
No92851 (たかし さん) に返信

なんで、

> Windows Forms か ASP.NET Web Forms のどちらですか?

と聞いたのに答えないのですか? それで話が通じると思いますか?
私と話をしたくないということならそれでもかまいませんが、そうフィードバックして。
[ 親 92818 / □ Tree ] 返信 編集キー/

▲[ 92851 ] / 返信無し
■92862 / 4階層)  Re[4]: VisualStudio2017でReportViewer
□投稿者/ 魔界の仮面弁士 (2455回)-(2019/11/03(Sun) 14:17:25)
No92851 (たかし さん) に返信
> プロパティの詳細を見ると、
> MicrosoftReportViewer.Winforms.dll
> ファイルバージョン:15.0.1358.0
> となっておりますが、これではだめなのでしょうか?

下記をお使いでしょうか?
https://www.nuget.org/packages/Microsoft.ReportingServices.ReportViewerControl.Winforms/150.1358.0


新規プロジェクトにおいて、下記の手順で利用可能となるかどうか試してみてください。

(1) NuGet パッケージマネージャーで、"Microsoft.ReportingServices.ReportViewerControl.Winforms" を検索し、
 最新の v150.1358.0 ではなく、v150.900.148 というバージョンをを選択してインストールします。

(2) この時点で、参照設定には下記が追加されます。
 Microsoft.ReportViewer.Common
 Microsoft.ReportViewer.DataVisualization
 Microsoft.ReportViewer.Design
 Microsoft.ReportViewer.ProcessingObjectModel
 Microsoft.ReportViewer.WinForms
 Microsoft.SqlServer.Types
 プロジェクトをビルドして、エラーが無い事を確認します。
 ※ v150.1358.0 とは依存関係が異なります。

(3) 現在のソリューションのあるフォルダーを Windows エクスプローラーで開き、
 packages\Microsoft.ReportingServices.ReportViewerControl.Winforms.150.900.148\lib\net40\
 の階層が存在していることを確認しておきます。

(4) ツールボックスを右クリックして[アイテムの選択]を指定し、参照ボタンから上記 3 のフォルダーを開いて
 "Microsoft.ReportViewer.WinForms.dll"
 を指定します。少し待つと、アイテム一覧に "ReportViewer" が現れるので、
 チェックされていることを確認してダイアログを閉じます。

(5) ツールボックスの ReportViewer をフォームに貼れるかどうか確認してください。
[ 親 92818 / □ Tree ] 返信 編集キー/

▲[ 92852 ] / ▼[ 92864 ] ▼[ 92863 ] ▼[ 92865 ]
■92861 / 5階層)  Re[5]: VisualStudio2017でReportViewer
□投稿者/ たかし (18回)-(2019/11/03(Sun) 14:02:40)
No92852 (WebSurfer さん) に返信
> ■No92851 (たかし さん) に返信
>
> なんで、
>
>>Windows Forms か ASP.NET Web Forms のどちらですか?
>
> と聞いたのに答えないのですか? それで話が通じると思いますか?
> 私と話をしたくないということならそれでもかまいませんが、そうフィードバックして。

経過を報告いたします。昨日からやってみたことです。

Microsoft.ReportViewer.WinForms.dllの最新バージョンらしきもの(15.0.900.148)を
以下のサイトからダウンロードしてDebugフォルダに上書きコピーしてみました。
https://www.dllme.com/dll/files/microsoft_reportviewer_winforms_dll.html

すると、やっと思い通りにReportViewerコントロールをフォーム上に作ることが出来ました。
これでうまくいくだろうと思い、念の為もう一度再現してみることにしたのが失敗でした。
せっかく出来たコントロールを削除して、同じように何度かドラッグしてみました。
ところが、それ以降は最初と同じ現象が起きるようになっただけでした。
コンポーネントトレイに「ReportViewer1」「ReportViewer2」「ReportViewer3」・・・が出来るだけ。
肝心のコントロールが貼り付けられず全く埒が明きません。
何がどう違うのかお分かりになる方はいますでしょうか?

WebSurferさま。もちろんWinFormですよ。
先にMicrosoftReportViewer.Winforms.dllと書いてあるはずです。

[ 親 92818 / □ Tree ] 返信 編集キー/

▲[ 92861 ] / 返信無し
■92864 / 6階層)  Re[6]: VisualStudio2017でReportViewer
□投稿者/ 魔界の仮面弁士 (2456回)-(2019/11/03(Sun) 14:59:32)
No92861 (たかし さん) に返信
> WebSurferさま。もちろんWinFormですよ。
> 先にMicrosoftReportViewer.Winforms.dllと書いてあるはずです。

参考にされていた Qiita の記事は、VB.NET + WinForm なプロジェクトでしたし、
DLL の名前からも、「WinForm である可能性が高い」であろうという「予測」は立てられそうですね。


自分の場合、前提条件がハッキリしないのなら、「いずれかのパターンと仮定して回答する」か
「それぞれの可能性を考慮して、冗長的ではあるが各パターンごとに回答する」ようにしていますが、
今回の一連の質問だと、ASP.NET WebForms で WinForms ライブラリが参照されている可能性や、
Visual Studio のバージョン不整合の可能性も排除できないと思います。
(VS のバージョンは未だ不明なままですね)


ところで下記の、"Install ReportViewer Visual Studio 2019" というロシア語の動画では、
WinForms (C#) のプロジェクトであるにも関わらず、ReportViewerControl のパッケージとして、
WinForms ではなく、あえて WebForms の方を NuGet していたりします。
http://j.mp/RepViewVS2019


実際手元の環境で
https://www.nuget.org/packages/Microsoft.ReportingServices.ReportViewerControl.Winforms/150.1358.0
https://www.nuget.org/packages/Microsoft.ReportingServices.ReportViewerControl.Webforms/150.1358.0
を比べた場合、両方の packages フォルダ配下に配置される DLL 群を比較すると、
「Winforms」の方は、WebForms は存在せず、WinForms のライブラリだけが含まれているのに対し、
「Webforms」の方は、WebForms だけでなく、WinForms のライブラリも含んでいました。なんでだー。
[ 親 92818 / □ Tree ] 返信 編集キー/

▲[ 92861 ] / 返信無し
■92863 / 6階層)  Re[6]: VisualStudio2017でReportViewer
□投稿者/ WebSurfer (1967回)-(2019/11/03(Sun) 14:23:49)
No92861 (たかし さん) に返信

> WebSurferさま。もちろんWinFormですよ。
> 先にMicrosoftReportViewer.Winforms.dllと書いてあるはずです。

そういうのは、私が

>Windows Forms か ASP.NET Web Forms のどちらですか?

と聞いたことへの直接の回答になってません。

何故ストレートに答えられないのか分かりませんが、そういう対応をされては話が通じ
そうもないので自分は撤退します。他の人の回答をお待ちください。
[ 親 92818 / □ Tree ] 返信 編集キー/

▲[ 92861 ] / ▼[ 92869 ]
■92865 / 6階層)  Re[6]: VisualStudio2017でReportViewer
□投稿者/ 魔界の仮面弁士 (2457回)-(2019/11/03(Sun) 15:38:02)
No92861 (たかし さん) に返信
> Microsoft.ReportViewer.WinForms.dllの最新バージョンらしきもの(15.0.900.148)を
> 以下のサイトからダウンロードしてDebugフォルダに上書きコピーしてみました。

15.0.1358.0 の方が後のバージョンなのですが、依存関係の問題があるため、
15.0.900.148 をそのまま使い続けてください。

No92864 で紹介したロシア語動画のコメント欄でも、同様のトラブル報告(と解決策)が投稿されています。
[ 親 92818 / □ Tree ] 返信 編集キー/

▲[ 92865 ] / ▼[ 92902 ]
■92869 / 7階層)  Re[7]: VisualStudio2017でReportViewer
□投稿者/ たかし (19回)-(2019/11/04(Mon) 10:26:37)
No92865 (魔界の仮面弁士 さん) に返信
> ■No92861 (たかし さん) に返信
>>Microsoft.ReportViewer.WinForms.dllの最新バージョンらしきもの(15.0.900.148)を
>>以下のサイトからダウンロードしてDebugフォルダに上書きコピーしてみました。
>
> 15.0.1358.0 の方が後のバージョンなのですが、依存関係の問題があるため、
> 15.0.900.148 をそのまま使い続けてください。
>
> No92864 で紹介したロシア語動画のコメント欄でも、同様のトラブル報告(と解決策)が投稿されています。

魔界の仮面弁士さま、
懇切丁寧にご説明いただきありがとうございます。

おかげさまでやっとコントロールを貼り付けることが出来ました。
しかし、ReportViewerを使っていかなる事ができるのか?
そこを確認すべく、イチから勉強したいと思います。
Accessのような帳票形式レポートが「自在に」作れるのかどうか?目下そこが一番の疑問です。
最悪叶わない場合は、思い切ってAccessのレポート機能を拝借しようかと考えています。
また分からないことに遭遇しましたら、お世話になりたいと思いますので、よろしくお願いいたします。


[ 親 92818 / □ Tree ] 返信 編集キー/

▲[ 92869 ] / 返信無し
■92902 / 8階層)  Re[8]: VisualStudio2017でReportViewer
□投稿者/ 大谷刑部 (56回)-(2019/11/06(Wed) 15:35:01)
No92869 (たかし さん) に返信
> Accessのような帳票形式レポートが「自在に」作れるのかどうか?目下そこが一番の疑問です。
DBの項目やクエリ定義とマッピングできるという面ではAccessのレポートと似ていますが、
SSIS等他のSQL Server Datatoolsの機能と同様、接続マネージャーを定義してそれを利用するイメージなので、
細かい設定等はかなり違います。
また、使える式等はVB.netの関数がベースとなるので、その点もAccessVBAの関数を基本としているAccessのレポートと異なります。

> 最悪叶わない場合は、思い切ってAccessのレポート機能を拝借しようかと考えています。
SQL Server Datatools(実態はSQLServerの機能用にカスタマイズしたVSのプロジェクトテンプレートです)をインストールして、
SSRSのプロジェクトを作ればデザイナーのメニューとしてAccessレポートのインポート機能がありますので、
Accessの定義の方が慣れているのであれば、初めのうちは、インポート機能で変換された状態のものを修正して使うとかでもいいと思います。
VBAの関数は可能な限りVB.netの関数に変換されるようです。VSの昔のバージョンにあった、コンバートツールに考え方は似てます。

[ 親 92818 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -