3

レポート サービスをローカル処理モードで使用しています。

レポート データを SQL データベースから取得したデータセットに設定しています。

レポートをレンダリングしようとすると、次の 2 つの警告が表示されます。

  1. データセット「PPA_Dev」には、フィールド「EMail」の定義が含まれています。このフィールドは、データ ソースから返された結果セットにありません。

  2. データセット「PPA_Dev」には、フィールド「EMail」の定義が含まれています。フィールドの読み取り中に、データエクステンションがエラーを返しました。位置 9 のフィールドにはデータがありません。

生成されたレポートに表示されているのは、メール列が空です。

なぜこれが起こっているのでしょうか?

アップデート

データセットを生成していた sql は正しい情報を返していました。

最後に、メモ帳で rdlc ファイルをいじり、レポート全体を壊し、コードを元に戻し、正しく動作するようになりました。なぜ壊れたのか、なぜ修正されたのか、まったくわかりません。とてもイライラします。

4

8 に答える 8

3

同様の問題がありました。私にとっては、RDLC は問題ないように見えました。最終的に、データセット パラメータがストアド プロシージャとは異なる順序でリストされていることに気付きました。SP に一致するようにデータセットでそれらを並べ替えたところ、すべて問題ありませんでした。このエラーが発生した場合は、これをチェック リストに追加します。

于 2014-08-05T00:42:45.997 に答える
3

データセット定義には、ソース クエリから返されない「Email」というフィールドが含まれているようですが、詳細情報がないと確認するのは困難です。

データセットの生成に使用された SQL を含めるように質問を修正していただけますか?

于 2009-07-15T07:17:55.163 に答える
2

SharePoint リストに対してレポートを作成するときに、この問題が発生しました。リスト内の列が空の場合、その列はクエリ応答で返されませんでした。問題の解決に役立つ古い投稿を www.msbicentral.comで見つけました。

レポート プロパティで、新しい関数定義をカスタム コード セクションに追加します。

Function NullAsEmpty(ByRef F As Field) As String
    If F.IsMissing Then
        Return ""
    Else
        If F.Value Is Nothing Then
            Return ""
        Else
            Return F.Value
        End If
    End If
End Function

実際のフィールドの代わりに使用できる変数を追加します。私の場合、reasonとして定義された変数を追加しました=Code.NullAsEmpty(Fields!Reason)。次に、レポートで元のフィールドの出現箇所を新しい変数に置き換えます。

于 2013-09-17T02:08:25.853 に答える
2

私もこの問題を抱えていました。Visual Studio Xml Editor で rdlc を確認したところ、問題のフィールド (上記の元の質問の EMail) が rdlc の「DataSets/DataSet/Fields」セクションで間違って指定されていることがわかりました。これらのフィールドを削除すると、問題が修正されました。

以前に Datasource オブジェクトを変更したことがありますが、変更されたフィールドで rdlc データセットが更新されていないようです。

于 2012-06-09T07:58:38.597 に答える
2

その正確なエラー メッセージが表示され、(上記の dkritz の投稿のおかげで) 気付いた場合、最終的な SQL 選択に含まれていないフィールドがデータセットに含まれていました。そのため、データセットからこれらのフィールドを削除すると出来上がりです。

ちょっとした歴史 - 元のデータセットはクエリ テキストを使用していました。そのデータセットを削除し、別のデータセットを作成しました (ds に同じ名前を使用)。この新しいものはストアド プロシージャを参照しており、一部のフィールドは元のものとは異なります。ds の名前が同じだったので、元の ds からフィールドを取得し、新しい ds と結合したと思います。エラーは、古い ds のフィールドを参照していました。

于 2015-09-08T18:06:53.273 に答える
1

テーブルを SSRS レポートに直接バインドすると、正常に機能します。しかし、そのレポートのストアド プロシージャで同じテーブルを使用すると、スローされました

[rsMissingFieldInDataSet] The dataset ‘DataSet1’ contains a definition for the Field ‘Currency’. This field is missing from the returned result set from the data source.   

追加する

SET ARITHABORT ON;

SPの冒頭でこの問題を修正しました。

環境: Visual Studio 2008、SQL Server 2008

于 2017-05-12T04:40:54.677 に答える
0

同様の問題がありましたが、SSAS ソースの場合です。null列としてフィルタリングされたフィールドがあったため、実行出力には表示されませんでしたが、このフィールドはFieldsリストにありました。フィールドの順序も、ソース クエリのフィールドと比較して混在していました。

私がしたことは、他の人のヒントを組み合わせたものでした:

  • null 値を持つこのフィールドを削除します
  • フィールドの順序をソース クエリと同じに変更します
  • RESTART Visual Studio - 上記の手順を実行してもエラーがまだ表示されていたためです。VS を再起動すると、警告が魔法のように消えました。
于 2020-09-02T11:41:40.933 に答える