Componente JobProgress — sgcHTML | eSeGeCe

JobProgress

TsgcHTMLComponent_JobProgress — renderize uma lista ao vivo de barras de progresso de jobs em segundo plano, com badges de status, botões de cancelamento e atualizações de fragmento fora de banda, em Delphi, C++ Builder e .NET.

TsgcHTMLComponent_JobProgress

Registre jobs com AddJob, avance-os com UpdateJob, e então leia HTML para a renderização inicial ou envie uma única linha com GetJobFragmentHTML.

Classe do componente

TsgcHTMLComponent_JobProgress

Renderiza

Lista de barras de progresso do Bootstrap 5 + CSS com escopo

Linguagens

Delphi, C++ Builder, .NET

Adicione um job, atualize-o, envie a alteração

Chame AddJob para registrar um job, renderize o HTML inicial, e então, a cada avanço de progresso, chame UpdateJob e transmita GetJobFragmentHTML para atualizar apenas aquela linha.

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

Principais propriedades & métodos

Os membros que você usa com mais frequência.

AddJob

AddJob(aId, aName, aDescription) registra um job e retorna seu TsgcHTMLJobItem (Id, Name, Description, Percent, Status, StatusText, StartedAt).

UpdateJob

UpdateJob(aId, aPercent, aStatus, aStatusText) atualiza um job pelo id, limitando Percent entre 0 e 100.

Status

TsgcHTMLJobStatus (jsQueued, jsRunning, jsCompleted, jsFailed, jsCancelled) controla a cor do badge e da barra de progresso, listrada e animada enquanto está em execução.

Fragmentos ao vivo

GetJobFragmentHTML/GetJobAppendFragmentHTML retornam fragmentos de substituição fora de banda para PushFragment/BroadcastFragment, de modo que um avanço atualiza uma linha em vez da página inteira.

Visibilidade

ShowCompleted oculta os jobs concluídos da lista; AutoRemoveCompleted os remove completamente de Jobs assim que concluídos.

Botão Cancelar

ShowCancelButton, CancelCaption e CancelAction controlam o formulário de Cancelar por linha, enviado pelo mesmo mecanismo usado pelo Grid e pelo Chat.

Continue explorando

Ajuda onlineReferência completa da API e guia de uso para este componente.
Todos os Componentes sgcHTMLExplore a matriz completa de recursos com mais de 80 componentes.
Baixar Versão de Avaliação GratuitaA avaliação de 30 dias inclui os projetos de demonstração 60.HTML.
PreçosLicenças Single, Team e Site com código-fonte completo.

Pronto para Começar?

Baixe a versão de avaliação gratuita e comece a construir UIs web em Delphi, C++ Builder e .NET.