variable does not exist OMODELGRID on U_RETPR

Bom dia, estou com problemas em uma função para preencher um campo do cabeçalho de uma tela

chamei essa função dentro da validação do código do produto só que quando chama, ela não reconhece o oModelGrid Retornando esse erro: THREAD ERROR ([27992], TI_01, TI_01) 31/05/2024 10:59:23 variable does not exist OMODELGRID on U_RETPR(PROMDOMA.PRW) 31/05/2024 10:55:53 line : 117

função de validação e a função criada:

Static Function ModelDef()

Local oModel := Nil Local oStPai := FWFormStruct(1, "SZH") Local oStFilho := FWFormStruct(1, "SZI") Local aSZIRel := {}

//Definições dos campos oStPai:SetProperty("ZH_DATAINI" , MODEL_FIELD_VALID, FwBuildFeature(STRUCT_FEATURE_VALID , "U_DATAINI() .AND. U_VldCabZH()" )) //VALIDAÇÃO DO CAMPO oStPai:SetProperty("ZH_DATAFIM" , MODEL_FIELD_VALID, FwBuildFeature(STRUCT_FEATURE_VALID , "U_DATAINI() .AND. U_VldCabZH()" )) //VALIDAÇÃO DO CAMPO oStPai:SetProperty("ZH_TIPOPRO" , MODEL_FIELD_VALID, FwBuildFeature(STRUCT_FEATURE_VALID , "U_VldCabZH()" )) //VALIDAÇÃO DO CAMPO oStPai:SetProperty("ZH_STATUS" , MODEL_FIELD_VALID, FwBuildFeature(STRUCT_FEATURE_VALID , "U_PROMOK()" )) //VALIDAÇÃO DO CAMPO

// validações para concatenar o nome da promoção oStPai:SetProperty("ZH_TIPOPRO" , MODEL_FIELD_VALID, FwBuildFeature(STRUCT_FEATURE_VALID , "U_VldCabZH()")) //VALIDAÇÃO DO CAMPO oStPai:SetProperty("ZH_TABPRC" , MODEL_FIELD_VALID, FwBuildFeature(STRUCT_FEATURE_VALID , "U_VldCabZH()")) //VALIDAÇÃO DO CAMPO // fim das valições para concatenar nome da promoção

//oStPai:SetProperty("ZI_" , MODEL_FIELD_VALID, FwBuildFeature(STRUCT_FEATURE_VALID , "U_VldCabZH()")) //VALIDAÇÃO DO CAMPO oStFilho:SetProperty("ZI_ITEM" , MODEL_FIELD_INIT , FwBuildFeature(STRUCT_FEATURE_INIPAD, "U_INITEMZI()"))//inicializador padrão //oStFilho:SetProperty("ZI_CODPROD", MODEL_FIELD_VALID, FwBuildFeature(STRUCT_FEATURE_VALID , "U_EXTPROM(M->ZI_CODPROD, M->ZH_TABPRC)")) //VALIDAÇÃO DO CAMPO oStFilho:SetProperty("ZI_CODPROD", MODEL_FIELD_VALID, FwBuildFeature(STRUCT_FEATURE_VALID , "U_EXTPROM(M->ZI_CODPROD, M->ZH_TABPRC) .and. U_RetPr()")) //VALIDAÇÃO DO CAMPO oStFilho:SetProperty("ZI_DTVALID", MODEL_FIELD_VALID, FwBuildFeature(STRUCT_FEATURE_VALID , "U_DiasProm(.T.,,M->ZI_CODPROD,M->ZI_DTVALID)")) //VALIDAÇÃO DO CAMPO

// TudoOkZH static function chamada na validação total do formulário oModel := MPFormModel():New("MODELSZH", , {|oModel| TudoOkZH(oModel)}) oModel:AddFields("SZHMASTER", , oStPai,,) oModel:AddGrid("SZIDETAIL", "SZHMASTER", oStFilho,/bLinePre/, {|oModelGrid| LinOk(oModelGrid)}/VALIDAÇÃO DA LINHA/,,/bPos - Grid Inteiro/,/bLoad - Carga do modelo manualmente/)

//Fazendo relacionamento entre pai e filho aAdd(aSZIRel, {"ZI_FILIAL" , "ZH_FILIAL"}) aAdd(aSZIRel, {"ZI_CODPROM", "ZH_CODIGO"})

oModel:SetRelation("SZIDETAIL", aSZIRel, SZI->(IndexKey(1))) oModel:SetPrimaryKey({})

oModel:SetDescription("Cadastro de Promoções - DOMA") oModel:GetModel("SZHMASTER"):SetDescription("Cadastro") oModel:GetModel("SZIDETAIL"):SetDescription("Produtos")

Return(oModel)


User Function RetPr() // função para ser acionada após digitação do ZI_CODPROD


Local cDsc := ""

Local oModel:= FwModelActive() // Define oModel

Local cProd := oModelGrid:GetValue("ZI_CODPROD")// Pega o codigo digitado na grid

cDsc := RetTpProm(M->ZH_TIPOPRO,cProd) // chama a função para pegar a descriçao

oModel:SetValue("SZHMASTER", "ZH_DESCRI", cDsc) // Atualiza ZH_DESCRI

return .t.

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags erro advpl duvida ou faça a sua própria pergunta.