Como usar a função ShowLog

Você já precisou exibir mensagens de teste durante um programa? Conheça a função ShowLog.
Já vi alguns usuários testando exibindo mensagens durante o desenvolvimento de alguma rotina, ou até mesmo de alguma query.

No artigo de hoje, vou mostrar uma dica, de como exibir com a função ShowLog, e somente se for um administrador.

Então por exemplo, supondo que eu tenha uma query e use a função, o resultado seria similar a abaixo:

Exemplo da ShowLog

Abaixo o trecho desenvolvido:

//...
  
//Montagem da Query
cQuery := " SELECT * FROM " + RetSQLName("SBM") + " SBM WHERE BM_FILIAL = '" + FWxFilial("SBM") + "' AND SBM.D_E_L_E_T_ = ' '"
  
//Se o usuário estiver no grupo de administradores, mostra a query SQL
If FWIsAdmin()
    ShowLog(cQuery)
EndIf
  
//...

Update Dezembro de 2022:

Pensando em facilitar, criamos uma função chamada zViewQry, onde basta você aciona-la logo após criar sua variável, por exemplo, u_zViewQry(cQuery), que ela já aciona o ShowLog e já faz os testes necessários se o usuário é administrador. Abaixo o código fonte completo:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zViewQry
Função para visualizar a query caso o usuário seja administrador
@type  Function
@author Atilio
@since 10/10/2022
@param cQuery, Caractere, Consulta SQL que poderá ser exibida
/*/

User Function zViewQry(cQuery)
    Default cQuery := ""

    //Somente se
    // #1 - Não estiver em execução automática
    // #2 - A variável da query tiver dados
    // #3 - For usuário Administrador
    // #4 - For confirmado a pergunta para visualizar a query
    If ! IsBlind() .And. ! Empty(cQuery) .And. FWIsAdmin() .And. FWAlertYesNo("Deseja visualizar a query?", "Atenção (" + FunName() + ")")
	    ShowLog(cQuery)
	EndIf
Return

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

Deixe uma resposta