Mvc - pai + filho + neto

Olá, tudo bem?

Estou implementando uma rotina personalizada, que utiliza duas tabelas (SY9 e ZC3).

A rotina, possui Cabeçalho (SY9 - PAI) e dois grids (ZC3 - FILHO e NETO).

Cada um dos grids, utilizam-se de campos específicos da tabela personalizada ZC3.

Ao realizar à inclusão\alteração de registros nesta rotina customizada, caso sejam inclusos um ou "n" registros no grid FILHO (sem existência de registros no grid NETO), à execução ocorre sem inconsistências.

No entanto, ao inserir qualquer registro no grid NETO, ao confirmar à interface, é apresentado error.log conforme abaixo:

THREAD ERROR ([1556], joner, MARCELO) 14/07/2021 17:57:20 argument #0 error, expected C->A, function fieldpos on EXFORMCOMMIT(PROTHEUSFUNCTIONMVC.PRX) 01/04/2021 19:01:09 line : 2282

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Oi Marcelo,

Segue um exemplo.

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Olá Jorge, tudo bem?

Agradeço pela sua ajuda, no entanto vosso exemplo não atende minha necessidade.

No meu caso, os grids FILHO e NETO, referem-se à uma mesma entidade no banco de dados, ou seja, no total, tenho apenas 2 tabelas envolvidas e não três tabelas.

Então terá que criar o grid Neto com dados de uma tabela temporária… que será montada em tempo de execução com base em uma consulta dos registros… será um pouco complexo isso, mas sim é possível de ser feito. Infelizmente exemplo assim eu não tenho pois isso é bem específico.

tentou criar um model novo usando a mesma tabela com um filtro padrão? acredito que funcione mas na verdade nunca fiz

Olá, conforme analise nesse caso será necessário tratar o Commit das informações de forma manual, exemplo:

oModel := MPFormModel():New('MYMODEL',nil,nil,{ | oModel | GrvModel( oModel ) } )

//NESSA FUNÇÃO REALIZAR SUAS TRATATIVAS PARA A GRAVACAO

Static Function GrvModel()

Local lRetorno := .T.

Return( lRetorno )

Desenterrando esse post.

Peguei o mesmo problema com uma tele Pai+Filho+Neto mas somente com duas tabelas (Filho e Neto são a mesma), consegui gravar sem problema após adicionar o relacionamento entre Filho e Neto


oModel:SetRelation('ZZ9REMRET', {{'ZZ9_FILIAL' ,'xFilial("ZZ9")'},{'ZZ9_NUM' ,'ZZ9_NUM'},{'ZZ9_ITEM' ,'ZZ9_ITEM'}}, ZZ9->(IndexKey(2)))

Leandro, seria possível inserir trecho do modelDef do seu código por favor? Estou com o mesmo problema reportado e mesmo fazendo o relacionamento entre filho e neto, o error log continua aparecendo. Obrigado!

@gverissimo Desculpe ressuciitar o tópico depois de tanto tempo… mas vc conseguiu resolver esse tema ? estou com este problema numa estrutura de pai x filho x neto x bisneto tudo sobre uma mesma tabela ! Coisa doida :woozy_face: kkkk Obrigado.