Versão atual:

MVC - Validação de campos Cliente e Loja cliente - Ao validar loja, validação não lê código do cliente

Boa tarde,

Possuo uma tabela customizada contendo dois campos que apontam para a tabela SA1, de nome ZDH com campos ZDH_CODCLI e ZDH_LOJA.

Estou com problemas para criar a validação do campo ZDH_CODCLI em meu formulário MVC, que quando é executada não está conseguindo ler a informação do campo ZDH_CODCLI.

Segue trecho do código que crio a estrutura do model e adiciono as Triggers:

Local oStModZDH  := FWFormStruct(1,"ZDH")

Local cValCODCLI := 'ExistCpo("SA1",M->ZDH_CODCLI+IIF(EMPTY(M->ZDH_LOJA),"",RTRIM(M->ZDH_LOJA)))'
Local cValLOJCLI := 'Vazio().OR.ExistCpo("SA1",M->ZDH_CODCLI+M->ZDH_LOJA)'

Local bValCODCLI := FWBuildFeature(STRUCT_FEATURE_VALID, cValCODCLI)
Local bValLOJCLI := FWBuildFeature(STRUCT_FEATURE_VALID, cValLOJCLI)

oStModZDH:SetProperty("ZDH_CODCLI",MODEL_FIELD_VALID, bValCODCLI)
oStModZDH:SetProperty("ZDH_LOJA",MODEL_FIELD_VALID, bValLOJCLI)

No momento da execução da validação do campo ZDH_LOJA, acontece o seguinte erro:

THREAD ERROR ([4948], ti09, TI09) 14/07/2020 13:50:04 type mismatch on + on {|a,b,c,d| FWInitCpo(a,b,c),lRet:=(Vazio().OR.ExistCpo("SA1",M->ZDH_CODCLI+M->ZDH_LOJA)),FWCloseCpo(a,b,c,lRet),lRet }(PROTHEUSFUNCTIONMVC.PRX) 01/04/2020 19:16:48 line : 5460 [TOTVS build: 7.00.191205P-20200331] Called from FWFORMGRIDMODEL:SETVALUE(FWFORMGRIDMODEL.PRX) 01/04/2020 19:16:48 line : 2362 Called from FWFORMMODEL:SETVALUE(FWFORMMODEL.PRX) 01/04/2020 19:16:48 line : 2024 Called from FWFORMVIEW:VALIDFIELD(FWFORMVIEW.PRW) 01/04/2020 19:16:48 line : 1419

Cheguei a colocar a alterar a validação do campo para fazer um teste, colocando o seguinte:

Local cValLojCLI := 'MsgInfo(M->ZDH_CODCLI),.T.'

E a mensagem impressa na tela foi uma mensagem vazia, mesmo tendo valor preenchido no campo ZDH_CODCLI.

Há algo que posso fazer para ler o valor de ZDH_CODCLI na validação do campo ZDH_LOJA?

Obrigado!

-- Edit --

Fiz um novo teste, alterando a validação do campo ZDH_CODCLI para ler ZDH_LOJA:

Local cValCODCLI  := 'MsgInfo(IIF(EMPTY(M->ZDH_LOJA),"",RTRIM(M->ZDH_LOJA))),.T.'

E o resultado foi também uma janela vazia impressa, mesmo havendo conteúdo preenchido no campo ZDH_LOJA.

Pelo que parece o problema é ler um campo através de "M->" que não seja o próprio campo da validação.

Versões (5):

Ver a versão formatada

MVC - Validação de campos Cliente e Loja cliente - Ao validar loja, validação não lê código do cliente

Comentário

new question