Sei sulla pagina 1di 84

Distribuido por : www.ctv.

es/USERS/richardson

Realizado por : Juan Paulo Soto C. y Ral Yaez Khler. Ultima modificacin: 02/16/1999 17:51:00

2/84

TEMARIO :

Introduccin Ambiente de Desarrollo Aplicacin Mantencin Propiedades Eventos Ventanas Controles Propiedades Controles Eventos Controles PowerScript Ambito Utilizacin Operadores Matemticos Flujos de Control Utilizacin de Herramientas Listado de Funciones Sentencias SQL-Incrustado Listado de Sentencias(If, For, Do, etc.) Compilacin Buscador

Funciones Estructuras Definir Estructuras Trabajar con Estructuras Menues

3/84/

Libreras

Base de Datos Tablas Definicin de Campos Atributos Adicionales Propiedades Tabla Modificar Tabla Eliminar Tabla Claves Indices Actualizar Datos Tabla Estilos de Edicin Reglas de Validacin Objeto de Transaccin

Datawindows Origen de Datos Barra de Utiles Presentacin Elementos Grupos Otros Proyecto

Utilizacin Datawindows Manejo de Datawindow Control Funciones para el Manejo Aadir Eliminar Buscar Filtrar Registros Actualizar Base de Datos Modificar Presentacin Describe Modify Imprimir Datawindow Control Eventos

4/84

SQL Incrustado No Cursores Select Insert Update Delete Cursores Declarar el Cursor Abrir el Cursor Trabajar con el Cursor Cerrar el Cursor

5/84/

Introduccin
PowerBuilder es una herramienta de desarrollo de aplicaciones para el ambiente Windows, como tal utiliza las caractersticas de este ambiente. Primero debemos entender que el ambiente Windows permite esta bajo en concepto "Lo que Ud. ve es lo que puede realizar", bajo este contexto la presentacin cobra mucha importancia. La etapa de diseo es aquella en la cual el programador, escribe el cdigo fuente del programa ejecutable.

Programacin Orientada al Objeto


Este concepto es sencillo de entender si lo aclaramos con un ejemplo, una silla es un objeto; los elementos que la caracterizan son los atributos (color, altura, etc.). Todos estos atributos (caractersticas del objeto) pueden tomar valores dentro de un dominio definido por la caracterstica en si (color no puede tomar el valor 1,2 metros, la altura no puede ser amarillo, etc.) Ahora veamos su relacin con los objetos en la programacin, un objeto en programacin es un elemento que posee caractersticas, pero ms an posee mtodos (funciones) que han sido definidas para interactuar en operaciones comunes con dicho objeto. Ej. buscar un tem en una lista. Una instancia particular de un objeto se convierte en una variable, para todos los fines de la programacin, sus atributos se convierten en campos de esta.

Tipos de Objetos
Existen dos tipos de objetos: a)VISUALES: Son aquellos que pueden ser vistos por el usuario en el monitor de su computador. Ej. Botones, ventanas, etc. b)NO VISUALES: Son aquellos que aunque no pueden ser vistos por el usuario, poseen todas las caractersticas de estos. Ej. Errores, Objetos de Transaccin (SQL) En una aplicacin Power los objetos No visuales son muy necesarios para que los objetos Visuales interactuen con otros elementos ajenos al Sistema computacional en si.

Atributos, Eventos, Mtodos (Funciones)


Como ya se menciono previamente un objeto esta constituido por Atributos; estos lo caracterizan. Existen atributos que pueden modificarse y otros no. Tambin existen atributos que son modificables tanto durante el diseo de la aplicacin en si, como durante la ejecucin, y otras que solo pueden ser modificadas durante el diseo.

6/84

Los mtodos, son funciones destinadas a manipular elementos que son definidos en conjunto con el objeto, esto implica que un objeto solo puede manipular elementos que estn contenidos en el( efecto "caja negra")ej. en un objeto lista, la funcin buscar solo lo hace en los tems del objeto lista. Este principio se denomina Encapsulamiento , y permite una autonoma de cada objeto con su entorno. Eventos, cada accin que se puede realizar sobre el objeto es un Evento; ej. Hacer un click sobre un objeto botn, presionar una tecla al escribir en un objeto caja de texto, etc. Cada una de estas acciones es independiente una de otras, pero no necesariamente son excluyentes. Ej. al presionar el botn se realizan los Eventos Cerrar de la ventana, y el evento Destruir tambin de la ventana; el primero se realiza al sacar la ventana de la pantalla y el segundo se realiza cuando se saca la ventana de la memoria principal. Tambin es necesario indicar el principio de la Herencia, como en el ser humano un hijo hereda algunos rasgos de sus progenitores, en la programacin orientada al objeto, un objeto puede heredar los valores dados a un atributo, junto con todas las caractersticas dadas al objeto origen (cdigo, otros objetos contenidos dentro de este, etc.); pero con la libertad de deshacerse de estos o aadir nuevos sin alterar al objeto original.

7/84/

Ambiente de Desarrollo
El ambiente de desarrollo de Powerbuilder permite trabajar con todos los elementos que son necesarios para la realizacin de un proyecto. Para ejecutar PowerBuilder vaya al botn Inicio de Windows, la opcin Programas el tem Powersoft 5.0 y dentro de este el elemento Powerbuilder 5.0 for Intel.

Caractersticas
El ambiente de diseo de aplicaciones de Power esta contenido en un MDI (Mltiples Ventanas Contenidas), lo que permite que pueda contener en forma ordenada todas las tareas que uno puede realizar en forma continua en las reas de Desarrollo.

Areas de Desarrollo
Power posee muchas reas de trabajo para el desarrollo de los elementos que conforman una aplicacin, cada una genera un elemento que debe ser guardado en un archivo de librera (*.pbl) donde ser almacenado para su utilizacin. Se podr tener abierta mltiples reas de desarrollo, pudiendo cambiarse de una a otra a travs del men Windows, donde aparece con una marca el rea donde esta actualmente y el elemento en el que se esta trabajando.

Adems, uno podr tener varios elementos de la misma rea abierto, para efectos de trabajo con ellos cada uno de estos es independiente. Es importante hacer notar, que algunas opciones del men se vern alteradas al estar en una u otra rea de desarrollo. Las reas de trabajo son enumeradas en la opcin PowerPanel del Men Archivo, y tambin se presentan en una Caja de Herramientas (como la que se ve a continuacin).

8/84

Las Areas de Trabajo son las siguientes:


Area Descripcin Permite definir las caractersticas comunes que tendr la aplicacin, como son fuente de letra para las etiquetas, controles, etc. Tambin permite definir las Libreras que conforman la aplicacin, y las acciones que se deben realizar al iniciar/terminar la aplicacin, como son la ventana de inicio, etc. La aplicacin se torna en la cabeza de la aplicacin. Project Permite crear un archivo ejecutable, y especificar los componentes que irn con esta aplicacin. Window Permite trabajar con las ventanas que conformaran la aplicacin. Las ventanas se convierten en contenedores de los objetos visuales, es decir, estn puestos encima de esta; para que el usuario pueda manipularlos. User Object Permite definir nuevos tipos de objetos; a partir de los ya existentes o bien crendolos con una programacin C++. El primer tipo es el ms utilizado, ya que se puede formular cdigo estndar, y de esa manera disminuir el nmero de lneas de cdigo. Estos objetos aqu definidos pueden ser utilizados en cualquier ventana de la aplicacin. Menu Permite declarar los menes. Esto significa que pueden existir diversos listados de menes que sean utilizados por una aplicacin. Junto con esto es posible definir las acciones a realizar cuando se selecciona cualquier tem del men hecho. Structure Permite definir las estructuras de datos que sern utilizadas por la aplicacin. Se entiende por estructura de datos, un elemento que contiene subelementos en el, y que son dependientes de este. Se puede reflejar mucho mejor esto en la idea de registro. Function Permite definir las funciones que sern utilizadas por la aplicacin, y podrn ser accedidas desde cualquier parte de la aplicacin. Ests funciones podrn o no retornar un valor, y pueden o no tener parmetros. Datawindow Permite definir los datawindows, estas son consultas que estn unidas a una presentacin definida por uno. Donde se puede definir reglas de validacin para cada campo, y estilos de presentacin, Ud. puede definir argumentos, uniones, ordenamiento criterios de seleccin y agrupamiento. Query Es utilizado para definir y guardar una consulta Select en forma grfica, esto permite que pueda ser utilizada por objetos datawindows. Pipeline Un objeto Tubera es usada para administras el traspaso de datos durante la ejecucin de una aplicacin. Normalmente se hace esto para hacer traspasos masivos de datos desde una Base de Datos a otra. Configure ODBC Permite definir un profile (definicin) de conexin, el que utilizara el controlador seleccionado; el que deber estar presente en la mquina. DB Profile Permite seleccionar un profile, previamente definido, con el que se conectara a la Base de Datos correspondiente. Para cada tipo de Base de Datos los parmetros con los que se sirve para conectarse podran variar, infrmese. Database Permite trabajar con la Base de Datos conectada actualmente al seleccionar un profile del rea DB Profile. Aqu es posible Crear/Modificar Tablas, Claves Primarias/Forneas, Manipular datos. Library Use est rea de trabajo para crear y mantener las libreras, y los objetos que contienen estas. Estos objetos pueden ser la Aplicacin, Ventanas, Menes, etc. Use el botn Aplication Properties , o bien la misma opcin del men al presionar el botn derecho del mouse; para modificar la descripcin dada a cada objeto. Tambien es posible copiar, mover objetos de una librera a otra, o bien eliminarlos expresamente. Permite ejecutar la aplicacin desde su comienzo, si estuviera trabajando en un Area de Trabajo, se le pedira que guarde los cambios antes de iniciar la ejecucin de la aplicacin. Permite ejecutar una ventana solamente, no es una previsualizacin de est; realmente se ejecutan el cdigo contenido en cada objeto. Es importante que la Base de Datos con la que uno este trabajando este conectada va el objeto no visual de transaccin para que no se produzcan errores. Termina la ejecucin del Ambiente Powerbuilder.

Run Run window

Exit

9/84/

Todos estos botones estn presentes en la primera barra de herramientas, la que recibe el nombre de PowerPanel ("Barra de Herramientas Areas de Trabajo").

Cada Area de trabajo tiene su propia Barra de Herramientas, la que se llama PainterBar ("Barra de Herramientas del Area de Trabajo"), la que se presenta como una segunda barra de herramientas.

10/84

Aplicacin

11/84/

Para Powerbuilder una aplicacin es un objeto, debe ser nico dentro de todas las libreras que conformaran la aplicacin en si. Para trabajar con la aplicacin presione el botn .

Mantencin
Nueva Aplicacin: Para iniciar una nueva aplicacin seleccione la opcin New desde el tem File de la barra de men, o bien presionando el botn desde la segunda barra de herramientas. Aparecer una ventana donde Ud. deber seleccionar el lugar donde se depositara el archivo (*.PBL) y junto con esto el nombre de dicho archivo, estilo ventana "Guardar". Luego deber ingresar el nombre de la aplicacin en una ventana como la que sigue.

En la caja de texto Comment, podr ingresar algn comentario explicativo. Luego presione el botn Ok.

Su aplicacin aparecer as

Abrir una Existente Para abrir una aplicacin existente seleccione la opcin Open desde el tem File de la barra de men, o bien presione el botn desde la segunda barra de herramientas. Busque el archivo (*.pbl) que contenga el objeto aplicacin.

Guardar Cambios

12/84

Para guardar los cambios al modificar seleccione la opcin Save desde el tem File de la barra de men, o bien presione el botn desde la segunda barra de herramientas.

Propiedades
Presione el botn o vaya al men Entry opcin Properties.

Los atributos de la aplicacin tienen relacin con caractersticas globales de la aplicacin como son fuente predeterminadas de las letras para las cajas de texto, etiquetas, etc. Tambin se puede definir el icono que tendr la aplicacin cuando se haga el archivo ejecutable de est.

Tpico
General .. Font Icon Variable Libraries

Descripcin
Permite obtener informacin del objeto aplication. Permite definir caractersticas de presentacin visual de elementos. Permite definir el icono de la aplicacin. Permite conocer las variables globales por defecto y su tipo. Permite declarar las libreras que conforman la aplicacin.

Eventos
Los eventos ms utilizados para un objeto aplication son:

Evento
Open Close

Descripcin
Las acciones cuando inicie la ejecucin de la aplicacin. Las acciones cuando termine la ejecucin de la aplicacin.

Ventanas

13/84/

Las Ventanas son como contenedores, es posible poner en ellos una diversidad de objetos. Estos objetos se denominan en forma genrica Controles. Para trabajar en el diseo de una ventana presione el botn , de la barra de Areas de Trabajo. Inmediatamente aparecer una ventana donde podr seleccionar una de las ya existentes y presionar Ok para seguir trabajando en ella, o puede presionar el botn New para comenzar a disear una nueva ventana.
En la parte superior aparece el nombre del objeto ventana. El rectngulo que esta inmerso en la ventana corresponde al objeto ventana en diseo.

Nueva Ventana
Despus de presionar el botn New aparecer una ventana vaca. Ud. puede redimensionar desde los bordes de la misma. Al cerrar la ventana de Diseo, se le preguntara por el nombre que le dar a la nueva ventana.

Propiedades ventana
Las propiedades de la ventana estn organizados en forma de tpicos. Aqu no se mencionaran todos los tpicos, ya que algunos se repiten para todos los Controles (ver Controles)

Tpico
General

Descripcin
Casilla Title, indica el texto de titulo de la ventana. La casilla Menu Name, indica el nombre del objeto Menu para la ventana. Window Type, indica el tipo de ventana: Child, ventana que permanece inserta dentro de una ventana MDI. Main, ventana normal, con posibilidad de men. MDI Frame, ventana que posee rea interna para contener otras ventanas. MDI Frame with , igual que la anterior, pero con barra de estado inferior. Response, necesita cerrar esta ventana para continuar ejecucin. Permite indicar la posicin de la ventana dentro de la pantalla, como ser presentada. Utilice el esquema inferior para mover la ventana. Identifica al Icono que aparecer en la parte izquierda de la cabecera de la ventana. Permite definir si la ventana tendr barras de desplazamiento, y la unidad a utilizarse por ellas. Permite definir si se utilizara la caja de herramienta definida para el menu, su presentacin y posicin.

Position Icon Scroll ToolBar

14/84

Controles

15/84/

Son los objetos visuales que pueden ser puestos en la ventana. En la barra de herramientas secundaria, el botn que esta en el segundo grupo, muestra el listado de todos los objetos elementales que es posible de utilizar. Adicionalmente se pueden disear objetos con caractersticas adicionales para ser utilizadas tambin. Los controles bsicos son:

Control
CommanButton PictureButton CheckBox RadioButton StaticText Picture SingleLineEdit EditMask DropDownListBox ListBox Datawindow

Icon Descripcin
Boton, puede visualizar un texto en el. Presenta la capacidad visual de sobresalir y achatarse al presionar el mouse sobre el. Botn con n. Tiene todas las caractersticas del control anterior, pero adicionalmente permite mostrar una n dentro del mismo botn. Permite hacer una seleccin (marcarlo) entre varias alternativas. En el primero cada alternativa es independiente. En el segundo solo una alternativa, del conjunto, puede seleccionarse Caja de texto, como etiqueta. Solo para mostrar informacin, no hay posibilidad que pueda escribirse directamente en el. Caja de dibujo, permite visualizar una n. Esta puede ser definida en tiempo de diseo, o puede ser modificada en tiempo de ejecucin. Caja de edicin de texto, es posible que el usuario en tiempo de ejecucin escriba un texto dentro de la misma caja. Caja de texto, a la que se le puede restringir el conjunto de caracteres a ingresar. Permite un formato de presentacin. Caja de lista desplegable. Muestra un solo tem, el seleccionado, de la lista que se despliega al presiona el botn adjunto. Caja de lista. Muestra todos los tems a la vez, pudiendo seleccionarse inclusive, ms de uno. Datawindow Control, el que se vincula con un objeto Datawindow diseado.

Para aadir un control a la ventana, seleccione el control, del listado. Presione el mouse sobre el lugar en la ventana donde desea aadirlo. Para seleccionar un control de la ventana, presione el mouse sobre el, o mantenga presionado la tecla Control para seleccionar mltiples objetos. Puede moverlo, manteniendo presionado el mouse al mover este.

16/84

Propiedades Controles

17/84/

Las propiedades de los controles pueden ser modificados, tanto en tiempo de diseo, como en tiempo de ejecucin; va cdigo. Para ver las propiedades de un control, presione el mouse dos veces. Las propiedades de todo control estn ordenadas por tpicos, estos pueden variar levemente entre controles. Los ms comunes son:

Tpico
General

Descripcin
Name, indica el nombre del objeto. La casilla Text, indica el texto a ser mostrado. Tag, permite guardar cualquier dato. Visible, indica si el objeto puede verse. Enabled, indica si objeto esta activamente disponible. Para los Botones: Default indica que si se presiona el Enter en cualquier parte de la ventana, se activa dicho botn. Cancel indica que si se presiona la tecla Escape, se activa dicho botn. Para las cajas de Edicin, Etiqueta y Lista Desplegable: Alignment, indica la alineacin del texto. Case el tipo de presentacin. Border indica el tipo de borde. Limit, el nmero de caracteres a dejar ingresar. Para la Lista Desplegable: Allow Edit, indica que se puede escribir un tem adems de seleccionarlo. Sort, indica que el listado ser ordenado alfabticamente. Para la Lista: Multi Select, indica posibilidad de seleccin mltiple. Permite definir el tipo de letra, tamao y caractersticas de presentacin del texto visible. Text Color, indica el color del Texto. Background, indica el color de fondo. Indica las coordenadas X e Y, tambin se indica el largo (Width) y el alto del objeto (Height) Indica el tipo de Icono, que ser utilizado por el cursor cuando este pase por encima del objeto en tiempo de ejecucin. Para los objetos lista, permite ingresar el texto de cada tem. Para la mascara, permite definir la mascara de entrada de datos. Seleccione Type para ver en Masks, los posibles caracteres a utilizar. Cualquier otro carcter se considera un litera.

Font Position Icon Items Mask

Eventos Controles
Los eventos ms comunes, los que no necesariamente estn presentes en todo control son:

Evento
Clicked GetFocus LoseFocus DoubleClicked SelectionChanged RButtonDown Modified

Descripcin
Cuando el usuario presione el mouse sobre el rea que conforma el objeto visual. Cuando el objeto obtiene la atencin, se mouse el cursor sobre el. Cuando el objeto pierde la atencin. Cuando el usuario presiona dos veces el mouse sobre el rea que conforma el objeto visual. Cuando se cambio de tem seleccionado. Cuando se presiona el botn derecho del mouse sobre el rea que conforma el objeto visual. Cuando el control pierde la atencin, se presiona Enter o Tab, o el texto es modificado.

18/84

PowerScript
Todo lenguaje de programacin contiene sentencias propias que le permiten manipular la informacin, permite separar cursos de accin dependiendo de ciertos valores, o bien

19/84/

sencillamente presentarla al usuario. Todo esto debe ser realizado por el programa en forma autnoma y aveces sin participacin externa, por ende se debe ser previsor al momento de disear y programar una aplicacin. El siguiente capitulo presenta las sentencias que son requeridas para la manipulacin de la informacin por parte del programa en si.

Tipos de datos
Los tipos de datos que estn definidos para PowerBuilder son los siguientes, se denominan "Tipos de Datos Estndar".
Tipo de Dato

Blob Boolean Char Date DateTime

Descripcin Objeto binario largo. Usado para almacenar una gran cantidad de datos, pero cuyo largo no esta claro.(ej. Imgenes, archivos de texto, documentos) Contiene solo Verdadero o Falso. (TRUE o FALSE) Almacena un nico carcter ASCII. Incluye una fecha, en formato americano (yy[yy],mm, dd) Ao (1000- 3000), mes (01- 12) y das. (01- 31) Contiene la Fecha y la Hora en un nico tipo de dato, usado solo para lectura o escritura de valores DateTime definidos en una Base de Datos. Para convertir un valor DataTime en un tipo de dato que pueda ser usado en PowerBuilder (date, time), use: Date(DateTime), para convertir un valor DateTime en un valor Date. Time(DateTime), para convertir un valor DateTime en un valor Time. DateTime(Date, Time), para convertir un Date y un Time en un valor DateTime Soporta nmeros decimales con sobre 18 dgitos. Ej. 123456,000001 Nmeros con punto flotante, con 15 dgitos de precisin y un rango desde 2.2E308 a 1.7E+308. Un entero de 16 bits, con rango de -32768 a +32767. Un entero largo de 32 bits, con rango de -2,147,483,648 a +2,147,483,647. Un numero con punto flotante, con 6 dgitos de precisin y un rango desde 1.17 E -38 a 3.4 E +38. Cualquier carcter ASCII con un largo variable. (0 a 60,000) Hora en formato 24 horas, incluye la hora (00-23), minutos (00- 59) segundos (00- 59) y fraccin de segundos (sobre 6 dgitos). Con un rango desde 00:00:00 a 23:59:59.999999

Dec Double Int Long Real String Time

Definicin de Variables/Constante
Una variable se define anteponindole el tipo de dato que sera permitido para esa variable. Ej. Se desea declarar una variable de tipo entera y de nombre 'monto_cuota' integer monto_cuota string nombre

Ud. puede declarar varias variables del mismo tipo, separando cada una de estas con una coma (,) Ej.

20/84

integer monto_cuota, total_cuota= 0 Nota: Como Ud. podr notar a la variable se le asigno un valor inicial. Esto se puede realizar con cualquier variable, teniendo cuidado de asignar un valor que corresponda con el tipo de dato. Para declarar una variable como una constante, el valor asignado inicialmente no podr ser modificado durante el programa, se antepone la palabra clave CONSTANT. Ej. constant real LR_PI = 3.14159265

Ambito
Existen 4 tipos de mbito, alcance dentro de los mdulos del programa, en donde podr ser utilizada una variable. Estos cuatro mbitos sern mencionados a continuacin. Los tres primeros son definidos fuera de cualquier modulo ejecutable, y se declaran en el Area de trabajo de las Ventanas, en el men Declare.

Todos estos tienen la misma ventana de ingreso de variables, solo cambiando el mbito (rango) de uso de la variable dentro del programa.

Global
Es aquella variable/constante que podr ser utilizada en toda la aplicacin, es decir; podr hacerse referencia a ella desde cualquier modulo del programa.

21/84/

Para declarar una variable global. Estando en cualquier modulo de cdigo, seleccione el men 'Declare' opcin 'Declare Global'; aparecer la ventana de declaracin de variables, donde Ud. podr definir la(s) variable(s) como se explico anteriormente. Tambin Ud. puede declarar un 'cursor' (vea el tpico SQL Incrustado) que podr ser referenciado desde cualquier parte de la aplicacin. Para ello solo presione el dibujo que dice 'Cursor' y siga las mismas indicaciones que se dan en la Seccin 'Cursores' del tpico 'SQL Incrustado'.

Globales solo al Objeto (Instance)


Las variables que sean declaradas como Globales solo al Objeto, podrn ser utilizadas en cualquier cdigo fuente, pero solo del objeto donde se declaro (ventana, men, objetos del usuario), es decir, donde se defina la(s) variable(s). Tambin podrn ser utilizadas por todos los objetos que estn inmersos en el (ej. botn en una ventana) Para declarar una variable global al Objeto. Estando en cualquier modulo de cdigo o en la definicin de la ventana, seleccione el men 'Declare' opcin 'Declare Instance. Aparecer la ventana de declaracin de variables, ventana donde Ud. podr definir la(s) variable(s) como se explico anteriormente. Tambin Ud. puede declarar un 'cursor' (vea el tpico SQL Incrustado) que podr ser referenciado desde cualquier parte de la ventana especifica. Presione el dibujo que dice 'Cursor' y siga las mismas indicaciones que se dan en la Seccin 'Cursores' del tpico 'SQL Incrustado'.

Recordantes (Shared)
Las variables declaradas de este tipo igual que las del tipo anterior (Instance) solo pueden ser reconocidas dentro del objeto especifico donde se declaro (ventana, men, objeto del usuario) , pero estas ltimas tienen la particularidad de conservar el valor almacenado en esta al momento de cerrar y abrir nuevamente el objeto en cuestin. Para declarar una variable global al Objeto de tipo Shared. Estando en cualquier modulo de cdigo o en la definicin de la ventana, seleccione el men 'Declare' opcin 'Declare Shared. Aparecer la ventana de declaracin de variables, ventana donde Ud. podr definir la(s) variable(s) como se explico anteriormente. Tambin Ud. puede declarar un 'cursor' (vea el tpico SQL Incrustado) que podr ser referenciado desde cualquier parte de la ventana especifica. Presione el dibujo que dice 'Cursor' y siga las mismas indicaciones que se dan en la Seccin 'Cursores' del tpico 'SQL Incrustado'.

Locales (al Modulo)

22/84

Estas variables son declaradas en el mismo cdigo del modulo en cuestin, y solo tienen vida en este, no pueden ser compartida por otros mdulos del mismo objeto inclusive.

Utilizacin
Una variable puede ser utilizada para asignarle un valor, comprobar su valor, asignarle su valor a otra variable Ej. Asignarle un valor. monto_cuota=13 nombre= 'Ricardo' Comprobar su valor If monto_cuota=13 Then ... If nombre<> 'Ricardo' Then ... Asignarle su valor a otra variable total_cuota= monto_cuota Una variable tambin puede aparecer tanto en la parte 'asignante ' (quien recibe el valor) como en la 'asignadora' (quien genera el valor a asignar) Ej. monto_cuota=monto_cuota+12 Operadores Matemticos, relacinales y lgicos Los operadores matemticos son los siguientes: Suma Resta Multiplicacin Divisin

+ * /

Adems existen los agrupadores de expresiones matemticas:

23/84/

'(', indica comienzo de la Agrupacin. ')', Indica fin de la agrupacin Ej. monto_cuota = (23 * monto_cuota)* 13 Los operadores relacinales son los siguientes: O inclusivo y inclusivo Negacin Igualdad Desigualdad Menor Menor o igual Mayor Mayor o igual Ej. If monto_cuota=12 AND NOT objeto.enabled Then ... Adicionalmente existen 2 valores constantes. Verdadero True Falso False OR AND NOT = <> < <= > >=

Flujos de Control
Los flujos de control permiten que las acciones ha ser realizadas puedan ser bifurcadas a otra dependiendo de alguna expresin condicional. Existen 2 tipos de flujos de control Condicional Iterativo Condicional Se refiere a que el flujo de control es bifurcado desde una sentencia, o conjunto de estas, a otra, o conjunto de estas. Existen 2 clase de Flujos de control condicionales IF..THEN..ELSE La sentencia 'If' permite bifurcar la ejecucin del cdigo entre 2 caminos posibles dependiendo de la veracidad o no de una expresin condicional El tamao, en lneas de cdigo, de los segmentos, 'verdadero' o 'falso' no tienen un limite.

Ej. If monto_cuota=13 Then nombre= 'Ramiro'

24/84

Else nombre= 'Francisco' End If Tambin es posible anidar varios 'If..Then..Else' consecutivamente. Ej. If monto_cuota=13 Then nombre= 'Ramiro' ElseIf monto_cuota=15 Then nombre= 'Roberto' Else nombre= 'Francisco' End If

CHOOSE Permite bifurcar la ejecucin del cdigo entre mltiples caminos posibles; dependiendo de la veracidad o no de una expresin condicional, principalmente una variable. El tamao, en lneas de cdigo, de los segmentos 1..'n' no tienen un limite. Ej. Choose case monto_cuota Case Is< 13: nombre='Ramiro' Case 16 To 48:nombre= 'Roberto' Else nombre='Francisco' End Choose Cada Case <expresin> puede tener los siguientes valores: Un valor Una lista de valores separados por coma. (ej. 2, 4, 6, 8) Una clusula TO, desde hasta. (ej. 1 TO 30) Una clusula IS seguida por un operador relacional y un valor a comparar. (ej. IS>5) Cualquier combinacin de lo anterior, implcitamente indica un OR. (ej.1, 3, 5, 7, 9, 27 TO 33, IS >42)

25/84/

