Mostrar datos de dos tablas relacionadas en DWde GRIF

Veo que eres el man rankeado, por eso recurro a ti ok
tengo dos tablas habitación, tipo_habitacion. Lo que quiero es me diante un SingleLineedit
buscar habitaciones ya sea por código o por tipo de habitación y al momento de hacer enter me arroje el resultado en DW de tipo Grif y se puede también como seria en un DW DE TIPO FreeForm ok .

1 respuesta

Respuesta
1
Te recomiendo que lo hagas con un dw external.
Creas un dw_external de un solo campo, por ejm: campo
Luego en tu ventana colocas un objeto dw que llame al dw_external, suponiendo que lo llames dw_buscar
Declara como variables de instancia colocas:
String is_campo
En el evento editchanged del dw_buscar
String ls_condicion
Long ll_fila
ls_condicion = is_campo +" ='"+data+"%'"
ll_fila = dw_datos.Find(ls_condicion,1,dw_datos.RowCount())
dw_datos.ScrollToRow(ll_fila)
dw_datos.SetRow(ll_fila)
En el evento clicked del dw_datos coloca:
is_campo = dwo.name
Estoy suponiendo que tu dw donde se encuentra los datos se llama dw_datos.
Este código te mostrará la información conforme vayas ingresando las letras, no es necesario que presiones enter.
He puesto todo lo que me dices tu pero al hora de ejecutar el dw_buscar ingreso el código de habitación pero no me deja buscar me sale este mensaje
Expression is not valid, y no  me deja  buscar , ademas  cuando  ejecuta el dw_buscar sale lleno  con   los codigos  de habitacion...
espeor que me entidas   te lo  explico  de  nuevo  ok :
Yo he creado un objeto datawindows de nombre (d_datos) de tipo grif ok y hay he jalado los campos de las dos tablas ok de habitación y tipo_habitacion los campos que he jalado son
de la tabla habitación son el id_habitacion y disponibilidad, y los campos de tipo_habitacion son : nombre_tipo, costo_tipo, todos estos campos están dentro de un solo objeto datawindosw de nombre(d_datos), ahora en la ventana de mi formulario he colocado un control datawindows de nombre(dw_2) y ya pues lo he llamado al objeto datawindosw (d_datos)
ya pues y para que me muestre los datos así nomas en el open de la ventana he colocado :
dw_2.settransobject(sqlca)
dw_2.Retrieve()
Hay me muestra el contenido de los 4 campos que he elegido de la dos tablas ok:
Espero que me hayas comprendido, lo que quiero es hacer una búsqueda ya sea por id_habitacion o por nombre_tipo, ya tu dices que haga la busquieda en dw_external ya no en un singlelineedit, pero de que tipo de datawindows lo creo, uh me olvidaba el resultado de la búsqueda tiene que mostrarse en el (dw_2) hay mismo ok
Si te sale error es porque seguro id_habitacion es de tipo numérico, y el código que te pase es para tipo cadena.
Haber lo que quieres es que te muestre solo el dato que tu has ingresado y los demás desaparezcan
Si es así, entonces haz lo siguiente:
Para no confundirte hazlo con singlelineedit:
Debes poner 2 radiobutton: Codigo - Descripcion
Luego en el evento clicked de botón buscar colocar:
String ls_dato
ls_dato = sle_1.text
dw_2.SetFilter("")
dw_2.Filter()
IF rb_1.checked THEN
dw_2.SetFilter("id_habitacion = '"+ls_dato"'")
END IF
IF rb_2.checked THEN
dw_2.SetFilter("nombre_tipo = '"+ls_dato"'")
END IF
dw_2.Filter()
NOTA: Recuerda esto funcionará si los campos a buscar son de tipo cadena.
Me sale error en
dw_2.SetFilter("id_habitacion = '"+ls_dato"'")
y la  otra  tambien:
dw_2.SetFilter("nombre_tipo = '"+ls_dato"'") 
Estos datos que voy ha buscar con de tipo cadena
Si disculpa fue un error de tipeo
Tienen que estar así:
dw_2.SetFiler("id_habitacion ='"+ls_dato+"'")
dw_2.SetFilter("nombre_tipo ='"+ls_dato+"'")
A la hora que guardo cambios los guarda perfectamente, lo ejecuto y la hora que busco por id_habitacion o nombre_tipo me sale lo mismo que la principio Expression is not valid
Dime cambiaste la búsqueda por un sle_1, y si puede indicame en que parte te sale ese mensaje (es decir en que linea te sale eso), la verdad no debería salir si estas usando un sle_1.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas