Búsqueda en DataWindows con control SingleLineEdit

Tengo el siguiente código en el evento Modified de mi control SingleLine Edit. El problema es que cuando ejecuto el programa y coloco un código(Criterio de búsqueda) me arroja un mensaje con Titulo DatWindows con el siguiente mensaje EXPECTING STRING EXPRESSION, y al final el DatWindows no me muestra el registro al cual pertenece el código ingresado.
Este el el código... Que por cierto lo copie de está página pero tengo el problema que ya conté del mensaje que aparece
Evento Modified de control SinglelineEdit
Long buscar
String cadena,dato
dato=sle_buscarcodigo.text   //Nombre del control donde voy aingresar el codigo a buscar
cadena = "IdCliente LIKE '" + dato + "'" // Estoy buscando en el Campo IdCliente
Buscar = dw_Clientes.Find(cadena,1,dw_Clientes.RowCount()) //Mi control Datawindows se llama dw_Clientes
IF Buscar > 0 THEN
    dw_Clientes.Selectrow( 0, False)
    dw_Clientes.ScrollToRow(Buscar)
    dw_Clientes.SelectRow(Buscar,True)
    sle_buscarcodigo.text=""
    sle_buscarcodigo.SetFocus()
ELSE
    messagebox("Busqueda","No se encontró ningun registro con ese código")
END IF

1 Respuesta

Respuesta
1
La función find como la setfilter tienes el criterio en string... es por eso que t sale ese error... de seguro el campo de búsqueda es numérico... para eso tienes que convertirlo a string... de esta manera
cadena = "string(IdCliente) LIKE '" + dato + "'"
... suerte.. cualquier duda... me la haces
Hola William, gracias por contestarme... tenia razón revise mi Campo IdCliente y si es numérico... luego convertí el campo de búsqueda a String, pero cuando quiero ejecutar la ventana que contiene el DatWindows ce cierra todo el PowerBuilder... Es una cosa de loco... Pero cuando regreso al código anterior;... me sigue el problema del mensaje
Por siacaso tengo un Datawindows estilo Freeform, tal vez tenga algo que ver
dato=sle_buscarcodigo.text   //Nombre del control donde voy aingresar el codigo a buscar
cadena = "String(IdCliente) LIKE '" + dato + "'" // Estoy buscando en el Campo IdCliente
Buscar = dw_Clientes.Find(cadena,1,dw_Clientes.RowCount()) //Mi control Datawindows se llama dw_Clientes
Tienes algún código en el evento open de tu ventana o en el constructor de algún control ¿?
Este es el código que tengo en el evento Open de la ventana y la aplicación, he revisado los controles y en el evento constructor no hay código
OPEN DE LA VENTANA QUE CONTIENE EL DatWindows (W_Ventas)
dw_clientes.SettransObject(sqlca)
dw_clientes.Retrieve()
OPEN DE LA APLICACION
// Profile Bdventas
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "Connectstring='DSN=BDVentas'"
connect;
Open(W_Ventas)
Aparentement... too esta bien debe ser cosa de la herramienta... cosas así lo solucionaba volviendo hacer la aplicación... derrep se deba a la version... yo trabajo con el 10.5 y con el 12.5... he probado tu código en una aplicación y no se me presenta ese problema... espero que t salga bien... suerte
Ok... voy a volver a realizar la aplicación si aún no corre voy a probar instalando instalar la nueva versión para probar el código... muchas gracias por todo William, cuando necesite cualquier otra ayuda te escribo. Muchas gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas