FoxPro/Visual FoxPro - CONSULTA EN FOX QUE MUESTRA EN GRID

 
Vista:

CONSULTA EN FOX QUE MUESTRA EN GRID

Publicado por MARK (25 intervenciones) el 03/03/2017 16:21:48
BUEN DIA AMIGOS. REQUIERO SU APOYO POR FAVOR
LA CONSULTA ES: tengo una tabla con el nombre de : expediente_adjunto. el cual contiene registros de ( num_doc,ano_eje,monto,total_pagado)

TENGO EL FORMULARIO.

EN EL CUAL CONTIENE:
UN GRID.** CON EL NOMBRE DE GRID3
DOS TXT. && Uno DE(AÑO) Y EL Otro DE (DOCUMENTO)
Y UN COMMAND. ** EL CUAL ES EL BOTÓN DE CONSULTA . MI CÓDIGO ES LO SIGUIENTE::



**CLIK.

1
2
3
4
5
CUENTA=THISFORM.TEXT1.Value
ANIO=THISFORM.TEXT2.Value
SET DEFAULT TO M:\Sistema\data
SET EXCLUSIVE OFF
SELECT * FROM expediente_adjunto WHERE  ano_eje=ANIO AND Num_doc=CUENTA

** HA REALIZAR CON ESTE CÓDIGO ME FILTRA. SI . PERO EN UNA TABLA APARTE..
LO QUE QUIERO ES QUE ME MUESTRE EN MI GRID3.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

CONSULTA EN FOX QUE MUESTRA EN GRID

Publicado por José M. Ferrer A. (31 intervenciones) el 03/03/2017 18:26:13
Realiza estos cambios el código del evento Click a ver si funciona
**CLIK.

1
2
3
4
5
6
7
8
9
CUENTA=THISFORM.TEXT1.Value
ANIO=THISFORM.TEXT2.Value
lcCadSQL=[SELECT * FROM expediente_adjunto WHERE ano_eje=']+ANIO+[' AND Num_doc=']CUENTA+[']
SET DEFAULT TO M:\Sistema\data
SET EXCLUSIVE OFF
*--- Estable el tipo de origen de datos de la cuadrica a Instrucción SQL
THISFORM.GRID3.RecordSourceType=4
*--- Indicar la secuencia SQL que aplicará el grid.
THISFORM.Grid3.RecordSource=lcCadSql &&SELECT * FROM expediente_adjunto WHERE ano_eje=ANIO AND Num_doc=CUENTA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

CONSULTA EN FOX QUE MUESTRA EN GRID

Publicado por MARK (25 intervenciones) el 06/03/2017 15:45:24
AMIGO JOSE DISCULPE SOY CASI NUEVO EN ESTO Y ME SALE ERROR DE SINTAXIS..
EN ESTE CÓDIGO::
lcCadSQL=[SELECT * FROM expediente_adjunto WHERE ano_eje=']+ANIO+[' AND Num_doc=']CUENTA+[']
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

CONSULTA EN FOX QUE MUESTRA EN GRID

Publicado por José M. Ferrer A. (31 intervenciones) el 06/03/2017 19:49:17
Falta un signo + cuando arma la cadena SQL

lcCadSQL=[SELECT * FROM expediente_adjunto WHERE ano_eje=']+ANIO+[' AND Num_doc=']+CUENTA+[']
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

CONSULTA EN FOX QUE MUESTRA EN GRID

Publicado por MARK (25 intervenciones) el 06/03/2017 21:13:42
muchas gracias por el apoyo.. ahora ya al realizar el click.
mi grid. aparece solo de color blanco y no me muestra los datos ...
que e ingresado al los txts.

CUENTA=THISFORM.TEXT1.Value
ANIO=THISFORM.TEXT2.Value
lcCadSQL=[SELECT * FROM expediente_adjunto WHERE ano_eje=']+ANIO+[' AND Num_doc=']+CUENTA+[']
SET DEFAULT TO M:\sistema\data
SET EXCLUSIVE OFF

THISFORM.Grid3.RecordSourceType=4

THISFORM.Grid3.RecordSource=lcCadSQL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.370
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

CONSULTA EN FOX QUE MUESTRA EN GRID

Publicado por Fidel José (642 intervenciones) el 07/03/2017 00:02:39
Simplifica los problemas o no te compliques innecesariamente.
Esto es más fácil así:

1
2
3
4
5
6
7
8
9
10
11
12
lcCUENTA=ALLTRIM(THISFORM.TEXT1.Value)
lnANIO=THISFORM.TEXT2.Value
SELECT * ;
	FROM expediente_adjunto ;
	WHERE ano_eje = lnAnio AND Num_doc = lcCuenta ;
	INTO CURSOR curExped READWRITE
 
WITH THISFORM.Grid3
	.RecordSourceType=1
	.RecordSource="curExped"
	.Refresh
ENDWITH
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

CONSULTA EN FOX QUE MUESTRA EN GRID

Publicado por MARK (25 intervenciones) el 07/03/2017 20:46:14
MUCHAS GRACIAS YA PUEDO VER EN MI GRID..SOLO QUE EL FILTRO ES UN POCO LENTO NADA MAS... SI EXISTIERA ALGÚN CÓDIGO PARA HACERLO MAS VELOZ ..??? SERIA DE MUCHA AYUDA..
MUCHAS GRACIAS. POR SU APOYO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.370
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

CONSULTA EN FOX QUE MUESTRA EN GRID

Publicado por Fidel José (642 intervenciones) el 07/03/2017 23:27:07
Si la tabla expediente_adjunto es grande, te va ayudar que tenga un índice sobre "ano_eje" y otro sobre "Num_doc".
Si la tabla expediente_adjunto tiene muchos campos, o campos muy largos, te puede ayudar poner en la consulta solamente los campos que necesitas para el cursor en lugar del asterisco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

CONSULTA EN FOX QUE MUESTRA EN GRID

Publicado por MARK (25 intervenciones) el 07/03/2017 23:46:48
EXACTO AMIGO FIDEL. POR FAVOR.. APOYAME EN ESO.
TIENE 16 CAMPOS::

YO SOLO QUIERO QUE ME MUESTRE.

:: ano_eje,expediente,cuenta,monto,estado,detalle,calculo



&& estos campos nomas quiero que me muestre el resto no se requiere para la consulta...
si esto acelera la consulta seria bueno

agradeceré su apoyo por favor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.370
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

CONSULTA EN FOX QUE MUESTRA EN GRID

Publicado por Fidel José (642 intervenciones) el 08/03/2017 22:33:39
Esto te puede mejorar un poco el rendimiento. No obstante, si la tabla tiene muchos registros, te convendrá generar los índices para los campos del WHERE.

PROCEDURE Generar_Indices
USE expediente_adjunto IN 0 EXCLUSIVE
DELETE TAG ALL && siempre que se regeneran indices hay que borrar los anteriores.
INDEX ON ano_eje TAG Anoeje
INDEX ON Num_doc TAG numdoc
USE IN expediente_adjunto
ENDPROC

Para la creación de índices conviene generar una rutina de mantenimiento que pueda reusarse cuando sea necesario.
La rutina puede estar en un archivo PRG o en una clase custom, por ejemplo. Depende del gusto.

1
2
3
4
5
6
7
8
9
10
11
12
SELECT ano_eje,expediente,cuenta,monto,estado,detalle,calculo ;
	FROM expediente_adjunto ;
	WHERE ano_eje = lnAnio AND Num_doc = lcCuenta ;
	INTO CURSOR curExped READWRITE
 
lnRegistros_Cursor = _tally
 
WITH THISFORM.Grid3
	.RecordSourceType=1
	.RecordSource="curExped"
	.Refresh
ENDWITH
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar