No vídeo de hoje, vamos demonstrar em como exibir apenas alguns campos em uma tela em MVC filtrando direto na FWFormStruct.
A dúvida de hoje, nos perguntaram, se seria possível exibir apenas alguns campos em uma tela em MVC, sem precisar ficar dando RemoveField em um por um na ViewDef.
Pensando nisso, montamos um exemplo, onde vamos demonstrar em como filtrar direto na FWFormStruct.
Segue abaixo o vídeo exemplificando:
E abaixo o código fonte desenvolvido:
//Bibliotecas #Include "Totvs.ch" #Include "FWMVCDef.ch" //Variveis Estaticas Static cTitulo := "Grupo de Produtos" Static cAliasMVC := "SBM" /*/{Protheus.doc} User Function zVid0160 Exemplo de filtrar campos na exibição de uma tela em MVC @author Daniel Atilio @since 07/06/2024 @version 1.0 @type function @obs Codigo gerado automaticamente pelo Autumn Code Maker @see http://autumncodemaker.com /*/ User Function zVid0160() Local aArea := FWGetArea() Local oBrowse Private aRotina := {} //Definicao do menu aRotina := MenuDef() //Instanciando o browse oBrowse := FWMBrowse():New() oBrowse:SetAlias(cAliasMVC) oBrowse:SetDescription(cTitulo) oBrowse:DisableDetails() //Adicionando as Legendas oBrowse:AddLegend( "SBM->BM_PROORI == '1'", "CHECKED", "Procedência Original" ) oBrowse:AddLegend( "SBM->BM_PROORI == '0'", "BLACK", "Procedência Não Original" ) oBrowse:AddLegend( "EMPTY(SBM->BM_PROORI)", "BR_CANCEL", "Sem Procedência Cadastrada" ) //Ativa a Browse oBrowse:Activate() FWRestArea(aArea) Return Nil /*/{Protheus.doc} MenuDef Menu de opcoes na funcao zVid0160 @author Daniel Atilio @since 07/06/2024 @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 ADD OPTION aRotina TITLE "Visualizar" ACTION "VIEWDEF.zVid0160" OPERATION 1 ACCESS 0 Return aRotina /*/{Protheus.doc} ModelDef Modelo de dados na funcao zVid0160 @author Daniel Atilio @since 07/06/2024 @version 1.0 @type function @obs Codigo gerado automaticamente pelo Autumn Code Maker @see http://autumncodemaker.com /*/ Static Function ModelDef() Local oStruct := FWFormStruct(1, cAliasMVC) Local oModel Local bPre := Nil Local bPos := Nil Local bCommit := Nil Local bCancel := Nil //Cria o modelo de dados para cadastro oModel := MPFormModel():New("zVid160M", bPre, bPos, bCommit, bCancel) oModel:AddFields("SBMMASTER", /*cOwner*/, oStruct) oModel:SetDescription("Modelo de dados - " + cTitulo) oModel:GetModel("SBMMASTER"):SetDescription( "Dados de - " + cTitulo) oModel:SetPrimaryKey({}) Return oModel /*/{Protheus.doc} ViewDef Visualizacao de dados na funcao zVid0160 @author Daniel Atilio @since 07/06/2024 @version 1.0 @type function @obs Codigo gerado automaticamente pelo Autumn Code Maker @see http://autumncodemaker.com /*/ Static Function ViewDef() Local oModel := FWLoadModel("zVid0160") Local oStruct := FWFormStruct(2, cAliasMVC, {|x| Alltrim(x) + ";" $ "BM_GRUPO;BM_DESC;BM_PROORI;BM_STATUS;"}) Local oView //Cria a visualizacao do cadastro oView := FWFormView():New() oView:SetModel(oModel) oView:AddField("VIEW_SBM", oStruct, "SBMMASTER") oView:CreateHorizontalBox("TELA" , 100 ) oView:SetOwnerView("VIEW_SBM", "TELA") Return oView
Bom pessoal, por hoje é só.
Abraços e até a próxima.