Deel van een tabel onzichtbaar maken via MARKs

LocutusLocutus Member Posts: 10
edited 2008-02-29 in NAV Dutch speaking only
Best

Ik probeer een "windows verkenner" look-a-like systeem te schrijven op een tabel. Zodat men via een boolean een deel van de boom kan sluiten en openen. Ik probeer dit via de MARK-functie te doen.
Dit werkt als ik gans te tabel doorloop en enkel de juiste records(via id) mark(false) zet. Maar voor wat sneller te werken probeer ik het volgende:
SETFILTER(id,FORMAT(PInt_id+1) + '...' + FORMAT((PInt_id+99)));
CLEARMARKS;
RESET;
MARKEDONLY(TRUE);
Maar nu verdwijnen alle marks op gans de tabel. Iemand een idee hoe dit komt. Wat de oplossing is.
De tabel ziet er zo wat uit:
screenshot

Misschien heeft iemand een andere manier van werken om een dergelijke boomstructuur te simuleren.
-| Life would be much easier if I had the source code. |-

Comments

  • ErictPErictP Member Posts: 164
    Kijk eens in versie 5 naar form 634 (Chart of Accounts Overview).
    Hierin wordt de functie ToggleExpandCollapse gebruikt voor het in en uitklappen.

    Mischien kun je deze functie hergebruiken.

    Ik heb ditzelfde principe ooit eens gebruikt voor productiestuklijsten.

    Eric
  • LocutusLocutus Member Posts: 10
    ErictP wrote:
    Kijk eens in versie 5 naar form 634 (Chart of Accounts Overview).
    Hierin wordt de functie ToggleExpandCollapse gebruikt voor het in en uitklappen.

    Mischien kun je deze functie hergebruiken.

    Ik heb ditzelfde principe ooit eens gebruikt voor productiestuklijsten.

    Eric
    We gebruiken hier versie 4.0 SP1, is er een manier om aan die form van versie 5 te geraken ?
    -| Life would be much easier if I had the source code. |-
  • ErictPErictP Member Posts: 164
    Hetzelfde zit ook in versie 4 er wordt alleen een ander plaatje gebruikt.

    In Cronus form 583 wordt deze methode ook gebruikt en hier is het gebruik van verschillende niveau's ook te zien.
  • LocutusLocutus Member Posts: 10
    Ik zie dat ze gebruik maken van INSERT en DELETE om record zichtbaar of onzichtbaar te maken. Zo had ik het eerst ook geschreven. Hier zat wel een delay op. De IT-Manager zei me dat het via die MARKs veel sneller zou gaan.

    Nu gaat het idd al wel wat sneller, als k gans de tabel doorloop en de marks dan aanpas.
    Maar om nog sneller te werken dacht ik dus eerst te filteren op de records waarvan de mark op false moet komen. Maar blijkbaar worden alle marks op false gezet.

    Iemand een idee hiervoor ?
    -| Life would be much easier if I had the source code. |-
  • LocutusLocutus Member Posts: 10
    Al 1 ding, Ik mag geen RESET doen om de filter af te zetten, maar wel SETFILTER(id,'');

    Maar toch gaan alle marks nog weg.
    -| Life would be much easier if I had the source code. |-
  • LocutusLocutus Member Posts: 10
    Ok en ik mag ook niet CLEARMARKS doen want dan doet hij dit toch voor gans de tabel. ALs gevolg krijgen we deze code die wel werkt :D:D
    SETFILTER(id,FORMAT(PInt_id+1) + '...' + FORMAT((PInt_id+99)));
    IF FIND('-') THEN REPEAT
      MARK(FALSE);
    UNTIL NEXT = 0;
    SETFILTER(id,''); 
    MARKEDONLY(TRUE);
    

    Mercikes voor de reacties :)
    -| Life would be much easier if I had the source code. |-
Sign In or Register to comment.