Iterativo
Se refiere a la repeticin de una(s) sentencia(s) que son definidas dentro de un bloque clarificado por una sentencia iterativa. Existen 2 clases de Flujos de control Iterativos. FOR..NEXT..STEP La sentencia for permite repetir una(s) sentencia(s) un nmero definido anterior al comienzo de la ejecucin de estas sentencias. El tamao, en lneas de cdigo, del segmento 1, no tienen un limite. Ej. for i= 1 to 23 j= i + ( j * 1.2 ) next La variable i se denomina "contador", el valor final de iteraciones no debe ser superior al rango definido para el tipo de dato del contador. Si el valor de i es superior al valor final de iteracin, las sentencias no se ejecutan. Ej. For n = 5 to 25 step 5 a = a+10 Next En este ejemplo la sentencia se ejecutara cuando n>=5 y n<=25, y el valor inicial de n (5) se incrementa en 5 por cada ejecucin de las sentencias del bloque dentro de la sentencia for. El valor de Step puede ser negativo, en cuyo caso el valor inicial de la variable contador deber ser inferior al valor final de la iteracin.

DO..UNTIL | WHILE |LOOP La sentencia Do es utilizada para repetir una(s) sentencia(s) un nmero no muy definido de veces. El nmero de veces es casi siempre definido por la comparacin de una variable o expresin condicional.

26/84

Dentro de esta sentencia existen variantes, cuya nica diferencia es el momento cuando se evala la expresin que condiciona la ejecucin del bloque.

Ej. integer A = 1, B = 1 //Emite un pito por los parlantes hasta que la variable

DO UNTIL A > 15 // A sea mayor que 15. Beep(A) A = (A + 1) * B LOOP integer A = 1, B = 1 //Emite un pito por los parlantes mientras la variable DO WHILE A <= 15 // A sea menor o igual a 15. Beep(A) A = (A + 1) * B LOOP

Observacin

27/84/

En ambos tipos de iteraciones se puede terminar la ejecucin del bloque utilizando la sentencia Exit. Ej. FOR contador = 1 to 10 IF vector1[Contador] = 0 THEN EXIT NEXT

En ambos tipos de iteraciones se puede continuar la ejecucin del bloque, desde el principio y no ejecutando las dems instrucciones del bloque. Ej. integer A=1, B=1 DO WHILE A < 100 A = A+1 B = B+1 IF B > 3 THEN CONTINUE MessageBox("Hola", "B es = " + String(B) ) LOOP

Utilizacin de Herramientas
Powerbuilder posee un conjunto de herramientas destinadas a facilitar la creacin de cdigo fuente para un programa. Todas esta herramientas pueden ser utilizadas en cualquier modulo, donde se pueda escribir sentencias ejecutables. Las Herramientas son: Listado de Funciones Sentencias SQL-Incrustado Listado de Sentencias(If, For, Do, etc.) Compilacin Buscador

Adems existen palabras reservadas destinadas a hacer referencia a objetos pertinentes, estas son:

28/84

Descripcin
This Parent Indica el objeto en el cual se esta codificando. Ej. this. Text = "hola" Indica el objeto que contiene uno particular donde se esta codificando Close( parent )

Listado de Funciones Para accionar el listado de funciones presione el botn , a continuacin aparecer una ventana donde Ud. podr seleccionar la funcin especifica. Existen 3 agrupaciones (Funciones de PowerBuilder, Funciones de la Aplicacin creadas por el Usuario y Funciones externas de DLLs conectados a la Aplicacin). Las funciones estn ordenadas en forma ascendente, si desea buscar una funcin, escriba las primeras letras de esta, estando el foco en el listado de funciones.

Cuando seleccione la funcin, presione Ok y esta se pegara en la ventana de edicin del Script en la ubicacin del cursor actualmente.

Sentencias SQL-Incrustado Para accionar las Sentencias SQl-Incrustado presione el botn , a continuacin aparecer una ventana donde podr seleccionar el tipo de Sentencia SQL y cual especficamente( haciendo doble clic sobre la misma), o seleccionndola y presionando el botn Ok. Esta sentencia se pegara en el Script del modulo en el lugar donde este el cursor.

Listado de Sentencias(If, For, Do, etc.)

29/84/

Para accionar el Listado de sentencias presione el botn , aparecer una ventana donde Ud. podr seleccionar la sentencia especifica, solo una a la vez.

La sentencia se pegara en el Script del modulo, en el lugar donde este el cursor.

Compilacin La compilacin es el proceso durante el cual el modulo es revisado para encontrar errores sintaxis o lxicos. Para accionar este proceso presione el botn , en la parte inferior de la ventana del Script aparecer un listado de los errores encontrados, si los hubiera.

Buscador El buscador permite obtener la informacin de los objetos que conforman la aplicacin, informacin como; las funciones del usuario, las ventanas, datawindows existentes y todo objeto (atributos, funciones, etc.) que este presente en las ventanas.

Para accionarlo presione el botn , aparecer una ventana como la anterior que tiene todos los tpicos por los cuales buscar un objeto.

30/84

Estn organizados en forma jerarquizada y con subtpicos. A la mano izquierda estn los objetos del grupo especificado, y a la derecha los tpicos por los cuales buscar. Seleccione un objeto, el tpico y el elemento especifico; luego presione el botn Paste y la sentencia especificada se pegara en donde este el cursor dentro de la ventana del Script

Otras Herramientas
Comentarios Los comentarios, si es una lnea se antepone a la mano izquierda dos slash (//); eso significa que todo lo que este a la mano izquierda de estos dos signos ser considerado como comentario. Para poner comentarios; seleccione las lneas y presione el botn Para quitar los comentarios; seleccione las lneas y presione el botn

Herramientas de Edicin
Podr hacer uso de las opciones de edicin utilizando lo botones "Copiar" ( , "Cortar" ( , "Pegar" ( ); las que estn presentes tambin en el men Edit, o bien utilizando las teclas de accin directas.

Listados en Mdulos Todo modulo ejecutable tiene una barra, ms o menos, parecida a la siguiente.

En la Barra del titulo de la ventana aparece "Script", que quiere decir "Cdigo". Al lado esta el nombre del modulo "Vaca", si fuese un objeto esta precedido por el nombre del Evento "Open" y luego el tipo de dato que puede ser devuelto por el modulo ejecutable. Debajo de la Barra de Titulo, aparecen un conjunto de listas desplegables, si se selecciona un elemento que este contenida en una de ellas; este elemento (nombre) se pega en el cdigo, donde este el cursor.

Si fuese un objeto, donde se esta escribiendo cdigo, la primera lista es para seleccionar el evento donde se escribir.

31/84/

El listado "Paste Argument", permite pegar el nombre de un argumento del modulo en cuestin. El listado "Paste Object", permite pegar el nombre de los dems objetos contenidos en la ventana o men, donde este el modulo en cuestin. El listado "Paste Global", muestra todas las variables/constantes declaradas como Global, y permite pegar cualquiera de ellas. El listado "Paste Instance", muestra todas las variables/constantes declaradas como Instance, y permite pegar cualquiera de ellas.

32/84

Funciones
Las funciones en Powerbuilder pueden o no devolver un valor, este valor se conoce como "Valor de Retorno" de la funcin. Las funciones se declaran como elementos

33/84/

independientes y reconocibles en una librera, y puede ser utilizados desde cualquier parte de la aplicacin. Para trabajar con las funciones seleccione el icono de la barra de herramientas PowerBar. Aparecer la ventana de seleccin de funcin; seleccione la funcin ya creada para seguir trabajando en ella, y luego presione el botn Ok, o bien presione el botn New si desea crear una nueva funcin.

Declaracin de Funciones
Al aparecer la ventana de seleccin de funcin, presione el botn New, aparecer una ventana como la que sigue:

Name, indica el nombre de la nueva funcin. Returns, indica el Valor de retorno, si la funcin no devolviera un valor de retorno, seleccione none. Arguments, indica los argumentos (parmetros) de la funcin

Parmetros Una funcin puede o no tener parmetros, un parmetro es un valor o variable que es pasado a la funcin para que la utilice en ella. Al definir una funcin se declaran los parmetros que podr tener. El mismo nmero de parmetros y el mismo tipo de dato para cada uno de ellos debe ser puesto al utilizar la funcin.

Declarar los Parmetros Escriba el nombre del parmetro (nombre por el cual se har referencia en el interior de la funcin) en la columna Name.

34/84

Seleccione o escriba el nombre del tipo de dato, en la casilla de la columna Type. Seleccione el tipo de paso, en la casilla de la columna Pass By. Notara que cada parmetro tiene una posicin definida en la columna Positor, esta misma posicin debe estar al hacer la llamada a la funcin.

Pasada de Parmetros Al declarar cada parmetro se debe indica como se pasara el parmetro a la funcin, existen 3 tipos de pasada; las que son:

Tipo
Value

Descripcin
El valor del parmetro pasado se copia al parmetro declarado, es decir, todo cambio que se haga al parmetro dentro de la funcin no alterara el valor del parmetro pasado. El parmetro declarado esta relacionado con el parmetro pasado, es decir, todo cambio que se haga al parmetro dentro de la funcin, al terminar esta, quedara registrado en el parmetro pasado. Indica que el parmetro es de solo lectura (constante), no se podr utilizar dentro del funcin como una variable.

Reference

ReadOnly

Si la funcin requiere ms parmetros presione el botn Add, este nuevo parmetro se anexara al final de los ya existentes. Si desea colocar un nuevo parmetro entre otros, presione el botn Insert. Para eliminar un parmetro haga un clic sobre el y presione el botn Delete.

Valor de retorno Elija el tipo de dato que ser retornado al utilizar la funcin. Los tipos de datos pueden ser los definidos en el listado o bien escriba un tipo de dato que Ud. haya definido en la aplicacin. Si el valor de retorno fuese asignado a una variable al llamarse a la funcin, tenga presente que dicha variable debe ser del mismo tipo del seleccionado en el campo Return.

Cdigo Funcin
Dentro del cdigo los parmetros son meras variables, y podrn ser utilizadas como tales (si no existen restricciones en su definicin).

35/84/

Se termina la ejecucin de la funcin con la declaracin Return. Si se devolviera un valor esta deber ir despus de return entre parentesis. Se podrn utilizar las funciones primitivas, declaracin de variables locales, flujos de control, etc. Si desea modificar algo de la declaracin de la funcin presione el botn .

36/84

Estructuras
Las estructuras de datos es una manera de organizar la informacin que esta contenida en un elemento para que sea ms fcil su administracin. Estas se pueden comparar con registros de datos donde, cada elemento particular de este es un campo. Los campos son

37/84/

elementos diferenciables uno de otro; como si fueran simples variables, pero; estando unidos por la definicin de la estructura. Ej. Estructura: Persona
Campos nombre edad sexo Tipo String integer char

En las estructuras de datos no es posible definir reglas de validacin tcitas, o restricciones de entradas. Como por ejemplo "Sexo='M' o Sexo='F'", estas deben ser definidas en el cdigo fuente. Los tipos de datos para cada campo pueden ser primitivos de Powerbuilder, objetos de Power o bien objetos definidos por el usuario. Para trabajar con las estructuras presione el boton , al hacerlo; aparecer la conocida ventana de seleccin. Ud. podr elegir una estructura ya definida previamente, para continuar trabajando con ella, o bien podr crear una nueva estructura presionando el botn 'New'.

Definir Estructura
Despus de presionar el botn 'New' aparecer la ventana de 'definicin de Estructuras'.

Defina los campos que conformaran la estructura. En este caso el orden no es primordial.

Escriba el nombre del campo, en la columna Variable Name, el que deber ser nico en toda la estructura. Seleccione o escriba el tipo de dato, en la columna Type. Al salir de esta ventana se le pedir que escriba el nombre de esta estructura, si es nueva; este nombre debe ser nico para toda la aplicacin.

38/84

Si necesita aadir un campo entre otros ya existentes, presione el botn y contine con la definicin del campo. Si requiere borrar un campo, presione el botn ; teniendo cuidado que el cursor con la fecha este ubicado en la casilla que corresponda al campo que desea borrar.

Trabajar con Estructuras


Las estructuras que uno haya definido en el Area de trabajo de las Estructuras, pueden ser utilizadas en toda la aplicacin; como si se tratara de un tipo de datos. Para poder hacer uso de la estructura, es imprescindible que primero se declare una variable, y el tipo de esta variable sea la estructura definida. Tambin podr utilizarse como tipo de dato de parmetro de una funcin, o bien de otra estructura. Ej. persona yo yo.nombre= "Ricardo" yo.apellido="Pavez" yo.edad= 27 if yo.edad<= 20 then yo.descrip= "Joven" elseif yo.edad<= 65 then yo.descrip= "Adulto" else yo.descrip="Anciano" end if Como puede verse la variable 'yo' fue definida del tipo 'persona', que es una estructura diseada por el Usuario. Para hacer referencia a cualquier campo se escritura <Variable>.<Campo>, el que puede ser utilizado para asignarle un valor a dicho campo (yo.edad= 27) o bien examinar el valor contenido en dicho campo (if yo.edad<=20 then ...) Se vuelve a aclarar que dentro de la definicin del campo de la estructura no es posible hacer una restriccin de entradas, esta debe ser hecha en forma de lneas de cdigo.

Menes
Los menes, para PowerBuilder son objetos. Las ventanas tienen una propiedad que indica cual objeto men de los definidos para la aplicacin har uso, y ese ser el men que se anexara a la ventana. Hay que aclarar que lo que aqu se indica como men, es en si una "Barra de Menes", que puede tener 1 o ms tems, y cada uno de estos tems tiene un listado desplegable de opciones.

39/84/

Para trabajar en el diseo de un men presione el botn , que se ubica en la barra de Areas de Trabajo, y despus seleccione el nombre del objeto men con el desea continuar trabajando, o presione el botn New para disear uno nuevo.

Declaracin, Uso
Despus de presionar el botn New, aparecer la siguiente ventana. La ventana esta divida en 3 secciones: Items de la Barra de Men, la caja que aparece muestra el texto que ser presentado como tem de la Barra de men. La barra de desplazamiento indica la posicin dentro de la Barra de Men, del tem en particular. Listado de Opciones, las que aparecen bajo el titulo Menu For, cada caja es el texto que conforma una opcin particular, para el tem mostrado en la seccin anterior. Propiedades de la Opcin, son los tpicos mostrados a la mano derecha de la ventana, y corresponden a las propiedades de la opcin que esta marcada del listado anterior con el smbolo de una mano.

Los tpicos que conforman la tercera seccin son los siguientes:

Tpicos Declaracin
General La casilla Menu Item Name, indica el nombre( lgico) que tendr la opcin en cuestin.La casilla MDI Microhelp indica el texto que ser mostrado como ayuda de la opcin en una ventana declarada como tipo MDI. Style Indica las propiedades Visible, Enable.La opcin Checked, indica que si esta opcin del men es seleccionada aparezca al lado izquierdo del nombre una marca. ShortCut Indica la combinacin de teclas para un acceso directo a la opcin.Elija del listado Key la tecla en particular y marque la tecla adicional (Alt, Ctrl, Shift) ToolBar Cada objeto Men, puede tener asociado una caja de herramientas con botones para cada opcin.La caja Text, indica el texto a ser mostrado junto con el botn definido para esta opcin.La opcin Visible, indica que el botn para esta opcin sea mostrado en la caja de herramientas. La opcin Display Down, indica que dicho botn aparezca con la n hundida. Pictures Determina las imgenes que sern utilizadas, cuando el botn este Normal, y cuando este Hundido. El botn Browse, permite seleccionar otra n de las existentes en el listado Stock Picture. Estas ultimas tienen la cualidad de tener presentes las dos imgenes en una.

Para borrar la opcin, o todo el Menu Item, presione el botn opcin, o bien un Item de Menu, entre otros dos; presione el botn .

. Para Insertar una

Para trabajar con las subopciones de una opcin del Menu Item, presione el botn para regresar al nivel anterior presione el botn .

,y

40/84

Programacin de Accin
Para trabajar codificando acciones presione de la barra de herramientas secundaria el botn , el objeto menu, para cada opcin permite definir cdigo en dos Eventos, los que son:

Evento
Clicked Selected

Descripcin
Sobre esta opcin el Usuario ha presionado el botn del Mouse, o presiono Enter, o tambien se ha presionado el botn que fue definido para esta opcin. Cuando una opcin es seleccionada por el mouse (se pasa por encima de ella).

Puede hacerse uso de todas las caractersticas de PowerScript.

Libreras
Permite distinguir los elementos que conforman una librera. Estas no estn distribuidas en forma jerrquica como en el rea de "Aplication", solo son presentadas en orden del Area que forman parte. Para trabajar en el rea de Libreras presione el botn la siguiente . Aparecer una ventana como

41/84/

Donde en la parte superior se selecciona la unidad a revisar existencia de Libreras, y en la parte inferior una especie de directorio. Los archivos de librera estn acompaados por el icono . Crear Librera, para ello presione el botn
nueva librera. , escriba el nombre e indique la ruta de la

Las siguientes operaciones, se pueden realizar con uno o ms elementos seleccionados, de una Librera: Editar, permite iniciar el rea a la que pertenece el elemento; presione el botn Copiar, presione el botn seleccionados. Mover, presione el botn seleccionados. Eliminar, presione el botn y elija la librera donde copiar los elementos .

y elija la librera a donde mover los elementos para eliminar el (los) elementos marcados.

Exportar, permite extraer la definicin del elemento como un archivo texto; para ello presione el botn . Importar, permite aadir la definicin de un elemento desde un archivo texto a la librera en curso; para ello presione el botn .

Regenerar, permite que se actualicen los vnculos con otros elementos, modificados, de PowerBuilder o de una Base de Datos, para ello presione el botn .

Propiedades, Permite modificar el comentario declarado para cada elemento; para ello presione el botn

Todos estas opciones estn disponibles en el men Entry

42/84

Base de Datos
El rea de Base de datos permite crear nuevas Bases de datos SQL- Anywhere, crear/modificar/eliminar Tablas, actualizar campos de dichas Tablas. Tambin permite definir Estilos de presentacin/Reglas de validacin/Formatos de Datos; todos estos para ser utilizados por cualquier campo de las Tablas de la Base de Datos. Para trabajar en el Area de Base de Datos, presione el botn , se conectara a la Base de Datos definida por defecto, en el Area Profile Database. Si esta Base de datos no fuese

43/84/

la suya seleccione la suya en el Area Profile Database, presionando el botn y vuelva a presionar el botn de Base de datos. Despus de conectarse correctamente a al Base de datos aparecer la ventana de "Seleccin de Tabla", solo las tablas que se seleccionen del listado ser posible de manipular.

Para marcar una tabla haga un clic sobre su nombre, para desmarcala vuelva a presionar el mouse sobre ella. Finalmente presione el botn Open para que aparezcan las tablas seleccionadas, o presione el botn Cancel para cancelar la operacin. La opcin System Tables permite seleccionar las Tablas del catalogo de la Base de Datos; estas Tablas son utilizadas para la Administracin de la Base de Datos. Las Tablas seleccionadas aparecen en la ventana en una forma grfica

Nueva Base de datos


Para crear una base de datos local (SQL- Anywhere) nueva, estando en el rea de Base de datos seleccione la opcin New Database del men File. Aparecer una ventana

En la casilla Database Name, escriba la ruta y el nombre de la nueva base de datos, o presione el botn Browse para hacer esta operacin. En la casilla User ID escriba el nombre del usuario, por defecto se asigna "DBA". En la casilla Password escriba la contrasea correctamente, esta no es visible, por defecto se asigna "sql". Cuando haya terminado presione el botn Ok, espere a que se realicen todas las operaciones de creacin de la Base de datos. Aparecer un mensaje indicndole el resultado de la creacin. Si esta fuese satisfactoria aparecer la ventana de "Seleccin de Tabla". Presione el botn New para crear una nueva Tabla.

44/84

Tablas
La tabla de una base de datos es una coleccin de informacin homognea (relacionada entre si). Los elementos de esta informacin se denominan registros, cada registro esta conformado por idntico nmero y tipo de campos. Cada campo tiene asociado un nombre; por el que se identifica, y un tipo de dato, que especifica la informacin que podr almacenar dicho campo.

Una Tabla puede tener 0 o ms registros y la definicin de un registro deber contar con a lo menos un campo.

Ej. registro persona


Rut 125537987 Nombre raul Apellido yaez Domicilio cruz 2356 Sexo masculino Fech. Nac 20/12/1970 Naciona chilena

:
96789870

:
marta

:
gutierrez

:
heras 45

:
femenimo

:
6/9/1968

:
argentina

Nueva Tabla
Para crear una nueva Tabla presione el botn . Aparecer una ventana que tiene 2 secciones, esta ventana se llama "Ventana de Definicin de Tabla". Esta ventana esta divida en dos secciones, superior e inferior. a) Definicin de Campos En esta seccin se declaran los campos, una lnea para cada uno de ellos. b) Atributos adicionales (Extended Atribute) En esta seccin se aade informacin, como es, el estilo de presentacin, regla de validacin, dimensiones del rea de ingreso de datos para cada campo, etc., sobre el campo actual, el campo actual es aquel donde este el smbolo de la mano apuntando en la seccin de "Definicin de Campos". Si Ud. presiona el botn se proceder a grabar la definicin de la Tabla, se le preguntara el nombre que se le dar, este nombre debe ser distinto al de las otras tablas de la Base de datos. Si Ud. cerrara la ventana de definicin de Tabla, sin guardar las modificaciones hechas, se le preguntara si desea guardar los cambios. Si no se le asigno un nombre a la Tabla

45/84/

previamente, deber ingresarlo. Despus de esto regresara a la ventana de representacin grfica de las Tablas. Presione el botn y podr escribir el nombre de la Tabla, y definir en los diversos tpicos, la clave primaria, claves forneas, e ndices. (todo esto se explicara a continuacin) Vamos a explicar cada uno de los elementos que conforman cada seccin en el mismo orden en que fueron nombradas: Definicin de Campos Esta seccin esta dividida en forma columnada, las columnas que la conforman son las siguientes.

Columna Descripcin
Name Type Width Dec Null Default Define el nombre del campo. Seleccione de la lista desplegable el tipo de dato que ser almacenado en el campo. Si selecciono en la columna anterior el tipo de dato Char, Varchar o Numeric. Deber especificar el largo (nmero de caracteres/dgitos) mximo a ser almacenados en el mismo. Si selecciono en la columna Type, el tipo de dato Numeric. Podr indicar el nmero de decimales que sern utilizados para este campo.En el nmero que se escribi en la columna Width estn contenidos el nmero de decimales aqu especificados. Indica si se permitir que este campo tenga un valor NULL. Ud. podr seleccionar (de la lista desplegable) un valor por defecto para este campo, o bien, escribirlo como un literal.

Si Ud. desea insertar una columna entre otras ya existentes presione el botn presione el botn . .

, si necesita borrar una columna

Atributos adicionales Esta seccin permite definir atributos que tendra el dato del campo al ser mostrado al usuario. La informacin corresponde al campo actual, cada campo podr tener diversos valores para estos atributos. Los atributos de esta seccin son los siguientes:

Atributo Descripcin
Format Edit Valid Header Label Justify Height Width Initial Comment Seleccione de la lista desplegable el formato diseado previamente. Este formato es una regla para la aceptacin de un campo a partir de una revisin de los caracteres que lo conforman Seleccione de la lista desplegable el Estilo de Edicin diseado previamente. Este estilo permite restringir los valores a tomar por un campo (lista desplegable, casillas de seleccin, etc.) o una mascara de entrada de datos. Seleccione de la lista desplegable la Regla de Validacin diseado previamente. Esta regla de validacin permite comprobar si el dato ingresado cumple con una condicin fijada. Ser el texto que aparecer como identificacin del campo al ser editable en forma columnada. Ser el texto que aparecer adjunto a un campo en un Datawindows. Indica el tipo de justificacin que tendr el dato del campo. Seleccione uno de la lista desplegable. Indica la altura y anchura del campo. Estos valores sern utilizados para definir el ancho y el alto del espacio destinado al ingreso/seleccin de datos para este campo. Es el valor que ser definido como inicial para un nuevo registro de la Tabla. Permite escribir un comentario adicional sobre el campo en particular. Este texto aparecer en la representacin grfica de la Tabla.

46/84

Propiedades Tabla La ventana Propiedades de la Tabla, contiene los siguientes tpicos, algunos no sern mostrados sino esta en la ventana "Definicin de Tabla"; todos ellos muy importantes:

Topico
General Data Font Heading Font Label Font Heading Font Indexes Primary Key Foreign Key

Descripcin
Especifica el nombre de la Tabla, y algn comentario adicional. Permite definir las caractersticas de tipo de letra, y otras; que sern utilizadas para presentar el dato especifico del campo al usuario, y los Atributos adicionales Label y Header, respectivamente. Permite definir las caractersticas de tipo de letra, y otras; se sern utilizadas Un listado de los Indices definidos para esta Tabla La clave primaria definida para esta Tabla. Un listado de las claves forneas definidos para esta Tabla.

Para grabar los cambios hechos en los tpicos de la ventana Propiedad de la Tabla, presione el botn Apply para no abandonar la ventana de propiedades y el botn Ok para abandonarla y regresar a la ventana de definicin de Tabla. Presione el botn Cancel para deshacer las modificaciones hechas en esta ventana.

Modificar Tabla Estando en el rea de Base de datos, haga doble clic sobre la representacin grfica de la Tabla a modificar. Si esta no estuviera presente deber abrirla agregndola a las ya presentes. Presione el y aparecer la ventana de seleccin de Tablas, haga su seleccin y presione el botn Open. Al hacer doble clic sobre la representacin grfica de la Tabla aparecer la ventana de definicin de Tabla, definida previamente. Estando aqu realice las modificaciones que Ud. quiera en la definicin de los campos, (algunos aparecen inhabilitados; ya que no pueden ser modificados despus de haber sido definidos) en los atributos adicionales, o bien en las propiedades de la Tabla. Para grabar los cambios hechos presione el botn la pregunta de guardar los cambios. o cierre la ventana y conteste Si a

Eliminar Tabla Para eliminar una Tabla, su representacin grfica debe estar presente, si no es as; adala. Haga un clic sobre la Tabla a eliminar, y presione el botn . Tenga presente que junto con eliminar la Tabla se eliminaran los registros que estn en ella, los ndices definidos, la clave primaria y las claves forneas.

47/84/

Clave Primaria
La clave primaria es el(los) campo(s) que permiten identificar a un registro. Para definirla debe estar en la ventana de Definicin de Tabla ( Haga doble clic sobre la representacin grfica de la Tabla), y presione el botn , elija el tpico Primary Key.

Los campos marcados del listado Table columns son los que forman la clave primaria.

Haga un clic sobre un campo no marcado y este pasara a formar parte de la clave primaria, haga un clic sobre un campo ya marcado y dejara de formar parte de la clave primaria. En la casilla Key columns se puede observar grficamente los campos que forman la clave primaria. Digite el nombre de esta Clave Primaria, en la casilla Key Name, si fuese necesario definirle un nombre. Al volver a la ventana de representacin grfica de las Tablas, aparecer un smbolo grfico adjunto a la Tabla, esto indica que esta tabla tiene una Clave primaria, las lneas que nacen de la representacin grfica de la Tabla, indican el(los) campo(s) que forman parte de la clave primaria.

Clave Fornea La clave fornea es un(os) campo(s), cuyo valor(es) deben estar presente en otra Tabla y los campos de esta segunda Tabla deben ser (o formar parte) de la Clave primaria. Esto ltimo permite definir una relacin de integridad entre los datos; la existencia de el dato en la primera Tabla esta condicionado a la existencia de el(los) mismo(s) dato(s) en la segunda Tabla. Para definir una clave fornea debe estar en el ventana de Definicin de Tabla (haga doble clic sobre la representacin grfica de la Tabla)

48/84

Estando en la ventana de "Definicin de Tabla", presione el botn Foreign Key.

y elija el tpico

En el listado aparecen los nombres dados cada relacin, ya que una Tabla puede tener 0 o muchas relaciones (claves forneas). Marque una relacin del listado, presione Edit para modificarla, Delete para borrarla. Presione el botn New para definir una nueva relacin.

Los detalles para desarrollar una Clave Fornea son:

En la casilla Foreign Key Name, es el nombre dado a esta relacin. El(los) campo(s) marcados del listado Select Columns conformaran la Clave
Fornea.

La caja Primary Key Table indica la Tabla con la que estar relacionada En
la parte inferior de esta casilla aparecer el campo(s) que conforman la clave primaria de esta Tabla, Primary Key Columns. El nmero de campos seleccionados previamente deber ser el mismo a los que aparecen en esta casilla. El primer campo seleccionado de la Tabla estar relacionado con el primero de la Tabla elegida, y todos los dems campos seleccionados de igual forma. No es necesario que tengan el mismo nombre los campos relacionados, pero si deben ser del mismo tipo de dato. Al regresar a la Representacin grfica de las Tablas, aparecer un smbolo grfico adjunto a la Tabla, esto indica que esta tabla tiene una Clave Fornea definida, las lneas que nacen de la representacin grfica de la Tabla, indican el(los) campo(s) que forman parte de la Clave Fornea y la Tabla con la que estn relacionadas. Haga doble clic sobre el smbolo adjunto y podr ver informacin sobre la Clave Fornea definido.

49/84/

Indices
Los ndices se definen para mejorar la bsqueda y seleccin por parte del motor de Base de Datos. Una Tabla puede tener varios ndices definidos, o tener ninguno. Cada ndice se crea para uno o ms campos, estos ltimos se llaman "Indices compuestos". Para definir Indices, debe presionar el botn de Propiedades de la Tabla( estando en la representacin grfica de las tablas o en la ventana "Definicin de Tabla"), elija el tpico Index. Aparecer un listado con todos los ndices definidos para esta Tabla.

Marque una relacin del listado, presione Edit para modificarla, Delete para modificarla. Presione el botn New para definir una nueva relacin.

Los detalles para crear un Indice son:

En la casilla Index Name, aparecer el nombre que se le dar a este Indice. El(los) campo(s) marcados que aparecen en la parte inferior de la ventana que
conformaran el Indice.

La opcin Unique/ Duplique indica si los campos que forman el ndice son
Unicos o estn Duplicados dentro de los registros de la Tabla. Al regresar a la Representacin grfica de las Tablas, aparecer un smbolo grfico, con forma de llave, adjunto a la Tabla, esto indica que esta tabla tiene un Indice definido, las lneas que nacen de la representacin grfica de la Tabla, indican el(los) campo(s) que forman parte del Indice. Actualizar Datos Tabla

50/84

Para trabajar con los datos de la Tabla, los modos de presentacin de la informacin ms comunes son: En forma de malla, los campos son las columnas y las filas los registros. Para trabajar en esta forma presione el botn .

En forma libre, los campos son listados hacia abajo uno a continuacin del otro y los registros de igual forma. Para trabajar en esta forma presione el botn

Estando en el modo "Actualizacin Datos Tabla": Si se desea aadir un nuevo registro al final de los ya existentes presione el botn Para eliminar un registro presione el botn cursor actualmente. , se eliminara el registro donde este el . . . .

Para guardar los cambios en la Base de datos , presione el botn Para obtener datos desde la Base de Datos, presione el botn Para terminar el modo "Actualizacin ", presione el botn

Para moverse de un campo a otro presione la tecla Tab. Para moverse de un registro a otro utilice las teclas cursor arriba( ) y cursor abajo( ), para ir un registro antes y un registro despus respectivamente.

Estilos de Edicin
Los estilos de edicin (presentacin de los datos) son elementos que pueden ser utilizados en varias Tablas a al vez. Para trabajar con los diseos de presentacin, elija la opcin Edit Style Maintenance, del men Design. Aparecer una ventana con un listado de todos los Estilos definidos. Si desea continuar definiendo uno, presione Edit, para borrar uno definido presione Delete, y para crear uno nuevo presione New.

Diseo Estilo
Aparecer una ventana para el diseo del estilo.Name, indica el nombre de este estilo. La lista desplegable Style muestra los tipos permitidos.

Style
Edit

Descripcin
Muestra el dato en una caja de edicin, esto permite que pueda ingresar un dato va el teclado. La opcin Display Only indica que el campo es de solo lectura. La opcin Empty String.. indica que la caja vaca ser reconocida como Null. La opcin Password muestra los caracteres escritos con el smbolo visual *. Las opciones Auto.. permiten que aparezca una barra de desplazamiento si el nmero de caracteres supera a los visibles en el largo de la caja.

51/84/ EditMask Este estilo tambin muestra el dato en una caja de edicin, esto permite que pueda ingresar un dato va el teclado, pero adems con una mascara de entrada; esto es, una restriccin carcter a carcter de los grupos de letras posibles o la forma en que sern mostrados. En el casillero Mask Ud. define la mascara de entrada. Ej. El rut: ##.###.###-! ( esto permite que se ingresen 8 caracteres numricos y un alfanumrico en mayscula, los otros smbolos se entienden por constantes). El listado Masks muestra los smbolos que se utilizan para generar la mascara de entrada, Ud. puede probarla escribiendo un dato de prueba en la casilla Test. La opcin Type indica el tipo de dato del campo. Autoskip significa que cuando se llene el campo el cursor ira al siguiente campo. Spin Control permite que aparezca dos botones, para aumentar el valor y disminuir el valor que este en el campo, este aumento ser definido en la opcin Spin increment, se debe definir en Min el valor minino de incremento y en Max el valor mximo de incremento. Este estilo permite seleccionar/mostrar un valor dentro de una lista de tems definida. En la caja Display value escriba el valor a mostrar realmente y en Data value el valor a ser almacenado en el campo cuando se elija esa opcin en el listado. Ocupe los botones Add para aadir un nuevo tem, Insert para insertarlo antes de otro y Delete para borrar el actual tem. Este estilo permite seleccionar/mostrar un valor de los listados como opciones separadas. Left Text muestra el texto al lado izquierdo de la casilla de seleccin. 3D Loock muestra la casilla de seleccin grande. En la caja Display value escriba el valor a mostrar realmente y en Data value el valor a ser almacenado en el campo cuando se elija esa opcin de entre las mostradas separadamente. Ocupe los botones Add para aadir un nuevo tem, Insert para insertarlo antes de otro y Delete para borrar el actual tem. Este estilo de edicin es particular. Se ocupa para aquellos campos de la Base de datos que deban tener el mismo valor que otro campo de otra Tabla; es decir, sean campos de Clave Foranea.

DropDownListBox

RadioButtons

DropDownDW

Lo primero es crea un Datawindows que presente como mnimo la clave primaria de la Tabla a la que hace referencia la Clave Foranea. Este datawindows no debe tener informacin en la seccin Header de la presentacin, tampoco deber tener agrupaciones, ni objetos compute. Luego en el Datawindows que este diseando y la casilla Style elija la opcin DropDownDW. Las 3 cajas de texto, indican: En 'DataWindows, el datawindows que creo previamente. En la opcin Display Column el campo que servir para ser mostrado solamente. Data Column el campo que servir para guardar el dato realmente.
En a opcin Lines in .. se indica el alto de la caja desplegable.

Reglas de Validacin
La reglas de validacin son elementos que pueden ser utilizados en varias Tablas a al vez. Para trabajar con estas, elija la opcin Validation Maintenance, del men Design. Aparecer una ventana con un listado de todas las reglas definidos. Si desea continuar

52/84

definiendo uno, presione Edit,Para borrar uno definido presione Delete, y para crear uno nuevo presione New. La regla de validacin es revisada cuando el cursor esta en el campo y se mueve de este a otro; ya sea del mismo registro u otro. Diseo Regla La casilla Name, indica el nombre de la regla de Validacin. Defina el tipo de datos que manipulara la regla, Type. El botn Match le permitir definir una sentencia de consulta sobre cada carcter ingresado.

En la caja Validation Expression deber escribir la regla de validacin. Para hacer referencia, en la regla de validacin del campo que se esta ingresando, presione el botn "@Col" En el listado Functions aparecen todas las funciones predefinidas que Ud. puede utilizar, haga un clic sobre alguna y esta se pegara en la caja Validation ... La letra que aparece como parmetro de la funcin tiene un significado.

Descripcin
x Significa que debe ser reemplazado por el nombre de un campo, o bien por un valor dependiendo del tipo de funcin. #x Indica que debe ser reemplazado obligatoriamente por el nombre del campo. s Indica que debe ser reemplazado por un valor texto o bien por el nombre de un campo de tipo texto. Si se utiliza un valor texto literal escrbalo entre comillas simples () Ej. Len(hola)=4 n Indica que debe ser reemplazado por un valor numrico o bien por el nombre del campo de tipo numrico. d Indica que debe ser reemplazado por un valor fecha o bien por el nombre del campo de tipo fecha. T Indica que debe ser reemplazado por un valor tiempo o bien por el nombre del campo de tipo tiempo (hora).

En la regla de validacin se pueden utilizar operadores relacinales (AND, OR) para separar sub-expresiones. Tambin se pueden utilizar todos los operadores matemtico. La funcin gettext() obtiene el valor que esta en la caja de edicin como un dato texto, no importando el tipo de dato definido para dicho campo.

Objeto de Transaccin
Un objeto de transaccin es un objeto de PowerBuilder, y cumple la funcin de intermediario entre la aplicacin en si, y el administrador de Base de Datos.

53/84/

Cuando usted hace una nueva aplicacin, se genera un objeto de transaccin por defecto. Su nombre es SQLCA.

Nuevo objeto de transaccin Podr ser necesario utilizar otro objeto adicional al por defeco, para declarar un nuevo objeto de transaccin escriba: Transaction <nuevo obj> Donde: Ej. Transaction sqlca2 <nuevo obj>, es el nombre de la nueva variable.

Trabajar con Objeto Transaccin Todo objeto de Transaccin, requiere parmetros para trabajar con el Administrador de Base de Datos. Ej. sqlca.dbms= ODBC sqlca.dbparm= "ConnectString= dsn= example;uid= dba; pwd= sql" Antes de utilizar el objeto de transaccin, en cualquier sentencia o Datawindow, necesita conectarse a la Base de Datos. Ej. Connect using sqlca2; Despus de realizar una sentencia, es recomendable comprobar si ha ocurrido algn error al ejecutar una sentencia SQL. Ej. If sqlca.sqlcode = -1 Then messagebox ( "Error" , "SQL erro: "+ error.text ) End If Los cambios hechos a la Base de Datos deben traspasarse permanentemente a esta, por si ocurriera un error.

54/84

Ej. Commit Using sqlca2 ; Si un error ocurre al ejecutar una sentencia SQL, es necesario deshacer las modificaciones hechas. Ej. Rollback Using sqlca2 ; Al terminar la aplicacin, es necesario cerrar la sesin con la Base de Datos. Ej. Disconnect Using sqlca ;

Datawindows
Un datawindows es una sentencia sql que esta ligada a una representacin grfica. Donde cada elemento de esta representacin es individualizable y puede ser alterado en el cdigo del programa. Esta definicin indica dos elementos unidos (aunque distintos entre si) a. Origen de Datos: Corresponde a la sentencia SQL propiamente tal, la que podr tener caractersticas de Agrupamiento, Ordenamiento, Condicionales (extraer un conjunto definido de registros) y en fin todas las pertinentes a una sentencia SQL pura. b. Presentacin: Corresponde a la distribucin grfica de los elementos de la consulta y otros aadidos, dentro de un rea definida para ello. La que podr ser utilizada para presentar datos, ingresar datos, listarlos o imprimirlos; tal y como aparecen en esta hoja.

Seleccin Tipo y Presentacin


Para trabajar con las Datawindows presione el botn , luego de lo cual aparecer la ventana de seleccin; Ud. podr seleccionar una ya existente, para modificarla, o presionar el botn New para crear una nueva Datawindows.

55/84/

Si presiona el botn New deber seleccionar el modo de trabajo para el Origen de datos y tambin el tipo de Presentacin.

Modos de trabajo: El modo de trabajo define como se trabajara con el Origen de Datos. Existen 5 tipos de Modos de trabajo.

Modo
Quick Select Sql Select Query External

Descripcin
No presenta las tablas en forma grfica, y solo permite las sentencias ordinarias de SQL (Sort y Criteria)La primera para poder ordenar por el campo especifico y la segunda para indicar registros a mostrar pedendiendo de una valor condicional (Ej. <39) Presenta las tablas en forma grfica, y permite trabajar con todas las caractersticas de Sql estndar (Sort, Group, Having, Compute y Where, entre otros) El origen de Datos es una Consulta definida previamente en el Area de Trabajo Query; esta consulta queda almacenada como un objeto de Powerbuilder; Ud. debe seleccionar la consulta que desee utilizar como Origen de Datos de este Datawindows. El origen de datos no esta relacionado con ninguna Tabla. Ud. debe definir los campos que interactan (nombre, tipo y largo) Utilice los botones Add para aadir un nuevo campo al final de los ya existentes, el botn Insert le permitir insertar un campo entre otros y el botn Delete le permitir eliminar el campo actual. El origen de datos es un procedimiento que ha sido almacenado en la Base de Datos. Seleccione uno si lo ha creado, o crelo previamente.

Stored Procedure

Tipos de presentacin El Tipo de presentacin define como se presentaran los datos en el DataWindows, existen 11 tipos de presentacin las que son:

56/84

Presentacin
Composite Freeform Graph Grid Group Label Rich Text Tabular

Descripcin
Utiliza como presentacin un reporte previamente creado. La presentacin es libre, donde cada campo esta en una lnea distinta. Muy utilizado para el ingreso de datos. Disea un grfico dependiendo de una consulta, esta debe contener datos relacionados. Disea una malla de datos en forma columnada, y cada columna con una justificacin completa. Disea listado por agrupacin de campos. Muy utilizado para reportes de resumen de informacin. El diseo es de etiquetas, donde Ud. podr elegir el tipo de etiqueta de las prediseadas, en papel continuo o separado, y otras opciones. Permite definir una carta con combinacin de campos del Origen de datos fijado. Se pueden utilizar todas las caractersticas del formato de texto RTF. Presenta el origen de datos en forma columnada pero sin ajuste total. Permite una mayor libertad en el diseo.

Origen de Datos
Despus de presionar Ok en la ventana, aparecer una ventana de la cual se debe(n) seleccionar la(s) Tabla(s) que estarn involucradas en el Datawindow, si este es nuevo.

Se termina la seleccin presionando el botn Open y si desea cancelar la seleccin presione el botn Cancel, luego de lo cual aparecer en forma grfica la(s) Tabla(s) y tambin las relaciones existentes entre ellas. Si Ud. deseara aadir nuevas tablas presione el botn y seleccinela(s). Si Ud. deseara extraer una tabla del Origen de datos, presione el botn derecho del mouse sobre la representacin grfica de la Tabla y seleccione la opcin Close. Para seleccionar los campos simplemente haga un clic sobre su nombre en la representacin grfica de cada Tabla, aparecer en forma enmarcada, si desea desmarcarla simplemente vuelva a hacer un clic sobre esta.

Barra de Utiles

57/84/

La barra de tiles se presenta en la parte inferior de la ventana como tpicos de trabajo. Cada uno de estos tpicos corresponden a alguna parte de una sentencia SQL.

Group (Agrupar) Se refiere a la posibilidad de agrupar el resto de los campos por un campo particular, esto permite que todos los registros que tengan el campo por el que se esta agrupando con un mismo valor, este uno junto con el otro.

Haga un clic sobre un campo de la lista que aparece a mano izquierda y sin soltar el botn del mouse coloque en el espacio que hay en la mano derecha. Sort (Ordenar) La presentacin de los registros es ordenada por el valor de un campo definido, ya sea ascendente o descendente. Haga un clic sobre un campo de la lista que aparece a mano izquierda y sin soltar el botn del mouse colquelo en el espacio que hay en la mano derecha. Al lado de este nuevo elemento hay un cuadrado que si esta marcado indica que los registros sern ordenados en forma ascendente con respecto a los valores del campo. Where (Condicionar) La presentacin de los registros puede ser condicionada, a travs de una(s) expresin(es) condicional(es), todas estas deben referirse al valor de un campo.

Cada columna se refiere a alguna parte de una expresin condicional.


Columna Column Operator Significado Campo a ser consultado, puede ser cualquier campo de las operadores Operador lgico, Los tablas que participan o bien una funcin que= lgicos son: igualdad menor < mayor > menor o igual <= mayor o igual >=

58/84 diferencia entre Existe en expresin en Como (texto) Es Value Logical Y inclusivo O inclusivo And Or <> Between Exist In Like Is

El valor de esta expresin puede ser:

Podr escribir el valor literal, siguiendo las siguientes reglas: Si fuese un valor numrico, simplemente escrbalo. Ej. 45; 6,7 Si fuese un valor texto o fecha, deber anteponerlo y prescederlo con
una comilla simple () Ej. Arturo Benitez Otro valor, para extraer otro valor, estando el cursor sobre la casilla del valor presione el botn derecho del mouse y se desplegar un listado de opciones.

Items
Columns Functions Arguments Value Select

Descripcin
Muestra un listado de todas las columnas que estn en las tablas seleccionadas para el Origen de Datos. Muestra un listado de las funciones que pueden ser utilizados. Muestra un listado de los argumentos definidos para este Origen de datos. Muestra un listado de todos los valores que estn presentes en el campo, definido en la columna columns, en la Base de datos. Permite disear una sentencia select anidada, es igual que disear otro origen de datos. La consulta asi definida deber devolver un solo campo del mismo tipo que el definido en la casilla columns y podr ser un valor o mltiples valores ( un registro o mltiples registros). Permite limpiar toda la sentencia definida, tanto la columna, el operador y el valor para la expresin.

Clear

Compute (Clculos) Es posible definir clculos, estos clculos deben ser funciones agregadas de SQL. Ej. count(personas.rut)

59/84/

Having La sentencia Where permite definir los registros que sern seleccionados. Pero si la consulta tiene grupos, podra desear que solo algunos grupos sean seleccionados. Sintax (Sintaxis) Este tpico muestra la sintaxis SQL que origina la presentacin del Datawindows. Esta sentencia es utilizada por obtener los datos que sern mostrados en la presentacin del Datawindows.

Parmetros
Parmetro es un valor que es traspasado a la consulta (Origen de Datos) para ser utilizada por esta como una variable. Para trabajar con parmetros se requiere de 2 pasos: Declarar Parmetro Esto se realiza seleccionando la opcin Retrieval Argument del men Design, aparecer una ventana donde podr escribir el(los) parmetro(s) que se quiera definir para este origen de datos.

Los 3 columnas para definir un argumento son:

Nombre
Position Name Type

Definicin
Indica su posicin, dentro de la lista de argumentos. Debe escribirse un nombre, el que se le dar y ser utilizado dentro del Origen de Datos. Debe seleccionarse un tipo de dato, de los existentes.

Si se desea aadir un nuevo parmetro al final de los ya existentes presione Add. Si desea insertar un parmetro entre otros, presione Insert y para eliminar un parmetro presione Delete, teniendo presente que el cursor este en alguna columna del parmetro a borrar. Utilizacin Para utilizar un parmetro, ubquese en la columna value del tpico where de la caja de tiles. Presione el botn derecho del mouse y seleccione la opcin Arguments; elija el parmetro a utilizar y presione el botn Paste.

Otras opciones
Registros Distintos

60/84

Cuando se tiene un conjunto de registros en los cuales algn(os) campo(s) o todos inclusive, de los elegidos en la representacin grfica de la Tabla, se repitan y uno desea que todos los registros mostrados sean distintos, utilice la opcin Distinct del men Design. Para terminar de trabajar con el Origen de Datos y comenzar a trabajar con la Presentacin presione el botn . Si desea volver y realizar modificaciones al Origen de Datos estando en Presentacin presione nuevamente el mismo botn.

Presentacin
La presentacin es un conjunto de objetos que son puestos en alguna posicin de un Area de edicin que representa el fondo; este puede ser utilizado como si fuese una pagina de un documento a imprimir. Cada uno de los objetos y secciones que conforman la presentacin tienen un nombre y poseen propiedades bien definidas. Para terminar salga de la ventana o presione el botn que aparece en la tabla secundaria
.

Secciones de la Presentacin Las secciones son reas donde pueden ponerse los objetos. Cada seccin esta delimitada por una barra horizontal, que tiene escrita el nombre de la seccin y una flecha que apunta hacia el rea que corresponde a dicha seccin. Para cambiar el largo de una seccin mantenga presionado el mouse sobre la barra horizontal de esta y crrala hacia arriba o abajo; inmediatamente se agrandara el rea correspondiente. Las secciones son las siguientes.

Nombre
Header Detail Summary Footer

Descripcin
Esta seccin se imprime en cada pagina que se origine al momento de imprimir, y corresponde a un encabezado de pagina. Esta seccin se imprime para cada registro que contenga la sentencia de Origen de Datos. Esta seccin es utilizada cuando existan calculos , que estn relacionados con campos del Origen de Datos sean funciones agregadas de SQL. Esta seccin se imprimir en cada pagina, y corresponde a un pie de pagina.

Adicional a esta secciones estndar, existen 2 que son definidas por el usuario al declarar un Grupo.

61/84/

Nombre
Header Group Trailer Group

Descripcin
Esta seccin se imprime cada vez que cambie el valor para el cual fue definido el grupo. Cada Grupo tiene un numero que lo identifica. Esta seccin es impresa cada vez que termina de listarse los registros del Grupo.

Para ver las propiedades de la hoja de la presentacin, presione el botn derecho del mouse estando este en un rea vaca de la presentacin. Estas propiedades estn divididas en tres tpicos

Tpicos
General Pointer Printer Specification

Descripcin
Determina la unidad de medida para la presentacin, el color de fondo de la presentacin. El tipo de puntero del mouse que ser utilizado cuando este pase por encima del Area vaca de la presentacin Se definen las especificaciones al imprimir; como son el tipo de papel, la Orientacin.

Elementos Existen mltiples elementos (objetos) que pueden ser anexados a la presentacin; todos estos estn listados en el botn PainterBar de la barra de herramientas

Para anexar un nuevo objeto a la presentacin haga un clic sobre este en el listado y luego haga otro clic en el lugar (en la presentacin) donde desea que aparezca. Para mover un objeto, haga un clic sobre este y sin soltar el botn del mouse muvalo a otra ubicacin; soltando el botn donde desea que se ubique el objeto. Para seleccionar varios objetos mantenga presionada la tecla Control mientras los selecciona. Para eliminar un(os) objetos seleccinelo(s) y presione la tecla Suprimir. Para ver las propiedades de un objeto; presione el botn .

Para modificar caracterstico de presentacin de varios a la vez:

Seleccinelos. Utilice los botones de la barra secundaria (colores, justificacin,


etc.), no puede modificarlos presionando el botn de propiedades del objeto.

62/84

Los objetos definidos se explicaran a continuacin:

Nombre
Text Picture Line Oval Rectangle Round Rectangle Column Compute Graph Nested Report

Icon

Descripcin
Este objeto es una etiqueta , muestra un texto, pero no presenta una caja de texto para ser modificado directamente en tiempo de ejecucin.Los tpicos de su Propiedades son: Permite seleccionar un archivo de dibujo para ser mostrado en la presentacin del Datawindows Permite poner esos objetos en la presentacin

Ole Page computed field Today

Permite aadir una columna de la sentencia SQL, como si fuese un objeto ms. Si es que accidentalmente borro el objeto que se relacionaba con dicha columna. Permite que Ud. Defina funciones agregadas y expresiones condicionales. Todas estas deben presentar un valor por pantalla. Permite insertar un grfico, los datos para disear el grfico sern alguna de las columnas definidas en el Origen de Datos. Permite ingresar un subreporter en la presentacin del Datawindows, este reporte debe ser un Datawindow previamente diseado. Por ende podemos decir que este objeto permite crear un Datawindow subordinado. Permite insertar un objeto Ole. Este objeto Ole puede ser uno Nuevo, un archivo ya existente o un objeto externo a PowerBuilder pero registrado en el sistema. Son objetos compute que poseen sentencias pre-definidas, pueden ser modificados:

Page, muestra un mensaje automatizado de la pagina impresa y el total de estas. Today, muestra un mensaje automatizado para presentar la fecha actual.
Average Count Sum Estos son objetos compute que poseen sentencias predefinidas, pueden ser modificadas. Para hacer uso de esto, debe marcar un campo y luego seleccionar el objeto; este campo sera utilizado para sentencia automatizada.

Average, promedio de numrico.

entrega el un campo

Count, entrega la cuenta de los registros.

63/84/

Sum, entrega la suma de un campo numrico.

Propiedades
Cada objeto posee propiedades, los que pueden ser vistos presionando el botn o bien haciendo doble click sobre el objeto. Para diferenciar los tpicos que conforman los atributos; existen 2 tipos de objetos. a) Elementales: Son los objetos que no son computados, es decir la presentacin de informacin no depende directamente de un calculo, condicin o expresin definida como parte del mismo objeto. Los objetos Elementales son: Text, Picture, Column, Line, Rectangle, Oval y Round Rectangle b) Computados y Subordinados: Son los objetos son dependientes, en el primer caso de un calculo, condicin o expresin definida en el mismo objeto, y en el segundo caso, son elementos que son externos a la presentacin: Computados: Compute, Average, Count, Page Computed Field, Sum, Today. Subordinados: Graph, Nested Report, Ole. Atributos Objetos Elementales Los atributos estn ordenados en tpicos, no todos los objetos poseen todos los tpicos, existen diferencias. Los tpicos son:

Tpico
General

Descripcin
Si fuese un objeto Text o un objeto Column, se puede definir el nombre del objeto, el tipo de borde y la alineacin del texto dentro del ancho del objeto y el texto que se debera mostrar. Si fuese un objeto Picture, se puede seleccionar el dibujo a mostrar con el botn Browse, la opcin Original size permite que se muestre el dibujo con su tamao real. Si fuese un objeto Line, Rectangle, Oval o Round Rectangle, en la opcin Line puede definir el color del borde, en Fill el color del relleno definido en Pattern, y finalmente el grosor de la linea en Line. Si el objeto fuese Text o Column, puede determina la Fuente del texto, tamao y efectos adicionales. En la opcin Text Color se elige el color del texto y en la opcin BackGround el color del fondo del objeto. Para todos los objetos Elementales, permite escribir las coordenadas donde se presentara el objeto. La opcin Autosize permite que se autoajuste el texto al ser modificado. La opcin Resize permite que pueda ajustarse el tamao del objeto en tiempo de ejecucin. La opcin

Font Position

64/84 Moveable permite que el objeto pueda ser movido de su ubicacin original en tiempo de ejecucin. Define el tipo de puntero del mouse que aparecer cuando el mouse este sobre el objeto. Es un listado de los atributos modificables del objeto en tiempo de ejecucin. Estos pueden tener una expresin; sea esta condicional. Ej. El atributo visible. Si yo deseo que este objeto no sea visible, el valor de este atributo debe ser Falso, debo escribir en la casilla contigua al atributo 0=1 (esta expresin es falsa). Por ende el objeto no ser visible.

Pointer Expresions

El objeto Column posee atributos especiales y que es necesario aclararlos aparte. Reglas de Presentacin Extendidas El objeto Column posee 3 tpicos dentro de sus atributos que son muy importantes. Todos ellos se trabajan igual que elementos "Estilos de Edicin", "Formato de Presentacin" y "Reglas de Validacin" del Area de Base de Datos

Tpico
Edit Format Validation

Descripcin
Permite seleccionar un estilo de presentacin para los datos de la columna, o para los datos que podra tomar dicha columna Permite definir un formato de entrada de datos, esto es una regla para los caracteres (letras, numeros, simbolos) que pueden ser utilizados, inclusive su posicin dentro del campo. Permite definir una regla de validacin. Si esta regla (condicional) devuelve Verdad el dato entrado/seleccionado es aceptado.

Atributos Objetos Computados y Subordinados Los atributos estn ordenados en tpicos, no todos los objetos poseen todos los tpicos, existen diferencias. Los tpicos que se listan a continuacin son los tpicos distintivos de estos tipos de Objetos:

Tpico
General

Descripcin
Si el objeto fuese Compute o bien un objetos compute que poseen sentencias predefinidas, en la caja inferior se debe escribir la expresin condicional. Para manejarla en mejor forma presione el botn More; se presentara una ventana con todas las caracterstico para el diseo de sentencias. El listado Functions muestra las funciones que pueden utilizarse, haga un click sobre una y esta se pegara en la caja de edicin superior. El listado Columns muestra los campos de puede utilizar para la expresin. El botn Verify comprueba si la expresin condicional esta correctamente escrita. Solo para objetos Nested Report, permite seleccionar el Datawindows subordinado, de los ya diseados. Solo para objetos Nested Report, permite definir un criterio para la seleccin de registros a mostrar en el Datawindow subordinado. Cada campo del datawindows subordinado aparece como una columna. En la casilla criteria correspondiente escriba un criterio. Ej. <34, Jose donoso Si no existiera un operador relacional se entiende que solo muestre los registros que sean igual al valor ingresado. Cada fila indica otro criterio de presentacin.

