10

ローカルの SQL Server Reporting Services レポート (ファイル) を作成し、このレポートをコードで生成したデータ セットに接続しようとしてい.rdlcます (直接の SQL Server 接続ではありません)。

ReportDataProviderさまざまな条件セットを返すいくつかのインスタンス メソッドを含むクラスを作成しますIList<T>が、これらのデータ提供メソッドを Visual Studio 2013 内の Reporting Services デザイナーに表示する方法が見つからないようです。

エクスプローラー ウィンドウでノードをクリックしAdd DataSetた後に表示されるダイアログを見ると、大量のクラスが一覧表示されていますが、データ プロバイダー クラスは表示されていません。DatasetsReport Data

ここに画像の説明を入力

可能なデータ ソースのドロップダウン リストに表示されるようにするために、特に注意する必要があることはありますか (クラスを作成しstaticますか?何らかの属性で装飾しますか?)。いろいろ試してみましたが、これを正しく機能させる方法が見つかりませんでした...

4

3 に答える 3

3

私はいくつかの調査を行い、クラスを追加するさまざまな方法を試しています。残念ながら、このデザイナで静的クラスが表示されないことがあります。さまざまな方法を試しましたが、うまくいきませんでした。

Interfaces非静的クラスの場合、このマニュアルはlikeであっても毎回機能しますIListが、ここでは表していません。

  1. .rdlc ファイルを含むプロジェクトで使用可能なデータ レポート クラスの名前空間を確認してください。参照を追加する必要がある可能性があります。
  2. データ レポート クラスを記述し、ソリューションを再構築します。
  3. VS で .rdlc ファイルを閉じて再度開きます。

VS 2013 Ultimate Update 2 を使用しています。

これは私のクラスです:

using System.Collections.Generic;

namespace YourReportNamespace
{
    public class ReportClass
    {
        public List<string> TestReportData()
        {
            return new List<string>();
        }
        public static List<string> StaticTestReportData()
        {
            return new List<string>();
        }
    }


    public class ReportWithFieldsClass 
    {
        private List<string> Data = new List<string>();

        public List<string> TestReportData()
        {
            return Data;
        }

        public List<string> TestReportData2()
        {
            return Data;
        }

        public static List<string> StaticTestReportData()
        {
            return new List<string>();
        }
    }

    public static class ReportWithFieldsStaticClass //This class will not appear
    {
        private static List<string> Data = new List<string>();

        public static List<string> StaticTestReportDataFromField()
        {
            return Data;
        }
        public static List<string> StaticTestReportData()
        {
            return new List<string>();
        }
    }
}

これは、マニュアルを通過した後にデザイナーで取得したものです。

ここに画像の説明を入力

于 2014-12-06T11:48:38.163 に答える
0

私は同じ問題を抱えていて、見逃しやすい別のケースを発見しました。私の場合、リストを返すメソッドを含むクラスには、必要なパラメーターを持つ単一のコンストラクターがあり、DataSource ドロップダウンに表示されませんでした。クラスにパラメーターなしのコンストラクターを追加して再構築すると、表示されるようになりました。

これは、RDLC UI が適格なメソッドを分析する方法に関係している可能性があり、おそらくプロセスでクラスをインスタンス化しようとします。

于 2018-11-07T10:21:28.340 に答える
0

同様の問題がありました。エラーなしでビルドを取得できた場合、名前空間がデータ ソースから選択されているように見えます。

于 2015-06-26T10:55:14.163 に答える