Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    103

    [VB6] ListBox a selezione multipla

    Di nuovo ciao a tutti!! Ormai tutti i giorni sono qui a stressarvi!!!

    Nel mio programmino ho una ListBox a seleziona multipla popolata con i record della tabella CERTIFICATI (più precisamente, con nomi dei certificati (varchar(5)). L'utente deve selezionare da una ComboBox un codice lotto e dalla ListBox uno o più nomi di certificato. Il programma permette di stampare etichette con un QRCODE e, a fianco, il contenuto del codice. Se l'utente seleziona un solo certificao, nessun problema; ma se ne seleziona più di uno, la stampa fa un po' schifo.
    Ecco un'immagine:

    Scansiona 21-ott-2013 14_24-page2.jpg

    Come faccio ad ottenere un risultato tipo questo:
    Certificati: CU, DCMC
    cioè i certificati separati da uno spazio solo e da una virgola?

    Ecco il mio codice:
    codice:
    Private Sub cmdStampa_Click()
    
    If cboLotto.ListIndex = -1 Then
    MsgBox "Nessun codice lotto selezionato!"
    End If
    
    If lstCertificati.ListIndex = -1 Then
    MsgBox "Nessun certificato selezionato!"
    End If
    
    
    If cboLotto.ListIndex <> -1 And lstCertificati.ListIndex <> -1 Then
    
            Dim strBuff As String
            Dim PercorsoFile As String
            
            PercorsoFile = "C:\Users\Elena\Desktop\Output.prn"
            'Leggo tutto il file in modalità binaria e salvo il contenuto in una variabile stringa strBuff
            Open PercorsoFile For Binary As #1
                strBuff = Space(LOF(1))
                Get #1, , strBuff
            Close #1
                
            
            Dim i As Integer
            Dim stringa As String
            
            For i = 0 To lstCertificati.ListCount - 1
                If lstCertificati.Selected(i) Then
                stringa = stringa + lstCertificati.List(i)
                End If
            Next
            
            
            'eseguo il replace delle parole che voglio modificare
            strBuff = Replace(strBuff, "TIPO, LOTTO, CERTIFICATO", "QRCERT, " & cboLotto.Text & ", " & stringa & "")
            strBuff = Replace(strBuff, "Testo tipo", "Tipo: QRCERT")
            strBuff = Replace(strBuff, "Testo lotto", "Lotto: " & cboLotto.Text & "")
            'MsgBox stringa
            strBuff = Replace(strBuff, "Testo certificati", "Certificati: " & stringa & "")
            
                    
            Open "C:\Users\Elena\Desktop\Output1.prn" For Binary As #1
                Put #1, , strBuff
            Close #1
            
    
    Call InviaTcp(strBuff)
    
    Else
    Exit Sub
    End If
    
    
    End Sub

    codice:
    Private Function InviaTcp(strInvia As String)
    cmdStampa.Enabled = False
    w.Connect
    
    Do While w.State <> sckConnected
     DoEvents
    Loop
    
    w.SendData strInvia
    
    End Function

    Grazie mille di nuovo a chi mi vorrà aiutare!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Direi che dovrebbe bastare una

    stringa = stringa & ", " & Trim(lstCertificati.List(i))


    P.S. La

    Else
    Exit Sub

    non ha senso ... puoi eliminare le due righe

    P.P.S. Unire una stringa vuota "" alla fine di una stringa non ha senso ... nella

    & stringa & ""

    basta

    & stringa
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    103
    Grazie mille!! Provo subito!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E dopo la Next devi scrivere anche

    stringa = Mid(stringa,3)

    per eliminare la parte iniziale
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    103
    Ecco il risultato:

    Scansiona 21-ott-2013 14_24-page3.jpg

    Perchè c'è la virgola iniziale?
    Grazie ancora!

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Vedi ultimissima risposta
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    103
    Sì scusa!! Non l'avevo vista! Grazie mille!!

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Prego ... ma ti assicuro che saresti arrivata anche da sola con un minimo di impegno, dato che era una banalità ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    103
    Tutto perfetto!!
    Mi spiegheresti il significato di queste due istruzioni?
    Cosi capisco....

    codice:
    stringa = Mid(stringa,3)
    e

    codice:
    stringa = stringa & ", " & Trim(lstCertificati.List(i))

    Cos'è "Trim"?
    Grazie!

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Scusa Elena ma non posso fare a meno di farti la domanda ... tu come programmi in VB6 se non conosci queste funzioni "elementari"?

    Non è una critica ma non capisco ... il significato di quelle funzioni è in qualsiasi capitolo iniziale di un qualsiasi libro di VB6 ...

    In ogni caso, per la Mid

    http://msdn.microsoft.com/en-us/libr...(v=vs.60).aspx

    e per la Trim

    http://msdn.microsoft.com/en-us/libr...(v=vs.60).aspx
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.