Newsgroup: it.comp.lang.delphi
Titolo: DBGrid - Come creare il titolo ordinatore.

Salve a tutti volevo sapere come è possibile creare l'evento che cliccando
sul titolo di una DBGrid ordina i records in in base al titolo.
Vi ringrazio anticipatamente.
JOJOBA
--------------------------------
Inviato via 
http://usenet.libero.it

Guarda ne abbiamo parlato poco piů giů nel thread "Ordinare i record di una
dbgrid", troverai delle risposte in merito.
Ciao,
  Fabio

si ma con quela dbgrid che costa na cifra.
Io volevo sa pere da codice.


Se usi un db client/server via query sql, dovresti avere + statement sql da
eseguire, ognuno associato ad una particolare colonna.
Bye
A.

Se vuoi farti qualcosa di casalingo allora lascia perdere la DBGrid che č
solo un visualizzatore di un dataset e caricati a mano una semplice
ListView. Il sorting te lo fai sull'evento OnColumnClick.
Altrimenti se riesci a trovare in rete qualcosa di free, ma generalmente
componenti fatti bene sia su database che su griglie non č mai niente
gratis.
Saluti,
  Fabio

Ma il componete l'hai comprato?


Ho parlato di ListView che è nel Delphi, perchè parte integrante del Windows
per altro.
Fino a poco tempo fa la utilizzavo per i progetti più semplici, un output
sicuramente più gradevole e personalizzabile di una DBGrid. Da un pò invece
in azienda stiamo usando la dxTreeList della Developer Express. Se si lavora
molto con la messa a video di viste di dati è quasi scontato servirsi di
strumenti che risolvono certi tipi di problemi, tipo l'ordinamento al volo,
senza quindi farti perdere troppo tempo.
Dipende però da cosa devi fare, da quante volte lo devi fare e
dall'importanza dell'applicazione.
Se infatti devi creare un paio di form con viste di dati puoi utilizzare la
ListView, anche se un pò lenta, te la ottimizzi con un refresh dei dati che
io chiamo parziale e ti fai gli ordinamenti sfruttando direttamente la prima
colonna della ListView che è già ordinabile sia per caption che per
proprietà data.
L'importante è quantificare il lavoro, a volte spendere qualcosina è più
produttivo, altre meglio arrangiarsi, basta alla fine un pò di "fantasia" e
si risolve tutto!
Ciao,
  Fabio

Lo so ma il mio programma è un po specifico e devi avere per forza maggiore
tutti i records a video ed ordinarli come l'utente li desidera in qualsiasi
momento ed all'istante.


Vabbè tanto specifica come richiesta non è, si usa molte volte questo metodo
perchè è utile ed anche semplice specialmente per l'analisi dei dati da
parte degli utenti finali.
Se non hai intenzione di voler acquistare niente, ti spiego un trucchetto
per risolverti subito il problema proprio con la ListView.
Metti una ListView a video e, tranne la prima, creati le colonne come da
vista dati partendo dalla seconda. La prima colonna la puoi sfruttare per
mettere un'immagine, un check, oppure la stringi al minimo per renderla
invisibile ed inutilizzabile.
Caricati la ListView a mano dopo averti aperto la query utilizzando i
subitem[] delle righe che sono di tipo TListItem. Una volta caricato
sull'evento onColumnClick fai un For che ti ricopia nella caption di ogni
riga il contenuto del subitem appartenente alla colonna selezionata. A
questo punto devi solo stabilire l'ordinamento alla ListView con il
SortType=stText. E questo è l'ordinamento fatto in casa, niente di complesso
quindi.
Per quanto rigurda invece la velocità, l'unica cosa lenta della ListView è
il clear totale dei dati, il resto è velocissimo. Quindi un consiglio che ti
posso dare è di non usare mai il clear, ma di riscrivere le righe nuove
direttamente sopra quelle esistenti e cancellare o aggiungere le righe solo
alla fine.
Spero abbia recepito tutto, saluti
  Fabio

Mi puoi inviare un esempio zippato di tutto quello che hai detto al mio
indirizzo?
Ti ringrazio.
Jojoba


 indirizzo?
Sě vabbč, mettici anche un pň di tuo perň. Comincia a fare qualcosa se poi
non riesci in alcuni punti puoi ripostare qui...
Ciao

 ...
Cappero, non ci avevo mai pensato... ottimo consiglio, grazie!!!
--
Jax