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.
Olá Dan, tudo jóia ?
Eu consigo criar uma nova legenda com o PE F040URET fazendo validação com SE5 ? Eu preciso sinalizar com uma nova legenda na tela do contas a receber, os títulos que foram feito por baixa para perda (E5_MOTBX == “BXP”). Tentei fazer um dbSeek com os dados da SE1 para buscar na SE5, mas não deu certo e também não sei se é a melhor forma de fazer isso.
Bom dia Maurilio, tudo joia graças a Deus e você?
Então, as legendas o ideal é ser na mesma tabela que é apresentada no browse, por questões de performance e tudo mais.
O que eu recomendaria então para o seu cenário, seria:
1. Cria um campo novo na SE1, do contexto real, chamado por exemplo, E1_X_MOTBX
2. Use o ponto de entrada SACI008 que é após a baixa do título a Receber – https://tdn.totvs.com/pages/releaseview.action?pageId=6071312
3. Dentro dele, dê um RecLock na SE1 posicionada, e grave o campo E1_X_MOTBX com o E5_MOTBX
4. Nisso, volte para o ponto de entrada que você estava usando para adicionar a legenda, e ai você consegue usar o E1_X_MOTBX para fazer os testes
Tenha uma ótima e abençoada quarta feira.
Um forte abraço.