Dados na grid MVC

Caros,

Tenho uma grid MVC (Participantes) relacionada com uma outra grid (Turmas):

Turma 01 funcionario 001 funcionario 002 funcionario 003 Turma 02 funcionario 004 funcionario 005 Turma 03 funcionario 006 funcionario 007

Em tempo de Execução, antes de confirmar o cadastro, como eu acesso todos Participantes de todas turmas: TIPO com Acols ALL (msNewGetDados) ?

João,

Você precisa fazer isso utilizando o modelo e dois loops, veja um exemplo abaixo de forma bem macro:


//-------------------------------------------------------------------
/*/{Protheus.doc} meuExemploDeLadoEntreModelos
Exemplo de loop entre dois modelos, pai e filho

@author  Daniel Mendes
@since   27/07/2022
@version 1.0
/*/
//-------------------------------------------------------------------
static function meuExemploDeLadoEntreModelos()
local oModel as object
local oParticipantes as object
local oTurmas as object
local nX as numeric
local nY as numeric
local nLineParticipantes as numeric
local nLineTurmas as numeric

//Pega o modelo ativo, talvez você receba o mesmo por parâmetro dependendo do lugar e como a função será chamada
oModel := FwModelActive()

//Pego os modelos de turmas e participantes
oTurmas := oModel:getModel("Turmas")
oParticipantes := oModel:getModel("Participantes")

//Salvo as linhas atuais
nLineTurmas := oTurmas:getLine()
nLineParticipantes := oParticipantes:getLine()

//Efetuo o laço entre o modelo pai e o filho
for nX := 1 to oTurmas:GetQTDLine()
    //Vou para a linha de turmas
    oTurmas:goLine(nX)

    //...Efetuo meus processamentos, se necessário...

    for nY := 1 to oParticipantes:getQTDLine()
        //Vou para a linha de participantes
        oParticipantes:goLine(nY)

        //... Efetuo meus processamentos, se necessários...
    next
next

//Restauro as linhas
oTurmas:goLine(nLineTurmas)
oParticipantes:goLine(nLineParticipantes)

return

Documentação: https://tdn.totvs.com.br/display/framework/FWFormGridModel