Como trocar um ícone de legenda de uma rotina do Protheus | Ti Responde 0121

No vídeo de hoje, vamos demonstrar em como alterar uma legenda em uma tela padrão, modificando o ícone exibido.

A dúvida de hoje, nos perguntaram, se seria possível em uma tela, buscar uma legenda, por exemplo, bolinha verde, e alterar para outro ícone qualquer.

 

Pensando nisso, montamos esse exemplo, onde vamos demonstrar em como manipular o array de legenda, no caso usando o ponto de entrada FINALEG e na rotina Contas a Pagar.

 

Segue abaixo o vídeo exemplificando:

 

E abaixo o código fonte desenvolvido:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} FINALEG
Ponto de Entrada na manipulação de legendas do financeiro
@type user function
@author Atilio
@since 30/01/2024
@see https://tdn.totvs.com/display/public/PROT/FINALEG+-+Manipula+legendas+financeiro
/*/

User Function FINALEG()
    Local aArea     := FWGetArea()
    Local cTabela   := ParamIXB[2]
    Local aRegras   := ParamIXB[3]
    Local aLegendas := ParamIXB[4]
    Local cProcura  := "BR_BRANCO"
    Local cSubstit  := "BPMSTSK2A"
    Local nPosicao  := 0

    //Se for o Contas a Pagar
    If cTabela == "SE2"
        //Se tiver regras
        If Len(aRegras) > 0
            //Procura pela cor Branca
            nPosicao := aScan(aRegras, {|x| Alltrim(x[2]) == cProcura})

            //Se encontrou, substitui o ícone
            If nPosicao > 0
                aRegras[nPosicao][2] := cSubstit
            EndIf
        EndIf

        //Se tiver legendas
        If Len(aLegendas) > 0
            //Procura pela cor Branca
            nPosicao := aScan(aLegendas, {|x| Alltrim(x[1]) == cProcura})

            //Se encontrou, substitui o ícone
            If nPosicao > 0
                aLegendas[nPosicao][1] := cSubstit
            EndIf

            //Aciona a tela para visualizar as legendas
            BrwLegenda(cCadastro, "Legenda", aLegendas)
        EndIf

    //Senão, se for Contas a Receber
    Else
        //Aciona a tela para visualizar as legendas
        BrwLegenda(cCadastro, "Legenda", aLegendas)
    EndIf

    FWRestArea(aArea)
Return aRegras

Bom pessoal, por hoje é só.

 

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação