Está en la página 1de 17

APLICACIN DE DATASTORE, CURSORES, IMPRESIN

CURSO

: COMPUTACIN II

INTEGRANTES:

ASCOY GUERRA BRYAN


BERMUDEZ SILVA ALLAN
GONZALES MACHADO LUIS
LOPEZ MENDOZA EDUARDO
VSQUEZ CABALLERO OSCAR

DOCENTE

CICLO

: VEGA MORENO CARLOS

: III

INDICE

Data Store
Qu es Data Store?
Ejemplo de Data Store
Por qu y cundo se utiliza Data Store?
Cursores
Qu es un cursor?
Sentencia en el uso de cursores
Ejemplo de cursores
Sintaxis de un cursor
Declarar un cursor
Impresiones
Qu es una impresin?
Funciones de impresin
En la aplicacin
Linografia

DATASTORE
El DataStore es un control DataWindow no visual, la ventaja principal de usar un
DataStore frente a un DataWindow es que consume menos recursos, por ende es ms
eficiente en recuperar datos.
La manipulacin de un DataStore es similar a un DataWindow. En el siguiente ejemplo
dejo el cdigo para declarar y recuperar datos usando un DataStore.
DataStore ds_prueba //Declara variable del tipo DataStore
ds_prueba=Create DataStore //Se Instancia la variable
ds_prueba.DataObject="dw_authors" //Se establece el objeto DataWindow
ds_prueba.SetTransObject(SQLCA) //Se conecta a la BD
ds_prueba.Retrieve() //Recupera la informacin
DESTROY ds_prueba

Nota: el DataObject siempre se establece antes de conectar el DataStore a la Base de


Datos.

Un DataStore cumple la misma funcin que un DW oculto; pero la ventaja es que


emplea pocos recursos del sistema.
Por ejemplo, puedes usar cuando resulta incmodo mostrar un informe grande, y
como no es necesario verlo, sino imprimirlo, puedes emplear un DataStore. O
tambin puedes usarlo, cuando deseas pasar ciertos datos de un DW visible a otro
DW invisible (en este caso, se usa el DataStore) y tener guardado los datos de este
ltimo.

Ejemplo:
Vamos a recuperar datos dentro de un DataStore, para imprimirlo.
datastore lds_dstore
lds_dstore = CREATE datastore
lds_dstore.DataObject="d_Empleado"
lds_dstore.SetTransObject (SQLCA)
lds_dstore.Retrieve()

lds_dstore.Print() //Imprimimos:
Destroy lds_dstore //No olvides destruirlo

Por qu y cundo se utiliza DataStore?


Utilizamos el almacn de datos, si queremos trabajar con los datos en datawindow, pero
slo en el fondo. El usuario no necesita ver los datos en s.
S, de hecho, podemos utilizar DataWindow tambin para hacer eso, con desactivacin en
la propiedad visible. Pero, es media, tiene que insertar el control de la base de datos de la
aplicacin, y tambin significa que el control siempre en la memoria siempre y cuando la
aplicacin se est ejecutando. Con DataStore, slo tiene que crear el control cuando se
necesita, y puede ser destruido cuando ya no sean necesarios.

CURSORES
El cursor bsicamente lo que hace es recorrer todos los registros devueltos por una
consulta sql, el cual lo recorremos mediante bucles una vez abierto el cursor.
Sentencias en el uso de cursores.

DECLARE, especfica la sentencia SELECT del cursor. Sirve para declarar un


cursor antes de ser utilizado.

OPEN, ejecuta la sentencia SELECT del cursor.

FETCH, Permite leer una fila o registro de una tabla y almacena los valores de
una fila del cursor en las variables que nosotros lo definamos.

UPDATE WHERE CURRENT OF cursor, actualiza la fila buscada.

DELETE WHERE CURRENT OF cursor, borra la fila buscada.

CLOSE, termina el procesamiento del cursor.

