Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291

    VB6 Printer e ListWiew.

    Ho dei problemi con il ritorno a capo di questa stringa di codice:

    Printer.Print Space(24) & "Prova di Stampa : " & FrmLista.LvSearch.ListItems(i).ListSubItems(4).Tex t

    Il .ListSubItems(4).Text contiene più frasi ed al termine di ciascuna frase va a capo, però nel fare questo non rispetta il margine sinistro che risulta a 0, mentre come vedete il margine iniziale è a Space(24).
    Visivamente si verifica una cosa del genere:

    ...... MMMMMMMMM - Space(24) -
    MMMMMMMMMMMM
    MMMMMMMMMMMM

    E' possibile porvi rimedio?
    LM

  2. #2
    L'errore che riscontri non dipende dal codice che hai scritto, quello funziona in quanto nella prima riga inserisce gli spazi

    codice:
    Printer.Print Space(24) & "Prova di Stampa
    ma poi chi gli dice di inserire gli altri spazi nel subitem?

    Mi spiego: devi modificare il contenuto del subitems(4), che contiene diverse frasi; io non so il tipo di immissione dei dati, cmq ammesso che tu inserisca una riga del subitem alla volta dovresti fare:

    codice:
    stringa = stringa & valoredaaggiungere & space(24)
    Non so se mi sono spiegato, cmq lo space all'inizio della riga di codice vale SOLO per la prima riga..

    se non sono stato chiaro riposta..

    ciao

  3. #3
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao MdE2005,
    il .ListSubItems(4).Text viene caricato da un campo Memo del DB, quindi direttamento non lo posso modificare (almeno credo).
    Pensavo ad una operazione intermedia, tipo estrarre la stringa composita, spezzarla in più frasi e poi passarla a printer (se non c'è altro modo di fare). Ho notato che nel campo della VL ciascuna frase è separata da un simbolo, penso questo |. A tuo avviso si può operare come detto, o esiste un altro modo?
    LM

  4. #4
    Certamente..quindi un operazione con Split che memorizza le varie righe in un array e poi fai un ciclo for/next per aggiungere le righe del tipo:

    codice:
    Dim Righe()
    Dim TextToPrint As String
    
    'qui metti l'istruzione Split....
        
        For i = 1 To UBound(Righe)
            TextToPrint = TextToPrint & Righe(i) & Space(24)
         Next i
    non so se può rispondere alle tue esigenze..

    ciao

  5. #5
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Grazie MdE2005,
    credo che seguirò questa strada.
    LM

  6. #6
    Ok..magari fammi sapere come va, in modo tale poi da postare il codice finale che potrà essere utile in futuro (come del resto hai giustamente fatto..)

    ciao

  7. #7
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Posto il codice, funzionante, per suddividere una stringa in segmenti e mandare in stampa ciascun segmento:
    codice:
    ' Svuota la variabile Pubblica:
        TextToPrinter = ""
    
    ' Dichiara un'Array di tipo String:
        Dim array_rigaCA() As String
        Dim p As Integer
        
    ' TextToPrint = itmX.SubItems(4) (Variabile Pubblica della Composizione stringa)
    ' Scompone la stringa a segmenti, per ogni ritorno a capo ed avanzamento riga:
        array_rigaCA = Split(TextToPrint, vbCrLf, -1, vbTextCompare)
    
    ' Allega 24 spazi iniziali per ogni segmento di stringa
    '(TextToPrinter variabile Pubblica da mandare in stampa):
        For p = 0 To UBound(array_rigaCA)
            TextToPrinter = array_rigaCA(p)
            If p = 0 Then
                Printer.Print Space(24) & "Prova di stampa allineata : " & TextToPrinter & Chr(10)
            End If
            If p > 0 Then
                Printer.Print Space(24) & TextToPrinter & Chr(10)
            End If
        Next p
    LM

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 © 2024 vBulletin Solutions, Inc. All rights reserved.