Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18

Discussione: Colonne ListBox

  1. #11
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    118
    Be si che funziona cio passato una nottata...........ah ah ah
    certo avrei dovuto commentare il codice come si dovrebbe sempre....

    Le due istruzioni servono:
    dunque la listview ha l'item che corrisponderebbe al primo campo che viene visualizzato e degli subitem ...gli altri (eventuali)
    prima di tutto quindi leggo il db e inserisco nel primo campo della listview il valore che mi trovo nel db nella posizione (0) che sarebbe
    fisicamente la prima..

    (molte volte si tratta di un id contatore o
    comunque un identificativo univoco (primarikey) ma non è
    comunque obbligatorio)

    dopo di che nel ciclo che hai visto for next che ciclera tante volte quanti sono i campi rimanenti che devo inserire (to fields.count)
    -1 perchè la numerazione comincia da 0.
    in questo ciclo leggo tutti i campi del db e li inserisco nei campi della lista.Quindi non una riga ma campi del record(riga...)
    vAppo e una variabile di 'appoggio' .

    Be non so se sono stato chiaro nel caso ci posso riprovare.
    Ti riscrivo il codice della routine COMMENTATO !!!!!!

    Public Sub CaricaListView(Db As ADODB.Connection, _
    Sql As String, _
    Lista As ListView)
    'PARAMETRI DA PASSARGLI

    Dim Rst As New ADODB.Recordset
    Dim I As Integer
    Dim vAppo As Variant 'VARIABILE DI APPOGGIO (E' VARIANT PERCHE' ...E' COSì E BASTA...


    Dim myListItem As ListItem 'OGGETTO DI APPOGGIO

    Rst.Open Sql, Db
    Do While Not Rst.EOF 'APRO E COMINCIO IL CICLO NEL RECORDSET ESTRATTO CON LA QUERY

    vAppo = Rst.Fields(0).Value 'VALORE DEL CAMPO DEL DB 0 (PRIMA COLONNA)

    If IsNull(vAppo) Then vAppo = vbNullString
    --------Set myListItem = Lista.ListItems.Add(, , vAppo)
    'Realizzata da adam.

    'POI ENTRO NEL CICLO DA 1 A NUMERO COLONNE -1
    'COSì LEGGO I VALORI DELLE RIMANENTI COLONNE
    (SIAMO ANCORA SUL PRIMO RECORD)

    ---For I = 1 To Rst.Fields.Count - 1
    ------vAppo = Rst.Fields(I).Value
    -------------------------------------------------------------------------------------------------------------------------------------------- 'CI SONO VARI CONTROLLI SUL FORMATO DATA ,VALORI NULL,ECC...(ALQUNI SONO INDISPENSABILI)
    If IsNull(vAppo) Then vAppo = vbNullString
    ----If Rst.Fields(I).Type = adDate Then
    --------If vAppo <> vbNullString Then
    ------------If Fix(vAppo) = 0 Then
    ---------------myListItem.SubItems(I) = Format(vAppo, "hh:mm")
    ------------Else
    ---------------myListItem.SubItems(I) = Format(vAppo, "dd/mm/yyyy")
    ------------End If
    --------End If
    -----Else
    -------------------------------------------------------------------
    ------------------------------------------------------------------
    'QUINDI SE SEI SICURISSSSSSSSSIMO CHE NON CI SIANO VALORI NULL DATE STRANE E ALTRO L'ISTRUZIONE CHE BASTEREBBE E' LA SEGUENTE
    (QUINDI GIUSTO PER UNA PIU' FACILE COMPRENSIONE POTRESTI ELIMINARE
    TUTTO IL CODICE TRA' LE LINEE TRATTEGGIATE.
    FALLO SOLO MENTALMENTE PERCHE' E' IMPOSSIBILE CONTROLLARE TUTTI I TIPI DI DATI E POTRESTI AVERE PROBLEMI.


    --------myListItem.SubItems(I) = vAppo
    -----End If
    Next I
    Rst.MoveNext
    Loop
    Rst.Close
    Set myListItem = Nothing
    End Sub

    bE FAMMI SAPERE.
    ciao.

  2. #12
    Utente di HTML.it L'avatar di damar3
    Registrato dal
    Feb 2002
    Messaggi
    216
    Quasi tutto chiaro...

    un'ultima cosa, cosa cambia tra i questi due comandi?

    myListItem.SubItems(I) = vAppo
    Set myListItem =Lista.ListItems.Add(, , vAppo)

    Perchè prima usi uno e poi usi l'altro?

  3. #13
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    118
    1)set myListItem =Lista.ListItems.Add(, , vAppo)

    questo serve a creare un istanza dato che si parla di un oggetto come ben sai oltra che dichiarato deve essere istanziato.
    E' un istanza della classe listitem

    quindi istanzio l'oggetto e valorizzo il suo item con ........1).


    dato che ormai è istanziato per valorizzare i subitem è sufficiente fare come in 2)
    2) myListItem.SubItems(I) = vAppo
    I è un indice che varia a seconda dei campi (colonne) che devi inserire dal db.

    ti consiglo di riscrivere il codice da capo e vedrai che al momento di scrivere la riga 1) quando digiti lista. ti da i suggerimenti
    che ti faranno caoire un pò di più il tutto.

    Considera l'oggetto listitem come se fosse una listview invisibile
    di cui hai bisogno per poter passare i valori alla listview vera e propria.

    Perchè uso prima e poi l'altro ora dovrebbe essere più chiaro.
    Be...fammi sapere se sono stato abbastanza esplicativo.
    Per ogni altra spiegazione 'sai dove trovarmi'.

    ciao.

  4. #14
    Utente di HTML.it L'avatar di damar3
    Registrato dal
    Feb 2002
    Messaggi
    216
    Gurda sei stato veramente molto gentile! Ho provato a scrivere il codice io e ora è tutto molto chiaro! Ancora grazie per l'aiuto! Sempre sulle ListView ho visto la sintassi per cancellare una riga e dovrebbe essere questa

    nomelista.ListItems.Remove (nomelista.SelectedItem)

    ma non va... Anche qui sono fuori strada???

  5. #15
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    118
    be...... al momento non ricordo con precisione e non vb con me.
    anzi mi sembra che nel caso avessi bisogno di eliminare un elemento dalla una lista senza intereagire con il db usassi una flexgrid....

    Tipo.... eleco di ordini di un negozio dove posso decidere all'ultimo momento di non aquistare un prodotto e non devo necessariamente inserire ogni volta ma solo alla conferma dell'ordine.
    confuso ma chiaro ...spero
    ......
    altrimenti... è molto meglio dato che comunque se rimuovi un item lo devi in teoria rimuovere dal db ti conviene rimuovere il record.... dal dbe....e ricaricare la listview nuovamente (naturalmente prima svuotala completamente .....il metodo dovrebbe essere listview.clear).

    cominque ti faccio sapere al più presto al riguardo.
    ciao.

  6. #16
    Utente di HTML.it L'avatar di damar3
    Registrato dal
    Feb 2002
    Messaggi
    216
    Ciao, io su queste listView sto perdendo un pò la testa senza raggiungere grandi risultati senza il tuo aiuto. A parte l'operazione che ti ho scritto dovrei fare anche altre operazioni come sommare i valori di una colonna, prendere i dati dalle caselle e cose simile. Partendo dal presupposto che non posso stare qui sul forum a romperti le p***e mi diresti dove poter trovare delle istruzioni semplici da capire (meglio se con esempi) sul loro utilizzo???

    Te ne sarei veramente grato!

  7. #17
    Utente di HTML.it L'avatar di damar3
    Registrato dal
    Feb 2002
    Messaggi
    216
    Per la cancellazione per ora ho risolto così:

    If nomelista.ListItems.Count <> "0" Then
    nomelista.ListItems.Remove (nomelista.ListItems.Count)
    Else
    MsgBox "Non hai niente da rimuovere"
    End If

  8. #18
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    118
    be ...sinceramente non ho idea dove puoi trovare tutto e di più sull'argomento perchè non ho mai cercato.....
    quello che sò lo ho scoperto provando...provando...provando...provando...e provando.(citazione cinematografica).
    Per quanto riguarda la rottura di p@##ç non ti preoccupare....
    quando avrai raggiunto il limite lo scoprirai.........
    Si fa per scherzare,il forum serve per questo.......però bisogna anche provarci un bel pò altrimenti non se impara niente.
    Fammi sapere come va e nel caso invia una richiesta specifica su un problema che non riesci a risolvere ripetuto per dieci.
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.