JobProgress コンポーネント — sgcHTML | eSeGeCe

JobProgress

TsgcHTMLComponent_JobProgress — Delphi、C++ Builder、.NET で、ステータスバッジ、キャンセルボタン、帯域外フラグメント更新を備えた、バックグラウンドジョブの進捗バーのライブリストをレンダリングします。

TsgcHTMLComponent_JobProgress

AddJob でジョブを登録し、UpdateJob で進行させてから、初回レンダリングには HTML を読み取るか、GetJobFragmentHTML で 1 行だけをプッシュします。

コンポーネントクラス

TsgcHTMLComponent_JobProgress

レンダリング内容

Bootstrap 5 の進捗バーリスト + スコープ付き CSS

言語

Delphi, C++ Builder, .NET

ジョブを追加し、更新し、変更をプッシュする

AddJob を呼び出してジョブを登録し、初回の HTML をレンダリングします。その後、進捗が更新されるたびに UpdateJob を呼び出し、GetJobFragmentHTML をブロードキャストしてその行だけを更新します。

uses
  sgcHTML_Enums, sgcHTML_Component_JobProgress;

var
  oJobs: TsgcHTMLComponent_JobProgress;
begin
  oJobs := TsgcHTMLComponent_JobProgress.Create(nil);
  try
    oJobs.JobsID := 'exports';
    oJobs.Title := 'Background Exports';
    oJobs.ShowCompleted := False;

    oJobs.AddJob('exp-42', 'Export customers.csv', 'Generating CSV export');

    WebModule.Response := oJobs.HTML;   // card + progress rows + cancel-form script
  finally
    oJobs.Free;
  end;
end;

// On a later progress tick, push just that row over the WebSocket:
oJobs.UpdateJob('exp-42', 65, jsRunning);
Engine.BroadcastFragment(oJobs.GetJobFragmentHTML('exp-42'));
// includes: sgcHTML_Enums.hpp, sgcHTML_Component_JobProgress.hpp

TsgcHTMLComponent_JobProgress *oJobs = new TsgcHTMLComponent_JobProgress(NULL);
try
{
  oJobs->JobsID = "exports";
  oJobs->Title = "Background Exports";
  oJobs->ShowCompleted = false;

  oJobs->AddJob("exp-42", "Export customers.csv", "Generating CSV export");

  String html = oJobs->HTML;   // card + progress rows + cancel-form script
}
__finally
{
  delete oJobs;
}

// On a later progress tick, push just that row over the WebSocket:
oJobs->UpdateJob("exp-42", 65, jsRunning, "");
Engine->BroadcastFragment(oJobs->GetJobFragmentHTML("exp-42"));
using esegece.sgcWebSockets;

var jobs = new TsgcHTMLComponent_JobProgress();
jobs.JobsID = "exports";
jobs.Title = "Background Exports";
jobs.ShowCompleted = false;

jobs.AddJob("exp-42", "Export customers.csv", "Generating CSV export");

string html = jobs.HTML;   // card + progress rows + cancel-form script

// On a later progress tick, push just that row over the WebSocket:
jobs.UpdateJob("exp-42", 65, TsgcHTMLJobStatus.jsRunning, "");
engine.BroadcastFragment(jobs.GetJobFragmentHTML("exp-42"));

主なプロパティとメソッド

最もよく使うメンバーです。

AddJob

AddJob(aId, aName, aDescription) はジョブを登録し、その TsgcHTMLJobItemIdNameDescriptionPercentStatusStatusTextStartedAt)を返します。

UpdateJob

UpdateJob(aId, aPercent, aStatus, aStatusText) は id でジョブを更新し、Percent を 0–100 の範囲に収めます。

Status

TsgcHTMLJobStatusjsQueuedjsRunningjsCompletedjsFailedjsCancelled)が、バッジと進捗バーの色を決定し、実行中はストライプとアニメーションになります。

Live fragments

GetJobFragmentHTML/GetJobAppendFragmentHTML は、PushFragment/BroadcastFragment 用の帯域外スワップフラグメントを返すため、1 回のティックでページ全体ではなく 1 行だけが更新されます。

Visibility

ShowCompleted は完了したジョブをリストから隠し、AutoRemoveCompleted は完了後に Jobs から完全に削除します。

Cancel button

ShowCancelButtonCancelCaptionCancelAction は、Grid や Chat と同じ仕組みで送信される行ごとの Cancel フォームを制御します。

さらに詳しく

オンラインヘルプこのコンポーネントの完全な API リファレンスと使用ガイドです。
すべての sgcHTML コンポーネント80 以上のコンポーネントの全機能マトリックスを閲覧できます。
無料体験版のダウンロード30 日間の体験版には 60.HTML デモプロジェクトが付属します。
価格完全なソースコード付きの Single、Team、Site ライセンス。

始める準備はできましたか?

無料体験版をダウンロードして、Delphi、C++ Builder、.NET でバックグラウンドジョブの進捗表示を構築しましょう。