Está en la página 1de 38

ESTNDAR

DE
DESARROLLO
VERSION 1.0

Agosto 2001
Estndar de desarrollo

NDICE

TABLA DE FIGURAS.....................................................................................................2
Revisiones.........................................................................................................................4
Entorno de desarrollo......................................................................................................6
Procedimiento de desarrollo............................................................................................8
Interfaces de usuario (pantallas)...................................................................................11
Interfaces de usuario (informes)...................................................................................20
Normas de desarrollo.....................................................................................................23
Sangrado................................................................................................................................23
Maysculas/Minsculas........................................................................................................23
SQL & PL/SQL. Reglas bsicas en la programacin.........................................................24
Alias.......................................................................................................................................26
Comentarios..........................................................................................................................27
Optimizacin.........................................................................................................................28
Reglas generales sobre ndices:...........................................................................................................28
Combinaciones.....................................................................................................................................33
Optimizacin Or..................................................................................................................................35
Operador In..........................................................................................................................................36
Operador Exists....................................................................................................................................36
Nomenclatura de objetos en PL/SQL..................................................................................37
Declaraciones........................................................................................................................38
Nomenclatura de objetos de Forms & Reports..................................................................38
Cuaderno de pruebas.....................................................................................................39

TABLA DE FIGURAS
Figura 1. Definicin de etiquetas.................................................................................................................11
Figura 2. Ttulo de la ventana forms mdi.....................................................................................................12
Figura 3. Ttulo de una ventana de un mdulo de la aplicacin..................................................................12
Figura 4. Ttulo de una ventana de un mdulo de la aplicacin maximizada..............................................12
Figura 5. Cabecera de la aplicacin.............................................................................................................13
Figura 6. Barra de herramientas...................................................................................................................14
Figura 7. Campos no accesibles...................................................................................................................15
Figura 8. Radio Groups................................................................................................................................16
Figura 9. Check Box y Buttons....................................................................................................................16
Figura 10. Bloque multiregistro con datos no continuos.............................................................................17
Figura 11. Bloque multiregistro con datos continuos..................................................................................17
Figura 12. Canvas stacked view..................................................................................................................18
Figura 13. Canvas Tab o de pestaas...........................................................................................................18
Figura 14. Lista de valores...........................................................................................................................19
Figura 15. Hoja de cabecera de un informe.................................................................................................20
Figura 16. Cabecera de un informe con parmetros en todas las pginas...................................................21
Figura 17. Pie de un informe en todas las pginas.......................................................................................21
Figura 18. Cabecera de un listado con logotipo...........................................................................................22

Pgina 2 de 38
Estndar de desarrollo

Pgina 3 de 38
Estndar de desarrollo

Revisiones
Usuario Fecha de revisin Motivo Versin

Pendiente de incluir:

1. Maximizar, minimizar y trabajar con ventanas.


2. Formato estndar para campos tipo fecha y numricos.
3. Navegacin por defecto y validaciones.
4. Estndar respecto a las transacciones (una transaccin nica).
5. Pasos en la instalacin de una mquina cliente.
6. Procedimiento de recepcin de aplicaciones y puesta en explotacin.
7. En la creacin de tablas temporales se crea una columna denominada Terminal
varchar2 de 30 pos. En la cual se guarda el nombre del equipo y el proceso que realice
la grabacin en dicha tabla. Ejemplo

Nombre del equipo: PROCESO


Proceso .: V21316

c.Terminal: PROCESOV21316

Antes de insertar registros en una tabla temporal se procede a eliminar los registros
existentes que correspondan al equipo y proceso que vayamos a lanzar (por si existen
registros de ejecuciones anteriores). Antes de salir de la forma (y despus de tratar los
registros) se realiza borrado de lo registros creados.

El nombre de una tabla temporal debe construirse terminando con el sufijo TEMP, de la
siguiente forma Nombretabla_TEMP.

8. Nomenclatura de los objetos tablas, indices, sinnimos ...Las tablas temporales deben
tener su propia nomenclatura.
9. Definir a raiz de los ltimos cambios estructura de trabajo, localizacin de los trabajos
realizados por empresas externas, pasos a seguir para la implantacin de los mismos.
10. En la ejecucin de los mdulos debe introducirse la grabacin de los datos al final del
mdulo no se deber realizar un commit en medio de transacciones debe realizarse
despus de realizarse la transaccin, limpiar el form y se sigue la entrada de datos.
11. En el mismo nivel de PFP de Astican-netfi1 se crea directorio Pf_astigrup. Corresponde
a los mdulos de la plataforma para empresas del grupo. Cuando se compile un mdulo
para Astican de la plataforma econmico financiera despus de realizar modificaciones
en este se debe compilar tambin para la BD. De Astander y de Astigrup(130.130.0.2).
12.

Pgina 4 de 38
Estndar de desarrollo

Objetivos.

El objetivo de este documento es generar un estndar visual y de programacin, as como


establecer un plan genrico de pruebas. De esta forma, este documento podr ser utilizado por
cualquier analista/programador, como el documento base para desarrollar cualquier mdulo en
el sistema de informacin de Arehucas.

En trminos generales y a modo de resumen, el documento define los siguientes puntos:

aspecto visual definitivo de las pantallas de la aplicacin y de los informes.

definicin de la nomenclatura de los objetos a crear en las pantallas e informes.

descripcin de las pruebas genricas a realizar en todos los mdulos que se generen,
independientemente de las pruebas especficas de cada mdulo.

Pgina 5 de 38
Estndar de desarrollo

Entorno de desarrollo
El entorno de desarrollo se define de la siguiente forma:

Todas las aplicaciones se encuentran en un Sistema de archivos distribuido (DFS) soportado


por Windows 2003 Server , en la raiz \\dasa\informatica, carpeta desarrollo\proyectos\ .

La estructura de directorios de desarrollo ser la siguiente:

Directorio Funcin
Proyectos Contiene las aplicaciones desarrolladas por la empresa
Aplicacin 1 Aplicacin de

Listados Listados desarrollados en Report 3.0


Pantallas Pantallas desarrolladas en Forms 6.0
SQL Cdigo Sql de la aplicacin

Iconos Contiene todos los iconos de las aplicaciones


Resto de aplicaciones
Estructura igual que la existente en aplicacin 1
Genrico Contiene los ficheros necesarios para el correcto funcionamiento
de las aplicaciones (*.dll, *.res, etc.)
Libreras Contiene todos los fuentes de las libreras usadas en las
aplicaciones
Menus Contiene todos los fuentes de mens usados en las aplicaciones
Plantillas Contiene todas las plantillas que se usarn como base en el
desarrollo de los mdulos.
Envios Directorio donde se realizan las entregas de mdulos finalizados
por el proveedor
Traspaso Contiene mdulos desarrollados en Forms 6.0 pendientes de
pasar a explotacin

Pgina 6 de 38
Estndar de desarrollo

Procedimiento de desarrollo
A continuacin se describen los pasos a realizar para el desarrollo y puesta en explotacin de los mdulos.
Estos pasos afectarn tanto a los mdulos migrados como a cualquier mdulo nuevo desarrollado.

Desarrollo de aplicaciones

Cada programador desarrollar en su entorno local, variando la variable del regedit


FORMS60_PATH y REPORTS60_PATH.

En estas variables, como primer elemento deber aparecer el directorio local de programacin de
cada uno. El resto de elementos sern los directorios de desarrollo de las aplicaciones:

Directorio_local
\\dasa\informatica\desarrollo\proyectos\aplicacion\
\\dasa\informatica\desarrollo\proyectos\aplicacion\binarios
\\dasa\informatica\desarrollo\proyectos\aplicacion \librerias
\\dasa\informatica\desarrollo\proyectos\aplicacion \plantillas

El regedit no admite el path con el formato \\nombre_equipo, con lo que utilizaremos una unidad
compartida. Cada programador podr definir la suya, aunque se ancoseja que sea la unidad .

El acceso directo de la herramienta de desarrollo, as como del runtime de desarrollo deber iniciarse
en el directorio de desarrollo local (campo Iniciar en del acceso directo).

Se utilizar una conexin a una base de datos de desarrollo que se definir para cada aplicacin.

Envo de fuentes

El jefe del proyecto enviar los fuentes a modificar junto con un documento con la descripcin de los
cambios a realizar
Recepcin de las aplicaciones

Cuando el proveedor termina con la migracin de los mdulos, nos entrega un documento con la
relacin de los mdulos migrados, as como una breve descripcin de las posibles incidencias
encontradas.

Los mdulos migrados sern puestos por parte del proveedor en el directorio del servidor de
desarrollo \\Nombre_equipo\envios. Una vez recibidos los mdulos, se copiarn todos en el
directorio de traspaso (\\Nombre_equipo\traspaso, para realizar la compilacin. En este directorio se
encuentran siempre los ficheros de plantillas (Plantilla*.fmb), as como las libreras (*.pll), para que
no se produzcan errores de compilacin.

De igual forma, en este directorio existen dos ficheros, genera.bat y genera60.bat, que nos permiten
realizar compilaciones masivas. Para compilar todos los mdulos residentes en traspaso, basta con
ejecutar el fichero genera60.bat. Los ficheros tipos men, debemos compilarlos manualmente Si no
se produce ningn error, procedemos a la recolocacin de todos los mdulos:

1. Desde el directorio de Envos:

Los ficheros *.fmb (pantallas) se copiarn en el directorio pantallas de la aplicacin migrada,


tanto en el servidor de desarrollo como en el de explotacin. Ej.:

\\Nombre_equipo_desarrollo\Aplicaciones\nombre_aplicacion\pantallas

Pgina 7 de 38
Estndar de desarrollo

\\Nombre_equipo_explotacion\Aplicaciones\nombre_aplicacion\pantallas

Los ficheros *.rdf (pantallas) se copiarn en el directorio listados y en binarios de la aplicacin


migrada, tanto en el servidor de desarrollo como en el de explotacin. Ej.:

\\Nombre_equipo_desarrollo\Aplicaciones\nombre_aplicacion\listados
\\Nombre_equipo_explotacion\Aplicaciones\nombre_aplicacion\listados
\\Nombre_equipo_explotacion\Aplicaciones\binarios

Las libreras *.pll pasarn al directorio de libreras y a binarios. Ej.:

\\Nombre_equipo_desarrollo\Aplicaciones\librerias
\\Nombre_equipo_explotacion\Aplicaciones\librerias
\\Nombre_equipo_explotacion\Aplicaciones\binarios

Mens.

\\Nombre_equipo_desarrollo\Aplicaciones\Menus
\\Nombre_equipo_explotacion\Aplicaciones\Menus

2. Desde el directorio de traspaso.

Los ficheros *.fmx y *.mmx pasarn al directorio


\\nombre_equipo_explotacion\aplicaciones\binarios, salvo los ficheros *.fmx de las plantillas.

Si se produce algn error, se documenta en el fichero de documentacin de entrega y se devuelve el


mdulo, sin copiarlo en ningn sitio.

Una vez est todo colocado en su sitio, eliminamos los ficheros del directorio de envos
(\\nombre_equipo_desarrollo\envios) y limpiamos el directorio de traspaso
(\\nombre_equipo_desarrollo\traspaso), eliminando los *.fmx, *.mmx, *.rdf y todos los *.fmb salvo
las plantillas. Al final, en este directorio slo deben quedar los fuentes de las plantillas y las libreras.

Pgina 8 de 38
Estndar de desarrollo

Interfaces de usuario (pantallas)


Puntos a tener en cuenta para la estandarizacin de la interfaces de pantallas de usuario.

1. Entorno de implantacin para el que se va a desarrollar la aplicacin:

Cliente/Servidor, orientando la programacin al entorno de internet.

2. Resolucin y altura de los campos.

Todas las pantallas tendrn una resolucin de 800 x 600 pixeles (puntos). La altura de los
campos ser de 14 puntos.

3. Tipo de letra y tamao. Presentacin de los campos.

La fuente y el tamao de los campos y etiquetas de formularios ser Ms Sans Serif de 8


puntos y aspecto normal. Todas las etiquetas estarn alineadas con sus campos respectivos
al principio, tanto si se definen en la parte superior del campo como a la izquierda del
campo. En los campos de tipo importe la etiqueta se alinear a la derecha por defecto. Si
existe solapamiento con el campo siguiente, la alineacin se realizar donde origine menor
confusin (siempre segn el diseo del mdulo). Todos los campos tendrn aspecto
lowered, salvo los campos informativos ( ver Figura 7. Campos no accesibles) o que se
especifique lo contrario en el diseo del mdulo.
Etiquetas encima del campo

Etiqueta de campo importe


Etiquetas a la izquierda del campo

alineada a la derecha

Figura 1. Definicin de etiquetas

4. Color y tipo de letra del registro activo.

El tipo de letra y tamao no cambiar para el registro activo, por lo que mantenemos la Ms
Sans Serif de 8 puntos y aspecto normal. El color de fondo ser r88g100b100, y el color de
la letra del registro activo ser darkblue.

Pgina 9 de 38
Estndar de desarrollo

Figura 2. Ttulo de la ventana forms mdi


Figura 4. Ttulo de una ventana de un mdulo de la aplicacin maximizada.
Figura 3. Ttulo de una ventana de un mdulo de la aplicacin

5. Color y tipo de letra del registro no activo.

El tipo de letra y tamao no cambiar para el registro no activo, por lo que mantenemos la
Ms Sans Serif de 8 puntos y aspecto normal. El color de fondo ser blanco, y el color de la
letra del registro activo ser negro.

Todas estas caractersticas referentes a los puntos 4 y 5 quedarn almacenadas en varios


visual atributtes que pertenecen a la plantilla y que se utilizarn como elementos
referenciados.

6. Ttulo de la ventana principal.

La ventana principal de la aplicacin, FORMS_MDI_WINDOW, llevar como ttulo el


nombre de la empresa, obtenindolo en funcin de la empresa seleccionada.

Esta ventana siempre se iniciar de forma maximizada.

7. Ttulo del resto de ventanas.

El ttulo del resto de ventanas se compondr con los siguientes trminos:

Mdulo nombre_del_mdulo. Ttulo_opcin_men. Opcin n_opcin_men.


Mdulo FAC0030. Consulta Conceptos Facturas. Opcin 18030202

Si la ventana interior aparece maximizada, el ttulo queda de la siguiente forma:

La obtencin de la informacin para crear los ttulos de las ventanas se realizar


dinmicamente, y el cdigo necesario estar almacenado en libreras PL/SQL.

Pgina 10 de 38
Estndar de desarrollo

8. Definicin de la cabecera de la aplicacin.

La cabecera muestra en la parte izquierda el logotipo de la aplicacin, que variar segn la


empresa en la que estemos trabajando. El nombre del fichero de logo de la empresa viene
determinado por el anagrama de la empresa seleccionada; tomando en la pantalla inicial de
acceso a la aplicacin el anagrama de la empresa 02 por defecto. En el resto de las
pantallas el logo se cargar de forma automtica segn la empresa seleccionada.

En la parte central de la cabecera se muestra la aplicacin a la que pertenece el mdulo, y


debajo se mostrar el ttulo de la opcin de men seleccionada.

En la parte derecha de la pantalla se mostrar la fecha actual, el nombre del usuario que est
ejecutando la aplicacin y la moneda en la que se est trabajando. Todos estos campos
debern estar alineados a la derecha.

Los campos definidos en la cabecera no tendrn bordes ni efectos 3D. El color del fondo de
toda la cabecera y de los campos definidos en ella ser el mismo que tiene el canvas por
defecto (gris).

La cabecera ir encuadrada en un rectngulo con la definicin del borde hundido.

Figura 5. Cabecera de la aplicacin.

9. Men de las pantallas

El men de las pantallas afecta a todas las pantallas de la aplicacin, y estar formado por
los siguientes elementos:

Accin Editar Consultar Campo Ayuda


Imprimir Pantalla Cortar CTRL + X Entrar Consulta Campo Anterior Teclas
Especificar Impresora Copiar CTRL + C Ejecutar Consulta Campo Siguiente Visualizar Error
Pegar CTRL + V Cancelar Consulta Limpiar
Salir de la Pantalla
Editar Duplicar
Lista de Valores

Pgina 11 de 38
Estndar de desarrollo

10. La barra de herramienta estndar se incorporar a todas las ventanas que proceda, y ser
como la mostrada en la Figura 6. Barra de herramientas. Algunos botones de la barra de
herramientas aparecern deshabilitados en algunas pantallas, inhibiendo de esta forma su
funcin. Todos los botones irn encuadrados en un rectngulo con la propiedad bevel a
lowered y con color de fondo darkgray. Esta barra de herramientas estar definida en una
plantilla y se incorporar a los mdulos como referencia.

Figura 6. Barra de herramientas

Si algn icono no est incluido en la barra de herramientas estndar, se utilizar el que


define Oracle por defecto. El icono de cambio de euros a Ptas. mostrar las siguientes
imgenes segn la moneda que tengamos seleccionada:

Estamos en pesetas y queremos pasar a euros

Estamos en euros y queremos pasar a pesetas

Adems de cambiar el icono, cambiaremos el hint y el tooltip, mostrando un mensaje como


Cambiar de euros a pesetas o Cambiar de pesetas a euros.

Esta funcionalidad estar almacenada en cdigo PL/SQL en libreras.

Pgina 12 de 38
Estndar de desarrollo

11. Campos no accesibles

Los campos no insertables, ni actualizables, ni accesibles, as como los campos que


muestran totales, estarn deshabilitados, por lo que la letra que ya viene por defecto ser
gris. Tendrn la misma apariencia que los campos normales bevel lowered. Algunos campos
que son nicamente informativos aparecern como display items, con el fondo de color
exactamente igual al canvas (gris por defecto) y sin aspecto en tres dimensiones, segn se
decida en el diseo del mdulo.

Campos
Figura 7. Campos no accesibles informativos

Lnea de separacin de
totales

Campos no accesibles
12. Campos que totalizan

Los campos que muestran totales irn separados de los operandos por una lnea con la
propiedad bevel hundida (ver Figura 7. Campos no accesibles).

13. Bloques de informacin

Cada bloque de informacin estar incluido en un rectngulo con la propiedad bevel con
valor Inset, y mostrarn la etiqueta con la definicin del bloque en la esquina superior
izquierda. De igual forma, si existen datos que se deban agrupar por relacin en la
informacin de los campos (y segn la definicin de cada diseo en particular), estos
aparecern encuadrados en rectngulos rectngulo con la propiedad bevel con valor Inset y
con la etiqueta (segn diseo) en la esquina superior izquierda.
Aspecto del rectngulo inset

Etiqueta en la esquina superior izquierda Grupo de campos relacionados con rectngulo inset

Pgina 13 de 38
Estndar de desarrollo

14. Definicin de Radio Buttons, check box o buttons.

Radio Groups. Se mostrarn etiquetas que identifiquen el valor del campo asociadas
directamente al campo, no como texto independiente. Si las etiquetas no son
suficientemente descriptivas, se aadir una etiqueta comn para todos los radio buttons del
radio group. Mantendr la configuracin de fuente y tamao de letra como el resto de
campos (Ms Sans Serif 8). Como atributos de registro actual no utilizar el mismo que el
bloque al que pertenece, ya que la etiqueta aparecera con el fondo azul. Llevar asociado
un atributo visual exactamente igual para el registro activo y el no activo, con el fondo gris
Figura 9. Check Box y Buttons

Figura 8. Radio Groups


Radio buttons
igual que el canvas y la letra de color negro.

Check Box. Se mostrarn etiquetas que identifiquen el valor del campo asociadas
directamente al campo, no como texto independiente. Mantendr la configuracin de fuente
y tamao de letra como el resto de campos (Ms Sans Serif 8). Como atributos de registro
actual no utilizar el mismo que el bloque al que pertenece, ya que la etiqueta aparecera
con el fondo azul. Llevar asociado un atributo visual exactamente igual para el registro
seleccionado y el no seleccionado, con el fondo gris igual que el canvas y la letra de color
negro.

Buttons. El botn podr mostrar una etiqueta descriptiva con su funcionalidad o un icono

Buttons
Check Box
que sea completamente intuitivo (al estilo de los botones de la barra de herramientas), segn
se decida en el diseo en cada caso (ver Figura 9. Check Box y Buttons).

Pgina 14 de 38
Estndar de desarrollo

15. Bloques multiregistro.

Los bloques multiregistro se construirn encerrados en un rectngulo de aspecto Inset como


el resto de bloques monoregistro. Todos incorporarn una barra de desplazamiento a la
derecha de anchura 12 puntos. Segn sea la tipologa de la informacin a mostrar, la
visualizacin de los registros podra variar.

Si la informacin mostrada se corresponde con un conjunto de datos continuos, los


campos deben tener aspecto normal (no lowered) y con una separacin de 1 punto.

Figura 10. Bloque multiregistro con datos no continuos

Si por el contrario, la informacin mostrada en cada registro no es continua entre s, los


campos deben tener el aspecto lowered y con una separacin de 0 puntos.

Figura 11. Bloque multiregistro con datos continuos

Pgina 15 de 38
Estndar de desarrollo

16. Mltiples datos.

En el caso de querer mostrar mltiple informacin que no es completamente visible en una


nica pantalla, se podrn adoptar dos soluciones segn se decida en el diseo del mdulo.

Si la informacin a mostrar pertenece a un nico bloque (una nica tabla), se utilizarn


canvas stacked, con barra de desplazamiento horizontal y una vista sobre el canvas
adaptada a las necesidades del diseo.

Figura 12. Canvas stacked view

Canvas Stacked View con una porcin visible

Si la informacin a mostrar pertenece a varios bloques, utilizaremos pestaas para


incluir toda la informacin. Cada pestaa estar identificada con una etiqueta
descriptiva, y mantendr el mismo formato que el canvas content o el stacked, en
cuanto al color, fuente y tamao de letra.

17. Campos tipo lista.

Figura 13. Canvas Tab o de pestaas.

Pgina 16 de 38
Estndar de desarrollo

Los campos que sean de tipo lista y que no lleven valores fijos asociados, se cargarn en
tiempo de ejecucin a partir de la tabla CG_REF_CODES, en caso de estar definidos en
dicha tabla.

18. Listas de valores

Las listas de valores asociadas a campos se mostrarn siempre al lado del campo que
contiene la lista, poniendo la propiedad Automatic Position a Yes. Si el nmero de
registros a mostrar es demasiado grande, se ejecutar la lista de valores con un filtro previo,
poniendo la propiedad Filter Before Display a Yes. El atributo visual de una lista de
valores debe incluir la letra Ms Sans Serif de tamao 8 y el fondo gris igual que el canvas.
La altura quedar establecida en 200 puntos y la anchura depender de los datos a mostrar.
Todas las listas de valores llevarn ttulos descriptivos asociados.

Figura 14. Lista de valores

Pgina 17 de 38
Estndar de desarrollo

Interfaces de usuario (informes)


Puntos a tener en cuenta para la estandarizacin de la interfaces de informes de usuario. Estas
reglas sern tomadas como base, prevaleciendo siempre cualquier especificacin particular en el
documento de diseo de cada listado.

En funcin del nmero de parmetros de un listado disponemos de dos tipos de diseo:

Si el n de parmetros es excesivo, de forma que en la cabecera de todas las hojas del listado
ocupa mucho espacio, crearemos una pgina inicial con la informacin de todos los
parmetros, y en las cabeceras de las restantes hojas, mostraremos nicamente los
parmetros ms importantes.

Si el n de parmetros del listado no es excesivo, no se incluir una pgina inicial. Todos los
parmetros aparecern en la cabecera de las hojas del listado.

1. Los listados que incluyan pgina de cabecera contendrn la siguiente informacin:

Anagrama de la empresa. Se pasa como parmetro.


Nombre del report. Si es posible se recuperar de forma dinmica en la ejecucin del
listado, utilizando cdigo PL/SQL. En caso contrario, se pasar como parmetro.

Estos dos campos estarn en la parte izquierda de la hoja y alineados a la izquierda.

Fecha. Fecha actual con formato DD/MM/YYYY HH24:MI


Numeracin de las pginas. Pgina actual de total_pginas.

Estos dos campos estarn en la parte derecha de la hoja y alineados a la derecha.

Moneda. Encima del ttulo del listado aparecer la moneda seleccionada.


Ttulo del listado. El ttulo del listado podr ser un texto fijo, valores pasados como
parmetros, o una combinacin de ambos. Aparecer centrado en la pgina de cabecera.

Estos seis campos aparecern en todas las hojas del listado.

Usuario. Nombre de usuario que ejecuta el listado (se pasa como parmetro).
Parmetros. Parmetros que se le pasan al listado para su ejecucin.

Figura 15. Hoja de cabecera de un informe


Pgina 18 de 38
Estndar de desarrollo

2. Los listados sin pgina de cabecera llevar los parmetros en la cabecera de todas las hojas
del listado. Siempre se pondrn los parmetros en la cabecera segn se defina en el diseo
de cada mdulo.

Figura 16. Cabecera de un informe con parmetros en todas las pginas

3. Excepto en la pgina de cabecera, todas las hojas incluirn en el pie el texto Servicio de
Informtica. Este texto estar definido en el margen de los listados.

Figura 17. Pie de un informe en todas las pginas.

Pgina 19 de 38
Estndar de desarrollo

4. En determinados casos, se incluir el logotipo de la aplicacin en el listado, utilizando como


base el logotipo obtenido a partir del anagrama de la empresa seleccionada. La aparicin del
logotipo en el listado se har dinmicamente, utilizando cdigo PL/SQL.

Figura 18. Cabecera de un listado con logotipo

Pgina 20 de 38
Estndar de desarrollo

Normas de desarrollo
En este apartado se detallan una serie de reglas para que la generacin de cdigo PL/SQL sea
legible, modular y optimizado.

Sangrado

La programacin de triggers, procedimientos, funciones o paquetes en Forms 6.0 utilizar el


sangrado de TRES espacios utilizando el tabulador para introducirlos. Para ello es necesario
modificar o incluir en el registro de Windows la siguiente cadena:

HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/DE_PREFS_TABSIZE = 3.

Las clusulas FROM, GROUP BY, ORDER BY, HAVING, etc. debern estar sangradas a la
misma altura que la instruccin SELECT (o cualquier otra instruccin DML/DDL).

Una subconsulta dentro de una consulta se regir por las mismas reglas que las instrucciones
DDL, manteniendo el sangrado como si de una consulta principal se tratara.

Maysculas/Minsculas

Todas las palabras clave se escriben en maysculas.


Todos los elementos definidos por el usuario se escriben en minsculas.

Ejemplo:

DECLARE
v_numero NUMBER(8);
BEGIN
SELECT *
FROM nombre_de_tabla
WHERE empresa = 1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
V_numero := 0;
END;

Longitud mxima de lnea de 80 caracteres

Para facilitar el cumplimiento de esta norma se utiliza una ventana predefinida con esta
longitud.

Una cosa en cada lnea

Cualquier sentencia de manipulacin o definicin de datos empezar en una nueva lnea,


manteniendo el sangrado correspondiente

Pgina 21 de 38
Estndar de desarrollo

Todos los nombres de tablas irn precedidos por el nombre del propietario.

Comentarios

Comentar las sentencias SQL siempre que sea posible, y en caso de excesiva complejidad. Si un
comentario ocupa una nica lnea, utilizar ; si por el contrario, va a ocupar ms de una lnea,
utilizar /* y */ para delimitar el inicio y fin del comentario.

Poner los comentarios en lneas nuevas, a no ser que sean aclaratorios de determinadas
instrucciones (partes de un select, etc.) y quepan en una nica lnea, en cuyo caso irn a la
derecha de la codificacin con la marca .

Si utilizamos comentarios o mensajes para depurar el programa, eliminarlos una vez se finalice
la comprobacin.

Los comentarios que ocupen ms de una lnea irn encima del cdigo comentado, y alineados
con la instruccin comentada.

Pgina 22 de 38
Estndar de desarrollo

SQL & PL/SQL. Reglas bsicas en la programacin.

Comentarios en triggers

En la cabecera del trigger creado se debe incluir una breve descripcin de la funcionalidad del
programa

/* Descripcin del trigger */

Funciones, procedimientos y paquetes)

Cualquier funcin, procedimiento o paquete incluir una pequea cabecera con los siguientes
datos:

/* Descripcin: Descripcin del programa


Parmetros de entrada: Relacin de parmetros de entrada
Parametros de salida: Relacin de parmetros de salida
Programador: Nombre del programador
Fecha de creacin: Fecha

Modificaciones
Programador Fecha Observaciones
*/

Comentarios en el mdulo

Cada mdulo tendr el siguiente comentario en la propiedad Comments:

/* Nombre: Nombre del mdulo


Descripcin: Descripcin del mdulo
Parmetros de entrada: Relacin de parmetros de entrada
Parametros de salida: Relacin de parmetros de salida
Programador: Nombre del programador
Fecha de creacin: Fecha
*/

Optimizacin

Pgina 23 de 38
Estndar de desarrollo

Las siguientes reglas se definen como base para intentar optimizar las consultas. De cualquier
forma, si es posible, usar herramientas de depuracin para mejorar el tiempo de respuesta de las
consultas.

Evitar el uso de la clusula NOT siempre que sea posible.


Es preferible utilizar la clusula IN que la clusula OR.
Evitar las condiciones complejas. Intentar reducirlas a condiciones simples con operadores
lgicos.
Evitar el uso de la clusula between. Sustituir esta clusula por dos comparaciones.
En la clusula LIKE, no poner el smbolo % en la primera posicin, ya que esto inhabilita
el ndice.
Limitar el uso de conversiones implcitas de datos (nmeros a caracteres, etc.). Siempre que
se pueda, realizar la conversin explcitamente.
Sustituir, si es posible, la clusula HAVING por una clusula WHERE.
Evitar el uso de la clusula IS NULL IS NOT NULL, sustituyndolas por el uso de
funciones u operadores matemticos.
Evitar combinaciones ascendentes y descendentes en una consulta.
Como regla general, empezar la clusula FROM por las tablas que devuelvan ms registros
(tablas detalle), y luego las maestras. Las condiciones de unin entre tablas detalles y
maestras debern empezar tal y como establece el orden de las tablas en la clusula FROM,
y siempre al principio de la clusula WHERE.
Realizar las consultas usando siempre la indexacin de las tablas.

Reglas generales sobre ndices:

1. Un ndice sobre una columna slo se utilizar si la columna es referenciada en una clusula
WHERE.

2. No se utilizar un ndice sobre una columna si la columna se modifica de cualquier forma


mediante funcin y/o expresin.

Ejemplo:

No se usa ndice.

Select apellido from emp


Where sal * 12 = 312000

S se usa ndice.

Select apellido from emp


Where sal = 312000/12

3. Desactivacin de la utilizacin de ndices. Podemos usar la modificacin de una columna


para desactivar la utilizacin de ndices, ya que ocasionalmente la desactivacin puede
mejorar el rendimiento:

Cuando la tabla contiene slo un pequeo n de filas.


Cuando se mezclan muchos ndices.
Cuando el ndice no es muy restrictivo.

Pgina 24 de 38
Estndar de desarrollo

Es conveniente hacer un anlisis completo de la tabla cuando se van a recuperar ms de un


30% de las filas.

Ejemplo:

Where columna_carcter || =

Where columna_numercia + calor =

4. Conversin del tipo de datos. La conversin del tipo de datos puede desactivar el uso de
ndices. Slo se pueden comparar datos del mismo tipo, por ello los tipos de datos se
convierten automticamente si es necesario.

Tipo carcter y numrico. El tipo carcter se convierte a nmero (con to_number).


Carcter y fecha. El tipo carcter se convierte a fecha (con to_date).
Carcter y rowid. El tipo carcter se convierte a rowid (con char_to_rowid).

La conversin de datos se debe realizar explcitamente.

Ejemplo:

No usa ndice.
Select apellido
From emp
Where to_char(fecha_alt,dd/mm/yyyy) = 01/01/2001

Si usa ndice.
Select apellido
From emp
Where fecha_alt = to_date(01/01/2001,dd/mm/yyyy)

5. Operador Like. Se puede usar un ndice en una clusula Like si la columna es de tipo
carcter y la cadena de comparacin empieza por un carcter. En caso de que la columna no
sea de tipo carcter (numrico o fecha), Oracle hace una conversin interna.

Si usa ndice.
Select apellido
From emp
Where apellido like S%

No usa ndice.
Select apellido
From emp
Where apellido like %S%

6. Se puede utilizar la parte conductora de u ndice concatenado o bien el ndice concatenado


completo.

Ejemplo:

Utilizando la parte conductora Emp_no del ndice concatenado emp_no, apellido, sal.

Pgina 25 de 38
Estndar de desarrollo

Select apellido
From emp
Where emp_no = 1234

Utilizando el ndice completo emp_no, apellido, sal.


Select apellido
From emp
Where emp_no = 1234
and apellido = APELLIDO
and sal = 10000000

7. Valores Null.

No hay entrada de ndices si todos los valores de columna de u ndice tienen un valor nulo.
Los valores nulos no se almacenan en un ndice de columna simple.
En un ndice formado por varios campos, los valores nulos se almacenan si al menos una
columna en el ndice tiene un valor (distinto de nulo).
En un ndice los valores nulos de todas las columnas se recuperan mediante un anlisis
completo de la tabla.

Ejemplo:
No se usa ndice sobre comision.
Select apellido
From emp
Where comision is null

Se usa ndice sobre sal y comision.


Select apellido
From emp
Where sal = 1000000
and comision is null

8. Operador Not.
Las condiciones Not Null recuperan la mayor parte de los registros, por lo que no se usarn
ndices.

Ejemplo:
No se usa ndice sobre dept_no.
Select apellido
From emp
Where dept_no <> 10

Se puede utilizar ndice sobre dept_no ( y es ms rpida que la instruccin anterior).


Select apellido
From emp
Where dept_no < 10
or dept_no > 10

9. Clusula Order by.

Se puede utilizar un ndice en una clusula Order by si:

Pgina 26 de 38
Estndar de desarrollo

Las columnas en la clusula Order by no son modificadas por funciones y/o


expresiones.
Las columnas en la clusula Order by son la parte conductora de un ndice formado por
varios campos.
Al menos una de las columnas del ndice est definida como Not Null.
No se pueden utilizar otros ndices en las clusulas Where.
No se utilizan las clusulas Union, Minus, Intersect, Distinct o Group by.
El ndice est en la tabla conductora.

Si no se puede utilizar un ndice para una clusula order by, entonces se utilizar una
operacin de clasificacin.

Ejemplo:
El ndice sobre dept_no puede ser utilizado por la clusula Order by si dept_no est definido
como not null.
Select apellido
From emp
order by dept_no

El ndice sobre dept_no no puede ser utilizado en la clusula order by si existe un ndice
sobre sal.
Select apellido
From emp
Where sal = 1000000
order by dept_no

10. Funciones Max y Min.

Se utilizar un ndice para una funcin max o min cuando:


No hay clusula where o order by.
La consulta no es una combinacin.
La funcin max o min es la nica expresin en la consulta.
No se utilizan otros operadores distintos de concatenacin o adicin en la funcin max
o min.
Slo hay una nica funcin max o min.
Slo hay una ocurrencia simple de una columna en la funcin max o min.

Ejemplo:
Se usa el ndice sobre la columna sal.
Select max(sal)
From emp

Select max(sal + 10000)


From emp

No se utiliza el ndice sobre sal.


Select max(sal)
From emp
Where dept_no = 10

11. Operador Distinct.

Pgina 27 de 38
Estndar de desarrollo

No se utilizarn ndices con el operador distinct, ya que necesita una operacin de


clasificacin (sort).

12. Operadores Union, Minus e Intersect.

No se usarn ndices con los operadores Union, Minus e Intersect, ya que necesitan dos
operciones de clasificacin. Cada una de las clusulas Select se optimiza por separado

13. Operador Group by.

No se utilizarn ndices con el operador Group by, ya que necesita una operacin de
clasificacin. Utilizar una clusula where en lugar de una condicin Having siempre que sea
posible.

14. Indices nicos y no nicos.

Si disponemos de dos ndices sobre dos columnas, uno nico y el otro no, se activar el uso
del ndice nico. En caso de que ambos sean nicos, se utilizar el ltimo que se haya
insertado en la tabla de ndices.

Si se pueden utilizar mltiples ndices no nicos para igualdades, estos ndices se


mezclarn, teniendo en cuenta que esta mezcla no se produce si las condiciones son de
igualdad y rango no limitado. En este caso, se usar el ndice de igualdad. Si las
condiciones son de rangos no limitados, slo se activar uno de los ndices.

En caso de disponer de ndices concatenados, si podemos activar el ndice con condiciones


de igualdad y rango no limitado.

Ejemplo:
Indices nicos y no nicos.
Create unique index iemp1 on emp(emp_no);
Create index iemp2 on emp(apellido);

Select apellido
from emp
Where emp_no = 1234
and apellido = APELLIDO

Slo se utilizar el ndice sobre emp_no.

Indices nicos.
Create unique index iemp1 on emp(emp_no);
Create unique iemp2 on emp(apellido);

Select apellido
from emp
Where emp_no = 1234
and apellido = APELLIDO

Se usar el ndice insertado en el ltimo lugar de la tabla de ndices.

Mezcla de ndices.

Pgina 28 de 38
Estndar de desarrollo

Create index iemp1 on emp(emp_no);


Create index iemp2 on emp(apellido);

Select apellido
from emp
Where emp_no = 1234
and apellido = APELLIDO

Los ndices sobre emp_no y apellido sern mezclados.

Igualdad y rango no limitado en ndices simples.


Create index iemp1 on emp(emp_no);
Create index iemp2 on emp(apellido);

Select apellido
from emp
Where emp_no = 1234
and apellido > A

Slo se utilizar el ndice sobre emp_no.

Rangos no limitados en ndices simples.


Create index iemp1 on emp(emp_no);
Create index iemp2 on emp(apellido);

Select apellido
from emp
Where emp_no > 1234
and apellido > A

Se usar el ndice insertado en el ltimo lugar de la tabla de ndices.

Igualdad y rangos no limitados en ndices concatenados.


Create index iemp1 on emp(dept_no, sal);

Select apellido
from emp
Where dept_no = 10
and sal > 10000000

Se usar el ndice concatenado.

Combinaciones

Existen tres maneras de combinar tablas.

1. Combinacin de anlisis completo de tabla.

Las combinaciones de anlisis completo de tabla se utilizan para combinaciones del tipo no
indexadas de no igualdad. La tabla conductora ser la ltima en la lista From. Por cada
registro de la tabla conductora se realizar un anlisis completo de la tabla no conductora.

Pgina 29 de 38
Estndar de desarrollo

Ejemplo:
Select d.nombre, e.apellido
From dept d, emp e
Where d.dept_no > e.dept_no.

2. Combinacin de clasificacin/mezcla.

Las combinaciones de anlisis completo de tabla se utilizan para combinaciones del tipo no
indexadas de igualdad. Las tablas son mezcladas y clasificadas en base a la condicin de
combinacin. No importa cual es la tabla conductora.

Ejemplo:
Select d.nombre, e.apellido
From dept d, emp e
Where d.dept_no = e.dept_no.

