Clarion - filtro con doble rango?

 
Vista:

filtro con doble rango?

Publicado por jose felix (70 intervenciones) el 27/10/2009 23:39:53
Quiero hacer un filtro en un browse donde el usuario pueda seleccionar dos rangos. En me caso un rango es fecha y el otro es vendedor. Desde ya muchísimas gracias. Y saludos a todos en el foro.
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
Imágen de perfil de Asdrubal Petit Serrano

RE:filtro con doble rango?

Publicado por Asdrubal Petit Serrano (30 intervenciones) el 28/10/2009 23:22:19
Donde en un Browse o Report
Browse: Utiliza variables Globales o locales en la ventana/pantalla y luego un boton
donde tendrás un SELF.Reset(1)
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

RE:filtro con doble rango?

Publicado por José Félix (70 intervenciones) el 29/10/2009 21:44:17
Hola Asdrubal, Gracias por responder, pero lo que quiero es hacer un browse en el que se pueda seleccionar un rango de fechas DESDE - HASTA (esto se puede hacer con las propiedades del browse y ya está hecho) la cuestión está es en que se le quiere adicionar un rango adicional que sería VENDEDOR y este pueda ser ó un sólo vendedor o todos los existentes en la tabla (lo cual para mi es un rango adicional), este rango adicional no se como colocarlo en el browse. Espero haberme explicado mejor, Gracias nuevamente.
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
Imágen de perfil de Asdrubal Petit Serrano

RE:filtro con doble rango?

Publicado por Asdrubal Petit Serrano (30 intervenciones) el 29/10/2009 22:27:23
OK... espero que esto me lo agradezcas por el resto de tu vida... jajajajaja

Te voy a explicar como hacer algo para entender las propiedades de estas
forma de filtrar:

1.Declara una variable local llamada CONDICIONFILTRO tipo STRING(120) y la coloca
en la ventana o pantalla donde esta el browse, al cual denominaremos Browse:1 o BRW1

2.Coloca un boton (?button:1) al lado de la variable CONDICIONFILTRO, este boton tendrá un embed con la siguiente instrucción:
BRW1.SetFilter(condicion)
SELF.Reset(1)

3.Digamos que tienes una tabla (EJEMPLO-prefijo: EJ1) con los campos:
Numero, fecha, vendedor

4.Corre el programa y al ingresar a la pantalla o browse escribe en la variable condicionfiltro o DATAENTRY lo siguiente:
ej1:fecha=DATE(10,29,2009) and ej1:vendedor='JORGE'

luego presionar el ?botton1 y te mostrará la información con esa condición

Saludos a todos aquellos que me han ayudado por este medio y a los que no tambien
P.D.:Después de dos años en este foro solo una vez me han orientado... jajajaja
pero me seguiré comiendo CLARION

ESPERO QUE ESTA INFORMACION SEA DE GRAN AYUDA PARA MUCHAS COSAS
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

RE:filtro con doble rango?

Publicado por José (70 intervenciones) el 31/10/2009 14:04:45
Gracias nuevamente por responder Asdrubal, pero el BRW1.SetFilter(condicion) ya lo he probado y no me agarra el filtro que quiero hacer, en mi caso estoy haciendo un filtro que contenga los dos rangos de valores así:
CONDICION=('FVT:FechaPago=> GLO:FechaCobro1 and FVT:FechaPago<= GLO:FechaCobro2 and FVT:Vendedor => Glo:vendedor1 and FVT:Vendedor <= Glo:vendedor2 and FVT:Tipo<>Anulada And FVT:Pagada=1')

donde hay un campo que también probé de esta manera:
CONDICION=('FVT:FechaPago=> GLO:FechaCobro1 and FVT:FechaPago<= GLO:FechaCobro2 and FVT:Vendedor => Glo:vendedor1 and FVT:Vendedor <= Glo:vendedor2 and FVT:Tipo<>'&'Anulada'&' And FVT:Pagada=1')

Ya que el valor del campo es un valor string. Con cualquiera de las dos maneras no me agarra el filtro, vuelvo a repetir lo que quiero a ver si con el filtro arriba se entiende mejor, quiero que el usuario elija dos valores de fechas y un vendedor o todos los vendedores y que cumpla con el resto de las condiciones, espero haberme explicado o si es que hay algo que no estoy entendiendo me sepan explicar mejor, desde ya muchas gracias.

Saludos.
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
Imágen de perfil de Asdrubal Petit Serrano

RE:filtro con doble rango?

Publicado por Asdrubal Petit Serrano (30 intervenciones) el 31/10/2009 16:22:40
Que bueno que conoces BRW1.SetFilter(condicion)

EVIDENTEMENTE HAY ALGO EN LA CONDICION QUE ESTA MAL

FVT:FechaPago=> GLO:FechaCobro1 and FVT:FechaPago<= GLO:FechaCobro2 and FVT:Vendedor => Glo:vendedor1 and FVT:Vendedor <= Glo:vendedor2 and FVT:Tipo<>Anulada And FVT:Pagada=1

no puedo ver cual puede es el problema de LOGICA, creo que debes intentar
darle valores a las variables (como constantes) y colocar esta misma expresión en el filtro del
browse/template a ver que te muestra, EVALUANDO LA EXPRESION
determinar si son propios los datos en la muestra de la información

DIOOOOSSSSSSSS.... me tiene intrigado, PORQUE?
PERO QUE MUESTRA cuando aplicas el filtro?
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

RE:filtro con doble rango?

Publicado por Jorge Valenzuela (3 intervenciones) el 27/12/2009 05:00:12
ESPERO TE SIRVA LO SIGUIENTE:
Tengo una aplicacion limitada con rango de fecha y adicionalmente hago un filtro por Empresa (manejo varias) por Cliente y por vendedor haciendo lo siguiente tanto en el browse como en el reporte.

Busca el PROCEDURE ThisReport.ValidateRecord como el ejemplo a continuacion e inserta el codigo que sea necesario:

ThisReport.ValidateRecord PROCEDURE
ReturnValue BYTE,AUTO
CODE
ReturnValue = PARENT.ValidateRecord()
IF ReturnValue = Record:OK ! Si pasa el filtro anterior
IF Glo:Id_Cliente ! Inserta tu filtro(s) adicional(es)
IF FAC:Id_Cliente <> Glo:Id_Cliente THEN ReturnValue = Record:Filtered.
END
END
IF ReturnValue = Record:OK
IF Glo:Id_Empresa
IF FAC:Id_Empresa <> Glo:Id_Empresa THEN ReturnValue = Record:Filtered.
END
END
IF ReturnValue = Record:OK
IF Glo:Id_Vendedor
IF FAC:Id_Vendedor <> Glo:Id_Vendedor THEN ReturnValue = Record:Filtered.
END
END

Una vez que el registro pasa el filtro de fecha lo preubo con todas las demas condiciones adicionales igualando "ReturnValue = Record:Filtered" si alguna de ellas no se cumple.

ESPERO TE FUNCIONE.... HASTA LUEGO
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

RE:filtro con doble rango?

Publicado por MJose (10 intervenciones) el 12/11/2010 12:53:46
¿Cómo podría filtrar un browse si uno de los campos que muestro es calculado y precisamenten quiero filtrar por este campo?
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