15

SQL Server 2005 SSRSレポートを作成しましたが、データがプレビューペインに表示されていません。

データセットは、Stringパラメーターに対してストアドプロシージャから正しく入力されます。データペインで実行できます。プレビューペインでレポートを実行すると、正しい行数が表示されますが、セルの内容にはデータが含まれていません

欠測データ

ソースデータセットは、一時テーブルの内容を返すSQLServer2005のStringパラメーターが渡されたストアドプロシージャに基づいています。次に、データセットはフィールドをローカルにマップします。データビューでこれを正しく実行できます。

ストアドプロシージャ

ALTER PROCEDURE spWebReportStage25BuildReview
    @BuildNumber as nvarchar(50)

一時テーブルスキーマ

CREATE TABLE #tmpModelZones
(
    BuildID bigint NOT NULL,
    BuildNo nvarchar(50) NOT NULL,
    ModelID int NOT NULL,
    ModelName nvarchar(50) NOT NULL,
    ZoneID int NOT NULL,
    ZoneName nvarchar(50) NOT NULL,
    SortOrder int NOT NULL,
    Created bit DEFAULT 0 NOT NULL,
    Closed bit DEFAULT 0 NOT NULL,
    PRIMARY KEY (BuildID, ZoneID)
)

SSRSデータセット

ここに画像の説明を入力してください

SSRSデータセットマッピング

ここに画像の説明を入力してください

SSRSデータセットパラメータ ここに画像の説明を入力してください

パラメータを使用してデータセットを実行する

ここに画像の説明を入力してください

表示されたテーブルには、追加のグループ化、フィルター、または集計はありません。それは単に平らなテーブルです

4

6 に答える 6

11

これまで見たことがない。ただし、SSRSは時々少し「オフ」になる可能性があるため、ここに試すべきことのリストがあります。これらのほとんどは「オフにしてからもう一度オンにしてみましたか?」というタイプのものだと思います。

  • .dataレポートに関連付けられているファイルを削除します。
  • レポートを複製/バックアップし、データセットを新しい基本的なタブリックスに追加して、データが表示されるかどうかを確認します。
  • 非表示のプロパティを確認してください。(なんらかの愚かな理由で)それは(他の正気の製品のように) Visible Y / Nフィールドではなく、Hidden Y/Nフィールドであることを忘れないでください。
  • フォントの色やサイズなどを再確認してください。
  • (プレビューではなく)レポートサーバーでレポートを実行して、それが機能するかどうかを確認します。
  • いくつかの一時的なテキストボックスを使用して、パラメータの実際の値を表示し、データセットをテスト実行したときとまったく同じであるかどうかを確認します。
  • tablixで予期しないフィルター、非表示のプロパティ、式などがないか、コードビハインド(rdlのxml)を確認してください。RDLを完全に「読み取る」ことができない場合でも、構文を強調表示することで、RDLをざっと読み、これに関する多くの情報を抽出できるはずです。
  • ExecutionLog2およびその他のログ情報をチェックして、レポートの実行で返される行数を確認します。

さらに、質問を更新/編集して、さらに情報を追加すると役立ちます。

  • tablixにはどのようなグループがありますか?
  • tablix、行グループ、および列グループのフィルターは何ですか?
  • データセットの一般的な構造とその結果は何ですか?
  • パラメータはどのように構造化され、使用されていますか?
于 2012-07-06T09:45:40.470 に答える
8

一時テーブルを使用する場合、SSRSはメタデータの取得に失敗します。したがって、SSRSに列名を通知する方法は基本的に2つあります。

  1. 追加しSET FMTONLY ONます。これによりメタデータが取得されますが、データは表示されません。

  2. [データ]タブに移動し、[汎用クエリデザイナ]をクリックして、[フィールドの更新]をクリックします。これにより、パラメータ値を指定するためのダイアログボックスが表示されます。クエリデザイナでクエリを実行すると、SSRSはストアドプロシージャからスキーマとデータを取得します。これで、データがプレビューペインで利用できるようになります。

于 2012-07-06T11:05:41.603 に答える
6

