19/05/2023: A causa di un errore sono stati cancellati, insieme ad account creati da bot, alcuni account legittimi. Si prega di leggere qui: https://www.gambas-it.org/smf/index.php?topic=9733.0
PUBLIC SUB btnstampa_Click() DIM sql AS String DIM x AS Integer DIM xquant AS Integer DIM xcod AS Integer DIM xprez AS Integer DIM xdescr AS Integer DIM y AS Integer DIM valorepag AS Integer DIM valoreymax AS Integer DIM valoreynewpage AS Integer valorepag = 1 valoreymax = 6800 valoreynewpage = 200 sql = "select * from dettagli WHERE idpreventivo LIKE '%" & tbidpreventivo.Text & "%'" " " sql = sql & "order by iddettaglio" MyRS = MODMain.$conn.Exec(sql) 'IF Printer.Setup() THEN RETURN 'fai apparire il modulo di conf. stampante Printer.Name = "PDF" ' nome stampante imposto PDF per comoditàDraw.Begin(Printer) ' Initializes the drawdraw.LineWidth = 1Draw.Foreground = color.BlackDraw.Background = color.White PNTintestazione.stintestazione ' richiamo funzione intestazione'''''''''''''''''Draw.LineWidth = 10 '-- spessoreDraw.Line(100, 1000, 100, 6800) '-- coordinate di inizio e fine espresse nella coppia X,Ydraw.Font.Bold = TRUE ' grassettodraw.Font.Italic = FALSE ' italicodraw.Font.size = 7 ' dimensionedraw.text("Pag. " & valorepag, 4400, 6850) ' scrivo il n° prima paginadraw.Font.size = 10 ' dimensionex = 100y = 1000xquant = 100xcod = 250xdescr = 900xprez = 4000 IF MyRS.Available = TRUE THEN FOR EACH MyRS draw.text(MyRS!quantita, xquant, y) draw.text(MyRS!codice, xcod, y) draw.text(MyRS!descrizione, xdescr, y) draw.text(MyRS!prezzo, xprez, y) ' quà non so come incolonnare il prezzo a dx y = y + 150 IF y > valoreymax THEN printer.newpage() Y = valoreynewpage valorepag = valorepag + 1 draw.Font.size = 7 ' dimensione draw.text("Pag. " & valorepag, 4400, 6850) ' scrivo il n° pagine successive draw.Font.size = 15 ' dimensione ENDIF NEXT ENDIF ''''''''''Draw.end''questo comando è provvisorioWAIT 2 ' aspetto 2 secondi per poi aprire il pdfSHELL "evince " & User.Home & "/PDF/_stdin_.pdf" 'apro il pdf (non sò perchè lo chiama _stdin_.pdf ???) è provvisorio END
draw.text(MyRS!prezzo, xprez+1000-draw.textwidth(MyRS!prezzo), y) '
Golia ha scritto:Codice: [Seleziona]x = 100y = 1000xquant = 100xcod = 250xdescr = 900xprez = 4000 IF MyRS.Available = TRUE THEN FOR EACH MyRS draw.text(MyRS!quantita, xquant, y) draw.text(MyRS!codice, xcod, y) draw.text(MyRS!descrizione, xdescr, y) draw.text(MyRS!prezzo, xprez, y, x2, y2, Align.TopRight) ' dovrebbe essere così
x = 100y = 1000xquant = 100xcod = 250xdescr = 900xprez = 4000 IF MyRS.Available = TRUE THEN FOR EACH MyRS draw.text(MyRS!quantita, xquant, y) draw.text(MyRS!codice, xcod, y) draw.text(MyRS!descrizione, xdescr, y) draw.text(MyRS!prezzo, xprez, y, x2, y2, Align.TopRight) ' dovrebbe essere così
é giusto fare così: se draw.textwidth > valore ...e poi ? come faccio a spaccare il testo in 2 ?
fsurfing ha scritto:.....in qualche post di questo forum tempo fa scrissi una rootine del genere ma valla a trovare!