rad+plus+manual+v1.0

22
RAD Plus (+) Documentación oficial Autores: Federico M. Bordon Sergio A. Pohlmann Doglas A. Dembogurski Enero 2009 – ycube.net 1

Upload: victor-martinez

Post on 05-Jul-2015

152 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: RAD+Plus+Manual+V1.0

RAD Plus (+)Documentación oficial

Autores: Federico M. Bordon Sergio A. Pohlmann

Doglas A. Dembogurski

Enero 2009 – ycube.net

1

Page 2: RAD+Plus+Manual+V1.0

IndicePrefacio ..................................................................................................................................................... 3

Sobre este manual ............................................................................................................................................. 3

Sobre la traducción .......................................................................................................................................... 3

Parte I - Conceptos Básicos ...................................................................................................................... 3 Introducción ..................................................................................................................................................... 3

Presentación ....................................................................................................................................................................... 3 Objetivos ............................................................................................................................................................................ 4 Características .................................................................................................................................................................... 4 Requerimientos .................................................................................................................................................................. 5 Licencia de Uso ................................................................................................................................................................. 5

Instalación ......................................................................................................................................................... 6 Como Instalar ..................................................................................................................................................................... 6 Instalación en el Cliente ..................................................................................................................................................... 7 Acceso Inicial .................................................................................................................................................................... 7

Presentación del Sistema de Menús ................................................................................................................ 7 Developer ........................................................................................................................................................................... 8 Menú Plus (+) .................................................................................................................................................................... 8

Parte II – Generando sistemas con el plus .............................................................................................. 8 - Permisos de acceso ........................................................................................................................................ 8

Grupos ................................................................................................................................................................................ 8 Usuarios ............................................................................................................................................................................. 8 Auditoria ............................................................................................................................................................................ 8 Contraseñas ........................................................................................................................................................................ 9

Formularios ...................................................................................................................................................... 9 La programación Orientada a Formularios ........................................................................................................................ 9 Propiedades de un Formulario ........................................................................................................................................... 9 Campos – Contenido de un Formulario ............................................................................................................................. 9 Como el plus evalúa los formularios ............................................................................................................................... 10

Campos o Elementos de un Formulario ....................................................................................................... 11 Campos o Elementos ....................................................................................................................................................... 11 Propiedades de los campos .............................................................................................................................................. 11

Menús .............................................................................................................................................................. 11 Tipos de Menús ................................................................................................................................................................ 11 Propiedades de los menús ................................................................................................................................................ 11 Impresión de resultados de consultas y browsers ............................................................................................................ 12

Base de Datos .................................................................................................................................................. 13 Introducción ..................................................................................................................................................................... 13 Integridad referencial ....................................................................................................................................................... 13 Funciones y Procedimientos almacenados ...................................................................................................................... 13 Log ................................................................................................................................................................................... 13

Reportes .......................................................................................................................................................... 14 Simples ............................................................................................................................................................................ 14 Personalizados ................................................................................................................................................................. 18

Generar Documentación ................................................................................................................................ 18 Manual de Usuario ........................................................................................................................................................... 18 Diccionario de Datos ....................................................................................................................................................... 18 Documentación Detallada ................................................................................................................................................ 19 Exportar a DIA ................................................................................................................................................................ 19

Parte III – Referencia adicional ............................................................................................................ 20 Funciones ........................................................................................................................................................ 20

Compatibilidad con recursos externos .......................................................................................................... 21

Parte IV – Recomendaciones ................................................................................................................. 21 Actualizaciones de versión ............................................................................................................................. 22

Consistencia de la Base de Datos ................................................................................................................... 22

2

Page 3: RAD+Plus+Manual+V1.0

Prefacio

Esta es la versión oficial de la documentación del Plus RAD. Una herramienta destinada al desarrollo rápido de aplicaciones de gestión, multiplataforma, rápida y leve, que esperamos pueda ser parte de su "cinto de utilidades".

Sobre este manual

El presente material ha sido desarrollado con un atraso considerable debido a las personas más involucradas en el desarrollo y/o mantenimiento del RAD Plus no siempre pueden dedicarse del todo a esta herramienta por falta de recursos.

Pero aun así hicimos un gran esfuerzo para lograr un primer manual con lo mínimo necesario que les sirva de guía al desarrollador.

Esto es lo que esperamos que encuentre en este manual: Una referencia rápida, fácil y concisa.

Si usted quiere contribuir con la documentación, envíe su crítica o sugerencia, para [email protected] o [email protected] , que la misma será muy bien recibida.

Saludos,

... Vida larga y Prosperidad...

Sérgio A. Pohlmann

Sobre la traducción

Originalmente, este manual fue escrito en portugués, en virtud de ser la lengua nativa del autor, y, evidentemente, las palabras fluyen mas fácilmente, cuando se esta escribiendo en su idioma natal.

Sin embargo, la estructura del programa esta preparada para aceptar traducciones para cualquier otro idioma. Si usted desea contribuir con la traducción del todo o parte del presente material, sea bienvenido, y manos a la obra...

El autor se encuentra fuera de Brasil ya hace muchos años, y su portugués ya no es el mismo.

Correcciones ortográficas también serán muy apreciadas :)

Parte I - Conceptos Básicos

Esta sección define algunos conceptos básicos que permiten al usuario familiarizarse con la herramienta.

Introducción

Presentación

El plus es una herramienta de desarrollo RAD (Rapid Aplication Development- Desarrollo rápido de aplicaciones), gratis para el desarrollador (open source), que posee características muy interesantes para facilitar el desarrollo y uso del software en intranets y hasta en Internet.

Su finalidad es la de permitir el desarrollo rápido de aplicaciones comerciales, cuidando que el desarrollador se enfoque mas con el contenido y con la idea de su sistema, antes que de detalles

3

Page 4: RAD+Plus+Manual+V1.0

cansativos, como la conexión a base de datos, el desarrollo de manuales, validación de campos, RPCs, impresiones, etc.

Objetivos

Fue desarrollado a partir de un antiguo sueño de su programador, Sérgio Antônio Pohlmann, de desarrollar una herramienta eficiente, que realmente facilitaría la vida de los programadores, y suplantase algunas dificultades "eternas" en el área de desarrollo de sistemas:

Tiempo - Gran parte de los programadores terminan por no conseguir cumplir con el tiempo estimado para el desarrollo, debido a que la estructura real del sistema que esta desarrollando normalmente no esta bien definida al inicio del proceso, que es una regla, cuando el programador define su presupuesto, y su tiempo de desarrollo. Para esto, el plus permite un cambio rápido y eficiente de la estructura básica del sistema en desarrollo, siendo orientado a formularios, concepto muy poco usado en la actualidad, pero que facilita bastante de manera abstracta durante el proceso de todo.

Base de Datos - Un problema adicional acostumbra a ser el acceso a base de datos. Dependiendo del lenguaje utilizado (y de la base de datos, obviamente), la conexión puede ser uno de los grandes dolores de cabeza del programador. El plus abstrae en gran medida el proceso de conexión a la base de datos, permitiendo al programador centrarse en la aplicación en si.

Seguridad - Sea en cuestión de seguridad externa, como en el propio control de usuarios, el ítem seguridad acostumbra a ofrecer un desafío relativamente in transponible al desarrollador de una aplicación comercial. Utilizando la herramienta aquí descripta, la cuestión de control de usuarios se restringe a determinaciones de (relaciones de confianza) entre usuarios, grupos, y formularios, haciendo el control efectivo de accesos, menús, auditoria, etc., queda a cargo del propio plus.

Características

El concepto completo del RAD Plus es bastante complejo. Seria muy difícil y tedioso explicar, en una simple introducción, todas sus características. Para esta explicación (funcionamiento interno, conceptos más profundos, etc.), estamos preparando artículos adecuados, como ejemplos más profundos y prácticos.

De cualquier forma, para dar una idea de su funcionamiento, citamos aquí algunas de sus principales características:

• Acepta como servidor, cualquier Sistema Operativo que acepte trabajar con PHP (*), Apache (*) e MySQL (*). Evidentemente, esto incluye Windows (*), Linux (*), e MAC OS X (*).

• Instalación rápida en el servidor (solo descomprimir) y en el cliente (solo es necesario tener un Firefox (*) instalado).

• Compatibilidad total con clientes Windows (*), Linux (*), y MAC OS X (*).

• Muy rápido y leve.

• Funciona en modo aplicación y en modo navegador.

• Posee un poderoso sistema de control de accesos, utilizando permisos de accesos por grupos y por usuarios.

• Log interno para rastros de auditoria.

• Poderoso generador de menús, con generación muy rápida, fácil e intuitiva.

• Menús sensibles a permisos de usuarios.

4

Page 5: RAD+Plus+Manual+V1.0

• Desarrollo con orientación a formularios, de forma simple, sin exigir un profundo conocimiento de programación.

• Sistema transaccional transparente.

• Con soporte de integridad referencial a nivel de aplicación (no son necesarias las definiciones en la base de datos).

• Soporta Procedimientos almacenados y funciones.

• Consistencia automática de la base de datos.

o Generador de reportes simplificado, que permite generar reportes de forma muy rápida, además de permitir (para los que desean profundizarse), alteraciones a nivel de programación en PHP (*), CSS y HTML.

Estructura Básica del Plus

Requerimientos

Como Servidor, una PC compatible con la arquitectura IBM-PC, Macintosh, RISC, u otra cuyo sistema operativo acepte trabajar con PHP, Apache y MySQL (versión 5), que posea un mínimo de 128 Mb de memoria RAM, espacio libre en disco duro de 2Mb, y una velocidad mínima de 200 MHz. Eso incluye, obviamente Windows, Linux, y MAC OS X.

No! No has leído mal: Los requerimientos son realmente muy modestos!

Como cliente, cualquier computador capaz de ejecutar un Firefox o cualquier otro navegador con motor Gecko

Licencia de Uso

El plus, desde la versión 1.2, posee una licencia Open Source.

Todos los derechos de autor de la herramienta pertenecen a su desarrollador, Sérgio Antônio Pohlmann, y el listado completo del sistema, así como el reconocimiento de los derechos autorales se encuentran debidamente registrados.

5

Page 6: RAD+Plus+Manual+V1.0

El uso del programa está permitido para fines comerciales o no, sin restricciones de uso, desde que este no sufra ninguna alteración en su estructura.

El programa es otorgado de forma gratuita, sin ninguna garantía de cualquier naturaleza. El autor no se responsabiliza por el funcionamiento del programa, daños causados, prejuicios cualesquiera. La única responsabilidad asumida en cuanto a cualquier riesgo, en la instalación de esta herramienta, es la del usuario final, que acepta todos los riesgos y posibles daños.

La licencia utilizada es la Creative Commons, basada en GPL Version 2. Um resumen de Creative Commons, licença GPL Completa, puede encontrase en la página oficial do projeto GNU / GPL.

Instalación

Plus funciona siempre en una configuración cliente/servidor/Web. Quiere decir que es necesario definir donde el sistema y los servicios (servidor de base de datos, de PHP y Web) estarán instalados, y donde van a funcionar el/los cliente/s.

Como Instalar

Requisitos

DEBEN estar instalados:

- Un servidor WEB (apache o alguno equivalente)- PHP versión 4 o superior- MySql versión 5 o superior - El instalador del Plus

En Windows, es más fácil, si no se dispone de práctica en la instalación de estos servidores (los tres primeros de la lista), puede utilizar un instalador estándar, como Xampp, Wamp 5 o Easyphp (entre otros). Verifique la página del instalador escogido, como bajar e instalar el mismo.

El instalador del Plus consiste en un archivo compreso, que puede ser bajado de la página oficial del grupo de desarrollo (sección archivos)

http://groups.google.com.py/group/desarrollo_plus_rad?hl=es

Para instalar el Rad Plus debe descomprimir el archivo y colocarlo en su carpeta en el servidor. Generalmente esta carpeta se llama htdocs o www

A continuación debe crear un usuario en la base de datos

1- Abra su navegador Mozilla Firefox entre la versión 1.5 o 2.xx

2- Debe crear un usuario llamado "plus" con contraseña "case" para ello haga lo Sgte.

2.1 - Instalación:

Si tiene PhpMyAdmin

2.1.1- Abra un navegador cualquiera y ponga en la url "http://localhost/phpmyadmin/" Aparecerá la interfaz del Administrador de base de datos PhpMyAdmin.

2.1.2- Haga clic en Privilegios --> Agregar nuevo usuario

2.1.3- En el campo Nombre de usuario escriba plus.

2.1.4- En el campo Servidor déjelo en blanco.

2.1.5- En el campo Contraseña ponga case y en el siguiente campo vuelva a escribir

6

Page 7: RAD+Plus+Manual+V1.0

case.

2.1.6- Después en Privilegios globales seleccione Marcar todos/as y haga clic en el Botón continuar.

Instalación en el Cliente

Rad Plus funciona con cualquier navegador con motor Gecko así como Mozilla Firefox 2 (Recomendado), Wyzo u otros.

Acceso InicialComo en la sig. Imagen basta con poner en la url del navegador lo siguientehttp://localhost/plus/plus.php con eso basta.

Le aparecerá la ventana de login

Ponga en Username : Developer Password : plus

Presentación del Sistema de Menús

7

Page 8: RAD+Plus+Manual+V1.0

Developer

Menú Plus (+)

Parte II – Generando sistemas con el plus

Determina criterios y sugerencias para la generación de sistemas a partir de la herramienta Plus RAD.

- Permisos de acceso

Trustee: Significa o viene de Fideicomiso (Nivel de confianza) que todo sistema debe tener RAD Plus provee un poderoso sistema de niveles de acceso permitiendo una implementación fácil y rápida y confiable basada en los principios de NOVELL un sistema totalmente binario creado en la década de los 80.

Permite asignar permisos tanto a nivel de grupos de usuarios por cada ítem de un formulario además de los menús.

Grupos

RAD Plus viene con formulario de ABM de grupos por defecto en el Menú Developer cada grupo puede tener diferentes permisos o Trustees unos por encima o debajo del otro por lo que se recomienda al empezar un proyecto empezar por crear los grupos basándose en el organigrama de la empresa en cuestión, esto no quiere decir que después no se pueda modificar simplemente por comodidad al desarrollar formularios en el futuro.

UsuariosUna vez que hayamos creado los grupos podemos agregar usuarios del sistema acordémonos que al asignar como Developer a un usuario este poseerá todos los Trustees algo como el root de un S.O. Linux MacOSx.

Auditoria

Por defecto RAD Plus cuenta con un sistema poderoso de logs de auditoria tanto así que loguea inclusive en el momento de desarrollarse un sistema, Pero por que es importante esto? Considere un desarrollador novato que se equivoca en una consulta. El Project Leader experto filtra los logs y verifica rápidamente cual ha sido el error del novato. Aparte de solo loguear se puede acceder a los logs con un formulario de filtros propio en donde se puede filtrar por el usuario, fecha u hora acción etc. etc.

8

Page 9: RAD+Plus+Manual+V1.0

Contraseñas

Por supuesto que al crear usuarios se le debe asignar una contraseña para que pueda entrar al sistema y además el usuario perteneciente al grupo de Developer siempre podrá acceder a las contraseñas de todos los usuarios.

Formularios

La programación Orientada a Formularios

La programación orientada a formularios es una nueva forma de programación que se basa en englobar todo tipo de aspecto o problema a resolver por medio de formularios, cada formulario puede tener ítems de varios tipos con sus respectivas propiedades así como el formulario mismo. Cada formulario puede vincularse y/o manipular una tabla en la base de datos, verificar campos, consistencia, etc.

Propiedades de un Formulario

Mas adelante explicaremos en detalle las propiedades de un formulario mientras tanto mostraremos como crear formularios con esta herramienta.

En el menú Developer Formularios accederá a la lista tipo Browse de todos los formularios si es que los tiene es básicamente un ABM de formularios en donde puede seleccionar, crear modificar o borrar formularios, vea la siguiente imagen para mas detalles de cómo se vería esta lista.

Campos – Contenido de un Formulario

A cada Formulario se le puede agregar o quitar componentes (Campos o Ítems) es importante resaltar que cada campo tiene a su vez una serie de propiedades entre las cuales la mas importante es la de ignorar, tildada esta significara que no generara un campo en la tabla de la base de datos, cada formulario esta relacionado a una tabla de la base de datos pero no quiere decir que todos los campos o ítems agregados a nuestro formulario existan realmente en la tabla de la base de datos. Vea la Sgte. Imagen para tener una idea de cómo se vería un formulario con sus Ítems.

9

Page 10: RAD+Plus+Manual+V1.0

Haciendo clic en propiedades de un formulario tenemos

Como el plus evalúa los formularios

El plus evalúa cada formulario con sus propias funciones internas (funciones javascript), cada formulario tiene definidas algunas funciones que siempre están pendientes de cambios y se evalúan además de estas se le agregan las que el desarrollador agrega a un formulario tales como formulas o simplemente cuando se define un campo como requerido en este caso si el campo no esta relleno

10

Page 11: RAD+Plus+Manual+V1.0

automáticamente se bloqueara el botón insert debido a que la evaluación de allValid() (una de las funciones internas del plus) es false.

Campos o Elementos de un Formulario

Campos o ElementosCada formulario puede tener n cantidad de campos estos campos pueden ser de tipo:

1- text : campo de tipo texto 2- select_list : lista de selección o combo3- dynamic_select_list: combo o lista de selección dinámica4- subform: un elemento que apunta a otro formulario prefabricado5- formula: un campo que evalúa formulas o funciones javascript6- date: campo de tipo fecha7- report: un botón que llama a un reporte prefabricado 8- proc: un botón que ejecuta un SQL, función o procedimiento almacenado.

Cada uno de estos campos pueden existir o no en la tabla de la base de datos a la cual apunta el formulario exepto los subforms, reports y proc, no deben existir nunca y deben ser marcados como ignorar, por que el plus todavía no lo hace automáticamente.

Propiedades de los camposA continuación describiremos de la manera mas detallada posible las propiedades que se pueden

definir en cada elemento:

Menús

Tipos de Menús

El plus cuenta con tres tipos de menús: headers, menús (dependientes de los headers) y submenús (dependientes de los menús)

Propiedades de los menús

Lo más importante en las propiedades de los menús son:

Tipo: Header, menú o submenu.

En caso de que sea menú o submenú tendrá

Relación: Con un menú o un header que debe seleccionarse.

Operación: 1_Browse si es que el formulario se abrirá en forma de lista de datos o 20_Consult si el formulario se abrirá en forma de consulta

Link: Debe seleccionarse con que formulario ira relacionado el menú

Filtro: Si se desea agregar un filtro

Grupo: Quienes tendrán acceso a este menú, puede haber mas de uno

11

Page 12: RAD+Plus+Manual+V1.0

Impresión de resultados de consultas y browsers

Ejemplo de un formulario para hacer consultas

Al presionar sobre consultar en formularios de consulta lanza siempre a un formulario de tipo browse, un formulario tipo browse se ve como en la Sgte. Imagen y todos cuentan con unas propiedades definidas algunas bastante útiles como la de imprimir vista actual ahorrándonos a los desarrolladores a hacer reportes para imprimir.

12

Page 13: RAD+Plus+Manual+V1.0

Base de Datos

Introducción

Integridad referencial

RAD Plus maneja la integridad referencial a nivel de aplicación no teniendo que preocuparse por claves primarias, claves foráneas, etc. Estos se pueden definir en el menú DeveloperBase de Datos Integridad Referencial.

Funciones y Procedimientos almacenados

Para simplificar la programación de funciones y procedimientos almacenados se cuenta con una interfaz o ABM de funciones en donde se pueden crear funciones y el plus se encarga del manejo de la base de datos, esto simplifica el mantenimiento local o remoto ya que no es necesario interactuar directamente con la base para acceder a las funciones, sino a través de esta interfaz misma disponible todo el tiempo.

Log

Todas las consultas SQL de tipo DLL y/o DML como select, insert, etc. Son logueadas en un archivo llamado plus_sql.log en el directorio log dentro de la carpeta plus, con el fin de dar seguimiento tanto en el desarrollo como en el mantenimiento de un sistema, también sirve como rastros de auditoria. Este

13

Page 14: RAD+Plus+Manual+V1.0

log puede ser activado/desactivado en el menú Developer Base de datos Activar log / Desactivar log.

Reportes

Simples

Reglas de sintaxis

Acuérdese de que el motor que procesa formularios de reportes es diferente del motor de formularios de datos. Por ese motivo, debemos observar los siguientes puntos:

• No todas las variables y operaciones están presentes. Vea el tópico destinado a variables, para más informaciones.

• La sintaxis de concatenación cambia. En formularios de datos solimos utilizar el signo más (+) para concatenar elementos o strings. Ahora, la concatenación pasa a ser representada por el signo punto (.).

Variables internas

En el proceso de diseño de reportes se puede utilizar libremente un conjunto de variables muy parecido con el que se utiliza en formularios. De hecho, algunas variables de formulario se pueden utilizar de forma directa o incluso, de forma más simplificada, en reportes.

Dentro del formulario de reportes:

el['elemento']

En los formularios de reportes, se pueden utilizar las mismas variables de elementos que antes fueron utilizadas en los formularios de datos. Como los datos ya existen, y no pueden ser alterados por el sistema de reportes, los métodos get(), getStr(), getVal(), getDate() son automáticamente substituidos por la referencia directa del elemento, sin la necesidad de especificar el método.

Para ser más claro, es lo mismo, especificar:

el['nombre'].get()

que

el['nombre']

Observación:

• Cuándo usado como validación de un campo, o como parte de un query para una consulta SQL, siempre devuelve el resultado envuelto entre comillas simples.

• Cuándo se trata de un campo de una tabla, es decir, el resultante de una consulta, no presenta las comillas.

• Para mantener compatibilidad retroactiva con versiones antiguas, todavía se soporta las variables sup_elemento. Estas variables traen el contenido del elemento, pero no presentan comillas.

old['elemento']

Cuándo se hace el procesamiento de cada fila del reporte, los valores de los elementos de la fila se almacenan en un arreglo de elementos old[]. Pueden ser accedidos de forma directa, y siempre representan el valor del elemento referenciado

14

Page 15: RAD+Plus+Manual+V1.0

Ejemplo: La siguiente condición:

el['valor']<old['valor']

Verifica si el elemento 'valor' de la fila actual (a ser impresa) es menor que el elemento 'valor' de la línea anterior (ya impresa).

endConsult

Retorna true si la consulta efectuada ya no tiene más ninguna fila de respuesta.

firstRow

Retorna true si esa es la primera fila resultante de una consulta..

p_user

Retorna el nombre del usuario actual.

p_user_

Iden a p_user pero con el nombre del usuario entre comillas (usado normalmente para consultas SQL).

thisDate

La fecha actual, en el formato dd-mm-aaaa.

thisDate_

Iden a thisDate pero con el resultado entre comillas (usado normalmente para consultas SQL).

thisTime

La hora actual, en el formato hh:mm.

thisTime_

Iden a thisTime pero con el resultado entre comillas (usado normalmente para consultas SQL).

Campos del formulario de Reportes:

Como anteriormente mencionado, existen algunas diferencias en cuánto a algunas funcionalidades, entre un formulario de reportes y un formulario convencional de datos.

Propiedades:

Los campos de propiedades de un reporte están citados a continuación:

Nombre

El nombre de referencia interno del reporte. No debe contener espacios, acentos o caracteres especiales.

15

Page 16: RAD+Plus+Manual+V1.0

Alias

El nombre “público” del reporte. Puede contener espacios y otros caracteres.

Documentación

La descripción del reporte, que aparecerá en la documentación oficial del proyecto generado.

Help

El contenido de ayuda que constará en el manual del usuario y en helps sensibles al contexto.

Query

La consulta SQL a ser formulada para generar el reporte.

Permite un formato parecido con el formato de las queryes de formularios convencionales, pero con algunas pequeñas diferencias que hay que observar. Vea más detalles en Reglas de sintaxis.

Rehacer prg

Cuándo habilitado, fuerza la reconstrucción del módulo de programa responsable por el reporte actualmente editado.

CUIDADO: Al rehacer el programa, cualquier alteración manual de este será definitivamente borrada.

Rehacer tpl

Cuándo habilitado, fuerza la reconstrucción del módulo de template responsable por el reporte actualmente editado.

CUIDADO: Al rehacer el template, cualquier alteración manual de este será definitivamente borrada.

Incluir totales

Permite acceder a los datos de inclusión de totales y subtotales para el reporte

Prevalidar subtotales

Los subtotales normalmente son validados (verificación de la condición) y sumados (caso se cumpla la condición) después de la impresión de la línea actual. En el caso de que esa casilla esté habilitada, la validación se dará antes de la impresión de la línea corriente. Eso permite impedir condicionalmente la subtotalización de algunos datos.

16

Page 17: RAD+Plus+Manual+V1.0

Condición para subtotales

La especificación de la condición para que se imprima una línea de subtotales. En el momento en que se imprime la línea de subtotales, todos los campos de subtotal son reseteados, volviendo su valor a cero (0) para permitir los cálculos para el próximo subtotal.

Campos con subtotal

La relación de los campos que deben ser calculados para subtotales.

Observe que los campos deben ser separados por coma, y deben ser directamente relacionados con el header de la columna correspondiente.

Ejemplo: Si tenemos una consulta tipo: 'SELECT codigo, nombre, val_comp AS valor FROM compras'

Los campos realmente considerados son: codigo, nombre y valor.

El tercer campo recibe el nombre del alias (valor), y no el nombre original del campo (val_comp).

Decimales

Número de posiciones decimales de la columna. No solamente la fila que contendrá el subtotal será alterada, sino toda la columna del dato.

Condición para totales

Permite estipular una condición para que el total sea impreso al final del reporte

Campos con total

La relación de los campos que deben ser calculados para el total.

Observe que los campos deben ser separados por coma, y deben ser directamente relacionados con el header de la columna correspondiente. Observe el comentario a cerca de los campos con subtotales

Decimales

Número de posiciones decimales de la columna. No solamente la fila que contendrá el total será alterada, sino toda la columna del dato.

Procedure final

Define una consulta SQL que será efectuada tan pronto el formulario de reportes termine de armar el reporte solicitado por el usuario. Permite actualizaciones de campos relacionados con la impresión.

17

Page 18: RAD+Plus+Manual+V1.0

Obedece las mismas reglas que el campo de Query.

Personalizados

Una vez que nuestra consulta este perfecta se debe ir a propiedades de nuestro reporte y desmarcar las opciones Rehacer prg y Rehacer tpl. Luego dentro del directorio project/nuestro_proyecto/reports/config/ , se puede encontrar los templates recientemente creados de nuestro reporte.Editando ambos archivos el .prg y el .tpl podemos personalizar nuestro reporte en el .prg podemos utilizar programación en PHP para obtener i/o setear variables etc. También puede utilizar funciones internas del plus com extense( $value=0, $type=0, $upper=1) o exDate( $date ) etc. Como ejemplo la primera convierte un numero en letras ej: 250.000 = DOSCIENTOS CINCUENTA MIL y la segunda recibe una fecha y la pasa a letras.

En cambio en el .tpl podemos utilizar html, css y javascript para personalizar la vista del reporte una javascript muy utilizada en los .tpls es la siguiente al final del archivos

<script> self::print() </script>

Esto mostrara automáticamente el dialog de impresión en el momento de previsualizar el reporte sin necesidad de presionar Ctrl. + p

Generar Documentación

Manual de Usuario

El plus genera el Manual de usuario siempre actualizado para cada usuario considerando niveles de acceso y siempre se genera “On the fly” o sea en el momento en que se le pide. Por lo tanto la información en el manual esta siempre actualizada.

Diccionario de Datos

18

Page 19: RAD+Plus+Manual+V1.0

Ídem al manual de usuario también se puede generar “On the fly” el diccionario de datos con la información detallada de las tablas, campos, etc. Muy útil y algunas veces obligatoria en las empresas requerida por algunas leyes del País.

Documentación Detalladafalta_aquí_completar();

Exportar a DIALa mayoría de los arquitectos e ingenieros de software acostumbran a empezar un proyecto post

análisis con un diagrama DER o mas conocido como Diagrama de Entidad Relacional, como en la filosofía del Plus es desarrollar mas rápido eliminando algunos pasos y como el mismo Plus se encarga de generar la base y de la integridad no siempre es necesario empezar por un DER por lo que proyectos sencillos simplemente los desarrollamos sin preocuparnos por los DERs, aun así se cuenta con una opción para generar un DER en caso de que se desee analizar la estructura de la base para correcciones etc. Un mini ejemplo se muestra en la Sgte. Imagen.

19

Page 20: RAD+Plus+Manual+V1.0

Parte III – Referencia adicional

FuncionesA continuación se presenta una lista de funciones mas importantes que el Plus trae por defecto

estas funciones pueden ser utilizadas tanto en formulas como en consultas la mayoría de ellas en la forma nombre_campo.funcion() en las consultas se deben poner de la siguiente manera como Ej.:‘select fullname from clientes where fullname like ‘+cambo_busqueda.getStr() o de la siguiente manera considere que las dobles comillas en el plus es |{ para abrir y para cerrar }|‘select fullname from clientes where fullname like |{‘+cambo_busqueda.get()+%}|’ las consultas en Rad Plus van entre dos comillas simples siempre, estas funciones también se pueden utilizar en los campos llamados Filtro en las propiedades de un ítem.

Funcion Descripciónget() Obtiene el valor de un campo getStr() Obtiene el valor de un campo entre dos comillas (String)getVal() Devuelve el valor en formato numérico, 0 si hay error. Puede devolver un

entero como un float o doublegetDate() Extrae la fecha de un campo en formato dd-mm-aaaa. Ejemplo:

campo.getDate()getDay() Extrae el día de un campo de tipo DategetMonth() Extrae el mes de un campo de tipo DategetYear() Extrae el año de un campo de tipo DatethisDate_ Pone la fecha actual, se usa en formulas o en la propiedad por defecto de un

campo length() Devuelve la longitud del contenido de un campo de cualquier tipo de dato. empty() Devuelve true si el campo esta vacio de lo contrario devuelve falsenotEmpty() Devuelve true si el campo no esta vacio de lo contrario devuelve falsenotSearch() Devuelve true si el campo no es un campo de búsquedahasChanged() Devuelve true cuando el contenido de un campo ha cambiadoonChange() Devuelve true cada vez que el contenido va cambiandoforceFocus( name) Mueve el cursor al campo indicadogoBack() Vuelve hacia atrás, cierra el formulario actual, se usa en un campo de tipo

formula

20

Page 21: RAD+Plus+Manual+V1.0

forceInsert() Fuerza la inserción de los campos actuales en la base de datos, se usa en un campo de tipo formula

error ( text, time ) Muestra un mensaje durante el tiempo indicado, también se usa en un campo de tipo formula

diffDate( first, second ) Obtiene la diferencia entre dos fechas, devuelve un entero equivalente a los días

sumDays( first, days) Suma dos fechassumMonths( first, months ) Suma dos mesesdb( variable ) Extrae el valor del campo de una consulta realizada con anterioridad en

otro campo, se usa en formulassetValue( variable, value ) Setea un valor a un campo dadodisableAcceptButton() Deshabilita el botón aceptar o insertar en un formularioenableAcceptButton() Habilita el botón aceptar o insertar en un formulariodisableInsConsButton() Deshabilita el botón insertar en un formulario de consultaenableInsConsButton() Habilita el botón insertar en un formulario de consultadisableBackButton() Deshabilita el botón volver en un formularioenableBackButton() Habilita el botón volver en un formularioenableMessageButton( mes

sage, time )

Habilita el botón de mensajes por el tiempo indicado en milisegundos con el mensaje dado

disableMessageButton( me

ssage )

Habilita el botón de mensajes

disableChangeButton() Deshabilita el botón modificarenableChangeButton() Habilita el botón modificardisableDeleteButton() Deshabilita el botón borrarenableDeleteButton() Habilita el botón borrar

Compatibilidad con recursos externosPor su puesto que para los programadores excautivos que desean hacer sus propias funciones o

utilizar sus propias librerías o bibliotecas que acostumbra utilizar les ofrece total compatibilidad con librerías javascript o php utilizadas en los lugares debidos claro esta. En si mismo el Plus utiliza pocas bibliotecas externas pero una de ellas es la encargada de generación de documentación en PDF conocida como fpdf.

Parte IV – Recomendaciones1- Suele suceder que cuando un usuario inexperto empieza a desarrollar un programa lo hace

directamente enfocándose en los formularios y ventanas que el consumidor final utilizara esto no esta mal pero es recomendable que empiece por diseñar el organigrama de la empresa en la que se implementara el sistema e inmediatamente insertar en el proyecto dichos niveles Truestees o grupos de usuarios, por que es importante esto? Por que a medida que se van desarrollando formularios cada ítem del formulario puede ser sensible a grupos de usuarios etc. En cambio si primero se desarrolla el formulario tal vez después de establecer el organigrama de la empresa tenga que perder un poco de tiempo en modificar los formularios otra vez, si no tiene acceso al organigrama de la empresa cree unos por defecto y cuando los tenga modifique solamente sus nombres.

2- En el caso de que haga modificaciones en su estación de trabajo y el sistema ya esta corriendo en un servidor tenga en cuenta en el momento de actualizar en el servidor que debe forzar a una actualización para mantener consistencia de la base de datos en su maquina local en el momento de las modificaciones el Plus ya hace los cambios necesarios pero cuando se actualiza un servidor aun la base de datos no es consistente por lo que basta con ir al Menu DeveloperBase de Datos Forzar actualizacion a continuación cierre su cesión y vuelva a loguearse notara que dice Actualizando Base de datos favor espere… esto puede tardar unos minutos si su base de datos es demasiado grande o unos segundos si su proyecto es pequeño.

3- Tenga en cuenta que las codificaciones de base de datos de un sistema operativo y otro a veces son diferentes por ende si su el S.O. de sus estación de desarrollo no es igual al servidor en donde corre su sistema las contraseñas pueden diferir en la codificación que quiere decir esto?

21

Page 22: RAD+Plus+Manual+V1.0

Quiere decir que si actualiza su proyecto en su estación de desarrollo con la que esta en el servidor puede las contraseñas sean diferentes y no pueda entrar al sistema, para solucionar esto abra su programa gestor de base de datos preferido o consola y borre el usuario Developer de la tabla p_users y vuelva a loguearse el Plus creara otro automáticamente con la contraseña plus si lo prefiere puede volver a cambiar la contraseña en el menú +

Actualizaciones de versiónPara hacer una actualización de versión copie el contenido de la nueva versión que esta dentro de plus y remplace por la que esta en el directorio htdocs tenga cuidado no remplazar la carpeta project ya que esta tiene su/s proyecto/s

Cuales son los cuidados que se deben tener al hacer una actualización de versión.Cache del firefox : En algunos casos particulares después de una actualización de versión sucede que el navegador deja cacheado ciertos valores para agilizar la carga de la pagina en este caso suele suceder que no aparecen algunos elementos por lo que basta para solucionar el problema con darle Ctrl+ Shift + Supr encima del navegador y borrar todos los datos cache, historial etc., luego presionar F5 o recargar la pagina y listo ya tiene todo normalmente funcionando.

Consistencia de la Base de DatosUD. No tiene que preocuparse por la consistencia de la base de datos para ellos la longitud de los campos, tipos de datos etc. Todo es verificado en el momento de una verificación en caso de que tenga dudas sobre la integridad puede forzar una actualización en el menú DeveloperBase de DatosForzar Actualización próximamente volver a loguearse para que el Plus empiece a verificar la consistencia, esta verificación es logueda en un archivo /log/plus_sql.log si es usuario de Linux puede usar tail –f plus_sql.log para ver las verificaciones de consistencia.

Ademas de la verificación anterior citada cada vez que se modifica las propiedades de un formulario y/o Ítem de un formulario se realiza la verificación de consistencia para dicha tabla relacionada con el formulario.

22