JobProgress
TsgcHTMLComponent_JobProgress — 渲染一个实时的后台任务进度条列表,带有状态徽章、取消按钮和带外片段更新,适用于 Delphi、C++ Builder 和 .NET。
TsgcHTMLComponent_JobProgress — 渲染一个实时的后台任务进度条列表,带有状态徽章、取消按钮和带外片段更新,适用于 Delphi、C++ Builder 和 .NET。
用 AddJob 注册任务,用 UpdateJob 推进它们,然后读取 HTML 完成初始渲染,或用 GetJobFragmentHTML 推送单行更新。
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(aId, aName, aDescription) 注册一个任务并返回其 TsgcHTMLJobItem(Id、Name、Description、Percent、Status、StatusText、StartedAt)。
UpdateJob(aId, aPercent, aStatus, aStatusText) 按 id 更新一个任务,并将 Percent 限制在 0–100 之间。
TsgcHTMLJobStatus(jsQueued、jsRunning、jsCompleted、jsFailed、jsCancelled)驱动徽章和进度条的颜色,运行时呈条纹动画。
GetJobFragmentHTML/GetJobAppendFragmentHTML 为 PushFragment/BroadcastFragment 返回带外交换片段,使一次更新只刷新一行,而非整页。
ShowCompleted 从列表中隐藏已完成的任务;AutoRemoveCompleted 会在任务完成后将其从 Jobs 中彻底移除。
ShowCancelButton、CancelCaption 和 CancelAction 控制每行的取消表单,通过与 Grid 和 Chat 相同的机制回传。