Versão atual:

MVC - Relacionamento pai x filho x neto em mesma tabela

Olá pessoal, tudo bem?

Estou criando uma tela onde possuo um cabeçalho (pai) e duas grids (filha e neta) mas utilizando somente uma tabela (customizada) onde posso ter N registros na grid filha para N registros na grid neta.

Durante o preenchimento dos dados, a tela funciona corretamente, os registros da grid neta estão sendo atualizados quando eu percorro a grid filha.

1.png

2.png

O problema está sendo na confirmação da inclusão, onde é exibido o error log abaixo.

argument #0 error, expected C->A,  function fieldpos on EXFORMCOMMIT(PROTHEUSFUNCTIONMVC.PRX)

error log.png

Segue abaixo como estou criando minha modelDef.

    oModel := MPFormModel():New("TEC002", /*bPreValidacao*/, /*{|oModel| fVldPos(oModel)}*/, /*{ | oMdl | MVC001C( oMdl ) }*/ ,, /*bCancel*/ )


    oModel:addFields('ZA2_CAB',,oStrCab)
    oModel:setPrimaryKey({'ZA2_FILIAL', 'ZA2_CODIGO'})

    oModel:addGrid('ZA2_ITEM', 'ZA2_CAB', oStrIte)
    oModel:addGrid('ZA2_COMP', 'ZA2_ITEM', oStrCmp)

    aadd(aItemRel, {'ZA2_FILIAL', 'xFilial("ZA2")'})
    aadd(aItemRel, {'ZA2_CODIGO', 'ZA2_CODIGO'})
    oModel:setRelation('ZA2_ITEM', aItemRel, ZA2->(indexKey(1)))

    aadd(aCompRel, {'ZA2_FILIAL', 'xFilial("ZA2")'})
    aadd(aCompRel, {'ZA2_CODIGO', 'ZA2_CODIGO'})
    aadd(aCompRel, {'ZA2_EQUIP', 'ZA2_EQUIP'})
    oModel:setRelation('ZA2_COMP', aCompRel, ZA2->(indexKey(1)))

    oModel:getModel('ZA2_CAB'):setDescription('CABECALHO')
    oModel:getModel('ZA2_ITEM'):setDescription('ITENS')
    oModel:getModel('ZA2_COMP'):setDescription('COMPONENTES')

Notei que o error log somente ocorre quando possuo mais de um registro na minha grid neta. Quando há somente um registro na grid neta para cada registro na grid filha, a inclusão ocorre normalmente.

Alguém já passou por isso ou teria algum exemplo de MVC com esse cenário e que possa compartilhar?

Obrigado pessoal.

Versão (1):

Ver a versão formatada

MVC - Relacionamento pai x filho x neto em mesma tabela

Comentário

new question