Page 1 of 1

Report

PostPosted: Thu Jul 12, 2007 2:20 pm
by Ugo
Ciao a tutti,

è possibile preparare dei report (con la classe TReport) in orizzontale?
non sono riuscito a trovare comandi o esempi a riguardo.

Grazie per i suggerimenti.

Re: Report

PostPosted: Thu Jul 12, 2007 2:36 pm
by Enrico Maria Giordano
Code: Select all  Expand view
PRNLANDSCAPE()


prima del comando

Code: Select all  Expand view
REPORT oRpt


e

Code: Select all  Expand view
PRNPORTRAIT()


alla fine, dopo

Code: Select all  Expand view
ACTIVATE REPORT oRpt


EMG

PostPosted: Thu Jul 12, 2007 3:08 pm
by Ugo
Enrico,
grazie ma ora mi accade che stampa solo in orizzontale :-(

Certamente sbaglio qualcosa ...
Questo è il pezzo di codice:
Code: Select all  Expand view

   IF ::lPrinter
      // imposto la stampante!
      PrinterSetup()
   ENDIF

   PrnLandscape()

   REPORT oRpt PREVIEW TITLE ::cTitolo

   IF ::nPrnOrien == 1
      PrnPortrait()
      MsgInfo( "Impostato Portrait" )
   ELSE
      PrnLandscape()
      MsgInfo( "Impostato Landscape" )
      // Anche quando passa di qui stampa orizzontale
   ENDIF


PostPosted: Thu Jul 12, 2007 4:03 pm
by Enrico Maria Giordano
Ugo wrote:
Code: Select all  Expand view
      PrnLandscape()
      MsgInfo( "Impostato Landscape" )
      // Anche quando passa di qui stampa orizzontale
   ENDIF



Certo, landscape è la stampa orizzontale.

EMG

PostPosted: Thu Jul 12, 2007 4:14 pm
by Ugo
EnricoMaria wrote:
Certo, landscape è la stampa orizzontale.



Si, scusa ho sbagliato a mettere il commento :-(
anche dal Portrait stampa orizzontale!!!!!

PostPosted: Thu Jul 12, 2007 4:30 pm
by Ugo
Enrico,
ho risolto!

L'impostazione deve essere fatta prima della dichiarazione del report.

PostPosted: Thu Jul 12, 2007 6:09 pm
by Enrico Maria Giordano
Come, appunto ti avevo detto. Comunque potrebbe dipendere anche dall'opzione oRpt:lAutoLand che fa stampare in orizzontale quando necessario e che è attivata di default.

EMG

PostPosted: Fri Jul 13, 2007 7:22 am
by Ugo
EnricoMaria wrote:Come, appunto ti avevo detto.

Si in effetti, subito non avevo capito bene! :(
EnricoMaria wrote:Comunque potrebbe dipendere anche dall'opzione oRpt:lAutoLand che fa stampare in orizzontale quando necessario e che è attivata di default


Non capisco, la stampa è sempre verticale anche quando definisco più colonne rispetto a quelle stampabili...
In questo caso mi ritorna un messaggio che avverte che la stampa non sta nel foglio, con 2 bottoni "SI" e "NO", se premi no non stampa ed esce altrimenti esegue la stampa in verticale facendo vedere solo le colonne visibili.

PostPosted: Fri Jul 13, 2007 11:01 am
by Enrico Maria Giordano
Forse non hai una versione aggiornata di FWH? In quella che ho io (l'ultima) lo switch da portrait a landscape avviene automaticamente.

EMG

PostPosted: Fri Jul 13, 2007 2:49 pm
by Ugo
EnricoMaria wrote:Forse non hai una versione aggiornata di FWH? In quella che ho io (l'ultima) lo switch da portrait a landscape avviene automaticamente.


Uso la FWHX 7.04 con xHb CVS 0.99.71 e Vista Business.
Non è poi così vecchia!

PostPosted: Fri Jul 13, 2007 2:55 pm
by Enrico Maria Giordano
No, direi di no. Allora deve funzionare così anche a te. Praticamente, se la stampa non entra in verticale allora la TReport passa automaticamente in orizzontale. Se poi non entra neanche in orizzontale allora ti dà il messaggio ma comunque stampa in orizzontale pur troncando il testo che non entra nel foglio.

Controlla che la variabile oRpt:lAutoLand non sia impostata a .F.

EMG

PostPosted: Fri Jul 13, 2007 3:21 pm
by Ugo
EnricoMaria wrote:No, direi di no. Allora deve funzionare così anche a te. Praticamente, se la stampa non entra in verticale allora la TReport passa automaticamente in orizzontale. Se poi non entra neanche in orizzontale allora ti dà il messaggio ma comunque stampa in orizzontale pur troncando il testo che non entra nel foglio.

Controlla che la variabile oRpt:lAutoLand non sia impostata a .F.


Si, adesso funziona anche a me così! :) :)
Certo che è molto meglio che doverlo forzare prima!!!

Ma la misura della larghezza del campo è possibile impostarla a mm?
... e adesso cosa sono caratteri?

PostPosted: Fri Jul 13, 2007 3:27 pm
by Enrico Maria Giordano
Dovrebbe essere pari alla lunghezza di tante "B" quanti sono i caratteri del primo dato visualizzato. Potresti impostarlo in millimetri utilizzando il metodo Cmtr2Pix().

EMG

PostPosted: Fri Jul 13, 2007 3:33 pm
by Ugo
EnricoMaria wrote:Dovrebbe essere pari alla lunghezza di tante "B" quanti sono i caratteri del primo dato visualizzato. Potresti impostarlo in millimetri utilizzando il metodo Cmtr2Pix().


Quindi, data la larghezza che voglio, devo trovare quante "B" ci stanno per ottenere la larghezza del campo, giusto?

PostPosted: Fri Jul 13, 2007 3:37 pm
by Enrico Maria Giordano
No, quello è il sistema con cui la TReport calcola le larghezze di default. Se tu le vuoi impostare diversamente devi dare la dimensione in punti di stampa che puoi ottenere dai centimetri utilizzando il metodo citato.

EMG