Versão atual:

Função FINAL() gera error.log

Oi, pessoal!

Precisei criar uma janela apartada do smartclient logado, ou seja, a tela é acionada a partir do login do smartclient e exibe uma serie informações para o usuário e fica em atualização o tempo todo, por isso precisa ficar aberta permitindo que o usuário continue trabalhando no módulo que estiver.

Essa tela possui o botão "fechar" que estou tentando utilizar a função padrão FINAL(). Como ela é um SmartClient, preciso que ela seja encerrada da forma correta, contudo, o sistema gera um error.log.

7.00.210324P-20230228 THREAD ERROR ([21740], Francisco, DESKTOP-HJ554EQ) 30/03/2023 23:49:30 Saída no final: Encerramento normal on FINAL(MSFINAL.PRW) 01/03/2023 10:31:37 line : 244

//Executo a chamada da tela dentro de um client abrindo outro client
local c_Program     := "c:\TOTVS\P12\12.1.2210\bin\smartclient\smartclient.exe" as character 
local c_Parametros  := " -M -Q -P=u_tstTdialog -E=P12LGFSW" as character
local c_Ret as character    //Nome do menu que será utilizado pelo sistema.

ShellExecute ("open",c_Program,c_Parametros,"",SW_SHOWMAXIMIZED)

//Codigo com as acoes dos botoes
oBtn1Exc       := TButton():New( 188,002,"Marcar Todos",o_Dlg,{|| f_MarcaTodos("1") },050,012,,,,.T.,,"",,,,.F. )
    oBtn2Exc      := TButton():New( 188,054,"Desmarcar Todos",o_Dlg,{|| f_MarcaTodos("2") },050,012,,,,.T.,,"",,,,.F. )
    oBtn3Exc       := TButton():New( 188,116,"Cancelar",o_Dlg,{|| n_Opc:=1, o_Dlg:End() },050,012,,,,.T.,,"",,,,.F. )
    oBtn4Exc    := TButton():New( 188,178,"Aprovar",o_Dlg,{|| n_Opc:=2, o_Dlg:End() },050,012,,,,.T.,,"",,,,.F. )
    oBtn4Exc    := TButton():New( 188,230,"Rejeitar",o_Dlg,{|| n_Opc:=3, o_Dlg:End() },050,012,,,,.T.,,"",,,,.F. )

oTimer := TTimer():New(n_Tempo, {|| f_SelecionaOrcamentos(), oBrw1:oBrowse:Refresh() }, o_Dlg )
oTimer:Activate()

o_Dlg:Activate(,,,.T.)

if n_Opc == 1
    //Cancelado
elseif n_Opc == 2
    //Aprovado
else
    //Rejeitado
endif

RESET ENVIRONMENT
BEGIN SEQUENCE
   Final("Encerramento normal")    //Utilizada para finalizar o sistema, essa função executa operações básicas que garantem a integridade dos dados ao finalizar o sistema, desmontando as transações, desbloqueando os semáforos e fechando as tabelas abertas.
END SEQUENCE

Versões (2):

Ver a versão formatada

Utilizando a função FINAL()

Comentário

new question