Komponent JobProgress — sgcHTML | eSeGeCe

JobProgress

TsgcHTMLComponent_JobProgress — renderuje aktualizowaną na żywo listę pasków postępu zadań w tle z plakietkami statusu, przyciskami anulowania i aktualizacjami fragmentów poza pasmem, w Delphi, C++ Builder i .NET.

TsgcHTMLComponent_JobProgress

Zarejestruj zadania za pomocą AddJob, aktualizuj ich postęp za pomocą UpdateJob, a następnie odczytaj HTML dla wstępnego renderowania lub wypchnij pojedynczy wiersz za pomocą GetJobFragmentHTML.

Klasa komponentu

TsgcHTMLComponent_JobProgress

Renderuje

Lista pasków postępu Bootstrap 5 + dedykowany CSS

Języki

Delphi, C++ Builder, .NET

Dodaj zadanie, zaktualizuj je, wypchnij zmianę

Wywołaj AddJob, aby zarejestrować zadanie, wyrenderuj wstępny HTML, a następnie przy każdym kroku postępu wywołuj UpdateJob i rozgłaszaj GetJobFragmentHTML, aby odświeżyć tylko ten wiersz.

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

Kluczowe właściwości i metody

Składniki, po które sięgasz najczęściej.

Dodawanie zadania

AddJob(aId, aName, aDescription) rejestruje zadanie i zwraca jego TsgcHTMLJobItem (Id, Name, Description, Percent, Status, StatusText, StartedAt).

Aktualizacja zadania

UpdateJob(aId, aPercent, aStatus, aStatusText) aktualizuje zadanie po identyfikatorze, ograniczając Percent do zakresu 0–100.

Status

TsgcHTMLJobStatus (jsQueued, jsRunning, jsCompleted, jsFailed, jsCancelled) steruje kolorem plakietki i paska postępu, który podczas trwania zadania jest w paski i animowany.

Fragmenty na żywo

GetJobFragmentHTML/GetJobAppendFragmentHTML zwracają fragmenty podmiany poza pasmem dla PushFragment/BroadcastFragment, dzięki czemu każdy krok aktualizuje jeden wiersz zamiast całej strony.

Widoczność

ShowCompleted ukrywa zakończone zadania z listy; AutoRemoveCompleted usuwa je całkowicie z Jobs po zakończeniu.

Przycisk anulowania

ShowCancelButton, CancelCaption i CancelAction kontrolują formularz anulowania dla każdego wiersza, wysyłany tym samym mechanizmem co Grid i Chat.

Poznawaj dalej

Pomoc onlinePełna dokumentacja API i przewodnik użytkowania tego komponentu.
Wszystkie komponenty sgcHTMLPrzejrzyj pełną matrycę funkcji 80+ komponentów.
Pobierz bezpłatną wersję próbną30-dniowa wersja próbna zawiera projekty demonstracyjne 60.HTML.
CennikLicencje Single, Team i Site z pełnym kodem źródłowym.

Gotowy, aby zacząć?

Pobierz bezpłatną wersję próbną i zacznij budować interfejsy webowe w Delphi, C++ Builder i .NET.