Esto se ejecuta como dos consultas separadas, mezclndose los resultados.

Select d.dept_no, d.nombre


from dept d
order by d.dept_no.

Select e.dept_no, e.apellido


from emp e
order by e.dept_no

3. Combinacin con utilizacin de ndice.

Si se puede utilizar un ndice para una sola columna del predicado de una combinacin,
entonces la tabla conductora ser aquella que no tiene un ndice utilizable en la condicin de
combinacin.

Ejemplo:
Create index idept1 on dept(dept_no)

Select d.nombre, e.apellido


From dept d, emp e
Where d.dept_no = e.dept_no.

La tabla conductora ser emp. Se usar el ndice sobre dept_no para acceder a la tabla
dept. La tabla emp ser analizada completamente.

Si el predicado de una combinacin no est indexado, se consideran el resto de los ndices


para elegir la tabla conductora.

Ejemplo:
Create index iemp1 on emp(sal)

Select dept_no, dnombre


From dept, emp
Where dept_no = dept_no.
and sal = 100000

Pgina 30 de 38
Estndar de desarrollo

Se utilizar el ndice sobre Sal para combinar las tablas. Se elige como conductora
aquella que tiene ndice.

Se utilizarn los ndices de las tablas no conductoras para acceder a dichas tablas. Si se
puede utilizar un predicado de fila simple para un predicado de no combinacin, entonces la
tabla conductora ser la tabla con el predicado de fila simple.

Ejemplo:
Create unique index idept1 on dept(dnombre)
Create index iemp1 on emp(sal)

Select dnombre, apellido


From dept, emp
Where dept_no = dept_no.
and dnombre = DEPARTAMENTO
and sal = 1000000

La tabla conductora es dept. Se usar el ndice sobre dnombre para acceder a la tabla
dept. Se usar el ndice sobre sal para acceder a la tabla emp.

Si se pueden utilizar predicados de fila simple para predicados de no combinacin en ms


de una tabla, entonces la tabla conductora ser la tabla mencionada en ltimo lugar en la
lista from.

Ejemplo:
Create unique index idept1 on dept(dnombre)
Create unique index iemp1 on emp(sal)

Select dnombre, apellido


From dept, emp
Where dept_no = dept_no.
and dnombre = DEPARTAMENTO
and sal = 1000000

La tabla conductora es dept. Se usar el ndice nica sobre sal para acceder a la tabla
emp. Se usar el ndice nico sobre dnombre para acceder a la tabla dept.

Optimizacin Or

Esta optimizacin se utilizar si podemos usar un ndice para la clusula where en ambos lados
de la condicin Or. La consulta ser dividida en mltiples consultas, a partir de las cuales se
combinarn los resultados. Esta optimizacin tambin ser usada en una tabla simple con
clusula in.

Ejemplo:
Create index iemp1 on emp(dept_no)
Create index iemp2 on emp(oficio)

Select apellido
From emp
Where dept_no = 10
or oficio = OFICIO

Pgina 31 de 38
Estndar de desarrollo

Operador In

Ejemplo:

Select dept_no
From Dept
Where Dept_no in
(Select dept_no
From emp)

La tabla conductora para la consulta es la que aparece en la subconsulta.


Esta consulta se transforma en un join, donde el acceso a la subconsulta es secuencial
(clasificando los registros y eliminando duplicados), y el acceso a la consulta externa permitir
el uso de ndices.
Slo conviene utilizar este operador si la consulta interna es muy selectiva.
No utilizar el operador Not In.

Operador Exists

Ejemplo:

Select dept_no
From Dept
Where exists
(Select null
From emp
Where emp.dept_no = dept.dept_no)

La tabla conductora para la consulta es la que aparece en la consulta principal.


Se ejecuta la subconsulta para cada fila de la consulta principal. En ambas consultas pueden
utilizarse ndices.
Slo conviene utilizar este operador si la consulta principal es muy restrictiva.
No utilizar el operador Not Exists.

Pgina 32 de 38
Estndar de desarrollo

Nomenclatura de objetos en PL/SQL

Como norma habitual, cualquier objeto que se vaya a utilizar en un bloque PL/SQL deber
nombrarse basndonos en las siguientes reglas.

Variables locales v_nombre_variable


Variables globales Sin regla. Se antepone el prefijo global.
Procedimientos p_nombre_procedimiento
Funciones f_nombre_funcion
Paquetes pk_nombre_paquete
Excepciones exc_nombre_excepcin
Tabla PL/SQL t_nombre_tabla
Registro PL/SQL r_nombre_registro
Constantes cn_nombre_constante
Cursores cur_nombre_cursor

Pgina 33 de 38
Estndar de desarrollo

Declaraciones

Cualquier declaracin de una variable que vaya a contener valores de una columna de una tabla
de la base de datos, utilizar el atributo %TYPE, para independizar la variable de posibles
cambios en la estructura de la base de datos. Adems, debera llamarse loa ms aproximado
posible a la columna de la base de datos, o en su defecto, un nombre suficientemente
descriptivo.

V_ob_anno_obra tutor.pr_cargo_producs.ob_anno_obra%type;

Los cursores debern ser declarados siempre con el prefijo c_nombre_cursor, intentando poner
el nombre de la tabla seleccionada, o en su defecto, un nombre significativo.

Si una variable debe ser inicializada, se har en la seccin de declaracin de variables.

Nomenclatura de objetos de Forms & Reports

Los nombres de mdulos (pantallas e informes) se nombrarn anteponiendo las siglas del
aplicativo (2 dgitos) seguidas de una letra indicativa de su funcionalidad principal ms un
nmero secuencial de 4 digitos

Los aplicativos son:


GE Mdulo general de funcionamiento (Men, cambio de empresa,
parametrizaciones generales etc)
AL Almacn
CO Compras y proveedores
VE Ventas y clientes
TE Cobros pagos
CB Contabilidad
BD Bodega

Las letras son:


M = Mantenimiento de maestros y auxiliares
G = Gestion de documentos (Albaranes, Pedidos etc)
C = Consultas
I = Pantallas que generan impresines
R = Report
Ejemplos
BDM0030.fmb
FAC0050.fmb
FAR0060.rdf

Biblioecas

Bibliotecas de uso general para todos los mdulos:


LIB ms un nmero secuencial de 4 dgitos

LIB0000
LIB0001.

Pgina 34 de 38
Estndar de desarrollo

Bibliotecas de uso en un mdulo:


Siglas del mdulo ms un numero secuencial de 4 dgitos

VE0000
VE0001.

Los nombres de los objetos de un formulario se deben basar en las siguientes reglas:

Objeto Nombre
Pantallas
Alerts al_nombre_alerta
Canvases cv_nombre_canvas
Editors ed_nombre_editor
Lovs lv_nombre_lov
Object groups ob_nombre_grupo_objetos
Parameters p_nombre_parmetro
Popups Menu pm_nombre_men
Property Classes pc_nombre_clase_propiedad
Record Groups rg_nombre_grupo_registros
Visual Attributes va_nombre_atributo_visual
Windows w_nombre_ventana
Bloques b_nombre_bloque (bloque de
control blk_ctrl)
Marco de pantalla Fr_nombre_de_marco
Item pantalla (no B.D) n_nombre_de_item
Botones bt_nombre_boton
Informes
Querys q_Nombre_consulta
Summary Columns cs_columna_sumatoria
Formula Columns cf_columna_formula
Placeholder Column cp_columna_placeholder
Grupos g_nombre_grupo
Cross Product g_cp_nombre_matriz
Fields f_nombre_campo

Nomenclatura de objetos de Base de Datos

Tablas.

Se nombran con un mximo de 15 caracteres descriptivos del contenido de la tabla. Se siguen


las siguientes normas:
- Utilizar maysculas
- No incluir en el nombre la funcin de la tabla, es decir si es un maestro,
histrico etc.
- Utilizar el singular del objeto (articulo en vez de articulos)
- No utilizar conjunciones ni preposiciones ni articulos
- Abreviar las palabras de la forma mas legible y breve posible en 4 digitos
por palabra. Si se necesita abreviar ms utilizar 3 2 digitos

Pgina 35 de 38
Estndar de desarrollo

- Separar las palabras con guin bajo


Ejemplos:

Maestro de artculos: ARTICULO


Maestro de articulos por almacn (existencias, precios, costo etc): ALMA_ARTI
Cabeceras de pedido cliente: CABE_PEDI_CLIE
Partes de fabricacin: CABE_PART_FABR y LINE_PART_FABR

Columnas.

Se nombran con un mximo de 10 caracteres. Siguiendo las mismas normas que las tablas y
adems:
- Las fechas se nombran comenzando con f_ salvo que sea suficiente con la
palabra fecha
-

Constrains

Se utilizar la opcin de nombre automtico asignado por el sistema

Pgina 36 de 38
Estndar de desarrollo

Cuaderno de pruebas
En este apartado se definen el conjunto de pruebas a realizar en los mdulos desarrollados.
Todas las pantallas debern haber superado este conjunto de pruebas generales,
independientemente de haber superado las pruebas especficas de cada mdulo en particular.

Referente a la migracin, el mdulo deber mantener la misma funcionalidad en Forms 6.0


que la disponible en la versin previa Forms 3.0. Exactamente igual en el caso de los
reports.

Debe cumplir todas las especificaciones descritas en el estndar visual desarrollado


anteriormente en el punto Entorno de desarrollo para el caso de las pantallas, y en el punto
Interfaces de usuario (informes) para el caso de los informes.

Verificar la completa funcionalidad del ratn en las pantallas, comprobando que se realizan
las validaciones necesarias en los campos dnde estn definidas, as como el no poder
acceder a campos dnde no est permitido el acceso. En los desarrollos en Forms 3.0, la
navegacin por los campos era secuencial, realizando determinadas funciones de validacin
o inicializacin cuando se pasaba de un campo a otro. Todas estas funciones deben
realizarse de la misma manera en forms 6.0. Cuando utilizamos el ratn para realizar la
navegacin entre dos campos, se deben ejecutar todas las validaciones que existen entre los
campos intermedios. Tambin se debe controlar el acceso condicionado, probando que
nicamente se puede acceder a un campo en determinadas condiciones que lo habilitan.

Comprobar la correcta navegacin entre campos y entre bloques, verificando todas las
validaciones.

Dependiendo de la funcionalidad de la pantalla, debemos comprobar lo siguiente:

1. Inserciones. Se tiene que comprobar que las inserciones se realizan correctamente,


validando los campos que pertenecen a dominios o que deben contener valores
obligatorios, validando rangos si estuvieran definidos, comprobando inserciones o
actualizaciones en otras tablas originadas por la insercin actual. Comprobar que no se
pueden realizar inserciones en monedas distintas a la moneda base en el perodo en el
que estamos trabajando. Si la insercin no est permitida, se debe comprobar que
verdaderamente no se puede realizar.

2. Modificaciones. Se tiene que comprobar que los campos que sean modificables se
puedan actualizar, y al contrario, si no son modificables, no se pueden actualizar.
Verificacin de obligatoriedad, dominios y rangos. Comprobacin de actualizaciones,
inserciones y/o borrados derivados de la modificacin actual.

3. Borrado. Si un bloque de un mdulo no debe permitir el borrado, se debe comprobar


que efectivamente no lo permite. En caso de que sea permisible, se debe verificar que el
borrado es efectivo. Si existen tablas derivadas o relacionadas con la original, y se
tuvieran que borrar los registros relacionados (tanto a nivel programtico, como por
definicin del borrado en cascada en la base de datos), se tiene que comprobar que el
borrado es correcto.

4. Consultas. El mdulo permite realizar consultas. Comprobar que todos los campos en
los que se puede realizar una consulta son consultables, ejecutando consultas sencillas y
complejas con combinaciones de campos. Comprobar la funcionalidad de conversin de

Pgina 37 de 38
Estndar de desarrollo

euros a pesetas y viceversa, en las pantallas donde se permita. Realizar pruebas


exhaustivas de consultas en campos numricos o de importes.

5. Lanzamientos de listados. Comprobar que los campos que se utilizan como parmetros
del listado, aceptan los valores adecuados (rangos, dominios, valores fijos), verificando
las validaciones en caso de que estn definidas. Comprobar que la seleccin de la
impresora es la adecuada para el listado en cuestin, mostrando un mensaje de error en
caso de no ser la impresora adecuada, atendiendo al n de posiciones horizontales y
verticales que conforman el listado.

Comprobar todas las teclas de funcin que se han particularizado para los mdulos,
manteniendo la compatibilidad con la nueva definicin del teclado en Forms 6.0.

Comprobar que todos los listados funcionan correctamente en euros y en pesetas (donde sea
necesario).

Verificar que un listado puede ser convertido a fichero ASCII, manteniendo el sangrado
correcto en las columnas.

Todos los listados deben poder ser enviados a fichero, incluyendo todos los tipos de fichero
que proporciona la herramienta. El usuario debe ser capaz de manipular los ficheros
generados.

Ejecutar el listado con todos los campos al mximo n de caracteres (obtenido a partir de la
informacin de las tablas o informacin de control), para evitar que aparezcan campos
rellenos con * cuando se desbordan.

Comprobar el salto correcto de pginas en todos los listados.

Pgina 38 de 38

También podría gustarte