Hola a todos, estoy desarrollando una ventana de búsqueda la cual tiene un DropDownListBox la cual carga todos los campos del DataWindow de la ventana que invoque a la ventana de búsqueda.
Para esto hice lo siguiente en un objeto uo_dw tengo un evento ue_buscar el cual tiene el siguiente código:
integer li_i, li_count ,li_col
string ls_columnas[], ls_nombre
Window lw_Window
lw_Window = w_principal.GetActiveSheet()
li_col = 0
s_buscar lstr_buscar
li_count = integer(this.Object.DataWindow.Column.Count)
if li_count <= 0 then return
For li_i = 1 to li_count
if lower(this.describe("#" + string(li_i) + ".Band")) = "detail" then
ls_nombre = this.describe("#" + string(li_i) + ".name")
if this.describe(ls_nombre + ".visible") = '1' then
li_col++
lstr_buscar.s_columna[li_col]= ls_nombre
lstr_buscar.s_texto [li_col] = this.describe(ls_nombre + "_t.text")
end if
end if
next
//Enviar Window y DataWindow como parametros
lstr_find.w_window = lw_Window
lstr_find.dw_object = This
//Abrir ventana de búsqueda enviando parametros
OpenWithParm(w_busqueda, lstr_buscar)
Luego en la ventana de búsqueda w_busqueda en el evento open tiene el siguiente código:
En Variables de Instancia declaro:
s_buscar istr_buscar
String is_Columna
window iw_Window
datawindow idw_datawindow
En el evento open:
Integer li_i, li_c
istr_buscar = Message.PowerObjectParm
iw_Window = istr_buscar.w_window
idw_datawindow = istr_buscar.dw_object
li_c= UpperBound(istr_buscar.s_columna)
FOR li_i= 1 TO li_c
ddlb_1.AddItem(istr_buscar.s_texta[li_i])
NEXT
ddlb_find.Selectitem(1)
is_Columna = istr_find.s_columna[1]
En el evento selectionchanged del DropDownListBox:
is_Columna = istr_buscar.s_columna[index]
Los campos del DataWindow de la ventana que invoca o abre la ventana w_busqueda se cagan en el DropDownListBox pero cuando selecciono un campo en el DropDownLisBox no hace referencia al campo seleccionado es decir si el combo muestra
Codigo
Nombre
Direccion
Fecha
Y elijo Nombre el combo hace referencia a otro por dar un ejemplo a Fecha, lo comprobe al colocar un messagebox en el evento selectionchanged del DropDownListBox
Alguien tiene una idea de como dar solución a este inconveniente?
En la ventana de busqueda tengo un boton buscar en el que tiene el siguiente codigo en el evento clicked:
string ls_dato
ls_dato = upper(sle_buscar.text)
if len(trim(sle_buscar.text)) = 0 or trim(sle_buscar.text) = "" then
idw_datawindow.SetFilter("")
else
idw_datawindow.SetFilter("Pos(Upper(string(" + is_Columna + ")), '" + ls_dato + "') > 0")
idw_datawindow.Filter()
end if
sle_buscar.setfocus()
Quise colocar
iw_Window.idw_datawindow pero no me permitio asi que lo grabe como se muestra.el codigo en el evento clicked del boton. Pero en tiempo de ejecución me manda un error en la linea sombreada de color amarillo.
Alguna idea, gracias por su tiempo
Saludos
Has recibido este mensaje porque estás suscrito al grupo "TechEra" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a
.
.
0 comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.