Power Builder - programar algo en un campo de un dw?

 
Vista:

programar algo en un campo de un dw?

Publicado por roosevelt (11 intervenciones) el 23/06/2003 22:42:10
Hola amigos del foro
quisiera en un registro de dw, en un campo(columna) especifico por ejemplo al hacer dobleclick sobre ella y abrir una ventana, es decir, me
encuentro en el campo articulo y al hacer dobleclick sobre el lanzar una ventana
muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:programar algo en un campo de un dw?

Publicado por Ricardo (1957 intervenciones) el 24/06/2003 00:36:03
Hola que tal:

Hay un evento en el window llamado doubleclicked, el cual controla precisamente eso.

Lo puedes manejar de la siguiente forma:

CHOOSE CASE dwo.name
CASE 'columna' // nombre del campo deseado
// Ejecucion de script, llamado de ventana o lo que desees.

END CHOOSE

// El nombre del campo tal y como esta en tu DW.

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:programar algo en un campo de un dw?

Publicado por Roosevel (11 intervenciones) el 24/06/2003 00:40:20
Gracias Ricardo, lo probare y te aviso
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:programar algo en un campo de un dw? (1)

Publicado por Oscar (1178 intervenciones) el 24/06/2003 05:17:08
Quizá esto podría servir a tí y a otros. Este ejemplo usa argumentos y una estructura. Al dar doble clic en una fila de un Padre, mostrará en una ventana sus respectivos Hijos.

1. Las tablas son:
Tabla Padre:
idpadre(varchar) Clave principal
nombrepadre(varchar)
apellidopadre(varchar)

Tabla Hijo:
idhijo (varchar)clave principal
idpadre(varchar) clave foranea
nombrehijo(varchar)
apellidohijo (varchar)

2. Creas un DataWindow, tipo Grid con SQL Select, en base a la tabla Hijo. Luego te vas al menú Desing/Retrieval Arguments y en Name escribes ras_padre y eliges Tipo String. Pulsas OK. Luego te vas a la ficha Where, en Column eliges id_padre y en Value, escribes :ras_padre (incluyendo los dos puntos) Guardas tu DataWindow con el nombre d_hijo.
3. Creas otro DataWindow, tipo Grid con la tabla Padre y lo guardas con el nombre d_padre.
4. Creas una ventana que contenga un control dw_hijo asociado al objeto d_hijo. Lo guardas con el nombre w_hijo.
5. Creas una ventana que contenga un control dw_padre asociado al objeto d_padre. Guardas con el nombre w_padre.
6. Creas un estructura que se llamará s_padre, con las siguientes variables:
String ss_idpadre
String ss_nombrepadre
String ss_apellidopadre
(CONTINUA...)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:programar algo en un campo de un dw? (2)

Publicado por Oscar (1178 intervenciones) el 24/06/2003 05:18:59
(CONTINUACIÓN..)
7. Script en el evento DoubleClicked del control dw_padre:
Long ll_fIlaActual
s_padre s_origen

ll_FilaActual=Row

s_origen.ss_idpadre=This.GetItemString(ll_FilaActual,1)
s_origen.ss_nombrepadre=This.GetItemString(ll_FilaActual,2)
s_origen.ss_apellidopadre=This.GetItemString(ll_FilaActual,3)

OpenWithParm(w_hijo,s_origen)

Nota: Si deseas mostrar los hijos en ventanas independientes, el script debes cambiar por:
Long ll_fIlaActual
s_padre s_origen
w_hijo wi_hijo

ll_FilaActual=Row
..........

OpenWithParm(wi_hijo,s_origen)

8. Script en el evento Open de la ventana w_hijo:
s_padre s_destino
s_destino=Message.PowerObjectParm

This.Title="Hijos de " +s_destino.ss_nombrepadre+&
" " + s_destino.ss_apellidopadre

dw_hijo.SetTransObject(sqlca)
dw_hijo.Retrieve(s_destino.ss_idpadre)
dw_hijo.Modify("DataWindow.ReadOnly=Yes")

9. Script para el evento open de la ventana w_padre:
dw_padre.settransobject(sqlca)
dw_padre.retrieve()

Si tienes dudas, preguntá o te puedo enviar una pbl en PB 8.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar