web-dev-qa-db-ja.com

Visual Studio 2017 RCにReportviewerツールがありません

Visual Studio 2017 RCという名前の新しいバージョンのVisual Studioでレポートソフトウェアを書き始めましたが、WindowsフォームとWPFアプリケーションテンプレートの両方からコアレポートビューツールが欠落していることに気付きました。 reportviewerツールがVisual Studio 2017から消えた理由を教えてください。それなしで本当に困っています。新しいビジュアルスタジオでこのツールを使用する代替手段はありますか?

34
Omar Sharif

**更新**:2019年8月18日

最新バージョンを削除して150.900.148.0にロールバックすると、VS2017およびVS2019で使用している複数のコンピューターで動作するようです。

Nugetソリューションパッケージマネージャーで150.900.148にロールバックできます。以前のバージョンと同様に機能します。ドロップダウンボックスを使用して、古いバージョンを選択します。

enter image description here

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コントロールのデザインタイム機能を復元する

追加の手順:

  • レポートビューアーをWinFormに追加した後
  • パネルコントロールをWinFormに追加します。
  • フォームのform.designer.csファイルで、Reportviewerコントロールをパネルに追加します。

      // 
      // panel1
      // 
      this.panel1.Controls.Add(this.reportViewer1);
    
  • フォームのデザイナーに戻ると、パネルにreportViewerが表示されるはずです。

  • [プロパティ]パネルで、コントロールリストのドロップダウンリストからReportViewerを選択します
  • ReportViewerのDockプロパティをFillに設定します

これで、実際にパネルと対話して、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を再起動しないとエラーが発生します。

  • ソリューションを開きます。
  • NuGet Package Managerコンソールを開きます(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.*参照を削除し、保存して再起動します。

61
Rich Shealer

私にとっては、次の3つのステップで機能しました。

  1. Visual Studioを最新のビルドに更新します。
  2. Report/Report WizardAdd/New Item menu by:
    • Visual Studioメニューに移動ツール/拡張機能と更新
    • 左パネルからOnlineを選択します。
    • Microsoft Rdlc Report Designer for Visual Studioを検索します
    • ダウンロードしてインストールします。
  3. レポートビューアーコントロールの追加:

    • NuGet Package Managerに移動します。

    • インストールMicrosoft.ReportingServices.ReportViewerControl.Winforms

    • このフォルダーに移動します:%USERPROFILE%.nuget\packages\Microsoft.reportingservices.reportviewercontrol.winforms\140.1000.523\lib\net40
    • Microsoft.ReportViewer.WinForms.dllファイルをドラッグし、Visual StudioにドロップしますToolboxウィンドウ。

WebFormsアプリケーションの場合:

  1. 同じ。
  2. 同じ。
  3. レポートビューアーコントロールの追加:

    • NuGet Package Managerに移動します。

    • インストールMicrosoft.ReportingServices.ReportViewerControl.WebForms

    • このフォルダーに移動します:%USERPROFILE%.nuget\packages\Microsoft.reportingservices.reportviewercontrol.webforms\140.1000.523\lib\net40
    • Microsoft.ReportViewer.WebForms.dllファイルをドラッグし、Visual StudioにドロップしますToolboxウィンドウ。

それで全部です!

7
Jack J

上記の@Rich Shealerで説明したレポートサービスを追加するこの手順は、別のプロジェクトを開始するたびに繰り返されることに注意してください。それを避けるために:

  1. 別のコンピューターをセットアップする必要がある場合(インターネットのない自宅など)、市場からダウンロードしたインストーラーを安全な場所に保管してください。

    • Microsoft.DataTools.ReportingServices.vsix、および
    • Microsoft.RdlcDesigner.vsix
  2. レポートサービスを使用して作成したアプリケーションのパッケージまたはbinフォルダーから次のライブラリを取得します。

    • Microsoft.ReportViewer.Common.dll
    • Microsoft.ReportViewer.DataVisualization.dll
    • Microsoft.ReportViewer.Design.dll
    • Microsoft.ReportViewer.ProcessingObjectModel.dll
    • Microsoft.ReportViewer.WinForms.dll
  3. 上記1から2つのコンポーネントをインストールします

  4. 上記の2つのDLLを参照として追加します(プロジェクト>参照>追加...)
  5. (オプション)[レポート]タブをツールバーに追加します
  6. [レポート]タブにアイテムを追加する
  7. Binフォルダーまたは上記のdllがある場所を参照して追加します

これで準備完了です! ReportViewerアイコンがツールバーに追加され、プロジェクトに新しいアイテム...(レポート)を追加するときに、テンプレートの共通リストに追加されたReportおよびReportWizardテンプレートも見つけることができます。

注意:Nugetパッケージマネージャーを使用してセットアップすると、ReportおよびReportWizardテンプレートはReportingの下にグループ化されます。ただし、上記の方法を使用しても、インストールされたテンプレートにレポートグループは追加されませんが、インターネットを使用せずに、また毎回Nugetから既に持っているものをダウンロードせずにrdlcをすばやく統合できるので、問題になるとは思いません!

3

あなたが私のようで、これらのメソッドをいくつか試して、ツールボックスにコントロールがあり、フォームに描画できるが、フォームから消えてコンポーネントに配置するという点で立ち往生している場合、単純にデザイナを編集し、InitializeComponent()の適切な領域に次を追加して表示します。

this.Controls.Add(this.reportViewer1);

or

[ContainerControl].Controls.Add(this.reportViewer1);

また、コントロールを追加した後、場所とサイズを手動で調整する必要があります。

確かに良い答えではありませんが、あなたが行き詰まっていて、それを理解する時間があるまで今のところ仕事を終わらせたいだけなら、それは助けになるでしょう。

0
Daniel P

このリンクからVisual Studio用Microsoft Rdlc Report Designerをダウンロードします。 https://marketplace.visualstudio.com/items?itemName=ProBITools.MicrosoftRdlcReportDesignerforVisualStudio-18001

マイクロソフトは、手順を詳細に説明します。

https://docs.Microsoft.com/en-us/sql/reporting-services/application-integration/integrating-reporting-services-using-reportviewer-controls-get-started?view=sql-server- 2017

次の手順は、上記の記事をまとめたものです。

新しいWebプロジェクトへのレポートビューアーコントロールの追加:

  1. 新しいASP.NET空のWebサイトを作成するか、既存のASP.NETプロジェクトを開きます。

  2. NuGetパッケージマネージャーコンソールからレポートビューアーコントロールNuGetパッケージをインストールします。 Visual Studioから->ツール-> NuGetパッケージマネージャー->パッケージマネージャーコンソール

    Install-Package Microsoft.ReportingServices.ReportViewerControl.WebForms
    
  3. 新しい.aspxページをプロジェクトに追加し、ページ内で使用するレポートビューアーコントロールアセンブリを登録します。

    <%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
    
  4. ScriptManagerControlをページに追加します。

  5. レポートビューアーコントロールをページに追加します。以下のスニペットは、リモートレポートサーバーでホストされているレポートを参照するように更新できます。

     <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>
0
Mohammed Osman