cFunNameNombre de la rutina de menú asociada al proceso.
Guía AdvPLFWGridProcess():New( cFunName, cTitle, cDescription, bProcess, [cPerg], [cGrid], [lSaveLog] )Crea una interfaz estándar para configurar, supervisar y ejecutar procesos AdvPL, incluso con distribución en múltiples hilos.
FWGridProcess organiza rutinas extensas en las áreas Información, Preguntas SX1, Log de Procesos y configuración de concurrencia. Un bloque principal controla el flujo y una función de grid opcional permite que CallExecute() distribuya unidades independientes entre los hilos.
FWGridProcess():New( cFunName, cTitle, cDescription, bProcess, [cPerg], [cGrid], [lSaveLog] )cFunNameNombre de la rutina de menú asociada al proceso.
cTitleTítulo mostrado en la interfaz.
cDescriptionDescripción de la página Información.
bProcessBloque principal; recibe por referencia el indicador de cancelación.
cPergGrupo de preguntas SX1 usado en la parametrización.
cGridFunción ejecutada para cada unidad del procesamiento en grid.
lSaveLogHabilita la persistencia de mensajes de SaveLog() en SXU.
New() retorna la instancia de FWGridProcess. IsFinished() indica si terminó la ejecución; CallExecute() retorna el resultado de control de la unidad enviada.
#Include "TOTVS.ch"
User Function ExGridProcess()
Local oProceso
oProceso := FWGridProcess():New( ;
"MATA330", "Procesamiento", ;
"Ejemplo de procesamiento en grid", ;
{|lCancelar| U_ExProcesa(oProceso, @lCancelar)}, ;
"MTA330", "U_ExUnidad" ;
)
oProceso:SetMeters(2)
oProceso:SetThreadGrid(5)
oProceso:Activate()
ReturnSe abre la interfaz estándar con información y controles de ejecución.
// MTA330 construye el área Preguntas.
oProceso := FWGridProcess():New( ;
"MATA330", cTitulo, cDescripcion, bProceso, ;
"MTA330", "U_ExUnidad" ;
)Los parámetros SX1 se muestran con controles adecuados a sus tipos.
User Function ExProcesa(oProceso, lCancelar)
Local nGrupo
Local nItem
oProceso:SetMaxMeter(4, 1, "Grupos")
For nGrupo := 1 To 4
oProceso:SetMaxMeter(10, 2, "Elementos")
For nItem := 1 To 10
If !oProceso:CallExecute("Unidad cargada", 1)
lCancelar := .T.
EndIf
oProceso:SetIncMeter(2)
If lCancelar
Exit
EndIf
Next nItem
If lCancelar
Exit
EndIf
oProceso:SetIncMeter(1)
Next nGrupo
ReturnCada medidor acompaña un nivel y CallExecute() envía unidades independientes a la función de grid.
oProceso:SaveLog("Inicio del grupo " + cValToChar(nGrupo))
ConOut(oProceso:GetLastLog())Los mensajes se consultan en Log de Procesos y pueden persistirse en SXU.
© 2026 Usina.BR. Todos os direitos reservados. TOTVS, Protheus, Microsiga e seus respectivos logotipos são marcas de titularidade da TOTVS S.A. AdvPL é uma linguagem de programação desenvolvida pela TOTVS. O AdvPL Guia é um projeto independente, sem vínculo, representação, patrocínio ou afiliação com a TOTVS S.A., suas franquias ou representantes.