JobProgress-component — sgcHTML | eSeGeCe

JobProgress

TsgcHTMLComponent_JobProgress — render een live lijst van voortgangsbalken voor achtergrondtaken met statusbadges, annuleerknoppen en out-of-band fragmentupdates, in Delphi, C++ Builder en .NET.

TsgcHTMLComponent_JobProgress

Registreer taken met AddJob, laat ze vorderen met UpdateJob, en lees dan HTML voor de eerste weergave of push één rij met GetJobFragmentHTML.

Componentklasse

TsgcHTMLComponent_JobProgress

Rendert

Bootstrap 5 voortgangsbalklijst + scoped CSS

Talen

Delphi, C++ Builder, .NET

Voeg een taak toe, werk hem bij, push de wijziging

Roep AddJob aan om een taak te registreren, render de eerste HTML, en roep bij elke voortgangstick UpdateJob aan en broadcast GetJobFragmentHTML om alleen die rij te verversen.

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"));

Belangrijkste eigenschappen en methoden

De members die je het vaakst gebruikt.

AddJob

AddJob(aId, aName, aDescription) registreert een taak en retourneert het bijbehorende TsgcHTMLJobItem (Id, Name, Description, Percent, Status, StatusText, StartedAt).

UpdateJob

UpdateJob(aId, aPercent, aStatus, aStatusText) werkt een taak bij op id, waarbij Percent wordt begrensd tot 0–100.

Status

TsgcHTMLJobStatus (jsQueued, jsRunning, jsCompleted, jsFailed, jsCancelled) bepaalt de kleur van de badge en de voortgangsbalk, gestreept en geanimeerd tijdens het draaien.

Live fragmenten

GetJobFragmentHTML/GetJobAppendFragmentHTML retourneren out-of-band swap-fragmenten voor PushFragment/BroadcastFragment, zodat een tick één rij bijwerkt in plaats van de hele pagina.

Zichtbaarheid

ShowCompleted verbergt voltooide taken uit de lijst; AutoRemoveCompleted verwijdert ze volledig uit Jobs zodra ze voltooid zijn.

Annuleerknop

ShowCancelButton, CancelCaption en CancelAction sturen het annuleerformulier per rij, gepost via hetzelfde mechanisme als Grid en Chat.

Blijf ontdekken

Online helpVolledige API-referentie en gebruikshandleiding voor dit onderdeel.
Alle sgcHTML-componentenBlader door de volledige functiematrix van 80+ componenten.
Download gratis proefversieDe proefversie van 30 dagen bevat de 60.HTML-demoprojecten.
PrijzenSingle-, Team- en Site-licenties met volledige broncode.

Klaar om te beginnen?

Download de gratis proefversie en begin met het bouwen van live voortgangsindicatoren voor achtergrondtaken in Delphi, C++ Builder en .NET.