Segue um exemplo de como fazer barra de progresso, para ilustrar processos mais longos. Para isto, use as funções Processa , Procregua e Incproc . O exemplo abaixo, funciona. É só testar: # include "rwmake.ch" user function fFuncao1() cRBSFQSQL := changequery( "SELECT COUNT(A1_COD) AS NREGISTRO FROM SA1010 WHERE A1_NOME LIKE 'A%'" ) dbusearea(.t., 'TOPCONN' , tcgenqry(,,cRBSFQSQL), 'TMPSA1' , .f., .t.) if .not. TMPSA1->( eof ()) processa ( {|| u_fFuncao2( TMPSA1->NREGISTRO ) }, "Titulo" , "Processando aguarde..." , .f.) endif dbclosearea( "TMPSA1" ) return nil user function fFuncao2(nRegistros) local cRegistros := "" procregua (nRegistros) cRBSFQSQL := changequery( "SELECT A1_COD, A1_NOME FROM SA1010 WHERE A1_NOME LIKE 'A%'" ) dbusearea(.t., 'TOPCONN' , tcgenqry(,,cRBSFQSQL), 'TMPSA2' , .f., .t.)...
Dicas para quem programa no Protheus