Buscar en Data Windows Conformado por 2 Tablas

Carlos reciba mis saludos a la Distancia y te agradezco muchísimo que me hayas ayudado anteriormente, en esta oportunidad deseo que me ayudes en un problemita que no puedo salir que consiste en; que tengo 2 tablas relacionadas (enlazadas) que reporto en datawindow de tipo Tabular y de este reporte deseo buscar un registro. Para ser más específico estoy trabajando un sistema de Trámite documentario la Primera tabla es el Detalle de los Documentos como a que oficina se deriva y la Segunda es de Oficinas, entonces de la tabla oficinas no quiero que me muestre el Id_Oficina si no el Nombre del Responsable, el problema es que cuando realizo una búsqueda como lo hacía anteriormente no me sale... Por favor ayúdame y te agradezco muchísimo de antemano.

1 Respuesta

Respuesta
1
¿Y cómo lo asías anteriormente?
¿Tienees creado ya tu DW?
Deberías crearl0 enlazado a las 2 tablas (las tablas deben estar relacionadas), ahí te sale el combinado de las columnas de ambas tablas en el cual eliges solo las columnas que quieres mostrar. En lugar el ID eliges la descripción.
Y en tu búsqueda la haces de = manera un retrieve por la columna Nombre en vez del ID.
Bueno gracias por tu respuesta, pero sabes aun no me sale pero el código que uso normalmente para buscar es esta:
integer fer
string busca
busca="UPPER(Detalle.Num_Exp) like '%"+sle_busca.text+"%'"
fer=dw_2.find(busca,1,dw_2.rowcount())
if (fer = 0) then
    messagebox("Verifique","El Expediente " + sle_busca.text + " no se Encuentra Registrado.~rSe Recomienda que realice el trámite respectivo", exclamation!, OK!, 2)
    sle_busca.text=""
    sle_busca.setfocus()
else
    dw_2.scrolltorow(fer)    
end if
sle_busca.text=""
sle_busca. Setfocus()

Pero cuando intento realizar la búsqueda me sale "expecting STRING expression" y no realiza la búsqueda. Las tablas que uso para dicho reporte son: DETALLE (Id_Detalle, Num_Exp, Fecha, Id_Oficina) y OFICINA(Id_Oficina, Descripción, Responsable, Secretaria) y lo que muestro en la Datawindow es Num_Exp, Fecha, Descripción y Responsable. Y de esto hago la búsqueda con el código anterior y no me sale... Por favor ayudame si! Gracias por tu atención.
Bueno ese error es porque la sentendia que intentas ejecutar para el filtro esta mal hecha.
Verifica que el nombre de tu columna sea el mismo que colocas acá IDÉNTICO velo en el painter de tu DW., no creo que sea Detalle. Num_Exp, a lo mejor es Detalle_Num_Exp, ya que cuando diseñas la DW nunca le pone puntos.
busca="UPPER(Detalle.Num_Exp) like '%"+sle_busca.text+"%'"
Si Carloscharly opté por una mejor por realizar un filtro y me corre perfecto con este código se puede realizar el filtro de cuantas tablas desees y el código la comparto en esta comunidad el cual es:
Colocas en tu ventana una caja de texto llamado (sle_buscar), el cual será para ingresar el código o el registro que se desea buscar.
Luego crear un botón llamado(Buscar) y en el cual en el evento clicked() se digita la siguiente sentencia:
dw_1.setfilter( "num_exp like '"+ sle_buscar.text +"%'")
dw_1.filter( )
PD: num_exp estuvo originalmente como (tabla_num_exp) o sea que primero estaba el nombre de la tabla entonces lo que debemos hacer es suprimir el nombre de la tabla o sea tabla_, así quedará solo el verdadero nombre con el cual se puede realizar la búsqueda.
Y si desean que vuelva a mostrar todos los datos crean otro botón que podría llamarse (Ver Todo) y en el evento clicked digiten este código:
dw_1.setfilter( "")
dw_1.filter( )
Bueno eso es todo recuerden que ésta es la mejor opción para realizar una búsqueda en el reporte que se realizó de varias tablas. Y es llamada Filtro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas