Power Builder - Dropdown Data Windows

   
Vista:

Dropdown Data Windows

Publicado por Kathya Gomez (5 intervenciones) el 05/05/2012 08:12:35
Hola. Bueno la pregunta es la siguiente: Como hacer para que el dropdown de mi data Windows sea despegable, el detalle está en que son 2 tablas para la selección Ej., una tabla de Preguntas y una tabla de Respuestas, cada pregunta tiene 4 respuestas definidas, quiero mostrar en el datawindows por pregunta, Ej. 1. Pregunta x?, debajo 2. Pregunta y?, y al costado de cada pregunta quiero poner el dropdown datawindows filtrando solo las respuestas de esa pregunta .

Para agregar la tabla pregunta tiene los siguientes campos: Cod_pre, descrip; y la tabla respuesta los siguientes: cod_resp, cod_pre, descrip.

Espero puedan ayudarme...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

Dropdown Data Windows

Publicado por jeinnerh jhidalgo@excelteccr.com (638 intervenciones) el 10/05/2012 18:57:05
Si no te entiendo mal, el problema que tienes es que un DropdownDW sólo te va a presentar una lista a la vez, es decir, si esta debe contener diferentes respuestas para cada pregunta, lo que vas a tener que hacer es hacer una pregunta a la vez, y cargar el DDDW para cada una.

En otras palabras, para la pregunta 1 cargas las respuestas de esta en el DDDW, luego al pasar a la 2, queda el texto en la 1 de la respuesta escogida y se cargan las respuestas para el DDDW de la 2.

El asunto es que debes mostrar en el campo de la respuesta no el código de la misma, sino la descripción, para ello puedes usar otro campo que no sea el del resultado esperado.

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

Dropdown Data Windows

Publicado por Kathya (5 intervenciones) el 15/05/2012 04:36:07
Gracias por contestar, te explico, es una encuesta la que quiero hacer, y deseo ingresar los datos por el datawindows, donde estará la lista de preguntas (sle) con sus correspondientes respuestas(dddw), hago las conexiones, pero no se despliegua el dddw y lo que hace es repetir las preguntas para cada respuesta, espero respuestas...
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

Dropdown Data Windows

Publicado por JeinnerH jhidalgo@excelteccr.com (638 intervenciones) el 15/05/2012 18:17:28
Atanto cabos, imagino que utilizas un DW, con la siguiente estructura:
Pregunta Varchar(500)
Respuesta Varchar(1)

Luego la pintura del DW sería algo así:
Pregunta Respuesta
Cual es su edad De 18 a 25 |v|
De 26 a 32
De 33 a 45

Tiene hijos Si
No

Sería algo así o me equivoco?

Bueno si eso es lo que quieres y deseas que todas las respuestas diferentes estén activas. Eso no es posible, porque el DDDW está diseñado para tener dentro un único tipo de lista. A menos de que al detectar que se está dando click sobre el campo, se llene el DDDW cada vez con las respuetas adecuadas para esta pregunta.

Por eso lo mejor es hacer cada pregunta por separado, es decir Cuál es su edad? Se haría de forma independiente a Tiene hijos?, sin que se vean las respuetas de la segunda.

Otra opción sería, en lugar de mostrar para cada respuesta el codigo de esta, mostrar el texto, en otras palabras, si los rangos de edades son 5, no se muestra 1, 2 o 3, sino el rango como tal. De 18 a 22, por ejemplo.

Así si se refresca el DDDW para la siguiente pregunta, no se cambia la respuesta de la anterior.

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

Dropdown Data Windows

Publicado por Kathya (5 intervenciones) el 18/05/2012 06:45:10
Gracias por contestar, esta opción que me das de que se carguen los datos recién al hacer click, podrías ayudarme paso por paso, ya me perdí un poco =S, gracias por tu tiempo.
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

Dropdown Data Windows

Publicado por Jeinnerh jhidalgo@excelteccr.com (638 intervenciones) el 18/05/2012 16:28:36
Sería algo así:

