0

特定のパラメーター セットのデータがない場合に、空のレポートをユーザーに配布したくないという共通の問題があります。

しかし、私はサブスクリプションを扱っていません。私は、Web サービス呼び出しを介してレポートを PDF として生成する小さなアプリを持っています。(さまざまな理由から、サブスクリプションはこの環境では機能しませんでした。) アプリは、生成しているレポートの詳細を認識していないため、事前にクエリを実行して、何らかの例外をスローすることはできません。データがないときに proc を実行すると、Web サービスの呼び出し元が混乱するだけです。

しかし、レポートを最初に XML として取得して検査できるようにし、返された XML がデータの存在を示している場合は PDF として取得できる可能性があることに気付きました。

私が見ているように、これの欠点は、データを含むレポートを 2 回生成することになり、累積的にコストがかかることです。私が考えていない他の欠点があるかもしれません。

PDF が空であるかどうかを確認するために、PDF に対してなんらかの検査を行うことができなかったのではないかと質問されるかもしれません。PDF にはページ ヘッダーとフッターがあり、私が取得した空のレポートは実際にはヘッダーとフッターを含む 1 ページのレポートであるということです。それらのデータを検査することは、困難で非常に骨の折れる作業です。

それで、誰かがこれを試しましたか?それはうまくいくでしょうか?

4

1 に答える 1

0

私はあなたの質問に答えることから始めます。私は個人的にこれを試していませんが、うまくいくと思います。Renderのドキュメントをざっと読むと、完全にはわかりませんが、XML と PDF の両方のレンダリングで同じキャッシュ データを使用するように見えるかもしれません。

または、この問題に関するレポートが複数ある場合は、レポートをメールで送信するためのはい/いいえチェックを別のメタ レポートに委任できる場合があります。メタ レポートには、次の 2 つの列を持つテーブルが含まれます。

  • レポート名
  • 郵送するべし

このレポートを一度 XML にレンダリングし、その結果に基づいて他のレポートを送信する (または送信しない) ことができます。COUNT(*)これは、他のレポートのデータがビューなどに含まれている場合に最適に機能するため、メタ レポートのそれらのビューで実行できます。

于 2012-08-19T10:18:53.200 に答える