Autore Topic: Report con PdfWriter  (Letto 32722 volte)

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Report con PdfWriter
« Risposta #45 il: 09 Settembre 2010, 22:51:12 »
Ho provato e funziona, però solo per i caratteri fino al 127.
Dal 128 "€" compreso sballa. Almeno se non ho sbagliato qualcosa

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: Report con PdfWriter
« Risposta #46 il: 10 Settembre 2010, 09:10:55 »
Solo una considerazione; visto che lo sviluppo di gb3 procede velocemente e che Benoit suggerisce caldamente la migrazione, ed in considerazione della enorme potenzialità di PDFWriter, varrebbe la pena di apportare modifiche lalla libreria, che risultino compatibili con la nuova versione di gambas.
Ho dato una occhiata veloce ed ho scoperto che nella SUB Codabar viene passato il parametro Ends. Questa in gb3 è una parola chiave utilizzata per verificare se una stringa termina con uno specifico carattere ( la funzione Begins per l'inizio della stringa). Suggerirei di sostituire il parametro con (ad esempio) Ending o Endss.

L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Report con PdfWriter
« Risposta #47 il: 10 Settembre 2010, 10:29:34 »
Milio aveva già fatto andar bene PdfWriter per G3, non sò dirti come, lo vedi quà http://www.gambas-it.org/smf/index.php?topic=1056.msg11928#msg11928.
Penso che adesso MD9327 porterà le modifiche alla classe per G2, poi si potrà farla andare anche per G3.

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Report con PdfWriter
« Risposta #48 il: 10 Settembre 2010, 10:51:15 »
Riguardo ai parametri, cosa che ho già notato provandolo su pgDesigner, non è necessario cambiargli nome, basta racchiudere la variabile tra parentesi graffe (es. {ends}).

Questo era valido per la 2, ma resta valido anche per la 3.

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Report con PdfWriter
« Risposta #49 il: 15 Settembre 2010, 22:02:43 »
Ho sistemato Multicell2 :)
In allegato il file txt con solo quello da aggiungere a PdfWriter.
Ho inserito anche la tua funzione "SetLanguage" ma come ti ho scritto nel post precedente
Citazione
Ho provato e funziona, però solo per i caratteri fino al 127.
Dal 128 "€" compreso sballa. Almeno se non ho sbagliato qualcosa
Forse ho sbagliato a usarla, non so.. fammi sapere

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Report con PdfWriter
« Risposta #50 il: 15 Settembre 2010, 23:36:49 »
Ho scaricato e gli ho dato un'occhiata veloce, ma vedo un buon lavoro... Bravo!

Il poco tempo che ho a disposizione lo utilizzo maggiormente per pgDesigner, ma da domani vedo di approfondire con PdfWriter.

Riguardo alla conversione di lingua, devo verificare se, per caso, non abbia gestito le stringhe in modo standard, senza usare l'oggetto String.
Provvederò a fare un controllo, perchè ho un certo dubbietto. Ad ogni modo l'idea era quella che tu hai riportato correttamente a codice.

Ti faccio sapere!
Grazie

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Report con PdfWriter
« Risposta #51 il: 16 Settembre 2010, 00:05:06 »
Piccola domandina: cosa ti risponde il seguente comando di gambas "PRINT System.Charset"?

Nel mio caso, che uso Fedora basata su RedHat, mi ritorna UTF-8, ma dalla doc sembra che altre distro usino diversi charset.

Ad ogni modo, hai un esempio con cui provare, sia i nuovi metodi che la conversione?
Dato che creato queste nuove funzioni, credo sia più opportuno provarlo su una cosa reale, prima di inventarmi qualcosa io... :-\

Inoltre, mi sembra giusto che tu venga inserito sia nel ChangeLog come riferimento delle modifiche, e tra gli autori e i contributori del progetto. Quindi, se non hai nulla in contrario, mi puoi dare (anche con msg privato) il tuo nome reale ?
 

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Report con PdfWriter
« Risposta #52 il: 16 Settembre 2010, 00:12:50 »
Uso Kubuntu lucid, e anche a me mi ritorna UTF-8
Ti posto l'esempio domani, perchè devo un pò sitemarlo, adesso  :sleepy:
Il mio nome reale è Franco Cappellaro, grazie è proprio un onore :2birre:

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Report con PdfWriter
« Risposta #53 il: 16 Settembre 2010, 18:21:58 »
Mi puoi spiegare, in sintesi, cosa fanno e che modifiche introducone le funzioni?
Questo per scrivere qualche nota in testa alle stesse nel codice e nel ChangeLog.  :ok:

