You are on page 1of 20

tore, Cursores Impresiones en P

Docente:

Briones Pereira Lisbeth.

Curso:

Computacin II.

Integrantes:
Bonifaz Ponte Katherine.
Colonia Lizano Carlos.
Crispn Ramirez Arlys.
Reyes Arauco Abner.
Robles Lpez Glimar.
Suyn Martinez Nataly.
Rodriguez Rodriguez Cesar.
Vargas Rodriguez Eliezer.
.

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
Linkografa

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


Utilizamos DataStore 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,
cuando
resulta incmodo mostrar un informe grande

CURSORES
El cursor bsicamente lo que hace es recorrer todos los registros devueltos por una

consulta sql, el cual 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,

DELETE WHERE CURRENT OF cursor,

CLOSE,

actualiza la fila buscada.

borra la fila buscada.

termina el procesamiento del cursor.


3

EJEMPLO CURSORES

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

D T STORE 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-einternet/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/1321619-

Crear_Datastore.html
http://www.lawebdelprogramador.com/foros/Power_Builder/512601COMO_TRABAJAR_CON_DATASTORE.html
http://www.lawebdelprogramador.com/foros/Power_Builder/426479Impresion_dw.html

You might also like