FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Cambiar set filter
Posts: 212
Joined: Wed Apr 07, 2021 03:56 PM
Cambiar set filter
Posted: Sat Apr 23, 2022 03:57 AM

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

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Cambiar set filter
Posted: Sat Apr 23, 2022 11:50 AM
Code (fw): Select all Collapse
set filter to payments->consortium = nncons .and. discounts(payments->liqdate)<=discounts(dfliq) .and. ! Payments->paid
oBrw:GoTop()
oBrw:Refresh()
Regards



G. N. Rao.

Hyderabad, India
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Cambiar set filter
Posted: Sat Apr 23, 2022 12:12 PM
Use INDEX ON... MEMORY // TEMPORARY Super rápido y seguro.

Code (fw): Select all Collapse
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.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Cambiar set filter
Posted: Sat Apr 23, 2022 12:28 PM
Code (fw): Select all Collapse
#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.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 212
Joined: Wed Apr 07, 2021 03:56 PM
Re: Cambiar set filter
Posted: Sat Apr 23, 2022 02:33 PM

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

Posts: 212
Joined: Wed Apr 07, 2021 03:56 PM
Re: Cambiar set filter
Posted: Sat Apr 23, 2022 02:36 PM

Karinha. gracias por contestarme. hoy x hoy tu solucion me supera. no la entiendo mucho. perdon.

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Cambiar set filter
Posted: Sat Apr 23, 2022 03:03 PM
José Camilo wrote:Karinha. gracias por contestarme. hoy x hoy tu solucion me supera. no la entiendo mucho. perdon.


Code (fw): Select all Collapse
   // 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.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 212
Joined: Wed Apr 07, 2021 03:56 PM
Re: Cambiar set filter
Posted: Sat Apr 23, 2022 03:16 PM
karinha wrote:
José Camilo wrote:Karinha. gracias por contestarme. hoy x hoy tu solucion me supera. no la entiendo mucho. perdon.


Code (fw): Select all Collapse
   // 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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Cambiar set filter
Posted: Sat Apr 23, 2022 04:11 PM

Creo que nada. Intente para ver el que ocorri. Saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341

Continue the discussion