EJEMPLO CURSORES
3

Un Cursor un PB es una forma muy util para procesar un set de resultados registro por
registro.
string depto
string empleado
string nombre

DECLARE dept_curs CURSOR FOR SELECT codigo,


nombre FROM departamentos;
OPEN dept_curs;
if SQLCA.sqlcode < 0 then
MessageBox("Open Cursor",SQLCA.sqlerrtext)
end if

DO WHILE SQLCA.sqlcode = 0
FETCH dept_curs INTO :depto, :empleado;

if SQLCA.sqlcode < 0 then


MessageBox("Fetch Error",SQLCA.sqlerrtext)
elseif SQLCA.sqlcode = 0 then
SELECT nombre_empleado INTO
:nombre FROM empleados

WHERE emp_id = :empleado;

if SQLCA.sqlcode <> 0 then


MessageBox("select", &
SQLCA.sqlerrtext)

end if
end if
LOOP
CLOSE dept_curs;

if SQLCA.sqlcode <> 0 then


MessageBox("Close Cursor", SQLCA.sqlerrtext)
end if

//fin del codigo

SINTAXIS DE UN CURSOR
DECLARE <nombre_cursor> CURSOR FOR
SELECT <columna 1>,
<columna 2>,
....
FROM <tabla 1>,
<tabla 2>,
etc....
WHERE <condicion>
USING <objeto de transaccion>;

Ejemplo:
Datos:
SELECT A.campo1, b.campo2
FROM tabla1 a, tabla2 b
WHERE tabla1.campo = tabla2.campo INTO cursor X

En el script
DECLARE cursor_x CURSOR FOR
SELECT a.campo1, b.campo1
FROM tabla1 a, tabla2 b
WHERE (a.campo = b.campo)
USING SQLCA;

Luego para abrir el cursor


OPEN <cursor>;

Y para leer el resultado


FETCH <cursor>
INTO :<variable1>,
:<variable2>,
...
:<variable...>;

Y finaliza cerrando el cursor


CLOSE <cursor>;

Por lgica los valores seleccionados en el script, debern ser asignados a variables del
mismo tipo.
El fetch actualiza los valores.
DECLARAR UN CURSOR

DECLARE CursorName CURSOR FOR SelectStatement


{USING TransactionObject} ;
Se lo usa para crear listas de una tabla, estas listas pueden ser recorridas registro
por registro.

CursorName; El nombre de la lista que se creara.


SelectStatement: Seleccin de los campos usando un select del sql, la lista se
formara con los campos que conforman el select.
TransactionObject; El nombre del objeto de la transaccin, se lo usa cuando se usa
una transaccin del tipo SQLCA.

Ejemplo:
DECLARE c1 CURSOR FOR
SELECT cod_testigo, nombre
FROM Testigo;
Crea un cursor (lista) llamado c1, el cual est formado por 2 campos cod_testigo, y
nombre de la tabla testigo.
FETCH NEXT Cursor | Procedure INTO HostVariableList
Recorre el cursor (lista), este recorrido se lo hace de forma secuencial.
Cursor: Nombre del cursor que se recorrer.
HostVariableList: Las variables en las cuales se almacenaran los campos de la lista que se
est recorriendo.
Ejemplo:
integer i,n,cod
string nom
DECLARE c1 CURSOR FOR
SELECT cod_testigo, nombre
FROM Testigo;
SELECT count(*)
INTO :n
FROM testigo;
OPEN c1;
for i= 1 to n
FETCH NEXT c1 INTO :cod, :nom;
sle_1.text=string(cod)
sle_2.text=nom
next
CLOSE c1;
Se crea el cursor, se cuenta el nmero de registros, se abre el cursor, y se recorre el cursor
(lista), luego se presenta cod, nom, y se lo presenta en pantalla, al final se cierra el cursor.

IMPRESION
Esta funcin se utiliza cuando queremos enviar el contenido de un datawindows a la
impresora.
Podemos usar las diferencias funciones:
Modify(string).- Modifica especificaciones sobre DataWindows, estas especificaciones son
cambiadas o pueden ser cambiadas desde un scrip cualquiera, puede aadir quitar objetos
del DataWindow, para proveer especificaciones que el usuario desee o requiera.
Ejemplo:
dw_1.modify("datawindow.print.preview.zoom=" + &
string(integer(dw_1.describe("datawindow.print.preview.zoom")) + 10))
El ejemplo pone el zoom del DataWindow maestro en un 10 % es decir se puede
incrementar o decrementar el Zoom del datawindow, esto se lo usa especialmente en los
reportes de tipo COMPOSITE, que son aquellos que sirven para la presentacin de
reportes escritos o en pantalla.
print()
Imprim lo que se encuentra en el DataWindow.
ejemplo:
dw_maestro.print()

Printsetup().- Muestra el cuadro de dialogo para seleccionar impresora.

Modify(cadena)
Modifica las propiedades asociadas a un DataWindow, puede adicionar o mantener
objetos del DataWindow
Ejemplo.- Datrawindow imprime
imprime=dw_2
imprime.modify("datawindow.print.copies = " + "2")
Determina que el nmero de copias que sern impresos es 2 cuando se imprima el
datawindow mediante el comando print.

EN LA APLICACIN

VENTANA DE INGRESO
DE EMPLEADOS

CREACION DEL
DATASTORE usuario,
en el evento Open de la
ventana Seguridad

Comparamos la clave
ingresada con la base de
Datos, y luego destruimos
en DataStore.

Ventana Bsqueda de
Prendas, utilizando
Cursores.

Creamos el cursor
CURSOR1, en el evento
Open de la ventana
w_busqueda_rapida.

Utilizando sentencia Sql


asignamos a las variables el
contenido de cada atributo. Y se
muestra en cada SingleLineEdit

10

Esta ventana fue creada para


mostrar e ingresar nuevos
productos, mediante DataStore

Creamos DataStore para cada


control DropDownListBox Tipo,
Prenda, Encargado, Proveedor; y
as poder llenar los datos del
nuevo producto.

11

En el evento CloseQuery, antes


de cerrar una ventana,
destruimos todos los DataStore
creados.

12

Para el uso de
impresiones, creamos
ventanas de reporte
tanto para
empleados,
proveedores y
productos.

13

En todas las ventanas de


Reportes se trabaj con los
siguientes CommandButton.

CommandButton Vista Previa:


Muestra cmo se ver el
documentos antes de imprimir.

CommandButton Regla: Muestra


una regla en el contorno del
documento para poder editar
antes de imprimir.

CommandButton Zomm:
Aumenta y reduce la visin del
documento, con un 10%.

14

CommandButton Imprimir:
Manda el documento a la
impresora.

DropDownListBox Orientacin:
Es la opcin de manipular la
orientacin del documento
(Horizontal o Vertical)

CommandButton Copiar:
Permite considerar el nmero
de documentos a imprimir,
ingresados en el sle_1.

15

LINKOGRAFA

http://www.lawebdelprogramador.com/foros/Power_Builder/27429CURSORES_EN_PB.html
http://es.scribd.com/doc/6878574/Powerbuilderuso-de-Cursores
http://www.todoexpertos.com/categorias/tecnologia-e-internet/programacion/powerbuilder/respuestas/638245/creacion-de-cursor
http://sourcepy.blogspot.com/2011/12/como-declarar-y-usar-cursor-en-power.html
http://www.lawebdelprogramador.com/foros/Power_Builder/1321619Crear_Datastore.html
http://www.lawebdelprogramador.com/foros/Power_Builder/512601COMO_TRABAJAR_CON_DATASTORE.html
http://www.lawebdelprogramador.com/foros/Power_Builder/426479-Impresion_dw.html

16

También podría gustarte