You are on page 1of 8

VOCABULARIO (POWER BUILDER)

Tipos de Ventanas (Windows) Hay varios tipos de ventanas Windows Main : Son ventanas que son independientes de otros windows. La primera ventana (window) abierta en la aplicacin es el window Main, a menos que sea una aplicacin MDI. Window Popup : Un popup tiene una ventana de origen como la ventana pequea pero no tiene todas las limitaciones. Window Child : Los windows Child son siempre abiertos desde un window main o popup, los que llegan a ser su window parent. Un window Child slo existe dentro de su parent. No puede tener asociado un men y nunca son considerados como el window activo. Un window child se cierra cuando su parent se cierra. Window Response : Los window response piden informacin al usuario, siempre son abiertos dentro de otro window ( su pariente ). MDI Frame : Un MDI window es un frame window, y es usado cuando el usuario necesita organizar los trabajos con mltiples ventanas

Ejemplo : Ventana de impresin ( tpico ejemplo de una ventanaResponse )

Eventos de una Ventana Al igual que se ha visto en el Painter Application y tal como se ver en el resto de objetos de PowerBuilder, al pulsar el botn derecho sobre la ventana y escoger la opcin script, se abre la ventana de edicin de cdigo. Los eventos ms utilizados a la hora de codificar en una ventana son:

Evento

Descripcin

Activate: Ocurre inmediatamente despus de abrirse la ventana. La ventana activa se muestra con un ttulo sumamente iluminado. Clicked: Ocurre cuando se hace un click en una ventana, pero no dentro de

los controles (as como un command Bottom). Close:Ocurre antes de que la ventana est desactivada y cerrada. Close Query: Los query de una ventana le dan una oportunidad de manejar cualquier ltimo detalle, as como guardar cualquier cambio actual a un archivo o una tabla. El evento ocurre antes del cierre de eventos y es posible que reuse a permitir que la ventana se cierre. Desactivate: Este evento es impulsado antes de que la ventana llegue a estar inactiva. Double Clicked: Ocurre cuando se hace doble click en una ventana, pero no dentro de los controles. DragDrop: Ocurre cuando el modo drag y el puntero drop estn en un objeto de la ventana (no dentro de un control) DragEnter: Ocurre cuando el modo drag est en un objeto de entrada de la ventana. DragLeave: Ocurre cuando el modo drag est en los objetos que van a salir de la ventana. DragWithin: Cuando el modo drag est en los eventos que son impulsados peridicamente mientras que un objeto est dentro de la ventana. Hide: Esta ventana se hace invisible. HotLinkAlarm: Ocurre despus que una conexin DDE ha sido efectuada. Key: Ocurre cuando el teclado es presionado y el foco no est dentro de un control de edicin. MouseDown: Ocurre cuando se da click al botn izquierdo del mouse. MouseMove: Ocurre cuando el mouse se ha movido dentro de la ventana. Mouse Up: Ocurre cuando el botn del mouse es soltado dentro de la ventana y el sealador no est localizado dentro de cualquier control activado. Open: Este evento ocurre al abrirse, antes de que el usuario vea nada. Other: Todo los eventos de la otra ventana que han sido sealados por los eventos del PB, estn ruteados en este evento, raramente se usar este evento. Rbutton Down: Ocurre cuando se presiona el botn derecho del mouse. Resize: Ocurre al cambiar el tamao de la ventana. Show: Este evento es impulsado antes de llamar a la funcin show. SystemKey: Evento impulsado antes que el usuario presione la tecla Alt

(usualmente en combinacin con otra tecla) y el foco no estar dentro de un tipo de edicin activa del control. Timer: Ocurre con intervalos especficos como colocar la funcin de tiempo. El evento del tiempo es solamente impulsado si la funcin del timer fue llamada. Funcione s de una Ventana

Las funciones que se mencionan a continuacin se aplican especficamente a los objetos de las ventanas: ArrangSheets: Organiza a las hojas de las ventanas en un estilo especfico, como tiled o cascada. Change Menu: Asigna el men asociado con una ventana a una named men ClasName: Retorna el nombre de la ventana. GetActiveSheet: Retorna cual es la ventana que est actualemente activa en la ventana de hoja. Hide: Hace que la ventana se haga invisible. Move: Cambia la ventana a una nueva posicin. ParentWindow: Retorna cual es la ventana padre. Pointer X: Devuelve la actual posicin horizontal del puntero. Pointer Y: Devuelve la actual posicin vertical del puntero. Postevent: Adiciona un evento a la cola de mensaje de un objeto (un mensaje asincrnico). Resize: Cambia el actual tamao de la ventana. SetFocus: Activa el foco de la ventana, haciendo que sta sea la actual ventana activa. Setmicrohelp: Asigna un texto en lnea de status del MDI y lo displaya. SetPosition: Mueve la ventana al frente o posterior a otra ventana. SetRedraw: Enciende o apaga el estado de actualizacin para una ventana. Show : Displaya una ventana.

TriggerEvent: Enva un mensaje para un evento del objeto. TypeOff: Retorna el tipo de objeto Introduccin a los Controles

Cuando se ejecuta la aplicacin los usuarios interactan generalmente con los controles colocados en la ventana (window). Hay dos tipos de controles : - Controles que tienen eventos - Controles sin eventos (Group Boxes y los drawing objects (objetos para dibujar)). Hay controles para: Mostrar y / o manipular valores:
Static text SingleLineEdit MultilineEdit

EditMask CommandButton Data Window (control especial para la presentacin de datos) PictureButton User Object TreeView, ListView, Tabs.

Ejemplo Prctico:

En esta ventana se muestra la mayora de los controles. Pero pegados en la ventana, por si solos, sin tener cdigo (script) en cada uno de sus eventos, no realizan ninguna accin. Una aplicacin consta bsicamente de un objeto aplicacin, menus, ventanas y datawindows. Para que todos estos objetos interactuen con la data, se necesita programar en el script (ver Cap 7).

Profilestring
gstr_coneccion.archivo_ini= "database_web.ini" gstr_coneccion.servidor = Profilestring(gstr_coneccion.archivo_ini,'sql_server','servername_sql','') gstr_coneccion.database = Profilestring(gstr_coneccion.archivo_ini,'sql_server','database_web','') asumo q mi archivo INI este en la misma ruta de mi proyecto.

Pues bien aqu dejo una muestra del archivo INI usado en este ejemplo. Nombre del Archivo: conexion.ini

[sqlserver] DBMS=MSS Microsoft SQL Server 6.x Database=prueba ServerName=ATENA LogId=sa

Cdigo para realizar la conexin

String startupfile startupfile="conexion.ini" SQLCA.DBMS = ProfileString (startupfile, "sqlserver", "DBMS", "") SQLCA.database = ProfileString (startupfile, "sqlserver", "Database", "") SQLCA.servername = ProfileString (startupfile, "sqlserver", "ServerName","") SQLCA.logid =ProfileString (startupfile, "sqlserver", "LogId", "") SQLCA.logpass ="contrasea" connect using SQLCA;

Los archivos INI tambin son tiles para almacenar informacin acerca de las preferencias de los usuarios as como otros parmetros usados por la aplicacin.

classname()
Cada objeto de power builder cuenta con una funcin que te devuelve el nombre del objeto, classname(), con esta funcin puedes descubrir el nombre del objeto, si el nombre coincide con el que tienes definido como restringido, simplemente al propio objeto le colocas la propiedad visible en FALSE, Ej.
STRING ls_nom_menu STRING ls_opcion ls_opcion = 'm_opcion' ls_nom_menu = m_principal.m_existencias.m_opcion.classname() IF (LOWER(ls_nom_menu) = LOWER(ls_opcion)) THEN m_principal.m_existencias.m_opcion.visible = FALSE END IF

POSTEVENT POSTEVENT('<evento>') --> ejecuta un evento al finalizar un procedimiento

TRIGGEREVENT TRIGGEREVENT('<evento>') --> ejecuta un evento al instante.

dwItemStatus
Cuando haces update() a una dw PB genera automticamente el sql necesario para actualizar la bd (ya sea update, insert o delete) y solamente actualiza los datos que fueron modificados. Para esto PB maneja internamente un estado para cada columna/fila de la dw. Los estados son del tipo dwItemStatus. Los valores posibles son: NotModified! : Sin cambios (cuando los traes) New! : De registros nuevos NewModified! : Un registro nuevo que sufri alguna modificacin DataModified! : Un registro recuperado y posteriormente modificado. Se puede cambiar el estado de la fila pero con ciertas restricciones, todo esto esta en la ayuda en la parte de dwItemstatus y update. Para ver / cambiar el estado usas: dwcontrol.GetItemStatus ( row, column, dwbuffer ) dwcontrol.SetItemStatus ( row, column, dwbuffer, status )

describe()
Describe.- Se lo usa sobre Datawindos para determinar que propiedades estn asignadas a ellos, estas pueden ser: impresora, tabla, todos los objetos y propiedades asignadas a un DataWindow. Ejemplo: string cadena cadena = imprime.Describe("DataWindow.Printer") En cadena se almacena la impresora que esta asignada en el Datawindow, esta puede ser asignada por el usuario o por el sistema (por defecto).

Con la funcin describe(), preguntas los valores de por, y de cada columna, por medio de su intentar en el datawindow, al igual que preguntas por el valor de tag. ejm. INTEGER li_col INTEGER li_for STRING ls_col_name li_col = INTEGER(dw_1.Describe("DataWindow.Column.Count"))

/*Este codigo lo debe de poner en el evento "resize" de la ventana en la cual esta el objeto, se pone en el evento resize para cuando maximize o restaure o si estira la ventana automaticamente realiza ese evento. Si le cambia el nombre al objeto tambien se lo debe de cambiar en el codigo de p_1 al nombre nuevo */

//Setredraw
This.Setredraw( False) //es para redibujar p_1.x = 0 //posiciona al objeto hacia a la izq p_1.y = 0 //sube al objeto

//workspaceheight
/*con el workspaceheight( ) le da la altura de la ventana a la imagen*/ p_1.height = This.workspaceheight( )

// Workspacewidth
/*con el Workspacewidth( ) le da la anchura de la ventana a la imagen*/ p_1.Width = This.Workspacewidth( ) This.Setredraw( True) //es para redibujar

setpointer setpointer(Hourglass!) //nos muestra un icono reloj de arena Setmicrohelp: Asigna un texto en lnea de status del MDI y lo displaya

You might also like