• Viernes 29 de Marzo de 2024, 02:16

Autor Tema:  Limpiar Dddw  (Leído 5556 veces)

evmuv

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
    • http://evmuv.iespana.es
Limpiar Dddw
« en: Sábado 9 de Septiembre de 2006, 02:15 »
0
Saludos.
Quisiera saber como hago para impiar un DropDownDataWindows, o sea, tengo 2 DDDW en uno tengo almacenados una relacion de bancos, y en el otro debe mostrarme la relacion de cuentas corrientes para el banco que seleccione, el primer problema que tuve fue que cuando quise recuperar el codigo del banco con la pripiedad 'itemChanged' me recuperaba el codigo pero en desfase, o sea, lo hacia una vez y no recuperaba nada, la segunda vez me recuperaba el codigo pero de lo que seleccione anteriormente.
Otro problema que tengo es que cuando seleccione un nuevo item del DDDW de Bancos quiero q se limpie el texto q se muestra en el DDDW de Cuentas Corrientes, el problema es q me esta cargando las cuentas del Banco seleccionado pero no me limpia el texto, o sea, aparece el anterior, he probado de todo pero no logro limpiarlo, se que me van a ayudar, gracias de antemano.

leoandres

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: Limpiar Dddw
« Respuesta #1 en: Miércoles 13 de Septiembre de 2006, 21:48 »
0
Saludos.
Primero que nada tienes que saber que: el evento itemchanged se "dispara" cuando hay cambios de datos, para lo que tu quieres debes trabajar con el evento "rowfocuschanged" para que cuando cambies de posicion en la selección te tome el valor de lo que marcaste en el dw.

Lo segundo para poder trabajar que te limpie el dw con las cuentas del banco seleccionado debes trabajar con un datawindowchild, en donde puedes definir un datawindow con un argumento de busqueda (en este caso el banco en cuestión) y pasarlo al dw para que filtre las cuentas de dicho banco cuando hace el retrieve, en este caso tu retrieve sería mas o menos así:  dw_cuentas.retrieve(codigo_banco)

Tienes que definir el dw con argumento y poner en el sql: where cuentas.codigo_banco = :a_banco...
El argumento definido para el dw sería "a_banco" y del tipo que necesites...

El datawindowchild esta bastante bien explicado en la documentación que trae el powerbuilder.
leopoldotaylhardat@hotmail.com

Leopoldo Taylhardat

Software, Organización y Sistemas

Maracay, Venezuela


"En computación solo hay una cosa segura...
   que no hay nada seguro" - Leopoldo Taylhardat

"Cada alternativa que tengas durante la búsqueda,
      será una meta en sí misma" - Jorge Olguín.

evmuv

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
    • http://evmuv.iespana.es
Re: Limpiar Dddw
« Respuesta #2 en: Jueves 14 de Septiembre de 2006, 16:11 »
0
Mmmm, ok, tienes razón, gracias, ahora mi pregunta es como hacer para mostrar seleccinado en el DDDW un item de la base de datos, o sea, solo recupero el código(del banco, por ejemplo) y con ese codigo como hacer ke se muestre el nombre del banco en el DDDW? He estado probando pero no encuentro ke función del DW hace ke dandole el codigo me muestre el nombre, Bueno, gracias de antemano.

leoandres

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: Limpiar Dddw
« Respuesta #3 en: Jueves 14 de Septiembre de 2006, 16:48 »
0
Saludos.
Cuando fabricas el objeto dw que te servirá de base como dddw, seleccionas el nombre del banco y el codigo del banco, en la parte de edicion (diseño) del dw, eliminas la columna del codigo, cosa que te represente solo el nombre del banco, debes usar un tipo de dw tabular para que funcione bien como dddw.
Cuando asignas en las propiedades del dato en la parte de edición (te acuerdas que se te abren tres lineas para ser llenadas cuando defines que es un dddw) en la primera va el nombre del objeto dw, en la segunda el nombre del dato a desplegar (nombre banco) y en la tercera el dato que almacenará para selección (codigo banco).
leopoldotaylhardat@hotmail.com

Leopoldo Taylhardat

Software, Organización y Sistemas

Maracay, Venezuela


"En computación solo hay una cosa segura...
   que no hay nada seguro" - Leopoldo Taylhardat

"Cada alternativa que tengas durante la búsqueda,
      será una meta en sí misma" - Jorge Olguín.

evmuv

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
    • http://evmuv.iespana.es
Re: Limpiar Dddw
« Respuesta #4 en: Jueves 14 de Septiembre de 2006, 17:07 »
0
Saludos.
He intentado poner este codigo en el evento ROWFOCUSCHANGED de mi DDDW pero no devuelve nada, o sea, no sale ningun mensaje.

lvcodban=dw_bancos.GetItemString(1,"id_banco")
messagebox("AVISO",lvCodBan)

leoandres

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: Limpiar Dddw
« Respuesta #5 en: Jueves 14 de Septiembre de 2006, 22:04 »
0
Saludos...

Si no te sale nada es porque el valor que esta obteniendo es "nulo", prueba esto
lvcodban=dw_bancos.GetItemString(1,"id_banco")
IF ISNULL(LVCODBAN) THEN
messagebox("AVISO","VALOR NULO...")
else
messagebox("AVISO",lvCodBan)
end if

Veras que te sale el primer mensaje...
lo otro es que siempre estas tomando el valor del 1er. registro accesado en el datawindow, cambia para que te funcione asi...
lvcodban=dw_bancos.GetItemString(dw_bancos.GetRow(),"id_banco")

te tomará el valor del renglón que selecciones en el dw.
leopoldotaylhardat@hotmail.com

Leopoldo Taylhardat

Software, Organización y Sistemas

Maracay, Venezuela


"En computación solo hay una cosa segura...
   que no hay nada seguro" - Leopoldo Taylhardat

"Cada alternativa que tengas durante la búsqueda,
      será una meta en sí misma" - Jorge Olguín.

evmuv

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
    • http://evmuv.iespana.es
Re: Limpiar Dddw
« Respuesta #6 en: Viernes 15 de Septiembre de 2006, 22:35 »
0
Tienes razón, tengo que recuperar la fila seleccionada.
No sabia que para que funcione bien el DDDW tenia q ser tabular, ok voy a probarlo, muchas gracias, no sabes la gran ayuda que eres.