entrenamiento_powerbuilder_parte2
TRANSCRIPT
-
8/4/2019 entrenamiento_powerbuilder_parte2
1/38
-
8/4/2019 entrenamiento_powerbuilder_parte2
2/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 28
La estructura de las pginas Departamentosy Niveleses la misma.
40.1. En la barra de herramientas:
Botn Window New
Con el botn derecho sobre la nueva ventana, o con doble click, modificar
las propiedades de la ventana:
Window Type: Popup.
Las opciones Resizabley Maximize Boxno debern seleccionarse.
40.2 Insertar un control Tab en la ventana y darle el tamao adecuado.
Seleccionar el control insertado y hacer click con el botn derecho del
mouse en el rea superior que no est ocupada por el TabPage (Cada una
de las pginas del control Tab recibe este nombre).
Name: tab_actualizaciones
Seleccionar Bold Selected Text(El texto de la pgina seleccionada se
muestra en negrilla)
OK
40.2.1. Hacer click con el botn derecho dentro de la primera pgina (la que
tiene el texto none) y elegir propiedades:
Name:tabpage_empleados
Tab Text:Empleados
OK
40.2.2. Insertar los dems controles en la ventana (como lo muestra la figura)
Un DataWindow control (se usa el botn que se encuentra en la barra de
herramientas junto con los dems controles. No confundir con el boton
de DataWindow Object que se encuentra en la barra de herramientas
-
8/4/2019 entrenamiento_powerbuilder_parte2
3/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 29
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 opcin actualizar del men, para que se abra la nueva
ventana:
En la barra de herramientas oprimir el botn Menu.
Seleccionar el men ya realizado (p.ej. m_principal) 4OK
Seleccionar la opcin Actualizar en la ventana de edicin del men.
Oprimir el botn Scripten la barra de herramientas
Escribir open(w_actualizaciones)
Cerrar la ventana del editor de texto y la ventana de edicin del men.
Guardar las modificaciones hechas al men.
40.2.5. Correr la aplicacin y probar el funcionamiento del men y la nueva
ventana.
40.2.6. Crear un DataWindow Object en el que se relacionen el cdigo y nombre
de los departamentos. (se usa el botn DataWindow de la barra de
herramientas PowerBar)
En la ventana Select DataWindow: 4New
En la ventana New DataWindow:
-
8/4/2019 entrenamiento_powerbuilder_parte2
4/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 30
Data Source4 SQL Select
Presentation Style4 Grid
En la ventana Select Tablesseleccionar la tabla departamento.4Open
Seleccionar las columnas cdigo de departamento y nombre de
departamento.
Pasar a diseo 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 edicin 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 Style4 Tabular
En la ventana Select Tablesseleccionar la tabla Empleado.4Open
Seleccionar todas las columnas de la tabla empleado.
Pasar a diseo de salida: En la barra de herramientas es el cono que
dice "SQL"
Elegir Properties en el menu poup (con el botn derecho sobre el
DataWindow):
En la pgina General: Color4 ButtonFace
OK
Para los encabezados de todas las columnas: Elegir Properties en el
menu poup (con el botn derecho):
-
8/4/2019 entrenamiento_powerbuilder_parte2
5/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 31
En la pgina General: Border43D Raised. Text4modificar el texto
En la pgina Font: Background4ButtonFace.
OK Para la columna dept_id (cdigo de departamento): Elegir Propertiesen
el menu poup (con el botn derecho):
En la pgina General: Border43D Lowered.
En la pgina Font: Background4WndBkrnd.
En la pgina Edit:
- Style4DropDownDW
- DataWindow4 ddd_depto (el que se cre en el paso 40.2.6.)
- Display Column4
dept_nombre (nombre de departamento)- Data Column4dept_id (cdigode 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 edicin del DataWindow
40.2.8. Seleccionar el DataWindow dw_act_empleados en la pgina
Empleados. Hacer click con el botn derecho y seleccionar la opcin
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 pgina al control Tab, se hace click con el botn
-
8/4/2019 entrenamiento_powerbuilder_parte2
6/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 32
derecho sobre el control. En el men popup 4 Insert Tab Page
40.3.1. Hacer click con el botn derecho dentro de la nueva pgina (la que
tiene el texto none) y elegir propertiesen el men poup:
Name:tabpage_actividades
Tab Text:Actividades
OK
40.3.2. Insertar los dems 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 pgina 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 cdigo y nombre
de los empleados. (se usa el botn DataWindow de la barra de
herramientas PowerBar)
En la ventana Select DataWindow: 4New
En la ventana New DataWindow:
Data Source 4 SQL Select
Presentation Style4 Grid
En la ventana Select Tablesseleccionar la tabla empleado.4Open
-
8/4/2019 entrenamiento_powerbuilder_parte2
7/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 33
Seleccionar las columnas cdigo de empleado, nombre y apellido del
empleado.
Pasar a diseo 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 edicin del DataWindow
40.3.4. Crear un DataWindow Object en el que se relacionen el cdigo y nombrede los niveles.
En la ventana Select DataWindow: 4New
En la ventana New DataWindow:
Data Source 4 SQL Select
Presentation Style4 Grid
En la ventana Select Tablesseleccionar la tabla nivel. 4Open
Seleccionar las columnas cdigo de nivel y nombre de nivel.
Pasar a diseo 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 edicin del DataWindow
40.3.5. Crear un DataWindow Object para actualizar los datos relacionados
con los actividades de los empleados.
-
8/4/2019 entrenamiento_powerbuilder_parte2
8/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 34
En la ventana Select DataWindow: 4New
En la ventana New DataWindow:
Data Source 4 SQL Select
Presentation Style4 Tabular
En la ventana Select Tablesseleccionar la tabla Actividad. 4 Open
Seleccionar todas las columnas de la tabla Actividad.
Pasar a diseo de salida: En la barra de herramientas es el cono que
dice "SQL"
Elegir Properties en el menu poup (con el botn derecho sobre el
DataWindow):
En la pgina General: Color4 ButtonFace OK
Para los encabezados de todas las columnas: Elegir Properties en el
menu poup (con el botn derecho):
En la pgina General: Border43D Raised. Text4modificar el texto
En la pgina Font: Background4ButtonFace.
OK Para la columna emp_id (cdigo del empleado): Elegir Propertiesen el
menu poup (con el botn derecho):
En la pgina General: Border43D Lowered.
En la pgina Font: Background4WndBkrnd.
En la pgina Edit:
- Style4DropDownDW
- DataWindow4 ddd_empleado (el que se cre en el paso 40.3.3.)
- Display Column4 emp_id (cdigo del empleado)
- Data Column4emp_id (cdigo del empleado)
- Wdth of DropDown(ancho del DropDown)4 400%
- Seleccionar VscrollBar
OK
-
8/4/2019 entrenamiento_powerbuilder_parte2
9/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 35
Para la columna niv_id (cdigo del nivel): Elegir Properties en el menu
poup (con el botn derecho):
En la pgina General: Border43D Lowered.
En la pgina Font: Background4WndBkrnd.
En la pgina Edit:
- Style4DropDownDW
- DataWindow4 ddd_nivel (el que se cre en el paso 40.3.3.)
- Display Column4 niv_id (cdigo del nivel)
- Data Column4niv_id (cdigo 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 edicin del DataWindow
40.3.6. Seleccionar el DataWindow dw_act_actividades en la pgina
Empleados. Hacer click con el botn derecho y seleccionar la opcin
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 pginas restantes
(Departamentos y Niveles) es bastante similar al descrito anteriormente.
-
8/4/2019 entrenamiento_powerbuilder_parte2
10/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 36
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 pgina Empleados
(tabpage_empleados)
Hacer click con el botn derecho sobre la pgina y seleccionar la opcin
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 cdigo para dicho
evento:
Para compilar el script: en el men; design4compile;o tambin Ctrl+L ;
o al cerrar la ventana del editor, se compila automticamente.
Para el botn que de desplazamiento hasta la primera fila (cb_primero):
-------Evento: constructor--------------
-------Control: tabpage_empleados-------
//Se selecciona el Transaction Object, que proporciona la
//informacin para la comunicacin 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
-------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
-
8/4/2019 entrenamiento_powerbuilder_parte2
11/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 37
Para el botn de desplazamiento a la siguiente fila (cb_siguiente):
Para el botn de desplazamiento a la fila anterior(cb_anterior):
Para el botn que de desplazamiento hasta la ultima fila (cb_ultimo):
-------Evento: clicked---------------------Control: cb_siguiente----------
long l_fila_actual
dw_act_empleados.SetFocus()
l_fila_actual = dw_act_empleados.getrow() //el nmero 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
-------Evento: clicked--------------
-------Control: cb_anterior----------
long l_fila_actual
dw_act_empleados.SetFocus()
l_fila_actual = dw_act_empleados.getrow() //el nmero 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
-------Evento: clicked--------------
-------Control: cb_ultimo----------
long l_numfilas
dw_act_empleados.SetFocus()
l_numfilas = dw_act_empleados.RowCount() //se obtiene el nmero 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
-
8/4/2019 entrenamiento_powerbuilder_parte2
12/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 38
Para el botn Cargar Datos (cb_cargar):
Para el botn de insertar un nuevo empleado (cb_nuevo)
-------Evento: clicked--------------
-------Control: cb_cargar----------
long l_numfilas
//se recibe la informacin 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 nmero de filas en el datawindow es 0 entonces se deshabilita
//el botn de borrar, de lo contrario, se habilita.
if l_numfilas = 0 then
cb_borrar.enabled = false
elsecb_borrar.enabled = true
end if
-------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
-
8/4/2019 entrenamiento_powerbuilder_parte2
13/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 39
Para el botn de borrar un empleado (cb_borrar)
Para el botn de actualizacin de datos, despus de haber realizado
inserciones y/o borrados (cb_actualizar)
-------Evento: clicked--------------
-------Control: cb_borrar-----------
long l_fila_actual
dw_act_empleados.SetRedraw (false)
//se guarda el nmero 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 despus de borrarla no quedan filas en el datawindow,
//se deshabilita el botn de borrar
if dw_act_empleados.RowCount()=0 then
cb_borrar.enabled = false
elsedw_act_empleados.SetColumn(1)
dw_act_empleados.SetFocus()
end ifcb_actualizar.enabled = true
dw_act_empleados.SetRedraw (true)
-------Evento: clicked---------------------Control: cb_actualizar-----------
dw_act_empleados.SetRedraw (false)
//si la actualizacin 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
commit;
end if
dw_act_empleados.SetRedraw (true)
//Si despus de actualizar la base de datos no quedan filas en el
//datawindow, se deshabilita el botn de actualizar.
if dw_act_empleados.RowCount() = 0 then
cb_actualizar.enabled = false
else
cb_actualizar.enabled = true
end if
-
8/4/2019 entrenamiento_powerbuilder_parte2
14/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 40
40.6. Los scripts para los eventos de los controles de las pginas 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 botn, que permitir exportar los datos del
datawindow a diferentes formatos. La apariencia de la ventana ser la siguiente:
Agregar un nuevo botn, hacer click derecho sobre l y elegir la opcin
propertiesdel men popup.
Name4 cb_exportar
Text4Exportar.
OK
Hacer click derecho sobre el botn Exportar y elegir la opcin Scriptdel men
popup
Elegir el evento clickeden la parte superior izquierda de la ventana del editor y
escribir el siguiente programa:
-
8/4/2019 entrenamiento_powerbuilder_parte2
15/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 41
40.8. De manera similar, agregar un botn adicional para cerrar la ventana de
actualizaciones (w_actualizaciones)
Properties4Name4cb_cancelar
Properties4Text4 Cancelar
OK
El script para el evento clickedde este botn es:
integer i_tab
i_tab = tab_actualizaciones.SelectedTab//la funcin SelectedTab retorna el nmero 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 funcin SaveAs permite guardar los datos que estn en un datawindow
//en diferentes formatos de archivo. Esta funcin utiliza el cuadro de
//dilogo "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 clculo 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
Close (parent)
-
8/4/2019 entrenamiento_powerbuilder_parte2
16/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 42
41. Crear una ventana como la siguiente:
En esta ventana se utilizar un nuevo control: TreeView. El TreeView es un control
que permite desplegar informacin 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:
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:
Botn Window4New
-
8/4/2019 entrenamiento_powerbuilder_parte2
17/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 43
Con el botn derecho sobre la nueva ventana, o con doble click, modificar
las propiedades de la ventana:
Window Type4 Popup.
Las opciones Resizabley Maximize Boxno debern seleccionarse.
41.2. Insertar un control TreeView en la ventana y darle el tamao adecuado.
Seleccionar el control insertado y hacer click con el botn derecho del
mouse sobre l.
Name4 tv_depto_empleado
Seleccionar la opcin Lines at Root Indentation410
OK
41.2.1. Insertar los dems controles en la ventana (como lo muestra la figura)
Tres botones: Expandir Todo (cb_expandir), Contraer todo
(cb_contraer), Cerrar (cb_cerrar)
41.2.2. Guardar el trabajo: File4Save. El nombre de la nueva ventana ser
w_explorador.
41.2.3. Modificar la opcin actualizar del men, para que se abra la nueva
ventana:
En la barra de herramientas oprimir el botn Menu.
Seleccionar el men ya realizado (p.ej. m_principal) 4OK
Agregar la opcin Exploraren el men Personal
Oprimir el botn Scripten la barra de herramientas
Escribir open(w_explorador)
Cerrar la ventana del editor de texto y la ventana de edicin del men.
Guardar las modificaciones hechas al men.
-
8/4/2019 entrenamiento_powerbuilder_parte2
18/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 44
41.2.4. Correr la aplicacin 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 botn DataWindow de la barra de herramientas
PowerBar)
En la ventana Select DataWindow: 4New
En la ventana New DataWindow:
Data Source
4
SQL Select Presentation Style4 Tabular
En la ventana Select Tablesseleccionar la tabla departamento.4Open
Seleccionar las columnas cdigo de departamento y nombre de
departamento.
Pasar a diseo 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 edicin 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 condicin)
En la ventana Select DataWindow: 4New
En la ventana New DataWindow:
Data Source 4 SQL Select
Presentation Style4 Tabular
-
8/4/2019 entrenamiento_powerbuilder_parte2
19/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 45
En la ventana Select Tablesseleccionar la tabla empleado.4Open
Seleccionar las columnas cdigo de empleado, apellido y nombre de
empleado.
En el men Designelegir la opcin Retrieval Arguments...
En la ventana Specify Retrieval Arguments: name4dept_id,
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 elegirel operador deseado)
Value : Hacer click con el boton derecho sobre el espacio en blanco,
elegir argumentsen el men popup, y luego elegir :dept_id, que es el
mismo argumento que se definin en Retrieva Arguments
Pasar a diseo 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 edicin 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 condicin)
En la ventana Select DataWindow: 4New
En la ventana New DataWindow:
Data Source 4 SQL Select
Presentation Style4 Tabular
-
8/4/2019 entrenamiento_powerbuilder_parte2
20/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 46
En la ventana Select Tables seleccionar la tabla actividad y la tabla
empleado.4Open
Seleccionar las columnas cdigo de empleado (de la tabla empleado), y
descripcin de la actividad (de la tabla actividad).
En el men Designelegir la opcin Retrieval Arguments...
En la ventana Specify Retrieval Arguments: name4emp_id (cdigo del
empleado), type4 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 argumentsen el men popup, y luego elegir :emp_id, que es el
mismo argumento que se definin en Retrieva Arguments
Pasar a diseo 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 edicin del DataWindow
Guardar el trabajo adelantado hasta el momento File4Save.
41.3. Declaracin de variable de instancia ids_datos
En el men Declare4 Instance Variables.
En la ventana Declare Instance Variables hacer click en el cuadro de
texto y escribir: datastore ids_datos[4].
OK
-
8/4/2019 entrenamiento_powerbuilder_parte2
21/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 47
La variable ids_datos es un array de cuatro posiciones de tipo
DataStore, en el que se almacenarn los datos de cada nivel del
TreeView. Estos datos se obtendrn 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. Funcin lf_agregar_items
En el men Declare 4 Window Functions
En la ventana Select Function in Window 4 New
En la ventana New Function : Name4lf_agregar_items
Access4Public
Return4Integer
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 cdigo para esta funcin es el siguiente:
-
8/4/2019 entrenamiento_powerbuilder_parte2
22/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 48
Cerrar la ventana del editor y guardar el trabajo adelantado
Nota: Si se quieren modificar los argumentos de una funcin ya
declarada, se debe abrir la ventana de edicin del cdigo de la funcin
(la que se us en el paso anterior) y elegir la opcin Function
Declarationdel men Design. Si la ventana del editor no est abierta no
se puede acceder a esta opcin.
41.4.2. Funcin lf_config_item
En el men Declare 4 Window Functions
//////////////////////////////////////////////////////////////////////
// Funcin para agregar los items al TreeView usando los datos en el
// DataStore
// Los argumentos de la funcin son:
// - long al_parent
// - integer ai_nivel (el nivel en el que se agregarn los items)
// - integer ai_filas (el nmero de items que se agregarn)
//////////////////////////////////////////////////////////////////////
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 funcin 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 despus 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
End If
Next
Return ai_filas
-
8/4/2019 entrenamiento_powerbuilder_parte2
23/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 49
En la ventana Select Function in Window 4 New
En la ventana New Function :
Name4lf_config_item
Access4Public
Return4(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 cdigo para esta funcin 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 informacin que contiene dicho item)
// Los argumentos de esta funcin 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 informacin
// atvi_nuevo = TreeViewItem que se agrega al TreeView. Los valores de
// sus atributos. (Label y Data) son los que se determinan a
// continuacin
//
///////////////////////////////////////////////////////////////////////
Choose Case ai_nivel
Case 1
// El nico item de primer nivel tiene como Label la
// palabra "empresa", en este caso no se usa niungn
// DataStore
atvi_nuevo.Label = "Empresa"atvi_nuevo.Data = "Empresa"
//Contina en la siguiente pgina...
-
8/4/2019 entrenamiento_powerbuilder_parte2
24/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 50
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 botn derecho sobre la ventana y seleccionar la
opcin script en el men popup.
En el editor, seleccionar el evento opendel listbox de la parte superior
izquierda de la ventana. El siguiente es el cdigo para dicho evento:
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 = descripcin de la actividad
// Data = cdigo 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
-
8/4/2019 entrenamiento_powerbuilder_parte2
25/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 51
Compilar el script: en el men Design4Compile Script(Ctrl+L).
Seleccionar el evento close. El script para este evento es:
/////////////////////////////////////////////////////////////
// Se crean los DataStore que contendrn 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 aparecern 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 cdigo
//de departamento (dept_id) como argumento de recuperacin (retrieval
//arguments)
//Los datos aqu recuperados sern 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 cdigo de empleado (emp_id)
//Los datos aqu recuperados sern 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 parmetros que se pasan son: parent = 0, nivel = 1, filas = 1
lf_agregar_items(0, 1, 1)
-------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)
-
8/4/2019 entrenamiento_powerbuilder_parte2
26/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 52
Compilar el script (Ctrl + L) y cerrar la ventana del editor.
41.5.2. En el TreeView tv_depto_empleado:
Hacer click con el botn derecho sobre el TreeView y seleccionar la
opcin script en el men popup.
En el editor, seleccionar el evento itempopulate. El siguiente es el cdigo
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 cdigo de
//departamento
li_filas = ids_datos[li_nivel].Retrieve(li_DeptID)
End if
//Contina en la siguiente pgina...
-
8/4/2019 entrenamiento_powerbuilder_parte2
27/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 53
Compilar el script (Ctrl + L) y cerrar la ventana del editor.
41.5.3. En el botn Expandir Todo (cb_expandir):
Hacer click con el botn derecho sobre el botn y seleccionar la opcin
script en el men popup.
En el editor, seleccionar el evento clicked. El siguiente es el cdigo para
dicho evento:
Compilar el script: en el men Design4Compile Script(Ctrl+L).
Cerrar la ventana del editor.
-------Evento: clicked--------------
-------Control: cb_expandir---------
Long ll_handle
ll_handle = tv_depto_empleado.FindItem ( RootTreeItem!, 0 )
tv_depto_empleado.ExpandAll ( ll_handle )
// 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 cdigo
// de empleado
li_filas = ids_datos[li_nivel].Retrieve(li_EmpID)
End If
lf_agregar_items(handle, li_nivel, li_filas)
-
8/4/2019 entrenamiento_powerbuilder_parte2
28/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 54
41.5.4. En el botn Contraer Todo (cb_contraer):
Hacer click con el botn derecho sobre el botn y seleccionar la opcin
script en el men popup.
En el editor, seleccionar el evento clicked. El siguiente es el cdigo para
dicho evento:
Compilar el script: en el men Design4Compile Script(Ctrl+L).
Cerrar la ventana del editor.
41.5.5. Para el botn Cerrar (cb_cerrar)
Compilar el script: en el men Design4Compile Script(Ctrl+L).
Cerrar la ventana del editor.
41.6. Guardar el trabajo adelantado y correr la aplicacin para comprobar el
funcionamiento del TreeView.
-------Evento: clicked--------------
-------Control: cb_cerrar---------
close(w_explorador)
-------Evento: clicked--------------
-------Control: cb_contraer---------
Long ll_handle
ll_handle = tv_depto_empleado.FindItem ( RootTreeItem!, 0 )
tv_depto_empleado.CollapseItem ( ll_handle )
-
8/4/2019 entrenamiento_powerbuilder_parte2
29/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 55
42. Modificar la ventana creada en el paso 41 de la siguiente forma:
El control que se aadir se denomina ListView. Un ListView muestra informacinen 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 presentacin de los tems en el ListView. Cuando el usuario
haga doble click sobre uno de los tems del ListView, se desplegarn los tems del
nivel inferior, y se expandir la porcin correspondiente en el rbol.
Los tems se ordenarn de acuerdo cuando el usuario oprima las cabeceras de las
columnas, de forma similar a como ocurre, por ejemplo, en el explorador de
windows.
-
8/4/2019 entrenamiento_powerbuilder_parte2
30/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 56
42.1. Insertar un control ListView en la ventana y darle el tamao adecuado.
Seleccionar el nuevo control y hacer click con el botn derecho del mouse
sobre l.
Name4 lv_dept_empleados
Seleccionar la opcin Show header
View4Report(Detalles)
Sort4Unsorted
OK
42.1.1. Insertar los dems 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. Declaracin de variable de instancia ii_columnas
En el men Declare4 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
nmero 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 utilizarn los DataWindow y DataStore creados durante
el paso 41 en los nuevos scripts. (ids_datos[], d_depto, d_empleados_por_depto y
d_activ_por_empleado)
-
8/4/2019 entrenamiento_powerbuilder_parte2
31/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 57
42.3.1. Funcin 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 :
Name4wf_lv_agregar_items
Access4Public
Return4Integer
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 cdigo para esta funcin es el siguiente:
-------funcin wf_agregar_lv_items--------------
///////////////////////////////////////////////////
//
//Funcin para agregar items al ListView
//usando los datos del DataStore
//
// Argumentos:
// integer ai_nivel (el nivel en que se insertar)
// integer ai_filas (nmero 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
Contina en la siguiente pgina...
-
8/4/2019 entrenamiento_powerbuilder_parte2
32/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 58
Compilar el script (Ctrl + L) y cerrar la ventana del editor.
42.3.2. Funcin 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 :
Name4wf_config_lv_item
Access4Public
Return4(None)
Arguments:
...continuacin
-------funcin 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("Descripcin", Left!, 900)
lv_dept_empleados.AddColumn("ID Nivel", Right!, 250)
ii_columnas = 2
End Choose
// Se agrega cada item al ListViewFor li_Cont = 1 To ai_filas
// Se llama a la fucin 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!)
Return -1
End If
Next
Return ai_filas
-
8/4/2019 entrenamiento_powerbuilder_parte2
33/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 59
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 cdigo para esta funcin es el siguiente:
Compilar el script (Ctrl + L) y cerrar la ventana del editor.
-------funcin 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 nmero del item a configurar)
// listviewitem alvi_nuevo (el item a configurar)
////////////////////////////////////////////////////////////
Choose Case ai_nivel
Case 2
// Label = nombre del departamento | cdigo 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 | cdigo 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 = descripcin de actividad | cdigo 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
-
8/4/2019 entrenamiento_powerbuilder_parte2
34/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 60
42.4. Escribir los scripts para los nuevos controles.
42.4.1. En el TreeView tv_depto_empleado:
Hacer click con el botn derecho sobre el TreeView y seleccionar la
opcin script en el men popup.
En el editor, seleccionar el evento selectionchanged. El siguiente es el
cdigo 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
Conina en la siguiente pgina ...
-
8/4/2019 entrenamiento_powerbuilder_parte2
35/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 61
Cerrar la ventana del editor y guardar el trabajo adelantado
42.4.2. En el ListView lv_dept_empleados:
Hacer click con el botn derecho sobre el ListView y seleccionar la
opcin script en el men popup.
En el editor, seleccionar el evento doubleclicked. El siguiente es el
cdigo para dicho evento:
-------control: tv_depto_empleado----------
-------evento: selectionchanged--------------
... continuacin
// 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 cdigo 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 cdigo 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 funcin wf_agregar_lv_items agrega un nmero
// de items igual a "li_filas" en el ListView, que
// pertenecen al nivel "li_nivel"
wf_agregar_lv_items(li_nivel, li_filas)
-
8/4/2019 entrenamiento_powerbuilder_parte2
36/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 62
Compilar el script (Ctrl + L) y cerrar la ventana del editor.
-------control: lv_dept_empleados----------
-------evento: doubleclicked---------------
Long ll_Padre, ll_Item
Boolean lb_EncontradoTreeViewItem ltvi_Item
ListViewItem llvi_Actual
If index 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 IfLoop
If lb_Encontrado Then
// Al cambiar el elemento seleccionado en el TreeView,
// se ejecuta el cdigo del evento SelectionChanged
// para el TreeVier tv_depto_empleado
tv_depto_empleado.SelectItem(ll_Item)
End If
-
8/4/2019 entrenamiento_powerbuilder_parte2
37/38
Entrenamiento en PowerBuilder 6.5
Ing. Ismael Castaeda Fuentes Pgina 63
42.4.3. En el ListView lv_dept_empleados:
Hacer click con el botn derecho sobre el ListView y seleccionar la
opcin script en el men popup.
En el editor, seleccionar el evento columnclick. El siguiente es el cdigo
para dicho evento:
Compilar el script (Ctrl + L) y cerrar la ventana del editor.
42.4.4. En el botn Lista (cb_lista):
Hacer click con el botn derecho sobre el botn y seleccionar la opcin
script en el men popup.
En el editor, seleccionar el evento clicked. El siguiente es el cdigo para
dicho evento:
Compilar el script: en el men Design4Compile Script(Ctrl+L).
Cerrar la ventana del editor.
-------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 nmero 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)
-------Evento: clicked--------------
-------Control: cb_lista------------
// Muestra los tems del ListView en forma de una lista sencilla
lv_dept_empleados.view = ListViewList!
-
8/4/2019 entrenamiento_powerbuilder_parte2
38/38
42.4.5. En el botn Detalles (cb_detalles):
Hacer click con el botn derecho sobre el botn y seleccionar la opcin
script en el men popup.
En el editor, seleccionar el evento clicked. El siguiente es el cdigo para
dicho evento:
Compilar el script: en el men Design4Compile Script(Ctrl+L).
Cerrar la ventana del editor.
42.4.5. En el botn Iconos grandes (cb_grandes):
Hacer click con el botn derecho sobre el botn y seleccionar la opcin
script en el men popup.
En el editor, seleccionar el evento clicked. El siguiente es el cdigo para
dicho evento:
Compilar el script: en el men Design4Compile Script(Ctrl+L).
Cerrar la ventana del editor.
42.5. Correr la aplicacin y probar su funcionamiento.
-------Evento: clicked--------------
-------Control: cb_detalles---------
// Muestra los tems del ListView en forma de una lista detallada.
// Esta es la forma de presentacin por defecto que se escogi al
// crear el control ( en propiedades de lv_dept_empleados: view =
// report )
lv_dept_empleados.view = ListViewReport!
-------Evento: clicked--------------
-------Control: cb_grandes---------
// Muestra los items del ListView en forma de conos grandes
lv_dept_empleados.view = ListViewLargeIcon!