Programación General > Visual FoxPro
busqueda de una fecha textbox
chispi26:
hola mi duda es sobre busquedas estoy haciendo un sistema para un negocio de ropa,en una pantalla quiero mostrar todas las ventas de un dia es decir por una fecha,para ello uso un textbox donde ingreso una fecha a buscar y un listbox donde mostrar todos los registros referido a esa fecha, para ello uso select sql donde muestro en un cursor todos los campos referido a esa fecha donde el valor del textbox es igual a la fecha y el cursor se visualiza en el listbox en rowsource los campos de la tabla ventas son: codigo, fecha que es tipo dato,articulo y importe. Ejecuto el formulario funciona bien el asunto es que cuando la fecha no se encuentra quiero indicarle con un mensaje de que no se encotro esa fercha se me ocurrio usar un seek pero me tira error de "cannot access the selected table en el cursor del select" si alguien sabe darme un pista al asunto desde ya gracias salu2 ale.
aca va parte del codigo del boton buscar
eMessageTitle2 = 'Sistema Winkel 2010'
eMessageText2 = 'No se encontro ventas a esa fecha'
nDialogType2 = 0 + 64
CLOSE TABLES all
CLOSE DATABASES all
USE ventas EXCLUSIVE
SET ORDER TO tag fecha
fecha=thisform.text1.Value
SEEK fecha
IF FOUND()
thisform.list1.rowsource =""
select fecha,codigo,articulo,importe from ventas where thisform.text1.value=fecha ORDER BY fecha into cursor xx
thisform.list1.rowsource="xx"
thisform.list1.Refresh
ELSE
MESSAGEBOX(eMessageText2, nDialogType2, eMessageTitle2)
ENDIF
propiedades del listbox
columncount= 4
columnwidths=100,100,100,100
rowsourcetype=6-fields
ahi en imagenes subo lo que me tira la pantalla cuando se encuentra la fecha muestra los registros en la segunda imagen cuando la fecha no se encuentra tira ese error nada mas salu2
B)[attachment=1:2jumwlxk]resultado1.jpg[/attachment:2jumwlxk]
arielb:
Hola bienvenido al foro.
Bueno por el error "cannot access the selected table en el cursor del select", quiere decir que no existe el cursor al que está apuntando
--- Código: Text ---IF FOUND() thisform.list1.rowsource ="" select fecha,codigo,articulo,importe from ventas where thisform.text1.value=fecha ORDER BY fecha into cursor xx thisform.list1.rowsource="xx" thisform.list1.RefreshELSE MESSAGEBOX(eMessageText2, nDialogType2, eMessageTitle2)ENDIF
Observando el código el cursor que le estás asignando al list lo estás haciendo si la condición se cumple cuando no se cumple ya no existe porque lo estás cerrando con el close table all, y ya las propiedades del list le asignaste los valores y sigue haciendo referencia.
chispi26:
y que le faltaria arreglar en este caso ya que hace referencia a un cursor el problema surge cuando hago mas de una busqueda sobre todo si no se encuentra la fecha a buscar puede ser que le falte alguna modificacion al codigo del boton buscar si alguien me puede ayudar desde ya gracias y gracias por la primera respuesta que por lo me menos me aclaran a que hace referencia a ese error ,salu2 ale.
arielb:
Hay otras maneras pero para no realizar tantos cambios en el código intenta con esto.
--- Código: Text ---IF FOUND() thisform.list1.rowsource ="" select fecha,codigo,articulo,importe from ventas where thisform.text1.value=fecha ORDER BY fecha into cursor xx thisform.list1.rowsource="xx" thisform.list1.RefreshELSE thisform.list1.rowsource="" thisform.list1.Refresh MESSAGEBOX(eMessageText2, nDialogType2, eMessageTitle2)ENDIF
chispi26:
gente la idea esta bien se me ocurrio asi tambien la forma de solucionarlo pero sigue tirando ese error cuando no se encuentra en la tabla la fecha a buscar por eso aca en zip paso la tabla junto al formulario para revisarlo igualmente gracias por su ayuda salu2 ale.
Navegación
[#] Página Siguiente
Ir a la versión completa