• Domingo 22 de Diciembre de 2024, 19:54

Autor Tema:  Utilizacion De Dropdownlistbox  (Leído 11350 veces)

ruth2006

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Utilizacion De Dropdownlistbox
« en: Miércoles 21 de Junio de 2006, 14:19 »
0
Por favor si me pueden ayudar con lo siguiente: utilizo un DDLB para sacar datos de de una tabla de la BD ahora necesito lo siguiente: que de acuerdo a lo seleccionado mostrar los datos en un Datawindow.

leoandres

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: Utilizacion De Dropdownlistbox
« Respuesta #1 en: Viernes 23 de Junio de 2006, 00:58 »
0
Hola... ¿es un ddlb o un dddw?, si quieres saber que dato hay en el listbox debes trabajar con el dw de donde generaste el listbox, al seleccionar un item (del listbox) se activa el evento itemchanged de ese objeto, entonces debes preguntar por el valor de la variable "index" (que es propia del objeto ddlb), ese valor te apuntará al registro del dw de donde generaste los item del ddlb, al hacer dw_x.ScrollToRow(index), se posicionara en el renglon del dw que apunta al item del ddlb...o tambien obtener el texto que contiene el item del ddlb...
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.

pierpiter

  • Miembro activo
  • **
  • Mensajes: 58
    • Ver Perfil
Re: Utilizacion De Dropdownlistbox
« Respuesta #2 en: Viernes 23 de Junio de 2006, 15:18 »
0
Buenas, si entendí bien, lo que querés es seleccionar algo de un ddlb y después que eso se muestre en un dw.
Como dice leoandres, podés recuperar el item seleccionado usando el evento itemchanged o selectionchanged, ahí, adentro de ese evento, recuperas el dato seleccionado con:

ddlb_1.Text(index)

"Text" es una función propia del ddlb (en la version 9 de power) e "index" es una variable propia del evento, con "Text" recuperas el dato que esta en la posición "index". Una vez que tenés el dato, solo tendrías que recuperar el valor de una base de datos con un select o hacer un "scrolltorow" hasta ese elemento... en fin, depende de si ya tenés el dw cargado o si tenés que cargarlo en base al dato que se selecciona en el ddlb.
Bueno, cualquier cosita pregunta, si no es a lo que apuntabas o si necesitas más ayuda. Saludos.

ruth2006

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Utilizacion De Dropdownlistbox
« Respuesta #3 en: Viernes 23 de Junio de 2006, 21:23 »
0
El codigo que utilizo para extraer datos es el siguiente y lo hago mediante Drop Down Picture List Box

string ls_select
string ls_where
string ls_dwsyntax
string ls_err,is_cust, var
var = string(combo.text)
ls_select = "Select nombre from tabla "
      
ls_dwsyntax = SQLCA.SyntaxFromSQL ( ls_select,"Style(Type=grid)", ls_err )
dw_1.Create ( ls_dwsyntax, ls_err )
IF ls_err <> '' THEN
MessageBox ( "error - Syntax", ls_err )
ELSE
dw_1.SetTransObject ( SQLCA )
dw_1.Retrieve()
END IF

Los nombres aparecen en  ddplb y si selecciono uno de ellos me saque el codigo con el nombre en una nueva Dw. El problema es que no se como hacerlo, soy nueva en esto, por favor si me ayudan  gracias por sus respuestas.

leoandres

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: Utilizacion De Dropdownlistbox
« Respuesta #4 en: Sábado 24 de Junio de 2006, 16:51 »
0
Para que veas como funciona esto....
1. crea dos datawindows
1.1    a uno lo vas a llamar dddw_nombres (cuando lo guardes) , seleccionas la tabla y el orden en que      quieras que te aparezcan los datos (por ej. nombre)
1.2    a otro lo vas a llamar dw_datos (cuando lo guardes), seleccionas la tabla de donde quieres extraer para la busqueda...en el sql defines un argumento tipo string y lo llamas a_nombre (menu:design... retrieval arguments)
    en el where le pones (columna) nombre = :a_nombre; esto te permite que te filtre solo el (los) registro(s) que contengan ese valor...
2. crea una ventana con 2 objetos datawindow dentro de ella...
al primero (dw_1), le pones que el objetname=dddw_nombres
al segundo (dw_2) le pones que el objetname=dw_datos

en el script del open de la ventana le pones lo siguiente:
dw_1.Settransobject(SQLCA)
dw_2. Settransobject(SQLCA)
dw_1.retrieve()

3. en el evento 'ROWFOCUSCHANGED' del dw_1 le pones
dw_2.retrieve(this.getitemstring(this.getRow(),'nombre')

y listo.... en el primer dw (dw_1) te va a extraer todos los registros de donde parte tu búsqueda en el segundo (dw_2) te va a sacar los datos de lo que  especificamente busques...

tienes que poner en el retrieve que te puse en el punto 3 el nombre de la columna como te la define el dddw_nombres al crearse donde yo escribi 'nombre' (tiene que ir entre comillas (simple o doble)... ojo el nombre con que trabaja el datawindow (para la columna) no necesariamente es el mismo de la columna... lo cambia si tienes varias tablas cruzadas, etc....

espero que te sirva... no te compliques con crear por sintaxis...dw... ddlb,... etc.
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.

ruth2006

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Utilizacion De Dropdownlistbox
« Respuesta #5 en: Sábado 24 de Junio de 2006, 17:43 »
0
Esta frase aparece despues de crear a_nombre, le puse como me indicaste.
the a_nombre argument defined for the select statement was not referenced.
Por favor si me puedes ayudar quizas me falta algo más, cuando ya compilo supongo que es por eso que no se visualiza nada en el ddw_datos.
Gracias por tu ayuda.

pierpiter

  • Miembro activo
  • **
  • Mensajes: 58
    • Ver Perfil
Re: Utilizacion De Dropdownlistbox
« Respuesta #6 en: Lunes 26 de Junio de 2006, 19:54 »
0
Creo que te faltó este paso:
Código: Text
  1. ....en el sql defines un argumento tipo string y lo llamas a_nombre (menu:design... retrieval arguments)...
  2.  

Cuando creas la dw anda al menu design->retrieval arguments, te va a abrir una ventanita para definirle los argumentos a la dw. Ahí creas uno que le ponés "a_nombre" y lo definis del tipo string.
Ahora no recuerdo bien, pero creo que ese error salía cuando no se definían en la dw, pero si lo agregabas al select.
Espero te sirva, saludos.