No vídeo de hoje vamos demonstrar em como adicionar legendas numa função padrão onde não tem ponto de entrada para manipular o browse.
A dúvida de hoje foi feita pelo grande Alexandre, onde ele questionou se haveria a possibilidade de adicionar legendas na tela de fornecedores.
Então demonstramos como fazer interceptando o browse através da função FWmBrwActive e depois como manipular as informações (foi usado o ponto de entrada genérico MBlkColor, que serve para alterar a cor de linhas bloqueadas).
E abaixo o código fonte desenvolvido para exemplificar:
//Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function MBlkColor Altera a cor da linha bloqueada @type Function @author Atilio @since 27/04/2022 @see http://tdn.totvs.com/display/public/mp/MBlkColor+-+Retorna+cores+a+utilizar /*/ User Function MBlkColor() Local aArea := FWGetArea() Local oBrowse := Nil Local nColunas := 0 //Se a última tabela aberta for a de Fornecedor e vier da rotina MATA020 If aArea[1] == 'SA2' .And. FWIsInCallStack("MATA020") //Intercepta o Browse - similar a antiga GetObjBrow() oBrowse := FWmBrwActive() //Se o Browse já estiver na memória If ValType(oBrowse) == "O" //Se não tiver legendas, irá adicionar If Len(oBrowse:aLegends) == 0 oBrowse:AddLegend( "SA2->A2_TIPO == 'F'", "WHITE", "Fisico" ) oBrowse:AddLegend( "SA2->A2_TIPO == 'J'", "BLACK", "Juridico" ) oBrowse:AddLegend( "SA2->A2_TIPO == 'X'", "RED", "Outros" ) //Pega o total de colunas, insere um elemento, e fala que será na posição 1 nColunas := Len(oBrowse:aColumns) aSize(oBrowse:aColumns, nColunas + 1) aIns(oBrowse:aColumns, 1) //Copia a última posição (que é a legenda) para a primeira, e depois exclui ela do final oBrowse:aColumns[1] := oBrowse:aColumns[nColunas + 1] aDel(oBrowse:aColumns, nColunas + 1) aSize(oBrowse:aColumns, nColunas) EndIf EndIf EndIf FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.