Está en la página 1de 38

40. Crear una ventana como la siguiente:

En esta ventana se utilizará un nuevo control (TabControl), y el DropDown DataWindow.

un nuevo control (TabControl), y el DropDown DataWindow. El Drop Down DataWindow es útil en caso
un nuevo control (TabControl), y el DropDown DataWindow. El Drop Down DataWindow es útil en caso

El Drop Down DataWindow es útil en caso de que se requiera hacer referencia a datos de otras tablas.

de que se requiera hacer referencia a datos de otras tablas. Ultima Fila Siguiente Fila Anterior

Ultima Fila

Siguiente Fila

Ultima Fila Siguiente Fila Anterior Fila Primera Fila

Anterior Fila

Ultima Fila Siguiente Fila Anterior Fila Primera Fila

Primera Fila

Fila Siguiente Fila Anterior Fila Primera Fila Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 27

La estructura de las páginas Departamentos y Niveles es la misma.

40.1.

En la barra de herramientas:

Botón Window Æ New

Con el botón derecho sobre la nueva ventana, o con doble click, modificar las propiedades de la ventana:

Window Type: Popup.

Las opciones Resizable y Maximize Box no deberán seleccionarse.

40.2

Insertar un control Tab en la ventana y darle el tamaño adecuado.

Seleccionar el control insertado y hacer click con el botón derecho del mouse en el área superior que no está ocupada por el TabPage (Cada una de las páginas del control Tab recibe este nombre).

Name: tab_actualizaciones

Seleccionar Bold Selected Text (El texto de la página seleccionada se

muestra en negrilla) OK

40.2.1. Hacer click con el botón derecho dentro de la primera página (la que tiene el texto none) y elegir propiedades:

Name: tabpage_empleados

Tab Text: Empleados

OK

40.2.2. Insertar los demás controles en la ventana (como lo muestra la figura)

Un DataWindow control (se usa el botón que se encuentra en la barra de herramientas junto con los demás controles. No confundir con el boton de DataWindow Object que se encuentra en la barra de herramientas

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 28

superior o PowerBar).En las propiedades del nuevo DataWindow elegir name: dw_act_empleados y seleccionar VscrollBar.

Los botones Nuevo (cb_nuevo), Borrar (cb_borrar), Actualizar

(cb_actualizar), Cargar Datos (cb_cargar).

Los botones para desplazarse por las filas del DataWindow: Primero (cb_primero), Siguiente (cb_siguiente), Anterior (cb_anterior), Ultimo (cb_ultimo).

40.2.3. Guardar el trabajo: File4Save. El nombre de la nueva ventana será

w_actualizaciones.

40.2.4. Modificar la opción actualizar del menú, para que se abra la nueva

ventana:

En la barra de herramientas oprimir el botón Menu.

Seleccionar el menú ya realizado (p.ej. m_principal) 4OK

Seleccionar la opción Actualizar en la ventana de edición del menú.

Oprimir el botón Script en la barra de herramientas

Escribir open(w_actualizaciones)

Cerrar la ventana del editor de texto y la ventana de edición del menú.

Guardar las modificaciones hechas al menú.

40.2.5. Correr la aplicación y probar el funcionamiento del menú y la nueva

ventana.

40.2.6. Crear un DataWindow Object en el que se relacionen el código y nombre

de los departamentos. (se usa el botón DataWindow de la barra de

herramientas PowerBar)

En la ventana Select DataWindow: 4New

En la ventana New DataWindow:

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 29

ÿ Data Source 4 SQL Select

ÿ Presentation Style 4 Grid

En la ventana Select Tables seleccionar la tabla departamento. 4 Open

Seleccionar

las

columnas

código

de

departamento

y

nombre

de

departamento.

 

Pasar a diseño de salida: En la barra de herramientas es el ícono que

dice "SQL"

Colocar los encabezados apropiados.

 

File4Save. En la ventana Save DataWindow:

 

ÿ Name: ddd_depto (será utilizado como DropDownDatraWindow)

ÿ OK

ÿ Cerrar la ventana de edición del DataWindow

40.2.7. Crear un DataWindow Object para actualizar los datos relacionados

con los empleados.

En la ventana Select DataWindow: 4New

En la ventana New DataWindow:

ÿ Data Source 4 SQL Select

ÿ Presentation Style 4 Tabular

En la ventana Select Tables seleccionar la tabla Empleado. 4 Open

Seleccionar todas las columnas de la tabla empleado.

Pasar a diseño de salida: En la barra de herramientas es el ícono que

dice "SQL" Elegir Properties en el menu poup (con el botón derecho sobre el

DataWindow):

ÿ En la página General: Color 4 ButtonFace

ÿ OK

Para los encabezados de todas las columnas: Elegir Properties en el

menu poup (con el botón derecho):

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 30

ÿ En la página General: Border43D Raised. Text 4modificar el texto

ÿ En la página Font: Background 4ButtonFace.

ÿ OK

Para la columna dept_id (código de departamento): Elegir Properties en

el menu poup (con el botón derecho):

ÿ En la página General: Border43D Lowered.

ÿ En la página Font: Background 4WndBkrnd.

ÿ En la página Edit:

- Style 4DropDownDW

- DataWindow 4 ddd_depto (el que se creó en el paso 40.2.6.)

- Display Column 4 dept_nombre (nombre de departamento)

- Data Column4dept_id (códigode departamento)

- Wdth of DropDown (ancho del DropDown) 4 300%

- Seleccionar VscrollBar

ÿ OK

File4Save. En la ventana Save DataWindow:

ÿ Name: d_act_empleados

ÿ OK

ÿ Cerrar la ventana de edición del DataWindow

40.2.8. Seleccionar el DataWindow dw_act_empleados en la página

Empleados. Hacer click con el botón derecho y seleccionar la opción

properties del menú poup.

DataWindow Object Name4browse

4d_act_empleados

(el

que se

creó en 40.2.7) OK

40.3. Para agregar una nueva página al control Tab, se hace click con el botón

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 31

derecho sobre el control. En el menú popup 4 Insert Tab Page

40.3.1. Hacer click con el botón derecho dentro de la nueva página (la que tiene el texto none) y elegir properties en el menú poup:

Name: tabpage_actividades

Tab Text: Actividades

OK

40.3.2. Insertar los demás controles en la ventana (como lo muestra la figura)

Un DataWindow control. En las propiedades del nuevo DataWindow elegir name: dw_act_actividades y seleccionar VscrollBar.

Los botones Nuevo (cb_nuevo_a), Borrar (cb_borrar_a), Actualizar (cb_actualizar_a), Cargar Datos (cb_cargar_a). Los nombres de los

botones deben ser diferentes a los utilizados en la página Empleados. Los botones para desplazarse por las filas del DataWindow: Primero (cb_primero_a), Siguiente (cb_siguiente_a), Anterior (cb_anterior_a), Ultimo (cb_ultimo_a).

40.3.3. Crear un DataWindow Object en el que se relacionen el código y nombre de los empleados. (se usa el botón DataWindow de la barra de herramientas PowerBar)

En la ventana Select DataWindow: 4New

En la ventana New DataWindow:

ÿ Data Source 4 SQL Select

ÿ Presentation Style 4 Grid

En la ventana Select Tables seleccionar la tabla empleado. 4 Open

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 32

Seleccionar las columnas código de empleado, nombre y apellido del empleado.

Pasar a diseño de salida: En la barra de herramientas es el ícono que

dice "SQL" Colocar los encabezados apropiados.

File4Save. En la ventana Save DataWindow:

ÿ Name: ddd_empleado (será utilizado como DropDownDatraWindow)

ÿ OK

ÿ Cerrar la ventana de edición del DataWindow

40.3.4. Crear un DataWindow Object en el que se relacionen el código y nombre

de los niveles.

En la ventana Select DataWindow: 4New

En la ventana New DataWindow:

ÿ Data Source 4 SQL Select

ÿ Presentation Style 4 Grid

En la ventana Select Tables seleccionar la tabla nivel. 4 Open

Seleccionar las columnas código de nivel y nombre de nivel.

Pasar a diseño de salida: En la barra de herramientas es el ícono que dice "SQL"

Colocar los encabezados apropiados.

File4Save. En la ventana Save DataWindow:

ÿ Name: ddd_nivel (será utilizado como DropDownDatraWindow)

ÿ OK

ÿ Cerrar la ventana de edición del DataWindow

40.3.5. Crear un DataWindow Object para actualizar los datos relacionados con los actividades de los empleados.

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 33

En la ventana Select DataWindow: 4New

En la ventana New DataWindow:

ÿ Data Source 4 SQL Select

ÿ Presentation Style 4 Tabular

En la ventana Select Tables seleccionar la tabla Actividad. 4 Open

Seleccionar todas las columnas de la tabla Actividad.

Pasar a diseño de salida: En la barra de herramientas es el ícono que

dice "SQL" Elegir Properties en el menu poup (con el botón derecho sobre el

DataWindow):

ÿ En la página General: Color 4 ButtonFace

ÿ OK

Para los encabezados de todas las columnas: Elegir Properties en el

menu poup (con el botón derecho):

ÿ En la página General: Border43D Raised. Text 4modificar el texto

ÿ En la página Font: Background 4ButtonFace.

ÿ OK

Para la columna emp_id (código del empleado): Elegir Properties en el

menu poup (con el botón derecho):

ÿ En la página General: Border43D Lowered.

ÿ En la página Font: Background 4WndBkrnd.

ÿ En la página Edit:

- Style 4DropDownDW

- DataWindow 4 ddd_empleado (el que se creó en el paso 40.3.3.)

- Display Column 4 emp_id (código del empleado)

- Data Column4emp_id (código del empleado)

- Wdth of DropDown (ancho del DropDown) 4 400%

- Seleccionar VscrollBar

ÿ OK

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 34

Para la columna niv_id (código del nivel): Elegir Properties en el menu

poup (con el botón derecho):

ÿ En la página General: Border43D Lowered.

ÿ En la página Font: Background 4WndBkrnd.

ÿ En la página Edit:

 

- Style 4DropDownDW

- DataWindow 4 ddd_nivel (el que se creó en el paso 40.3.3.)

- Display Column 4 niv_id (código del nivel)

- Data Column4niv_id (código del nivel)

- Wdth of DropDown (ancho del DropDown) 4 250%

- Seleccionar VscrollBar

 

ÿ

OK

File4Save. En la ventana Save DataWindow:

ÿ Name: d_act_actividades

ÿ OK

ÿ Cerrar la ventana de edición del DataWindow

40.3.6. Seleccionar el DataWindow dw_act_actividades en la página

Empleados. Hacer click con el botón derecho y seleccionar la opción properties del menú poup.

DataWindow Object Name4browse

4d_act_actividades

(el

que se

creó en 40.3.5)

OK

40.4. El procedimiento utilizado para agregar las dos páginas restantes

(Departamentos y Niveles) es bastante similar al descrito anteriormente.

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 35

40.5. Hasta ahora no se han escrito los programas (scripts) para ninguno de los eventos de los controles creados.

40.5.1. En la ventana w_actualizar, seleccionar la página Empleados

(tabpage_empleados)

Hacer click con el botón derecho sobre la página y seleccionar la opción script en el menú popup. En el editor, seleccionar el evento constructor del listbox de la parte

superior izquierda de la ventana. El siguiente es el código para dicho evento:

-------Evento: constructor-------------- -------Control: tabpage_empleados-------

//Se selecciona el Transaction Object, que proporciona la //información para la comunicación con la base de datos y se //deshabilitan los botones de borrar y actualizar.

dw_act_empleados.SetTransObject(SQLCA) cb_borrar.enabled = false cb_actualizar.enabled = false

Para compilar el script: en el menú; design 4compile; o también Ctrl+L ;

o al cerrar la ventana del editor, se compila automáticamente.

Para el botón que de desplazamiento hasta la primera fila (cb_primero):

-------Evento: clicked-------------- -------Control: cb_primero----------

dw_act_empleados.SetFocus() // El datawindow toma el foco dw_act_empleados.ScrollToRow(1) // Se desplaza hasta la fila No. 1 dw_act_empleados.SetColumn(1) // Se selecciona la primera columna

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 36

Para el botón de desplazamiento a la siguiente fila (cb_siguiente):

 

-------Evento: clicked-------------- -------Control: cb_siguiente----------

long l_fila_actual

dw_act_empleados.SetFocus() l_fila_actual = dw_act_empleados.getrow() //el número de la fila //seleccionada actualmente dw_act_empleados.ScrollToRow(l_fila_actual + 1) //se desplaza a la //fila siguiente dw_act_empleados.SetColumn(1) //se seleccona la primera columna

Para el botón de desplazamiento a la fila anterior(cb_anterior):

 

-------Evento: clicked-------------- -------Control: cb_anterior----------

long l_fila_actual

dw_act_empleados.SetFocus() l_fila_actual = dw_act_empleados.getrow() //el número de la fila //seleccionada actualmente dw_act_empleados.ScrollToRow(l_fila_actual - 1) //se desplaza a la //fila anterior dw_act_empleados.SetColumn(1) //se seleccona la primera columna

Para el botón que de desplazamiento hasta la ultima fila (cb_ultimo):

-------Evento: clicked-------------- -------Control: cb_ultimo----------

long l_numfilas

dw_act_empleados.SetFocus() l_numfilas = dw_act_empleados.RowCount() //se obtiene el número de //filas en el datawindow dw_act_empleados.scrolltorow(l_numfilas) //se desplaza hasta la última dw_act_empleados.setcolumn(1) //se selecciona la primera columna

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 37

Para el botón Cargar Datos (cb_cargar):

 

-------Evento: clicked-------------- -------Control: cb_cargar----------

long l_numfilas

//se recibe la información de la base de datos en el datawindow // dw_act_empleados

dw_act_empleados.retrieve()

l_numfilas=dw_act_empleados.RowCount()

dw_act_empleados.ScrollToRow(l_numfilas)

//Si el número de filas en el datawindow es 0 entonces se deshabilita //el botón de borrar, de lo contrario, se habilita.

if l_numfilas = 0 then cb_borrar.enabled = false

else

cb_borrar.enabled = true

end if

Para el botón de insertar un nuevo empleado (cb_nuevo)

-------Evento: clicked-------------- -------Control: cb_nuevo------------

dw_act_empleados.SetTransObject(SQLCA)

long fila_nueva

//la nueva filase inserta al final del datawindow fila_nueva = dw_act_empleados.InsertRow(0) //el datawindow toma el foco dw_act_empleados.SetFocus() //se desplaza hasta la nueva fila dw_act_empleados.ScrollToRow(fila_nueva)

dw_act_empleados.SetColumn(1)

cb_actualizar.enabled = true

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 38

Para el botón de borrar un empleado (cb_borrar)

 

-------Evento: clicked-------------- -------Control: cb_borrar-----------

long l_fila_actual

dw_act_empleados.SetRedraw (false)

//se guarda el número de la fila seleccionada, que es la que se //eliminará l_fila_actual = dw_act_empleados.getrow()

//se elimina la fila seleccionada dw_act_empleados.DeleteRow (l_fila_actual)

//si después de borrarla no quedan filas en el datawindow, //se deshabilita el botón de borrar if dw_act_empleados.RowCount()=0 then cb_borrar.enabled = false

else

dw_act_empleados.SetColumn(1)

dw_act_empleados.SetFocus()

end if cb_actualizar.enabled = true dw_act_empleados.SetRedraw (true)

Para el botón de actualización de datos, después de haber realizado inserciones y/o borrados (cb_actualizar)

-------Evento: clicked-------------- -------Control: cb_actualizar-----------

dw_act_empleados.SetRedraw (false)

//si la actualización de la base de datos no es exitosa, se dehacen //todos los cambios con la orden rollback. //De locontrario, se realizan todos los cambios con la orden commit. if dw_act_empleados.Update() = -1 then rollback;

else

end if

commit;

dw_act_empleados.SetRedraw (true)

//Si después de actualizar la base de datos no quedan filas en el //datawindow, se deshabilita el botón de actualizar. if dw_act_empleados.RowCount() = 0 then cb_actualizar.enabled = false

else

cb_actualizar.enabled = true

end if

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 39

40.6. Los scripts para los eventos de los controles de las páginas restantes (actividades, niveles y departamentos) son similares a los descritos en 40.5, modificando los nombres de los controles y los datawindows.

40.7. Se agregará un nuevo botón, que permitirá exportar los datos del datawindow a diferent es formatos. La apariencia de la ventana será la siguiente:

es formatos. La apariencia de la ventana será la siguiente: Agregar un nuevo botón, hacer click

Agregar un nuevo botón, hacer click derecho sobre él y elegir la opción properties del menú popup. Name 4 cb_exportar

Text 4Exportar.

OK

Hacer click derecho sobre el botón Exportar y elegir la opción Script del menú

popup Elegir el evento clicked en la parte superior izquierda de la ventana del editor y

escribir el siguiente programa:

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 40

integer i_tab

i_tab = tab_actualizaciones.SelectedTab //la función SelectedTab retorna el número del tabpage seleccionado.

CHOOSE CASE i_tab

CASE 1 //el tabpage seleccionado es el 1 (empleados) w_actualizaciones.tab_actualizaciones.tabpage_empleados.dw_act_empleados. SaveAs("", EXCEL!, TRUE)

//la función SaveAs permite guardar los datos que están en un datawindow //en diferentes formatos de archivo. Esta función utiliza el cuadro de //diálogo "guardar archivo" y permite al usuario elegir el formato al que //desea exportar los datos. En este caso el formato por defecto es el de //la hoja de cálculo EXCEL

CASE 2 //el tabpage seleccionado es el 2 (actividades) w_actualizaciones.tab_actualizaciones.tabpage_actividades.dw_act_actividades. SaveAs("", EXCEL!, TRUE)

CASE 3 //el tabpage seleccionado es el 3 (departamentos) w_actualizaciones.tab_actualizaciones.tabpage_departamento.dw_act_deptos. SaveAs("", EXCEL!, TRUE)

CASE 4 //el tabpage seleccionado es el 4 (niveles) w_actualizaciones.tab_actualizaciones.tabpage_niveles.dw_act_niveles. SaveAs("", EXCEL!, TRUE)

END CHOOSE

40.8. De manera similar, agregar un botón adicional para cerrar la ventana de actualizaciones (w_actualizaciones)

Properties 4Name 4 cb_cancelar

Properties 4Text 4 Cancelar

OK

El script para el evento clicked de este botón es:

41. Crear una ventana como la siguiente:

En esta ventana se utilizará un nuevo control: TreeView. El TreeView es un control que permite desplegar información jerarquicamente. Cada item en un TreeView consiste de texto y una imagen, los cuales pueden ser manipulados durante una rutina de programa.

El aspecto de la ventana será similar al siguiente:

El aspecto de la ventana será similar al siguiente: Como puede verse, este TreeView tendrá cuatro

Como puede verse, este TreeView tendrá cuatro niveles. El primer nivel solo constará de un ítem con el texto empresa. Los ítems del segundo nivel corresponden a los departamentos de la empresa, el tercero a los empleados de cada departamento, y el cuarto a las actividades asignadas a los empleados.

41.1. En la barra de herramientas:

Botón Window 4 New

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 42

Con el botón derecho sobre la nueva ventana, o con doble click, modificar las propiedades de la ventana:

 

Window Type 4 Popup.

Las opciones Resizable y Maximize Box no deberán seleccionarse.

41.2.

Insertar un control TreeView en la ventana y darle el tamaño adecuado. Seleccionar el control insertado y hacer click con el botón derecho del mouse sobre él.

Name 4 tv_depto_empleado

Seleccionar la opción Lines at Root

Indentation 410

OK

41.2.1.

Insertar los demás controles en la ventana (como lo muestra la figura)

Tres

(cb_contraer), Cerrar (cb_cerrar)

botones:

Expandir

Todo

(cb_expandir),

Contraer

todo

41.2.2. Guardar el trabajo: File4Save. El nombre de la nueva ventana será

w_explorador.

41.2.3. Modificar la opción actualizar del menú, para que se abra la nueva ventana:

En la barra de herramientas oprimir el botón Menu.

Seleccionar el menú ya realizado (p.ej. m_principal) 4OK

Agregar la opción Explorar en el menú Personal

Oprimir el botón Script en la barra de herramientas

Escribir open(w_explorador)

Cerrar la ventana del editor de texto y la ventana de edición del menú.

Guardar las modificaciones hechas al menú.

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 43

41.2.4. Correr la aplicación y probar el funcionamiento del menú y la nueva

ventana.

41.2.5. Crear un DataWindow Object en el que se relacionen el nombre de los

departamentos. (se usa el botón DataWindow de la barra de herramientas PowerBar)

En la ventana Select DataWindow: 4New

 

En la ventana New DataWindow:

 

ÿ Data Source 4 SQL Select

ÿ Presentation Style 4 Tabular

En la ventana Select Tables seleccionar la tabla departamento. 4 Open

Seleccionar

las

columnas

código

de

departamento

y

nombre

de

departamento.

 

Pasar a diseño de salida: En la barra de herramientas es el ícono que

dice "SQL" File4Save. En la ventana Save DataWindow:

ÿ Name: d_depto

ÿ OK

ÿ Cerrar la ventana de edición del DataWindow

41.2.6. Crear un DataWindow Object en el que se relacionen el nombre de los

empleados de un departamento determinado. (se puede usar uno de los ya existentes si cumple con esta condición)

En la ventana Select DataWindow: 4New

En la ventana New DataWindow:

ÿ Data Source 4 SQL Select

ÿ Presentation Style 4 Tabular

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 44

Seleccionar las columnas código de empleado, apellido y nombre de empleado.

name4dept_id,

En la ventana Select Tables seleccionar la tabla empleado. 4 Open

En el menú Design elegir la opción Retrieval Arguments

En

la

ventana

Specify

Retrieval

Arguments:

 

type4number

OK

Oprimir el Tab "Where" en la parte inferior de la pantalla:

ÿ Column 4 "empleado"."dept_id" (Al hacer click en el espacio en

blanco se puede elegir la columna deseada)

ÿ Operator 4 = (Al hacer click en el espacio en blanco se puede elegir

el operador deseado)

ÿ Value : Hacer click con el boton derecho sobre el espacio en blanco, elegir arguments en el menú popup, y luego elegir :dept_id, que es el

mismo argumento que se definión en Retrieva Arguments

Pasar a diseño de salida: En la barra de herramientas es el ícono que

dice "SQL"

File4Save. En la ventana Save DataWindow:

ÿ Name: d_empleados_por_depto

ÿ OK

ÿ Cerrar la ventana de edición del DataWindow

41.2.7. Crear un DataWindow Object en el que se puedanalmacenar las

actividades de un empleado dado. (se puede usar uno de los ya existentes si cumple con esta condición)

En la ventana Select DataWindow: 4New

En la ventana New DataWindow:

ÿ Data Source 4 SQL Select

ÿ Presentation Style 4 Tabular

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 45

En la ventana Select Tables seleccionar la tabla actividad y la tabla

empleado. 4 Open

Seleccionar las columnas código de empleado (de la tabla empleado), y

descripción de la actividad (de la tabla actividad). En el menú Design elegir la opción Retrieval Arguments

En la ventana Specify Retrieval Arguments: name4emp_id (código del

empleado), type 4 number

OK

Oprimir el Tab "Where" en la parte inferior de la pantalla:

ÿ Column 4 "empleado"."emp_id" (Al hacer click en el espacio en

blanco se puede elegir la columna deseada)

ÿ Operator 4 = (Al hacer click en el espacio en blanco se puede elegir

el operador deseado)

ÿ Value : Hacer click con el boton derecho sobre el espacio en blanco, elegir arguments en el menú popup, y luego elegir :emp_id, que es el mismo argumento que se definión en Retrieva Arguments

Pasar a diseño de salida: En la barra de herramientas es el ícono que

dice "SQL" File4Save. En la ventana Save DataWindow:

ÿ Name: d_activ_por_empleado

ÿ OK

ÿ Cerrar la ventana de edición del DataWindow

Guardar el trabajo adelantado hasta el momento File 4 Save.

41.3. Declaración de variable de instancia ids_datos

En el menú Declare 4 Instance Variables.

En la ventana Declare Instance Variables hacer click en el cuadro de

texto y escribir: datastore ids_datos[4].

OK

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 46

La variable ids_datos es un array de cuatro posiciones de tipo DataStore, en el que se almacenarán los datos de cada nivel del TreeView. Estos datos se obtendrán de los DataWindow creados en 41.2.6. y 41.2.7.

41.4. Crear las Funciones lf_agregar_items y lf_config_item

41.4.1. Función lf_agregar_items

En el menú Declare 4 Window Functions

En la ventana Select Function in Window 4 New

En la ventana New Function :

Name4 lf_agregar_items

Access 4Public

Return 4Integer

Arguments:

Name4 al_parent, Ttype4 Long, Pass By4 Value

Oprimir Add

Name4 ai_nivel, Type4 Integer, Pass By4 Value

Oprimir Add

Name4 ai_filas, Type4 Integer, Pass By4 Value

OK

Se abre la ventana del editor. El código para esta función es el siguiente:

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 47

////////////////////////////////////////////////////////////////////// // Función para agregar los items al TreeView usando los datos en el // DataStore // Los argumentos de la función son:

// - long al_parent // - integer ai_nivel (el nivel en el que se agregarán los items) // - integer ai_filas (el número de items que se agregarán) //////////////////////////////////////////////////////////////////////

Integer

li_Cont

//se declara un objeto TreeViewItem para manipular los valores del item //que se agregará TreeViewItem ltvi_Nuevo

// Se agrega cada item For li_Cont = 1 To ai_filas

// Se llama a la función lf_config_item para asignar los valores //del nuevo item a partir de los datos almacenados en el //DataStore

lf_config_item(ai_nivel, li_Cont, ltvi_Nuevo)

// Se agrega el item después del último hijo

If tv_depto_empleado.InsertItemLast(al_Parent, ltvi_Nuevo) < 1 Then

// Si hay Error MessageBox("Error", "Error al insertar item", & Exclamation!)

Return -1

Next

End If

Return ai_filas

Cerrar la ventana del editor y guardar el trabajo adelantado

Nota: Si se quieren modificar los argumentos de una función ya

declarada, se debe abrir la ventana de edición del código de la función (la que se usó en el paso anterior) y elegir la opción Function

Declaration del menú Design. Si la ventana del editor no está abierta no

se puede acceder a esta opción.

41.4.2. Función lf_config_item

En el menú Declare 4 Window Functions

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 48

En la ventana Select Function in Window 4 New

En la ventana New Function :

Name4 lf_config_item

Access 4Public

Return 4(None)

Arguments:

Name4 ai_nivel, Type4 Integer, Pass By4 Value

Oprimir Add

Name4 ai_fila, Type4 Integer, Pass By4 Value

Oprimir Add

Name4 atvi_nuevo, Type4 TreeViewItem, Pass By4 Reference

OK

Se abre la ventana del editor. El código para esta función es el siguiente:

///////////////////////////////////////////////////////////////////// // // Se configuran los atributos para el nuevo item a partir de los datos // en el DataStore. // Los atributos de TreeViewItem que se usan son:

// Label (el texto que se despliega en el TreeView) // Data (es la información que contiene dicho item) // Los argumentos de esta función son:

// integer ai_nivel = el nivel del TreeViewItem en el TreeView // integer ai_fila = # de la fila del DataStore de la que se obtendrá // la información // atvi_nuevo = TreeViewItem que se agrega al TreeView. Los valores de // sus atributos. (Label y Data) son los que se determinan a // continuación // ///////////////////////////////////////////////////////////////////////

Choose Case ai_nivel Case 1

// El único item de primer nivel tiene como Label la // palabra "empresa", en este caso no se usa niungún // DataStore atvi_nuevo.Label = "Empresa" atvi_nuevo.Data = "Empresa"

//Continúa en la siguiente página

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 49

Case 2

 

// Label = nombre del departamento // Data = codigo de departamento atvi_nuevo.Label= ids_datos[2].Object.dept_nombre[ai_fila] atvi_nuevo.Data = ids_datos[2].Object.dept_id[ai_fila]

Case 3

 

// Label = apellido + nombre del departamento // Data = codigo de empleado atvi_nuevo.Label = ids_datos[3].Object.emp_apellido[ai_fila]& + ", " + ids_datos[3].Object.emp_nombre[ai_fila] atvi_nuevo.Data = ids_datos[3].Object.emp_id[ai_fila]

Case 4

// Label = descripción de la actividad // Data = código del empleado atvi_nuevo.Label =

ids_datos[4].Object.actividad_act_descripcion[ai_fila]

atvi_nuevo.Data =

ids_datos[4].Object.empleado_emp_id[ai_fila]

End Choose

If ai_nivel < 4 Then atvi_nuevo.Children = True

Else

// Si el nivel es 4 (actividades) los items no tienen hijos) atvi_nuevo.Children = False

End If

atvi_nuevo.PictureIndex = ai_nivel atvi_nuevo.SelectedPictureIndex = ai_nivel

Cerrar la ventana del editor y guardar el trabajo adelantado

41.5. Escribir los scripts para los controles creados.

41.5.1. En la ventana w_explorador:

Hacer click con el botón derecho sobre la ventana y seleccionar la opción script en el menú popup. En el editor, seleccionar el evento open del listbox de la parte superior

izquierda de la ventana. El siguiente es el código para dicho evento:

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 50

/////////////////////////////////////////////////////////////

// Se crean los DataStore que contendrán los

//

// datos almacenados en los datawindows espacificados

//

////////////////////////////////////////////////////////////

//d_depto se hace mediante un select a la tabla departamento. //En este datawindow se almacena la lista de los departamentos //de la empresa. Estos datos aparecerán en el segundo nivel //del treeview.

ids_datos[2] = Create DataStore ids_datos[2].DataObject = "d_depto"

ids_datos[2].SetTransObject(sqlca)

//d_empleados_por_depto contiene los empleados que trabajan en un //departamento. Para esto, se debe escoger la columna código //de departamento (dept_id) como argumento de recuperación (retrieval //arguments) //Los datos aquí recuperados serán los del tercer nivel del treeview

ids_datos[3] = Create DataStore ids_datos[3].DataObject = "d_empleados_por_depto"

ids_datos[3].SetTransObject(sqlca)

//d_activ_por_empleado contiene las actividades asignadas a un //empleado. De forma similar, el retrieval argument para este //datawindow es la columna código de empleado (emp_id) //Los datos aquí recuperados serán los del cuarto nivel del treeview

ids_datos[4] = Create DataStore ids_datos[4].DataObject = "d_activ_por_empleado"

ids_datos[4].SetTransObject(sqlca)

//Se agrega el primer item (el único) del primer nivel del treeview. //Los parámetros que se pasan son: parent = 0, nivel = 1, filas = 1

lf_agregar_items(0, 1, 1)

Compilar el script: en el menú Design 4 Compile Script (Ctrl+L).

Seleccionar el evento close. El script para este evento es:

-------Evento: close-------------- -------Control: w_explorador------

Integer

li_Cont

// Se destruyen los DataStores usados en el ejemplo For li_Cont = 1 To 4 Destroy ids_datos[li_Cont]

Next

Show(w_principal)

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 51

Compilar el script (Ctrl + L) y cerrar la ventana del editor.

41.5.2. En el TreeView tv_depto_empleado:

Hacer click con el botón derecho sobre el TreeView y seleccionar la opción script en el menú popup. En el editor, seleccionar el evento itempopulate. El siguiente es el código

para dicho evento:

-------Evento: itempopulate-------------- -------Control: tv_depto_empleado--------

/////////////////////////////////////////////////////////////////////// // Se expande el árbol con los hijos de cada item. // p.ej. los hijos de un item de departamento son los nombres de los // empleados ///////////////////////////////////////////////////////////////////////

Integer

li_nivel, li_parametro, li_DeptID, li_EmpID, li_filas

// Se declara un TreeViewItem para el item actual TreeViewItem ltvi_actual

SetPointer(HourGlass!)

// Se determina el nivel del item que se encuentra seleccionado // actualmente en el TreeView GetItem(handle, ltvi_actual) li_nivel = ltvi_actual.Level + 1

// Departamentos if li_nivel = 2 then

ids_datos[li_nivel].SetTransObject(sqlca)

ids_datos[li_nivel].Reset()

ids_datos[li_nivel].SetTransObject(sqlca)

// Se cargan los datos en el DataStore li_filas = ids_datos[li_nivel].Retrieve()

End if

// Empleados X Departamento if li_nivel = 3 Then

li_DeptID = Integer(ltvi_actual.Data) ids_datos[li_nivel].Reset() ids_datos[li_nivel].SetTransObject(sqlca)

// Se cargan los datos en el DataStore usando el argumento código de //departamento li_filas = ids_datos[li_nivel].Retrieve(li_DeptID) End if //Continúa en la siguiente página

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 52

// Actividades X Empleado

If li_nivel = 4 Then

li_EmpID = Integer(ltvi_actual.Data) ids_datos[li_nivel].Reset() ids_datos[li_nivel].SetTransObject(sqlca)

// Se cargan los datos en el DataStore usando el argumento código // de empleado li_filas = ids_datos[li_nivel].Retrieve(li_EmpID)

End If

lf_agregar_items(handle, li_nivel, li_filas)

Compilar el script (Ctrl + L) y cerrar la ventana del editor.

41.5.3. En el botón Expandir Todo (cb_expandir):

Hacer click con el botón derecho sobre el botón y seleccionar la opción script en el menú popup. En el editor, seleccionar el evento clicked. El siguiente es el código para

dicho evento:

 

-------Evento: clicked-------------- -------Control: cb_expandir---------

Long ll_handle

ll_handle = tv_depto_empleado.FindItem ( RootTreeItem!, 0 ) tv_depto_empleado.ExpandAll ( ll_handle )

Compilar el script: en el menú Design 4 Compile Script (Ctrl+L).

Cerrar la ventana del editor.

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 53

41.5.4. En el botón Contraer Todo (cb_contraer):

Hacer click con el botón derecho sobre el botón y seleccionar la opción script en el menú popup. En el editor, seleccionar el evento clicked. El siguiente es el código para dicho evento:

-------Evento: clicked-------------- -------Control: cb_contraer---------

Long ll_handle

ll_handle = tv_depto_empleado.FindItem ( RootTreeItem!, 0 ) tv_depto_empleado.CollapseItem ( ll_handle )

Compilar el script: en el menú Design 4 Compile Script (Ctrl+L).

Cerrar la ventana del editor.

41.5.5. Para el botón Cerrar (cb_cerrar)

-------Evento: clicked-------------- -------Control: cb_cerrar---------

close(w_explorador)

Compilar el script: en el menú Design 4 Compile Script (Ctrl+L).

Cerrar la ventana del editor.

41.6. Guardar el trabajo adelantado y correr la aplicación para comprobar el funcionamiento del TreeView.

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 54

42. Modificar la ventana creada en el paso 41 de la siguiente forma:

la ventana creada en el paso 41 de la siguiente forma: El control que se añadirá

El control que se añadirá se denomina ListView. Un ListView muestra información en forma de lista al usuario. Cada ítem del ListView consiste de texto y un dibujo.

En este caso, el ListView mostrará los ítems del nivel inferior al que se encuentre seleccionado en el árbol. Los botones “Lista”, “Detalles” e “Iconos Grandes”, cambian la forma de presentación de los ítems en el ListView. Cuando el usuario haga doble click sobre uno de los ítems del ListView, se desplegarán los ítems del nivel inferior, y se expandirá la porción correspondiente en el árbol.

Los ítems se ordenarán de acuerdo cuando el usuario oprima las cabeceras de las columnas, de forma similar a como ocurre, por ejemplo, en el explorador de windows.

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 55

42.1. Insertar un control ListView en la ventana y darle el tamaño adecuado. Seleccionar el nuevo control y hacer click con el botón derecho del mouse sobre él.

Name 4 lv_dept_empleados

Seleccionar la opción Show header

View 4Report (Detalles)

Sort 4 Unsorted

OK

42.1.1. Insertar los demás controles en la ventana (como lo muestra la figura)

