No vídeo de hoje, vamos demonstrar em como exibir campos MEMO em MVC um do lado do outro.
A dúvida de hoje, nos perguntaram, se seria possível exibir campos MEMO em MVC um do lado do outro ao invés do padrão que é um embaixo do outro.
Pensando nisso, montamos um exemplo, onde vamos demonstrar em como criar as separações com CreateVerticalBox e depois alterando o atributo nColumns.
Segue abaixo o vídeo exemplificando:
E abaixo o código fonte desenvolvido:
//Bibliotecas #Include "Totvs.ch" #Include "FWMVCDef.ch" #Include "FWEditPanel.ch" //Variveis Estaticas Static cTitulo := "Artistas" Static cAliasMVC := "ZA1" /*/{Protheus.doc} User Function zVid0194 Cadastro de Artistas @author Daniel Atilio @since 21/01/2022 @version 1.0 @type function @obs Codigo gerado automaticamente pelo Autumn Code Maker Criar 2 campos MEMO na tabela: ZA1_OBS01 e ZA1_OBS02 @see http://autumncodemaker.com /*/ User Function zVid0194() Local aArea := GetArea() Local oBrowse Private aRotina := {} //Definicao do menu aRotina := MenuDef() //Instanciando o browse oBrowse := FWMBrowse():New() oBrowse:SetAlias(cAliasMVC) oBrowse:SetDescription(cTitulo) oBrowse:DisableDetails() //Ativa a Browse oBrowse:Activate() RestArea(aArea) Return Nil /*/{Protheus.doc} MenuDef Menu de opcoes na funcao zVid0194 @author Daniel Atilio @since 21/01/2022 @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.zVid0194" OPERATION 1 ACCESS 0 ADD OPTION aRotina TITLE "Incluir" ACTION "VIEWDEF.zVid0194" OPERATION 3 ACCESS 0 ADD OPTION aRotina TITLE "Alterar" ACTION "VIEWDEF.zVid0194" OPERATION 4 ACCESS 0 Return aRotina /*/{Protheus.doc} ModelDef Modelo de dados na funcao zVid0194 @author Daniel Atilio @since 21/01/2022 @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("zVid74M", bPre, bPos, bCommit, bCancel) oModel:AddFields("ZA1MASTER", /*cOwner*/, oStruct) oModel:SetDescription("Modelo de dados - " + cTitulo) oModel:GetModel("ZA1MASTER"):SetDescription( "Dados de - " + cTitulo) oModel:SetPrimaryKey({}) Return oModel /*/{Protheus.doc} ViewDef Visualizacao de dados na funcao zVid0194 @author Daniel Atilio @since 21/01/2022 @version 1.0 @type function @obs Codigo gerado automaticamente pelo Autumn Code Maker @see http://autumncodemaker.com /*/ Static Function ViewDef() Local oModel := FWLoadModel("zVid0194") Local oStruct := FWFormStruct(2, cAliasMVC, { |x| ! 'ZA1_OBS' $ Alltrim(x) }) Local oStructM1 := FWFormStruct(2, cAliasMVC, { |x| 'ZA1_OBS01' == Alltrim(x) }) Local oStructM2 := FWFormStruct(2, cAliasMVC, { |x| 'ZA1_OBS02' == Alltrim(x) }) Local oView //Cria a visualizacao do cadastro oView := FWFormView():New() oView:SetModel(oModel) oView:AddField("VIEW_ZA1", oStruct, "ZA1MASTER") oView:AddField("OBS1_ZA1", oStructM1, "ZA1MASTER") oView:AddField("OBS2_ZA1", oStructM2, "ZA1MASTER") oView:CreateHorizontalBox("TELACABEC" , 40 ) oView:CreateHorizontalBox("TELARESTO" , 60 ) oView:CreateVerticalBox("RESTO_ESQUERDA", 50 , "TELARESTO") oView:CreateVerticalBox("RESTO_DIREITA", 50 , "TELARESTO") oView:SetOwnerView("VIEW_ZA1", "TELACABEC") oView:SetOwnerView("OBS1_ZA1", "RESTO_ESQUERDA") oView:SetOwnerView("OBS2_ZA1", "RESTO_DIREITA") //Altera o numero de colunas de 5 para 1 oView:aViews[2][3]:nColumns := 1 //OBS1_ZA1 oView:aViews[3][3]:nColumns := 1 //OBS2_ZA1 Return oView
Bom pessoal, por hoje é só.
Abraços e até a próxima.