No vídeo de hoje, vamos demonstrar em como criar um browse de navegação usando a FWmBrowse porém sem ocupar a tela inteira, ocupando um espaço menor.
A dúvida de hoje, nos perguntaram, se seria possível usar a FWmBrowse mas sem ser em tela inteira.
Pensando nisso, montamos esse exemplo, onde vamos demonstrar em como criar uma FWmBrowse e vincular em uma Dialog sem ocupar o espaço todo da tela.
Segue abaixo o vídeo exemplificando:
E abaixo o código fonte desenvolvido:
//Bibliotecas
#Include "TOTVS.ch"
#Include "FWMVCDef.ch"
/*/{Protheus.doc} User Function MTA035MNU
Ponto de Entrada para adicionar funções no browse do grupo de produtos
@type Function
@author Atilio
@since 12/04/2024
@see https://tdn.totvs.com/pages/releaseview.action?pageId=800585305
/*/
User Function MTA035MNU()
Local aArea := FWGetArea()
//Adicionando opção no menu do grupo de produtos
ADD OPTION aRotina TITLE "* Produtos do Grupo" ACTION "u_zVid0145()" OPERATION 1 ACCESS 0
FWRestArea(aArea)
Return
//Variveis Estaticas
Static cTitulo := "Produtos do Grupo"
Static cAliasMVC := "SB1"
Static lEmExecucao := .F.
Static cFiltro := ""
/*/{Protheus.doc} User Function zVid0145
Browse de Produtos do Grupo
@author Atilio
@since 12/04/2024
@version 1.0
@type function
/*/
User Function zVid0145()
Local aArea := FWGetArea()
Local cFunBkp := FunName()
Local aTamanho := MsAdvSize()
Local nJanLarg := aTamanho[5] - 200
Local nJanAltu := aTamanho[6] - 200
Local oDlgProdut
Private aRotina := {}
Private oBrowse
SetFunName("MATA010")
//Tratativa para impedir que seja aberta a mesma janela por cima da original do browse
If ! lEmExecucao
lEmExecucao := .T.
oDlgProdut := TDialog():New(0, 0, nJanAltu, nJanLarg, cTitulo, , , , , CLR_BLACK, RGB(250, 250, 250), , , .T.)
//Monta o Filtro conforme o registro posicionado, e trazendo somente o último
cFiltro := "SB1->B1_GRUPO == '" + SBM->BM_GRUPO + "'"
//Definicao do menu
aRotina := MenuDef()
//Instanciando o browse
oBrowse := FWMBrowse():New()
oBrowse:SetAlias(cAliasMVC)
oBrowse:SetDescription(cTitulo)
oBrowse:DisableDetails()
oBrowse:DisableReport()
oBrowse:SetFilterDefault(cFiltro)
//Ativa a Browse
oBrowse:Activate(oDlgProdut)
oDlgProdut:Activate(, , , .T., {|| .T.}, , {|| } )
lEmExecucao := .F.
EndIf
SetFunName(cFunBkp)
FWRestArea(aArea)
Return Nil
/*/{Protheus.doc} MenuDef
Menu de opcoes
@author Atilio
@since 12/04/2024
@version 1.0
@type function
/*/
Static Function MenuDef()
Local aRotina := {}
//Adicionando opcoes do menu
ADD OPTION aRotina TITLE "Visualizar Produto" ACTION "VIEWDEF.MATA010" OPERATION 1 ACCESS 0
Return aRotina
Bom pessoal, por hoje é só.
Abraços e até a próxima.