Programación General > Visual FoxPro

 busqueda de una fecha textbox

<< < (2/3) > >>

arielb:
Bueno estuve viendo el código con un poco más de calma y encontré ciertas cosas

en la misma pantalla estás creando un indice y a la ves lo aplicas para hacer un seek y después haces una consulta.
En temas de rendimiento no es lo más óptimo dado que a medida que tús datos vallan creciendo y que la aplicación tenga que hacer todo eso la hará más lenta, pues son imnecesarios hacerlos todos.
Siguiendo con el tema de renimiento es bueno crear índices, aunque no vallas a usar seek, para búsquedas aunque sea por sql, pero no en el mismo proceso.

Otro punto es que estabas usando una variable que se confundía con el nombre del campo de la tabla, dado a que visual fox no te obliga a declarar las variables daba cabida a ese error.
Lo otro es que la consulta estaba mal elaborada, de la forma que estaba siempre te iba a traer todos los registros y no iba hacer el filtro de la fecha en especifico.
Se le agregó algunas instrucciones, que bueno tú verás en que formato te conviene más trabajar las fecha con set date

Te dejo el código que te puede funcionar


--- Código: Text ---Close Databases AllUse ventas Exclusive txtfecha=Thisform.text1.ValueSET DATE BRITISH SET EXACT ONSET SAFETY ON If !Empty(txtfecha)  Then     Select fecha,codigo,articulo,importe From ventas Where fecha=txtfecha Order By fecha Into Cursor xx    Select xx    If Reccount() == 0 Then        Messagebox(eMessageText2, nDialogType2, eMessageTitle2)    ENDIF    thisform.list1.rowsource="xx"                thisform.list1.RefreshElse    Messagebox("Debe colocar una fecha válida")Endif 

chispi26:
primero gracias por la aclaracion en realidad poco o casi nada uso el select sql estaba acostubrado a usar el seek para un solo dato pero aca estamos hablando de visualizar todas las ventas de un dia sobre una fecha hace rato que uso visual fox en realidad me acostubre en un principio a programar en fox 2.6 pero veo que las cosas en visual son distintas y todavia me falta mucho por aprender,gracias por tu aporte probare el codigo, unas dos dudas mas si yo quiero mandar a imprimir lo que visualizo en el listbox usando un message box que digan en caso de encontrar y visualizar la fecha desea imprimirlo o no se supone que tengo que realizar un reporte y llamar a ese reporte con alguna instruccion o hay un camino mas simple, y mi ultima duda hablando de fechas yo en una pantalla deseo saber las ventas mensuales decir el total de lo que se vendio en un mes en ese caso se deberia hacer algun compracion con alguna fecha o en base a un mes determinado con un combobox por ejemplo al seleccionar la opcion mayo visualize todas las ventas de mayo eso es todo salu2 ale.

arielb:
Bueno lo más sencillo y rápido sería que crearas un reporte y que lo invoques desde código.
Como ya tienes un cursor abierto solo haces que el reporte apunte a ese cursor y te trae los datos que fueron encontrados según el filtro de la fecha.
Me parece que podrías poner un botón  no visible, que diga Imprimir, debajo del que dice "Mostrar resultado", y si el reccount() es mayor a cero lo pones visible.
Para obtener resultados en un rango de fecha puedes usar la función between()
que puede ser algo así


--- Código: SQL ---SELECT SUM(IMPORTE) FROM VENTAS WHERE BETWEEN(FECHA,CTOD('01/07/2009'),CTOD('30/07/2009')) 
Me parece que si usas un combo limitas al usuario que las consultas sean del mes en específico, y no por periodos, al menos que le pongas las dos opciones, existe por ahí una clase para vfp de un datepicker.
Lo digo porque a los encargados de ver resultados y esas cosas les gusta generar reportes por periodos y no solo de un mes.
Es decir pueden tomar un trimestre o un semestre para realizar comparaciones con años anteriores, o comparaciones con el primer trimestre con el actual, cosas así.

Saludos

chispi26:
gracias sobre el control date picker lo ubico en visual basic pero nunca lo escuche hablar en visual foxpro y como añadirlo al form ademas de algun ejemplo el codigo tuyo es interesante el combobox se me ocurrio pq uso un combo para el mes y el otro para el año de modo si elijo mayo del 2009 me muestre todas las ventas de ese mes y año en un listbox ya que en un principio si tengo que mostrar todas las ventas se me olvido el detalle del año obviaente no sirve el codigo que se me ocurrio pq tendria que actualizar el codigo a cada rato, mira generalmente todo lo que se vende se hace a mano en una planilla hay una planilla para informar lo que se vendio en cada dia y otra para el mes en gral es un negocio chico de ropa no tiene tanta complejidad en ese sentido ahora si fuera otro tipo de negocio la cosa se complica mas en un buen punto de vista lo tuyo  cualq otra propuesta avisame salu2 ale.

arielb:
http://support.microsoft.com/kb/259646/es

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa