Autore Topic: Stampare con Gambas.  (Letto 7742 volte)

Offline Mario

  • Grande Gambero
  • ***
  • Post: 138
    • Mostra profilo
    • http://overhill1963.blogspot.com/
Re: Stampare con Gambas.
« Risposta #30 il: 07 Luglio 2008, 17:55:55 »
Uhm, mi sa che ho scritto una cavolata...

Codice: [Seleziona]

dim res as integer   'Risoluzione su printer'

draw.line(res/75*10, res/75*10, res/75*100, res/75*100)


Decisamente meglio :-)
Saluti a tutti

Mario

Offline giuseppe249

  • Gamberetto
  • *
  • Post: 14
    • Mostra profilo
    • http://www.gambas-it.org
Re: Stampare con Gambas.
« Risposta #31 il: 22 Marzo 2009, 22:46:46 »
Fino a qui ci sono anche io,

Codice: [Seleziona]
for each rresult  
 testo =rresult!mio_campo
 draw.text(testo,x,y)
 y=y+15
 next


Ho notato però nel caso di una Tabella con una grande quantità di dati, come fargli capire che deve continuare a stampare alla pagina successiva?

Io sono rimasto all'istruzione

Printer.NewPage()
 e poi?

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Stampare con Gambas.
« Risposta #32 il: 22 Marzo 2009, 23:58:41 »
E poi devi rigenerare la struttura base della pagina e ricominciare con il contatore dal punto d'inizio, finché non hai stampato tutti gli elementi.
Ad esempio, potresti far così (in pseudocodice, riprendendo un po' il tuo esempio):
Codice: [Seleziona]

Y = valore_iniziale
Imposta_Pagina()
for each rresult  
 testo = rresult!mio_campo
 draw.text(testo,x,y)
 y=y+15
 if y>valore_max then
   printer.newpage()
   Imposta_pagina()
   Y = valore_iniziale
 endif
 next


Insomma, una roba del genere....
Visita il mio sito personale: http://www.leonardomiliani.com

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Stampare con Gambas.
« Risposta #33 il: 13 Maggio 2009, 00:26:50 »
Come si fa ad allineare a destra la stampa del dato contenuto da "testo" se sono cifre con decimali?

Citazione

leo72 ha scritto:
Codice: [Seleziona]

Y = valore_iniziale
Imposta_Pagina()
for each rresult  
 testo = rresult!mio_campo
 draw.text(testo,x,y)
 y=y+15
 if y>valore_max then
   printer.newpage()
   Imposta_pagina()
   Y = valore_iniziale
 endif
 next

Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Stampare con Gambas.
« Risposta #34 il: 13 Maggio 2009, 01:09:58 »
Io formatto tutto in valuta per cui ho sempre 2 decimali dopo la virgola, che siano una coppia di zeri oppure due cifre qualunque. Per allineare a destra usa
Codice: [Seleziona]

draw.Text(Stringa, X1, Y1, X2, Y2, Align.allineamento)


Su Align, premendo il punto, avrai le costanti utilizzabili.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Stampare con Gambas.
« Risposta #35 il: 13 Maggio 2009, 16:32:59 »
Credo di aver applicato correttamente il tuo suggerimento, ma non riesco ad ottenere l'allineamento che mi serve, questa è la porzione di codice interessato:
Codice: [Seleziona]

FOR EACH xResult
  Draw.Text(codice, x, y)
  codice = xResult!cdart
  Draw.Text(articolo, x + xinc1, y)
  articolo = xResult!descrizione
  Draw.Text(prezzo, x + 3000, y, Align.Right)
  prezzo = Format(xResult!prezzo2, "#0.00")
NEXT


praticamente ottengo una stampa allineata così
Codice: [Seleziona]

10,50
25,00
4,50


io vorrei ottenere questo allineamento
Codice: [Seleziona]

10,50
25,00
 4,50
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Stampare con Gambas.
« Risposta #36 il: 13 Maggio 2009, 16:57:53 »
non vorrei dire una fregnaccia ma a me pare che per utilizzare correttamente l' allineamento bisogna anche indicare la larghezza e l' altezza del rettangolo dove si vuole scrivere il testo altrimenti come fa gambas a capire rispetto a cosa allineare il testo?



altrimenti una soluzione alternativa e di calcolare la larghezza del testo

con  draw.font.whidth  e indicare dove stampare poi il testo di conseguenza

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Stampare con Gambas.
« Risposta #37 il: 13 Maggio 2009, 19:47:10 »
Infatti, la tua affermazione è corretta!

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Stampare con Gambas.
« Risposta #38 il: 14 Maggio 2009, 00:23:36 »
Infatti, io ho specificato X1,Y1 e X2,Y2.
Se non si crea il rettangolo testuale, l'oggetto non sa esattamente quanto è larga l'area e quindi non fa ciò che deve riguardo all'allineamento.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Stampare con Gambas.
« Risposta #39 il: 14 Maggio 2009, 20:42:21 »
:nulla:  ... ok ho capito  :leggere:  con più attenzione.
Grazie
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Stampare con Gambas.
« Risposta #40 il: 16 Maggio 2009, 13:23:13 »
E farai bene, altrimenti frustate sui "diti" dei piedi... :-)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Stampare con Gambas.
« Risposta #41 il: 10 Giugno 2009, 23:00:55 »
E se volessi stampare testo in verticale ?

Draw.Text("Testo", ???, ???)

P.S.: Spero di non beccare altre frustate sui "diti"....
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Stampare con Gambas.
« Risposta #42 il: 11 Giugno 2009, 00:17:54 »
In verticale intendi sviluppato in verticale o proprio ruotato in verticale?
Nel primo caso potresti creare un'area più alta che larga e poi mettere il testo con un sacco di ritorno a capo dopo ogni lettera:

Testo = "P\nr\no\nv\na"

Risultato:
Codice: [Seleziona]

P
R
O
V
A


Nel secondo credo tu debba usare un'immagine preparata in anticipo e poi ruotata.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Stampare con Gambas.
« Risposta #43 il: 11 Giugno 2009, 21:10:03 »
Ruotato in verticale.

Quindi con questa istruzione non posso ottenere la "verticalità del testo"
Codice: [Seleziona]
draw.Text(Stringa, X1, Y1, X2, Y2, Align.allineamento)


ma trasformare il testo in immagine e gestirlo come tale, ho capito bene?
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Stampare con Gambas.
« Risposta #44 il: 11 Giugno 2009, 21:24:15 »
esatto , dovresti prima creare una picture con il testo e poi ruotarla,

unico problema è che la creaziona della picture devi farla prima di iniziare a stampare altrimenti otterresti un errore