Nesse vídeo demonstraremos a utilização da classe FWmBrowse e da função mBrowse, que servem para criar uma tela com browse de navegação de registros para poder efetuar ações (como incluir, alterar, visualizar, etc).
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zExe230
Exemplo de criação de browses de cadastro
@type Function
@author Atilio
@since 20/02/2023
@see https://tdn.totvs.com/display/public/framework/FWMBrowse e https://tdn.totvs.com/pages/releaseview.action?pageId=24346981
@obs
**** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
User Function zExe230()
Local aArea := FWGetArea()
If FWAlertYesNo("Você deseja ver o exemplo com FWMBrowse (sim) ou com mBrowse (não)?", "Continua?")
fExemplo1()
Else
fExemplo2()
EndIf
FWRestArea(aArea)
Return
/*/{Protheus.doc} User Function zExe230
Grupo de Produtos
@author Atilio
@since 20/02/2023
@version 1.0
@type function
@obs Codigo gerado automaticamente pelo Autumn Code Maker
@see http://autumncodemaker.com
/*/
Static Function fExemplo1()
Local aArea := FWGetArea()
Local oBrowse
Private aRotina := {}
Private cCadastro := "Grupo de Produtos"
//Definicao do menu
aRotina := MenuDef()
//Instanciando o browse
oBrowse := FWMBrowse():New()
oBrowse:SetAlias("SBM")
oBrowse:SetDescription(cCadastro)
oBrowse:DisableDetails()
//Adicionando as Legendas
oBrowse:AddLegend( "SBM->BM_PROORI == '1'", "BLACK", "Pro. Ori. igual a 1" )
oBrowse:AddLegend( "SBM->BM_PROORI == '0'", "RED", "Pro. Ori. igual a 0" )
oBrowse:AddLegend( "EMPTY(SBM->BM_PROORI)", "WHITE", "Pro. Ori. vazio" )
//Ativa a Browse
oBrowse:Activate()
FWRestArea(aArea)
Return Nil
/*/{Protheus.doc} MenuDef
Menu de opcoes na funcao zExe230
@author Atilio
@since 20/02/2023
@version 1.0
@type function
@obs Codigo gerado automaticamente pelo Autumn Code Maker
@see http://autumncodemaker.com
/*/
Static Function MenuDef()
Local aRotina := {}
//Adicionando opcoes do menu
aAdd(aRotina, {"Pesquisar", "AXPESQUI", 0, 1})
aAdd(aRotina, {"Visualizar", "AXVISUAL", 0, 2})
aAdd(aRotina, {"Incluir", "AXINCLUI", 0, 3})
aAdd(aRotina, {"Alterar", "AXALTERA", 0, 4})
aAdd(aRotina, {"Excluir", "AXDELETA", 0, 5})
Return aRotina
Static Function fExemplo2()
Local aArea := FWGetArea()
Local aCores := {}
Private aRotina := MenuDef()
Private cCadastro := "Grupo de Produtos"
aAdd(aCores, {"SBM->BM_PROORI == '1'", "BR_PRETO"})
aAdd(aCores, {"SBM->BM_PROORI == '0'", "BR_VERMELHO"})
aAdd(aCores, {"EMPTY(SBM->BM_PROORI)", "BR_BRANCO"})
//Faz a abertura da tela
mBrowse(1, 1, , , 'SBM', , , , , , aCores)
FWRestArea(aArea)
Return Nil
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Boa tica
Bom dia William, tudo joia?
Opa, obrigado pelo comentário.
Um grande abraço.
Boa dica Daniel.
Será que vc conseguiria fazer um video da maratona ref a criação de uma tela de consulta de dados de histórico com uma grid ?? A dúvida que fica é, qual melhor componente grid usar?
Vlwww
Bom dia William, tudo joia?
Não sei se entendi a dúvida, mas você gostaria de ver uma tela usando uma grid pra consulta de informações?
Se sim, você pode optar por usar a classe FWBrowse que seria a mais recente nesse sentido, segue um link de exemplo: https://terminaldeinformacao.com/2024/01/31/criando-um-browse-com-a-classe-fwbrowse-maratona-advpl-e-tl-207/
Um grande abraço.
Boa tarde, teria como fazer um exemplo utilizando uma API Rest e pegando o Método GET dela?
Abraços!
Bom dia Jonas, tudo joia?
Sim, o que você poderia fazer, é casar com a ideia desse artigo – https://terminaldeinformacao.com/2022/09/19/temporaria-em-mvc-com-fwtemporarytable-ti-responde-022/ , ai você faria o seguinte:
1. Criar uma FWTemporaryTable logo no começo do fonte, com todos os campos necessários
2. Executar um FWRest usando GET para buscar as informações de uma API externa
3. Pegar o resultado e fazer um loop incluindo na tabela temporária através de RecLock
4. Nisso, ao abrir o FWmBrowse, já vai ser exibido as informações incluídas
Tenha uma ótima e abençoada quarta feira.
Um grande abraço.