En un entorno profesional en el que la gestión y la producción de documentos son cruciales, es esencial disponer de herramientas poderosas y flexibles. Imagine poder diseñar plantillas de documentos dinámicos directamente desde su cliente Desktop, integrando fórmulas y datos de su base de datos, y luego generar estos documentos con un solo clic a través de una interfaz web intuitiva. ¡Eso es precisamente lo que 4D Write Pro y 4D Qodly Pro le permiten hacer!
En el blog de esta semana, exploraremos cómo estas dos soluciones se complementan perfectamente para automatizar y optimizar sus procesos documentales. Descubrirá cómo crear plantillas personalizadas en 4D Write Pro y cómo, gracias a 4D Qodly Pro, los usuarios web pueden introducir los datos necesarios, activar la generación de documentos e incluso elegir almacenarlos en la base de datos o devolverlos mediante un atributo calculado.
Para demostrar este proceso, utilizaremos la aplicación Performance Review, que está disponible para su descarga. Prepárese para transformar la forma en que crea y gestiona sus documentos, al tiempo que simplifica sus flujos de trabajo y aumenta la eficiencia.
Creación de plantillas en el cliente de escritorio
4D Write Pro es una poderosa herramienta de procesamiento de texto cuya principal fortaleza reside en su capacidad para crear plantillas de documentos vinculadas a su base de datos. Esta funcionalidad le permite generar automáticamente varios tipos de documentos: cartas, contratos, facturas, catálogos, informes de gastos y mucho más.
En la aplicación Performance Review, se utilizan varias plantillas de documentos en función del departamento del que se trate. Por ejemplo
Plantilla de pedidos
Plantilla de control de calidad
Estas plantillas integran fórmulas dinámicas directamente vinculadas a la base de datos, lo que facilita la creación de documentos personalizados para cada departamento.
Un formulario de la aplicación Desktop permite crear estas plantillas de forma simplificada. Para añadir fórmulas fácilmente, una lista desplegable propone todas las fórmulas pertinentes para la plantilla.
Estas fórmulas se definen en un fichero JSON llamado «WPexpression.json».
He aquí un extracto:
{ "expression": [{ "name": "Apellido", "formula": "This.data.review.Employee.Lastname" }, { "name": "Nombre", "formule": "This.data.review.Employee.Firstname" }, { "name": "NombreColaborador", "formula": "This.data.review.Employee.Firstname+\" \"+This.data.review.Employee.Lastname" } ] }
Para saber más sobre 4D Write Pro y ORDA, lea este blog: ORDA y 4D Write Pro: ¡La pareja poderosa!
Para simplificar la creación de tablas, el Asistente de tablas integrado en el componente 4D Write Pro Interface es ideal.
Para que funcione perfectamente con nuestra estructura de base de datos, añadimos archivos de configuración que contienen las fórmulas necesarias para los documentos de Performance Review. Por ejemplo:
{ "tableDataSource": "This.data.review.Skills.orderBy(\"Group asc\")", "columns": [{ "check": true "header": "SkillName", "source" : "This.item.Name" }, { "check": false "header": "CheckCodeI", "source": "Choose(This.item.ID_Score=1; \"X\"; \"\")" }, { "check": falso "header": "CheckCodeP", "source": "Choose(This.item.ID_Score=2; \"X\"; \"\")" },{ "check": false "header": "CheckCodeR", "source": "Choose(This.item.ID_Score=3; \"X\"; \"\")" },{ "check": false "header": "CheckCodeE", "source": "Choose(This.item.ID_Score=4; \"X\"; \"\")" },{ "check": true "header": "ScoreName", "source": "This.item.Score.Name" },{ "check": true "header": "ScoreCode", "fuente": "This.item.Score.Code" } ], "breaks": [{ "label": "SkillGroup", "source": "This.item.Group" } ], "breakFormulas": [{ "label": "GroupName", "fuente": "This.item.Group" } ], "extraFormulas": [{ "label": "ScoreSkillName", "source" : "This.data.review.ScoreSkill.Name" },{ "label": "ScoreSkillCode", "source": "This.data.review.ScoreSkill.Code" },{ "label": "CheckSkillScoreCodeI", "source": "Choose(This.data.review.ID_ScoreSkill=1; \"X\"; \"\")" }, { "label": "CheckSkillScoreCodeP", "source": "Choose(This.data.review.ID_ScoreSkill=2; \"X\"; \"\")" }, { "label": "CheckSkillScoreCodeR", "source": "Choose(This.data.review.ID_ScoreSkill=3; \"X\"; \"\")" }, { "label": "CheckSkillScoreCodeE", "source": "Choose(This.data.review.ID_ScoreSkill=4; \"X\"; \"\")" } ] }
Con estas fórmulas, crear una tabla de competencias y puntuaciones resulta muy sencillo. Después de personalizar la tabla, este es el resultado:
Para obtener más información sobre la configuración y las posibilidades que ofrece el asistente de tablas, consulte:
- Blog: Asistente para crear tablas con datos
- Formación: 4D Write Pro y 4D View Pro se encuentran con 4D – el siguiente nivel de plantillas inteligentes
Llenado de datos en el Cliente Web
Una vez creada la plantilla, los usuarios ingresan los datos requeridos a través de una interfaz web intuitiva. Gracias a 4D Qodly Pro, este paso se integra perfectamente con su base de datos, asegurando que la información introducida corresponde a los campos definidos en sus plantillas.
Para más detalles sobre la configuración de estas interfaces, no dude en consultar nuestros blogs anteriores sobre:
- Crear una lista interactiva de datos con 4D Qodly Pro
- Construir una gestión dinámico de datos en la aplicación Qodly: crear, agregar, editar y eliminar
GeneraR el Documento Final
El documento final se genera directamente desde la interfaz web. Cuando un usuario hace clic en el botón dedicado, el evento «On Click» dispara la función «selectedReview.generatePDF()».
A continuación se muestra el código que gestiona la generación del documento PDF:
Function generateDocument()->$doc: Object
var $context : Object
var $template : cs.TemplateEntity
// Create context
$context :=This.createContext()
// Load template
$template :=This.Employee.Departement.Template.Template
// Create 4D Write Pro document
$doc:=WP New($template)
WP SET DATA CONTEXT ($doc; $context)
WP COMPUTE FORMULAS ($doc)
return $doc
exposed Function generatePDF ()
var $WPdoc : Object
var $blob : 4D.Blob
// Generate WP document
$WPdoc:=This.generateDocument()
// Convert to PDF
WP EXPORT VARIABLE ($WPdoc; $blob; wk pdf)
// Save in database
This .DocumentPDF:=$blob
This .save()
Permiso
En la aplicación web, los usuarios no pueden acceder a la tabla Template. Sin embargo, la función «Review.generatePDF» necesita acceder a estos datos para generar el documento PDF. Para ello, creamos una «promoción» en la función.
- Creación del privilegio «generatePDF«: en la página Roles y privilegios, definimos un nuevo privilegio denominado generatePDF.
- Concesión de derechos de lectura: concedemos permiso de lectura a las clases de datos Departamento y Plantilla. Estos derechos son esenciales para localizar la plantilla Write Pro necesaria para generar el documento.
- Promover la función «Review.generatePDF»: asignamos la opción Promote a la función Review.generatePDF. Con esta promoción, cuando se llama a la función en el servidor, ésta adquiere automáticamente el privilegio generatePDF y puede acceder a los datos típicamente restringidos.
Este mecanismo garantiza que sólo los procesos autorizados puedan ampliar temporalmente sus derechos para realizar tareas específicas, manteniendo al mismo tiempo un alto nivel de seguridad y control sobre el acceso a los datos.
¡Listo!
Siguiente paso
Combinando 4D Write Pro y 4D Qodly Pro, puede automatizar la generación de documentos dinámicos fusionando plantillas predefinidas y datos en tiempo real. Este enfoque ofrece muchas ventajas:
- Automatización de documentos: reduzca las tareas manuales mediante plantillas dinámicas.
- Optimización del flujo de trabajo: separe claramente la creación de plantillas (cliente Desktop) de la introducción de datos (cliente Web).
- Ahorro de tiempo y mayor calidad: una solución práctica que mejora la productividad y la calidad de los documentos generados.
Le animamos a probar este enfoque en sus proyectos y descubrir los beneficios de integrar 4D Write Pro con 4D Qodly Pro. No dude en comentar para compartir su opinión o consulte nuestros otros recursos para ampliar sus conocimientos.