Clarion - Filtrar browse

 
Vista:

Filtrar browse

Publicado por Mª José (10 intervenciones) el 12/11/2010 12:56:42
Como puedo filtrar un browse por un campo que es calculado???
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
sin imagen de perfil

RE:Filtrar browse

Publicado por Marcelo Madelon (572 intervenciones) el 12/11/2010 13:43:18
Hola María José
Fijate en:

http://www.clarionwiki.com.ar/index.php?title=Puntos_Embebidos#Filtrar_un_Drop_Combo


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

RE:Filtrar browse

Publicado por Mª José (10 intervenciones) el 12/11/2010 14:14:57
perdón por mi torpeza, pero estoy totalmente pez en clarion...

FDCB14::View:FileDropCombo{PROP:SQLFILTER} = <39>'&clip(loc:filtro)&'<39>'
IF FILEERRORCODE()
FDCB14::View:FileDropCombo{PROP:SQLFILTER} =
END

esto para mi es casi chino, que es FDCB14???
yo tengo un list box, imagino que no sera lo mismo que un drop list box

Gracias por adelantado
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

RE:Filtrar browse

Publicado por Marcelo Madelon (572 intervenciones) el 12/11/2010 16:42:48
María José

Te muestro un filtro por código que tengo para filtrar los comprobantes que no estan vencidos con mas de 41 dias

! Filtrado según cantidad días
! OPEN PROCEDURE VIRTUAL
! VALIDATE RECORD PORCEDURE()
! PARENT CALL

Asterisco='' ! variable del list. Si no tiene mas de 60 dias de vencido esta vacia
! lo que sigue es el calculo de cantidad de dias entre dos fechas
DIAS = DATE(MONTH(Today()),DAY(Today()),YEAR(Today())) - DATE(MONTH(SO2:Fecemi),DAY(SO2:Fecemi),YEAR(SO2:Fecemi))
IF DIAS < 41
RETURN Record:Filtered ! Filtro
END
IF DIAS > 60
Asterisco = '###' ! si tieme mas de 60 dias le cargo los asteriscos
END

Espero te sirva
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

RE:Filtrar browse

Publicado por Marcelo Madelon (572 intervenciones) el 12/11/2010 20:53:16
María José

Posiblemente quieras filtrarlo directamente desde el Browse.
Entonces:
Desde List Properties
Record Filtered aca pones la condicion que necesites

CLI:Estado = 'ACTIVO' ! te filtrará todos los que cumplan con la condición esa

Por cada cada opción del Conditional Behavior en properties podras hacer un filtro desde Record Filtered

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

RE:Filtrar browse

Publicado por Mª José (10 intervenciones) el 15/11/2010 08:32:25
Muchas gracias, pero no me funciona.

Tengo un check y al marcarlo es cuando quiero que filtre el browse. En el browse tengo un campo cantidadStock, quiero que me aparezcan los que tienen un valor mayor a 0.
He puesto en Record Filtered cantidadStock >0, pero no me hace nada.

que es lo que deberia poner en el check para que me haga el filtro???
no bastaría con poner en el Record Filtered cantidadStock >0 para que me filtrase???
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

RE:Filtrar browse

Publicado por Marcelo (572 intervenciones) el 15/11/2010 13:19:55
María Jose

cantidadStock >0 ! No te va a mostrar los que tengan stock > 0

Si queres que te muestre los que tienen existencia

cantidadStock Not > 0 ! No muestra los que no tienen existencia

Si lo hicieras por Código Embebido

IF cantidadStock Not > 0
RETURN Record:Filtered
END
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:Filtrar browse

Publicado por Mª José (10 intervenciones) el 15/11/2010 14:08:38
Gracias Marcelo, pero no lo consigo.
En las propiedades del browse( en record filtered) puse cantidadStock Not > 0 , entiendo que eso debería filtrar directamente el resultado del browse, pero no lo hace.

En el check lo tengo en 'control event handling, after generated code' , pongo el siguiente código
do hacerfiltro
brw1::view:browse{prop:filter} = filtro

ForceRefresh = True
DO RefreshWindow

En procedure tengo hacerfiltro que tiene el siguiente código:
hacerFiltro routine
!obtenemos la parte fija del filtro
if BRW1::filtrofijo = ''
BRW1::filtrofijo = clip(filtro)
end

!ponemos la parte variable del filtro
!si marcan con stock
if stock = 1 then
filtro = clip(BRW1::filtrofijo) & ' AND ' & BRW1::cantidadStock & ' >= 1'
else
filtro = clip(BRW1::filtrofijo)
end

Esto no me funciona, simplemente filtra por el primer registro, no por cada uno de ellos. Donde esta el error???
que es lo que hago mal???
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

RE:Filtrar browse

Publicado por Marcelo Madelon (572 intervenciones) el 15/11/2010 14:13:03
Maria Jose
El campo por el que queres filtrar, está en el List del Browse?
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:Filtrar browse

Publicado por Mª José (10 intervenciones) el 15/11/2010 14:33:25
pues si, tengo varios campos y entre ellos esta el cantidadStock
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

RE:Filtrar browse

Publicado por Marcelo Madelon (572 intervenciones) el 15/11/2010 14:58:51
María José

No me doy cuenta como lo tenes o que estas haciendo.

A ver si podemos.

En el browse
Clic Derecho soble el List
Action
Record Filter (Aca va la condicion)

Ej:
Si el archivo es STOCK001.TPS y el prefijo es STK

STK:Existencia > 0 ! Muestra solo lo que tienen existencia

En cada lengüeta podes poner un filtro según tu necesidad


Si lo haces por codigo embebido

En Validate Record

IF STK:Existencia Not > 0 ! No te muestra los que no tienen existencia
RETURN Record:Filtered
END
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:Filtrar browse

Publicado por Mª José (10 intervenciones) el 16/11/2010 08:33:24
Marcelo, muchas gracias por tu ayuda y paciencia...

-------------condicion---------------
La condicion efectivamente va en el record filter del action (pulsando en el browse con el derecho). En el browse aparece el campo unicamente como 'cantidadStock', en la condición aparece 'BRW1::cantidadStock Not > 0'
Al mostrar la pantalla una vez compilado no me hace realmente el filtro

-------------embebido---------------
Yo lo que quiero es que al marcar un check (he llamado stock) se filtre el browse, asi que me he creado el embebido del check en 'control event handling, after generate code'
El código que tengo puesto es:

do hacerfiltro
brw1::view:browse{prop:filter} = filtro

ForceRefresh = True
DO RefreshWindow

hacerFiltro me lo he creado en 'procedure routines'.
El código de hacerFiltro es:
if stock = 1 then ! si el check esta marcado
filtro = clip(BRW1::filtrofijo) & ' AND ' & BRW1::cantidadStock & ' >= 1'
else
filtro = clip(BRW1::filtrofijo)
end

no puedo poner el if que me dices pq me da un error : 'Cannot return value from procedure'.

IF STK:Existencia Not > 0 ! No te muestra los que no tienen existencia
RETURN Record:Filtered
END

Compilo y al mostrar la pantalla, no me hace el filtro.
No se si te ha quedado muy claro.

Gracias
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

RE:Filtrar browse

Publicado por Marcelo Madelon (572 intervenciones) el 16/11/2010 11:07:53
María José

Pasame un mail y te mando un ejemplo.

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
sin imagen de perfil

RE:Filtrar browse

Publicado por Marcelo Madelon (572 intervenciones) el 16/11/2010 13:31:10
María José, (la mama de Hugo) ya salio, avisame si te sirvio.

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