Sunteți pe pagina 1din 14

Cybercursos.

net

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 d e 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.

Men

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.

P gi na 1 de 14

No te ol vi des de Vi s i ta r l a web de l os Mejores Curs os Gra ti s l

www.cybercursos.net

Cybercursos.net

Items

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.

Parmetros

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.

Existen 5 parmetros del sistema cuya informacin podemos verla


en la tabla 1.

Parmetro

Valor

UN

Nombre del usuario.

PW

Contrasea del usuario.

AD

Directorio actual.

SO

Opcin
men.

TT

Tipo de terminal en uso.

seleccionada

del

Tabla 1. Parmetros del sistema.

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.

P gi na 2 de 14

No te ol vi des de Vi s i ta r l a web de l os Mejores Curs os Gra ti s l

www.cybercursos.net

Cybercursos.net

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

Tipo

Descripcin

Llamada a un submen.

2,3

Tarea del sistema operativo sin y con


pausa.

Conexin con SQLForms.

Conexin con SQLPlus.

Realiza un Macro de SQLMenu.

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

Tipo comando

Lnea comando

CLIENTE

FORMA

REPORTE

LISTADO

PROCEDIMIENTO

MACRO

P gi na 3 de 14

No te ol vi des de Vi s i ta r l a web de l os Mejores Curs os Gra ti s l

www.cybercursos.net

Cybercursos.net

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.

Men

N Item Tipo de comando

FORMA

Lnea de comando
RUNFORM CLIENTES &UN/&PW

P gi na 4 de 14

No te ol vi des de Vi s i ta r l a web de l os Mejores Curs os Gra ti s l

www.cybercursos.net

Cybercursos.net

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

N Item Tipo de comando

REPORTE

Lnea de comando
RUNREP VENTAS &UN/&PW

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.

Men

N Item Tipo de comando

Lnea de comando

LISTADO

SQLPlus -S &UN/&PW @CLIENTE

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.

P gi na 5 de 14

No te ol vi des de Vi s i ta r l a web de l os Mejores Curs os Gra ti s l

www.cybercursos.net

Cybercursos.net

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 comando

Lnea de comando

PROCEDIMIENTO

EXIT_MENU;

PROCEDURE CAMBIO IS
BEGIN
...
END;

NUEVO;

Tabla 7. Cmo ejecutar un procedimiento.

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');

P gi na 6 de 14

No te ol vi des de Vi s i ta r l a web de l os Mejores Curs os Gra ti s l

www.cybercursos.net

Cybercursos.net

EXIT_MENU('Fin del Men');


END;

Donde:

NEW_USER
usuario.

Desconecta al usuario actual y conecta un nuevo

NEW_APPLICATION

Cambia de aplicacin.

MAIN_MENU

Pasa al men principal.

OS_COMMAND

Realiza un comando del sistema operativo.

EXIT_MENU

MACRO

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

N Item Tipo de comando

Lnea de comando

MACRO

NEWUSER;

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.

P gi na 7 de 14

No te ol vi des de Vi s i ta r l a web de l os Mejores Curs os Gra ti s l

www.cybercursos.net

Cybercursos.net

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 de comando

SISTEMA

CHKDSK &DK

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

[x]

Echo

P gi na 8 de 14

No te ol vi des de Vi s i ta r l a web de l os Mejores Curs os Gra ti s l

www.cybercursos.net

Cybercursos.net

Size

Fixed Length

Prompt

Diskette A: B: o disco

] Required

(Select Menus )

] Upper Case

Default

C:

Hint
Figura 1. Pantalla de definicin del parmetro DK.

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:

P gi na 9 de 14

No te ol vi des de Vi s i ta r l a web de l os Mejores Curs os Gra ti s l

www.cybercursos.net

Cybercursos.net

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.

SISTEMA

USUARIO

Nombre

Tipo

Ancho

Valor

Identificacin

DESTYPE

CHAR

80

Printer Tipo de salida: Screen,


File o Printer

DESNAME

CHAR

80

PRN

Nombre de Dispositivo o
archivo

DESFORMAT

CHAR

80

dflt

Especifica tipo de formato


de la impresora para sus
cdigos de control.

COPIES

NUM

Nmero de Copias

XCOD

NUM

10

Cdigo Cliente

P gi na 10 de 14

No te ol vi des de Vi s i ta r l a web de l os Mejores Curs os Gra ti s l

www.cybercursos.net

Cybercursos.net

XDIAS

NUM

30

Cantidad de Das

Tabla 10. Parmetros del sistema y del usuario.

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||

P gi na 11 de 14

No te ol vi des de Vi s i ta r l a web de l os Mejores Curs os Gra ti s l

www.cybercursos.net

Cybercursos.net

' XDIAS='||XD
);
END;
END;

Donde:

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.

DESTYPE=PRINTER

Salida por impresora.

DESNAME=PRN

Nombre de la impresora.

COPIES=3

Cantidad de copias.

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:

P gi na 12 de 14

No te ol vi des de Vi s i ta r l a web de l os Mejores Curs os Gra ti s l

www.cybercursos.net

Cybercursos.net

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

Identificacin de usuario y su contrasea.

@LISTADO

Archivo que contiene los comandos SQL a ejecutar.

:F1 y :F2

Campos de la forma, de tipo carcter, cuyos valores se pasa como


parmetros al SQLPlus en el momento de la ejecucin.

P gi na 13 de 14

No te ol vi des de Vi s i ta r l a web de l os Mejores Curs os Gra ti s l

www.cybercursos.net

Cybercursos.net

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
1994

Oracle Manual de Referencia.


Koch, George.
Osborne/McGraw-Hill.
1992

Mastering Oracle.
Cronin, Daniel.
Hayden Books.
1990

P gi na 14 de 14

No te ol vi des de Vi s i ta r l a web de l os Mejores Curs os Gra ti s l

www.cybercursos.net

S-ar putea să vă placă și