Autore Topic: Controllo chiave di una treeview  (Letto 1126 volte)

Offline Mario

  • Grande Gambero
  • ***
  • Post: 138
    • Mostra profilo
    • http://overhill1963.blogspot.com/
Controllo chiave di una treeview
« il: 05 Giugno 2008, 16:04:07 »
Ciao a tutti,

come vedete dalla domanda comincio davvero a divertirmi :-)

Ho iniziato un progettino per capire meglio DB e altre cosette, e ho impostato a sinistra una tree-view che è organizzata più o meno in questo modo:

Codice: [Seleziona]
Anagrafiche
   Clienti
      Primo Cliente
      Secondo Cliente
   Progetti
      Primo Progetto
      Secondo Progetto


La parte di codice che controlla il doppio clic sulla tree-view, verifica la chiave (.key) nella quale ho messo le parole "Anagrafiche" e "Clienti" (o "Progetti"), mentre la chiave degli elemento al terzo livello sono i codici dei clienti e dei progetti.
Il mio problema è che quando leggo la chiave, non ho la possibilità (almeno, non l'ho trovata) per sapere in quale "ramo" dell'albero mi trovo. I codici di Clienti e Progetti possono tranquillamente essere identici, quindi non so se leggendo il codice "000001" sto leggendo un Cliente o un Progetto.

So benissimo che basterebbe caricare la tree-view mettendo nella key per ogni elemento qualcosa che permetta di riconoscerlo (tipo C000001 e P000001, da separare quando faccio i controlli), però mi sembra strano che non esista la possibilità di conoscere il "parente" o il "livello superiore".

Grazie a tutti per l'aiuto :-)
Saluti a tutti

Mario

Offline Mario

  • Grande Gambero
  • ***
  • Post: 138
    • Mostra profilo
    • http://overhill1963.blogspot.com/
Re: Controllo chiave di una treeview
« Risposta #1 il: 06 Giugno 2008, 12:41:09 »
Sto andando avanti con il progettino: ho finalmente capito come aggiornare i file :-)
Alla fine ho utilizzato il sistema di mettere nella chiave la "C" o la "P" e riconoscerlo con LEFT e RIGHT.
Per ora funziona... peccato però che non sia possibile leggere "il padre", sarebbe molto comodo ;-)
Saluti a tutti

Mario

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Controllo chiave di una treeview
« Risposta #2 il: 06 Giugno 2008, 15:08:34 »
In realtà, tranne il sapere qual'è l'oggetto parent (che poi, come hai visto non serve), con la TreeView non sai in quale livello sei.

L'unico modo, che poi è quello che hai notato, è proprio impostare la chiave in modo da metterci anche il livello. Anche se può apparire brutto, la cosa diventa molto potente se imposti la stringa key in modo che rappresenti sia l'elemento che tutta il resto della scaletta, fino ad arrivare al top. Se separi i vari elementi con un carattere preciso (es. il carattere "&"), splittandolo in un array puioi sapere a che livello sei, qual'è l'oggetto, qual'è il suo parente, ecc...
Idem con patate, quando crei la chiave, devi ricordarti di dirgli esattamente la chiave del parent.

Spero di essemi spiegato bene, ma dopotutto avevi già identificato il sistema per gestire la cosa.

Offline Mario

  • Grande Gambero
  • ***
  • Post: 138
    • Mostra profilo
    • http://overhill1963.blogspot.com/
Re: Controllo chiave di una treeview
« Risposta #3 il: 06 Giugno 2008, 15:18:48 »
Be' sai, programmando da vent'anni qualche trucchetto "super partes" lo conosco :-)

Comunque mi hai dato anche un'altra idea, quella dello split: ricordo male o c'è un codice operativo che fa una cosa del genere?
Adesso faccio un giretto...

Adesso ho fatto la parte "facile", quella della gestione degli archivi di Clienti e Progetti, ma è ancora un po' spartana.
Il prossimo passaggio è quello di inserire una combo box nella gestione dei progetti (ogni progetto deve avere un cliente, quindi...)
E poi ci sarà la gestione delle ore di intervento presso i progetti, e l' mi sa che dovrò di nuovo venire a rompervi le scatole :-)

Ciau e grazie
Saluti a tutti

Mario

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Controllo chiave di una treeview
« Risposta #4 il: 07 Giugno 2008, 02:37:21 »
Nessun problema, sul questo sito sono tutti disponibili... :-)

Per lo split in gambas esiste appunto la funzione... Split(var, char) :-)

Lo stesso per Join, che fà l'opposto !

Offline Mario

  • Grande Gambero
  • ***
  • Post: 138
    • Mostra profilo
    • http://overhill1963.blogspot.com/
Re: Controllo chiave di una treeview
« Risposta #5 il: 07 Giugno 2008, 13:04:26 »
eh eh, pensate che ho fatto una funzione simile in RPG ILE, solo che si limita a separare una stringa lunga in altre più piccole, controllando la posizione delle parole (nel senso che fa in modo che non vengano spezzate). Però si chiama proprio "SPLIT" :-)
Saluti a tutti

Mario