Select Report Criteria

65/84/

Grupos
Los grupos son una manera de organizar la informacin al ser desplegada, es as como al indicar un grupo se debe indicar el campo por el cual se desea agrupar; esto significa que todos los registros cuyo valor para dicho campo sea igual sern mostrados uno a continuacin del otro. Generar un Grupo Para generar un nuevo grupo seleccione la opcin Create Group del men Rows. Aparecer una ventana como la que sigue

Mueva el campo que generara el grupo, desde la casilla Source Data a la casilla del lado izquierdo, "Columns. La opcin New Page ..., significa que cada vez que cambie el valor del campo que genera el grupo se realizara un salto de pagina automtico. La opcin Reset Page .., significa que cuando se liste un nuevo grupo el contador del numero de pagina volver a cero.

Tpico
Sort Group General Definition

Descripcin
Permite definir el (los) campos por el cual sern ordenados los registros dentro del grupo. Para ello mueva el campo a la casilla que aparece al lado izquierdo La opcin Color permite seleccionar el color que tendr la cabecera del Grupo. La opcin Height permite determinar el alto de la cabecera del Grupo. Permite modificar el campo que genera el grupo.

Cuando se genera un nuevo grupo se crean dos secciones nuevas Header Group y Trailer Group; las que fueron definidas previamente. Modificar Atributos Grupo Para modificar alguno de los atributos que se defini al crear el grupo. Seleccione la opcin Edit Group del men Rows; aparecer un numero, este nmero es el que se ve en las barras diagonales que separan al grupo y que fue asignado automticamente al generar el grupo, elija el nmero que corresponde al grupo que desea modificar. La ventana que aparecer es la misma que apareci al generar el grupo, con todos sus tpicos; realice las modificaciones y presione el botn Ok para terminar.

66/84

Eliminar Grupo Para eliminar algn grupo definido. Seleccione la opcin Delete Group del men Rows; aparecer un numero, este nmero es el que se ve en las barras diagonales que separan al grupo y que fue asignado automticamente al generar el grupo, elija el nmero que corresponde al grupo que desea Eliminar. Cuando lo haga, la definicin del grupo y todos los objetos que estaban en las secciones Header Group y Trailer Group del respectivo grupo sern eliminados.

Otros
Filtro (Filter) Esta opcin permite realizar una presentacin condicional de registros. La expresin condicional se puede referir a cualquier campo de la consulta de Origen de Datos. Para hacer uso de esta seleccione la opcin Filter del men Rows. Aparecer una ventana idntica a la mostrada cuando se disea una regla de validacin para un objeto campo.

Escrita la condicin en la caja superior, para comprobar si esta correcta presione el botn Verify. Utilice el listado Functions, para aadir una funcin a la expresin condicional, y el listado Columns, para aadir una columna a la expresin condicional, estas dos lo aaden en la posicin actual del cursor. Presentacin Preliminar: Para hacer una presentacin preliminar presione el boton <boton pres. Pre.> o elija la opcin Preview del men Design. Estando en el modo "Actualizacin Datos Tabla": Si se desea aadir un nuevo registro al final de los ya existentes presione el botn . Para eliminar un registro presione el botn cursor alcualmente. , se eliminara el registro donde este el .

Para guardar los cambios en la Base de datos , presione el botn Para obtener datos de la Base de datos, presione el botn Para terminar el modo "Actualizacin ", presione el botn
.

67/84/

Para moverse de un campo a otro presione la tecla Tab. Para moverse de un registro a otro utilice las teclas cursor arriba( ) y cursor abajo( ), para ir un registro antes y un registro despues respectivamente.

Para presentar una presentacin previa de la impresin, seleccione la opcin Print Preview del men File. Despus de esto. Para mostrar una regla de bordes, seleccione la opcin Print Preview Rulers del men File, y para hacer un zoom, seleccione la opcin Print Preview Zoom del men File.

Orden de Tabulacin El orden de tabulacin indica a que campo ira el cursor cuando se presione la tecla Tab., el orden de tabulacin es numrico ascendente. Para definir el orden de tabulacin presione el botn o bien elija la opcin Tab Orden del men Design. Durante la definicin del orden de tabulacin todas las dems operaciones quedan inactivas, para volver a la normalidad presione el mismo botn o seleccione la misma opcin.

68/84

Utilizacin Datawindows
El objeto datawindows en si no es de ninguna utilidad, si no se vincula con un objeto Datawindow control. Este objeto, es visual y es posible de insertar directamente en una ventana; para que pueda ser utilizado por el usuario. Objeto Datawindow Control El objeto Datawindow Control se selecciona del listado de objetos que se pueden insertar en una ventana, simplemente haga un clic sobre el icono . Luego haga un clic en la posicin, en la ventana, donde desea poner el Datawindow control. Haga doble clic sobre el objeto Datawindows que esta ahora en la ventana, o bien presione el botn posee. , teniendo seleccionado el objeto, para ver las propiedades que

A continuacin se listan las propiedades particulares que el objeto posee.

Propiedad
Name Datawindow

Descripcin

Es el nombre que tendr el objeto Datawindow Control. Escriba el nombre del objeto Datawindow que ser mostrado en este Datawindow control. Para seleccionar un Datawindow presione el botn "Browse". Title Escriba el texto que aparecer en la barra de titulo, si esta marcada la opcin TitleBar. TitleBar Si esta opcin esta marcada, el texto que este en la caja Title se mostrara como una barra de titulo. Control Menu Si esta opcin est marcada, permite que el Datawindow Control, sea un objeto flotante (pudiendo moverse) dentro de los limites de la ventana que lo contiene. Maximize box Permite que el Datawindow control, presente los botones Maximizar y Minimizar, Minimize box respectivamente.

Manejo de Datawindow Control


Para hacer uso del Datawindow Control en tiempo de ejecucin es necesario indicar que objeto de transaccin ser utilizado por el Datawindow (ver el tema "Base de Datos") para presentar la informacin definida en el. Esto se hace, con la siguiente funcin: <nom Dw>.SetTransObject(<obj transac>) Donde: <nom Dw> es el nombre del Datawindow Control. <obj transac> es el objeto de transaccin, por defecto utilice SQLCA.

69/84/

Esta sentencia debe escribirse antes de hacer uso del Datawindow Control, normalmente se pone en el Evento "Open" de la ventana que contiene al Datawindow Control. Ej. dw_inicio.SetTransObject( sqlca ) Para obtener datos de la Base de Datos, y mostrarlos en el Datawindow Control, se utiliza la siguiente funcin:

Esto se hace, con la siguiente funcin: <nom Dw>.Retrieve (<lista parametros>) Donde: <nom Dw> es el nombre del Datawindow Control. < lista parametros >, si para el Origen de Datos (del Datawindow), se definieron argumentos, deben listarse los valores a utilizar por cada uno en el mismo orden en que fueron definidos y separados entre si por una coma. Los argumentos se escriben como literales, sin comillas para los argumentos de tipo texto.

Ej. dw_nuevo.Retrieve( Contabilidad, sle_edad.text ) Para modificar en tiempo de ejecucin el datawindow que esta vinculado al Datawindow Control, utilice la siguiente funcin: <nom Dw>.DataObject = <nombre obj Dw>) Donde: <nom Dw> es el nombre del Datawindow Control. < nombre obj Dw >, es el nombre de un objeto Datawindow definido. Si el objeto Datawindow vinculado al Datawindow Control, es necesario nuevamente, indicar el objeto de transaccin que se utilizara para este Datawindow y volver a ocupar la funcin Retrieve, para obtener los datos de esta nuevo Datawindow.

Ej. dw_nuevo.DataObject= d_otro

70/84

Funciones para el manejo.


Aadir Eliminar Buscar Filtrar Registros Actualizar Base de Datos

Aadir Para aadir un nuevo registro se utiliza la siguiente funcin: <nom Dw>.InsertRow(<pos>) Donde: <nom Dw> es el nombre del Datawindow Control.

<pos> Es la posicin, dentro del nmero de registros mostrados en el Datawindow Control, donde se insertara el nuevo registro. Si <pos>= 0, aade un registro al final de los ya existentes. El aadir un registro, para ser llenado los datos de los campos por el usuario, no implica que el foco se mueva a este nuevo registro. Ej. dw_nuevo.InsertRow(1)

Eliminar Para eliminar un registro debe conocer cual es la posicin, dentro del nmero de registros mostrados en el Datawindow Control, del registro a eliminar. Esto se hace, con la siguiente funcin: <nom Dw>.DeletedRow(<pos>) Donde: <nom Dw> es el nombre del Datawindow Control.

<pos> es la posicin del registro a eliminar. Si desea eliminar el registro donde esta el foco (cursor actualmente), utilice la siguiente funcin: <nom Dw>.GetRow( ) Ej. dw_nuevo.DeletedRow( dw_nuevo. GetRow( ) )

71/84/

Buscar Permite buscar un registro, dentro de los listados en el Datawindow Control, que coincida con la expresin definida. Para esto utilice la siguiente funcin: <nom Dw>.Find(<expre cond>) Donde: <nom Dw> es el nombre del Datawindow Control.

< expre cond > es una expresin que se escribe igual que una expresin Where. Esta funcin devuelve la posicin del registro que cumpla con la condicin, o un cero si no encuentra ninguno. Ej. integer pos pos= dw_nuevo.Find("rut= " + sle_rut.text + "")

Filtrar Registros Esto significa que del conjunto de registros que muestra el Datawindow Control en forma habitual, solo se mostraran los que cumplan con cierta condicin. Quedando los otros invisibles, pero presentes en el Datawindow Control. Para esto posee de dos funciones, la primera para definir una filtro, y la segunda para ejecutar el filtrado definido. Definir Filtro: Si desea modificar el filtro definido en la "Presentacin" del Datawindow, o crear un nuevo filtro, utilice la siguiente funcin: <nom Dw>.SetFilter(<expre cond>) Donde: <nom Dw> es el nombre del Datawindow Control. < expre cond > es una expresin que se escribe igual que una expresin Where. Ejecutar Filtro: Para realizar el filtrado en el Datawindow Control, utilice la siguiente funcin: <nom Dw>.SetFilter( ) Donde: <nom Dw> es el nombre del Datawindow Control. Ej. dw_nuevo.SetFilter("Edad> 21") dw_nuevo. SetFilter( )

72/84

Actualizar Base de Datos Debe indicrsele que traspase la informacin modificada/eliminada/ actualizada, desde el Datawindow Control a la Base de Datos. Para esto utilice la siguiente funcin: <nom Dw>.Update( ) Donde: <nom Dw> es el nombre del Datawindow Control. Esta funcin devuelve un valor, -1 si un error ocurrio Ej. If dw_nuevo. Update( ) <> -1 then Commit ; Else Rollback ; End If Obs. La sentencia Commit, guarda los cambios permanentemente en la Base de Datos. La sentencia Rollback deshace todas las modificaciones hechas en la Base de Datos, esto siempre se debe hacer si se encuentra un error.

Modificar Presentacin
Los objetos que estn contenidos en el Datawindow, y que fueron definidos en la "Presentacin" del mismo, pueden ser manipulados, por la utilizacin de 2 funciones bsicas: Describe Modify

Describe Esta funcin nos permite conocer el valor de alguna propiedad o atributo de un objeto, seccin, caracterstica del Datawindows. Su sintaxis es la siguiente: <nom Dw>.Describe(<expre consulta> )

73/84/

Donde: <nom Dw> es el nombre del Datawindow Control.

<expre consulta>, es una expresin que debe contener el objeto, seccin, o caracteristica a consultar. Ej. boolean paso paso= dw_nuevo. Describe("t_rut.visible")

Modify Esta funcin permite realizar modificaciones al valor de algn atributo de un objeto, seccin, caracterstica del Datawindows. Su sintaxis es la siguiente: <nom Dw>.Modify(<expre modificar> ) Donde: <nom Dw> es el nombre del Datawindow Control.

<expre modificar>, es una expresin que debe contener el objeto, seccin, o caracteristica a modificar. Ej. dw_nuevo.Modify("t_rut.visible = True")

Imprimir Datawindow Control


Para imprimir el contenido del Datawindow utilice la siguiente funcin: <nom Dw>.Print() Donde: <nom Dw> es el nombre del Datawindow Control. Para mostrar una caja de dialogo, donde seleccionar la impresora a utilizar y poder modificar parmetros de impresin. Utilice la siguiente funcin. PrintSetup( )

74/84

Presentacin Preliminar Para presentar el datawindow con presentacin preliminar, escriba la siguiente sentencia: <nom Dw>.Modify("Datawindow.Print.Preview = Yes") Para presentar en el Datawindow, en modo presentacin preliminar, una regla de bordes de impresin, escriba la siguiente sentencia: <nom Dw>.Modify("Datawindow.Print.Preview.Rulers = Yes") Si desea hacer un Zoom a los datos del Datawindow, en modo presentacin preliminar, escriba la siguiente sentencia: <nom Dw>.Modify("Datawindow.Print.Preview.Zoom = <Valor>") Donde: <Valor> es el valor del Zoom a mostrar. Ej. <nom Dw>.Modify("Datawindow.Print.Preview.Zoom = 50") dw_nuevo.Modify("Datawindow.Print.Preview = Yes") <nom Dw>.Modify("Datawindow.Print.Preview.Rulers = Yes")

Eventos
Como ya es de su conocimiento, los eventos son las acciones; que son realizadas por el usuario, o cuando se altera alguna propiedad/atributo del Objeto. El Objeto Datawindow Control tambin posee eventos, los ms comunes son los siguientes:

Evento
RowFocusChanged ItemChanged

Descripcin
Sucede cuando el foco cambia de un registro a otro, no de un campo a otro dentro del mismo registro.Tambin sucede cuando se obtienen datos (Retrieve) de la Base de Datos. Ocurre cuando el usuario un campo ha sido modificado y este campo pierde el foco ( presionar tecla Enter, tecla Tab, o moviendose a otro campo cualquiera)Tambien ocurre cuando se utiliza la funcin AccepText o la funcin Update.

75/84/

76/84

SQL Incrustado
SQL (Structured Query Languaje), Lenguaje Estructurado de Consulta, es un conjunto de sentencias que son utilizadas para manipular el conjunto de datos de una Base de Datos relacional. Las sentencias SQL de PowerBuilder difieren ligeramente de las sentencias SQL estandar. Estas se dicen incrustadas ya que las sentencias definidas aparecen como sentencias propias del lenguaje PowerScript, esto ltimo permite que la aplicacin pueda realizar estas operaciones de manejo de datos en forma tal que la Base de Datos no se da cuenta que es una aplicacin externa la que esta realizando operaciones sobre los datos. Existen dos tipos de sentencias SQL Incrustadas: a) No Cursores Estas sentencias realizan la misma operacin sobre un conjunto de registros, es decir, cada registro no es individualizable. b) Cursores Estas se caracterizan porque no son sentencias estaticas, es decir; dentro de la misma sentencia es posible 'recorrerla' , esto es, poder capturar los datos de un registro en particular dentro de una consulta y luego capturar los datos de otro registro dentro de la misma consulta. Permite operar cada registro en forma individual, dentro de un cojunto definido de estos. Ej. Definir un cursor para las personas mayores de 65 aos. Para trabajar en SQL-Incrustado, debe estar en un modulo de programa, presione el boton y aparecera una ventana; donde podra seleccionar el tipo de sentencia (Cursor, NoCursor) y cual especificamente, y luego presione el boton Ok.

77/84/

No Cursores
Dentro de este tipo existen 4 sentencias:

Select Insert Update Delete

Asigna campos a variables (objetos) del programa. Aade un nuevo registro a una Tabla especifica. Modifica los valores de campos de un(os) registros.. Borra el(los) registro(s).

Despues de seleccionar el tipo de sentencia aparecera la ventana de seleccin de Tablas.

Cuando haya terminado de trabajar con la sentencia presione el boton SQL se pegara en el Script en el lugar donde este el cursor. Las definiremos ahora. Select

, y la sentencia

Cuando se desea seleccionar, tomar datos de algn campo de una(s) Tabla(s); asignandosele el valor de cada campo seleccionado a una variable definida en el programa o bien a algun atributo de un objeto cualquiera, se debe utilizar esta opcin. Apareceran en forma grafica la(s) Tabla(s) y tambien las relaciones existentes entre ellas. Seleccione los campos, haciendo un click sobre ellos, en la representacin grafica de la Tabla. En la parte inferior de la ventana aparecen los topicos de trabajo, estos topicos se trabajan igual que cuando se selecciona un Origen de Datos para un Datawindows. Para cada campo que se seleccione de la(s) Tabla(s), debe especificarse una variable a la que sera asignado el valor de dicho campo, para asignar esto presione el boton o seleccione la opcin Into Variable del men Design, al realizarlo aparecera una ventana donde podra asignar la varible del programa u atributo de un objeto a cada campo.

78/84

Al lado izquierdo de cada campo esta una caja de texto donde debera escribirse el nombre de la variable del programa, "Program Variable". Tiene 2 maneras para escribirla, estando el cursor parpadeando en la casilla de texto especifica: Escribir el nombre de la variable, anteponiendole dos puntos (: ). Hacer un click sobre alguno de los atributos de los objetos que estan presentes en el listado que aparece en la parte inferior de la ventana "Programs Variables"; en este caso no se requiere anteponer los dos puntos. ( : )
Insert

La sentencia Insert se utiliza cuando se desea aadir un nuevo registro en una Tabla. Aparecera la ventana "Valores a Columna", que permite definir la variable/valor que se utilizara para cada campo al momento de ingresar un nuevo registro. Esto se realiza como sigue:

Para cada campo que tiene la Tabla debera asignarle un valor. Este valor podra ser literal (numero o texto), variable del programa o bien el atributo de un objeto (normalmente el atributo text); de donde se tomara el valor a insertar en dicho campo. Al lado izquierdo de cada campo,Column Name, esta una caja de texto donde debera escribirse el valor a asignarle al campo, Value. Tiene 3 maneras para escribirla, estando el cursor parpadeando en la casilla de texto especifica: Podra escribir el valor literal, siguiendo las siguientes reglas: Si fuese un valor numerico, simplemente escribalo. Ej. 45; 6,7 Si fuese un valor texto o fecha, debera anteponerlo y prescederlo con una comilla simple () Ej. Arturo Benitez Haciendo un click sobre alguno de los atributos de los objetos que estan presentes en el listado que aparece en la parte inferior de la ventana, estos objetos son los que estan insertos en la ventana o menu donde se desea pegar la sentencia. Escribir el nombre de la variable del programa, de donde sacara el valor, teniendo el cuidado de anteponerle dos puntos ( : )

79/84/

Adicional a lo anterior Ud. podra indicar que el campo sea nulo, presionando el botn Null. El botn Select permite definir otra sentencia Select, de donde se extraera el valor a ingresar a este campo. Para aquel campo que sea su valor defecto el de autoincrement, haga un click sobre el y presione el botn Delete; para que no sea considerado en el ingreso del nuevo registro. Ud. no podra hacer uso de los topicos de trabajo que aparecen en la parte inferior de la ventana, solo podra ver la sintaxis de la sentencia (Sintax) Para volver a definir los valores a ser asignados a los campos, presione el boton .
Update

La sentencia Update permite modificar el valor de un(os) campo(s) de una Tabla. Aparecera la ventana "Valores a Columna", que permite definir la variable/valor que se utilizara para cada campo al momento de alctualizar su valor. Esto se realiza como sigue:

Seleccione el(los) campos a modificar, esto se hace haciendo un click sobre el nombre del campo, en la representacin grafica de la Tabla, que aparece en la parte inferior de la ventana. Para cada campo que este en el listado superior de la ventana, debera indicar el valor. Este valor podra ser literal (numero o texto), variable del programa o bien el atributo de un objeto (normalmente el atributo text); de donde se tomara el valor a modificar en dicho campo. Siga las mismas indicaciones dadas para el ingreso de valores de la sentencia "Insert". Adicional a lo anterior Ud. podra indicar que el campo sea nulo, presionando el botn Null. Para extraer un campo de la lista de campos a actualizar, presione el botn Delete. Tenga cuidado de definir una expresin condicional en el Topico Where, o de otro modo, las modificaciones tendran lugar sobre todos los registros de la Tabla. Para volver a definir los valores a ser asignados a los campos, presione el boton .

80/84

Delete

La sentencia Delete permite borrar un(os) registros de una Tabla, inclusive a partir de valores de otras tablas; esto ultimo definido como una Subconsulta en el Topico de Trabajo Where de la definicin. Despues de presionar Ok en la ventana "Paste SQL" aparecera la ventana de "Origen de Datos". Lo primero que debera hacer es seleccionar la tabla en la que desea eliminar registros de estas. Aparecera en forma grafica la Tabla. En la parte inferior de la ventana aparecen solo el tpico Where. Obs. Tenga cuidado de definir una expresin condicional en el Topico Where, o de otro modo, eliminara todos los registros de la Tabla.

Aclaracin Final
La sentencia es finalizada con un punto y coma (;), si esta utilizando un Objeto de Transaccin distinto al estandar (sqlca), inmediatamente antes del punto y coma escriba lo siguiente: USING <otro obj> Donde <otro obj>, corresponde a otro objeto de transaccin definido en la aplicacin. Esto es de mucha importancia por lo tanto no olvide hacerlo. <lista de variables> es una lsta de variables del programa separados por coma y siempre llevando delante de cada nombre de variable los dos puntos (: ). Estas variables pueden ser cualquiera, incluso atributos de un objeto, siempre que el dato traspasado sea del mismo dominio de la variable.

81/84/

Cursores
Estas sentencias permiten definir un conjunto de campos y registros, sobre los cuales se podr. Modificar valores, Eliminar registros y moverse dentro de los registros que cumplan con las restricciones definidas para la sentencia. La mayor ventaja es que la sentencia definida es conservada en una variable, de tipo cursor, esta puede ser utilizada dentro del rango definido al declararla (Global, Shared, Instance, Local) Para trabajar con cursores se definenen 3 pasos: Declarar el Cursor, esto se hace estando en un modulo ejecutable de programa o bien en alguna casillad de declaracin de variables. Abrir el Cursor, esta operacin inicializa la sentencia SQL definida en el paso anterior. Trabajar con el cursor, esto se refiere a las acciones de Navegar, Actualizar y Eliminar. Cerrar el Cursor, esto libera la memora que utiliza la variable declarada como cursor. Se puede volver a Abrir el Cursor, si fuese necesario

Es una buena politica comprobar el valor del sqlca.sqlcode, para ver si la operacin realizada fue satisfactoria, al abrir, trabajar o cerrar el cursor. Declarar el Cursor Para declarar el cursor. Si esta en un modulo ejecutable de programa presione el boton y elija la opcin Declare, si esta en alguna de las casillas de declaracin de variables/constantes haga doble click sobre el icono que dice Cursor, en ambos casos se continua como sigue. Aparecera la ventana "Seleccin de Tabla", solo las tablas que se seleccionen del lstado ser posible de manipular. Presione el botn Open para que aparescan las tablas seleccionadas, o presione el botn Cancel para cancelar la operacin. La opcin System Tables permite seleccionar las Tablas del catalogo de la Base de Datos; estas Tablas son utilizadas para la Administracin de la Base de Datos. Las Tablas seleccionadas aparecen en la ventana en una forma grafica y tambien las relaciones existentes. Seleccione los campos, haciendo un click sobre ellos, en la representacin grafica de la Tabla. En la parte inferior de la ventana aparecen los topicos de trabajo, estos topicos se trabajan igual que cuando se selecciona el Origen de Datos para un Datawindows. Despues de definir la sentencia, cierre la ventana, al hacerlo se preguntara el nombre que tendra el cursor, presione el botn Ok, y la sentencia se pegara donde este el cursor en la ventana origen.

82/84

La sentencia es finalizada con un punto y coma (;), si esta utilizando un Objeto de Transaccin distinto al estandar (sqlca), inmediatamente antes del punto y coma escriba lo siguiente: USING <otro obj> Donde <otro obj>, corresponde a otro objeto de transaccin definido en la aplicacin. Abrir el Cursor Esta operacin se realiza en un modulo de codigo ejecutable de program. Para abrir un cursor, la sentencia es la siguiente: OPEN <nombre cursor>; Donde <nombre cursor> es el nombre que se le asigno al cursor al momento de declararlo. Recuerde que solo puede utilizar los cursores que esten definidos(Globales, Shared, Instance, Local) para su utilizacin en el rango que abarque el modulo en uso. Trabajar con el cursor El trabajar con el cursor se refiere ha hacer uso de este para algn proceso. Es as como se puede obtener Datos de los registros que cumplan con las restricciones definidas al declarar el cursor. Tambien se pueden eliminar el registro donde este actualmente, de la lista de registros que cumplan con las restricciones definidas al declarar el cursor. Por ltimo, tambien se puede actualizar del registro actual, el(los) campo(s) que forman parte de la declaracin del cursor. A continuacin definiremos cada una de estas operaciones: Obtener Datos Para obtener los datos de un registro se utiliza la siguiente sentencia: FETCH <operador naveg> <nombre cursor> INTO <lista variables> ; Donde: <nombre cursor> es el nombre del cursor de donde se desea obtener los datos. Si es la primera sentencia despues de haber abierto el cursor, se obtendran los datos de el primer registro que cumpla la condicin fijada en la declaracin del cursor, ya que el indicador de posicin del registro actual esta en 0. Si se vuelve a repetir la misma sentencia se obtendra el segundo registro, y as consecutivamente.

83/84/

<operador naveg> es una palabra reservada que se utiliza para indicar de donde, dentro de los registros que cumplan la declaracin del cursor, se obtendrn los datos para llenar la <lista de variables>. Esta palabra reservada es optativa, ya que por defecto asume NEXT. Las palabras reservadas son las siguientes:

Actualizar Datos Si se desea eliminar el registro actual del Cursor, utilice la siguiente sentencia: DELETE FROM <nom tabla> WHERE CURRENT OF <cur name> ; Donde: <nom tabla>, es el nombre de la Tabla a eliminar el registro. <cur name>, es el nombre del cursor. Si se desea modificar el valor de un campo, de los seleccionados cuando se definio el cursor, utilice la siguiente sentencia: UPDATE <nom table> SET <cols> WHERE CURRENT OF <cur> ;
Operador Next Prior First Last Descripcin Indica que los datos sern obtenidos del siguiente registro, de los que cumplan con la declaracin del Cursor. Indica que los datos sern obtenidos del registro anterior. Indica que los datos sern obtenidos del primer registro de los que cumplan con la declaracin del Cursor. Indica que los datos sern obtenidos del ltimo registro de los que cumplan con la declaracin del Cursor.

Donde: <nom table>, es el nombre de la Tabla a modificarse.

<cols>, es un listado de los campos, separados por coma. Nombre del campo, signo igual (=) y el valor a asignarse. <cur>, nombre del cursor

Cerrar el Cursor
Para cerrar el cursor utilice la siguiente sentencia: CLOSE <nombre cursor> ; Donde: <nombre cursor> El cerrar el cursor, no implica que se pueda volver a abrirlo en el futuro.

Proyecto

84/84

Un proyecto es la definicin del archivo ejecutable de la aplicacin. Para trabajar en esta rea presione el botn . Seleccione de la lista el proyecto a seguir trabajando. o presione Seleccione el botn New, para comenzar uno nuevo, primero deber definir el nombre y ruta del archivo ejecutable. Aparecer una ventana, que esta dividida en 2 secciones: Definicin Ejecutable, permite definir las caractersticas que tendr el archivo ejecutable. Las opciones "Generacin del Cdigo", permiten definir el formato del archivo ejecutable y el nivel de optimizacin. Listado de Libreras, deben aparecer todas las libreras que conforman la aplicacin, de otro modo haga las modificaciones en la aplicacin correspondiente.

La casilla PBD, permite declarar que se cree un archivo de Librera dinmica de PowerBuilder, escribiendo la ubicacin y el nombre del archivo correspondiente. Para generar el archivo ejecutable presione el botn .