Page 1 of 1

Cambiar set filter

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: Sat Apr 23, 2022 4:11 pm
by karinha
Creo que nada. Intente para ver el que ocorri. Saludos.