Dúvida
Como bloquear campos (X3_WHEN == .F.) por meio de um ponto de entrada MVC?
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) – ADVPL – Todas versões
Solução
Utilizar o id de ponto MODELVLDACTIVE e por meio dos métodos GetModel() + GetStruct() + SetProperty() alterar o X3_WHEN utilizando a constante MODEL_FIELD_WHEN para atribuir o valor retornado pela função FwBuildFeature() + STRUCT_FEATURE_WHEN.
Fonte
// BIBLIOTECAS UTILIZADAS
#Include "TOTVS.ch"
#Include "FWMVCDEF.ch"
// EXEMPLO COM O PE MVC DA MATA010
User Function ITEM()
Local aParam := PARAMIXB // PARÂMETROS PASSADOS PARA O PONTO
Local xRet := .T. // RETORNO LÓGICO PARA PROSSEGUIMENTO DA ROTINA
Local oObj := NIL // OBJETO QUE ARMAZENARÁ O MODELO TOTAL
Local cIdPonto := Space(0) // ID DO MOMENTO DA CHAMADA DO PONTO
// CERTIFICA-SE QUE EXISTEM PARÂMETROS PARA O MOMENTO
If (!aParam == NIL)
oObj := aParam[1]
cIdPonto := aParam[2]
cIdModel := aParam[3]
// VALIDAÇÃO ANTES DA ATIVAÇÃO DO MODELO
If (cIdPonto == "MODELVLDACTIVE")
// MODELO -> SUBMODELO -> ESTRUTURA -> PROPRIEDADE -> BLOCO DE CÓDIGO -> X3_WHEN := .F.
oObj:GetModel("SB1MASTER"):GetStruct():SetProperty("B1_COD", MODEL_FIELD_WHEN, FwBuildFeature(STRUCT_FEATURE_WHEN , ".F."))
oObj:GetModel("SB1MASTER"):GetStruct():SetProperty("B1_DESC", MODEL_FIELD_WHEN, FwBuildFeature(STRUCT_FEATURE_WHEN , ".F."))
oObj:GetModel("SB1MASTER"):GetStruct():SetProperty("B1_TIPO", MODEL_FIELD_WHEN, FwBuildFeature(STRUCT_FEATURE_WHEN , ".F."))
EndIf
EndIf
Return (xRet) // RETORNO LÓGICO PARA PROSSEGUIMENTO
Saiba mais
0 Comentários