Tres botones: Lista (cb_lista), Detalles (cb_detalles), Iconos Grandes (cb_grandes)

42.1.2. Guardar el trabajo adelantado: File4Save.

42.2. Declaración de variable de instancia ii_columnas

En el menú Declare 4 Instance Variables.

En la ventana Declare Instance Variables hacer click en el cuadro de

texto y escribir: integer ii_columnsas. OK

La variable ii_columnas es un entero que se utilizará para contar el número de columnas que se agregan al ListView dependiendo del nivel actual del árbol.

42.3. Crear las Funciones lf_agregar_items y lf_config_item

De ahora en adelante se utilizarán los DataWindow

el paso 41 en los nuevos scripts. (ids_datos[], d_depto, d_empleados_por_depto y

d_activ_por_empleado)

y DataStore creados durante

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 56

42.3.1. Función wf_agregar_lv_items

En el menú Declare 4 Window Functions

En la ventana Select Function in Window 4 New

En la ventana New Function :

Name4 wf_lv_agregar_items

Access 4Public

Return 4Integer

Arguments:

Name4 ai_nivel, Type4 Integer, Pass By4 Value

Oprimir Add

Name4 ai_filas, Type4 Integer, Pass By4 Value

OK

Se abre la ventana del editor. El código para esta función es el siguiente:

-------función wf_agregar_lv_items--------------

/////////////////////////////////////////////////// // //Función para agregar items al ListView //usando los datos del DataStore // // Argumentos:

// integer ai_nivel (el nivel en que se insertará) // integer ai_filas (número de items a insertar) // ///////////////////////////////////////////////////

Integer

li_Cont

ListViewItem

llvi_nuevo

// Se borran todas las columnas existentes en el // ListView For li_Cont = 1 To ii_columnas

lv_dept_empleados.DeleteColumn(1)

Next

Continúa en la siguiente página

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 57

continuación

-------función wf_lv_agregar_items--------------

// Se agregan las columnas al ListView Choose Case ai_nivel Case 2

lv_dept_empleados.AddColumn("Nombre", Left!, 500) lv_dept_empleados.AddColumn("ID", Right!, 150) ii_columnas = 2

Case 3

lv_dept_empleados.AddColumn("Apellido", Left!, 700) lv_dept_empleados.AddColumn("Nombre", Left!, 700) lv_dept_empleados.AddColumn("ID", Right!, 150) ii_columnas = 3

Case 4

lv_dept_empleados.AddColumn("Descripción", Left!, 900) lv_dept_empleados.AddColumn("ID Nivel", Right!, 250) ii_columnas = 2

End Choose

// Se agrega cada item al ListView For li_Cont = 1 To ai_filas // Se llama a la fución para configurar los valores de los // items del ListView a partir de los datos del DataStore wf_config_lv_item(ai_nivel, li_Cont, llvi_nuevo)

// Se agrega cada item after the last child If lv_dept_empleados.AddItem(llvi_nuevo) < 1 Then MessageBox("Error", "Error al agregar item",

Exclamation!)

Next

Return -1

End If

Return ai_filas

Compilar el script (Ctrl + L) y cerrar la ventana del editor.

42.3.2. Función wf_config_lv_item

En el menú Declare 4 Window Functions

En la ventana Select Function in Window 4 New

En la ventana New Function :

Name4 wf_config_lv_item

Access 4Public

Return 4(None)

Arguments:

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 58

Name4 ai_nivel, Type4 Integer, Pass By4 Value

Oprimir Add

Name4 ai_fila, Type4 Integer, Pass By4 Value

Oprimir Add

Name4 alvi_nuevo, Type4 ListViewItem, Pass By4 Reference

OK

Se abre la ventana del editor. El código para esta función es el siguiente:

 

-------función wf_config_lv_item--------------

//////////////////////////////////////////////////////////// // Se configuran los atributos Label y Data para el nuevo // item del ListView a partir de los datos en el DataStore. // // Argumentos:

// integer ai_nivel (el nivel del ítem a configurar) // integer ai_fila (el número del item a configurar) // listviewitem alvi_nuevo (el item a configurar) ////////////////////////////////////////////////////////////

Choose Case ai_nivel Case 2 // Label = nombre del departamento | código dedepartamento // Data = codigo de departamento alvi_nuevo.Label = ids_datos[2].Object.dept_nombre[ai_fila]+"~t"+ &

string(ids_datos[2].Object.dept_id[ai_fila])

alvi_nuevo.Data = ids_datos[2].Object.dept_id[ai_fila]

Case 3 // Label = apellido empleado | nombre empleado | código empleado // Data = codigo de empleado alvi_nuevo.Label = ids_datos[3].Object.emp_apellido[ai_fila]+"~t"+ & ids_datos[3].Object.emp_nombre[ai_fila] + "~t" + & string (ids_datos[3].Object.emp_id[ai_fila]) alvi_nuevo.Data = ids_datos[3].Object.emp_id[ai_fila]

Case 4 // Label = descripción de actividad | código del nivel // Data = codigo de empleado (no se utiliza) alvi_nuevo.Label = ids_datos[4].Object.actividad_act_descripcion[ai_fila] + "~t" + &

string(ids_datos[4].Object.actividad_niv_id[ai_fila])

alvi_nuevo.Data = ids_datos[4].Object.empleado_emp_id[ai_fila]

End Choose

alvi_nuevo.PictureIndex = ai_nivel

Compilar el script (Ctrl + L) y cerrar la ventana del editor.

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 59

42.4. Escribir los scripts para los nuevos controles.

42.4.1. En el TreeView tv_depto_empleado:

Hacer click con el botón derecho sobre el TreeView y seleccionar la opción script en el menú popup. En el editor, seleccionar el evento selectionchanged. El siguiente es el código para dicho evento:

-------control: tv_depto_empleado---------- -------evento: selectionchanged--------------

/////////////////////////////////////////////////// // Este evento se ejecuta cuando cambia el ítem // selecionado en el árbol. // Se cargan los datos desde el DataStore y // se agregan los items del nivel inferior al // ListView /////////////////////////////////////////////////

Integer li_nivel, li_DeptID, li_EmpID, li_filas

