Anda di halaman 1dari 10

Softdownload.com.

ar

Oracle bsico (y VI): SQLMenu

SQLMenu es el producto de ORACLE destinado a producir rboles de menes que permiten al usuario desplazarse fcilmente a travs de su aplicacin, facilitando a su vez, la integracin con los diferentes mdulos de ORACLE analizados en nuestros artculos anteriores permitiendo, de esta forma, la conexin con SQLForms, SQLReport, SQLPlus, PL/SQL y tareas del sistema operativo. La integracin de mdulos, herramienta que permite desde un producto de Oracle invocar otros, tambin est presente en SQLForms, desde donde, como veremos en este artculo, se pueden realizar tareas del sistema operativo con llamadas a los mdulos SQLReport y SQLPlus.

Definiciones
Comenzaremos explicando las diferentes partes que componen el diseo de un men en SQLMenu. Ellos son: Aplicacin Conjunto de uno o ms menes interconectados para realizar las tareas necesarias del sistema y para el cual se definen su nombre, nombre del archivo ejecutable, fecha de creacin, nombre del usuario, nmero de la versin, fecha de la ltima modificacin, directorio de ubicacin y su identificacin. Lista de opciones o items que realizan las tareas especficas del sistema. Cuando se crea la aplicacin el primer men que se debe definir es el principal, cuyo nombre tiene que ser el mismo que el de la aplicacin. Este ser el men que se activar en forma automtica al cargar la aplicacin. Define las opciones del men y su correspondiente accin. Un tem puede llamar a otro men, ejecutar un comando o un mdulo de Oracle, as como cualquier otro programa. Para cada tem se define su posicin en el men, tipo de comando, permisos de los usuarios, texto de identificacin y la lnea del comando a realizar. Variable que se carga en el momento de ejecucin del men y para la cual se definen un nombre de dos letras, cantidad mxima de caracteres, texto en pantalla en el momento de su ingreso, si es o no obligatorio, con o sin conversin a maysculas y su valor por defecto.

Men

Items

Parmetros

Pgina 1 de 10 No te olvides de Visitar la web de los Mejores Cursos Gratisl Softdownload.com.ar

Softdownlaod.com.ar Existen 5 parmetros del sistema cuya informacin podemos verla en la tabla 1.

Valor Nombre del usuario. Contrasea del usuario. Directorio actual. Opcin seleccionada men. TT Tipo de terminal en uso. Tabla 1. Parmetros del sistema.

Parmetro UN PW AD SO

del

Los parmetros se definen en la lnea de comandos precedidos por &, como por ejemplo &UN. Para los bloques de cdigo en PL/SQL se hace referencia precedido con dos puntos de la forma :UN.

Tipos de comandos
En SQLMenu, desde un men, se pueden realizar varios tipos de comandos. Pueden verse en la tabla 2.

Tipo Descripcin 1 Llamada a un submen. 2,3 Tarea del sistema operativo sin y con pausa. 4 Conexin con SQLForms. 5 Conexin con SQLPlus. 6 Realiza un Macro de SQLMenu. 7 Realiza un procedimiento en PL/SQL. Tabla 2. Lista de comandos que se pueden realizar A continuacin, para conocer cada tipo de comando, disearemos una aplicacin llamada CLIENTE, cuyo men principal, llamado tambin CLIENTE, esta compuesto de 6 submenes (tipo de comando 1), como se muestra en la tabla 3.

Men N Item CLIENT 1 E 2 3

Tipo comando Lnea comando 1 FORMA 1 1 REPORTE LISTADO


Pgina 2 de 10

No te olvides de Visitar la web de los Mejores Cursos Gratisl Softdownload.com.ar

Softdownload.com.ar PROCEDIMIEN TO 5 1 MACRO 6 1 SISTEMA Tabla 3. Submenes del men CLIENTE La pantalla de nuestro men CLIENTE se presenta de la siguiente forma: FORMA REPORTE LISTADO PROCEDIMIENTO MACRO SISTEMA ________________________CLIENTE________________________ Pasaremos a detallar cada submen, para de esta forma detenernos en las particularidades de cada tipo de comando. FORMA Realiza tareas del comando tipo 4 para la integracin de SQLMenu con SQLForms. En este caso pasamos como lnea de comando la orden RUNFORM con la informacin necesaria para la conexin, como son, el nombre del usuario, su contrasea y el nombre de la forma a activar. La sintaxis de este lnea de comando corresponde a la de la orden RUNFORM desde el sistema operativo, siendo necesario, en este caso, pasar el nombre del usuario y su contrasea, definidos al momento de realizar la conexin con SQLMenu, a travs de los parmetros UN y PW. En la tabla 4 se muestra como se activa la forma CLIENTES desde el men FORMA. 4 1

N Item Tipo de comando Lnea de comando 1 4 RUNFORM CLIENTES &UN/&PW Tabla 4. Cmo activar la pantalla CLIENTES REPORTE La conexin con SQLReport no es de forma directa como lo es con SQLForms, sino que se debe realizar a travs del tipo de comando 2, que se encarga de pasar la lnea de comando del men al sistema operativo para que lo procese. En este caso se siguen las mismas reglas detalladas anteriormente para SQLForms. En la tabla 5 se muestra como se activa el reporte llamado VENTAS. Men REPORT E N Item Tipo de comando Lnea de comando 1 2 RUNREP VENTAS &UN/&PW
Pgina 3 de 10 No te olvides de Visitar la web de los Mejores Cursos Gratisl Softdownload.com.ar

Men FORM

Softdownload.com.ar Tabla 5. Cmo activar el reporte VENTAS LISTADO Los listados diseados en SQLPlus se activan con el tipo de comando 5, que es el que permite la integracin de SQLMenu con SQLPlus. La identificacin del usuario y su contrasea se logra con los parmetros UN y PW como explicamos en los casos anteriores. de Lnea de comando co m an do LISTAD 1 5 SQLPlus -S &UN/&PW O @CLIENTE 2 5 SQLPlus &UN/&PW \FAC\VENTAS Tabla 6. Cmo activar el listado LISTADO Los archivos de listado, por ejemplo CLIENTE.sql, debe tener EXIT como ltimo comando, con el fin de garantizar la desconexin de SQLPlus y el regreso a SQLMenu. El parmetro -S de SQLPlus suprime todas las visualizaciones de especificaciones del SQLPlus por pantalla. PROCEDIMIENTO Para ejecutar un procedimiento del sistema o del usuario, as como un bloque annimo de PL/SQL escrito directamente en la lnea de comando del men, se utiliza el tipo de comando 7. Men N Item Tipo de Lnea de comando co m an do EXIT_MENU; PROCEDURE CAMBIO IS BEGIN ... END; NUEVO; Men N Item Tipo

PROCEDIMIEN 1 TO 2

7 7

3 7 Tabla 7. Cmo ejecutar un procedimiento.

Pgina 4 de 10 No te olvides de Visitar la web de los Mejores Cursos Gratisl Softdownload.com.ar

Softdownload.com.ar En nuestro ejemplo, el tem 1 es un procedimiento del sistema, el 2 es un bloque annimo y el 3 es un procedimiento creado por el usuario. En el fuente 1 vemos la definicin del procedimiento NUEVO, para de esta forma explicar algunos de ellos:

Fuente 1: Procedure Name: NUEVO ------Procedure Text ------------PROCEDURE NUEVO IS BEGIN NEW_USER('EIDOS/ESPAA'); NEW_APPLICATION('VENTAS'); MAIN_MENU; OS_COMMAND('DIR'); EXIT_MENU('Fin del Men'); END;

Donde: NEW_USER usuario. NEW_APPLICATION MAIN_MENU OS_COMMAND EXIT_MENU MACRO Desconecta al usuario actual y conecta un nuevo Cambia de aplicacin. Pasa al men principal. Realiza un comando del sistema operativo. Salida del Men.

Existe un conjunto de macros incorporadas al SQLMenu que pueden ser llamados desde un men, como los que se muestran la tabla 8.

Men MACR O

N Item Tipo de comando Lnea de comando 1 6 NEWUSER; 2 3 6 6

NEWAPL; MAINMENU;ASSIGN DK=A:; Tabla 8. Ejecucin de macros que pueden ser llamadas. Los macros tienen un procedimiento equivalente en SQLMenu y viceversa. En los manuales de Oracle existe una tabla de correspondencia entre Macro-Procedimiento-Tecla de Funcin. Esta dualidad est dada con el fin de mantener la compatibilidad con versiones anteriores de SQLMenu.

Pgina 5 de 10 No te olvides de Visitar la web de los Mejores Cursos Gratisl Softdownload.com.ar

Softdownload.com.ar Algunas macros tienen argumentos, como la macro ASSIGN, cuyo objetivo es asignar un nuevo valor a un parmetro definido por el usuario. La definicin y el uso de los parmetros lo veremos ms adelante. SISTEMA Los comandos de tipo 2 y 3 son los que se usan para hacer tareas desde el sistema operativo, pasando una lnea de comando directamente al sistema operativo para su ejecucin, como ya vimos anteriormente para el caso de los reportes. La diferencia consiste en que despus de realizar el comando de tipo 2 se retorna al men inmediatamente, y con el tipo 3 se realiza una pausa antes de retornar al men, quedando a la espera de que el usuario presione alguna tecla para continuar.

Men

N Item Tipo de comando Lnea

SISTEM A

de co ma ndo CHKDSK &DK

2 3 DIR &DK Tabla 9. Ejecucin de tareas del sistema En este ejemplo se usa el parmetro DK para identificar la unidad de disco con la cual se va a trabajar. En la figura 1 se muestra la pantalla de definicin de este parmetro.

Parameter Definition Parameter DK Size Prompt [ x ] Echo 2 [ ] Fixed Length Diskette A: B: o [ ] Required disco (Select Menus ) [ ] Upper Case

Default C: Hint Figura 1. Pantalla de definicin del parmetro DK.

Pgina 6 de 10 No te olvides de Visitar la web de los Mejores Cursos Gratisl Softdownload.com.ar

Softdownload.com.ar Una vez seleccionado la opcin del men SISTEMA que hace referencia al parmetro DK, aparecer en pantalla, para ingresar el valor del parmetro, el siguiente cuadro: Enter Parameter Value(s) Diskette A: B: o disco C:

Integracin desde SQLForms


La integracin de mdulos, como los casos que acabamos de estudiar, tambin esta presente en SQLForms, desde donde podemos activar los mdulos SQLReport y SQLPlus a travs del sistema operativo. En artculos anteriores estudiamos por separado SQLForms y SQLReport, ahora pasaremos a ver como se realiza la integracin de estos dos mdulos. Las definiciones a realizar para esta integracin son las siguientes: En SQLReport: - Parmetros y sus valores por defecto. Esta es la va que tenemos para pasar los datos necesarios, desde SQLForms, en el momento de la ejecucin del reporte. En SQLForms: - Campos de la forma donde se van a ingresar los valores a pasar como parmetros al reporte. - Procedimiento que invoca a SQLReport con sus correspondientes parmetros. Para esto se usa la orden HOST, procedimiento del sistema que tiene como funcin enviar un comando al sistema operativo, en este caso RUNREP, garantizando el paso de variables a travs de los parmetros y el retorno automtico a SQLForms. Veamos primero la definicin de los parmetros en SQLReport, cuyo objetivo es controlar diferentes aspectos del reporte, como son: dispositivo de salida, tipo de impresora, nmero de copias y datos especficos del usuario. Para ello retomaremos el ejemplo VENTAS, diseado en nuestro artculo anterior ORACLE BASICO V (ver Algoritmo N13): Reportes con SQLReport. En la tabla 10 podemos ver los parmetros del sistema y del usuario con sus respectivos significados.

SISTEM A

Nombre DESTYPE DESNAME DESFORM

Tipo Ancho Valor Identificacin CHAR 80 Printer Tipo de salida: Screen, File o Printer CHAR 80 PRN Nombre de Dispositivo o archivo CHAR 80 dflt Especifica tipo de
Pgina 7 de 10

No te olvides de Visitar la web de los Mejores Cursos Gratisl Softdownload.com.ar

Softdownload.com.ar AT COPIES NUM 2 1 USUARI XCOD NUM 10 2 O XDIAS NUM 5 30 Tabla 10. Parmetros del sistema y del usuario. formato de la impresora para sus cdigos de control. Nmero de Copias Cdigo Cliente Cantidad de Das

Ahora crearemos, en SQLForms, el procedimiento llamado REPORTE, cuyo objetivo es realizar el reporte VENTAS. (Vase el fuente 2)

/* Fuente 2 */ PROCEDURE REPORTE IS BEGIN DECLARE /* Variables locales de memoria, de tipo carcter, cuyo objetivo es cargar los valores de los campos numricos de la forma. */ XC CHAR(10); XD CHAR(5); BEGIN /* Asignacin de los valores de los campos de la forma YCOD y YDIAS a las variables locales con su correspondiente conversin a carcter. */ XC:=TO_CHAR(:YCOD); XD:=TO_CHAR(:YDIAS); /* Llamada a SQLReport por medio de la orden HOST, con la correspondiente cadena de caracteres de definicin de parmetros. */ HOST ('RUNREP REPORT=VENTAS USERID=EIDOS/ESPAA PARAMFORM=NO DESTYPE=PRINTER DESNAME=PRN COPIES=3 XCOD='||XC|| ' XDIAS='||XD ); END; END;

Donde:

Pgina 8 de 10 No te olvides de Visitar la web de los Mejores Cursos Gratisl Softdownload.com.ar

Softdownload.com.ar REPORT=VENTAS Indica que el reporte a ejecutar esta en el archivo VENTAS.rep, donde qued registrado el resultado de la compilacin efectuada desde SQLReport.

USERID=EIDOS/ESPAA Identifica el nombre del usuario y su contrasea. PARAMFORM=NO Indica que los parmetros se pasan directamente en la lnea de comando, de lo contrario se solicitara su ingreso por pantalla en el momento de la ejecucin. Salida por impresora. Nombre de la impresora. Cantidad de copias.

DESTYPE=PRINTER DESNAME=PRN COPIES=3

En esta integracin no existe lmite en la cantidad de parmetros a transferir, existiendo la posibilidad de construir un archivo de parmetros. Por ejemplo, si escribimos los parmetros en el archivo ventas.para, la conexin con SQLReport desde el procedimiento REPORTE sera de la siguiente forma:

HOST

('RUNREP REPORT=VENTAS CMDFILE=VENTAS.PAR' );

La integracin de SQLForms con SQLPlus cumple las mismas reglas detalladas anteriormente para SQLReport, slo vara la sintaxis en la orden HOST ya que sta corresponde a las especificaciones del comando SQLPLUS como se muestra a continuacin:

HOST

('SQLPLUS EIDOS/ESPAA @LISTADO '|| :F1|| ' '|| :F2 );

Donde: EIDOS/ESPAA @LISTADO Identificacin de usuario y su contrasea. Archivo que contiene los comandos SQL a ejecutar.
Pgina 9 de 10 No te olvides de Visitar la web de los Mejores Cursos Gratisl Softdownload.com.ar

Softdownload.com.ar

:F1 y :F2

Campos de la forma, de tipo carcter, cuyos valores se pasa como parmetros al SQLPlus en el momento de la ejecucin.

Con este artculo llegamos al final de la serie sobre Oracle Bsico, donde hemos analizado sus aspectos bsicos, as como sus rasgos ms significativos. Espero haber logrado, por un lado, introducir al lector en el mundo de bases de datos relacionales y SQL y, en el caso de aquellos que ya desarrollan aplicaciones en este entorno, impulsarlos a seguir avanzando en el estudio de Oracle.

Bibliografa
Oracle 7 Manual de Referencia Koch, George. Osborne/McGraw-Hill 1999 Oracle Manual de Referencia. Koch, George. Osborne/McGraw-Hill. 1997 Mastering Oracle. Cronin, Daniel. Hayden Books. 1999

Pgina 10 de 10 No te olvides de Visitar la web de los Mejores Cursos Gratisl Softdownload.com.ar