Autore Topic: [Completato] Programma gestionale vendite ordini consegne  (Letto 40724 volte)

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Programma gestionale vendite ordini consegne
« Risposta #180 il: 29 Settembre 2009, 18:46:53 »
che peccato..

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Programma gestionale vendite ordini consegne
« Risposta #181 il: 29 Settembre 2009, 19:44:47 »
per allineare un testo hai due possibilità

1: utilizzi la proprietà allineamento nel comando draw.text indicando però la dimensione del rettangolo in cui vuoi scrivere il testo

2: nella funzione draw.text indichi il punto di disegno dell' asse x considerando la dimensione del testo che vai a stampare che ricavi con draw.textwidth(testo)

comunque se vuoi ti scrivo un po di codice se mi fai uno schizzo di cosa vuoi ottenere

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Programma gestionale vendite ordini consegne
« Risposta #182 il: 29 Settembre 2009, 22:14:09 »
Grazie fsurfing. Sai ho scoperto che è molto bello impostare le stampe :-)
Questo è quello che ho fatto, non so come allineare i prezzi però
Codice: [Seleziona]

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 draw
draw.LineWidth = 1
Draw.Foreground = color.Black
Draw.Background = color.White  
PNTintestazione.stintestazione ' richiamo funzione intestazione
'''''''''''''''''
Draw.LineWidth = 10 '-- spessore
Draw.Line(100, 1000, 100, 6800) '-- coordinate di inizio e fine espresse nella coppia X,Y

draw.Font.Bold = TRUE ' grassetto
draw.Font.Italic = FALSE ' italico
draw.Font.size = 7 ' dimensione
draw.text("Pag. " & valorepag, 4400, 6850) ' scrivo il n° prima pagina
draw.Font.size = 10 ' dimensione
x = 100
y = 1000
xquant = 100
xcod = 250
xdescr = 900
xprez = 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 è provvisorio
WAIT 2 ' aspetto 2 secondi per poi aprire il pdf
SHELL "evince " & User.Home & "/PDF/_stdin_.pdf" 'apro il pdf (non sò perchè lo chiama _stdin_.pdf ???) è provvisorio
 

END

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Programma gestionale vendite ordini consegne
« Risposta #183 il: 29 Settembre 2009, 22:25:50 »
Dimenticavo, come posso impostare il carattere, es. "serif" ?

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Programma gestionale vendite ordini consegne
« Risposta #184 il: 29 Settembre 2009, 22:37:08 »
draw.font.name mi pare di ricordare

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Programma gestionale vendite ordini consegne
« Risposta #185 il: 29 Settembre 2009, 22:43:05 »
per il prezzo fai così

mi pare di capire che la colonna dei prezzi inizi a 4000 pixel

io ipotizzo che finisca a 5000 tu correggi di conseguenza


Codice: [Seleziona]
draw.text(MyRS!prezzo, xprez+1000-draw.textwidth(MyRS!prezzo), y) '   


logicamente tutti i prezzi dovranno essere formattati allo stesso modo ad esempio tutti con due decimali

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Programma gestionale vendite ordini consegne
« Risposta #186 il: 29 Settembre 2009, 22:54:20 »
Citazione

Golia ha scritto:
Codice: [Seleziona]

x = 100
y = 1000
xquant = 100
xcod = 250
xdescr = 900
xprez = 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ì          


Dichiara x2 e y2 Integer, assegna a x2 un valore (per esempio 80) e fai delle prove.
Sto andando a memoria, non ho il mio pc con Gambas sottomano, spero di non darti informazioni errate. Se non mi ricordo male nella mia discussione da dove hai preso spunto per le stampe Leo mi diede la sintassi esatta per l'allineamento, rileggi la discussione dovresti trovare l'informazione che ti serve.

Per il carattere : Draw.Font.Name = "Serif"

Scusami per eventuali inesattezze.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Programma gestionale vendite ordini consegne
« Risposta #187 il: 29 Settembre 2009, 23:10:37 »
Vi ringrazio tutti e due, già messo in pratica  :-)
Un'altra domanda, se il mio testo è più lungo dello spazio destinato:
é giusto fare così: se draw.textwidth > valore ...e poi ? come faccio a spaccare il testo in 2 ? e dirgli quanto lungo il primo pezzo? spero di essermi spiegato

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Programma gestionale vendite ordini consegne
« Risposta #188 il: 29 Settembre 2009, 23:23:25 »
Citazione
é giusto fare così: se draw.textwidth > valore ...e poi ? come faccio a spaccare il testo in 2 ?


detta così son c...i amari , io a suo tempo avevo risolto memorizzando già nel db solo stringhe con un numero di caratteri che potessoro essere stampati nel posto assegnatoli.

se non puoi fare altrettanto dovrai crearti una routine che spezza la frase in considerazione del numero di caratteri o della dimensione di stampa e degli spazi in modo di andare a capo solo a fine parola (auguri)

in qualche post di questo forum tempo fa scrissi una rootine del genere  ma valla a trovare!

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Programma gestionale vendite ordini consegne
« Risposta #189 il: 29 Settembre 2009, 23:39:44 »
ho capito devo vedere quanti caratteri ci stanno, avevo fatto una funzione del genere con access mi sembra ci voglia LEN LEFT etcc. Grazie

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Programma gestionale vendite ordini consegne
« Risposta #190 il: 29 Settembre 2009, 23:59:08 »
Citazione
fsurfing ha scritto:
.....in qualche post di questo forum tempo fa scrissi una rootine del genere ma valla a trovare!


Forse intendevi questo:
http://www.gambas-it.org/gmbs/modules/newbb/viewtopic.php?topic_id=649&viewmode=flat&order=ASC&type=&mode=0&start=0
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Programma gestionale vendite ordini consegne
« Risposta #191 il: 30 Settembre 2009, 16:26:36 »
Faccio notare che esiste una libreria per Gambas "PdfWriter", che mi pare sia nei download, per poter stampare in PDF.
Tra le funzioni, c'è anche la possibilità di dividere righe di testo troppo lunghe.

Se non c'è nei downloads, fammelo sapere, ti invio il link.

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Programma gestionale vendite ordini consegne
« Risposta #192 il: 30 Settembre 2009, 16:34:50 »
si c'è grazie, l'ho già scaricata è che come la funzione csv che mi hai fatto non riesco a capire come applicarla. Se ti va di complicarti un pò la vita possiamo approfondire :-)

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Programma gestionale vendite ordini consegne
« Risposta #193 il: 30 Settembre 2009, 16:45:13 »
Perfetto!

Se l'hai scaricata, e visto che è il porting di una famosa libreria PHP, ti consiglierei di fare un giro sul sito:

http://www.fpdf.org/

Lì trovi documentazione ed esempi, facilmente convertibili in Gambas.

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Programma gestionale vendite ordini consegne
« Risposta #194 il: 30 Settembre 2009, 18:39:29 »
ok grazie mille, studio poi ti faccio sapere