4D View Pro le ofrece una nueva forma de cargar sus datos y crear sus plantillas: el contexto de datos. Le permite crear su documento con marcadores de posición y rellenarlos estableciendo este contexto de datos.
Con sólo unas pocas líneas de código, puede mostrar objetos o colecciones sin autorizarlos primero con VP SET CUSTOM FUNCTION¡! Profundicemos en los detalles.
Crear un documento con marcadores de posición
En primer lugar, necesitas crear un documento con los atributos de tu objeto. Por ejemplo, si utiliza un objeto con 2 atributos, Nombre y Apellido, puede crear dos marcadores de posición con el VP SET BINDING PATH :
VP SET BINDING PATH(VP Cell("ViewProArea"; 0; 0); "Firstname")
VP SET BINDING PATH(VP Cell("ViewProArea"; 0; 1); "Lastname")
No aparecen valores en su hoja porque el contexto de datos aún no está definido. Para comprobar que sus celdas están correctamente vinculadas, vaya a la pestaña DATOS de la interfaz de la cinta de opciones y haga clic en el botón Vinculación de la hoja. Los nombres de sus atributos aparecerán entre paréntesis:
Contexto de datos
Ahora que su plantilla está lista, sólo tiene que establecer su contexto de datos con su objeto utilizando VP SET DATA CONTEXT:
$object:=New object
$object.Firstname:="John"
$object.Lastname:="Smith"
VP SET DATA CONTEXT("ViewProArea"; $object)
Así, la plantilla se actualiza automáticamente:
Por supuesto, el usuario puede modificar los datos:
En este caso, no hay problema; simplemente usa el método VP Get data context para recuperar tu objeto con las modificaciones:
$object:=VP Get data context("ViewProArea")
//$object={Firstname:Judith,Lastname:Smith}
Inyección de datos en la hojaS
Si pasas una colección a tu contexto de datos, esta colección se vinculará automáticamente a la hoja. Si la opción autoGenerateColumns del comando VP SET DATA CONTEXT se establece como verdadera, la colección se muestra automáticamente en la hoja.
Por ejemplo, si quieres mostrar una tabla de la base de datos, sólo tienes que escribir:
$people:=ds.People.all().toCollection()
VP SET DATA CONTEXT("ViewProArea"; $people; New object("autoGenerateColumns"; True)
Se obtiene:
El número de columnas y filas se calcula automáticamente, y los nombres de las columnas son los nombres de los campos de la tabla.
Tenga en cuenta que si autoGenerateColumns no está configurado como verdadero, ¡no se mostrará ningún dato!
Vea el IDH de arriba para ver estos comandos en acción. Además, asegúrese de leer la documentación para obtener más detalles.