Ayuda. Generación de Módulo de gestión de tabla.
-
Aspecto:
- Es el fichero que contiene las descripciones de los tipos de letra,
formatos de tablas (edición, listado, menu, cabecera) y los colores de la página.
-
Base de Datos:
- Nombre de la base de datos SQL.
-
Tabla:
- Nombre de la tabla a gestionar, contenida en la base de datos anterior.
-
Módulo:
- Es un programa PHP que realiza un proceso completo. Se declara en la tabla de Mólos de RAD y puede ser accesible desde el menu.
Este programa puede ser desarrollado
con un editor de forma manual (Módulo Manual) o con el generador de módulos de RAD (Módulo Automático) para administrar una tabla de datos.
Los Módulo Automáticos generados con RAD gestionan una tabla de datos y permiten agregarles nuevas funciones/procesos y datos de otras tablas. La mayor parte de conceptos definidos posteriormente son aplicables a este tipo de módulos. Una aplicación web compleja puede construirse casi al 100% con módulos de este tipo.
Los Módulos Manuales pueden contener cualquier proceso que el programador desee realizar e integrarse dentro de RAD para formar una gran aplicación. Habitualmente este tipo de módulos son informes, mapas, cuadros de mando, ... Para integrarse en RAD debe contener una linea de cabecera (include("header.php");) y una de pie (include("footer.php");).
Habitualmente, una gran aplicación web se compone de un 95% de módulos automáticos y un 5% de manuales.
-
Opciones: (Backup, Browse, Detail, Search, Print, New, Edit, Delete, Jump)
- Indica si se permite hacer copia de datos, listar, ver un detalle de registro, buscar, imprimir, crear, editar, borrar y/o saltar registros de la tabla.
Si no se permite ver el detalle, pero sí editar, desde la pantalla del listado se pasa a la edición
del registro sin pasar por la de detalle.
-
Filto de Tabla (por defecto):
- Filtro que se aplicará en las operaciones de listado y gestión de la tabla.
Contiene la cláusula where SQL con las columnas de la tabla y valores (no se debe
poner la palabra where). Ejemplo: codprovincia = '15' or codmunicipio LIKE '15%'
-
Página:
- Nombre de la página PHP que se va a generar y la que se debe invocar
para gestionar la tabla. No se le debe poner la extensión.
En el directorio debería existir una denominada "index", que sea la que inicie la aplicación.
Para ello es aconsejable elegir la tabla principal, para que se muestre al iniciar la aplicación.
-
Título de página:
- Título de la ventana donde se ejecuta la página.
-
Directorio:
- Nombre del subdirectorio donde se grabarán los modulos.
-
Max. Filas Listado:
- Número de registros que se presentarán en el listado (browse).
-
Campo(s) Clave:
- Este módulo asume que la tabla tiene uno o varios campos
clave (índices primarios). Los nombres de estos campos se deben
poner separados por comas.
Muchas tablas usan como índice primario un campo autoincremental.
Si la tabla no tiene índices primarios se utilizarán todos los campos
como clave (de esta forma se asegura la unicidad de un registro).
-
Nivel de Seguridad:
- Seleccione el Nivel de Seguridad deseado: sin control de usuario (cualquiera puede operar con el módulo), con Control por Usuario
(solicita código de usuario y clave antes de comenzar a operar con el módulo), y Control por Usuario
y Tabla (control anterior, y verifica tabla de usuarios y tablas -ACL-).
Para poder utilizar Control de Usuario se debe modificar el módulo "RAD_login.php" que es el que
contiene la validación del usuario o usuario y tabla. Normalmente este usuario se valida contra una tabla
de la misma base de datos. Esta tabla de usuario debe guardar el código de usuario y su clave, y
opcionalmente las tablas o modulos a los que este usuario tiene acceso (ACL).
-
Funcion Primera:
- Tipo de función que se ejecuta al entrar al módulo: Consulta General, Detalle de Registro,
Búsqueda, Listado, Nuevo Registro, Edita Registro, Borra Registro. Por defecto es la Consulta General.
-
Graba Log de comandos SQL?:
- Márquese para grabar en el fichero Log.sql todos los comandos SQL que ejecutan los
usuarios sobre la tabla desde este módulo. Desde este fichero se puede recontruir toda la historia
de la tabla, y la situación final.
-
TABLA DE COLUMNAS O CAMPOS
- Esta tabla contiene cada una las campos (o seudocampo) de la tabla a gestionar por este módulo.
A cada una de estas columnas se les debe definir las propiedades que se detallan a continuación.
-
Orden:
- Número de órden por el que aparece una columna en el módulo. Sólo es necesario rellenarlo en
caso de querer cambiar el órden en el que aparece actualmente, y además solo es necesario rellenar
el órden de los que cambian.
-
Título:
- Nombre con el que aparece este campo en los listados del módulo.
-
Campo:
- Nombre del campo de la tabla en la base de datos. Este nombre puede ser ficticio (inexistente)
para el caso de un seudocampo. Es decir aquel que tiene como Tipo Campo function.
El seudocampo se utiliza para asociar funciones externas a cada una de las operaciones que
realiza el modulos sobre la tabla. Por ejemplo: si en la Consulta General o de Detalle de una Tabla
deseamos listar información asociada a cada registro procedente de otras tablas o ficheros, etc.
Si al crear, borrar o modificar un registro deseamos hacer operaciones sobre otras tablas relacionadas.
-
Long. Max.:
- Máxima longitud del campo de la tabla.
-
Long. Entr.:
- Máxima longitud de campo de entrada en pantalla, para los campos de entrada de tipo texto (Input).
Para los campos de texto grandes (Text) se debe especificar el número de filas, una "x" y el
número de columnas. Por ejemplo: 60x15.
-
Orden (Order) :
- Indica si este campo se utilizará para ordenar los listados en la Consulta General de la tabla.
-
Vacio (Null):
- Indica si este campo puede estar vacio, o debe exigirse un valor.
-
Tipo Campo:
- Indica el tipo de valor que admite este campo de la tabla.
- "String" - Campo de cadena (char, varchar).
- "Numeric" - Campo numérico (int, short, double, float, long).
- "BLOB" - Campo de cadena larga(blob).
- "Enum" - Lista de valores.
- "Date" - Fecha.
- "DateTime" - Fecha y Hora.
- "Time" - Hora.
- "password" - Cadena cifrada con función password.
- "crypt" - Cadena cifrada con función crypt.
- "MD5" - Cadena cifrada con función MD5.
- "Auto_Inc." - Campo numérico autoincremental (int, short, double).
- "UniqID." - Campo aleatorio, único e identificativo.
- "Function" - Seudocampo. Campo que no existe en la tabla. Pero el módulo
lo considera como una columna más, y al que normalmente se le asocian funciones externas.
No interviene en las operaciones habituales de la tabla, aunque la función externa puede realizar
operaciones sobre las tablas que desee.
-
Tipo Entrada:
- Indica el tipo de campo entrada que se va autilizar en la página HTML
para editar este campo. Se visualiza con el mismo valor que aparecería en el campo de entrada.
- "Input" - Tag INPUT HTML. Campo de entrada habitual.
- "Password" - Tag PASSWORD HTML. Campo de entrada enmascarado.
- "Pick-List" - Genera un tag SELECT de HTML. Campo de entrada
de selección entre múltiples valores. Los posibles valores se especifican
en "Datos Extra" separados por coma, y cada valor y su literal se separa por dos puntos.
Por ejemplo: 1:Rojo,2:Verde,3:Azul.
Si no se especifica nada en "Datos Extra", se construirá
con dos posibles valores 0 y 1.
- "Pick-List(M)" - Similar al anterior, pero se permite
seleccionar más de un valor.
- "Pick-List+DB" - Similar al anterior, pero los valores a mostrar
se obtienen de otra tabla relacionada.
Se debe especificar en "Datos Extra" el nombre_de_:campo_indice:campo_literal_a_mostrar.
El campo_indice debe ser del mismo nombre en ambas tablas.
El campo literal es el correspondiente a la tabla relacionada.
Tanto el campo indice como el literal pueden ser más de un campo separados por una coma.
Como ejemplo: provincias:codprovincia:nombreprovincia. O incluso: municipios:codmunicipio,codprovincia:nombremunicipio.
- "Pick-List+DB(M)" - Similar al anterior pero permite seleccionar varias posibilidades.
- "Pop Up+DB" - Genera un tag INPUT que al pulsar sobre él
aparecerá una nueva pantalla donde se mostrarán valores de otra tabla relacionada.
El funcionamiento de los Datos Extra y su contenido es similar al de Pick-List+DB, pero
la forma de elegir un valor es el de una ventana aparte.
- "Radio-List" - Genera un grupo de tag RADIO de HTML. El funcionamiento de "Datos Extra"
es similar a "Pick-List".
Si no se especifica nada en "Datos Extra", se generarán
dos botones, uno con valor 0 y otro con valor 1.
- "Radio-List+DB" - Genera un grupo de tag RADIO de HTML. El funcionamiento de "Datos Extra"
es similar a "Pick-List+DB".
- "Date" - Genera tres tag SELECT de HTML. Uno para el
día, otro para el mes, y otro para el año.
- "DateTime" - Combina los campos de entrada "Date" y "Time".
- "Time" - Genera tres tag INPUT de HTML. Uno para la
hora, otro para el minuto, y otro para el segundo.
- "Checkbox" - Genera un tag CHECKBOX de HTML, con los valores
especificados en "Datos Extra". Su funcionamiento es similar a "Pick-List".
Si no se especifican se generan dos posibles valores por defecto (0=No, 1=Si).
- "Text" - Genera un tag TEXTAREA de HTML. Es decir un campo de entrada
de texto rectangular. Cuyas dimensiones se especifica en "Long. Ent." de la forma
filasxcolumnas.
- "Upload file" - Permite enviar un fichero como valor de campo.
- "Upload image" - Permite enviar un fichero de imágen como valor de campo.
La diferencia con el anterior es únicamente a la hora de visualizar el valor del
campo. En el caso de la imágen se muestra directamente sobre el navegador.
El fichero es necesario descargarlo para comprobar su contenido.
- "Email" - Campo de entrada similar a Input, pero trata el contenido
como una dirección Email, de tal forma que al pinchar sobre su contenido
se lanza la ventana para componer un mensaje con destino esa dirección.
- "URL" - Campo de entrada similar a Input, pero trata el contenido
como una dirección URL, de tal forma que al pinchar sobre su contenido
se lanza una ventana con esa dirección.
- "Function" - Este tipo de campo de entrada indica que no se pied la entrada de nada, ni
se muestra nada, sino que invoca una función PHP o HTML contenida en el fichero
indicado en "Datos Extra". Y será esta función la encargada de realizar lo que se desee (mostrar datos, solicitar datos, etc).
- "None" - Indica que este tipo de campo no se trata (ni lo edita, ni visualiza su contenido).
Se utiliza para los campos autoincrementales y UniqID.
-
Datos Extra:
- Datos que se utilizan para relacionar el campo con valores o campos de otras tablas cuando el Tipo de Entrada
de un campo es "Pick-List*", "Pop Up+DB", "Radio-List*" y "Checkbox". La sintaxis es:
Los campos con Tipo de Entrada no *DB se utiliza como datos extra, parejas de (valor:literal)
separados por coma. Por ejemplo: 1:Rojo,2:Verde,3:Azul
que en el caso de Tipo de Entrada "Radio-List" se vería de la forma siguiente:
y en el caso de "Pick-List":
Para los campos con Tipo de Entrada *DB (tablas relacionadas) se utiliza como datos extra una terna
separados por dos puntos. Donde el primer elemento de la terna en el nombre de la tabla relacionada,
el segundo el o los campos indice (con el mismo nombre en ambas tablas), y el tercero el o los campos
cuyo literal es el que se va a mostrar.
Por ejemplo, supongamos que el campo de nuestra tabla se denomina
"codprovincia" y esta relacionado con el campo homónimo de otra tabla denominada "provincias", y deseamos
que se muestre en vez del código el nombre de la provincia que está en el campo "nombreprovincia" de la tabla
relacionada de "provincias". En este caso los datos extra serían provincias:codprovincia:nombreprovincia.
Un segundo ejemplo más sería si nuestra tabla tiene dos campos "codprovincia" y "codmunicipio" los cuales están
relacionados con otros campos homónimos de otra tabla denominada "municipios". Y deseamos que en vez de un código
de municipio aparezca un nombre de municipio que se almacena en la tabla relacionada de "municipios" en la columna
"nombremunicipio". En este caso los datos extra serán: municipios:codmunicipio,codprovincia:nombremunicipio.
Si además del nombre del municipio deseamos que aparezca su "población", y éste también es un campo de la
tabla de "municipios" entonces los datos extra quedarían de la forma:
municipios:codmunicipio,codprovincia:nombremunicipio,población.
NOTA! La sintaxis de estos datos extra no se comprueba.
Por ello se deben comprobar minuciosamente.
-
Buscar por (search):
- Indica que este campo se puede utilizar para buscar
en la tabla, o seleccionar un grupo de registros.
-
Visible:
- Indica que este campo se mostrará en los listados.
En el detalle de un registro siempre aparecerá.
-
Editable en listado (Br-Edit):
- Campo editable directamente sobre la pantalla de listado de registros.
-
Editable en listado (Fd-Edit):
- Columna editable directamente sobre la pantalla de listado de registros.
-
Editable por Separado (Fd-Edit):
- Campo editable directamente sobre la pantalla de listado de registros, de detalle o de edición.
-
Solo Lectura (R-Only):
- Campo no modificable.
-
Valor Def.:
- Valor por defecto al crear un registro nuevo.
-
onFocus Func.:
- Función JavaScript que se ejecuta al obtener el foco el campo cuando se crea o modifica un registro.
-
onChange Func.:
- Función JavaScript que se ejecuta al modificar el campo cuando se crea o modifica un registro.
-
onBlur Func.:
- Función JavaScript que se ejecuta al perder el foco el campo cuando se crea o modifica un registro.
-
Ayuda:
- Literal de ayuda que aparece al editar o crear un nuevo registro.