Visual Studio 2017 RCという名前の新しいバージョンのVisual Studioでレポートソフトウェアを書き始めましたが、WindowsフォームとWPFアプリケーションテンプレートの両方からコアレポートビューツールが欠落していることに気付きました。 reportviewerツールがVisual Studio 2017から消えた理由を教えてください。それなしで本当に困っています。新しいビジュアルスタジオでこのツールを使用する代替手段はありますか?
**更新**:2019年8月18日
最新バージョンを削除して150.900.148.0
にロールバックすると、VS2017およびVS2019で使用している複数のコンピューターで動作するようです。
Nugetソリューションパッケージマネージャーで150.900.148にロールバックできます。以前のバージョンと同様に機能します。ドロップダウンボックスを使用して、古いバージョンを選択します。
ReportViewerの150.900バージョンを投稿し、それらを修正するよりも手動で削除する方が簡単な場合があります。
ツールボックスエントリを変更した後は、必ずVisual Studioを再起動してください。
更新:8/7/2019
おそらくVisual Studio 2019と一致するReportViewerコントロールの新しいバージョンがリリースされました。私はV150.1358.0で作業していました。
この回答の指示に従うと、デザイナーのツールボックスでコントロールが取得されます。しかし、フォームにドロップすると表示されません。コントロールはフォームの下に非視覚的なコンポーネントとして表示されます。
これは、Microsoft SQL BIサポートに従って設計されたとおりに機能しています。これは、コントロールを担当するグループです。
コントロールと直接やり取りすることはできませんが、これらの追加手順により回避策が提供されるため、フォーム上でコントロールのサイズを変更できます。表示されている間、デザイナーはコントロールが存在しないかのように扱います。
Microsoft SQL BIサポートの提案でフィードバック要求を作成しました。マイクロソフトの注目を集めるには、投票を検討してください。
Microsoft Azureフィードバックページ-WinForms ReportViewerコントロールのデザインタイム機能を復元する
追加の手順:
フォームのform.designer.csファイルで、Reportviewerコントロールをパネルに追加します。
//
// panel1
//
this.panel1.Controls.Add(this.reportViewer1);
フォームのデザイナーに戻ると、パネルにreportViewerが表示されるはずです。
これで、実際にパネルと対話して、reportViewerを配置できます。
Update:Microsoftは、Visual Studio 2017でレポートツールを構成および使用する方法を説明する document を2017年4月18日にリリースしました。
Visual Studio 2017には、ツールボックスにReportViewer
ツールがデフォルトでインストールされていません。拡張機能をインストールし、Visual Studio用のMicrosoft Rdlc Report Designerをツールボックスに追加すると、フォームの下に非ビジュアルコンポーネントが表示されます。
Microsoftサポートはこれはバグだと言っていましたが、2017年4月21日の時点では「設計どおりに動作しています」。
ReportViewer
を必要とするプロジェクトごとに、次の手順に従う必要があります。
ReportViewer
がある場合は、削除します。ハイライトし、右クリックして削除します。8/7/2019の編集-RDLC Report Designer拡張機能の現在のバージョンが干渉しなくなったようです。これは、実際にレポートを編集するために必要です。
Microsoft Rdlc Report Designer for Visual Studio拡張機能がインストールされている場合は、それをアンインストールします。
ソリューションを閉じて、Visual Studioを再起動します。これは重要なステップです。ソリューションを切り替えるときにVSを再起動しないとエラーが発生します。
Tools/NuGet Package Manager/Package Manager Console
)PM>プロンプトでこのコマンドを入力します。大文字と小文字が区別されます。
Install-Package Microsoft.ReportingServices.ReportViewerControl.WinForms
パッケージのインストールを説明するテキストが表示されます。
これで、ReportViewer
ツールをツールボックスに一時的に追加できます。
ツールボックスを右クリックして、Choose Items...
を使用します
ソリューションPackages
フォルダーにある適切なDLLを参照する必要があるため、参照ボタンを押します。
この例では、パッケージマネージャーコンソールのテキストに示すように、パッケージフォルダーに貼り付けることができます。
C:\Users\jdoe\Documents\Projects\_Test\ReportViewerTest\WindowsFormsApp1\packages
次に、Microsoft.ReportingServices.ReportViewerControl.Winforms.140.340.80
という名前のフォルダーをダブルクリックします
バージョン番号は将来変更される可能性があります。
次に、lib
をダブルクリックし、net40
をもう一度クリックします。
最後に、ファイルMicrosoft.ReportViewer.WinForms.dll
をダブルクリックします
ダイアログでReportViewer
がチェックされているはずです。右にスクロールすると、それに関連付けられているバージョン14.0.0.0が表示されます。
OKをクリックします。
ReportViewer
がツールボックスに配置されました。
ツールを目的のフォームにドラッグします。
完了したら、ReportViewer
ツールをツールボックスから削除します。別のプロジェクトで使用することはできません。
プロジェクトを保存しても構いません。
DLLが正しい場所からロードされるように、ReportViewer
でプロジェクトを開く必要がある場合は、必ずVisual Studioを再起動してください。再起動せずにReportViewer
を含むフォームでソリューションを開こうとすると、「The variable 'reportViewer1' is either undeclared or was never assigned.
」を示すエラーが表示されます。
同じソリューションに新しいプロジェクトを追加する場合は、プロジェクトを作成し、ソリューションを保存し、Visual Studioを再起動する必要があります。その後、フォームにReportViewer
を追加できるはずです。私はそれが最初に機能せず、非視覚的なコンポーネントとして現れることを見てきました。
その場合、通常はフォームからコンポーネントを削除し、プロジェクトからMicrosoft.ReportViewer.*
参照を削除し、保存して再起動します。
私にとっては、次の3つのステップで機能しました。
レポートビューアーコントロールの追加:
NuGet Package Managerに移動します。
インストールMicrosoft.ReportingServices.ReportViewerControl.Winforms
WebFormsアプリケーションの場合:
レポートビューアーコントロールの追加:
NuGet Package Managerに移動します。
インストールMicrosoft.ReportingServices.ReportViewerControl.WebForms
それで全部です!
上記の@Rich Shealerで説明したレポートサービスを追加するこの手順は、別のプロジェクトを開始するたびに繰り返されることに注意してください。それを避けるために:
別のコンピューターをセットアップする必要がある場合(インターネットのない自宅など)、市場からダウンロードしたインストーラーを安全な場所に保管してください。
レポートサービスを使用して作成したアプリケーションのパッケージまたはbinフォルダーから次のライブラリを取得します。
上記1から2つのコンポーネントをインストールします
これで準備完了です! ReportViewerアイコンがツールバーに追加され、プロジェクトに新しいアイテム...(レポート)を追加するときに、テンプレートの共通リストに追加されたReportおよびReportWizardテンプレートも見つけることができます。
注意:Nugetパッケージマネージャーを使用してセットアップすると、ReportおよびReportWizardテンプレートはReportingの下にグループ化されます。ただし、上記の方法を使用しても、インストールされたテンプレートにレポートグループは追加されませんが、インターネットを使用せずに、また毎回Nugetから既に持っているものをダウンロードせずにrdlcをすばやく統合できるので、問題になるとは思いません!
あなたが私のようで、これらのメソッドをいくつか試して、ツールボックスにコントロールがあり、フォームに描画できるが、フォームから消えてコンポーネントに配置するという点で立ち往生している場合、単純にデザイナを編集し、InitializeComponent()の適切な領域に次を追加して表示します。
this.Controls.Add(this.reportViewer1);
or
[ContainerControl].Controls.Add(this.reportViewer1);
また、コントロールを追加した後、場所とサイズを手動で調整する必要があります。
確かに良い答えではありませんが、あなたが行き詰まっていて、それを理解する時間があるまで今のところ仕事を終わらせたいだけなら、それは助けになるでしょう。
このリンクからVisual Studio用Microsoft Rdlc Report Designerをダウンロードします。 https://marketplace.visualstudio.com/items?itemName=ProBITools.MicrosoftRdlcReportDesignerforVisualStudio-18001
マイクロソフトは、手順を詳細に説明します。
次の手順は、上記の記事をまとめたものです。
新しいWebプロジェクトへのレポートビューアーコントロールの追加:
新しいASP.NET空のWebサイトを作成するか、既存のASP.NETプロジェクトを開きます。
NuGetパッケージマネージャーコンソールからレポートビューアーコントロールNuGetパッケージをインストールします。 Visual Studioから->ツール-> NuGetパッケージマネージャー->パッケージマネージャーコンソール
Install-Package Microsoft.ReportingServices.ReportViewerControl.WebForms
新しい.aspxページをプロジェクトに追加し、ページ内で使用するレポートビューアーコントロールアセンブリを登録します。
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
ScriptManagerControlをページに追加します。
レポートビューアーコントロールをページに追加します。以下のスニペットは、リモートレポートサーバーでホストされているレポートを参照するように更新できます。
<rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote">
<ServerReport ReportPath="" ReportServerUrl="" /></rsweb:ReportViewer>
最終ページは次のようになります。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Sample" %>
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
<!DOCTYPE html>
<html xmlns="https://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server"></asp:ScriptManager>
<rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote">
<ServerReport ReportServerUrl="https://AContosoDepartment/ReportServer" ReportPath="/LatestSales" />
</rsweb:ReportViewer>
</form>
</body>