Como criar uma FWmBrowse com uma dimensão menor | Ti Responde 0145

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.

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