Vous êtes sur la page 1sur 149

UNIVERSIDAD CONTINENTAL DE CIENCIAS E INGENIERIA

LENGUAJE DE PROGRAMACIN COMERCIAL Power Builder 09-10

ELVIS GUILLERMO HUARCAYA QUISPE

Huancayo 2006

Lenguaje de Programacin Comercial

SEPARATA N01
Escuela Profesional: Ing. Informtica Asignatura: Lenguaje de Programacin Comercial Turno: Noche Ciclo: Octavo Docente: ELVIS GUILLERMO HUARCAYA QUISPE Fecha: 08-08-2006 INSTALACIN DE POWER BUILDER 9.0-10.0
Requerimiento de Hardware y Software Para la instalacin de Power Builder 9.0 10.0 se requiere los Siguientes requisitos: Sistemas Operativos Microsoft Windows 98 Microsoft Windows NT 4.0. Windows Xp , Windows 2003 Memoria 16 Mb de RAM (Recomendado : 32 Mb de RAM Espacio en disco duro: 16 Mb Instalacin Compacta 600 Mb Instalacin Tpica PC superior. Pentium I (Recomendado Pentium IV) Tarjeta Grfica VGA o superior (Recomendado SGVA de 256 colores) Instalacin de Power builder Para instalar se debe de insertar el CD en la unidad de lectora. PoWer Builder 9.0 -10.0 forma parte del conjunto de producto que incluye las siguientes aplicaciones: InfoMarker 9.0 -10.0 Power Builder 9.0-10.0 Power Dynamo 3.6 PowerDisegner Doc. 9.0-10.0 PowerDisegner Trial 9.0-10.0 Iniciando la instalacin de Power Builder 9.0

El siguiente paso es seleccionar los componentes:

Power Builder 9.0-10.0

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

Para continuar con la instalacin realice Clic en el Botn Next. Hasta el Final de la instalacin. CONCEPTO: Power Builder es una herramienta de desarrollo de aplicaciones orientada a objetos que permite construir poderosas aplicaciones cliente/servidor para el ambiente Windows y Unix, e interactuar con varias bases de datos. Power Builder es del grupo de productos sybase que juntos proporcionan las herramientas para desarrollar aplicaciones cliente/servidor, distribuido, y aplicaciones de Internet. ENTORNO DE DESARROLLO DE POWERBUILDER El entorno del Power Bilder que usted visualiza depende de la versin que esta utilizando. A continuacin se explica el entorno de la versin 9.0. -10.0 Cuando usted ingresa al Power Builder 9.0 10.0 se visualiza siempre la misma ventana, sin ninguna aplicacin activa:

Para visualizar una aplicacin debe hacer clic en el botn Open o en el men File/Open y seleccionar un espacio de trabajo (WorkSpace) creado previamente.

Power Builder 9.0-10.0

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

VENTANA PRINCIPAL DE POWER BILDER La ventana principal de Power Builder esta compuesta de tres partes: Barra de Ttulo Que contiene el nombre de la aplicacin con la que esta trabajando y los botones para controlar la ventana. Barra de Men (Estandar) Contiene las opciones que permiten administrar el Power Builder Barra de Herramientas Llamada tambin ToolBar1 y contiene los botones que permiten acceder de manera rpida a las opciones mas utilizadas de Power Builder. barra de ttulos
barra estndar barra herramientas

Nota: Las opciones del Men Principal y la Barra de Herramientas que se visualizan dependen del objeto que esta visualizando. Esto quiere decir que las opciones y las barras de herramientas aumentan cuando activamos o abrimos algn objeto de la aplicacin.
MEN FILE

New

Power Builder 9.0-10.0

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Crea una nueva aplicacin o un nuevo objeto dentro de una aplicacin.

Inherit Permite crear objetos ventanas, men u objetos de usuario a partir de objetos ya existentes. Por ejemplo, si va a crear una ventana similar a una que ya existe entonces puede elegir esta opcin para crearla. Open Abre un objeto de una aplicacin como una ventana, un Men, etc. Run/Preview Muestra una vista previa de una Ventana o DataWindow, es decir cmo la visualizar el usuario cuando la ejecute. Open WorkSpace Permite abrir un rea de trabajo existente Printer Setup Muestra la ventana para configurar la impresora Recent Objects Muestra y permite abrir los objetos recientemente utilizados de la aplicacin como ventanas, men, datawindows, etc. Recent WorkSpaces Muestra y permite abrir los ltimos espacios trabajo utilizadas. Recent Connections Muestra y permite abrir las conexiones recientemente usadas. Exit Permite salir de PowerBuilder Nota: En forma predeterminada Power Builder guarda los 8 ltimos objetos recientemente utilizados (Recent)
MEN TOOLS

ToolBars

Power Builder 9.0-10.0

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Permite administrar las barras de herramientas que selecciona. Muestra la siguiente ventana donde puede moverla (Move), mostrar el ttulo de cada botn (Show Text), ocultarla (Hide), visualizar (Show), etc. Show solamente se visualiza cuando la barra est oculta.

Keyboard Shortcuts Permite asignar o quitar las teclas de acceso directo a cada unas de las opciones del men.

Por ejemplo, si desea crear un nuevo objeto (New) con las teclas Ctrl + N, seleccione la opcin New y en la caja Press Keys for shortcut pulse las teclas Ctrl + N. Para quitar la tecla de acceso rpido, seleccinela y clic en Remove. System Options Permite configurar el Power Builder, como por ejemplo: Indicar la ruta del programa que ejecuta Power Builder, indicar la cantidad de objetos recientes que debe considerar, el tipo y tamao de letra predeterminado para los ttulos de los controles (Font), etc.

To Do List Almacena los pasos para las tareas de desarrollo de la aplicacin activa. Browser

Power Builder 9.0-10.0

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Muestra todos los objetos de la aplicacin actual. Haga clic botn derecho en el nombre de un objetro para poder editarlo.

Library Painter Permite administrar los objetos de las aplicaciones (*.PBL) que tiene creadas como por ejemplo, eliminarlas, ver sus propiedades, etc.

DataBase Profile Muestra la ventana para administrar los perfiles de base de datos

DataBase Painter Muestra la ventana para administrar las bases de datos

Power Builder 9.0-10.0

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


File Editor Activa el editor de textos de Power Builder OPCION HELP Muestra las subopciones que permiten leer los textos de ayudas acerca de Power Builder. BARRA DE HERRAMIENTAS La barra de herramientas llamada tambin ToolBar1 contiene los botones que permiten acceder de manera rpida a las opciones ms utilizadas de Power Builder

Accede a la Opcin File/New Accede a la Opcin File/Inherit Accede a la Opcin File/Open Accede a la Opcin File/Run/Preview Accede a la Opcin Window/System Tree Accede a la Opcion Window/Output Accede a la Opcion Window/To Do List Accede a la Opcin Window/Browser Accede a la Opcin Window/Clip Accede a la Opcin Window/Library Painter Accede a la Opcion Window/DataBase Profile Accede a la Opcin Tools/EAServer Profile Accede a la Opcion Window/DataBase Painter Accede a la Opcin Window/File Editor Accede a la Opcin Run/Incremental Build WorkSpace Accede a la Opcin Run/Full Build WorkSpace Accede a la Opcin Deploy WorkSpace Accede la Opcin File/Debug Accede a la Opcin Run/Select and Debug Accede a la Opcin File/Run Accede a la Opcin Run/Select Target Accede a la Opcin File/Exit

Referencias Bibliogrficas Lecturas

Juan Jose castaeda Power Builder 9.0 Jos del carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0

Power Builder 9.0-10.0

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Recomendadas Web a visitar http://www.powerbuilder.org/modules.php?name=Content&pa=showpage&pid=10 http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10

Power Builder 9.0-10.0

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N02
Escuela Profesional: Ing. Informtica Turno: Noche Docente: ELVIS GUILLERMO HUARCAYA QUISPE Asignatura: Lenguaje de Programacin Comercial Ciclo: Octavo Fecha: 15-08-2006

CREAR UNA APLICACIN


En la versin 9.0-10.0 de Power Builder primero debe crear una area de trabajo (*.PBW) en la hoja WorkSpaces. Vaya al Men File/New haga clic en el botn New de la Barra de herramientas.

En la ventana de dilogo New WorkSpace, ingrese el nombre del rea de trabajo, y asimismo debe ubicarse en la carpeta creada para este fin. Luego active la hoja Target, seleccione el icono Aplication, y haga clic en OK.

Application: Para una nueva aplicacin. Template Application: Para crear una nueva aplicacin que viene con objetos preconstruidos, til para quienes ya conocen Power Builder. Existing Application: Para incorporar una aplicacin que existe ya sea que est construida en una versin anterior de Power Builder o no. EAServer Component: Para crear una aplicacin que use componentes de Power Builder usando el Servidor EASserver COM/MTS: Para crear una aplicacin que use componentes Microsoft. Automation Server: Para crear una aplicacin que use una aplicacin de Windows como servidor.

Power Builder 9.0-10.0

10

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


A continuacin cree la aplicacin. Cuando crea la aplicacin Power Builder le pide el nombre de la aplicacin, de la librera y Tarjet.

Escribir aqu el nombre de la aplicacin

Finalmente clic en el botn Finish ABRIR UNA APLICACIN Para abrir una aplicacin en la versin 9.0-10.0, no es necesario cerrar los objetos de su aplicacin actual. Para abrir una aplicacin en la versin 9.0 depende si tiene o no una aplicacin abierta: SI NO TIENE NINGUNA APLICACIN ABIERTA Si no tiene ninguna aplicacin abierta, puede hacer clic en el botn Open (Abrir) o en el Men File/Open WorkSpace. Se visualiza la siguiente ventana donde debe elegir el nombre del WorkSpace (*.PBW) que desea abrir.

Click Aqu, Library y Target se completan en forma automtica.

A continuacin clic en OK SI TIENE UNA APLICACIN ABIERTA Si tiene una aplicacin abierta y desea abrir una aplicacin existente debe ir al Men File/Open WorkSpace.

Power Builder 9.0-10.0

11

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Se visualiza la siguiente ventana donde debe seleccionar la carpeta y luego su WorkSpace (*.PBW) que desea abrir.

Si la aplicacin que desea abrir ha sido utilizada recientemente, puede tambin ir al Men File/Recent WorkSpaces la cual muestra las ltimas aplicaciones recientemente utilizadas para poder abrirlas. CREAR UNA VENTANA Para crear una ventana haga clic en el botn New o en el Men File/New y seleccione la hoja Object, se visualiza la siguiente ventana:

De la ventana anterior elija Window, luego haga clic en el botn OK se visualiza la siguiente ventana:

La pantalla que visualiza tiene tres pantallas: Ventana de Trabajo (Layout) Aqu se disean los programas, dibujando los controles y escribiendo las instrucciones. Ventana de Propiedades (Properties)

Power Builder 9.0-10.0

12

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Contiene todas las propiedades que se le pueden asignar a los objetos o controles> Esta dividida en varias hojas que depende del control seleccionado. Ventana de Cdigo o Instrucciones (Script) Es la ventana donde se escriben las instrucciones que necesita el programa. Si alguna de estas ventanas no se visualiza haga clic en el Men View y luego en la opcin deseada:

Cuando se trabaja con una ventana se visualiza las siguientes barras de herramientas o PainterBars:

Graba la Ventana Copiar Deshacer Ventana de Cdigo Orden de los Controles Cerrar la Ventana Marca como Comentario Busca un Texto Compila un Programa Pega una Instruccin SQL Pega Variables Globales

Cortar Pegar Controles de Power Builder Ventana de Propiedades Vista Previa de la Ventana Selecciona Todo Quita el Comentario Busca y Reemplaza Pega una Funcion Pega una Sentencias Selectiva o Repetitiva

Nota: La mayora de estos botones se utilizan cuando estamos escribiendo las instrucciones, ayudndonos en esta tarea, como por ejemplo: asignar y quitar comentarios, escribir sentencias como If Then, For Next, etc, compilar los programas, es decir verificar si las instrucciones escritas estn correctamente, etc. El orden de los controles permite indicar el orden en el que se selecciona los controles cada vez que se pulsa la tecla Tab. Se recomienda que se enumeren de 10 en 10.

Power Builder 9.0-10.0

13

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

Orden de Tabulacin

Lista de Controles OTROS BOTONES PRINCIPALES DE LOS PAINTER BAR Enva hacia delante Alinea un grupo de Controles Color para el fondo Enva hacia atrs Color para el texto Asigna un Estilo de Borde

La siguiente es la barra de estilo y permite asignar de manera rpida las propiedades mas usadas a los controles.

Esta barra permite asignar el Ttulo del control, el tipo de letra, tamao de letra, negrita, cursiva, subrayado, alineacin a la izquierda, centro y derecha. Las acciones de los botones anteriores tambin se pueden activar usando el Men Principal que contiene nuevas opciones cuando trabaja con ventanas (Windows), entre las que destacan: ELEMENTOS DE LA PROGRAMACION OPERADORES ARITMETICOS Son aquellos que nos permiten ordenarle a la computadora que realice las operaciones matemticas bsicas como suma, resta, multiplicacin, etc. Operador Operacin Ejemplo + Suma 5+3=8 Resta 5-3=2 * Multiplicacin 6 * 2 = 12 / Divisin 7/2 = 3.5 ^ Potencia 3^2 = 9 ORDEN DE PRIORIDAD Es el orden en el cual la computadora ejecuta los operadores: 1. 1. ^ Potencia 2. 2. * y / Multiplicacin y divisin 3. 3. + y - Suma y resta Muy Importante: 1. Si desea alterar el orden de prioridad, debe usar los parntesis los cuales permiten ejecutar primero una operacin:

Power Builder 9.0-10.0

14

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


14 + 6/2 = 17 (14 + 6)/2 = 10 2. Si los operadores tienen la misma prioridad, se ejecutan de derecha a izquierda. Ejemplo: 4 * 6/2 * 7 = 84 2 * 3 ^ (2 + 1) 6/2 + 8 = 59 3 + 5 * ((3 1)^3/2 + 3) * 6/2 * (8/8)^3 (9*3) = 81 NOTA: Antes y despus del operador (resta) debe dejar un espacio en blanco. TIPOS DE VARIABLES: Son los tipos de datos que acepta Power Builder. Bloq: Se utiliza para almacenar textos largos e imgenes. Boolean: Se utiliza para almacenar dos valores: True(Verdad) o False(Falso). Char: Se utiliza para almacenar solo un carcter. Date: Se utiliza para almacenar fechas. DateTime: Se utiliza para almacenar valores que contienen la fecha y hora en un solo campo especialmente desde una base de datos. Ejemplo: DateTime F F = DateTime(Today(), Now()) Dec Decimal: Almacena valores numricos con hasta 18 dgitos decimales. Double: Se utiliza para almacenar valores numricos con hasta 15 dgitos de precisin, el rango de valores que permite almacenar es: 2.2250738585073E-308 Hasta 1.79769313486231E+308 Int Integer: Almacena valores enteros desde: -32768 Hasta +32767 Long: Almacena enteros desde: -2,147,483,648 Hasta +2,147,483,647 Real: Permite almacenar valores numricos con hasta 6 dgitos de precisin. Su rango es: 1.175495E-38 Hasta 3.402822E+38 String: Almacena datos tipo texto con una longitud mxima de 2,147483,647 Time: Almacena una hora desde: 00:00:00 Hasta 23:59:59:999999 UnsignedInteger, UnsignedInt, UInt: Permite almacenar valores enteros sin signo desde 0 Hasta 65,535 UnsignedLong Ulong: Permite almacenar valores enteros sin signo desde 0 hasta 4,294,967,295 DECLARACIN DE VARIABLES Para declarar o definir una variable, debe respetar la siguiente sintaxis: Tipo_de_Variable Nombre_de_ la_Variable Ejemplo Date E Si va a declarar 2 ms variables del mismo tipo lo pueden hacer en una sola lnea separndolas por una coma. Ejemplo Integer A, B, C Al declarar las variables, estn toman un valor determinado: Blob: Toma un valor vaco. Char: Toma el valor ASCII 0 Boolean: Toma el valor FALSE Date: Toma la fecha 01-01-1900 DateTime: Toma la fecha y hora: 01-01-1900 00:00:00 String: Toma como valor una cadena vaca. Time: Toma como valor la hora 00:00:00 Cualquier Numrico (Integer, Decimal, etc): Toma el valor 0. Power Builder permite declarar o definir una variable y asignarle al mismo tiempo un valor. Para ello, debe usar la siguiente sintaxis: Tipo_de_Variable Nombre_de_la_Variable = Valor_Inicial La siguiente instruccin declara la variable H de tipo Bolean con el valor inicial TRUE: Boolean H = True

Power Builder 9.0-10.0

15

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


La siguiente instruccin declara las variables A con el valor 5, B con el valor de 20 y C con el valor 60: Integer A = 5, B = 20, C = 60 DECLARACIN DE CONSTANTES Se diferencia de las variables por que su valor no se puede cambiar durante la ejecucin del programa: La declaracin de constantes es similar a la de variables, solo debe anteponer la palabra Constant y asignar un valor. Constant Tipo Nombre_Constante = Valor Tipo: Es el tipo de informacin que va a almacenar la constante Nombre_Constante: Es la constante que desea utilizar en su programa Valor: Es el valor que debe tener la constante dentro del programa. Ejemplos: La siguiente instruccin declara la constante llamada IGV de tipo Decimal con el valor 18. Constant Decimal IGV = 18 La siguiente instruccin declara la constante llamada CIUDAD de tipo String con el texto Chiclayo. Constant String CIUDAD = Chiclayo Las constantes y variables se pueden utilizar juntas en cualquier programa. Las siguientes instrucciones leen el total de una factura del control Sle_1 y muestran por separado en el St_1 y St_2 el Sub Total y el Igv de la factura: Costant Decimal IGVACTUAL = 18.00 Decimal TotalFactura, SubTotal, IGV TotalFactura = Dec(Sle_1.Text) SubTotal = TotalFactura * 100/(100+IGVACTUAL) IGV = TotalFactura * IGVACTUAL / (100+IGVACTUAL) St_1.Text = String(SubTotal, ###,##0.00) St_2.Text = String(IGV, ###,##0.00) AMBITO DE LAS VARIABLES Se refiere a la parte de nuestra aplicacin donde podemos utilizar las variables que declaramos o definimos y donde el valor de una variable es reconocido. Existen cuatro tipos de variables segn el mbito donde se utilizan: VARIABLES LOCALES Son aquellas que se declaran dentro del cdigo de algn control y es reconocida solo dentro de este modulo de instrucciones. Ejemplo: La siguiente ventana muestra la declaracin de la variable E dentro de las instrucciones del evento Clicked del control Command Button No 1 (cb_1)

Los otros tipos de variables se declaran en la ventana de declaracin de variables. Para ingresar a esta ventana, haga clic en la lista de controles y elija DECLARE luego haga clic en la flecha abajo del tipo de declaracin.

Power Builder 9.0-10.0

16

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

VARIABLES GLOBALES Son aquellas cuyo valor es reconocido en cualquier parte de la aplicacin.

VARIABLE SHARED: Son aquellas cuyo valor es reconocido en cualquier objeto que esta dentro del objeto donde se declara como por ejemplo en una ventana o men. Teniendo como caracterstica principal que su valor lo conserva cuando el objeto donde esta declarado se cierra y se abre.

VARIABLE INSTANCIA: Son aquellas cuyo valor es reconocido en cualquier objeto que esta dentro del objeto donde se declara como por ejemplo en una ventana o men. Tiene como caracterstica principal que su valor NO lo conserva cuando el objeto donde esta declarado se cierra y se abre.

COMENTARIOS: Los comentarios son textos que se pueden utilizar para ir explicando cmo vamos desarrollando nuestro programa y cmo funciona. Power Builder no considera estos textos como instrucciones para la computadora. Para escribir comentarios dentro de un programa se puede utilizar: Doble Slash // Se utiliza cuando el comentario consiste slo en una lnea y se puede escribir antes de la instruccin o al final de ella. Ejemplo: // Declara H de tipo Bolean con el valor TRUE Boolean H = True Boolean H = True // Declara H de tipo Boolean con el valor TRUE Slash y Asterisco /* */
Referencias Bibliogrficas Lecturas Recomendadas Web a visitar Juan Jose castaeda Power Builder 9.0 Jos del carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0

http://www.powerbuilder.org/modules.php?name=Content&pa=showpage&pid=10 http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10

Power Builder 9.0-10.0

17

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

Power Builder 9.0-10.0

18

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N03
Escuela Profesional: Ing. Informtica Turno: Noche Docente: ELVIS GUILLERMO HUARCAYA QUISPE Asignatura: Lenguaje de Programacin Comercial Ciclo: Octavo Fecha: 22-08-2006

MEN INSERT /OBJECT. Insert/Object, que permite dibujar un control en la Ventana.

Desing/Option/Prefixes 1 y 2, que permite indicar el prefijo que va a tener cada control cuando se dibuje en la Ventana.

Desing/Show Invisibles: Permite o no que los controles que tienen en la propiedad visible el valor False se puedan visualizar en la ventana.

DIBUJAR LOS CONTROLES

Power Builder 9.0-10.0

19

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Para dibujar los controles en la ventana, solo debe seleccionarlo de la lista de controles o de la opcin Insert/Object haciendo clic en l y luego clic en la parte de la ventana donde desea dibujarlos. En el siguiente ejemplo, se utilizan los controles bsicos de todo lenguaje visual y que se explican detalladamente ms adelante. Static Text: Que permite mostrar mensajes o resultados en una ventana. Single Line Edit: Que permite ingresar datos al programa. Command Button: Que permiten ejecutar un conjunto de instrucciones

VER LA VISTA PREVIA DE UNA VENTANA Despus de dibujar los controlasen una ventana, usted puede visualizar una vista previa de cmo se observara cuando se ejecute la aplicacin, como por ejemplo su Posicin y tamao. Para ver la vista previa se puede hacer cualquiera de las siguientes acciones: Pulsar las teclas ctrl. + Shift + P Del Men Design elegir Preview Hacer clic en el botn Preview MUY IMPORTANTE Durante la vista previa, Power Builder no reconoce ningn evento, es decir no ejecuta ninguna instruccin. ESCRIBIR LAS INSTRUCCIONES Para escribir o modificar las instrucciones de un control, se debe realizar cualquiera de las siguientes acciones: Hacer doble clic en el control. Hacer clic derecho en el control y elegir la opcin Scrip Seleccionar el control y hacer clic en el botn Script. Botn Script cuando el control no tiene instrucciones. Botn Script cuando el control ya tiene instrucciones. Se visualiza la ventana de Cdigo.

En dicha ventana se aprecia lo siguiente: Nombre del Control Lista de Controles Nombre del Evento Lista de Eventos INSTRUCCIONES BASICAS Open: Abrir o mostrar una ventana: Open(Nombre de la Ventana) Close: Cerrar u ocultar una ventana: Close(Nombre de la Ventana) Halt: Finalizar un Programa: Halt SetFocus: Ubicar el cursor en un control: Nombre del Control.SetFocus() Para limpiar el contenido de un control: Nombre del Control.Text =

Power Builder 9.0-10.0

20

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Instrucciones de la aplication Aplica1 Open(w_notas) MUY IMPORTANTE: Despus de escribir las instrucciones de un control verifique si estan correctas, para ello haga clic en el Botn Compile.
Botn Compile GRABAR UNA VENTANA Para grabar una ventana del Men File elija Save o haga clic en el botn Guardar: Botn Guardar

En la ventana Save Window, debe ingresar el Nombre de la Ventana, Ingresar algn comentario sobre la ventana, asimismo debe seleccionar la librera respectiva. En esta ventana tambin se muestran las ventanas existentes. MUY IMPORTANTE Se recomienda que las ventanas se graben con el prefijo w_, por ejemplo: w_compras, w_informe, w_principal, etc. Para poder identificarlas al visualizar todos los objetos de la aplicacin. Los nombres de las ventanas no pueden tener espacios en blanco, de lo contrario se visualiza un mensaje de error. LOS OBJETOS EN POWER BUILDER 0.9 -10.0 Una aplicacin Power Builder se construye en base a un grupo determinado de objetos del conjunto de objetos principales Power Builder: Application (Objeto aplicacin) Window (Objeto ventana) DataWindows (Objeto DataWindow) Men (Objeto Men) Global Function (Objeto funcin) Query (Objeto Consulta) Structure (Objeto Estructura) User Object (Objeto Definido por el usuario) Project (Objeto proyecto) EVENTOS DE UNA APLICACIN. Los eventos son todos aquellos sucesos que le ocurren a la aplicacin y a los que se puede asignar un script para que se realicen alguna accin cada vez que ocurra el suceso.
EVENTOS PREDEFINIDOS EN POWER BUILDER. EVENTO DESCRIPCIN Close Ocurre cada vez que se termina la ejecucin de una aplicacin. ConnectionBegin Obsoleto (usado para conexiones distribuidas con Power Builder) ConnectionEnd Obsoleto (usado para conexiones distribuidas con Power Builder) Idle Cuando la funcin Idle ha sido llamada en un script de una aplicacin y el nmero de segundos que han transcurrido sin que el teclado o el ratn hayan sido usados. Open Ocurre cada vez que se ejecuta una aplicacin.

Power Builder 9.0-10.0

21

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


SystemError Cuando un error crtico ocurre en tiempo de ejecucin (como tratar de abrir una aplicacin no existente). Si no se pone un script para ste evento Power Builder muestra un mensaje con el nmero de error y mensaje de error que ha ocurrido. Puede usarse para personalizar los errores.

PROPIEDADES DE VENTANA (WINDOWS) Las propiedades de la ventana estn organizadas en forma de FICHAS, aqu la descripcin de sus principales caractersticas:
FICHA General DESCRIPCION La casilla TITLE, indica el texto de ttulo de la ventana. La casilla men Name, indica el nombre del objeto men para la ventana. Window Type, indica el tipo de ventana: Child!, ventana que permanece inserta dentro de una ventana MDI Main!, ventana normal (principal) con posibilidad de men. Mdi!, ventana que posee rea interna para contener otras ventanas. MdiHelp!, igual que la anterior, y sirve como ayuda. Popup!, ventana de contexto o emergente. Response!, necesita cerrar esta ventana para continuar la ejecucin. Permite definir si la ventana tendr barras de desplazamiento, y la unidad a utilizarse por ellas. Permite definir si se utilizar la caja de herramientas definida para el men su presentacin y posicin. Permite indicar la posicin y tamao de la ventana dentro de la pantalla, como ser presentada.

Scroll Toolbar Other

CONTROLES En el painterBar de Window existe el botn que permite elegir a dichos controles y es ste; Muestra el listado de todos los controles que es posible de utilizar . Adicionalmente se pueden disear objetos con caractersticas adicionales para ser utilizadas tambin. Para aadir un control a la ventana, seleccione el control, del listado. Haga click sobre el lugar en la ventana donde desea aadirlo. Para seleccionar un control de la ventana, de click en l, o mantenga presionada la tecla control para seleccionar varios objetos. Puede moverlos arrastrando el mouse.
Los controles son los siguientes : Control Icono CommandButton

PictureButton

CheckBox

Pre Descripcin fijo cb_ Para implementar botones, con los que se inician procesos o por el contrario para terminarlos, cancelarlos o cerrar ventanas. pb_ Botn con imgenes. Tiene casi todas las caractersticas del control anterior, pero adicionalmente permite mostrar una figura dentro de l. cbx Permite hacer una seleccin (marcarlo) entre _ varias alternativas. Cada alternativa es independiente.

Power Builder 9.0-10.0

22

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


RadioButton rb_ Permite hacer una seleccin (marcarlo) entre varias alternativas. Slo una alternativa, del conjunto puede seleccionarse. st_ Caja de texto, como etiqueta. Solo para mostrar informacin, no hay posibilidad que pueda escribirse directamente en ella. shl_ Muestra informacin y adems permite definir una URL para cargar la pgina web que se le indique. p_ Caja de dibujo. Permite visualizar una figura. Esta puede ser definida en tiempo de diseo, puede ser modificada en tiempo de ejecucin. phl Muestra grficos y adems permite definir una _ URL para cargar la pgina web que se le indique. gb_ Se usa para agrupar cualquier grupo de controles, por ejemplo es muy til para agrupar los controles RadioButton y CheckBox. l_ Permite dibujar una lnea. ov_ r_ rr_ Permite dibujar un valo. Permite dibujar un rectngulo. Permite dibujar redondeados. un rectngulo con bordes

StaticText

StaticHyperLink Picture

PictureHyperLink

GroupBox

Line Oval Rectangle RoundRectangle

SingleLineEdit

EditMask

MultiLineEdit

sle_ Caja de edicin de texto, es posible que el usuario en tiempo de ejecucin escriba un texto y se vean slo asteriscos, se usa para el ingreso de claves de acceso (passwords). em_ Caja de texto, a la que se le puede restringir el conjunto de caracteres a ingresar. Permite un formato de presentacin. mle Se usa para ingresar varias lneas en una entrada _ de datos. rte _ hsb _ vsb _ htb _ vtb _ hsb Se usa para mostrar texto enriquecido, es decir texto coloreado, en negritas, itlicas, subrayado, etc. Barra de desplazamiento horizontal. Barra de desplazamiento vertical. Barra de pistas horizontal. Barra de pistas vertical. Barra de progreso horizontal.

RichTextEdit

HScrollBar VscrollBar HtrackBar VtrackBar HprogressBar

Power Builder 9.0-10.0

23

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


VprogressBar DropDownListBox _ vsb _ ddl b_ Barra de progreso vertical.

DropDownPictureLis tBox PictureListBox ListBox

Caja de lista desplegable. Muestra un solo tem, el seleccionado, de la lista que se despliega al presionar el botn adjunto. ddpl Similar al anterior pero soporta figuras por cada b_ elemento que muestra. plb Es una caja de lista con elementos grficos y de _ texto. lb_ Caja de lista. Muestra todos los tems a la vez, pudiendo seleccionarse inclusive, ms de uno. lv_ tv_ Se usa para crear una vista de objetos.

ListView TreeViev

Tab DataWindow Graph Ole

Se usa para crear una vista de tipo rbol, con una raz comn y varios nodos y elementos colgados de dichos nodos. tab Es un separador de pginas que son contenedoras _ de objetos visuales de Power Builder. dw_ Datawindow Control, el que se vincula con un objeto Datawindow diseado. g_ Se usa para crear grficos estadsticos. ole_ Se usa para incorporar objetos de windows de otras aplicaciones distintas al Power Builder. uo_ Se usa para incorporar objetos de usuario creados previamente por alguien usando objetos visuales y objetos no visuales de Power Builder preconstruido.

USerObjetc

DESARROLLO DE APLICACIONES Aplicacin 01 Desarrolle un aplicacin de bienvenida en Power Builder 9.0-10.0 que contenga tres CommanButtom Salir, Cancelar. Aplicacin 02: Desarrolla una aplicacin que permita Mostrar el nombre del usuario y su respectiva clave de acceso. La clave de acceso tendr una longitud de cinco caracteres, se debe mostrar como asterisco, cuando el usuario ingrese algn valor en la caja de texto respectivo y debe asir de la aplicacin cuando se hace tres intentos

Power Builder 9.0-10.0

24

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

PROPIEDADES DISEO : Control Propiedades St_1 Text St_2 Text Sle_1 name Sle_2 name Limit Password Cb_1 name Text Default Enabled Cb_2 name Text ESCRIBIR EL CDIGO DE APLICACIN: Aplicacin Aplicacion02 open

Valor Usuario Contrasea Sle_usuario Sle_contrasea 5 buena(chek) Cb_aceptar &Aceptar buena(Chek) Desactivar Cb_salir &Salir

Windows Sle_usuario

other

Sle_contrasea

other

Cb_aceptar

clickled

Cb_salir

clickled

Power Builder 9.0-10.0

25

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


APLICACIN 03 Realice una aplicacin para sacar el promedio de dos nmeros y mostrar el promedio de los dos adems de implementar los botones de aceptar, salir y Nuevo.

PROPIEDADES DE DISEO:

Cdigo Cb_aceptar

Cliked

double prome prome=(double(sle_1.text)+double(sle_2.text))/2 sle_3.text=string(prome,"###,##00.00")

Aplicacin 04 Realice una aplicacin que permite ingresar el nombre de una persona y en ao que naci. La computadora debe calcular y mostrar la edad de la persona, una observacin que indique si es mayor o menor de edad. Si es mayor de edad debe mostrar hace cuantos aos es mayor de edad y si es menor de edad, se debe indicar cuntos aos le faltan para ser mayor de edad.

Ingrese su Apellido y Nombre Ingrese la fecha de nacimiento

Power Builder 9.0-10.0

26

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


PROPIEDADES DE DISEO

Cb_aceptar

Cliked

Cb_salir

Cliked

Referencias Bibliogrficas Lecturas Recomendadas Web a visitar

Juan Jose castaeda Power Builder 9.0 Jos del carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0

http://www.powerbuilder.org/modules.php?name=Content&pa=showpage&pid=10 http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10

Power Builder 9.0-10.0

27

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N04
Escuela Profesional: Ing. Informtica Turno: Noche Docente: ELVIS GUILLERMO HUARCAYA QUISPE Asignatura: Lenguaje de Programacin Comercial Ciclo: Octavo Fecha: 29-08-2006

LISTBOX - DROPDOWLISTBOX

SEMANA04

Se utilizan con la finalidad de insertar un cuadro de lista o una lista desplegable, en donde el usuario podr seleccionar uno o mas elementos de la lista. Funciones Additem. Permite aadir un nuevo elemento dentro de un cuadro de lista o una lista desplegable. DeleteItem. Permite eliminar el elemento indicado de un cuadro de lista o una lista desplegable Reset. Borra todo los elementos de una lista o una lista desplegable. SelectedIndex. Retorna el nmero del elemento seleccionado de una lista. SelectedItem. Retorna el texto del elemento seleccionado. SelectItem. Retorna el elemento del nmero de elemento indicado. Text. Retorna el texto del elemento seleccionado. Aplicacin 05 Desarrolle un aplicacin que permita elaborar una pro forma de ventas de articulo, se debe de ingresar los datos del cliente en un control Drop DownListBox el distrito donde vive el cliente.

PROPIEDADES DE DISEO

Power Builder 9.0-10.0

28

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Cb_Aceptar Cliked

Cb_Nuevo

Cliked

Cb_Salir

Cliked

CONTROL TAB

Este control contiene una serie de pginas donde cada pgina podr contener a su vez controles Propiedades. Aligment. Especifica la alineacin del texto en la etiqueta de cada pgina: Los valores son : Left!, Center!, Right!. BackColor. Especifica un valor numrico correspondiente al color del fondo. Enabled. Activa o Desactiva el control. Perpendicular Text. Especifica si el titulo de cada pgina se alinear en forma vertical. SelectedTab. Especifica cual de las paginas se encuentra seleccionada. Para insertar mas pginas dentro de este control, ubique el puntero del mouse en la parte superior de este control, realice un click con el botn contrario y seleccione la opcin InsertTabPage. Aplicacin 06 Desarrolle una aplicacin para ingresar los dato de un empleado y mostrar el comentario y la lista en un control tab

Power Builder 9.0-10.0

29

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

pb_Aceptar

Cliked

pb_Limpiar

Cliked

pb_Salir

Cliked

APLICACIN 07 Los empleados de una fabrica trabajan en dos turnos: Diurno y Nocturno, se desea calcular el jornal diario de acuerdo a los siguientes puntos:La tarifa de las horas diurnas es: S/. 3.00 La tarifa de las horas nocturnas es: S/. 4.00 En caso de ser domingo la tarifa aumentar en un S/. 1.00 en el turno diurno y de 1.50 en el turno nocturno. Se debe leer el turno, las horas trabajadas y el da de la semana. A continuacin se aprecia el diseo de la ventana en modo ejecucin.

Power Builder 9.0-10.0

30

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

PROPIEDADES DE DISEO

DECLARAR VARIABLES Y ALMACENAR Si desea escribir varias instrucciones en una sola lnea, debe separarlas por un punto y coma (;) La siguiente instruccin almacena en la variable C el valor 80. Integer A, B, C A = 40; B = 2; C = A * B ALMACENAR VALORES EN VARIABLES La sintaxis mas sencilla para almacenar un valor en una variable es: Nombre_de_la_variable = Valor Ejemplo: Almacena en la variable A el valor 37: A = 37 Si los valores que desea almacenar en una variable han sido ingresados en un control por ejemplo en el Single Line Edit No 1 (Sle_1). Debe seguir la siguiente sintaxis: Nombre_de_la_variable = Tipo_de_Variable(Nombre_del_Control.Text) El tipo de variable depende como se ha definido la variable donde desea almacenar el dato ingresado. El nombre del control es aquel donde se ha ingresado el dato. Por ejemplo: Almacenar en la variable A el nmero de alumnos ingresados en Sle_1 Integer A A = Integer(Sle_1.Text) Almacenar en la variable C el precio de un articulo ingresado en Sle_1 Decimal C C = Dec(Sle_1.Text) Almacenar en la variable F la fecha de nacimiento ingresado en Sle_1 Date F F = Date(Sle_1.Text) Para datos tipo texto, no es necesario indicar el Tipo: String N N = Sle_1.Text MOSTRAR EL CONTENIDO DE VARIABLES Si desea mostrar el contenido de una variable en un control como por ejemplo en un Single Line Edit (Sle) o en un Static Text (St), debe convertirlos a tipo String. Ejemplos: Se tiene en la variable A el nmero de alumnos, mostrar este contenido en el control Static Text No 1: St_1.Text = String(A) Se tiene en la variable C el precio de un articulo, mostrar este contenido en el control Static Text No 1 St_1.Text = String(C) Se tiene en la variable F la fecha de nacimiento de una persona, mostrar este contenido en el control Static Text No 1St_1.Text = String(F)

Power Builder 9.0-10.0

31

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Se tiene en la variable E la edad de una persona. La siguiente instruccin muestra el texto: Usted tiene 34 aos de edad. Integer E E = 34 St_1.Text = Usted tiene + String(C) + aos de edad Para mostrar datos tipo texto, no es necesario indicar el tipo: Se tiene en la variable N el nombre de una persona, mostrar este contenido en el control Static Text No 1: St_1.text = N ASIGNAR FORMATOS DE SALIDA La funcin string tambin permite asignar un formato de salida para los datos a mostrar. Sintaxis para asignar formato a nmeros: String(Variable, Formato1; Formato2; Formato3; Formato4) Variable: Es la que contiene el valor a mostrar Formato1: Es el formato para los valores positivos Formato2: Es el formato para los valores negativos Formato3: Es el formato usado cuando la variable tenga el valor 0 Formato4: Es el formato usado cuando la variable tenga el valor nulo. Ejemplos: Decimal Num Num = 3459.5987 St_1.Text = String(Num, ###,##0.00) Las instrucciones anteriores devuelven: 3,459.60 Decimal Num Num = -753.1 St_1.Text = String(Num, ###,##0.00; (###,##0.00 )) Las instrucciones anteriores devuelven: (753.10) Decimal Num Num = 0 St_1.Text = String(Num, ###,##0.00; (###,##0.00 ); Nada ) Las instrucciones anteriores devuelven la palabra: Nada Decimal Num SetNull(Num) St_1.Text = String(Num, ###,##0.00; (###,##0.00 ); Nada; Sin Valor ) Las instrucciones anteriores devuelven la palabra: Sin Valor Decimal Num Num = 2996 St_1.Text = String(Num, **###,##0.00) Las instrucciones anteriores devuelven: **2,996.00 SINTAXIS PARA ASIGNAR FORMATOS A FECHAS: String(Variable, Formato1; Formato2) Variable: Es la que contiene la fecha a mostrar. Formato1: Es el formato para la fecha. Formato2: Es el formato cuando la fecha tenga el valor nulo. Ejemplos: Date Fecha Fecha = Date(15-03-05) St_1.Text = String(Fecha, mm dd yyyy) Las instrucciones anteriores devuelven: Mar 15 2005

Power Builder 9.0-10.0

32

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Date Fecha Fecha = Date(15-03-05) SetNull(Fecha) St_1.Text = String(Fecha, dd-mm-yy; Sin Fecha ) Las instrucciones anteriores devuelven las palabras Sin Fecha Time Hora Hora = Time(22:28:15) St_1.Text = String(Hora, hh:mm:ss) Las instrucciones anteriores devuelven: 22:28:15 Time Hora Hora = Time(22:28:15) St_1.Text = String(Hora, hh:mm:ss am/pm) Las instrucciones anteriores devuelven: 22:28:15 pm Date Fecha Time Hora Fecha = Today() Hora = Now() St_1.Text = String(DateTime(Fecha, Hora), dd-mm-yyyy hh:mm:ss am/pm) Las instrucciones anteriores devuelven la fecha y hora del sistema como por ejemplo: 15-032002 10:35:14 pm Referencias Bibliogrficas Juan Jose castaeda Power Builder 9.0 Jos del carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0

Lecturas Recomendadas Web a visitar http://www.powerbuilder.org/modules.php?name=Content&pa=showpage&pid=10 http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10

Power Builder 9.0-10.0

33

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N05
Escuela Profesional: Ing. Informtica Turno: Noche Docente: ELVIS GUILLERMO HUARCAYA QUISPE
RADIO BUTTON

Asignatura: Lenguaje de Programacin Comercial Ciclo: Octavo Fecha: 05-09-2006

Permite crear un grupo de opciones en donde solo se podr seleccionar una opcin del grupo. Propiedades Checked. Retorna un valor lgico el cual especifica si el control se encuentra seleccionado o no. Si el valor devuelto es: True: significa que est seleccionado. False: significa que no est seleccionado. Enabled. Especifica un valor lgico, el cual indica si el control est activado o desactivado. True: Control Activado False: Control Desactivado CHECKBOX Permite crear un grupo de opciones las cuales podrn ser activadas o desactivadas. Propiedades Checked. Retorna un valor lgico el cual especifica si el control se encuentra seleccionado o no. Si el valor devuelto es: True: significa que est seleccionado. False: significa que no est seleccionado. Enabled. Especifica un valor lgico, el cual indica si el control est activado o desactivado. True: Control Activado False: Control Desactivado EDIT MASK Cumple la misma funcin que el control SingleLineEdit, con la diferencia de que a este control se le puede definir mascaras de entrada y salida de datos. Propiedades. DisplaOnly. Especifica si el contenido del control podr ser modificado por el usuario. Mask. Permite especificar la mascara que se desea usar para el control. Numeros :# String :@ Date :yyyy/mm/dd MaskDataType. Especifica el tipo de dato para el control, los valores pueden ser: DateMask!, DateTimeMask!, DecimalMask!, NumericMask!, StringMask!, TimeMask! Min. Especifica el valor mnimo que se podr ingresar en el control. Max. Especifica el valor mximo que se podr ingresar en el control. Spin. Especifica si se desea mostrar un scroll de tipo spinner en el control. EVENTOS DE LOS CONTROLES CloseQuery

Power Builder 9.0-10.0

34

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Ocurre cuando la ventana es cerrada. Cuando el usuario cierra la ventana el cdigo escrito en el evento CloseQuery se ejecuta Modified Ocurre cuando el contenido de un control ha cambiado SelectinChange Ocurre cuando un item es seleccionado en un Control Lisbox, Drop DownListBox. Clicked Ocurre cuando se realiza clic sobre un control respectivo. Other Ocurre a una instancia de un control, o Windows Open Ocurre cuando se inicia un control, o una aplicacin. PROPIEDADES DE UN WINDOWS CONTROL HSCROLLBAR, VSCROLLBAR Propiedades de un Windows:

Propiedades de un control Las propiedades de un control varia de acuerdo a la caracterstica del control.

Power Builder 9.0-10.0

35

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


APLICACIN 08 Realice una aplicacin para determinar la talla de tres estudiantes seleccionando con la barra de desplazamiento la talla de cada estudiante

Referencias Bibliogrficas

Juan Jose castaeda Power Builder 9.0 Jos del carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0

Lecturas Recomendadas Web a visitar http://www.powerbuilder.org/modules.php?name=Content&pa=showpage&pid=10 http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10 http://www.librosdigitales.net

Power Builder 9.0-10.0

36

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N06
Escuela Profesional: Ing. Informtica Turno: Noche Docente: ELVIS GUILLERMO HUARCAYA QUISPE Asignatura: Lenguaje de Programacin Comercial Ciclo: Octavo Fecha: 12-09-2006

CONTROL VTRACKBAR, HTRACKBAR APLICACIN 09 Realice una aplicacin para mostrar el valores enteros, de acuerdo a la necesidad del estudiante:

Power Builder 9.0-10.0

37

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Aplicacin 10 La siguiente aplicacin permite ingresar el nombre de un producto, su valor de compra, la utilidad en porcentaje que desea obtener al vender el producto y el descuento que se brinda a los clientes. La computadora debe calcular y mostrar los siguientes datos: Igv (19% de valor de compra), Precio de Compra(Valor de Compra + Igv), Utilidad en soles, Precio sugerido para el pblico (Precio de Compra + Utilidad en Soles), Descuento en soles y Precio del producto con descuento (Precio Pblico Sugerido menos Descuento). Nota: Cree una aplicattion nueva y pongale el nombre: aplica10, y una nueva ventana y grabelo con el nombre w_aplica10

Propiedades de los objetos Objeto Propiedad Window St_1 St_2 St_3 St_4 St_5 Title Text Border BorderStyle Text Border BorderStyle Text Border BorderStyle Text Border BorderStyle Name Text Border BorderStyle Name Text Border BorderStyle Name Text Border

Valor Precio de un producto Nombre del Producto Marcar StyleShadowBox! Valor de Compra Marcar StyleShadowBox! Utilidad % Marcar StyleShadowBox! Descuento al Cliente Marcar StyleShadowBox! st_igv Igv(18%) Marcar StyleShadowBox! st_pc Precio de Compra Marcar StyleShadowBox! st_uti Utilidad Marcar

St_6

St_7

Power Builder 9.0-10.0

38

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


St_8 BorderStyle Name Text Border BorderStyle Name Text Border BorderStyle Name Text Border BorderStyle Name Border BorderStyle MaskDataType Mask Name Border BorderStyle MaskDataType Mask Name Border BorderStyle MaskDataType Mask Name Border BorderStyle MaskDataType Mask Name Text Name Text Name Text StyleShadowBox! st_ps Precio Pblico Sugerido Marcar StyleShadowBox! st_des Descuento Marcar StyleShadowBox! st_pd Precio con Descuento Marcar StyleShadowBox! em_np Marcar StyleLowered! StringMask! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! em_vc Marcar StyleLowered! NumericMask! ###,###.00 em_uti Marcar StyleLowered! NumericMask! ###,###.00 em_dc Marcar StyleLowered! NumericMask! ###,###.00 cb_Nuevo &Nuevo cb_calcular &Calcular cb_Salir &Salir

St_9

St_10

Em_1

Em_2

Em_3

Em_4

Cb_1 Cb_2 Cb_3 Codigo de los Objetos Objeto: cb_nuevo em_np.text = "" em_vc.text = "" em_uti.text = "" em_dc.text = "" st_igv.text = "" st_pc.text = "" st_uti.text = "" st_ps.text = "" st_des.text = "" st_pd.text = "" em_np.setfocus()

Evento: Clicked

Power Builder 9.0-10.0

39

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Objeto: cb_calcular Evento: Clicked /* Definicion de variables ValorCompra = Valor de Compra, PorcUti = Porcentaje Utilidad, PorcDesCli = Porcentaje Descuento Cliente Igv = Igv(18%), PreCompra = Precio de Compra, UtiSoles = Utilidad en Soles, PrePubliSug = Precio Pblico Sugerido Des = Descuento, PreDesc = Precio con Descuento */ real ValorCompra, PorcUti, PorcDesCli, Igv, PreCompra, UtiSoles, PrePubliSug, Des, PreDesc ValorCompra = real(em_vc.text) PorcUti = real(em_uti.text) PorcDesCli = real(em_dc.text) //Obtencin de resultados Igv = (19*ValorCompra)/100 PreCompra = ValorCompra + Igv UtiSoles = (PorcUti*PreCompra)/100 PrePubliSug = PreCompra + UtiSoles Des = (PrePubliSug*PorcDesCli)/100 PreDesc = PrePubliSug - Des // Mostramos los resultados st_igv.text = string(Igv,"###,##0.00") st_pc.text = string(PreCompra,"###,##0.00") st_uti.text = string(UtiSoles,"###,##0.00") st_ps.text = string(PrePubliSug,"###,##0.00") st_des.text = string(Des,"###,##0.00") st_pd.text = string(PreDesc,"###,##0.00") Objeto: cb_Salir Halt Objeto: Precio Open(w_precio) Referencias Bibliogrficas Juan Jose castaeda Power Builder 9.0 Jos del carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0 Evento: Open Evento: Clicked

Lecturas Recomendadas Web a visitar http://www.powerbuilder.org/modules.php?name=Content&pa=showpage&pid=10 http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10 http://www.librosdigitales.net

Power Builder 9.0-10.0

40

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N07
Escuela Profesional: Ing. Informtica Turno: Noche Docente: ELVIS GUILLERMO HUARCAYA QUISPE Asignatura: Lenguaje de Programacin Comercial Ciclo: Octavo Fecha: 19-09-2006

CONTROL -TREE VIEW Este control permite mostrar informacin en forma de rbol jerrquico cada elemento que se muestra con este control consiste en un texto especial y opcionalmente un grfico. Principales propiedades: Edit Label: Permite indicar si el texto de cada elemento que se muestra, se puede modificar durante la ejecucin del programa. Has Button Permite mostrar el signo de + o en cada elemento para poder expandirlo o contraerlo su contenido. Has Line Permite que los sub elementos se muestran unidas con lneas. Delete Items. Permite indicar si el usuario puede borrar los elementos durante la ejecucin del programa. Single Expand Permite que el contenido de un elemento seleccionado se visualice con solo hacer un clic. Sort Type. Permite indicar la forma como se deben ordenar los elementos dentro del control Indent Permite la sangra entre cada nivel de informacin mostrada. Check Boxs. Permite indicar si cada elemento de control debe ir acompaado de una casilla de verificacin

Power Builder 9.0-10.0

41

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Cada elemento de control se enumera de padre a hijo y de arriba hacia abajo el primer elemento tiene el numero 1 (Uno). Software 1 Sistema operativo 3 Windows 7 Unx 8 Programacin 4 Power Builder 9 Java 10 Hardware 2 Internos 5 Disco duro 11 Mainbord 12 externos 6 Funcin INSertItemLAst Es una de las funciones que permite agregar elemento al control tv_1 Su sintaxis es el siguiente: Nombre del control. InsertItemLAst(Numero, Texto, Grfico) Numero Es el numero del elemento (padre) al cual le desea insertar sub elementos (Hijos) Para el primer nivel es cero(0) Texto Es el texto que va mostrar el elemento Grfico Es el numero del grafico que se agreg en la hoja Picture y que desea que le acompae le texto Par que se puede visualizar se puede visualizar desde el evento open de del Windows Instrucciones para incrementar tv_1.insertItemlast(0,"Sofware",1) tv_1.insertItemlast(0,"Hardware",1) tv_1.insertItemlast(1,"Sistema Operativo",3) tv_1.insertItemlast(1,"Programacin",3) tv_1.insertItemlast(2,"Internos",3) tv_1.insertItemlast(2,"Externos",3) tv_1.insertItemlast(3,"Windows",2) tv_1.insertItemlast(3,"UNix",2) tv_1.insertItemlast(4,"Java",7) tv_1.insertItemlast(4,"PowerB.",7) tv_1.insertItemlast(5,"Disco",7) tv_1.insertItemlast(5,"Mainbors",7) FUNCIONES PARA MANIPULAR DATOS DeleteItem Tv_1.DeleteItem(Numero) DeletePicture Tv_1.DeletePicture(Numero) ExpandAll Tv_1.ExpandAll (Nmero de elemento) ExpandItem Tv_1.ExpandItem (Nmero de elemento) FindItem

Power Builder 9.0-10.0

42

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Tv_1.FindItem (Palabraclave, Nmero de elemento) RootTreeItem! Devuelve el numero del primer elemento NextTreeItem! Devuelve el numero siguiente elemento ParentTreeItem! Devuelve el numero del elemento padre ChildTreeItem Devuelve el numero del primer elemento hijo GETITEM Permite leer la informacin Nombre del control.GetItem(Numero de elemento, Variable) Las variables deben ser de tipo Treeview Aqu es donde se almacena la informacin El evento selectionchanged tiene dos parametros OldHAndle contiene le numero de elementos seleccionado NewHAndle que contiene el numero de elemento actual INSERTITEM Nombre del control.InsertItem(Padre, Numero,Texto,Grafico) Tv_1.InsertItem(3,4,Texto,1) Aplicacin 11 Realice la siguiente aplicacin

Codigo de tv_1 long n treeviewitem tvi tv_1.getitem(newhandle, tvi) sle_1.text =string(newhandle) sle_2.text =string(tvi.label) lv_1.deleteItems() choose case newhandle case 3

selectionchangend

Power Builder 9.0-10.0

43

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


lv_1.additem("windows",1) lv_1.additem("UNix",2) case 4 lv_1.additem("java",1) lv_1.additem("Power B.",2) case 5 lv_1.additem("Disco duro",1) lv_1.additem("Mainbord",2) case 6 lv_1.additem("Impresora",1) lv_1.additem("monitor",2) end cose Codigo de Windows //lv_1.view= listviewlargeIcon! lv_1.view= listviewsmallIcon! tv_1.insertItemlast(0,"Sofware",1) tv_1.insertItemlast(0,"Hardware",1) tv_1.insertItemlast(1,"Sistema Operativo",3) tv_1.insertItemlast(1,"Programacin",3) tv_1.insertItemlast(2,"Internos",3) tv_1.insertItemlast(2,"Externos",3) tv_1.insertItemlast(3,"Windows",2) tv_1.insertItemlast(3,"UNix",2) tv_1.insertItemlast(4,"Java",7) tv_1.insertItemlast(4,"PowerB.",7) tv_1.insertItemlast(5,"Disco",7) tv_1.insertItemlast(5,"Mainbors",7) Referencias Bibliogrficas open

Juan Jose castaeda Power Builder 9.0 Jos del Carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0

Lecturas Recomendadas Web a visitar http://www.powerbuilder.org/modules.php?name=Content&pa=showpage&pid=10 http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10 http://www.librosdigitales.net

Power Builder 9.0-10.0

44

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N08
Escuela Profesional: Ing. Informtica Turno: Noche Docente: ELVIS GUILLERMO HUARCAYA QUISPE Asignatura: Lenguaje de Programacin Comercial Ciclo: Octavo Fecha: 26-09-2006

CONTROL -LIST VIEW Para Mostrar en este control puede ser texto o grafico: Sus propiedades: Fixed locatios Indica si el usuario puede arrastrar un elemento que se muestra en este control a un nueva posici. Trabaja junto con la propiedad de AutoDrag Edit labels Indica si el usuario puede modificar el texto de los elementos cuando se ejecuta el programa. Auto arranque Indica si el control cambia en forma automtica a un estado de arrastre cuando se hace clic Aplicacin 12, desarrolle la aplicacin ahora con listview Como se muestra en el grafico:

Power Builder 9.0-10.0

45

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


FUNCIONES EN POWER BUILDER PowerBuilder posee una gran variedad de funciones que permiten al programador desarrollarsus aplicaciones de una manera fcil. FUNCIONES DE CADENA Asc. Obtiene el cdigo ASCCII correspondiente al primer carcter de una cadena. Ejemplo : Asc ("A") Char. Retorna el carcter correspondiente al cdigo ASCII. Ejemplo : Char (42) Fill. Retorna una cadena con una longitud determinada del carcter especificado. Ejemplo : Fill ("*",20) Left. Retorna un nmero especificado de caracteres comenzando por la izquierda. Ejemplo : Left ("Elvis Guillermo",4) LeftTrim. Retorna la misma cadena de caracteres sin los espacios en blanco del lado izquierdo de la cadena Ejemplo : LeftTrim ("Elvis Guillermo ") Len. Retorna la longitud de la cadena. Ejemplo : Longs_nombre s_nombre=Len(sle_Nombres.text) Lower. Retorna una copia de una cadena convertida a minsculas. Ejemplo : Lower("ELVIS GUILLERMO ") Mid. Retorna una cadena que contiene un nmero especificado de caracteres, comenzando de una posicin indicada. Ejemplo : Mid("Elvis Guillermo ",5,5) Pos. Retorna la posicin donde se encuentra una cadena dentro de otra cadena Ejemplo : Pos("Elvis Guillermo ","G") Reverse. Cambia el orden de los caracteres de una cadena. Ejemplo : Reverse ("Elvis Guillermo ") Right. Retorna un nmero especificado de caracteres, comenzando del lado derecho.. Ejemplo : Right ("Elvis Guillermo ",3) RightTrim. Retorna la misma cadena de caracteres sin los espacios en blanco del lado derecho de la cadena Ejemplo : RightTrim ("Elvis Guillermo ") Space. Retorna una cadena de longitud determinada, conteniendo espacios en blanco. Ejemplo : Name = Space (10) Trim. Retorna la misma cadena de caracteres sin los espacios en blanco del lado izquierdo y derecho de la cadena Ejemplo : Trim ("Elvis Guillermo ") Upper. Retorna la misma cadena de caracteres convertidas a letras maysculas. Ejemplo : Upper ("elvis guillermo ") FUNCIONES DE FECHA Day. Retorna el da del mes de una fecha indicada. Ejemplo : Day (1994-01-31) DayName. Retorna el nombre del da de la semana Ejemplo : string dayn Date fecha fecha=Date(em_1.text) dayn=dayName(Fecha) DayNumber. Retorna un nmero que representa el da de la semana. Ejemplo : Integer dayn

Power Builder 9.0-10.0

46

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Date fecha fecha=Date(em_1.text) dayn=dayNumber(Fecha) DaysAfter. Retorna el nmero de das de una fecha despus de la actual. Ejemplo : Integer dayn Date fecha fecha=Date(em_1.text) dayn=daysAfter(2001-02-19,Fecha) Hour. Retorna un entero que corresponde al nmero de horas de una fecha dada. Ejemplo : Integer Hora Hora=Hour(Now()) MessageBox("Hora",Hora) Minute. Retorna un entero que corresponde a los minutos de una hora dada. Ejemplo : Integer Hora Hora=Minute(Now()) Now. Retorna la hora del sistema. Ejemplo : Time Hora Hora=Now() Second. Retorna el numero de segundos de una hora dada. Ejemplo : integer Hora Hora=Second(Now()) Today. Retorna la fecha actual del sistema Ejemplo : Date Fecha Fecha=Today() Year. Retorna el ao de una fecha dada Ejemplo : Integer Ao Ao=Year(Today()) FUNCIONES NUMERICAS Abs. Obtiene el valor absoluto de un numero Ejemplo: i=4 num = Abs(i) num = Abs (4) num = Abs (+4) num = Abs (-4) Abs (-4.2) Esta sentencia retorna 4.2. Ceiling. Obtiene el menor nmero entero que es menor o igual al nmero especificado. Ejemplo: Dec = 4.8 Num = Ceiling (dec) Decimal num Num = ceiling (-4.2) Num = ceiling (-4.8) Esta sentencia retorna -4. Cos. Obtiene el coseno del ngulo debe estar en readianes.

Power Builder 9.0-10.0

47

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Ejemplo: Cos (0) Cos(1) Esta sentencia retorna -1. Cos(pi(1)) Esta sentencia retorna -1. Int. Obtiene el menor nmero entero que es menor o igual al nmero especificado. Ejemplo: Int(3.2) Int(3.8) Int(-3.2) Int(-3.8) La siguiente sentencia retorna -4.0. Max. Retorna el mayor de dos nmeros. Ejemplo: Max (4,7) Max (-4,-7) Esta expresin retorna -4. Min. Retorna el menor de dos nmeros. Ejemplo: Min (4,7) Min (-4,-7) Esta expresin retorna -7. Mod. Obtiene el modulo de dos nmeros (el resultado obtenido de la divisin del primer expresin con el segundo). Ejemplo: Integer Residuo Residuo=Mod(20,6) Pi. Obtiene el valor de Pi Ejemplo: Pi( ) => 3.14159265358979323 Round. Obtiene un nmero redondeado a un nmero decimal elegido Ejemplo: Round (9.625,2) => 9.63 Round (9.6,3) => 9.600 Sign. Obtiene un nmero (-1, 0, o 1) indicando el signo de una expresin Ejemplo: Sign (0) => Retorna 0 por que 0 no tiene signo Sign (9) => Retorna 1 Sign (-9) => Retorna -1 Sqrt. Obtiene la raz cuadrada de un nmero dado. Ejemplo: Sqrt (4) => Retorna 2 Sign (3) => Retorna 1.7320 Truncate. Obtiene un nmero truncado a una determinada expresin decimal. Ejemplo: Truncate (9.22,1) => Retorna 9.2 Truncate (9.9,0) => Retorna 9 FUNCIONES DE CONVERSIN Dec. Convierte el contenido de una cadena a un nmero decimal. Ejemplo : Real Numero Numero=Dec("14.25") Double. Convierte el contenido de una cadena a un nmero doble Ejemplo : Real Numero Numero=Double("14.25") Integer. Convierte el contenido de una cadena a un nmero entero

Power Builder 9.0-10.0

48

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Ejemplo : Integer Numero Numero=Integer("14") Real. Convierte el contenido de una cadena a un nmero real Ejemplo : Real Numero Numero=real("14.25") String. Convierte un nmero a un cadena de caracteres. Ejemplo : String Cadena Cadena=String(14.25) Date. Convierte una cadena a una fecha Ejemplo : Date Fecha Fecha=Date(10-05-2001) VENTANAS La interfaz entre un usuario y la aplicacin. El usuario interacta con la aplicacin en ejecucin a travs de la ventana activa. PROPIEDADES DE VENTANA Las propiedades de la ventana estn organizadas en forma de FICHAS, aqu la descripcin de sus principales caractersticas: FICHA DESCRIPCION General La casilla TITLE, indica el texto de ttulo de la ventana. La casilla men Name, indica el nombre del objeto men para la ventana. Window Type, indica el tipo de ventana: Child!, ventana que permanece inserta dentro de una ventana MDI Main!, ventana normal (principal) con posibilidad de men. Mdi!, ventana que posee rea interna para contener otras ventanas. MdiHelp!, igual que la anterior, y sirve como ayuda. Popup!, ventana de contexto o emergente. Response!, necesita cerrar esta ventana para continuar la ejecucin. Scroll Permite definir si la ventana tendr barras de desplazamiento, y la unidad a utilizarse por ellas. Toolbar Permite definir si se utilizar la caja de herramientas definida para el men su presentacin y posicin. Other Permite indicar la posicin y tamao de la ventana dentro de la pantalla, como ser presentada. FUNCIN MESSAGE BOX MESSAGEBOX Esta funcin permite mostrar una ventana de mensaje para el usuario. Messagebox(Ttulo, Mensaje, Iconos, Botones, Predeterminado) Ttulo: Es el ttulo de la ventana del mensaje Mensaje: Es el mensaje que desea enviar al usuario Iconos: Es una palabra que indica los conos que deben acompaar al mensaje. Question! StopSign! Exclamation! Information! None! Botones: Es una palabra que indica los botones que van a acompaar al mensaje: OK! Muestra el botn aceptar OKCancel! Muestra los botones Aceptar y Cancelar YesNo! Muestra los botones Si y No YesNoCancel! Muestra los botones Si, No y Cancelar

Power Builder 9.0-10.0

49

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


RetryCancel! AbortRetryIgnore! Muestra los botones Reintentar y Cancelar Muestra los botones Anular, Reintentar y Omitir

Predeterminado: Es el nmero de botn que desea seleccionar en forma predeterminada cuando se muestre el mensaje. La funcin MessageBox retorna el nmero 1, 2 o 3 que indica el botn seleccionado por el usuario. Ejemplo: En el botn finalizar, puede escribir las siguientes instrucciones. Integer N N = MessageBox(Confirme,Esta seguro de salir, Question!, YesNo!) If N = 1 Then Halt

Las siguientes instrucciones son similares a las anteriores, se diferencian porque aqu se muestra seleccionado el segundo botn. Integer N N = MessageBox(Confirme,Esta seguro de salir, Question!, YesNo!,2) If N = 1 Then Halt

Las siguientes instrucciones muestran el Icono de Error Crtico y los botones de Reintentar y Cancelar. Integer N N = MessageBox(Verifique,No se puede leer su disco, StopSign!, RetryCancel!)

Referencias Bibliogrficas

Juan Jose castaeda Power Builder 9.0 Jos del Carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0

Lecturas Recomendadas Web a visitar http://www.powerbuilder.org/modules.php?name=Content&pa=showpage&pid=10 http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10 http://www.librosdigitales.net

Power Builder 9.0-10.0

50

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N09-10
Escuela Profesional: Ing. Informtica Turno: Noche Docente: ELVIS GUILLERMO HUARCAYA QUISPE Asignatura: Lenguaje de Programacin Comercial Ciclo: Octavo Fecha: 03-10-2006

SEMANA 09-10 INTRODUCCIN AL DISEO DE MENUS Un men en Power Builder permite seleccionar opciones o acciones de una lista. Una barra de mens es una alternativa para usar estas opciones como si fuesen botones. DISEO DE MENUS Para la aplicacin de un men primero debemos definir las opciones que se debe emplear. Ejemplo realice un men de la siguientes caractersticas:

CREACIN DE MENU Para crear un men ,File, New, PB object, Men

Power Builder 9.0-10.0

51

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Dar un clic en Ok en seguida se observa la siguiente ventana.

Para crear la primera opcin. Del men dar un clic derecho del mouse en: Para insertar elegir del men contextual sub menu item Para insertar sub menu de la mima manera insert submenu item

Propiedades del Men

Power Builder 9.0-10.0

52

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


El diseo final del men es el siguiente:

Guardar el men con las modificaciones correspondientes y con el nombre adecuado. CREAR LA VENTANA PRINCIPAL Se debe de crear un a ventana y cambiar en propiedades WINDOW TYPE a Mdihelp para. Como se muestra en al figura. El cdigo de aplicacin open(w_menu)

CREACIN DE MENU POPUP Para creacin del men se debe de utilizar la funcin Menu Popup SINTAXIS: Menuname.PopMenu(xlocation, ylocation)

Power Builder 9.0-10.0

53

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

El cdigo fuente se realiza en el evento RbuttonDown en el Windows correspondiente. Al ejecutar la aplicacin y dar clic derecho debe de mostrar.

para escribir el cdigo de cada opcin de men. Se realiza en el Script realizando clic derecho en cada opcin y clic n la opcin Script

UTILIZAR EJECUTABLES Permite ejecutar archivos ejecutables: Sintaxis. Run (String {windowsstates}) Ejemplo

Power Builder 9.0-10.0

54

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


ESTRUCTURAS SELECTIVAS DE CONTROL IF THEN Permite indicar una condicin para que se pueda o no ejecutar una o mas instrucciones dentro de un programa. Tiene varias sintaxis: If Condicin Then Instruccin1 Else Instruccin2 1. If Condicin Then : Instruccin(es) (Bloque de instrucciones 1) : Else : Instruccin(es) (Bloque de instrucciones 2) : End If El bloque de instrucciones No 1 slo se ejecuta cuando la respuesta a la condicin es Verdad. El bloque de instrucciones No 2 slo se ejecuta cuando la respuesta a la condicin es Falso. If Condicin No 1 Then : Instruccion(es) (Bloque de instrucciones No 1) : ElseIf Condicin No 2 Then : Instruccion(es) (Bloque de instrucciones No 2) : ElseIf Condicin No 3 Then : Instruccion(es) (Bloque de instrucciones No 3) : ElseIf Condicin No n Then : Instruccion(es) (Bloque de instrucciones No n) : Else : Instruccion(es) (Ultimo Bloque de instrucciones) : End If ElseIf Se puede repetir N veces, segn los requerimientos del programa que usted est desarrollando. El bloque No 1 de instrucciones slo se ejecuta cuando la respuesta a la condicin es Verdad. El bloque No 2 de instrucciones slo se ejecuta cuando la respuesta a la condicin es Verdad. El ltimo bloque de instrucciones slo se ejecuta cuando la respuesta a la condicin No n es Falso. Nota: En las tres sintaxis la palabra else y las instrucciones que contiene son opcionales. CHOOSE CASE Se utiliza el valor de una expresin o una variable para decidir entre una serie de opciones. CHOOSE CASE expresin(X) CASE expresin Bloque de sentencia

Power Builder 9.0-10.0

55

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


CASE expresin Bloque de sentencia CASE expression Bloque de sentencia Case Else END CHOSE DO...LOOP Hay cuatro variantes de la sentencia DO...LOOP. Cada una de estas sentencias DO...LOOP ejecuta un bloque de sentencias hasta que se produzca una condicin de finalizacin Hacer mientras la condicin sea verdadera DO WHILE condicion bloquedesentencias LOOP Hacer hasta que la condicin llegue a ser verdadera. DO UNTIL condicion bloquedesentencias LOOP Repetir mientras la condicin sea verdadera. LOOP WHILE Repetir hasta que la condicin llegue a ser verdadera. DO bloquedesentencias LOOP UNTIL condicin FOR ..... NEXT La Sentencia FOR... NEXT ejecuta un bloque de sentencias en un determinado nmero de veces. Los argumentos que se especifican en la sentencia determina el nmero de veces que se ejecuta el bloque. FOR nomvar = inicial TO final {STEP incremento} bloque de sentencias NEXT PRACTICA CALIFICADA 1. Desarrollar una aplicacin que permita elaborar una proforma de venta de accesorios de cmputo se debe ingresar los datos de cliente y seleccionar en un control ddlb. Mientras que el en ddpb se debe mostrar todo los productos. Se debe mostrar cuanto es su costo y tener en cuenta que algunos productos estn con descuento por promocin 2. Crear una aplicacin para calcular el pago total de los empleados por categoras (contratado y nombrados) que laboran en un compaa, dicha empresa est constituida por reas o departamentos y en cada departamento tiene diferente remuneracin tal como se muestra en la tabla: Administracin s/ 1200.00 Informtica s/ 1000.00 Marketing s/ 900.00 Produccin s/ 800.00 Contabilidad s/ 1000.00 3. Desarrolle una aplicacin que permita calcular los montos de una cabina de locutorio donde se realiza llamadas locales, nacionales, internacionales. para saber el importa total por cada llamada hecha y un comentario que se debe realizar por cada llamada, los precios que se tienes: son los siguientes: En soles

Power Builder 9.0-10.0

56

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Local 0.50 Nacional 1.00 Internacional 2.50 4. Utilice los controles Edit Mask(em), y Tree View(tv) para disear una aplicacin donde se muestra los libros por Categoras, las categoras que se tiene son de: Cursos generales Matemtica Geometra . . . Informtica Base de Datos Lenguaje de Programacin Redes . . Administracin Recursos Gestin Sistmica Sistemologa MSB Dinmica de Sistemas Esa aplicacin nos muestra el valor de cada libro y el ao de publicacin o edicin Referencias Bibliogrficas Juan Jose castaeda Power Builder 9.0 Juan Jose castaeda Full Data Base Jos del Carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0

Lecturas Recomendadas Web a visitar http://www.powerbuilder.org/modules.php?name=Content&pa=showpage&pid=10 http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10 http://www.librosdigitales.net

Power Builder 9.0-10.0

57

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N11
Escuela Profesional: Ing. Informtica Turno: Noche Docente: ELVIS GUILLERMO HUARCAYA QUISPE Asignatura: Lenguaje de Programacin Comercial Ciclo: Octavo Fecha: 17-10-2006

CONCEPTO DE BASE DE DATOS Introduccin: En una empresa, las entidades estn representadas por los operarios, los empleados, los clientes, los proveedores, las facturas. En este tipo de organizacin y otras se ha de trabajar con una gran cantidad de datos, lo cual hace surgir la necesidad de almacenarlos de manera que nos resulten de fcil acceso en cada momento y, por consiguiente, tiles a nuestras actividades. Si por ejemplo cada da debemos gestionar varias decenas de clientes y facturas, utilizaremos un sistema para memorizar los datos como, por ejemplo, un fichero, ms bien antes que recurrir nicamente a la memoria. Las fichas aparecen reagrupadas en archivos, cada uno de los cuales contiene en general las fichas de un slo tipo, las de los proveedores o las de los productos. Este sistema recibe el nombre de base de datos, que no es ninguna otra cosa ms que una coleccin de informaciones tales como el catlogo de los ficheros de una biblioteca, un listado telefnico o una enciclopedia. Este trmino de bases de datos fue escuchado por primera vez en 1963, en un simposio celebrado en california USA. La idea de base de datos surge como una necesidad de mantener datos relacionados. Para entender mejor entendimiento el concepto de Base de datos empezaremos con las definiciones siguientes: Dato: Conjunto de caracteres con algn significado, pueden ser numricos, alfabticos, o alfanumricos. - Informacin: Es un conjunto ordenado de datos los cuales son manejados segn la necesidad del usuario, para que un conjunto de datos pueda ser procesado eficientemente y pueda dar lugar a informacin, primero se debe guardar lgicamente en archivo 1. Definiciones de BD Todas las definiciones coinciden en que es un conjunto de datos almacenados Un conjunto de informacin relacionada que se encuentra agrupada estructurada. Un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos (punto de vista informtico) Coleccin de datos interrelacionados almacenados en conjunto sin redundancias perjudiciales o innecesarias; su finalidad es servir a una o ms aplicaciones de la mejor forma posible; los datos se almacenan de modo que resulten independientes de los programas que los usan; se emplean mtodos bien determinados para incluir nuevos datos y para modificar o extraer los datos almacenados". Martin, 1975. Coleccin integrada y generalizada de datos, estructurada atendiendo a las relaciones naturales de modo que suministre todos los caminos de acceso necesarios a cada unidad de datos con objeto de poder atender todas las necesidades de los diferentes usuarios". Deen, 1985. Coleccin de datos integrados, con redundancia controlada y con una estructura que refleje las interrelaciones y restricciones existentes en el mundo real; los datos, que han de ser compartidos por diferentes usuarios y aplicaciones, deben mantenerse independientes de stas, y su definicin y descripcin, nicas para cada tipo de datos, han de estar almacenadas junto con los mismos. Los procedimientos de actualizacin y -

Power Builder 9.0-10.0

58

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


recuperacin, comunes y bien determinados, habrn de ser capaces de conservar la integridad, seguridad y confidencialidad del conjunto de los datos". A.de Miguel, 1993. Una base de datos consiste en alguna coleccin de datos persistentes e independientes usados por una organizacin determinada." (Date, 1995)

2. Para qu sirve una Base de Datos? Una base de datos permite la realizacin de consultas, informes filtrado de informacin, entre otros. Formatos personalizados Clculos estadsticos Bsquedas de datos Clasificacin Resumen y Reportes impresos Pginas web 2.1. Caractersticas El objetivo de disminuir la redundancia de un conjunto de datos determina dos caractersticas fundamentales que poseer cualquier sistema de Bases de Datos: a) Integrada Una base de datos puede considerarse como una unificacin de varios archivos de datos independientes, donde se elimina parcial o totalmente cualquier redundancia entre los mismos. Ejm: Una BD especfica puede contener registros de ALUMNO, que incluyen el nombre, direccin, telfono, fecha de nacimiento, etc. y, existir registros de INSCRIPCION que representan inscripciones de alumnos en cursos de capacitacin. En el caso de llevar acabo el proceso de administracin de los cursos se necesita conocer la direccin de cada estudiante inscrito, para lo cual, no hay necesidad de incluir este dato (redundante) en los registro de INSCRIPCION, siempre se podra obtener recurriendo a los registros de ALUMNO correspondiente. b) Compartida Las partes individuales de la Base de Datos pueden compartirse entre varios usuarios distintos, en el sentido que cada uno de ellos puede tener acceso a la misma parte de la Base de Datos y utilizarla con propsitos diferentes. Tal comportamiento es en verdad consecuencia del hecho de que la Base de Datos es integrada. En el caso del ejemplo anterior se tiene que los datos de los registros de ALUMNO es compartido por usuarios del departamento de direccin acadmica y asistente social. Lo cual implica que, diferentes usuarios percibirn de modos muy distintos una base de datos. 2.2. Ventajas de las Bases de Datos Referidas a: Los datos

Los resultados

Los usuarios

Independencia de estos respecto de los tratamientos y viceversa Mejor disponibilidad de los mismos Mayor eficiencia en la recogida, codificacin y entrada Mayor coherencia Mayor valor informativo Mejor y ms normalizada documentacin de la informacin Acceso ms rpido y sencillo de los usuarios finales Ms facilidades para compartir los datos por el conjunto de los usuarios Mayor flexibilidad para atender a demandas cambiantes.

Anlisis cuadro anterior

Power Builder 9.0-10.0

59

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

Independencia de los datos respecto a los tratamientos y viceversa: esto supone que un cambio en los tratamientos no imponga un nuevo diseo lgico y/o fsico de la base de datos. Por otro lado, cambios en la incorporacin, desaparicin de datos, cambios en la estructura fsica o caminos de acceso no deben obligar a alterar los programas. As se evita la reprogramacin de las aplicaciones. Mejor disponibilidad de los datos para el conjunto de los usuarios: en una base de datos ningn usuario es propietario de los datos, pues stos se comparten entre las aplicaciones, existiendo una mayor disponibilidad y transparencia. Coherencia de los resultados: debido a que la informacin de la base de datos se recoge y se almacena una sola vez, en todos los tratamientos se utilizan los mismos datos, por lo que los resultados de estos son coherentes y comparables. As, se evitan las divergencias en los resultados. Mayor valor informativo: esto se refiere al concepto de sinergia, en donde el valor informativo del conjunto de datos es superior a la suma del valor informativo de los elementos individuales. Mejor y ms normalizada documentacin: la mayora de los SGBD proporcionan herramientas para reflejar el contenido semntico de los datos, es decir, incluyen una descripcin de los datos dentro del sistema. Mayor eficiencia en la captura, validacin e ingreso de datos al sistema: al no existir redundancias, los datos se capturan y validan una sola vez aumentando el rendimiento del proceso previo al almacenamiento Reduccin del espacio de almacenamiento: por un lado, la disminucin de redundancias y las tcnicas de compactacin hacen que disminuya el espacio en disco. Sin embargo, los diccionarios, referencias, punteros, listas invertidas tambin ocupan espacio.

2.3.

Desventajas de las bases de datos Las desventajas de una base de datos relativas a: La implantacin Los usuarios

Costosa en equipos (lgico y fsico) Ausencia de estndares Larga y difcil puesta en marcha Rentabilidad a mediano plazo Personal especializado Desfase entre teora y prctica

Anlisis del cuadro anterior Instalacin costosa: equipos: nuevas instalaciones o ampliaciones, sistemas operativos, compiladores, SGBD comerciales, computadores ms poderosos, etc. Personal especializado: es clave la administracin de la base de datos, se requiere de conocimientos especficos. Desfase entre teora y prctica: muchos ejecutivos asumen que ciertas funcionalidades son ya un hecho, cuando en realidad son estudios tericos Existe tambin una resistencia al cambio, sobre todo que este involucra a toda la organizacin. En el xito de esto el papel mediador de los profesionales de informtica es fundamental, sobre todo en organizaciones grandes donde una base de datos se puede ver como la centralizacin del poder en manos de unos pocos, generalmente los encargados de su administracin. 2.4.

Componentes de la BD La base de datos El Sistema de Gestin de Bases de Datos (SGBD, DBMS) o motor, tal como Oracle, Sybase, SQL Server, Ms-Acces, etc. Programas de aplicacin (Visual Basic, Visual Fox Pro, Power Builder 9.0, etc.) Un conjunto de usuarios (finales, DBA, programadores de aplicaciones, etc.)

Power Builder 9.0-10.0

60

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Mquinas o PCs Programas utilitarios (generadores de informes, de interfaces, herramientas de desarrollo, de administracin, etc.)

2.5.

Sistemas de Gestin de Base de Datos (SGBD) DBMS: Data Base Management System (Sistema De Manejo De Base De Datos). - Un DBMS consiste de una base de datos y un conjunto de aplicaciones (programas) para tener acceso a ellos. Comunmente, la base de datos contiene informacin interrelacionada y referente a una misma entidad o empresa. - Son un tipo de software muy especfico, dedicado a servir de interfaz entre las bases de datos y las aplicaciones que la utilizan El objetivo primordial de una DBMS es crear un ambiente en el que sea posible almacenar y recuperar informacin en forma eficiente y conveniente. Sistemas de Bases de Datos Lo constituye el SGBD, junto con la base de datos y los usuarios El objetivo principal de un sistema de base de datos es proporcionar a los usuarios finales una visin abstracta de los datos, esto se logra escondiendo ciertos detalles de como se almacenan y mantienen los datos

2.6.

Referencias Bibliogrficas

Juan Jose castaeda Power Builder 9.0 Juan Jose castaeda Full Data Base Jos del Carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0 SQL 2000 La bilia de Sql 200

Lecturas Recomendadas Web a visitar http://www.powerbuilder.org/modules.php?name=Content&pa=showpage&pid=10 http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10 http://www.librosdigitales.net http://www.monografias.com

Power Builder 9.0-10.0

61

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N12
Escuela Profesional: Ing. Informtica Turno: Noche Docente: ELVIS GUILLERMO HUARCAYA QUISPE Asignatura: Lenguaje de Programacin Comercial Ciclo: Octavo Fecha: 24-10-2006

BASE DE DATOS Y SENTENCIAS SQL CURSORES Para entender mejor entendimiento el concepto de Base de datos empezaremos con las definiciones siguientes: - Dato: Conjunto de caracteres con algn significado, pueden ser numricos, alfabticos, o alfanumricos. - Informacin: Es un conjunto ordenado de datos los cuales son manejados segn la necesidad del usuario, para que un conjunto de datos pueda ser procesado eficientemente y pueda dar lugar a informacin, primero se debe guardar lgicamente en archivo Definiciones de BD Todas las definiciones coinciden en que es un conjunto de datos almacenados Un conjunto de informacin relacionada que se encuentra agrupada estructurada. Un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos (punto de vista informtico) Coleccin de datos interrelacionados almacenados en conjunto sin redundancias perjudiciales o innecesarias; su finalidad es servir a una o ms aplicaciones de la mejor forma posible; los datos se almacenan de modo que resulten independientes de los programas que los usan; se emplean mtodos bien determinados para incluir nuevos datos y para modificar o extraer los datos almacenados". Martin, 1975. Coleccin integrada y generalizada de datos, estructurada atendiendo a las relaciones naturales de modo que suministre todos los caminos de acceso necesarios a cada unidad de datos con objeto de poder atender todas las necesidades de los diferentes usuarios". Deen, 1985. Coleccin de datos integrados, con redundancia controlada y con una estructura que refleje las interrelaciones y restricciones existentes en el mundo real; los datos, que han de ser compartidos por diferentes usuarios y aplicaciones, deben mantenerse independientes de stas, y su definicin y descripcin, nicas para cada tipo de datos, han de estar almacenadas junto con los mismos. Los procedimientos de actualizacin y recuperacin, comunes y bien determinados, habrn de ser capaces de conservar la integridad, seguridad y confidencialidad del conjunto de los datos". A.de Miguel, 1993. Una base de datos consiste en alguna coleccin de datos persistentes e independientes usados por una organizacin determinada." (Date, 1995) Para qu sirve una Base de Datos? Una base de datos permite la realizacin de consultas, informes filtrado de informacin, entre otros. Formatos personalizados Clculos estadsticos Bsquedas de datos Clasificacin Resumen y Reportes impresos Pginas web Caractersticas El objetivo de disminuir la redundancia de un conjunto de datos determina dos caractersticas fundamentales que poseer cualquier sistema de Bases de Datos: c) Integrada

