0

この質問に対する答えをどこでも探していますが、良い答えが見つかりません。

人 (システムの中央エンティティ) を削除する機能を備えた .net アプリケーションがあります。ユーザーは、さまざまな方法で削除できる人物のセットをフィルター処理できます。その後、フィルター条件に一致する人物がグリッドに表示されます。ユーザーは、このグリッドで削除する個人を選択/選択解除できます。

この後、実際に個人を削除する前に、監査目的でこれらの個人のレポートを表示する必要があります。

したがって、レポートは person テーブルからデータを出力しますが、persons テーブルに存在する事前定義された人物のサブセットをレポートに渡す必要があります。これにより、レポートはデータの正しいサブセットを表示します。

ここで定義されている問題は単なる指標です。このタイプの最初のレポートが取り組まれていますが、事前に定義されたデータ サブセットを印刷できるシステム レポートがいくつあっても必要です。さらに、システムでは無制限のユーザーが許可されているため、複数のユーザーが同じデータを同時に報告する十分な範囲があるため、テーブルの行にフラグを設定して、どの行を選択する必要があるかを示すことは実行可能な解決策ではありません。

これまでに思いついた唯一の解決策は、SQL ステートメントを動的に生成して、WHERE 句で「 AND Person.ID IN (list)」を使用して出力されたデータを表し、その SQL ステートメントを一連の 8k チャンクとして保存することです。永続テーブル内のテキストの; そのテーブルの行の ID を URL 経由でレポートに渡し、レポートのデータ ソースを、渡された ID をパラメーターとして使用するストアド プロシージャにします。ストアド プロシージャは ID を使用して、必要な SQL を含むテーブル内の行を検索しますレポートのデータを生成し、多数の varchar(8000) 変数を使用して SQL を照合し、SQL を実行して、必要なデータをレポートに返します。

しかし、これはかなり厄介です...どうすればもっときれいにできますか?

4

1 に答える 1