Componente JobProgress — sgcHTML | eSeGeCe

JobProgress

TsgcHTMLComponent_JobProgress — renderiza una lista en vivo de barras de progreso de trabajos en segundo plano con insignias de estado, botones de cancelación y actualizaciones de fragmentos fuera de banda, en Delphi, C++ Builder y .NET.

TsgcHTMLComponent_JobProgress

Registra trabajos con AddJob, avánzalos con UpdateJob, y luego lee HTML para el renderizado inicial o envía una sola fila con GetJobFragmentHTML.

Clase del componente

TsgcHTMLComponent_JobProgress

Genera

Lista de barras de progreso de Bootstrap 5 + CSS encapsulado

Lenguajes

Delphi, C++ Builder, .NET

Añade un trabajo, actualízalo, envía el cambio

Llama a AddJob para registrar un trabajo, renderiza el HTML inicial, y luego en cada tick de progreso llama a UpdateJob y transmite GetJobFragmentHTML para actualizar solo esa fila.

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

Propiedades y métodos clave

Los miembros que más vas a usar.

AddJob

AddJob(aId, aName, aDescription) registra un trabajo y devuelve su TsgcHTMLJobItem (Id, Name, Description, Percent, Status, StatusText, StartedAt).

UpdateJob

UpdateJob(aId, aPercent, aStatus, aStatusText) actualiza un trabajo por id, limitando Percent entre 0 y 100.

Estado

TsgcHTMLJobStatus (jsQueued, jsRunning, jsCompleted, jsFailed, jsCancelled) controla el color de la insignia y de la barra de progreso, con rayas y animación mientras se ejecuta.

Fragmentos en vivo

GetJobFragmentHTML/GetJobAppendFragmentHTML devuelven fragmentos de intercambio fuera de banda para PushFragment/BroadcastFragment, de modo que un tick actualiza una sola fila en lugar de toda la página.

Visibilidad

ShowCompleted oculta los trabajos finalizados de la lista; AutoRemoveCompleted los elimina por completo de Jobs una vez completados.

Botón de cancelación

ShowCancelButton, CancelCaption y CancelAction controlan el formulario de cancelación por fila, enviado mediante el mismo mecanismo que Grid y Chat.

Sigue explorando

Ayuda en líneaReferencia completa de la API y guía de uso para este componente.
Todos los componentes de sgcHTMLExplora la matriz completa de más de 80 componentes.
Descargar prueba gratuitaLa prueba de 30 días incluye los proyectos de demostración 60.HTML.
PreciosLicencias Single, Team y Site con código fuente completo.

¿Listo para empezar?

Descarga la prueba gratuita y añade una lista de progreso de trabajos en segundo plano a tu aplicación web en Delphi, C++ Builder o .NET.