Power Builder 9.0-10.0

62

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Una base de datos puede considerarse como una unificacin de varios archivos de datos independientes, donde se elimina parcial o totalmente cualquier redundancia entre los mismos. Compartida Las partes individuales de la Base de Datos pueden compartirse entre varios usuarios distintos, en el sentido que cada uno de ellos puede tener acceso a la misma parte de la Base de Datos y utilizarla con propsitos diferentes. Sistemas de Gestin de Base de Datos (SGBD) DBMS: Data Base Management System (Sistema De Manejo De Base De Datos). - Un DBMS consiste de una base de datos y un conjunto de aplicaciones (programas) para tener acceso a ellos. Comunmente, la base de datos contiene informacin interrelacionada y referente a una misma entidad o empresa. - Son un tipo de software muy especfico, dedicado a servir de interfaz entre las bases de datos y las aplicaciones que la utilizan El objetivo primordial de una DBMS es crear un ambiente en el que sea posible almacenar y recuperar informacin en forma eficiente y conveniente. Fases del diseo de la base de datos El diseo de la Base de datos se descompone en diseo conceptual, diseo lgico y diseo fsico como lo muestra la siguiente Fig.
Mundo real

RECOLECCIN Y ANALISIS DE REQUERIMIENTOS

Requerimientos de la base de datos

DISEO CONCEPTUAL Esquema conceptual en un modelo de datos de alto nivel (por ejemplo: modelo E/R) DISEO LGICO (TRANSFORMACIN DEL MODELO DE DATOS)

Independiente de S.G.B.D.

Esquema lgico (en el modelo de datos de S.G.B.D.)

Especfico para S.G.B.D.

DISEO FSICO

Esquema interno (para el mismo S.G.B.D.) Fig. Enfoque orientado a los datos para el diseo de la BD

a) Recoleccin y anlisis de requerimientos Los diseadores entrevistan a los futuros usuarios de la base de datos para recoger y documentar sus necesidades de informacin. b) Diseo conceptual Parte de la especificacin de todos los requerimientos, el siguiente paso es crear un esquema conceptual para la base de datos mediante un modelo de datos conceptual de alto nivel. El esquema conceptual contiene una descripcin detallada de los

Power Builder 9.0-10.0

63

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


requerimientos de informacin de los usuarios (informacin de la base de datos), y contiene descripciones de los tipos de datos, relaciones entre ellos y restricciones. Para el curso utilizaremos diseo de esquemas conceptuales el modelo E-R (entidad-relacin), que describe los datos cono entidades, vnculos (relaciones) y atributos. c) Diseo lgico de la base de datos (transformacin de modelo de datos) El siguiente paso en el proceso de diseo consiste en implementar de hecho la base de datos con un S.G.B.D. comercial, transformando el modelo conceptual al modelo de datos empleados por el S.G.B.D. (jerrquico, red o relacional). En el desarrollo del curso haremos la implementacin con un S.G.B.D. relacional, por ser el modelo ms utilizado por las empresas en la actualidad. d) Diseo fsico de la base de datos Parte del esquema lgico y da como resultado el esquema fsico. El esquema fsico especifica las estructuras de almacenamiento internas y los mtodos usados para tener un acceso efectivo a los datos. Por esta razn el diseo fsico se adapta a un sistema DBMS especfico. Variables de Transaccin En la introduccin al inicio de este manual, y en la seccin anterior ya se ha abordado el tema de las variables de transaccin; al menos de la que Power builder trae como Default (SQLCA). La Structured Query Language Comunication Area rea de Comunicacin del Lenguaje Estructurado de Consultas-, es suficiente si nuestra aplicacin solo necesita comunicarse con una sola base de datos. En la tabla siguiente se pressentan las propiedades de los objetos de transaccin retornados por la base de datos. ATRIBUTO TIPO DE DATO DESCRIPCIN SqlCode Largo El xito o fallo del cdigo de la operacin SQL ms reciente: 0 = xito 100 = no retorna resultado (ms de un registro) - 1 = Error (se usa SQLDBCode para ver detalles) SqlNRows Largo El nmero de filas afectadas SQLDBCode Largo El codigo de error del vendedor de la base de datos SQLErrText Cadena El menasje de error del vendedor de la base de datos SQLReturnData Cadena El dato de retorno especfico de DBMS Como ya se he dicho si nuestra aplicacin solo necesita conectarse a una base de datos con el Transaction que por defauld rae Power Builder es suciente (=SQLCA); pero en los casos en que sea necesario que nuestras aplicaciones interacten con ms de una base de datos. El caso tpico aqu es el ejemplo de los agentes de ventas; quienes portan su propia base de datos en su PC y al final del da pasan las transaccioes al servidor de la organizacin; aqu se debe (al final del da por ejemplo) estar conectado al mismo tiempo a la base de datos centralizada y la personal. Ya aqu estamos en necesidad de definir al menos una varialble de tranasccin ms aparte del SQLCA. Incluso podemos definir otro transaction diferente si no queremos usar el SQLCA, pero en realidad carece de sentido pues SQLCA trae ya implcito lo necesario para comunicarse con SQL. Ejemplo de conexin desde la aplicacin
/ /Profile Colegio SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False

Power Builder 9.0-10.0

64

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


SQLCA.DBParm = "ConnectString='DSN=colegio;UID=;PWD='" connect; if sqlca.sqlcode = -1 then messagebox("Aviso", "No se pudo Abrir Coneccin") else // messagebox("Importante", "Coneccin Conforme") open(wpasword) end if

sentencias de sql y cursores Clusula Select La clusula select dentro de Power Builder tiene dos formas generales de poder ser usada: 1. Aquella que retorna solo un registro (donde SQLca.SQLCode = 0) 2. Aquella donde se retorna ms de un registro (donde SQLca.SQLCode = 100), a este tipo de select se le considera con el uso de CURSORES Select para un registro para los casos en que se est seguro de que la consulta al modelo de datos no retornar ms de un registro, la sintaxis del script en el PowerScript de PowerBuilder para la consulta ser casi igual a un SQL estandar excepto que cada campo que se retorne se debe descargar en una variable del programa declarada previamente (no se permiten descargas a controles de ventana), dentro de la seccin INTO. A cada variable de descarga se le debe anteponer dos puntos (:). SELECT PARA MS DE UN REGISTRO (CURSORES) en SQL embebido (= incrustado) se producir un error si se tratade recuperar ms de una fila; aun as habr ocaciones que se quiera recuperar muchas filas que cumplan ciertos criterios, para este caso se debe usar un cursor. Un cursor es una tabla temporal que SQL establece en todas las filas que cumplen ciertos criterios, as que se puede acceder a esas filas de una en una. Uso de cursores El mandato declare: antes de usar un cursor, primero hay declararlo con el mandato DECLARE Ejemplo: declare cursor_name La clasula select: una ves declarado lo que sigue es la clasula select que se apoye en el select incluida la sentencia que determina cul transaction se usa. Ejemplo: cursor for select_statement using transaction; El mandato open: ahora lo que falta es solo abrir su posterior uso Ejemplo: open cursor_name; El mandato Fetch: despus de abierto el cursor hay que traer (= fetch) cada fila. Fetch es quien permite procesar cada fila, para ahora s por cada fila descargar los campos que haya recuperado la instruccin select. Al igual que el select para un solo registro se debe descargar cada campo en una variable de progama anteponindole a este dos puntos (:). Ejemplo: fetch cursor name Into host_variable_list; El mandato clase: el ltimo paso de uso de un cursor es cerrarlo. El cierre de un cursor libera la memoria usada por las tablas temporales y permite reabrir el cursor bajo nuevos criterios de seleccin

Power Builder 9.0-10.0

65

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


EJEMPLOS CON SENTENCIA: En la aplicacin;

En el Windows w_acceso

El cdigo fuente para Aceptar con instrucciones SQL


// Variables a usar String l_Usuario, l_Clave, ls_PassBD // ingresados por el usuario y es asigando l_Usuario = UPPER(em_Usuario.Text) l_Clave = UPPER(sle_Clave.Text) // Buscar la Clave almacenada en la tabla y la // guardamos en la variable local ls_PassBD SELECT password INTO :ls_PassBD FROM Empleado WHERE Usuario = :l_Usuario; // Verificamos si fueron bien ingresados // el Empleado y la clave del mismo. IF SQLCA.SQLCode = 0 THEN // Usuario Encontrado, verificar si el password // ingresada le corresponde IF ls_Clave = UPPER(ls_PassBD) THEN Open(w_Principal) // Window Principal del Tipo MDI Close(Parent)// Cierra la ventana w_Aceeso ELSE MessageBox("Atencin", "Clave Incorrecta") sle_Clave.SetFocus() END IF ELSE MessageBox("Atencin", "Usuario No Autorizado")

Power Builder 9.0-10.0

66

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


em_Usuario.SetFocus() END IF UTILIZANDO CURSORES Ejemplo:

Para ello debemos de ejecutar primero un curso ESTRUCTURA DE UN CURSOR declare login cursor for select distinct usuario from empleado; open login; fetch login into :user; EJEMPLO PARA LLENAR LOS DATOS DE LA TABLA EN EL DDLB string user declare login cursor for select distinct usuario from empleado; open login; fetch login into :user; Do while sqlca.sqlcode <>100 ddlb_usuario.additem(user) fetch login into :user; loop close login; Cb_ aceptar String usuarioingresado, contraseaingresada,contraseaBD,tipousuario usuarioingresado = UPPER(ddlb_usuario.text) contraseaingresada= UPPER(sle_contra.Text) SELECT password INTO :contraseaBD FROM Empleado WHERE usuario =:usuarioingresado; IF contraseaingresada= UPPER(contraseaBD) THEN SELECT usuario INTO :tipusuario FROM Empleado WHERE usuario =:usuarioingresado; If UPPER(tipusuario) =ADMINISTRADOR() open(w_principal) close(parent) Else open(w_principal) close(parent) mnu_principal.m_mantenimiento.visible=false mnu_principal.m_proceso.visible=false

Power Builder 9.0-10.0

67

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


mnu_principal.m_consulta.visible=false mnu_principal.m_reporte.m_listado.enabled=false mnu_principal.m_reporte.m_informes.m_productosmasvendidos.enabled=false mnu_principal.m_reporte.m_informes.m_productosmenosvendidos.enabled=false end if SENTENCIAS PARA GRABAR ELIMINAR

Cb_Grabar

Evento Clicked

date ven ven= date(Em_1.Text) Insert Into articulos Values (:Sle_1.Text,:Sle_2.Text,:Ddlb_1.Text,:Sle_3.Text,:Sle_4.Text,:ven); /*if sqlca.sqlcode=0 then MessageBox ("se grabara","el dato") end if */ if SQLCA.SQLCODE = -1 Then MessageBox ("Imposible Grabar","Hay un error en los Datos") Else //Recupera los registros del Dw_1 para ver el nuevo Artculo. Dw_1.Retrieve() //Limpia los controles para ingresar otro Artculo Sle_1.Text="" Sle_2.Text="" Ddlb_1.Text="" Sle_3.Text="" Sle_4.Text="" Em_1.Text="" Sle_1.SetFocus() //dw_1.update() End If Eliminar Integer R R=MessageBox ("Confirme","Desea eliminar este artculo",Question!,Yesno!) If R=1 Then Delete From Articulos Where Codigo=:Sle_1.Text; Commit; Dw_1.Retrieve()

Power Builder 9.0-10.0

68

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


End If

Controles de ventana y sus prefijos Control Command Button Picture Button Check box Radio Button Static Text Picture Group Box Line Oval Rectangle Round Rectangle Single Line Edit Edit Mask Multi Line Edit Rich Text Edit Hscroll bar Vscroll bar DropDown List Box DropDown Picture List Box List Box List View Tree View Tab Data Window Graph OLE User Object Window Prefijo Cb_ Pb_ Cbx_ Rb_ St_ P_ Gb_ Ln_ Oval_ R_ Rr_ Sle_ Em_ Mle Rte_ Hsb_ Vsb_ Ddlb_ Ddplb_ Lb_ Lv_ Tv_ Tab_ Dw_ Gr_ Ole_ Uo_ W_

Power Builder 9.0-10.0

69

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N13
Escuela Profesional: Ing. Informtica Turno: Noche Docente: ELVIS GUILLERMO HUARCAYA QUISPE Asignatura: Lenguaje de Programacin Comercial Ciclo: Octavo Fecha: 31-10-2006

DISEO DE BASE DE DATOS EN POWER BUILDER CREACIN DE BASE DE DATOS Existe dos formas para crear una base de datos 1 forma : dar un clic en 2 forma es ingresar desde File , new, database

Clic en OK, para ingresar a:

A continuacin debe hacer clic en OBD ODBC. Clic en Utilities Para visualizar el siguiente Grafico:

Power Builder 9.0-10.0

70

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

Realice clic en Create ASA Database, se mostrara la siguiente ventana:

Realice Click en el siguiente Icono Para mostrar la ventana:

Busca la unidad o la carpeta donde desea guardar la base de datos, Ingrese el nombre de la base de datos en Nombre de archivo

Power Builder 9.0-10.0

71

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Realice clic en el botn Guardar

Se mostrara la siguiente ventana

Realice clic en OK A continuacin se mostrara en el Database Painter

Base de datos Factura

MENU Y CONEXIN CON BASE DE DATOS Un men es un objeto visual de Power Builder, un men permite al usuario seleccionar opciones o acciones de una lista . una barra de mens es una alternativa para usar estas opciones como si fuesen botones. Los partes de un Men son los Siguientes: Ver grfico

Power Builder 9.0-10.0

72

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

TREE MENU VIEW SYSTEM TREE

WYSIWYG MENU VIEW

P R O P I E D A D E S

CODIGO

Para el uso de un Windows y un men se debe de crear primero una base de datos Ejemplo: Para el ejemplo correspondiente se debe tener en cuenta en crea un tabla desde el Data Painters Ejemplo Se crea un tabla tabUsuarios con los siguientes campos

A continuacin debe ingresar los datos en dicha tabla de acuerdo a los usuarios.

Se debe de crear una aplicacin, Windows, y un men.

Power Builder 9.0-10.0

73

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Adems se debe conectar la base de datos que se utilizara

El cdigo fuente debe ser lo siguiente En la aplicacin;

En el Windows w_acceso

El cdigo fuente para Aceptar con instrucciones SQL // Variables a usar String ls_Usuario, ls_Clave, ls_Clave_BD // Capturar a variables los datos // ingresados por el usuario ls_Usuario = UPPER(em_Usuario.Text) ls_Clave = UPPER(sle_Clave.Text) // Buscar la Clave almacenada en la tabla y la // guardamos en la variable local ls_Clave_BD SELECT Usr_Clave INTO :ls_Clave_BD FROM TabUsuarios WHERE Usr_Login = :ls_Usuario;

Power Builder 9.0-10.0

74

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


// Verificamos si fueron bien ingresados // el usuario y la clave del mismo. IF SQLCA.SQLCode = 0 THEN // Usuario Encontrado, verificar si la clave // ingresada le corresponde IF ls_Clave = UPPER(ls_Clave_BD) THEN // Inicia la aplicacin Open(w_Principal) // Window Type: MDI Help Close(Parent) // Cierra la ventana w_Aceeso ELSE // Mensaje: Clave Incorrecta MessageBox("Atencin", "Clave Incorrecta") // Dar el foco de edicin al control donde // se ingresa la clave para su correccin sle_Clave.SetFocus() END IF ELSE // Mensaje: Si el usuario no fue encontrado MessageBox("Atencin", "Usuario No Autorizado") // Dar el foco de edicin al control donde // se ingresa el usuario para su correccin em_Usuario.SetFocus() END IF Si se ingreso la contrasea correcta Se mostrara el men correspondiente

CONEXIN DE BASE DE DATOS POWER BUILDER MICROSOFT ACCES, SQL Para la conexin de una base de datos se debe de realizar los siguientes pasos. Clic en el icono

Para la conexin realice un clic en Utilities Despus en ODBC Administrator

Power Builder 9.0-10.0

75

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

Visualizara la siguientes ventana

Clic en Add

Seleccione Microsoft Acces Driver (*. mdb) Click en Finalizar Visualizara la siguiente ventana. Escriba en nombre del Data Sourcr Name

Power Builder 9.0-10.0

76

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Tienda Descripcin En el botn Select Seleccione la base de datos para conectar

Se visualizara la siguiente ventana.

Ahora para realizar la visualizacin de la base de dato Haga clic DERECHO EN ODB ODBC en POWER BUILDER, se visualizara la ventana m

Se visualizara la ventana:

Power Builder 9.0-10.0

77

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Donde se pone en Prolife Name El nombre de la base de datos En Data Sourse Se busca Tienda

click en boton ok y se visualiza

CONEXIN ODBC SQL Si tiene una base de batos en Slq tambin lo puedes administrar desde Power Builder Para ello se debe tener las siguientes consideraciones o pasos: En DSN(ODBC) de Sistema (Para que todos los usuarios lo puedan ver) Luego dar clic en Agregar(add)

Power Builder 9.0-10.0

78

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

NOTA: Para crear el ODBC de SQL debes de tener funcionando tu servidor de SQL Para visualizar el siguiente ventana Dar un doble clic en SQL Server Luego das clic en el botn Finalizar

Se visualiza la siguiente ventana:

Power Builder 9.0-10.0

79

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Aparecer la ventana que se muestra en la siguiente pgina. En Nombre le das el nombre a tu origen de datos. El nombre que deseas para la conexin Ejemplo: Biblioteca En Descripcin si quieres agregarla alguna descripcin. Ejemplo: Este ODBC conecta la base de datos de SQL llamada Biblioteca En donde dice Servidor seleccionas el servidor de SQL al cual deseas conectarte. Automticamente aparecern los servidores disponibles. En caso de tener el servidor de SQL en otra computadora, las computadoras debern estar conectadas en red y el servidor de SQL de la mquina Servidor deber estar funcionando. Ejemplo: El nombre de mi servidor de SQL es PC0, pero de caso contrario si la base de datos esta en la computadora selecciona local Luego das clic en siguiente. Y se mostrara la siguiente ventana
Para el ejemplo podemos seleccionar . Con

autentificacin de Window NT

Con autentificacin de Window NT

Este formato se mostrara deshabilitado si seleccionamos

Para el ejemplo hemos seleccionado la opcin con la: Autentificacin de SQL Server y el Id de Inicio de sesin : sa y la contrasea que lo hemos asignado y con lo que hemos conectado a SQL. Para luego visual la siguiente ventana: Despus se mostrara la siguiente ventana:
activar con un check y buscar Biblioteca

Power Builder 9.0-10.0

80

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

Luego de dar clic en el siguiente se mostrara: La ventana siguiente:

Podemos establecer en idioma para los mensajes, ejemplo spanish

Despus hacer clic en siguiente se mostrara la ventan siguiente con las caractersticas de la conexin creada y haga clic en el botn aceptar

Para comprobar la conexin correcta haga Probar origen de datos

Power Builder 9.0-10.0

81

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

Despus de crear la conexin ODBC Se creara un nuevo new profile

Y realizar los pasos que se tiene en Power Builder para conectar una base de datos. Referencias Bibliogrficas Juan Jose castaeda Power Builder 9.0 Juan Jose castaeda Full Data Base Jos del Carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0 SQL 2000 La bilia de Sql 200

Lecturas Recomendadas Web a visitar http://www.powerbuilder.org/modules.php?name=Content&pa=showpage&pid=10 http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10 http://www.librosdigitales.net http://www.monografias.com Tutorial de oracle 9i http://www.solotutoriales.com/visitar.asp?id=5414

Power Builder 9.0-10.0

82

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N14
Escuela Profesional: Ing. Informtica Turno: Noche Docente: ELVIS GUILLERMO HUARCAYA QUISPE Asignatura: Lenguaje de Programacin Comercial Ciclo: Octavo Fecha: 07-11-2006

CONEXIN POWER BUILDER CON SQL y CONEXIN DE UN DATAWINDOWS A UN BASE DE DATOS CONEXIN POWER BUILDER CON SQL Existe otra forma de conectar tambin en Power Builder, para ello se debe de seguir los siguientes pasos: 1.-

Click

2.-

Nombre del profile Nombre del servidor Usuario de servidor de bd Password Nombre de Bd

Power Builder 9.0-10.0

83

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial 3.- Click en la opcin preview

Click

4.- abrir la aplicacin Y pegar ctrl. + v

Password del usuario de la bd

Power Builder 9.0-10.0

84

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


CONEXIN DE UN DATAWINDOWS A UN BASE DE DATOS Datawindows El DW es considerado el objeto mas importante de PowerBuilder, ya que es el que facilita en gran medida el trabajo involucrado en conectividad y actualizacin de bases de datos usando poco cdigo.
Ventana Control DW (se guarda con la ventana) Objeto DW (se guarda por separado)

FUNCIONES PRINCIPALES DE DATAWINDOWS SetTransObject Hace que un control DataWindow use un objeto de transaccin especificado por el programador. El objeto de transaccin proporciona la informacin nesecesaria para comunicarse con la Base de Datos. Retorna -1 si ha ocurrido un error. Sintaxis Dwn. Settransobject(Transaccin)
Argument Dwn Transaccin Description El nombre del Control data window, con el cual se desea usar un objeto de transaccin. Nombre del Objeto de transaccin, por defecto es SQLCA.

RDBMS

Generalmente se establece el objeto de transaccin en el evento Open de la ventana que contiene el control DataWindow. En resumen el SettransObject(SQLCA) asocia el objeto transacin con el control DataWindow. Ejemplo: DwnSoftware.settransobject(SQLCA) InsertRow Sintaxis Dwn.InsertRow(fila)
Argument Dwn Fila Descripcin El nombre del control DataWindow en el cual se desea insertar una fila. Un entero Largo (long) que identifica la fila antes de la cual desea insertar una fila nueva. Si el valor es cero insertar al final de la tabla.

Ejemplo: DwnSoftware.InsertRow(0) Retrieve() Recupera todas las filas de una tabla de la BDD en un control DataWindow, Si incluyen argumentos, estos son usados por los argumentos de recuperacion de la sentencia SQL SELECT del objeto DataWindow. Retorna el nmero de filas recuperadas, -1 si ocurre un error. Sintaxis Dwn.Retrieve({Arg1, Arg2,}) Argument Descripcin Arg1, Arg2 Argumentos de recuperacion, de la tabla de BDD Ejemplo: DwnSoftware.Retrieve(C001) SetRowFocusIndicator Especifica el indicador visual que identifica la fila actual en un control DataWindow. Sintaxis Dwn.SetRowFocusIndicator (Indicador) Indicador El indicador visual para la fila actual, los valores validos son
Off! FocusRect! Sin indicador. Un rectngulo de puntos alrededor de la fila.

Power Builder 9.0-10.0

85

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Hand! Un dedo ndice. El nombre de un Picture Control.

SelectRow Selecciona la fila especificada en el control de un DataWindows. Sintaxis Dwn.SelectRow (Fila, Boolean) Ejemplo: DwnSoftware.SelectRow(0,False) // desactiva la fila anterior DwnSoftware.SelectRow(15,true) // resalta toda la fila 15 SetItem Establece el valor en una fila y columna especificada, un valor dentro del datawindow, retorna 1 si ocurre un error. Sintaxis DwnSoftware.Setitem (Fila, columna/campo, valor) Ejemplo: Dwn.SetItem(5, "sueldo",670) En la fila 5, en el campo sueldo se asigna 670. Tambin en vez del nombre de campo, puede ser el nmero de campo de acuerdo como ha sido seleccionado en el objeto DataWindow. GetItemString Obtiene datos de tipo cadena de un buffer especificado de un control DataWindow. SintaxisDwn.GetitemString (Fila, Columna) Ejemplo String cad Cad=DwnSoftware.GetItemString(3, "sfw_Nombre") Extrae el dato que se encuentra en el campo sfw_nombre, en la fila 3, dependiendo del tipo de dato que se va extraer tenemos:
Dwn.GetitemNumber (Fila, columna) Dwn.GetitemDecimal (Fila, columna) Dwn.GetitemDate (Fila, columna) Dwn.GetitemTime (Fila, columna) Dwn.GetitemDateTime (Fila, columna) Cuando el campo es de manera general numrico, puede ser real o entero. Cuando el dato a extraer es exclusivamente decimal o real. Si el campo es de tipo fecha. Si el campo es de tipo hora. Cuando el campo es de tipo fecha y hora.

Ejemlo: Capturar en variables, sueldo del empleado, su edad y fecha de nacimiento del empleado, cuya posicin se encuentre en la fila nmero 3. Int edad Dec Sbas Date Fenac Edad= DwnEmpleado.GetItemNumber(3,"emp_Edad") Sbas= DwnEmpleado.GetItemDecimal(3, "emp_Sbas") Fenac=DwnEmpleado.GetItemDate(3,"emp_Fenac") Nombre del campos en la tabla Gettext Obtiene el valor de un control de edicin en la fila y columna actuales, antes que este sea aceptado.
Sintaxis dwn.Gettext ()

Por ejemplo si este radio button se encuentra dentro del DataWindow, y al seleccionar una de estas opciones se desea saber su valor seleccionado basta emplear: String Tmoneda Tmoneda = DwnSalario.Gettext()

Power Builder 9.0-10.0

86

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Setsort Especifica, el criterio de ordenamiento para un DataWindow, retorna 1 si tuvo xito y -1 si se encontro un error. SintaxisDwn.SetSort (campo1 [A|D]) Ejemplo: DwnEmpleado.setsort() Dwn.Sort() Ejecuta la clasificacin con un previo criterio de seleccin SintaxisDwn.Sort () Ejemplo: DwnEmpleado.SetSort("emp_ape A, #2 D") // ordena apellido y sueldo asumiendo // que el #2 sea el campo sueldo. DwnEmpleado.Sort() // Procede al ordenamiento. GetRow Retorna el nmero de la fila actual de un DataWindow, como un valor Long, Retorna 0 si no hay fila activa y -1 si se ha producido un error grave. SintaxisDwn.GetRow () SetRow Establece la fila deseada, mueve el cursor a la fila especificada, pero no hace Scroll en el DataWindow. SintaxisDwn.SetRow (Fila) ScrollToRow Hace un Scroll en un DataWindow, hasta alcanzar la fila especificada. ScrollToRow cambia la fila actual pero no la columna actual. Retorna 1 si hubo xito, -1 en caso contrario. Scrolltorow no ilumina la fila a la cual se hace scroll. Sintaxis Dwn.ScrolltoRow(fila) Si la fila toma un valor mayor que el nmero total de la fila, se hace scroll a la ltima fila. RowCount Obtiene el nmero de filas que se encuentran disponibles en un DataWindow Sintaxis Dwn.RowCount() ScrollToPriorRow Se desliza a la fila previa, sin cambiar la columna activa Sintaxis Dwn.ScrollPriorRow(fila) ScrollNextRow Se desliza a la siguiente fila. Sintaxis Dn.ScrollNextRow(fila) DeleteRow Suprime la fila especificada del control DataWindow, se actualiza directamente la tabla enlazada al control. Sintaxis Dwn.DeleteRow(fila) Si la fila es igual a cero, elimina la fila activa donde se encuentra el puntero, cada vez que se emplee esta sentencia, se tiene que actualizar el DataWindow ejemplo: Dwn.deleteRow(8) // elimina la fila nmero 8 Dwn.Update() // actualiza la base de datos enlazada DeletedCount Retorna el nmero de filas que hayan sido suprimidas desde el control DataWindow pero que todavia no hayan sido actualizadas en la tabla de la BDD asociada. SintaxisDwn.DeletedCount() Ejemplo: Long Nf Nf=Dwn.DeletedCount() Update

Power Builder 9.0-10.0

87

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Se envia a la base de datos todas las inserciones, eliminaciones y actualizaciones del control DataWindow, retorna 1 si tuvo xito, -1 si ocurrio un error. Sintaxis Dwn.Update() CREACIN DE DATAWINDOWS Para una conexin de base de datos primero se debe de conectar la base de datos y Crear un dataWindows Para ello los pasos son iguales que un Windows, pero se debe de buscar la opcin Datawindows tal como se muestra en la figura. Y luego el tipo de data Windows; para nuestro ejemplo seleccione la opcin Freeform.

UNA VEZ CREADO EL DATAWINDOWS Se creara un un windows con el control datawindow(dw_1) Como se muestra en la figura:

Para luego realizar la conexin de Windows con el data Windows: de la siguiente manera

Una vez dado las propiedades

Power Builder 9.0-10.0

88

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Ahora se tendr que escribir el cdigo Fuente en la aplicacin y en el windows: APLICACIN UTILIZANDO BD BDCOMUNIDAD Data_ Aplica open // Profile Comunidad SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=Comunidad;UID=;PWD='" connect; if Sqlca.Sqlcode<>0 then //MessageBox("Error de conexin"+ "error")//String(Sqlca.SQLCode),Sqlca.ErrText) return else messageBox("Clientes", "conexcin conforme") open(w_prueba) end if a continuacin en el Windows W_prueba open dw_contrato.SettransObject(sqlca) dw_contrato.Retrieve() cb_salir Clicked close(w_prueba) Ejecuta de la siguiente:

Y a continuacin: Se mostrara la siguiente aplicacin:

EJEMLO DE UN WINDOWS DE DESPLAZAMIENTO: Para desarrollar consultas y actualizaciones ese debe tener: Una base de datos

Power Builder 9.0-10.0

89

Elvis G. Huarcaya Quispe

Tablas Datawindows Se utiliza las siguientes funcione para el desarrollo de la aplicacin: ScrollNextRow Esta funcin permite avanzar el siguiente registro en un datawindows ScrollPriorRow Esta funcin permite ir al registro anterior en un datawindows RowCount Funcin que permite obtener la cantidad de registros que contiene un datawindows ScrollToRow() Esta funcin permite ir a cualquier registro de un Datawindows GetRow Devuelve el nmero de registro actual, es decir el numero de registro que se esta visualizando. Ejemplo: El siguiente Windows visualiza los registros.

Lenguaje de Programacin Comercial

Cdigo fuente de la aplicacin Cb_inicio evento clicked dw_1.ScrollToRow(1) cb_inicio.enabled=false cb_anterior.enabled=false cb_siguiente.enabled=true cb_ultimo.enabled=true Cb_anterior evento clicked int nrow nrow=dw_1.getRow() if nrow>1 then cb_inicio.enabled=true cb_anterior.enabled=true cb_siguiente.enabled=true cb_ultimo.enabled=true dw_1.ScrollPriorRow() else cb_inicio.enabled=false cb_anterior.enabled=false end if Cb_siguiente evento clicked int nrow, nrorow nrorow=dw_1.RowCount() nrow=dw_1.GetRow()

Power Builder 9.0-10.0

90

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


if nrow<nrorow then cb_inicio.enabled=true cb_anterior.enabled=true cb_siguiente.enabled=true cb_ultimo.enabled=true dw_1.ScrollNextRow() else cb_ultimo.enabled=false cb_siguiente.enabled=false end if Cb_ultimo evento clicked int nrorow nrorow=dw_1.RowCount() dw_1.ScrollToRow(nrorow) cb_inicio.enabled=true cb_anterior.enabled=true cb_siguiente.enabled=false cb_ultimo.enabled=false ACTUALIZACIN DE BASE DE DATOS Para actualizar base de datos se debe eliminar, guardar, editar, insertar registros El programa nos permite actualizar la tabla Funciones que se utiliza en el desarrollo del ejemoplo: InsertRow() Esta funcin nos permite insertar un registro en blanco en un Datawindows devolviendo el numero de registros insertado. Generalmente se utiliza el como argumento el numero (0) para insertar un registro al final y la funcin ScrollToRow para ubicarse ene le registro insertado. nFila=dw_1.InsertRow(0) dw_1.ScrollToRow(nFila) Update() Esta funcin nos permite grabar un Nuevo registro o las modificaciones realizadas en una de ellas. dw_1.Update() Retrieve () Esta funcin nos permite ignorar las modificaciones o para grabar un nuevo registro, realizadas en alguna de ellas. dw_1.Retrieve() DeleteRow() Esta funcin nos permite eliminar un registro de un Datawindows. dw_1.DeleteRow(0) Despus de eliminar un registro debe actualizar el datawindows utilizando la funcin update dw_1.Update() Commit; Permite la actualizacin de la base de datos y no permite deshacer los cambios realizados Rollback; Cancela todas la operaciones realizadas sobre la base de datos. Ejemplo:

Power Builder 9.0-10.0

91

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Cb_insertar evento: Clicked Integer nfila dw_1.Enabled=true cb_insertar.Enabled=false cb_editar.Enabled=false cb_eliminar.Enabled=false cb_grabar.Enabled=true nFila=dw_1.InsertRow(0) dw_1.ScrollToRow(nFila) dw_1.SetFocus() Cb_editar evento: Clicked dw_1.Enabled=True dw_1.SetFocus() cb_insertar.Enabled=False cb_editar.Enabled=False cb_eliminar.Enabled=False cb_grabar.Enabled=True Cb_grabar evento: Clicked Integer nRet cb_grabar.Enabled=False cb_insertar.enabled=True cb_editar.enabled=True nRet=dw_1.Update() If nRet > 0 Then Commit; If sqlca.SQLCode < 0 Then MessageBox("Error en la base de datos ","Error # "+ String(sqlca.SQLDBCode) + ":"+ sqlca.SQLErrText) Halt Close End If Else Rollback; If sqlca.SQLCode < 0 Then MessageBox("Error en la base de datos ","Error # "+ String(sqlca.SQLDBCode) + ":"+ sqlca.SQLErrText) Halt Close End If End If Dw_1 evento: Clicked Cb_eliminar.enabled= true Cb_eliminar cb_eliminar.Enabled=False dw_1.DeleteRow(0) dw_1.Update() Cb_cancelar dw_1.Retrieve() cb_insertar.Enabled=True cb_editar.Enabled=True cb_grabar.Enabled=False cb_cancelar.Enabled=True cb_salir.Enabled=True cb_eliminar.Enabled =False Cb_salir Disconnect; Close(w_dataactua2) evento: Clicked

evento: Clicked

evento: Clicked

Power Builder 9.0-10.0

92

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N 15

ASIGNATURA : Lenguaje de Programacin Comercial EAP : Ingeniera Informtica Turno: Noche Ciclo :Octavo Seccin : Octavo Fecha: 14-11-2006 Docente: Ing. ELVIS GUILLERMO, HUARCAYA QUISPE DATAWINDOWS (Actualizacin y Eliminacin de Registros) Utilizando db BDCOMUNIDAD Para realizar estas operaciones utiliza la s funciones: Find Esta funcin permite buscar un registro en un Datawindows Nonbre del control datawindows. FIND (condicin, inicio, final) Dw_1.find(C,1.dw_1.RowCount); Ejemplo: Realizar una aplicacin para buscar a los propietarios por nombre y modificar su Direccin:

Cb_1 grabar Cb_2 ignorar Cb_3 actualizar Cb_4 eliminar CDIGO EN LA APLICACIN // Profile Comunidad SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=Comunidad;UID=;PWD='" connect; if sqlca.sqlcode=0 then open(w_dataeliminado) end if CDIGO EN EL DATAWINDOWS Dw_1.SettransObject(SQLCA) Dw_1.Retrieve() Dw_2.SettransObject(SQLCA) Dw_2.Retrieve() Dw_1.Enabled = False Dw_2.Enabled = False Cb_1.Enabled = False Cb_2.Enabled = False CDIGO EN SLE EVENTO MODIFIED

Power Builder 9.0-10.0

93

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Integer Reg String Busca Busca="Upper(Left(Nombre," + string(len(sle_1.text))+")) = '" + Upper(sle_1.text)+"'" Reg=dw_1.find(busca,1,dw_1.rowcount()) if Reg=0 then messagebox("Verifique","El Propietario no existe") else Dw_1.scrolltorow(Reg) Dw_2.scrolltorow(Reg) end if CODIGO EN CB_1 EVENTO CLICKED //Actualiza las modificaciones realizadas en el Dw_1 Dw_1.Update() //Actualiza el Dw_2 Dw_2.Retrieve() //Activa el Sle_1 y el Dw_2 para que poder buscar otro Registro. Sle_1.Enabled = True Dw_2.Enabled = True //Desactiva el Dw_1 y los botones Grabar e Ignorar para evitar modificar los datos. Dw_1.Enabled = False Cb_1.Enabled = False Cb_2.Enabled = False //Activa los botones Actualizar y Eliminar. Cb_3.Enabled = True Cb_4.Enabled = True CODIGO EN CB_2 EVENTO CLICKED Dw_1.Retrieve() Sle_1.Enabled = True Dw_1.Enabled = False Dw_2.Enabled = True Cb_1.Enabled = False Cb_2.Enabled = False Cb_3.Enabled = True Cb_4.Enabled = True CODIGO EN CB_3 EVENTO CLICKED //Desactiva el Sle_1 y el Dw_2 para que no se permita buscar //otro registro mientras se esta actualizando uno. Sle_1.Enabled = False Dw_2.Enabled = False //Activa el Dw_1 y los botones Grabar e Ignorar para poder modificar los datos. Dw_1.Enabled = True Dw_1.modify("Codigo.DisplayOnly=True") Cb_1.Enabled = True Cb_2.Enabled = True //Desactiva los botones Actualizar y Eliminar hasta que se termine de //actualizar el registro actual. Cb_3.Enabled = False Cb_4.Enabled = False //Ubica el cursor en el Dw_1 para empezar la actualizacin. Dw_1.SetFocus() CODIGO EN CB_4 EVENTO CLICKED Integer N N=MessageBox ("Confirme"," Desea eliminar este Propietario ?",Question!,Yesno!) If N = 1 Then //Elimina el registro y actualiza el Dw_1 Dw_1.DeleteRow(Dw_1.GetRow())

Power Builder 9.0-10.0

94

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Dw_1.Update() //Actualiza el Dw_2 para que ya no se visualice el registro eliminado Dw_2.Retrieve() End If DATAWINDOWS (Ejemplos) Funciones para listado: SetFilter Esta funcin junto con la funcin Filter permite filtrar; es decir selecciona solo los registros que deseamos mostarar. Nombredel Datawindows.SetFilter(Condicin) Filter Permite que Power Builder ejecute o realice el filtrado o seleccin de los registros que cumpla la condicin especificada en SetFilter. Nombredel datawindows.Filter() Ejemplo: Permite mostrar a los propietarios registrados como sexo masculino. Dw_1.SetFilter(Sexo=M). Dw_1.SetFilter() Funcin SetSort Esta funcin , junta a la funcin Sort permite ordenas los registros en un datawindows Nombre del controlDatawindows. SetSort(nombre del campo) Si queremos mostrar en forma descendente solamente se incrementa la letra d Nombre del controlDatawindows. SetSort(nombre del campo D) Funcin Sort Esta funcin nos permite ejecutar en Power Builder la ordenacin indicada con SetSort. Nombredelcontroldatawindows.Sort() Ejemplo Dw_1.SetSort(IDCliente) Dw_1.Sort() FUNCIN PARA IMPRESIN Print() Para imprimir el contenido de un datawindows se utiliza la funcin Print Dw_1.Print() Para Activar la caja de seleccin de impresin y modificar los parmetros de impresin se utiliza la siguiente funcin. PrinSetup() FUNCIN PARA MODIFICAR Funcin para modificar un datawindows Dw_1.modify("Codigo.DisplayOnly=True") Dw_1.modify("Codigo.ReadOnly=True")
Ejemplo Mostrar a los inmuebles registrados.

Power Builder 9.0-10.0

95

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Cdigo fuente Aplicacin // Profile Comunidad SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=Comunidad;UID=;PWD='" connect; if sqlca.sqlcode=0 then open(w_listadopropie) end if Cdigo en Windows Integer Cant Dw_1.SettransObject(SQLCA) Dw_1.Retrieve() Cant=Dw_1.RowCount() St_2.text="Son " + String(Cant) + " Imnuebles" Cdigo Cb-1 Clickcled(Cdigo) Integer cant Dw_1.SetFilter("codigo=1") Dw_1.Filter() Cant=Dw_1.RowCount() St_2.text="Son " + String(Cant) + " inmuebles" Cb_2 Clickcled(Escalera) Integer Cant Dw_1.SetFilter("Escalera='5'") Dw_1.Filter() Cant=Dw_1.RowCount() St_2.text="Son " + String(Cant) + " Inmuebles" Cb_3 Clickcled(2 puertas) Integer Cant Dw_1.SetFilter("Puerta='2'") Dw_1.Filter() Cant=Dw_1.RowCount() St_2.text="Son " + String(Cant) + " Inmuebles" Cb_4 Clickcled(Modulo>) Integer Cant Dw_1.SetFilter("Modulo>20000") Dw_1.Filter() Cant=Dw_1.RowCount() St_2.text="Son " + String(Cant) + " Inmuebles" Cb_5 Clickcled(Todo) Integer Cant Dw_1.SetFilter("") Dw_1.Filter() Cant=Dw_1.RowCount() St_2.text="Son " + String(Cant) + " Inmuebles" Ordenar Primero se debe de activa la casilla de verificacin Cb_6 Clickcled(Codigo) If Cbx_1.Checked=True Then Dw_1.SetSort("Codigo a")

Power Builder 9.0-10.0

96

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Else Dw_1.SetSort("codigo") End If Dw_1.Sort() Cb_7 If Cbx_1.Checked=True Then Dw_1.SetSort("Codigo a") Else

Clickcled(Piso)

Dw_1.SetSort("codigo") End If Dw_1.Sort() Cb_8 Clickcled(Piso y Antigedad) If Cbx_1.Checked=True Then Dw_1.SetSort("Piso D, antiguedad D") Else Dw_1.SetSort("Piso, antiguedad") End If Dw_1.Sort() Imprimir Cb_9 Clickcled(Inprimir) printsetup() dw_1.print() Aplicacin busqueda por fechas RESUMEN DE CONTROLES: Funciones del Control DataWindow Funciones de Desplazamiento 1. ScrollNextRow() 2. ScrollPriorRow() 3. ScrollToRow ( long row ) 4. ScrollNextPage() 5. ScrollPriorPage() Funciones de Mantenimiento 6. SetTransObject ( transaction transaction ) 7. Retrieve ( {, any argument, any argument . . . } ) 8. InsertRow ( long row ) 9. DeleteRow ( long row ) 10. Update ( { boolean accept {, boolean resetflag } } ) 11. DeletedCount() 12. ModifiedCount () Otras Funciones 13. SetFocus() 14. GetRow() 15. GetColumn() 16. GetColumnName() 17. GetItemDate ( long row, integer column {, DWBuffer dwbuffer, boolean originalvalue } ) 18. GetItemDate ( long row, string column {, DWBuffer dwbuffer, boolean originalvalue } ) 19. GetItemDateTime ( long row, integer column {, DWBuffer dwbuffer, boolean originalvalue }) 20. GetItemDateTime ( long row, string column {, DWBuffer dwbuffer, boolean originalvalue } ) 21. GetItemDecimal ( long row, integer column {, DWBuffer dwbuffer, boolean originalvalue } ) 22. GetItemDecimal ( long row, string column {, DWBuffer dwbuffer, boolean originalvalue } )

Power Builder 9.0-10.0

97

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


23. GetItemNumber ( long row, integer column {, DWBuffer dwbuffer, boolean originalvalue } ) 24. GetItemNumber ( long row, string column {, DWBuffer dwbuffer, boolean originalvalue } ) 25. GetItemStatus ( long row, integer column, DWBuffer dwbuffer ) 26. GetItemStatus ( long row, string column, DWBuffer dwbuffer ) 27. GetItemString ( long row, integer column {, DWBuffer dwbuffer, boolean originalvalue } ) 28. GetItemString ( long row, string column {, DWBuffer dwbuffer, boolean originalvalue } ) 29. GetItemTime ( long row, integer column {, DWBuffer dwbuffer, boolean originalvalue } ) 30. GetItemTime ( long row, string column {, DWBuffer dwbuffer, boolean originalvalue } ) 31. SelectRow ( long row, boolean select ) 32. SetColumn( NmeroColumna | NombreColumna ) 33. SetRow ( long row ) 34. SetRowFocusIndicator ( RowFocusInd focusindicator {, integer xlocation {, integer ylocation } } ) 35. Reset() 36. RowCount() CONTROLES DE DEZPLAZAMIENTO CON SQL Utilizando la db colegio Desplazamiento de la tabla alumno

Declare variable global integer cont = 0 //Variables globales para la ventana docente y buscar docente string usuario, unico, codbuscado = '1' //Variables globales para la ventana alumno y buscar alumno string codalumno = '1' integer buscalumno = 0 Instance variables; string vidalumno, vnombre, vapepat, vapemat, vdireccion, vfecnac, vtelefono string vnompadre, vapepatpadre, vapematpadre, vnommadre, vapepatmadre string vapematmadre, vnomapoderado, vapepatapoderado, vapematapoderado string valor, cmd integer acnuevo = 0, acmodificar = 0

Power Builder 9.0-10.0

98

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Window_inicial Evento Open // Profile colegio SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=colegio;UID=;PWD='" connect; SELECT alumno.idalumno, alumno.nombre, alumno.apepaterno, alumno.apematerno, alumno.direccion, alumno.fecnac, alumno.telefono, alumno.nompadre, alumno.apepatpadre, alumno.apematpadre, alumno.nommadre, alumno.apepatmadre, alumno.apematmadre, alumno.nomapoderado, alumno.apepatapoderado, alumno.apematapoderado INTO : vidalumno, : vnombre, : vapepat, : vapemat, : vdireccion, : vfecnac, : vtelefono, : vnompadre, : vapepatpadre, : vapematpadre, : vnommadre, : vapepatmadre, : vapematmadre, : vnomapoderado, : vapepatapoderado, : vapematapoderado FROM alumno where alumno.idalumno = : codalumno; lb_1.reset() lb_1.additem("Codigo de Alumno ~t~t : " + vidalumno) lb_1.additem("Nombres y Apellidos ~t : " + vnombre + vapepat + vapemat) lb_1.additem("Direccion ~t~t : " + vdireccion) lb_1.additem("Fecha de Nacimiento ~t : " + vfecnac) lb_1.additem("Telefono ~t~t~t : " + vtelefono) lb_1.additem("Nombre del Padre ~t~t : " + vnompadre + vapepatpadre + vapematpadre) lb_1.additem("Nombre de la Madre ~t : " + vnommadre + vapepatmadre + vapematmadre) lb_1.additem("Nombre del Apoderado ~t : " + vnomapoderado + vapepatapoderado + vapematapoderado) tab_1.tabpage_1.sle_idalumno.text = vidalumno

Power Builder 9.0-10.0

99

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


tab_1.tabpage_1.sle_nomal.text = vnombre tab_1.tabpage_1.sle_apepatal.text = vapepat tab_1.tabpage_1.sle_apematal.text = vapemat tab_1.tabpage_1.sle_direccion.text = vdireccion tab_1.tabpage_1.sle_telefono.text = vtelefono tab_1.tabpage_1.sle_fecnac.text = vfecnac tab_1.tabpage_2.tab_2.tabpage_3.sle_nompa.text = vnompadre tab_1.tabpage_2.tab_2.tabpage_3.sle_apepatpa.text = vapepatpadre tab_1.tabpage_2.tab_2.tabpage_3.sle_apematpa.text = vapematpadre tab_1.tabpage_2.tab_2.tabpage_4.sle_nomma.text = vnommadre tab_1.tabpage_2.tab_2.tabpage_4.sle_apepatma.text = vapepatmadre tab_1.tabpage_2.tab_2.tabpage_4.sle_apematma.text = vapematmadre tab_1.tabpage_2.tab_2.tabpage_5.sle_nomapo.text = vnomapoderado tab_1.tabpage_2.tab_2.tabpage_5.sle_apepatapo.text = vapepatapoderado tab_1.tabpage_2.tab_2.tabpage_5.sle_apematapo.text = vapematapoderado Primero: SELECT top 1 alumno.idalumno, alumno.nombre, alumno.apepaterno, alumno.apematerno, alumno.direccion, alumno.fecnac, alumno.telefono, alumno.nompadre, alumno.apepatpadre, alumno.apematpadre, alumno.nommadre, alumno.apepatmadre, alumno.apematmadre, alumno.nomapoderado, alumno.apepatapoderado, alumno.apematapoderado INTO : vidalumno, : vnombre, : vapepat, : vapemat, : vdireccion, : vfecnac, : vtelefono, : vnompadre, : vapepatpadre, : vapematpadre, : vnommadre, : vapepatmadre, : vapematmadre, : vnomapoderado, : vapepatapoderado, : vapematapoderado

Power Builder 9.0-10.0

100

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


FROM alumno ORDER BY alumno.idalumno ASC ; lb_1.reset() lb_1.additem("Codigo de Alumno ~t~t : " + vidalumno) lb_1.additem("Nombres y Apellidos ~t : " + vnombre + vapepat + vapemat) lb_1.additem("Direccion ~t~t : " + vdireccion) lb_1.additem("Fecha de Nacimiento ~t : " + vfecnac) lb_1.additem("Telefono ~t~t~t : " + vtelefono) lb_1.additem("Nombre del Padre ~t~t : " + vnompadre + vapepatpadre + vapematpadre) lb_1.additem("Nombre de la Madre ~t : " + vnommadre + vapepatmadre + vapematmadre) lb_1.additem("Nombre del Apoderado ~t : " + vnomapoderado + vapepatapoderado + vapematapoderado) tab_1.tabpage_1.sle_idalumno.text = vidalumno tab_1.tabpage_1.sle_nomal.text = vnombre tab_1.tabpage_1.sle_apepatal.text = vapepat tab_1.tabpage_1.sle_apematal.text = vapemat tab_1.tabpage_1.sle_direccion.text = vdireccion tab_1.tabpage_1.sle_telefono.text = vtelefono tab_1.tabpage_1.sle_fecnac.text = vfecnac tab_1.tabpage_2.tab_2.tabpage_3.sle_nompa.text = vnompadre tab_1.tabpage_2.tab_2.tabpage_3.sle_apepatpa.text = vapepatpadre tab_1.tabpage_2.tab_2.tabpage_3.sle_apematpa.text = vapematpadre tab_1.tabpage_2.tab_2.tabpage_4.sle_nomma.text = vnommadre tab_1.tabpage_2.tab_2.tabpage_4.sle_apepatma.text = vapepatmadre tab_1.tabpage_2.tab_2.tabpage_4.sle_apematma.text = vapematmadre tab_1.tabpage_2.tab_2.tabpage_5.sle_nomapo.text = vnomapoderado tab_1.tabpage_2.tab_2.tabpage_5.sle_apepatapo.text = vapepatapoderado tab_1.tabpage_2.tab_2.tabpage_5.sle_apematapo.text = vapematapoderado segundo Anterior: cmd = string(integer(tab_1.tabpage_1.sle_idalumno.text) - 1) if integer(cmd) > 0 then SELECT alumno.idalumno, alumno.nombre, alumno.apepaterno, alumno.apematerno, alumno.direccion, alumno.fecnac, alumno.telefono, alumno.nompadre, alumno.apepatpadre, alumno.apematpadre, alumno.nommadre, alumno.apepatmadre, alumno.apematmadre, alumno.nomapoderado, alumno.apepatapoderado,

Power Builder 9.0-10.0

101

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


alumno.apematapoderado INTO : vidalumno, : vnombre, : vapepat, : vapemat, : vdireccion, : vfecnac, : vtelefono, : vnompadre, : vapepatpadre, : vapematpadre, : vnommadre, : vapepatmadre, : vapematmadre, : vnomapoderado, : vapepatapoderado, :vapematapoderado FROM alumno WHERE alumno.idalumno = : cmd ; lb_1.reset() lb_1.additem("Codigo de Alumno ~t~t : " + vidalumno) lb_1.additem("Nombres y Apellidos ~t : " + vnombre + vapepat + vapemat) lb_1.additem("Direccion ~t~t : " + vdireccion) lb_1.additem("Fecha de Nacimiento ~t : " + vfecnac) lb_1.additem("Telefono ~t~t~t : " + vtelefono) lb_1.additem("Nombre del Padre ~t~t : " + vnompadre + vapepatpadre + vapematpadre) lb_1.additem("Nombre de la Madre ~t : " + vnommadre + vapepatmadre + vapematmadre) lb_1.additem("Nombre del Apoderado ~t : " + vnomapoderado + vapepatapoderado + vapematapoderado) tab_1.tabpage_1.sle_idalumno.text = vidalumno tab_1.tabpage_1.sle_nomal.text = vnombre tab_1.tabpage_1.sle_apepatal.text = vapepat tab_1.tabpage_1.sle_apematal.text = vapemat tab_1.tabpage_1.sle_direccion.text = vdireccion tab_1.tabpage_1.sle_telefono.text = vtelefono tab_1.tabpage_1.sle_fecnac.text = vfecnac tab_1.tabpage_2.tab_2.tabpage_3.sle_nompa.text = vnompadre tab_1.tabpage_2.tab_2.tabpage_3.sle_apepatpa.text = vapepatpadre tab_1.tabpage_2.tab_2.tabpage_3.sle_apematpa.text = vapematpadre tab_1.tabpage_2.tab_2.tabpage_4.sle_nomma.text = vnommadre tab_1.tabpage_2.tab_2.tabpage_4.sle_apepatma.text = vapepatmadre tab_1.tabpage_2.tab_2.tabpage_4.sle_apematma.text = vapematmadre tab_1.tabpage_2.tab_2.tabpage_5.sle_nomapo.text = vnomapoderado tab_1.tabpage_2.tab_2.tabpage_5.sle_apepatapo.text = vapepatapoderado tab_1.tabpage_2.tab_2.tabpage_5.sle_apematapo.text = vapematapoderado end if

Power Builder 9.0-10.0

102

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Siguiente: SELECT top 1 alumno.idalumno INTO : vidalumno FROM alumno ORDER BY alumno.idalumno DESC ; cmd = string(integer(tab_1.tabpage_1.sle_idalumno.text) + 1) if integer(cmd) <= integer(vidalumno) then SELECT alumno.idalumno, alumno.nombre, alumno.apepaterno, alumno.apematerno, alumno.direccion, alumno.fecnac, alumno.telefono, alumno.nompadre, alumno.apepatpadre, alumno.apematpadre, alumno.nommadre, alumno.apepatmadre, alumno.apematmadre, alumno.nomapoderado, alumno.apepatapoderado, alumno.apematapoderado INTO : vidalumno, : vnombre, : vapepat, : vapemat, : vdireccion, : vfecnac, : vtelefono, : vnompadre, : vapepatpadre, : vapematpadre, : vnommadre, : vapepatmadre, : vapematmadre, : vnomapoderado, : vapepatapoderado, :vapematapoderado FROM alumno WHERE alumno.idalumno = : cmd ; lb_1.reset() lb_1.additem("Codigo de Alumno ~t~t : " + vidalumno) lb_1.additem("Nombres y Apellidos ~t : " + vnombre + vapepat + vapemat) lb_1.additem("Direccion ~t~t : " + vdireccion) lb_1.additem("Fecha de Nacimiento ~t : " + vfecnac) lb_1.additem("Telefono ~t~t~t : " + vtelefono) lb_1.additem("Nombre del Padre ~t~t : " + vnompadre + vapepatpadre + vapematpadre) lb_1.additem("Nombre de la Madre ~t : " + vnommadre + vapepatmadre + vapematmadre)

Power Builder 9.0-10.0

103

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


lb_1.additem("Nombre del Apoderado ~t : " + vnomapoderado + vapepatapoderado + vapematapoderado) tab_1.tabpage_1.sle_idalumno.text = vidalumno tab_1.tabpage_1.sle_nomal.text = vnombre tab_1.tabpage_1.sle_apepatal.text = vapepat tab_1.tabpage_1.sle_apematal.text = vapemat tab_1.tabpage_1.sle_direccion.text = vdireccion tab_1.tabpage_1.sle_telefono.text = vtelefono tab_1.tabpage_1.sle_fecnac.text = vfecnac tab_1.tabpage_2.tab_2.tabpage_3.sle_nompa.text = vnompadre tab_1.tabpage_2.tab_2.tabpage_3.sle_apepatpa.text = vapepatpadre tab_1.tabpage_2.tab_2.tabpage_3.sle_apematpa.text = vapematpadre tab_1.tabpage_2.tab_2.tabpage_4.sle_nomma.text = vnommadre tab_1.tabpage_2.tab_2.tabpage_4.sle_apepatma.text = vapepatmadre tab_1.tabpage_2.tab_2.tabpage_4.sle_apematma.text = vapematmadre tab_1.tabpage_2.tab_2.tabpage_5.sle_nomapo.text = vnomapoderado tab_1.tabpage_2.tab_2.tabpage_5.sle_apepatapo.text = vapepatapoderado tab_1.tabpage_2.tab_2.tabpage_5.sle_apematapo.text = vapematapoderado end if Ultimo SELECT top 1 alumno.idalumno, alumno.nombre, alumno.apepaterno, alumno.apematerno, alumno.direccion, alumno.fecnac, alumno.telefono, alumno.nompadre, alumno.apepatpadre, alumno.apematpadre, alumno.nommadre, alumno.apepatmadre, alumno.apematmadre, alumno.nomapoderado, alumno.apepatapoderado, alumno.apematapoderado INTO : vidalumno, : vnombre, : vapepat, : vapemat, : vdireccion, : vfecnac, : vtelefono, : vnompadre, : vapepatpadre, : vapematpadre, : vnommadre,

Power Builder 9.0-10.0

104

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


: vapepatmadre, : vapematmadre, : vnomapoderado, : vapepatapoderado, : vapematapoderado FROM alumno ORDER BY alumno.idalumno DESC ; lb_1.reset() lb_1.additem("Codigo de Alumno ~t~t : " + vidalumno) lb_1.additem("Nombres y Apellidos ~t : " + vnombre + vapepat + vapemat) lb_1.additem("Direccion ~t~t : " + vdireccion) lb_1.additem("Fecha de Nacimiento ~t : " + vfecnac) lb_1.additem("Telefono ~t~t~t : " + vtelefono) lb_1.additem("Nombre del Padre ~t~t : " + vnompadre + vapepatpadre + vapematpadre) lb_1.additem("Nombre de la Madre ~t : " + vnommadre + vapepatmadre + vapematmadre) lb_1.additem("Nombre del Apoderado ~t : " + vnomapoderado + vapepatapoderado + vapematapoderado) tab_1.tabpage_1.sle_idalumno.text = vidalumno tab_1.tabpage_1.sle_nomal.text = vnombre tab_1.tabpage_1.sle_apepatal.text = vapepat tab_1.tabpage_1.sle_apematal.text = vapemat tab_1.tabpage_1.sle_direccion.text = vdireccion tab_1.tabpage_1.sle_telefono.text = vtelefono tab_1.tabpage_1.sle_fecnac.text = vfecnac tab_1.tabpage_2.tab_2.tabpage_3.sle_nompa.text = vnompadre tab_1.tabpage_2.tab_2.tabpage_3.sle_apepatpa.text = vapepatpadre tab_1.tabpage_2.tab_2.tabpage_3.sle_apematpa.text = vapematpadre tab_1.tabpage_2.tab_2.tabpage_4.sle_nomma.text = vnommadre tab_1.tabpage_2.tab_2.tabpage_4.sle_apepatma.text = vapepatmadre tab_1.tabpage_2.tab_2.tabpage_4.sle_apematma.text = vapematmadre tab_1.tabpage_2.tab_2.tabpage_5.sle_nomapo.text = vnomapoderado tab_1.tabpage_2.tab_2.tabpage_5.sle_apepatapo.text = vapepatapoderado tab_1.tabpage_2.tab_2.tabpage_5.sle_apematapo.text = vapematapoderado Referencias Juan Jose castaeda Power Builder 9.0 Bibliogrficas Juan Jose castaeda Full Data Base Jos del Carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0 SQL 2000 La bilia de Sql 200 Lecturas Recomendadas Web a visitar http://www.powerbuilder.org/modules.php?name=Content&pa=showpage&pid=10 http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10 http://www.librosdigitales.net http://www.monografias.com Tutorial de oracle 9i http://www.solotutoriales.com/visitar.asp?id=5414

Power Builder 9.0-10.0

105

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


SENTENCIA SQL 1. Introduccin El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por el motor de base de datos de Microsoft Jet. SQL se utiliza para crear objetos QueryDef, como el argumento de origen del mtodo OpenRecordSet y como la propiedad RecordSource del control de datos. Tambin se puede utilizar con el mtodo Execute para crear y manipular directamente las bases de datos Jet y crear consultas SQL de paso a travs para manipular bases de datos remotas cliente - servidor. 1.1. Componentes del SQL El lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. 1.2 Comandos Existen dos tipos de comandos SQL: Los DLL que permiten crear y definir nuevas bases de datos, campos e ndices. Los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. Comandos DLL Comando Descripcin CREATE Utilizado para crear nuevas tablas, campos e ndices Empleado para eliminar tablas e ndices DROP Utilizado para modificar las tablas agregando campos o cambiando la ALTER definicin de los campos. Comandos DML Comando Descripcin Utilizado para consultar registros de la base de datos que satisfagan un SELECT criterio determinado Utilizado para cargar lotes de datos en la base de datos en una nica INSERT operacin. Utilizado para modificar los valores de los campos y registros UPDATE especificados DELETE Utilizado para eliminar registros de una tabla de una base de datos 1.3 Clusulas Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular. Comando Descripcin Utilizada para especificar la tabla de la cual se van a seleccionar los FROM registros Utilizada para especificar las condiciones que deben reunir los registros WHERE que se van a seleccionar GROUP Utilizada para separar los registros seleccionados en grupos especficos BY HAVING Utilizada para expresar la condicin que debe satisfacer cada grupo ORDER Utilizada para ordenar los registros seleccionados de acuerdo con un orden especfico BY 1.4 Operadores Lgicos

Power Builder 9.0-10.0

106

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Operador Uso Es el "y" lgico. Evala dos condiciones y devuelve un valor de verdad AND slo si ambas son ciertas. Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdad si OR alguna de las dos es cierta. Negacin lgica. Devuelve el valor contrario de la expresin. NOT 1.5 Operadores de Comparacin Operador Uso Menor que < Mayor que > Distinto de <> Menor Igual que <= Mayor Igual que >= BETWEEN Utilizado para especificar un intervalo de valores. Utilizado en la comparacin de un modelo LIKE Utilizado para especificar registros de una base de datos In 1.6 Funciones de Agregado Las funciones de agregado se usan dentro de una clusula SELECT en grupos de registros para devolver un nico valor que se aplica a un grupo de registros. Comando Descripcin Utilizada para calcular el promedio de los valores de un campo AVG determinado COUNT Utilizada para devolver el nmero de registros de la seleccin Utilizada para devolver la suma de todos los valores de un campo SUM determinado Utilizada para devolver el valor ms alto de un campo especificado MAX Utilizada para devolver el valor ms bajo de un campo especificado MIN 2. CONSULTAS DE SELECCIN Las consultas de seleccin se utilizan para indicar al motor de datos que devuelva informacin de las bases de datos, esta informacin es devuelta en forma de conjunto de registros que se pueden almacenar en un objeto recordset. Este conjunto de registros es modificable. 2.1 Consultas bsicas La sintaxis bsica de una consulta de seleccin es la siguiente: SELECT Campos FROM Tabla; En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos, por ejemplo: SELECT Nombre, Telefono FROM Clientes; Esta consulta devuelve un recordset con el campo nombre y telfono de la tabla clientes. 2.2 Ordenar los registros Adicionalmente se puede especificar el orden en que se desean recuperar los registros de las tablas mediante la clasula ORDER BY Lista de Campos. En donde Lista de campos representa los campos a ordenar. Ejemplo: SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY Nombre;

Power Builder 9.0-10.0

107

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Esta consulta devuelve los campos CodigoPostal, Nombre, Telefono de la tabla Clientes ordenados por el campo Nombre. Se pueden ordenar los registros por mas de un campo, como por ejemplo: SELECT CodigoPostal, CodigoPostal, Nombre; Nombre, Telefono FROM Clientes ORDER BY

Incluso se puede especificar el orden de los registros: ascendente mediante la clasula (ASC -se toma este valor por defecto) descendente (DESC) SELECT CodigoPostal, Nombre, CodigoPostal DESC , Nombre ASC; Telefono FROM Clientes ORDER BY

2.3 Consultas con Predicado El predicado se incluye entre la clasula y el primer nombre del campo a recuperar, los posibles predicados son: Predicado Descripcin Devuelve todos los campos de la tabla ALL Devuelve un determinado nmero de registros de la tabla TOP Omite los registros cuyos campos seleccionados coincidan DISTINCT totalmente Omite los registros duplicados basandose en la totalidad del registro DISTINCROW y no slo en los campos seleccionados. ALL: Si no se incluye ninguno de los predicados se asume ALL. El Motor de base de datos selecciona todos los registros que cumplen las condiciones de la instruccin SQL. No se conveniente abusar de este predicado ya que obligamos al motor de la base de datos a analizar la estructura de la tabla para averiguar los campos que contiene, es mucho ms rpido indicar el listado de campos deseados. SELECT ALL SELECT * FROM Empleados; FROM Empleados;

TOP: Devuelve un cierto nmero de registros que entran entre al principio o al final de un rango especificado por una clusula ORDER BY. Supongamos que queremos recuperar los nombres de los 25 primeros estudiantes del curso 1994: SELECT TOP 25 ORDER BY Nota DESC; Nombre, Apellido FROM Estudiantes

Si no se incluye la clusula ORDER BY, la consulta devolver un conjunto arbitrario de 25 registros de la tabla Estudiantes .El predicado TOP no elige entre valores iguales. En el ejemplo anterior, si la nota media nmero 25 y la 26 son iguales, la consulta devolver 26 registros. Se puede utilizar la palabra reservada PERCENT para devolver un cierto porcentaje de registros que caen al principio o al final de un rango especificado por la clusula ORDER BY. Supongamos que en lugar de los 25 primeros estudiantes deseamos el 10 por ciento del curso: SELECT TOP 10 ORDER BY Nota DESC; PERCENT Nombre, Apellido FROM Estudiantes

El valor que va a continuacin de TOP debe ser un Integer sin signo.TOP no afecta a la posible actualizacin de la consulta. DISTINCT: Omite los registros que contienen datos duplicados en los campos seleccionados. Para que los valores de cada campo listado en la instruccin SELECT se incluyan en la consulta deben ser nicos.

Power Builder 9.0-10.0

108

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Por ejemplo, varios empleados listados en la tabla Empleados pueden tener el mismo apellido. Si dos registros contienen Lpez en el campo Apellido, la siguiente instruccin SQL devuelve un nico registro: SELECT DISTINCT Apellido FROM Empleados; Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos indicados en la clusula SELECT posean un contenido diferente. El resultado de una consulta que utiliza DISTINCT no es actualizable y no refleja los cambios subsiguientes realizados por otros usuarios. DISTINCTROW: Devuelve los registros diferentes de una tabla; a diferencia del predicado anterior que slo se fijaba en el contenido de los campos seleccionados, ste lo hace en el contenido del registro completo independientemente de los campo indicados en la clusula SELECT. SELECT DISTINCTROW Apellido FROM Empleados; Si la tabla empleados contiene dos registros: Antonio Lpez y Marta Lpez el ejemplo del predicado DISTINCT devuleve un nico registro con el valor Lpez en el campo Apellido ya que busca no duplicados en dicho campo. Este ltimo ejemplo devuelve dos registros con el valor Lpez en el apellido ya que se buscan no duplicados en el registro completo. 2.4 Alias En determinadas circunstancias es necesario asignar un nombre a alguna columna determinada de un conjunto devuelto, otras veces por simple capricho o por otras circunstancias. Para resolver todas ellas tenemos la palabra reservada AS que se encarga de asignar el nombre que deseamos a la columna deseada. Tomado como referencia el ejemplo anterior podemos hacer que la columna devuelta por la consulta, en lugar de llamarse apellido (igual que el campo devuelto) se llame Empleado. En este caso procederamos de la siguiente forma: SELECT DISTINCTROW Apellido AS Empleado FROM Empleados;

OPERADORES LGICOS EN SQL 3. Criterios de Seleccin Antes de comenzar el desarrollo de este captulo hay que recalcar tres detalles de vital importancia. El primero de ellos es que cada vez que se desee establecer una condicin referida a un campo de texto la condicin de bsqueda debe ir encerrada entre comillas simples; la segunda es que no se posible establecer condiciones de bsqueda en los campos memo y; la tercera y ltima hace referencia a las fechas. Las fechas se deben escribir siempre en formato mm-dd-aa en donde mm representa el mes, dd el da y aa el ao, hay que prestar atencin a los separadores -no sirve la separacin habitual de la barra (/), hay que utilizar el guin (-) y adems la fecha debe ir encerrada entre almohadillas (#). Por ejemplo si deseamos referirnos al da 3 de Septiembre de 1995 deberemos hacerlo de la siguiente forma; #09-03-95# #9-3-95#. 3.1 Operadores Lgicos Los operadores lgicos soportados por SQL son: AND, OR, XOR, Eqv, Imp, Is y Not. A excepcin de los dos ltimos todos poseen la siguiente sintaxis: <expresin1> operador <expresin2> En donde expresin1 y expresin2 son las condiciones a evaluar, el resultado de la operacin vara en funcin del operador lgico. La tabla adjunta muestra los diferentes posibles resultados: <expresin1> Operador <expresin2> Resultado Verdad Falso Falso AND Verdad Verdad Verdad AND Falso Verdad Falso AND Falso Falso Falso AND

Power Builder 9.0-10.0

109

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Verdad Falso Verdad OR Verdad Verdad Verdad OR Falso Verdad Verdad OR Falso Falso Falso OR Verdad Verdad Falso XOR Verdad Falso Verdad XOR Falso Verdad Verdad XOR Falso Falso Falso XOR Verdad Verdad Verdad Eqv Verdad Falso Falso Eqv Falso Verdad Falso Eqv Falso Falso Verdad Eqv Verdad Verdad Verdad Imp Verdad Falso Falso Imp Verdad Null Null Imp Falso Verdad Verdad Imp Falso Falso Verdad Imp Falso Null Verdad Imp Null Verdad Verdad Imp Null Falso Null Imp Null Null Null Imp Si a cualquiera de las anteriores condiciones le anteponemos el operador NOT el resultado de la operacin ser el contrario al devuelto sin el operador NOT. El ltimo operador denominado Is se emplea para comparar dos variables de tipo objeto <Objeto1> Is <Objeto2>. Este operador devuelve verdad si los dos objetos son iguales. SELECT * FROM Empleados WHERE Edad > 25 AND Edad < 50; SELECT * FROM Empleados WHERE (Edad > 25 AND Edad < 50) OR Sueldo = 100; SELECT * FROM Empleados WHERE NOT Estado = 'Soltero'; SELECT * FROM Empleados WHERE (Sueldo > 100 AND Sueldo < 500) OR (Provincia = 'Madrid' AND Estado = 'Casado'); 3.2 Intervalos de Valores Para indicar que deseamos recuperar los registros segn el intervalo de valores de un campo emplearemos el operador Between cuya sintaxis es: (campo [Not] Between valor1 And valor2 (la condicin Not es opcional) En este caso la consulta devolvera los registros que contengan en "campo" un valor incluido en el intervalo valor1, valor2 (ambos inclusive). Si anteponemos la condicin Not devolver aquellos valores no incluidos en el intervalo. SELECT * FROM Pedidos WHERE CodPostal Between 28000 And 28999; (Devuelve los pedidos realizados en la provincia de Madrid) SELECT IIf(CodPostal Between 28000 And 28999, 'Provincial', 'Nacional') FROM Editores; (Devuelve el valor 'Provincial' si el cdigo postal se encuentra en el intervalo, 'Nacional' en caso contrario) 3.3 El Operador Like Se utiliza para comparar una expresin de cadena con un modelo en una expresin SQL. Su sintaxis es: expresin Like modelo

Power Builder 9.0-10.0

110

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


En donde expresin es una cadena modelo o campo contra el que se compara expresin. Se puede utilizar el operador Like para encontrar valores en los campos que coincidan con el modelo especificado. Por modelo puede especificar un valor completo (Ana Mara), o se pueden utilizar caracteres comodn como los reconocidos por el sistema operativo para encontrar un rango de valores (Like An*). El operador Like se puede utilizar en una expresin para comparar un valor de un campo con una expresin de cadena. Por ejemplo, si introduce Like C* en una consulta SQL, la consulta devuelve todos los valores de campo que comiencen por la letra C. En una consulta con parmetros, puede hacer que el usuario escriba el modelo que se va a utilizar. El ejemplo siguiente devuelve los datos que comienzan con la letra P seguido de cualquier letra entre A y F y de tres dgitos: Like 'P[A-F]###' Este ejemplo devuelve los campos cuyo contenido empiece con una letra de la A a la D seguidas de cualquier cadena. Like '[A-D]*' En la tabla siguiente se muestra cmo utilizar el operador Like para comprobar expresiones con diferentes modelos. Tipo de coincidencia Modelo Planteado Coincide No Coincide Varios caracteres 'a*a' 'aa', 'aBa', 'aBBBa' 'aBC' Carcter especial 'a[*]a' 'a*a' 'aaa' Varios caracteres 'ab*' 'abcdefg', 'abc' 'cab', 'aab' Un solo carcter 'a?a' 'aaa', 'a3a', 'aBa' 'aBBBa' Un solo dgito 'a#a' 'a0a', 'a1a', 'a2a' 'aaa', 'a10a' Rango de caracteres '[a-z]' 'f', 'p', 'j' '2', '&' Fuera de un rango '[!a-z]' '9', '&', '%' 'b', 'a' Distinto de un dgito '[!0-9]' 'A', 'a', '&', '~' '0', '1', '9' Combinada 'a[!b-m]#' 'An9', 'az0', 'a99' 'abc', 'aj0' 3.4 El Operador In Este operador devuelve aquellos registros cuyo campo indicado coincide con alguno de los indicados en una lista. Su sintaxis es: expresin [Not] In(valor1, valor2, . . .) SELECT * FROM Pedidos WHERE Provincia In ('Madrid', 'Barcelona', 'Sevilla'); 3.5 La clusula WHERE La clusula WHERE puede usarse para determinar qu registros de las tablas enumeradas en la clusula FROM aparecern en los resultados de la instruccin SELECT. Despus de escribir esta clusula se deben especificar las condiciones expuestas en los apartados 3.1 y 3.2. Si no se emplea esta clusula, la consulta devolver todas las filas de la tabla. WHERE es opcional, pero cuando aparece debe ir a continuacin de FROM. SELECT Apellidos, Salario FROM Empleados WHERE Salario > 21000; SELECT Id_Producto, Existencias FROM Productos; WHERE Existencias <= Nuevo_Pedido; SELECT * FROM Pedidos WHERE Fecha_Envio = #5/10/94#; SELECT Apellidos, Nombre FROM Empleados WHERE Apellidos = 'King'; SELECT Apellidos, Nombre FROM Empleados WHERE Apellidos Like 'S*'; SELECT Apellidos, Salario FROM Empleados WHERE Salario Between 200 And 300; SELECT Apellidos, Salario FROM Empl WHERE Apellidos Between 'Lon' And 'Tol'; SELECT Id_Pedido, Fecha_Pedido FROM Pedidos WHERE Fecha_Pedido Between #1-1-94# And #30-6-94#; SELECT Apellidos, Nombre, Ciudad FROM Empleados WHERE Ciudad In ('Sevilla', 'Los Angeles', 'Barcelona');

Power Builder 9.0-10.0

111

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


4. Agrupamiento de Registros 4.1 GROUP BY Combina los registros con valores idnticos, en la lista de campos especificados, en un nico registro. Para cada registro se crea un valor sumario si se incluye una funcin SQL agregada, como por ejemplo Sum o Count, en la instruccin SELECT. Su sintaxis es: SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupo GROUP BY es opcional. Los valores de resumen se omiten si no existe una funcin SQL agregada en la instruccin SELECT. Los valores Null en los campos GROUP BY se agrupan y no se omiten. No obstante, los valores Null no se evalan en ninguna de las funciones SQL agregadas. Se utiliza la clusula WHERE para excluir aquellas filas que no desea agrupar, y la clusula HAVING para filtrar los registros una vez agrupados. A menos que contenga un dato Memo u Objeto OLE , un campo de la lista de campos GROUP BY puede referirse a cualquier campo de las tablas que aparecen en la clusula FROM, incluso si el campo no esta incluido en la instruccin SELECT, siempre y cuando la instruccin SELECT incluya al menos una funcin SQL agregada. Todos los campos de la lista de campos de SELECT deben o bien incluirse en la clusula GROUP BY o como argumentos de una funcin SQL agregada. SELECT Id_Familia, Sum(Stock) FROM Productos GROUP BY Id_Familia; Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier registro agrupado por la clusula GROUP BY que satisfaga las condiciones de la clusula HAVING. HAVING es similar a WHERE, determina qu registros se seleccionan. Una vez que los registros se han agrupado utilizando GROUP BY, HAVING determina cuales de ellos se van a mostrar. SELECT Id_Familia Sum(Stock) FROM Productos GROUP HAVING Sum(Stock) > 100 AND NombreProducto Like BOS*; BY Id_Familia

4.2 AVG Calcula la media aritmtica de un conjunto de valores contenidos en un campo especificado de una consulta. Su sintaxis es la siguiente Avg(expr) En donde expr representa el campo que contiene los datos numricos para los que se desea calcular la media o una expresin que realiza un clculo utilizando los datos de dicho campo. La media calculada por Avg es la media aritmtica (la suma de los valores dividido por el nmero de valores). La funcin Avg no incluye ningn campo Null en el clculo. SELECT Avg(Gastos) AS Promedio FROM Pedidos WHERE Gastos > 100; 4.3 Count Calcula el nmero de registros devueltos por una consulta. Su sintaxis es la siguiente Count(expr) En donde expr contiene el nombre del campo que desea contar. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no otras de las funciones agregadas de SQL). Puede contar cualquier tipo de datos incluso texto. Aunque expr puede realizar un clculo sobre un campo, Count simplemente cuenta el nmero de registros sin tener en cuenta qu valores se almacenan en los registros. La funcin Count no cuenta los registros que tienen campos null a menos que expr sea el carcter comodn asterisco (*). Si utiliza un asterisco, Count calcula el nmero total de registros, incluyendo aquellos que contienen campos null. Count(*) es considerablemente ms rpida que Count(Campo). No se debe poner el asterisco entre dobles comillas ('*'). SELECT Count(*) AS Total FROM Pedidos;

Power Builder 9.0-10.0

112

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Si expr identifica a mltiples campos, la funcin Count cuenta un registro slo si al menos uno de los campos no es Null. Si todos los campos especificados son Null, no se cuenta el registro. Hay que separar los nombres de los campos con ampersand (&). SELECT Count(FechaEnvo & Transporte) AS Total FROM Pedidos; 4.4 Max, Min Devuelven el mnimo o el mximo de un conjunto de valores contenidos en un campo especifico de una consulta. Su sintaxis es: Min(expr) Max(expr) En donde expr es el campo sobre el que se desea realizar el clculo. Expr pueden incluir el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no otras de las funciones agregadas de SQL). SELECT Min(Gastos) AS ElMin FROM Pedidos WHERE Pais = 'Espaa'; SELECT Max(Gastos) AS ElMax FROM Pedidos WHERE Pais = 'Espaa'; 4.5 Sum Devuelve la suma del conjunto de valores contenido en un campo especifico de una consulta. Su sintaxis es: SumP(expr) En donde expr representa el nombre del campo que contiene los datos que desean sumarse o una expresin que realiza un clculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no otras de las funciones agregadas de SQL). SELECT Sum(PrecioUnidad * Cantidad) AS Total FROM DetallePedido;

Power Builder 9.0-10.0

113

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N16
Escuela Profesional: Ing. Informtica Turno: Noche Docente: ELVIS GUILLERMO HUARCAYA QUISPE Asignatura: Lenguaje de Programacin Comercial Ciclo: Octavo Fecha: 21-11-2006

CREACIN DE TABLAS Y RELACIN DE LAS TABLAS, SQL EN POWER BUILDER Para crear un tabla en Power Builder. Se tiene que buscar la carpeta de Tables

Realizar clic derecho en New Tables

Nos mostrara la siguiente ventana

Ingrese los campos de la tabla, tipo de datos tamao, la cantidad de decimal si es que es un tipo de datos numrico, si es de valor nulo yes o no, default nos muestra opciones que van ser: current date, current time, last user etc.

Power Builder 9.0-10.0

114

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Para guardar una tabla realice Clic en : file Save As. O clic en el icono guardar. O en clic en x de la venta A continuacin nos mostrara la ventana para ingresar el nombre de la tabla, y luego clic en el botn OK.

Para visualizar la tabla realice la siguiente paso:

Tab ususario

Clic derecho en tabusuario

Se visualiza La siguiente relacin de tablas

Power Builder 9.0-10.0

115

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


SQL EN POWER BUILDER SQL Es una herramienta para organizar y gestionar y recuperar datos almacenados en una base de datos. SQL es un lenguaje que se puede interactuar con una base de datos relacional. Para utilizar la herramienta realizar un click en el menu View del sistema a seleccionar la opcin Interactive SQL se observara la ventana ISQL session

Se muestra:

es donde se escribe la sentencia para visualizar la consulta realice click en el siguiente icono y se mostrara:

Ejercicios: Ejer01 La siguiente sentencia muestra todo los campos y los registros de la tabla inmuebles select * from inmuebles; Ejer02 Escribir la sentencia para consultar solamente los campos codigo, modulo select codigo, modulo from inmuebles; Ejer03 Escribir una consulta sacando un porcenta de descuento. select codigo_periodo, 0.10*importe from facturas; Realizar todas las consultas Que se presenta para el caso

Power Builder 9.0-10.0

116

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Ejercicio 01 Realizar una consulta que presenta los campos importe, cdigo_concepto de la tabla lineasfactura, cuando el importa es mayor que 45 soles. Ejercicio 02 Mostrar a los usuarios que se encuentran en el distrito de tambo: select Nombre from propietarios where poblacion='Tambo'; Ejercicios 03 Utilizando la base de datos tienda Realice una consulta para que se muestre idproveedor y idcategora y la cantidad de producto que esta quedando y unidadesenexistencia <= 45 y cuyo precio unitario sea mayor 200 select nombreproducto, idproveedor,idcategora,unidadesenexistencia from productos where unidadesenexistencia<=60 and Preciounidad>200; Ejercicio 04 Utilizando signos de comparacin (=,<>, >,<, =>,=<); La consulta BETWEEN Sql proporciona una forma diferente de condicin de bsqueda con el test de rango comprueba si un valor de dato se encuentra entre valores especificadosimplica el uso de tres expresiones . Realice la consulta para la tabla productos y mostrar los productos que se encuentran las select nombreproducto, idproducto,unidadesenexistencia from productos where unidadesenexistencia between 100 and 20; Ejercicio 05 TEST DE PERTENENCIA IN Otra condicin habitual es el test de pertenencia a un conjunto (IN) examina el valor de dato que coincide La siguiente consulta nos muestra a todos los empelados 3 y 4 que realizaron un pedido select idpedido, idcliente,idempleado from pedidos where Idempleado in (3,4); Ejercicio 06 UTILIZACIN DEL COMANDO LIKE Se utiliza para un comparacin simple para recuperar filas en donde el contenido de una columna de texto se corresponde con un cierto texto particular Muestra la consulta a los nombres de los destinatarios que tengan en la tercera letra L select idpedido, fechapedido, fechaentrega,destinatario from pedidos where destinatario like '___l%'; ORDER BY Ordena un campo en forma ascendente o descendente ASC, DESC Ordena los productos en forma ascendente en funcin a su precio: select nombreproducto, idproducto,preciounidad from productos order by preciounidad asc;

Power Builder 9.0-10.0

117

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


CONSULTAS SUMARIAS Para las consultas sumarias se utiliza Sum Calcula el total de la columna Avg Promedio de una columna Min Valor mnimo de una columna Max Valor mximo de una columna Count cuenta el numero de valores en una columna Cantidad de productos select SUM(unidadesenexistencia) from productos; Cantidad mnima select min(unidadesenexistencia) from productos; Cantidad mxima select max(unidadesenexistencia) from productos; Numero de registros select count(unidadesenexistencia) from productos;
Referencias Bibliogrficas Juan Jose castaeda Power Builder 9.0 Juan Jose castaeda Full Data Base Jos del Carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0 SQL 2000 La bilia de Sql 200

Lecturas Recomendadas Web a visitar

http://www.powerbuilder.org/modules.php?name=Content&pa=showpage&pid=10 http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10 http://www.librosdigitales.net http://www.monografias.com Tutorial de oracle 9i http://www.solotutoriales.com/visitar.asp?id=5414 http://www.inei.gob.pe/biblioineipub/bancopub/inf/lib5022/indice.HTM

Power Builder 9.0-10.0

118

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N 17
ASIGNATURA : Lenguaje de Programacin Comercial EAP : Ingeniera Informtica Turno: NOCHES Ciclo: OCTAVO Seccin : Octavo Fecha: 28-11-2006 Docente: Ing. ELVIS GUILLERMO, HUARCAYA QUISPE DATAWINDOWS Y SQL FUNCIONES DEFINAS POR EL USUARIO El lenguaje PowerScript tiene una gran variedad de funciones. Pero si en el proceso de desarrollo se necesita codificar u proceso que se repita mas de una vez entonces es necesario crear una funcin definida por el usuario. Una funcin definida por el usuario es una coleccin de sentencias que realizan algn proceso. Para construirla se realiza en el Function Painter, una vez construida se graba la funcin para su posterior uso. Tipos de Funcin. Funciones Globales. Las cuales no estn asociadas a ningn objeto de la aplicacin y son accesibles desde cualquier punto de la aplicacin. Funciones de nivel objeto. Estas funciones estn definidas por un tipo particular de ventana, men o objeto de usuario Nota : Las nombres de las funciones pueden tener hasta una longitud de 40 caracteres Crear una funcin que permita limpiar los controles del ejemplo anterior. __ Abra la ventana anterior (w_funciones) __ Abra el la ventana de script de la ventana
__ Abra la lista de controles de la ventana de cdigos y seleccione (Functions)

__Seguidamente se activar la siguiente ventana en donde se tendr que ingresar el nombre de la funcin que se desea crear y especificar si se desea que la funcin retorne un valor.

Luego de crear la funcin escriba el cdigo siguiente. sle_nombres.Text="" sle_apepat.Text="" sle_apemat.Text=""

Power Builder 9.0-10.0

119

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


sle_direccion.Text="" ddlb_sexo.SelectItem(0) ddlb_especialidad.SelectItem(0) ddlb_semestre.SelectItem(0) ddlb_turno.SelectItem(0) __Grabe la funcin grabando la ventana y cierre la ventana de la funcin. __Llamado de la funcin dentro del programa
lb_codigos.AddItem(Codigo) sle_codigo.Text=Codigo Limpiar_Controles(); PARA CREAR UNA FUNCIN O INCREMENTAR UNA FUNCIN Crear una funcin con el nombre de Calcular Para crear la funcin, seleccione la opcin Insert de la barra de men, y dentro de esta seleccione Function. Y se mostrara la figura

cuando queremos adicionar un ingreso de parmetro realice un clic derecho sobre Fuction Name y busca la opcin add parameter SENTENCIA DE ASIGNACIN Como en todo lenguaje de programacin visual existe sentencias de asignacin Variable = valor de la variable En otras palabras Asignar algn valor a algo. Frecuentemente lo que esta en la izquierda es una variable T=100 En la parte derecha podra haber un literal, una variable, una llamada de funcin, una expresin. As como por ejemplo T=3 // valor literal K1 = k2 // valor de variable Mivalor = contar(p) // llamada a una funcin Sumar = s + t // valor de expresin Un literal puede ser exactamente nmeros, cadenas, fechas, valores de tiempo, etc. Todos los tipos de datos vistos anteriormente. UNA EXPRESIN puede incluir uno de los siguientes operadores : Aritmticos : Suma (+) , resta ( - ), multiplicacin ( * ), divisin ( / ) , potenciacin (^) Lgico . not, and y or Relacional: igual (= ), mayor que (>), menor que (<), diferente a ( <>), mayor que o igual a (>=), menor que o igual a (<=) Concatenacin (unin) de cadenas(texto): ( + ) DATAWINDOWS(Ejemplos)

Power Builder 9.0-10.0

120

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Cuando actualizamos base de datos y tenemos relacionado con varias tablas y tenemos la necesidad de actualizar datos desde otra Tabla. Ejemplo: Actualizar la tabla de propietarios para mostrar todo los campos Pero si queremos actualizar y cambiar de datos podemos escoger la informacin que contiene la tabla comunidad y inmuebles mediante

Para la siguiente aplicacin demostrativa se creo tres datawindows De comunidades con el campo de cdigo De inmuebles con el campo nif De propietarios con todo los campos, por que se debe de actualizar:

Diseo de los data Windows Datawindows Comunidad:

Power Builder 9.0-10.0

121

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

Datawindows Propietarios

wind

Cuando editamos el campo de codigo_comunidad con dddw se tiene que realizar desde la ventana de propiedades en la pestaa Edit, en la opcin Style Type: seleccionando las opciones que desea escoger:

Power Builder 9.0-10.0

122

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

luego activar la casilla de Always Show Arrow.

En la opcin DataWindows Escoger el datawindows creado con el nombre de comunidad, En Display Column escoger el campo que se esta reemplazando, y en Data Column el campo que se muestra en el dddw

ACTUALIZACIN DEL WINDOWS Evento

Open

DATAWINDOWS (SQL)
Se realizara la siguiente aplicacin el siguiente: Windows guarda los valores que se ingresa en eel

Power Builder 9.0-10.0

123

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

Cdigo en al aplicacin // Profile Ventas SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "Connectstring='DSN=ventas'" connect; if sqlca.sqlcode=0 then open(w_aplica20) end if declaracin de las variables a utilizar

CDIGO EN WINDOWS EVENTO OPEN Declare PrimerCur Cursor For Select cat_id,cat_nomb From categorias; Open PrimerCur; Fetch PrimerCur Into :p,:s; Do Until sqlca.sqlcode=100 ddlb_categoria.additem(p) Fetch PrimerCur Into :p,:s;

Loop Close PrimerCur; CB_nuevo sle_codigo.text="" sle_descripcion.text="" sle_npedido.text="" sle_pcosto.text="" sle_punitario.text="" sle_stock.text="" sle_unidad.text=""

EVENTO CLICKED

Power Builder 9.0-10.0

124

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


ddlb_categoria.text="" sle_codigo.setfocus() cb_grabar.enabled=false cbx_discontinuo.checked=false CB_grabar EVENTO CLICKED (GRABAR) cb_grabar.enabled = False String dis If cbx_discontinuo.checked Then dis='1' Else dis='0' End If Integer nResp nResp=MessageBox("Sistema de Facturacin","Desea Grabar el registro",Question!,YesNo!) If nResp=1 Then Insert Into Articulos(art_id,cat_id,art_nomb,art_unid,art_puni,art_pcos, art_stoc,art_nped,art_disc) Values(:sle_codigo.text,:ddlb_categoria.text,:sle_descripcion.text,:sle_unidad.te xt,:sle_punitario.text, :sle_pcosto.text,:sle_stock.text,:sle_npedido.text,:dis); End If CB_salir EVENTO CLICKED (Salir) Close (Parent)

DATAWINDOWS PARA LA ACTUALIZACIN DE ARTCULOS.

DATAWINDOWS (SQL) CREACIN DE EJECUTABLES

Podemos ingresar los datos desde los controles del Windows: para la tabla Artculos

Cdigo de la aplicacin

para la aplicacin se debe tener en consideracin: Crear un datawindows con el nombre de d_articulos, de tipo Grid Desarrollar un Windows con los controles correspondientes cigualq ue el grafico:

// Profile Comunidad SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=Comunidad;UID=;PWD='"

Power Builder 9.0-10.0

125

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


connect; if sqlca.sqlcode=0 then open(w_iv01) end if CODIGO DEL WINDOWS dw_1.settransobject(sqlca) dw_1.retrieve() Cb_Grabar Evento Clicked EVENTO OPEN

date ven ven= date(Em_1.Text) Insert Into articulos Values (:Sle_1.Text,:Sle_2.Text,:Ddlb_1.Text,:Sle_3.Text,:Sle_4.Text,:ven); /*if sqlca.sqlcode=0 then MessageBox ("se grabara","el dato") end if */ if SQLCA.SQLCODE = -1 Then MessageBox ("Imposible Grabar","Hay un error en los Datos") Else //Recupera los registros del Dw_1 para ver el nuevo Artculo. Dw_1.Retrieve() //Limpia los controles para ingresar otro Artculo Sle_1.Text="" Sle_2.Text="" Ddlb_1.Text="" Sle_3.Text="" Sle_4.Text="" Em_1.Text="" Sle_1.SetFocus() //dw_1.update() End If Cb_Nuevo Dw_1.Retrieve() //Limpia los controles para ingresar otro Artculo Sle_1.Text="" Sle_2.Text="" Ddlb_1.Text="" Sle_3.Text="" Sle_4.Text="" Em_1.Text="" Sle_1.SetFocus() Evento Clicked

DATAWINDOWS PARA LA BSQUEDA ARTCULOS.(ELIMINAR, EDITAR, GRABAR)

ACTUALIZACIN

DE

Power Builder 9.0-10.0

126

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

CREAR UNA FUNCIN POR EL USUARIO

para la aplicacin se va crear funciones utilizadas creadas por el usuario

Dentro del Script seleccionar la opcin de Funtions como muestra en la Fig.

En la funtion Name colocar el nombre de la funcin Se tiene que crear una funcin solo para limpiar a los controles quiere decir que no devuelve valor para ello debe ser de tipo none FUNCION ACTIVAR FUNCIN DESACTIVA //Activa el Botn Grabar y Cancelar Cb_1.Enabled = True Cb_2.Enabled = True //Desactiva el resto de botones Cb_3.Enabled = False Cb_4.Enabled = False Cb_5.Enabled = False Cb_6.Enabled = False FUNCION LIMPIA Sle_1.Text="" Sle_2.Text="" Ddlb_1.Text="" Sle_3.Text="" Sle_4.Text="" Em_1.Text="" //Desactiva el Botn Grabar y Cancelar Cb_1.Enabled = False Cb_2.Enabled = False //Activa el resto de botones Cb_3.Enabled = True Cb_6.Enabled = True Dw_1.Enabled = True Se tiene que declarar como variable global

Variable Global
string p,s

Variable Instancia
String CodArticulo Boolean Actualizacion,Nuevo

WINDOWS
dw_1.settransobject(sqlca) dw_1.retrieve()

EVENTO OPEN

CB _ GRABAR
Integer Sto Decimal Cos Date Ven

EVENTO CLIKED

Power Builder 9.0-10.0

127

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Ven=Date(em_1.text) IF Nuevo = True then Insert Into Articulos Values (:Sle_1.Text,:Sle_2.Text,:Ddlb_1.Text,:Sle_3.Text,:Sle_4.Text,:Ven); End If IF Actualizacion = True Then Cos=Dec(Sle_3.Text) Sto=Integer(Sle_4.Text) Ven=Date(Em_1.text) UpDate Articulos Set codigo=:Sle_1.Text,Nombre=:Sle_2.Text,Tipo=:Ddlb_1.Text, Costo=:Cos,Stock=:Sto,Vencimiento=:ven Where Codigo=:CodArticulo; End if if SQLCA.SQLCODE = -1 Then MessageBox ("Imposible Grabar","Hay un error en los Datos") Sle_1.SetFocus() Else //Recupera los registros del Dw_1 para ver el nuevo Artculo. Dw_1.Retrieve() //Pregunta si es Nuevo para poder ingresar otro Artculo If Nuevo = True Then //Ejecuta las instrucciones del boton Nuevo para ingresar otro Artculo Cb_3.TriggerEvent(Clicked!) End If End If

CB _ CANCELAR
//Borra un Mensaje St_Mensaje.Text="" Desactivar() //Limpia los controles Limpia() Cb_3.SetFocus() Sle_Buscar.Text=""

EVENTO CLIKED

CB _ NUEVO_ARTICULO
//Muestra un Mensaje St_Mensaje.Text="Nuevo" Actualizacion=False Nuevo=True Activar() //Limpia los controles para ingresar otro Artculo Limpia() Sle_1.SetFocus() CB_ ACTUALIZAR

EVENTO CLIKED

EVENTO CLIKED

//Muestra un Mensaje St_Mensaje.Text="Actualizando" Actualizacion=True Nuevo=False //Almacena el Cdigo del Artculo que est actualizando CodArticulo = Sle_1.Text Activar() Sle_1.SetFocus() CB_ ELIMINAR

EVENTO CLIKED

Integer R R=MessageBox ("Confirme","Desea eliminar este artculo",Question!,Yesno!)

Power Builder 9.0-10.0

128

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


If R=1 Then Delete From Articulos Where Codigo=:Sle_1.Text; Commit; //Limpia los controles Sle_Buscar.Text="" St_Mensaje.Text="" Limpia() Dw_1.Retrieve() //Desactiva los Botones Actualizar y Eliminar Cb_4.Enabled = False Cb_5.Enabled = False Sle_Buscar.SetFocus() End If CB_ CERRAR Close(w_sql02) SLE_BUSCAR

EVENTO CLIKED EVENTO MODIFIED

String Nom,Cod,Tip //, Ven Decimal Cos Integer N,Sto Date Ven N=Len(Sle_Buscar.Text) Select codigo,nombre,tipo,costo,stock,vencimiento into :Cod,:Nom,:Tip,:Cos,:Sto,:Ven from articulos where Left(Nombre,:N) = :Sle_Buscar.Text; If Sqlca.SqlCode=100 THEN MessageBox("Verifique","El nombre no existe") //Limpia los controles para ingresar otro Artculo Limpia() Cb_4.Enabled=False Cb_5.Enabled=False //Borra el Mensaje St_Mensaje.Text="" ELSE Sle_1.Text=Cod Sle_2.Text=Nom Ddlb_1.Text=Tip Sle_3.Text=String(Cos,"###,##0.00") Sle_4.Text=String(Sto) Em_1.Text=String(Ven) //Em_1.Text=Ven Cb_4.Enabled=True Cb_5.Enabled=True //Muestra el Mensaje St_Mensaje.Text="Consultando" END IF Referencias Bibliogrficas Juan Jose castaeda Power Builder 9.0 Juan Jose castaeda Full Data Base Jos del Carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0 SQL 2000 La bilia de Sql 200

Lecturas

Power Builder 9.0-10.0

129

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Recomendadas Web a visitar http://www.powerbuilder.org/modules.php?name=Content&pa=showpage&pid=10 http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10 http://www.librosdigitales.net http://www.monografias.com Tutorial de oracle 9i http://www.solotutoriales.com/visitar.asp?id=5414 http://www.inei.gob.pe/biblioineipub/bancopub/inf/lib5022/indice.HTM

Power Builder 9.0-10.0

130

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


CLASES EN POWER BUILDER Cuando s e genera clases en Power Builder se tiene que tener en consideracin. los siguiente paso para ello se debe tener en cuenta. Para que tipo de uso desea dar.

para crear clases visuales se debe de seleccionar Satandard Visual a continuacin les se mostrara la siguiente ventana

uno puede escoger las opciones que cree crear el tipo de clases que puede ser: check box , commandBox commanpicture o datawindow etec. Para el ejemplo se escogera datawindows. Para ello crearemos un datawindows padre para que puede heredar algunas funciones: Y se mostrara el siguiente grafico.

que se le incrementara la propiedades correspondientes para despus guardar con el nombre de midw_general y a continuacin se debe incrementar una funcin llamada Asignar_DataObj para ello hacemos clic en : insert y luego en Fuctions y nos muestra la siguiente ventana

Power Builder 9.0-10.0

131

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

grabamos la modificaciones PARA CREAR CLASES HEREDADAS , se debe de realizar los siguientes pasos. Clic en File Clic en Inherid

luego seleccionamos midw_general y midw_mantenimiento para luego crea la siguiente funciones:

los

guardanos

esta

clase

con

el

nombre

de

Power Builder 9.0-10.0

132

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Funcin F_ Nuevo

funcin F_Editar

funcin F_Eliminar

funcin f_Grabar

Power Builder 9.0-10.0

133

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

funcin F_Deshacer

luego de terminado las funciones ahora cree un nuevo Windows y seleccione el control Create User object control y se mostrara la siguiente ventana y seleccione midw_mantenimiento

Power Builder 9.0-10.0

134

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

ahora despus tendremos como la figura

ahora incrementaremos los botones de Nuevo; Editar , Eliminar , Grabar, Salir y quedara como la grafica:

Windows Evento Dw_1.SettransObject(SQLCA)

Open

//Dw_1.Asignar_DataObj("Dw_1") Dw_1.Retrieve()

Power Builder 9.0-10.0

135

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


//return cb_nuevo evento clikcled dw_1.f_nueva() return cb_Editar evento clikcled dw_1.f_Editar() return cb_Eliminar evento clikcled dw_1.f_eliminar() return Ahora se ejecuta y tendremos la siguiente aplicacin: cb_Grabar evento clikcled dw_1.f_grabar() return cb_Deshacer evento clikcled dw_1.f_deshacer() return cb_Salir evento clikcled close(w_class)

Power Builder 9.0-10.0

136

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

SEPARATA N 18
ASIGNATURA : Lenguaje de Programacin Comercial EAP : Ingeniera Informtica Seccin : Octavo Turno: NOCHES Ciclo: OCTAVO NAII08 Fecha: 10/07/06 Docente: Ing. ELVIS GUILLERMO, HUARCAYA QUISPE CREAR EJECUTABLES DE UNA APLICACIN Para crear un ejecutable se bebe de tener varias consideraciones: 1. La aplicacin a crear el ejecutable debe estar compilado y ejecutado sin ningn error 2. Debe tener una correcta conexin de Base de datos. Pasos para crear un ejecutable: 1. Clic en File 2. Clic en new 3. click Project , luego seleccionar Application Wizard o Aplication: depues realizar clic en Ok

4. Clic en Next

5. Nos muestra la el directorio donde se creara el ejecutable:

Power Builder 9.0-10.0

137

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

6. En el cuadro de texto podemos cambiar el nombre del ejecutable

7. Nos especifica las libreras bsicas que se creara el ejecutable

Power Builder 9.0-10.0

138

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


8. Seleccione los radios botones de acuerdo al tipo de ejecutable que va realizar si es la primera vez seleccion full build.

9. Seleccione la primera opcin si es que se va realizar para que se puede actualizar automticamente

10. Clic en Next

Power Builder 9.0-10.0

139

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


11. Clic en Next

12. Luego clic en Finish 13. para tener la siguiente ventana

14. A continuacin realice clic en Deploy 15. y el ejecutable se creara en el tree view

Power Builder 9.0-10.0

140

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


16. A continuacin de visualizara el ejecutable.

Donde inmenu es el ejecutable de dicha aplicacin. PROCEDIENTOS ALMACENADOS EN POWER BUILDER Se puede utilizar procedimientos almacenados para la creacin de un datawindows, con los procedimientos creados en power builder o importados desde sql: Ejemplo para la busca de un alumno por codigo: Para ello se debe de realizar una conexin desde el driver nativo de Sql.

Para poder utilizar toda las bondades de SQL server

Se genera un codigo como como la figura anterior tenemos que pegar: Tenemos el un jemplo de cmo se crea el procemiento almacenado en SQL.

Power Builder 9.0-10.0

141

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


CREATE PROCEDURE ver_alumno @nom varchar (20) output, @cod varchar(5) as select @nom = Nombre from Alumno where IDAlumno= @cod return Ejecucin del procedimeitno alamacenado en Sql Server declare @nombre varchar(20) execute ver_alumno @nom=@nombre output, @cod = '3' print @nombre

Pasos para ejecutar en power builder en una paliacin procedimientos almacenados. Coneccin en la aplicacin inicial
// Profile colegio SQLCA.DBMS = "MSS Microsoft SQL Server" SQLCA.Database = "colegio" SQLCA.ServerName = "(local)" SQLCA.LogId = "sa" SQLCA.AutoCommit = False SQLCA.DBParm = "" connect; if sqlca.sqlcode = 1 then messagebox("Aviso", "No se pudo Abrir Coneccin") else // messagebox("Importante", "Coneccin Conforme") open(wpasword) end if

Lb_1

Sle_1

Cb_1
Windows con el diseo de la aplicacin Evento open del Windows (W_busAlumno) //Se crea un objeto transaction sqlca // Profile colegio SQLCA.DBMS = "MSS Microsoft SQL Server" SQLCA.Database = "colegio" SQLCA.ServerName = "(local)" SQLCA.LogId = "sa" SQLCA.AutoCommit = False SQLCA.DBParm = "" connect; CONNECT USING SQLCA;

Power Builder 9.0-10.0

142

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


Se declara el procedimiento el en VARIABLE GLOBAL String sNom = space(6) //CONNECT USING SQLCA; DECLARE sp_ver PROCEDURE FOR dbo.ver_alumno @cod = :sle_1.text, @nom = :sNom OUTPUT using sqlca; Ejecuta el procedimiento: Evento click cb_1 string s_mensage CONNECT USING SQLCA; execute sp_ver; DO WHILE sqlca.sqlcode =0 fetch sp_ver into :s_mensage; if sqlca.sqlcode=0 then lb_1.additem(s_mensage) //messagebox("smensage", s_mensage) end if loop close sp_ver;

Referencias Bibliogrficas

Juan Jose castaeda Power Builder 9.0 Juan Jose castaeda Full Data Base Jos del Carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0 SQL 2000 La bilia de Sql 200

Lecturas Recomendadas Web a visitar

http://www.powerbuilder.org/modules.php?name=Content&pa=showpage&pid=10 http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10 http://www.librosdigitales.net http://www.monografias.com Tutorial de oracle 9i http://www.solotutoriales.com/visitar.asp?id=5414 http://www.inei.gob.pe/biblioineipub/bancopub/inf/lib5022/indice.HTM

Power Builder 9.0-10.0

143

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


ARRAYS (ARREGLOS) Una variable tradicional tal como la que hemos visto, es un lugar de almacenamiento simple en memoria que no puede matener mas de un valor a la vez. Sin embargo Power Builder proporciona algunos tipos de variables especiales que pueden mantener valores mltiples. El ms conocido de estos es ARRAY. Un array es una variable especial que mantiene muchos lugares de almacenamientos, no slo uno. Una array puede ser simple o multidimensional. Los arrays de dimensiones simples puede tener un tamao fijo o un tamao variable. Mientras los arrays multidimensionales deben tener una medida fija. Los arrays pueden ser de cualquier tipo de datos y son declarados de una manera similar a las variables de valor simple. Para crear un arreglo escriba el nombre del arreglo en la sentencia de declaracin con un par de corchetes. Si los corchetes contienen dos o ms nmeros, este es un arreglo de tamao fijo. Si lo corchetes estn vacos es un arreglo de tamao variable. Ejemplos: Lo que ms desea un estudiante de este curso.... String apellidos[50] // declaro un array con una cantidad fija de elementos Date fechanac[] // declaro un array con un tamao variable. Dec array[0 to 30] // declaro un array con 31 elementos Dec array[5,3] // declaro un array multimensional con 5 filas 3 columnas (1,1)

(3,2)

(5,3)

Un ejemplo claro, para aprender el uso de ARRAYS TIPO DE DATOS STRUCTURE (ESTRUCTURA) Structure es un tipo de variable definido por el programador. Una variable simple de estructura puede mantener mltiples valores, algo parecido a un arreglo (array). Use al pintor de la Estructura para definir las estructuras globales (los grupos de variables) para el uso en su aplicacin. Usted no puede usar al pintor de la Estructura para definir una estructura local. Pasos para crear un TIPO DE DATO STRUCTURA

Power Builder 9.0-10.0

144

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

Nombre de la estructura, recomiendo usar los prefijos (s_alumno)

Escribe nombre de la variable y al lado izquierdo elegir el tipo de dato

Power Builder 9.0-10.0

145

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


A continuacin guardar la ventana (clic en el icono del -para los despistados-), una vez ms vuelvo a recalcar utilizar los prefijos; en este caso a la estructura lo llamaremos s_alumno. Ahora bien ya esta definida la variable de tipo estructura, lo que nos falta es asignar a una variable es tipo de estructura. Lo graficar as para su mayor entendimiento.

Lo que la imagen de arriba muestra significa que estoy declarando el tipo estructura s_alumno a la variable alumnos. Pero ah no queda todo solo falta signar datos a este tipod e variables. Es sencillo.

y listo terminamos con el tipo de datos Structure. Continuamos con ... ambito de las variables Cada vez que se declara una variable, no solo especifica su nombre y tipo de datos sino tambien su AMBITO. El ambito de la variable determina dos caractersticas

Power Builder 9.0-10.0

146

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial


LEFESPAN. (Tiempo de vida). Cundo existe la variable?, Cunto tiempo vivir?, y cundo deja de existir? VISIBILITY (Visibilidad). Qu scripts pueden ver, compartir y cambiar la variable? Se determina el alcance de una variable, decidiendo donde declararlo. Cada variable debe ser declarada en alguna parte dentro de la aplicacin. Sin embargo existen cinco lugares para declarar la variable y esto determina el alcance de la variable.

EXISTE LAS VARIABLES GLOBALES, INSTANCIA SHARED Ambito de la variable Local Instancia Visibilidad Slo el script en el que se declara Instance Variables Para todos los scripts dentro de una instancia simple del objeto en que es declarado y opcionalmente a la entera aplicacin. Los siguientes tipos de objetos pueden tener variables de instancia: Ventana, aplicacin, objeto de usuario y men. Shared Variables Para todos los scripts dentro de las instancia de los objetos en el que es declarado . Los siguientes tipos de objetos pueden tener variables de instancia: Ventana, aplicacin, objeto de usuario y men. Global Variables Para todos los scripts en una aplicacin Global y External Declaracin de functions funciones fuera del mbito de Power Builder como lo son las FUNCIONES API DE WINDOWS declaracion Script Tiempo de vida Hasta que el script termine Hasta que la instancia del objeto se cierre.

Compartida

Hasta que termine

Global FUNCIONES EXTERNAS

Hasta que la aplicacin termine. Hasta que termine la aplicacin.

Power Builder 9.0-10.0

147

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

y 3 controles listbox

Para comenzar a trabajar con los arreglos se debe asignar primero los valores en memoria y luego asignamos los valores segn el tipo seleccionado a un control ListBox como en el ejemplo anterior. Notas: Para concretizar el ejemplo anterior utilizamos un control commandbutton donde codificamos

Ms Ejemplos: Integer numeros[3]= {1000,2000,3999} Para asignar los valores a los arrays creados seguimos los siguientes pasos: String apellidos[4]={Vsquez, Pando, Ticona, Arocutipa} Date fechanac[2]={1977-07-26,1981-10-28} Int edades[]={21,23,25,27,29,9} LLAMADAS DE FUNCION Como veremos en el capitulo proximo sobre funciones, stas son mdulos de programas que se definen una vez y es llamado desde muchas partes en la aplicacin. Es mejor llamar a una funcin que realizar muchas copias del mismo cdigo. Llamada de una funcin Variable de retorno= nombre funcin (parmetros) Ejemplo: Integer r R= asc(@) Referencias Juan Jose castaeda Power Builder 9.0 Bibliogrficas Juan Jose castaeda Full Data Base Jos del Carmen Canchucaja Power Builder 9.0 Joel Carrasco Aplique Power Builder 8.0 SQL 2000 La bilia de Sql 200 Lecturas Recomendadas Web a visitar http://sybooks.sybase.com/onlinebooks/group-pb/pbg1000e/ http://www.powerbuilder.org/modules.php?name=News&new_topic=10 http://www.librosdigitales.net http://www.solotutoriales.com/visitar.asp?id=5414 http://www.inei.gob.pe/biblioineipub/bancopub/inf/lib5022/indice.HTM

Power Builder 9.0-10.0

148

Elvis G. Huarcaya Quispe

Lenguaje de Programacin Comercial

Power Builder 9.0-10.0

149

Elvis G. Huarcaya Quispe