私も同様の問題を抱えていました。私の場合、それはパラメータなどがなくても発生しました。想像できる最も単純なレポートです。単一のフィールドを持つテーブルが含まれ、フィルターは使用されませんでした。なんとかデータを表示できましたが、セルに収まらないために行の高さを強制的に増加させた行のみが表示されました。

この問題に対する私の修正:フォントまたはフォントサイズを標準(サイズ10、Segoe UI)から変更します。その後、すべてのデータが表示されていました。これをSegoeUIに戻すと、データが再び表示されなくなります。

于 2017-05-04T08:54:08.727 に答える
3

私も同じ問題を抱えていました。これが私が見つけたものです。これが私のコードです:

    DECLARE @tblPigProblems TABLE (
    Id          INT IDENTITY, 
    PPId            INT, 
    GaugeColor      VARCHAR(25), 
    FullStartTime       VARCHAR(25), 
    PigSystem         VARCHAR(25)
    )

    IF (1 = 0)
    BEGIN
        SELECT * FROM @tblPigProblems
    END

    ...

    SELECT '@tblPigProblems'    [PigProblems],  
    @p_vchLine      [Line],         
    GaugeColor      [Product],
    FullStartTime       [Start Time],
    PigSystem       [Pig System]
FROM @tblPigProblems

私がしたことは、最初の「SELECT * FROM @tblPigProblems」を使用して、データセットを返す最後のselectステートメントの前にコードでエラーメッセージが指定された場合、SSRSがストアドプロシージャからフィールドを判別できるようにすることでした。次に、結果が決定されたときに、フィールドにエイリアスを割り当てました。問題は、フィールドのエイリアスが宣言されたフィールド名と一致しなかったことです(つまり、宣言されたフィールド「GaugeColor」が、結果セットを作成するために選択で指定したエイリアス「[Product]」と一致しませんでした。これは、SSRSレポートの[データ]セクションのフィールドを更新してからデータセットフィールドを表示すると、テーブル宣言のフィールド名(つまり、「GaugeColor」)がリストされていることに気付きました。データセット内でストアドプロシージャを実行したとき(!をクリック)、SSRSにリストされた結果セットにフィールドエイリアス(つまり、「Product」)が表示されました。これらが一致しなかったため、フィールドを割り当てたテキストボックスには何も表示されませんでした(つまり、 "= Fields!ColorGauge.Value")。SSRSはこの不一致を検出せず、レポートの作成を許可しましたが、値は表示されませんでした。修正は簡単でした。置き換えてください。

    IF (1 = 0)
    BEGIN
        SELECT * FROM @tblPigProblems
    END

と:

    IF (1 = 0)
    BEGIN
        SELECT '@tblPigProblems'    [PigProblems],  
        @p_vchLine      [Line],         
        GaugeColor      [Product],
        FullStartTime   [Start Time],
        PigSystem       [Pig System]
    FROM @tblPigProblems
    END

ダン

于 2013-10-16T18:21:29.160 に答える
2

作業レポートでデータの表示が停止する場合がありました。同じデータセットにリンクされた、書式設定のない別のテーブルを追加しました-SSRSによってパラメーターが渡されたときに、クエリがデータを返さないことを確認しました。調査した後、「アンカー日付」値のテストパラメーターがYYYY-MM-DDとしてフォーマットされていることに気付き、更新されたクエリで、日付パラメーターの文字の順序について推測していました(YYYYに切り捨てるため) -1つの結合のMM)。

SSRSが別の形式で日付を渡しているのではないかと疑っていました(MM / DD / YYは、日付のデフォルトの現在の文化的設定です)。そのため、その予感を持って実行し、渡された任意の日付形式で動作するようにSQLロジックを変更しました。-例:left(convert(date、@anchorDate、20)、7)

これで私の問題が修正されました-私がテストしたフォーマットの仮定(開発中にクエリをテストするためのハードコードされた値)は悪い仮定でした。SSRSはローカル形式でもデータを渡すことができるため、この種の仮定に注意してください。

于 2016-05-31T22:40:02.547 に答える
0

同じ問題が発生し、tablixの優先順位を確認しようとしました。CANGROW値をに変更して問題を解決しましたFALSE

于 2020-10-16T21:54:32.970 に答える