Stampa e formattazione dei dati

Posso stampare, nello stesso oggetto o nella stessa cella di una tabella, valori diversi in funzione di un test logico?

 
I dati che arrivano dalla stampa AS/400 devono essere stampati come appaiono nella stampa originale o posso, ad esempio, stampare solo alcuni caratteri, il risultato di calcoli o formattare numeri e date in modo diverso?

 
Posso fare in modo che un testo vada automaticamente a capo se lo spazio predisposto per la stampa non è sufficiente?

 
Posso cambiare il colore del carattere in base al contenuto? Voglio stampare in rosso i valori negativi.

 
Posso stampare dei caratteri alti ma stretti o bassi ma larghi?

 
Posso stampare delle cose solo sull'ultima pagina del documento?

 

 


 

Posso stampare, nello stesso oggetto o nella stessa cella di una tabella, valori diversi in funzione di un test logico?

 

Per condizionare la stampa di un valore, occorre utilizzare fa funzione COND (o IF).
 
Cond(copies=1,"Prima copia","Copia successiva")
 
E' anche possibile nidificare funzioni COND per realizzare condizioni più complesse:
 
Cond(copies=1,"Prima copia",Cond(copies=2,"Seconda copia","Copie successive"))
 
 

 
 
I dati che arrivano dalla stampa AS/400 devono essere stampati come appaiono nella stampa originale o posso, ad esempio, stampare solo alcuni caratteri, il risultato di calcoli o formattare numeri e date in modo diverso?
 
I dati che arrivano al designer grafico dalla stampa AS/400 possono essere stampati come risultato di calcoli e funzioni o con particolari formattazioni:
 
Esempi:
  • Stampare la sottostringa di una variabile
    Mid$(NOME,3,40)
  • Stampare il concatenamento di più variabili (e/o costanti)
    "Spett. " + NOME
    "Spett. " + Left$(NOME,1) + Mid$(NOME,2,40)
  • Stampare il risultato di calcoli
    "Importo IVA: " + PREZZO + PREZZO * (IVA/100)
  • Stampare valori formattati
    "Importo IVA: "+ Fstr$(PREZZO + PREZZO *(IVA/100),"##,###,##&.##")
  • Stampare date formattate:
    Date$(DATA,"%D, %d. %M %y")    <Riporta: Giovedi, 11.Aprile 2002
  • Stampare il risultato di calcoli sulle date (es. data + 15 gg.)
    Date$(AddDays (DATA,15),"%D, %d. %M %y")
  • Richiedere all'utente di inserire un valore da utilizzare per la stampa
    AskString$("Intestatario documento:",.F.,"",20)
  • Stampa il numero di pagina formattato
    "Pag. " + Fstr$(Page(),"###")

nota: La formattazione di date e numeri si impostano tramite i tabs Data$() e FStr$() della finestra delle Variabili e Funzioni.

 


 

Posso fare in modo che un testo vada automaticamente a capo se lo spazio predisposto per la stampa non è sufficiente?

 

Quando spiegato si riferisce sia alla stampa di costanti che di variabili o campi.  

Spuntare la voce Restringimento Linea nelle proprietà del paragrafo o della cella.

 


 

Posso cambiare il colore del carattere in base al contenuto? Voglio stampare in rosso i valori negativi.

 

Usare una formula per l'impostazione della proprietà colore:


«Cond(DETTAGLIO.VALORE<0,RGB(255,0,0),RGB(0,0,0))»
 
nota: RGB(255,0,0)=Rosso   RGB(0,0,0)=Nero
 
 

 
 
Posso stampare dei caratteri alti ma stretti o bassi ma larghi?
 
E' possibile impostare sia la dimensione verticale (proprietà dimensione) che orizzontale (proprietà larghezza) di un carattere.
La dimensione è espressa in punti. La larghezza in mm.
 
 

 
 
Posso stampare delle cose solo sull'ultima pagina del documento?
 
 
Per stampare degli oggetti solo sull'ultima pagina del documento occorre considerare la struttura del documento:
  • Se il progetto grafico mantiene la paginazione della stampa originale (spoolPage nella sezione "Dati di testata").

    In questo caso si può condizionare la stampa dell'oggetto (Condizione di apparenza) eseguendo il test su una variabile che sia presente solo sull'ultima pagina (es. il Totale Fattura):

    TOTFAT > 0
  • Se il progetto grafico cambia la paginazione rispetto alla stampa originale (Dati di intestazione del documento nella sezione "Dati di testata").

    Disegnare il piede del documento utilizzando linee di piede (il wizard utilizza queste linee) e condizionare la stampa delle variabili che devono essere stampate solo sull'ultima pagina con le funzioni COND e Lastpage:
    Cond(Lastpage(),DETTAGLIO.TOTALE," ")

    Per gli oggetti non tabella è sufficiente condizionare la stampa (condizioni di apparenza) con Lastpage(), a meno che questi oggetti siano utilizzati per stampare il contenuto di VARIABILI (es. un box di testo). In questo caso, quando viene stampata, la variabile è già valorizzata con il valore del documento successivo (prossimo processo di stampa). 
    Una soluzione a questo problema è quello di non condizionare l'oggetto e di sovrapporre allo stesso un rettangolo bianco condizionato con not Lastpage().
    In questo modo il rettangolo "Cancella" l'altro oggetto sulle pagine che non sono l'ultima.