[VB 2005] Stampare etichette

lunedì 16 febbraio 2009 - 16.12

reru Profilo | Newbie

Salve a tutti,

avendo un form con 40 textbox come posso stampare in righe e colonne (8x5) delle etichette su un A4 ?
Ovviamente una x una è possibile
...
'PRIMA IN ALTO A SX
Dim Size1 As SizeF = ev.Graphics.MeasureString(TextBox1.Text, Font)
X = 35 - (Size1.Width / 2)
Y = 15
Dim Start1 As New Point(X, Y)
ev.Graphics.DrawString(TextBox1.Text, Font, Brushes.Blue, Start1)
....
ma è un codice, diciamo almeno schifoso.
Avete idea di come potrei fare, ad esempio con un ciclo ?

PS
Le txt sono da compilare a mano.

Grazie a tutti
RZ

Jeremy Profilo | Guru

Ciao reru.
Puoi spiegare meglio il tuo problema?
Usando un Report andrebbe bene?

Facci sapere...
Ciao

reru Profilo | Newbie

Ciao,
il problema dovrebbe essere molto semplice (...non per me ovviamente).
Tra tante altre "robe" mi hanno chiesto un semplicissimo programmino che stampi delle etichette prestampate (tonde) posizionate su un classico A4.
Queste etichette dovranno avere presumibilmente una sola scritta centrata sull'etichetta e forse, dico forse la possibilità di stampare anche un "fondino in formato bmp,jpg..".
Le scritte potrebbere essere inserite manualmente (etichetta x etichetta) o, lette da un file (per esempio un semplice txt).
Per ora ho solo un esempio di prestampato di etichette dove ho 5 colonne x 8 righe (40 bollini).
Visto che "non devo andare sulla luna" con questo prg. ho pensato ad un semplice form con 40 TextBox da "fillare" e poi "comodamante" stampare in riche e colonne.
Bene è proprio quì che casca "l'asino" (me); non riesco a stampare in righe e colonne.
Le txt sono create con una serie.
Ti allego la schifezza che ho "vomitato" nella speranza che tu mi possa dare una dritta sul quel maledetto loop.

PS.
Non fare troppo caso a quel delirante sistema di stampa, stavo per spaccare tutto!
Dimenticavo, solo VB senza parti est. od altro.
Grazie
RZ





Jeremy Profilo | Guru

Ciao reru.
Ho dato un occhio a ciò che hai inviato
Non ho capito una cosa......vuoi un codice più pulito per fare quello che già hai fatto??? O vuoi uno strumento migliore con cui fare quello che dovresti fare???

Facci sapere...
Ciao

alexmed Profilo | Guru

Ciao

Dimmi se ti piace così:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Naturalmente devi fare in modo che (iRow * iCol) = myLabels.GetUpperBound(0)

E poi ho sostituito MyControllo con myLabels

Ciao
alexmed

alexmed Profilo | Guru

Anzi ...
Preso da raptus ho pensato di sfornare un progettino (in allegato).

Ci sarebbe ancora qualcosina da sistemare ma funziona.

Fammi sapere

Ciao
alexmed

reru Profilo | Newbie

Grazie per il tuo interessamento, sei veramente gentile.
In effetti quello che mi piacerebbe è rendere il codice più razionale, con meno righe, a vantaggio delle sviste che puoi avere durante le "rivisitazioni" del prg.
La tua soluzione è davvero interessante, l'unica cosa è che dovrò "probabilmente" gestire io il punto di partenza (il centro X,Y) della prima etichetta, da quì in poi proseguire con incrementi X e Y predeterminati.
Questo perchè non sono ancora sicuro sulla disposizione delle etichette sul foglio A4, potendo gestire questo parametro avrò maggior libertà di stampa e potrò evitare di modificare 10000 volte il codice (almeno credo) per "beccare 'inizio" della stampa.

Ciao e un grazie di cuore per il tuo tempo e le tue capacità.
RZ
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5