Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di angelicab
    Registrato dal
    Sep 2001
    Messaggi
    1,515

    VB6 - flex grid - ordinamento

    ciao!
    sto usando una flex grid.. è possibile controllare l'ordinamento delle colonne?
    mi spiego meglio:
    Ho la colonna COGNOMI e i dati sono

    Tizio
    Caio
    Sempronio

    .. cliccando sulla prima cella (quella con la scritta "COGNOME") come faccio ad mettere in ordine alfabetico i cognomi??
    ........\ | /......
    ......(@ @)).....
    -oOO-(_)-OOo-
    ......Angie.....

  2. #2

    Re: VB6 - flex grid - ordinamento

    Originariamente inviato da angelicab
    ciao!
    sto usando una flex grid.. è possibile controllare l'ordinamento delle colonne?
    mi spiego meglio:
    Ho la colonna COGNOMI e i dati sono

    Tizio
    Caio
    Sempronio

    .. cliccando sulla prima cella (quella con la scritta "COGNOME") come faccio ad mettere in ordine alfabetico i cognomi??
    Ciao,
    ordinare un flex grid e' un'impresa che ti obbliga a creare un algoritmo che faccia un ordinamento a livello di riga ... sarebbe tutto piu' semplice se tu usassi un database ed automaticamente dovresti usare un DBgrid, con una semplice query, inserendo la clausola ORDER BY ed il gioco e' fatto.

    Poi scusa ... dato che usi una flex grid, e presumo leggi dei dati da caricare o da scrivere ... a questo punto non ti converrebbe usare un piccolo DB Access, che e' anche nativo di VB6

    Ciao e buon 2004 :adhone:
    Filippo

  3. #3
    Utente di HTML.it L'avatar di angelicab
    Registrato dal
    Sep 2001
    Messaggi
    1,515
    io uso già un db access.. però metti caso che nella mia griglia oltre ai cognomi ci siano anche i nomi, e che io volessi ordinare una volta x nome e una volta x cognome.. come faccio??
    ........\ | /......
    ......(@ @)).....
    -oOO-(_)-OOo-
    ......Angie.....

  4. #4
    Originariamente inviato da angelicab
    io uso già un db access.. però metti caso che nella mia griglia oltre ai cognomi ci siano anche i nomi, e che io volessi ordinare una volta x nome e una volta x cognome.. come faccio??
    A RI CIAO

    Innanzitutto, il DBgrid non dovra' essere caricato direttamente dal DB, ma devi associare un Recordset.
    Detto questo devi fare in modo che il recordset sia creato con i dati della query esemp.

    se voglio un ordinamento per nome
    sql="SELECT * FROM mia_tabella ORDER BY campo_nome"

    Per i particolari ... e meglio che consulti il manuale di VB

    Ciao
    Filippo

  5. #5
    Originariamente inviato da angelicab
    io uso già un db access.. però metti caso che nella mia griglia oltre ai cognomi ci siano anche i nomi, e che io volessi ordinare una volta x nome e una volta x cognome.. come faccio??
    A RI CIAO

    Innanzitutto, il DBgrid non dovra' essere caricato direttamente dal DB, ma devi associare un Recordset.
    Detto questo devi fare in modo che il recordset sia creato con i dati della query esemp.

    se voglio un ordinamento per nome
    sql="SELECT * FROM mia_tabella ORDER BY campo_nome"

    Per i particolari ... e meglio che consulti il manuale di VB

    Ciao
    Filippo

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    245
    il vantaggio di usare il controllo datagrid è che hai la possibilità di aggirnare direttamente i dati, ma non supporta la gerarchia al contrario del controllo Hierarchical FlexGrid.
    Comunque se tu non volessi che l'utente possa modificare i dati all'interno del datagrid ti basta modificare le proprietà del controllo.
    x quanto riguarda ordirare i record a seconda di cosa l'utente scelglie quarda se ti può servire questo appunto preso in giro dalla rete.
    ricordati che datagrid e Hierarchical FlexGrid vogliono ADO come connessione.
    ciao

    codice:
    Ordinamento dei dati
    Il controllo DataGrid non offre una funzionalità di default per ordinare i dati, ma grazie all’evento
    HeadClick e alla proprietà Sort di ADO Recordset, l’ordinamento dei dati è un’operazione semplice che
    richiede poche istruzioni.
    Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
    ' Ordina i dati in base alla colonna su cui è stato fatto clic.
    Dim rs As ADODB.Recordset
    Set rs = Adodc1.Recordset
    If rs.Sort <> DataGrid1.Columns(ColIndex).DataField & " ASC" Then
    ' Ordina in sequenza crescente; questo blocco viene eseguito
    ' se i dati non sono ordinati, sono ordinati in base a un altro
    ' campo o sono ordinati in sequenza decrescente.
    rs.Sort = DataGrid1.Columns(ColIndex).DataField & " ASC"
    Else
    ' Ordina in sequenza crescente.
    rs.Sort = DataGrid1.Columns(ColIndex).DataField & " DESC"
    End If
    ' Non occorre aggiornare il contenuto del DataGrid.
    End Sub
    L’unico limite di questo approccio è che non funziona bene se la colonna contiene valori di
    lookup.

  7. #7
    Scusa ...

    hai mai provato la flessibilita' di SQL

    Dim db as database
    dim rs as Recordset

    set db = OpenDatabase(mio_db)
    set rs = OpenRecordset("SELECT mia_tabella FROM * ORDER BY campo_nome",dbOpenDynaset)

    in questo modo il mio recordset e' gia' bello che ordinato ...

    voglio un 'altro ordinamento ???

    'libero risorse ...
    set rs = nothing

    set rs=OpenRecordset("SELECT mia_tabella FROM * ORDER BY campo_cognome",dbOpenDynaset)

    Logicamente ognuno e' libero di pensarla come meglio crede

    Ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    245
    Logicamente ognuno e' libero di pensarla come meglio crede
    ... ma secondo me tu stai consigliando una connessione DAO( e quindi obsoleta)... che microsoft non da nessun aggiornamento in merito!!!
    in oltre con la sort del datagrid non sei vincolato a scrivere righe di codice in più !!!
    la fessibilità di sql è ovviamente vantaggiosa e se si usa una sort x il datagrid non vuole dire che non viene sfruttata !!!
    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.