// Se declara un TreeViewItem para el item actual TreeViewItem ltvi_actual

SetPointer(HourGlass!)

// Se determina el nivel del item que se // encuentra seleccionado actualmente en el TreeView

GetItem(newhandle, ltvi_actual) li_nivel = ltvi_actual.Level + 1

// Departamentos if li_nivel = 2 then

ids_datos[li_nivel].SetTransObject(sqlca)

ids_datos[li_nivel].Reset()

ids_datos[li_nivel].SetTransObject(sqlca)

// Se cargan los datos del DataStore li_filas = ids_datos[li_nivel].Retrieve()

End if

Coninúa en la siguiente página

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 60

-------control: tv_depto_empleado---------- -------evento: selectionchanged--------------

continuación

// Empleados X Departamento if li_nivel = 3 Then

li_DeptID = Integer(ltvi_actual.Data) ids_datos[li_nivel].Reset() ids_datos[li_nivel].SetTransObject(sqlca)

// Se cargan los datos del DataStore usando //el argumento código de departamento li_filas = ids_datos[li_nivel].Retrieve(li_DeptID)

End if

// Actividades X Empleado If li_nivel = 4 Then

li_EmpID = Integer(ltvi_actual.Data) ids_datos[li_nivel].Reset() ids_datos[li_nivel].SetTransObject(sqlca)

// Se cargan los datos del DataStore usando // el argumento código de empleado li_filas = ids_datos[li_nivel].Retrieve(li_EmpID)

End If

// Se borran todos los items del ListView

lv_dept_empleados.DeleteItems()

// La función wf_agregar_lv_items agrega un número // de items igual a "li_filas" en el ListView, que // pertenecen al nivel "li_nivel"

wf_agregar_lv_items(li_nivel, li_filas)

Cerrar la ventana del editor y guardar el trabajo adelantado

42.4.2. En el ListView lv_dept_empleados:

Hacer click con el botón derecho sobre el ListView y seleccionar la

opción script en el menú popup. En el editor, seleccionar el evento doubleclicked. El siguiente es el

código para dicho evento:

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 61

-------control: lv_dept_empleados---------- -------evento: doubleclicked---------------

Long

ll_Padre, ll_Item

Boolean

lb_Encontrado

TreeViewItem

ltvi_Item

ListViewItem

llvi_Actual

If index <= 0 Then Return // Error

// Se toma el ítem sobre el que se hizo doble click

If GetItem(index, llvi_Actual) = -1 Then Return

// Se toma el item actualmente seleccionado en el TreeView. // Este debe ser el padre del item seleccionado en el ListView

ll_Padre = tv_depto_empleado.FindItem(CurrentTreeItem!, 0) tv_depto_empleado.GetItem(ll_Padre, ltvi_Item)

tv_depto_empleado.ExpandItem(ll_Padre)

// Se busca el item del ListView en el árbol

lb_Encontrado = False ll_Item = tv_depto_empleado.FindItem(ChildTreeItem!, ll_Padre) Do Until (lb_Encontrado Or ll_Item < 1) tv_depto_empleado.GetItem(ll_Item, ltvi_Item) If Pos(ltvi_Item.Label, llvi_Actual.Label) > 0 Then // Se ha encontrado el item lb_Encontrado = True Else // Se revisa el siguiente item ll_Item = tv_depto_empleado.FindItem(NextTreeItem!, ll_Item) End If

Loop

If lb_Encontrado Then

// Al cambiar el elemento seleccionado en el TreeView, // se ejecuta el código del evento SelectionChanged // para el TreeVier tv_depto_empleado

tv_depto_empleado.SelectItem(ll_Item)

End If

Compilar el script (Ctrl + L) y cerrar la ventana del editor.

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 62

42.4.3. En el ListView lv_dept_empleados:

Hacer click con el botón derecho sobre el ListView y seleccionar la opción script en el menú popup. En el editor, seleccionar el evento columnclick. El siguiente es el código para dicho evento:

-------control: lv_dept_empleados---------- -------evento: columnclick-----------------

// Los items en el ListView se ordenan ascendentemente // por la columna presionada por el usuario // "column" es el argumento del evento columnclick // es el número de la columna sobre la que se ha hecho click

lv_dept_empleados.SetRedraw(false) lv_dept_empleados.Sort(Ascending! , column) lv_dept_empleados.SetRedraw(true)

Compilar el script (Ctrl + L) y cerrar la ventana del editor.

42.4.4. En el botón “Lista” (cb_lista):

Hacer click con el botón derecho sobre el botón y seleccionar la opción script en el menú popup. En el editor, seleccionar el evento clicked. El siguiente es el código para

dicho evento:

 

-------Evento: clicked-------------- -------Control: cb_lista------------

// Muestra los ítems del ListView en forma de una lista sencilla

lv_dept_empleados.view = ListViewList!

Compilar el script: en el menú Design 4 Compile Script (Ctrl+L).

Cerrar la ventana del editor.

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 63

42.4.5. En el botón “Detalles” (cb_detalles):

Hacer click con el botón derecho sobre el botón y seleccionar la opción script en el menú popup. En el editor, seleccionar el evento clicked. El siguiente es el código para dicho evento:

 

-------Evento: clicked-------------- -------Control: cb_detalles---------

// Muestra los ítems del ListView en forma de una lista detallada. // Esta es la forma de presentación por defecto que se escogió al // crear el control ( en propiedades de lv_dept_empleados: view = // report )

lv_dept_empleados.view = ListViewReport!

Compilar el script: en el menú Design 4 Compile Script (Ctrl+L).

Cerrar la ventana del editor.

42.4.5. En el botón “Iconos grandes” (cb_grandes):

Hacer click con el botón derecho sobre el botón y seleccionar la opción script en el menú popup. En el editor, seleccionar el evento clicked. El siguiente es el código para

dicho evento:

 

-------Evento: clicked-------------- -------Control: cb_grandes---------

// Muestra los items del ListView en forma de íconos grandes

lv_dept_empleados.view = ListViewLargeIcon!

Compilar el script: en el menú Design 4 Compile Script (Ctrl+L).

Cerrar la ventana del editor.

42.5. Correr la aplicación y probar su funcionamiento.

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes

Página 64