Usina BRGuía AdvPL
Ingresar
← Todos los temas
GUíA PRáCTICAEn revisión

MVC maestro-detalle con AddFields y AddGrid

MPFormModel():New(); AddFields(); AddGrid(); SetRelation()

Define maestro/detalle con IDs y relación explícitos.

MVC maestro-detalle con AddFields y AddGridAdvPL
01 · DESCRIPCIÓN GENERAL

Descripción general

AddFields crea primer submodelo Field para maestro; AddGrid crea detalle cuyo owner es ese ID. SetRelation define vínculo/ordenación. Ejemplo comunitario usa SBM/SB1; adaptación usa tablas ficticias ZZ1/ZZ2 para evitar sugerir cambios estándar. Filial del hijo usa xFilial("ZZ2") porque compartición puede diferir. Crear/comprobar esquema e índice en pruebas antes de evaluar bloque. (Fuentes: refs. 1–5.)

02 · SINTAXIS

Sintaxis

MPFormModel():New(); AddFields(); AddGrid(); SetRelation()
03 · EJEMPLO PRÁCTICO

Ejemplo comentado

#Include "Protheus.ch"
#Include "FWMVCDef.ch"

User Function Ed554()
    // Exige diccionario de prueba ZZ1/ZZ2.
    Local bConstruir := {|| BuildModel()}
    ConOut(ValType(bConstruir))
Return Nil

Static Function BuildModel()
    Local oModelo := MPFormModel():New("ED554M")
    Local oEstructura := FWFormStruct(1,"ZZ1")
    oModelo:AddFields("ZZ1MASTER",Nil,oEstructura)
    oModelo:AddGrid("ZZ2DETAIL","ZZ1MASTER",FWFormStruct(1,"ZZ2"))
    oModelo:SetRelation("ZZ2DETAIL",{{"ZZ2_FILIAL",'xFilial("ZZ2")'},;
        {"ZZ2_COD","ZZ1_COD"}},"ZZ2_FILIAL+ZZ2_COD+ZZ2_ITEM")
    oModelo:SetPrimaryKey({"ZZ1_FILIAL","ZZ1_COD"})
Return oModelo
Resultado esperado

Imprime B; no evalúa auxiliar ni crea/graba tablas. En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

BUENAS PRÁCTICAS
  • Verificar tipos/anchos, clave primaria, relación e índice antes de activar. Probar validación, cancelación y persistencia por separado; View debe usar IDs correctos.
  • En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

Contenido relacionado

REFERENCIAS
  1. TOTVS. MPFormModel. TDN. Consulta el 2026-10-27.
  2. TOTVS. FWFormModel. TDN. Consulta el 2026-10-27.
  3. TOTVS. FWFormView. TDN. Consulta el 2026-10-27.
  4. TOTVS. FWFormStruct. TDN. Consulta el 2026-10-27.
  5. Atilio. zMVCMd3.prw; commit 7d275a7. Consulta el 2026-10-27.
Estado
En revisión
Página creada el
Última revisión el
Idioma original
Portugués
Revisión
Usina.BR
0 comentario(s) aprobado(s)

Comentarios

Todavía no hay comentarios aprobados.

Inicia sesión con Google o Microsoft para comentar.

Desarrollado con Usina Docs · Alpha