Inoltre, mi spieghi meglio la funzione MultiRect(), della quale non comprendo bene tutti quei parametri.
Forse è possibile aggiustarla un pochettino, per renderla più dinamica.
Ma potrei aver capito male la sua funzione...  :-\

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Report con PdfWriter
« Risposta #54 il: 16 Settembre 2010, 22:16:24 »
Multicell2 a differenza di Multicell sposta la coordinate x ($x) a dx, cioè dopo un'inserimento di Multicell2 la coordinata x si sposta della misura x della cella, questo per creare una normale griglia. La coordinata x viene poi riportata a sx (margine definito) dopo il comando Ln2(). Inoltre salva nella variabile $max_y l'altezza (y) massima utilizzata da più Multicell2, che viene resettata poi col comando Ln2(). Fatto questo se impostiamo il border "TRUE" il rettangolo verrà disegnato in ogni cella della misura y in base al contenuto, quindi il risultato estetico non sarà il massimo perchè nella stessa riga potrebbero esserci altezze diverse. Quindi impostando il border a FALSE non disegno il rettangolo, e vado poi a richiamare la funzione multirect dopo aver inserito tutti i Multicell2 e prima di cambiare riga con Ln2().
Avendo salvato l'altezza massima con $max_y posso crearmi la mia griglia tutta bella dritta :).
Lo sò che non è tanto elegante, perchè è impostato per 10 colonne,
Citazione
ME.MultiRect(10, 32, 108, 20, 20, 0, 0, 0, 0, 0)
In questo esempio ho 5 colonne che passo solo il parametro x (uguale alla larghezza Multicell2). Per le colonne che non si devono fare il valore è 0

Dimenticavo, la funzione Cell2 serve per Multicell2, non và usata da sola.
« Ultima modifica: 16 Settembre 2010, 22:18:09 da Golia »

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Report con PdfWriter
« Risposta #55 il: 16 Settembre 2010, 23:11:24 »
Ti ho sistemato l'esempio, e ho aggiunto anche un form che puoi editare quello che viene stampato nella griglia così puoi fare le prove dei caratteri.
Nell'esempio c'è un database sqlite, basta che hai installato sqlite3.

Nel file txt che ti ho postato ho fatto un'errore, la funzione Multirect.
Quella giusta è questa:
Codice: gambas [Seleziona]

PUBLIC SUB MultiRect(w1 AS Float, w2 AS Float, w3 AS Float, w4 AS Float, w5 AS Float, w6 AS Float, w7 AS Float, w8 AS Float, w9 AS Float, w10 AS Float) 
  IF w1 > 0 THEN ME.Rect($lMargin, $y, w1, $max_y, "")
  IF w2 > 0 THEN ME.Rect($lMargin + w1, $y, w2, $max_y, "")
  IF w3 > 0 THEN ME.Rect($lMargin + w1 + w2, $y, w3, $max_y, "")
  IF w4 > 0 THEN ME.Rect($lMargin + w1 + w2 + w3, $y, w4, $max_y, "")
  IF w5 > 0 THEN ME.Rect($lMargin + w1 + w2 + w3 + w4, $y, w5, $max_y, "")
  IF w6 > 0 THEN ME.Rect($lMargin + w1 + w2 + w3 + w4 + w5, $y, w6, $max_y, "")
  IF w7 > 0 THEN ME.Rect($lMargin + w1 + w2 + w3 + w4 + w5 + w6, $y, w7, $max_y, "")
  IF w8 > 0 THEN ME.Rect($lMargin + w1 + w2 + w3 + w4 + w5 + w6 + w7, $y, w8, $max_y, "")
  IF w9 > 0 THEN ME.Rect($lMargin + w1 + w2 + w3 + w4 + w5 + w6 + w7 + w8, $y, w9, $max_y, "")
  IF w10 > 0 THEN ME.Rect($lMargin + w1 + w2 + w3 + w4 + w5 + w6 + w7 + w8 + w9, $y, w10, $max_y, "")
END

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Report con PdfWriter
« Risposta #56 il: 17 Settembre 2010, 10:21:14 »
Ti pare che io non abbia sqlite installato? Ma per chi mi hai preso?  ;D

Scherzi a parte, credo che sul mio pc manchi solo il DB2 di IBM, e poi c'è praticamente tutto...

Riguardo all'implementazione, mi sembra corretta, anche se non mi ero accorto della differenza di altezza delle celle durante la stampa... boh?
Ad ogni modo in questo week proverò con il tuo esempio...

Riguardo alla MultiCell, io credo sia meglio passargli un'array, invece di un numero di parametri fissi, in modo da svincolare la cosa, ed evitare problemi nel caso di più colonne. Ci penserò, l'aggiusto, e poi ti dico...  8)

P.S.: ho scaricato ieri sera la versione FPDF 1.6, e stò vedendo le differenze con la precedente, dalla quale ho effettuato il porting. Da una prima occhiata non sembrano esserci profonde differenze, ma la cosa è relativa. E non vorrtei avessero sistemato lo stesso problema che hai sistemato tu...  :rotfl: ...sarebbe da ridere... insomma...  :-\


Dai, ti faccio sapere...

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Report con PdfWriter
« Risposta #57 il: 17 Settembre 2010, 13:41:49 »
raga siamo tutti in attesa della versione definitiva.   :ok: :ok:

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Report con PdfWriter
« Risposta #58 il: 17 Settembre 2010, 13:57:59 »
A sìììì???

L'attesa costa!  ;D ;D ;D

Non voglio deludervi, ma è probabile che la conversione non sia così facile e immediata...

Ad ogni modo, sò dove andare a chiedere se mi servono dei beta-tester...  :D

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Report con PdfWriter
« Risposta #59 il: 17 Settembre 2010, 17:59:30 »
Citazione
Ti pare che io non abbia sqlite installato? Ma per chi mi hai preso? 
Perdono!! ;D
Siamo disponibili per fare i beta-tester....anche se chiamiamo fuori Roma :rotfl: