0

これで行くべき最善のルートは何かについての方向性を探しています。いくつかの推奨される設計パターンから外れて、何度か投稿しました。私が達成しようとしていることに基づいて、私は本当に良い方向性を受け取っていません. 私は非同期処理を初めて使用するので、正しい方向へのいくつかの指針をいただければ幸いです。これまでのところ、以前の投稿の 1 つで、コード サンプルを要求したため、無知であると言われました。私はすべてを読んでおり、インターネットで見つけられるすべてを試していることを理解してください. 言うまでもなく、これにはさまざまな方向性がありますが、どれが最適かはわかりません。

私がやろうとしていることを大まかに説明します。誰かが私を正しい方向に向けて助けてくれれば幸いです。また、誰かが私にいくつかのコード サンプルを教えてくれるなら、私はそれが大好きです。資料を読むことは気にしませんが、内容に沿ったコードを見ることができれば、より理にかなっています。私が見つけたドキュメントのほとんどには、コード サンプルまたは部分的なコード サンプルが含まれており、特定のニーズに合わせて機能することがわかったものを使用するために最善を尽くしてきました。これまでのところ、あまり運がありません。ASYNC処理に関しては、私は無知だと思います。:)

とにかく、これが私が達成しようとしていることです。私が投稿しているものが時代遅れであるか、時代遅れであるかについての議論を避けるために、使用を検討する可能性のある特定のテクノロジーを除外しています. 私は正しい方向へのポイントを探しており、現時点では何に対してもオープンです。これを機能させる必要があります。

これが私がする必要があることの基本です

  1. 私が使用している ASP.Net Web サイト「プロジェクト」があります。
  2. Active Reports 7 を使用してレポートを印刷するための画面があります。
  3. 私の仕事は、ユーザーが「印刷/プレビュー」ボタンをクリックしてレポート処理を開始できるようにすることです。
  4. レポートの実行中に、ユーザーが [キャンセル] ボタンをクリックして処理を終了し、レポート画面に戻ることができるようにする必要があります。(そのため、ユーザーがキャンセル ボタンをクリックできるように、レポートの処理中に UI が応答する必要があります。)
  5. レポートの処理中に、レポートが実行中であることを示すポップアップ メッセージを表示する必要があります。
  6. レポートの処理が終了したら、このポップアップ メッセージを非表示にして、レポートが完了したことをユーザーに示す必要があります。次に、ユーザーが表示するレポートを開く必要があります。現在、これは新しいウィンドウを開いてレポート ビューアを呼び出すレポート処理コード中に準備する JavaScript 関数です。(そのため、レポートが完了したら、javascript 関数を呼び出す機能が必要です。)

誰かが親切に私を正しい方向に向けることができれば、私はとても感謝しています. 脚の仕事をしたり、山のようなドキュメントを読んだりすることは気にしません。私が見ているものを知ることができれば、上記の機能が提供されます。前に言ったように、無知であろうと無知であろうと、動作するサンプル コードを取得できれば (誰かにコードを書いてもらうのではなく、ステップ実行して何が起こっているのかを理解するのに役立つコードだけを) 入手できれば、非常に役立ちます。

お時間をいただき、ご検討いただきありがとうございます。

4

1 に答える 1

1

UIが応答して進行状況を表示するとともに、サーバー側で何らかの操作を実行する必要があるためです。イベントの進行状況を表示します。Signalr.Netの使用をお勧めします。

http://signalr.net/

http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

これはリアルタイムのWebAPIであり、これを使用して、「ProcessReport」や「cancelProcessing」などの関数を持つハブを作成できます。ボタンをクリックするだけで接続が開いているときにjavascriptからこれを呼び出し、キャンセルボタンで進行状況のポップアップを表示できます。jsのハブに登録されているクライアントイベントに「updatestatus」と表示させます。これは、サーバーから呼び出してポップアップを閉じ、操作が終了したら最終的にSignaler接続を閉じることができます。同様に、ポップアップのキャンセルクリックで、ハブ関数cancelProcessingを再度呼び出してキャンセルを実行し、updateStatusを使用してコールバックできます。

お役に立てれば。

于 2013-03-17T06:39:40.070 に答える