Consulta en text1

Sr. Experto:
Mi pregunta es la siguiente, tengo un formulario detinado para consulta por fecha compuesto por:
text1, label1, check1, command1
Me recomendaron que lo configurara de la siguiente forma
Form1:
Procedimiento:Load
USE t_movimientos
SET ORDER TO fecha
browse normal
Text1:
Propiedades
Format:d
inputMask:99/99/99
Check1:
Procedimiento:Click
close databases
OPEN DATABASE banco
USE t_movimientos
SET ORDER TO DATE (99/99/9999)
SET EXACT OFF
STORE 'B' TO fecha
SEEK fecha
LOCATE ALL FOR THISFORM.TEXT1.VALUE = fecha
IF FOUND()
 DISPLAY FIELDS Fecha, Cheque, Orden_Pago, Detalle, Valor
 THISFORM.CHECK1.VALUE = 1
ELSE
 THISFORM.LABEL1.CAPTION = "NO HAY FECHA"
 THISFORM.LABEL1.VISIBLE = .T.
 THISFORM.CHECK1.VALUE = 0
Endif
Label1:
Propiedades:
Visible:.f.
Command1:
Procedimiento:
Close Tables
Thisform.release
Ya me habías recomendado los siguiente y cito
"Por supuesto que se puede inclusive si tienes abierta la ventana de examinar (Browse) de una tabla y la línea de comando Set Filter es la que funciona apropiedamente ejemplo:
Use "Ruta\Facturas.dbf"
Select Facturas
Set Filter To Between(Facturas.fec_fac, Date(2010,01,01), Date(2010,02,01))
Browse
Ese es un ejemplo sencillo, funciona inclusive desde la ventana de comandos, si ya tienes abierta la tabla en una ventana de examinar (osea si ejecutaste Browse), no importa ejecutas set filter en la ventana de comandos y haces clic sobre la ventana de examinar y esta se actualiza.
Espero que te sirva la información.
Saludos"
Ademas en algún sitio había encontrado la configuración que t comento al text1, quisiera saber en que parte estoy fallando o que me hace falta
De ante mano muchas gracias
1

1 respuesta

Respuesta
1
Imagino que te sale algún tipo de error, pero esa forma no es la que yo recomendaría, ¿cuál es el tipo de error que te salé?
O mejor aún si gustas enviame una copia de tu formulario con la tabla y te lo mando corregido.
Estas en lo correcto, me aparece el error "El valor, tipo o numero de argumentos no es válido para la función, yo creería que es por que trato de introducir una fecha como carácter, cual crees que sea el problema, regálame el correo para poder enviarte el formulario con la tabla.
Gracias de antemano
Sí es muy posible que estés comparando una variable de tipo carácter con una de tipo fecha, si el campo de la tabla es de tipo fecha trata con esto:
Locate For Ctod(Alltrim(Thisform.Text1.Value)) = Tabla.Fecha
Me comentas como te fue.
Listo, el error de valor desaparcio, pero ahora me después de que dígito la fecha me aparece que falta algún argumento, yo creería que es en el check1, que me podrías recomendar.
Te recuerdo la configuración del check1:
close databases
open database aval
use t_movimientos
set order to date (99/99/9999)
set exact off
store 'b' to fecha
seek fecha
locate for ctod(alltrim(thisform.text1.value)) = t_movimientos.fecha
if found()
            display fields fecha, cheque, orden_pago, detalle, valor
            thisform.check1.value = 1
else
            thisform.label1.caption = "no hay fecha"
            thisform.label1.visible = .t.
            thisform.check1.value = 0
Endif
Gracias de antemano
Quita estás líneas de código que son la posible causa del error y además no hacen absolutamente nada:
Store 'b' to fecha
Seek fecha
A ver si con eso solucionas el problema.
No, quito las lineas que me recomiendas, pero sigue apareciendo ese problema, ademas me muestra el depurador de vfp y me señala que el error esta en la siguiente linea:
set order to date (99/99/9999)
ya probe estableciendo formato:
99/99/9999
9999/99/99
99/9999/99
Pero no aparece nada, cual crees que podría ser el problema.
Gracias de antemano
Si claro esa línea está mal, esa es para ordenar un campo índice y además estás utilizando mal la función date(), es más, no es necesaria esa línea quítala y si de pronto necesitas ver el campo de fecha con cierto formato, escribe la siguiente línea de comando:
Set Date To DMY
A ver cómo te va con esto.
Mira, ya dejo de aparecer el error, pero ahora ponga la fecha que ponga, me aparece que no hay fecha, este es el código que llevo:
close databases
open database aval
use t_movimientos
set date to dmy
set exact off
locate for ctod(alltrim(thisform.text1.value)) = t_movimientos.fecha
if found()
            display fields fecha, cheque, orden_pago, detalle, valor
            thisform.check1.value = 1
else
            thisform.label1.caption = "no hay fecha"
            thisform.label1.visible = .t.
            thisform.check1.value = 0
Endif
Cual crees que pueda ser el error que me produzca esto. De ante mano muchas gracias
Puedes enviarme una copia de ese fotmulario con la tabla a mi correo para ver qué es lo que pasa, pues ya se debería haber solucionado el problema.
De acuerdo, pero serias tan amable de regalarme el correo.
Mi correo es [email protected]
Sr. Experto:
Ya envíe el formulario y la tabla en la que hemos estado trabajando.
Gracias de antemano.
Ya envié el formulario corregido a tu correo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas