Listview e txt

giovedì 08 marzo 2007 - 19.47

almax Profilo | Junior Member

Salve vorrei sapere una cosa ; dovrei tramite una query di ricerca impaginare dei risultati e poi stamparli.
Al momento sto provando con un file di testo e non mi riesce di incolonnare i dati.
Ho delle righe con delle cifre che al cambiare del numero di caratteri perde la colonna; Cerco soluzioni anche diverse dal faile di testo ma, le righe non sono tutte uguali ho una parte superiore e al seguito righe che dovrei incolonnare; i numeri sono delle valute e tutte hanno dopo la virgola due cifre .. Grazie

Brainkiller Profilo | Guru

>Salve vorrei sapere una cosa ; dovrei tramite una query di ricerca
>impaginare dei risultati e poi stamparli.
>Al momento sto provando con un file di testo e non mi riesce
>di incolonnare i dati.

Usa come Font di Stampa il Courier o Courier New. Questi due font sono proporzionali quindi ogni carattere ha la stessa larghezza di un altro diversamente da ciò che succede con altri Font come Arial e simili.

Per fare le colonne usa caratteri di tabulazione (\t in C#)
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

almax Profilo | Junior Member

Utilizzo il visual basic.net e non risco proprio ad incolonnare le cifre.. Potrei usare il drawstring.. ma su un txt come posso fare?

Brainkiller Profilo | Guru

>Utilizzo il visual basic.net e non risco proprio ad incolonnare
>le cifre.. Potrei usare il drawstring.. ma su un txt come posso
>fare?

Non necessariamente puoi anche semplicemente creare prima un file di testo con i tab \t tramite la classe TextWriter:
http://www.dotnethell.it/articles/TextReaderTextWriter.aspx
Spero che tu sappia come funzionano le tabulazioni no ?

E poi invii il file alla stampante in questo modo:

Try streamToPrint = New StreamReader("C:\My Documents\MyFile.txt") Try printFont = New Font("Arial", 10) Dim pd As New PrintDocument() AddHandler pd.PrintPage, AddressOf Me.pd_PrintPage pd.Print() Finally streamToPrint.Close() End Try Catch ex As Exception MessageBox.Show(ex.Message) End Try
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

almax Profilo | Junior Member

purtroppo non cosnosco come poter incolonnare in maniera esatta le cifre sia se otto caratteri che alcuni da due o da quattro, mi servirebbe un allineamento dai decimali.. Grazie per l'esempio della stampa..
Se mi potessi fare un esempio te ne sarei grato ..

Brainkiller Profilo | Guru

>purtroppo non cosnosco come poter incolonnare in maniera esatta
>le cifre sia se otto caratteri che alcuni da due o da quattro,
>mi servirebbe un allineamento dai decimali.. Grazie per l'esempio
>della stampa..
>Se mi potessi fare un esempio te ne sarei grato ..

Beh lì te li devi calcolare manualmente gli spazi
Ossia hai una riga da 80 caratteri e vuoi fare 4 colonne da 20, devi andarti a calcolare ogni volta quanti spazi mettere esempio:

Nome1XXXXX140,49 Nome2XXXX1454,58

Dove X sono gli spazi da calcolare, te lo devi fare tu.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

almax Profilo | Junior Member

E' proprio quello che nn riesco a fare ... Ho provato ad utilizzare padleft ma nulla ..

1232123

000 000 000 000 000
000 000 000 000 000
000 000 000 000 000

05 15.00 162.00 56.00 65.00
06 125.00 12.00 5263.00 56.00

questo esempio ti dovrebbe far capire .. Io non so quali cifre ci sono nei record ma so che il massimo è di 8 interi e 2 decimali ..

L'esempio che vedi è quello che mi è accaduto .. Che mi consigli di fare?
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5