Tienes un DW llam{emoslo dw_Preguntas, que es dónde se van a hacer las preguntas y respuestas, con la siguiente estructura:
Pregunta VarChar(200)
Respuesta VarChar(200)
Cod_Respuesta VarChar(10)

Luego en el DW pintas:
Pregunta Respuesta Cod_Respuesta
VarChar DDDW VarChar

Cod_Respuesta estaría invisible.

Respuesta sería un DDDW al que se le indica que debe mostrar la Descripcion_Respuesta y no el Código de la misma. La estructura del SQL para las respuestas sería:
Select Cod_Respuesta,
Descripcion_Respuesta
From Respuestas
Where Cod_Pregunta = :li_Pregunta:


Llenas el dw:Preguntas con las preguntas adecuadas:
For li_1 to Cant_Preguntas
li_Registro.dw_Preguntas.InsertRow(0)
dw_Preguntas.Object.Pregunta[li_Registro]=dw_Listado_Preguntas[li_1]
Next

Luego en el codigo del Evento RowFocusChanged del dw_Preguntas pones:
DataWindowChild ldwc_1

GetChild(ldwc_1, 'Respuesta')
ldwc_1.SetTransObject(SQLCA)
ldwc_1.Retrieve(currentrow)

Donde el CurrentRow identifica el registro de Pregunta al que se le deben cargar las respuestas.

Con esto estaríamos cargando las respuestas de la pregunta sobre la cuál estamos posicionados, las otras no importan y se dejan con la respuesta que se haya escogido.

En el código del Evento ItemChanged debes asignar el código de la respuesta que será almacenada para cada pregunta.

Algo como:
DataWindowChild ldwc_1

GetChild(ldwc_1, 'Respuesta')

Object.Cod_Respuesta[row]=ldwc_1.GetItemString(ldwc_1.GetRow(), 'Cod_Respuesta')
AcceptText()

Sería algo así.

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

Dropdown Data Windows

Publicado por Kathya (5 intervenciones) el 27/05/2012 07:29:35
Gracias por tu tiempo, si lo entiendo pero me confundes lo nombres que usas, me podrías ayudar con eso, nose si son variables o nombres de objetos lo que usas, gracias
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

Dropdown Data Windows

Publicado por JeinnerH jhidalgo@excelteccr.com (638 intervenciones) el 28/05/2012 20:14:09
Hola Kathya.

Los siguienes son campos definidos en un DW de tipo External
Pregunta VarChar(200)
Respuesta VarChar(200)
Cod_Respuesta VarChar(10)


Con esto me refiero a que está puesto de esta forma en el DW, ya de forma visual
Pregunta ---------- Respuesta --------------- Cod_Respuesta - Encabezado
VarChar ---------- DDDW --------------- VarChar - Detalle


La Pregunta es un VarChar de 200 que no permite edición, sólo el DDDW lo permite.

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

Dropdown Data Windows

Publicado por Kathya (5 intervenciones) el 29/05/2012 18:50:03
Gracias por contestar;

Mmmm a lo q me referia era a estas palabras q usas como: li_Registro, dw_Preguntas, dw_Listado_Preguntas[li_1]

Gracias por tu tiempo.
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

Dropdown Data Windows

Publicado por JeinnerH jhidalgo@excelteccr.com (638 intervenciones) el 29/05/2012 18:58:17
Bueno en powerbuilder cuando veas una variable local, esta va a iniciar con l (local), luego el tipo i(integer) s(string), d(decimal) y otras, entonces, si dice li_contador es una variable local entera. Si la variable está definida en la instancia la variable iniciará con i (ejemplo ii_contador), si es una variable definida en la aplicación se usa una g para identifar que es global.

El dw sería un DW puesto en la ventana, al cual se hace referencia. Es decir, creas una ventana y en esta pones un DW, el cual llamarás dw_preguntas.

Para este caso te sugería dos DW, uno de preguntas que es visual, es decir que el usuario podrá ver y trabajar sobre este y otro que es para nuestro uso, el cual contendrá el listado de preguntas.

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