Page 1 of 1
Cambiar set filter
Posted:
Sat Apr 23, 2022 3:57 am
by José Camilo
Buenas noches. de que otra forma se puede indicar un filtro como este en un xBrowse.
set filter to pagos->consorcio = nncons .and. dtos(pagos->fechliq)<=dtos(dfliq) .and. ! Pagos->pagado
no se como se usa el SCOPE ni donde puedo obtener su sintaxis.
Gracias
Re: Cambiar set filter
Posted:
Sat Apr 23, 2022 11:50 am
by nageswaragunupudi
- Code: Select all Expand view
set filter to payments->consortium = nncons .and. discounts(payments->liqdate)<=discounts(dfliq) .and. ! Payments->paid
oBrw:GoTop()
oBrw:Refresh()
Re: Cambiar set filter
Posted:
Sat Apr 23, 2022 12:12 pm
by karinha
Use INDEX ON... MEMORY // TEMPORARY Super rápido y seguro.
- Code: Select all Expand view
INDEX ON <expKey> [TAG <cOrderName>] [TO <cOrderBagName>]
[FOR <lCondition>] [ALL]
[WHILE <lCondition>] [NEXT <nNumber>]
[RECORD <nRecord>] [REST]
[EVAL <bBlock>] [EVERY <nInterval>]
[UNIQUE] [ASCENDING|DESCENDING]
[USECURRENT] [ADDITIVE]
[CUSTOM] [NOOPTIMIZE] [MEMORY] [TEMPORARY]
haga una busqueda en el foro.
Regards, saludos.
Re: Cambiar set filter
Posted:
Sat Apr 23, 2022 12:28 pm
by karinha
- Code: Select all Expand view
#command INDEX ON <key> [TAG <(tag)>] TO <(bag)> ;
[FOR <for>][ WHILE < while > ][ NEXT < next > ] ;
[RECORD <rec>][ < rest:REST > ][ < all:ALL > ] ;
[EVAL <eval>][ EVERY < every > ][ < unique: UNIQUE > ] ;
[<ascend: ASCENDING>][ < descend: DESCENDING > ] ;
[<add: ADDITIVE>][ < cur: USECURRENT > ][ < cust: CUSTOM > ] ;
[<noopt: NOOPTIMIZE>][ < mem: MEMORY, TEMPORARY > ] ;
[<filter: USEFILTER>][ < ex: EXCLUSIVE > ] => ;
ordCondSet( < "for" >, < { for } >,[ < .all. > ], < { while } >, ;
<{ eval } >, < every >, RecNo(), < next >, < rec >, ;
[<.rest.>],[ < .descend. > ],, ;
[<.add.>],[ < .cur. > ],[ < .cust. > ],[ < .noopt. > ], ;
<"while" >,[ < .mem. > ],[ < .filter. > ],[ < .ex. > ] ) ;;
ordCreate( < ( bag ) >, < ( tag ) >, < "key" >, < { key } >,[ < .unique. > ] )
Regards, saludos.
Re: Cambiar set filter
Posted:
Sat Apr 23, 2022 2:33 pm
by José Camilo
Sr. Rao. gracias por atender mi duda. al probar su solucion me desconoce la funcion DISCOUNTS.
En realidad el set filter mio de ejemplo funciona bien solo que cuando por ejemplo estoy en el 5to registro y llamo a una funcion para cargar un dato ya sea que lo cargue o no al retornar al xbrowse me toma como primer registro el 5to, no me deja ir hacia arriba hasta que muevo todos los registro hacia abajo y luego si me permite ir al inicio. me explico.? al sacar el set filter funciona bien . disculpe. no domino el ingles. Gracias
Re: Cambiar set filter
Posted:
Sat Apr 23, 2022 2:36 pm
by José Camilo
Karinha. gracias por contestarme. hoy x hoy tu solucion me supera. no la entiendo mucho. perdon.
Re: Cambiar set filter
Posted:
Sat Apr 23, 2022 3:03 pm
by karinha
José Camilo wrote:Karinha. gracias por contestarme. hoy x hoy tu solucion me supera. no la entiendo mucho. perdon.
- Code: Select all Expand view
// set filter to pagos->consorcio = nncons .and. dtos(pagos->fechliq)<=dtos(dfliq) .and. ! Pagos->pagado
LOCAL cAlias
SELECT( PAGOS )
GO TOP
cAlias := ALIAS()
// Mira que TAG es la ultima de PAGOS.CDX + 1 aqui:
INDEX ON CONSORCIO TAG 03 TO CONSTEMP FOR ( .NOT. EOF() ) .AND. ;
( cAlias )->consorcio = nnCons .AND. ;
( cAlias )->dtos( ( cAlias )->fechliq <= dtos( dfliq ) ) .AND. ;
( cAlias )->( cAlias )->pagado = [N] MEMORY // TEMPORARY
GO TOP
IF EOF()
? [ERROR, VACIO! ALGO ERRADO."
ENDIF
BROWSE()
Close the Filter:
https://vivaclipper.wordpress.com/2014/01/18/orddestroy/Regards, saludos.
Re: Cambiar set filter
Posted:
Sat Apr 23, 2022 3:16 pm
by José Camilo
karinha wrote:José Camilo wrote:Karinha. gracias por contestarme. hoy x hoy tu solucion me supera. no la entiendo mucho. perdon.
- Code: Select all Expand view
// set filter to pagos->consorcio = nncons .and. dtos(pagos->fechliq)<=dtos(dfliq) .and. ! Pagos->pagado
LOCAL cAlias
SELECT( PAGOS )
GO TOP
cAlias := ALIAS()
// Mira que TAG es la ultima de PAGOS.CDX + 1 aqui:
INDEX ON CONSORCIO TAG 03 TO CONSTEMP FOR ( .NOT. EOF() ) .AND. ;
( cAlias )->consorcio = nnCons .AND. ;
( cAlias )->dtos( ( cAlias )->fechliq <= dtos( dfliq ) ) .AND. ;
( cAlias )->( cAlias )->pagado = [N] MEMORY // TEMPORARY
GO TOP
IF EOF()
? [ERROR, VACIO! ALGO ERRADO."
ENDIF
BROWSE()
Close the Filter:
https://vivaclipper.wordpress.com/2014/01/18/orddestroy/Regards, saludos.
Karinha, no uso cdx, uso ntx. funciona igual? o que cambia ? gracias
Re: Cambiar set filter
Posted:
Sat Apr 23, 2022 4:11 pm
by karinha
Creo que nada. Intente para ver el que ocorri. Saludos.