No artigo de hoje, vamos mostrar a lista de atributos editáveis via SetProperty numa Struct em MVC.
Algumas vezes temos dúvidas, em quais propriedades conseguimos editar via método SetProperty, em uma FWFormStruct. Existem algumas constantes na FWMVCDef.ch que podemos utilizar para fazer essa manipulação.
Abaixo então, segue o nome dos atributos editáveis, tanto na ModelDef (banco de dados) como na ViewDef (visualização da tela).
ModelDef:
- MODEL_FIELD_TITULO – Titulo
- MODEL_FIELD_TOOLTIP – Descrição completa do campo
- MODEL_FIELD_IDFIELD – Nome (ID)
- MODEL_FIELD_TIPO – Tipo
- MODEL_FIELD_TAMANHO – Tamanho
- MODEL_FIELD_DECIMAL – Decimais
- MODEL_FIELD_VALID – Validação
- MODEL_FIELD_WHEN – Modo de edição
- MODEL_FIELD_VALUES – Lista de valores permitido do campo (combo)
- MODEL_FIELD_OBRIGAT – Indica se o campo tem preenchimento obrigatório
- MODEL_FIELD_INIT – Inicializador padrão
- MODEL_FIELD_KEY – Indica se o campo é chave
- MODEL_FIELD_NOUPD – Indica se o campo pode receber valor em uma operação de update
- MODEL_FIELD_VIRTUAL – Indica se o campo é virtual
ViewDef:
- MVC_VIEW_IDFIELD – Nome do Campo
- MVC_VIEW_ORDEM – Ordem
- MVC_VIEW_TITULO – Titulo do campo
- MVC_VIEW_DESCR – Descrição do campo
- MVC_VIEW_HELP – Array com Help
- MVC_VIEW_PICT – Picture
- MVC_VIEW_PVAR – Bloco de Picture Var
- MVC_VIEW_LOOKUP – Consulta F3
- MVC_VIEW_CANCHANGE – Indica se o campo é editável
- MVC_VIEW_FOLDER_NUMBER – Pasta do campo
- MVC_VIEW_GROUP_NUMBER – Agrupamento do campo
- MVC_VIEW_COMBOBOX – Lista de valores permitido do campo (Combo)
- MVC_VIEW_MAXTAMCMB – Tamanho Máximo da maior opção do combo
- MVC_VIEW_INIBROW – Inicializador de Browse
- MVC_VIEW_VIRTUAL – Indica se o campo é virtual
- MVC_VIEW_PICTVAR – Picture Variável
Abaixo um trecho de exemplo:
Static Function ModelDef() Local oStruct := FWFormStruct(1, cNomeTabela) Local oModel /* Para ver a lista de propriedades acesse https://tdn.totvs.com/display/framework/AdvPl+utilizando+MVC No PDF do manual, vá na seção 10.3 Alteração de propriedades do campo (SetProperty) */ oStruct:SetProperty('ZD1_DTFORM', MODEL_FIELD_WHEN, FwBuildFeature(STRUCT_FEATURE_WHEN, 'INCLUI')) //Modo de Edição oStruct:SetProperty('ZD1_DTFORM', MODEL_FIELD_INIT, FwBuildFeature(STRUCT_FEATURE_INIPAD, 'Date()')) //Inicializador Padrão /* Continuação da declaração do MPFormModel... */ oModel := MPFormModel():New(... ... Return oModel Static Function ViewDef() Local oModel := FWLoadModel("NomeDoSeuModel") Local oStruct := FWFormStruct(2, cNomeTabela) Local oView /* Para ver a lista de propriedades acesse https://tdn.totvs.com/display/framework/AdvPl+utilizando+MVC No PDF do manual, vá na seção 10.3 Alteração de propriedades do campo (SetProperty) */ oStruct:SetProperty('ZD1_DTFORM', MVC_VIEW_TITULO, 'Data de Inclusão') //Título do campo /* Continuação da declaração do FWFormView... */ oView := FWFormView():New(... ... Return oView
O material para esse artigo, foi extraído do manual AdvPL utilizando MVC v2 – POR.pdf, disponível nesse link https://tdn.totvs.com/display/framework/AdvPl+utilizando+MVC , recomendamos que também estudem o conteúdo do manual (que é mais amplo). A parte das propriedades estão nas páginas 57 e 58.
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Mestre sabe se ja saiu alteracao no MVC para esta propriedade que nao existe : oStruZA0:SetProperty( ‘ZA0_QTDMUS’ , MODEL_FIELD_USADO) tem todos menus usado ou uma alternativa ?
Bom dia Geraldo, tudo joia?
Do USADO não sei dizer se já criaram alguma coisa para tratar via fonte. Como essa parametrização, define se um campo vai ser exibido ou não em tela, o que geralmente eu vejo os analistas fazerem é na ViewDef dar um RemoveField nos campos que eles não querem que sejam visualizados.
Abraços.