Stampa Unione con Quill
Una potente prerogativa di un software "storico"

                                          di Giorgio Garabello

E' vero, Quill  come word  processor  e' ampiamente  superato,
perfino sul QL abbiamo  di meglio, come Text87 o Paragraph, ma
questo   "glorioso"  software   puo'  ancora  assolvere  molte
funzioni di  text editing grazie  sia alla  sua solidita', sia
alle sue potenti opzioni.
Quando  parliamo  di  Quill,  parliamo  ovviamente  del  Quill
presente in XChange e non delle sue precedenti versioni.

In questo articolo tratteremo in particolare dell'opzione MAIL
che  consente  di effettuare quel'operazione  conosciuta quasi
ovunque come "Stampa Unione".
Per chi non lo sapesse  questo tipo di operazione  permette di
associare  un documento  ad una  lista  di  input e creare  in
automatico  una serie  di documenti  simili  con  delle  parti
"personalizzate" provenienti dalla lista di input.
Il caso piu' classico e' la  produzione di lettere  uguali con
intestazione   e  destinatario   diversi,  ma  questa  opzione
consente  in  realta' di manipolare  abbondantemente  il testo
sviluppando potenzialita' inaspettate, soprattutto trattandosi
di un software assai datato.

L'opzione Mail si trova nel comando Files.
Anche  se,  come  abbiamo detto  prima, la  stampa massiva  di
lettere  non  e'  l'unico  utilizzo  di  questa  opzione,  per
semplicita' useremo quello come esempio.

Il comando Mail richiede due set di  informazioni, il primo e'
il documento, generalmente  chiamato tamplate, che contiene le
parti fisse della  nostra serie di documenti, il secondo e' la
lista   dei  dati   variabili  che  vogliamo   utilizzare  per
personalizzare i nostri documenti.
Questi  dati  possono  essere  semplici  nominativi  o  interi
paragrafi.
All'interno del tamplate ogni posizione dove inserire  il dato
variabile di nostro  interesse viene marcata con uno  speciale
puntatore.
Il  secondo set di  informazioni e' invece  la lista  dei dati
variabili da abbinare al template.
L'opzione  mail provvede ad inserire tutti i dati variabili in
corrispondenza degli appositi marcatori  inseriti nel tamplate
e per  ogni occorrenza  della  lista stampare  una  copia  del
documento.
Prima di iniziare ad utilizzare "seriamente" l'opzione mail vi
consiglierei di fare qualche  prova con dei  dati semplici per
prendere confidenza col meccanismo.

Il template

Il template altro non e' che un normale documento Quill.
Per ciascun  punto dove  volete che  venga  inserito  il campo
della lista inserite il corrispondente nome di campo preceduto
e seguito del delimitatore.
Quill riconosce automaticamente come delimitatore il carattere
"*" (asterisco).

Supponete di stare scrivendo una lettera a persone differenti.
Il testo principale di ogni lettera e' identico, ma votete che
ciascuna copia includa nome ed indirizzo del destinatario.
La lettera avra' un aspetto simile a questo:

--------------------------------------------------------------

                                        QL Magazine
                                        via le dita dal naso 1
                                        10100 Torino
                                        Italia

  *titolo* *nome* *cognome*
  *via*
  *cap* *citta*
  *nazione*

  Spett. *titolo* *cognome*,

      Con la presente bla bla bla bla bla bla bla bla bla
  bla bla bla bla bla bla bla bla bla bla bla bla bla bla
  bla bla bla bla bla bla bla bla bla bla bla bla bla bla
  e quindi la bla bla bla bla bla bla bla bla bla bla bla
  bla bla bla bla bla bla bla bla bla bla bla bla bla bla
  bla bla bla bla bla bla bla bla bla bla bla bla bla bla
  bla bla bla bla bla bla bla bla bla bla bla bla bla bla

      Concludendo bla bla bla bla bla bla bla bla bla bla
  bla bla bla bla bla bla bla bla bla bla bla bla bla bla
  bla bla bla bla bla bla bla bla bla bla bla bla bla bla

  Distinti saluti

--------------------------------------------------------------

Gli  "oggetti"  racchiusi tra  gli asterischi  rappresentano i
dati variabili che  verranno via  via sostuiti; gli asterischi
invece non verrano stampati.
Se volete utilizzare un  carattere  marcatore differente dall'
asterisco, ad  esempio perche' avete bisogno di srampare degli
asterischi all'interno  del vostro documento  potete  indicare
un nuovo carattere marcatore  inserendolo come primo carattere
assoluto del file di dati.

E' possibile  utilizzare tre  differenti metodi per inserire i
vostri   dati  personalizzando  il  vostro  template:  tramite
tastiera, tamite un  altro documento  Quill oppure  tramite un
file esterno in formato _exp.

1 - Inserimento tramite tastiera.

E' il metodo piu' semplice, ma anche  quello che richiede piu'
tempo.
Una volta che avete  creato il vostro template con  i relativi
campi  variabili selezionate  l'opzione Mail dal  comando Mail
scrivendo:

     F3 O F M

Poi premete  ENTER  per accettre il  suggerimento di  QUILL di
inserire l'input tramite tastiera.
Quill  vi  suggerira'  di inviare le copie  direttamente  alla
stampante, accettate con il solito ENTER.
In alternativa  potete  scaricare il  risultato su  di un file
in formato _lis  digitando  il nome del file prima  di premere
ENTER.

Per ogni  campo variabile  QUILL vi  mostrera' il punto  e  vi
chiedera' di digitare il dato corrispondente.
Premete  ESC  al termine  di ogni sostituzione; al  termine di
ogni documento QUILL vi chiedera' di confermare la correttezza
digitate "Y" per stampare o "N" per annullare.
A  questo  punto  QUILL  vi  chiedera'  di  digitate  "C"  per
continuare con una nuova copia o "ENTER" per terminare.
Ovviamente    digitando   "C"   ricomincerete   il    processo
dall'inizio.

2 - Inserimanto da un secondo documento.

E' possibile  creare un  secondo  documento contenente  i dati
variabili da inserire nel template.
In  questo  documento  il  primo  paragrafo  e' particolare  e
contiene la  lista dei  nomi dei campi  variabili, separati da
un delimitatore, una specie di tracciato record.
Ciasun paragrafo  seguente corrispondera' ad un record, quindi
da una copia del documento.
Ricordo  che  per  terminare  un  paragrafo  su  Quill occorre
premere il tasto Enter.
Ecco un esempio tratto direttamente dal manuale di XCHAGE:

     /title/initial/surname/street/town/county/postcode/
     /Mr/J/Smith/53 Main Road/Anytown/Westshire/AB2 3CD/
     /Mrs/A/Jones/27 Gillygate/York//YO1 1XY/

Come potete vedere il file inizia con un carattere separatore,
in questo caso "/".
Questo serve a indicare a QUILL quale deve essere il carattere
separatore e quindi non puo' piu' essere utilizzato come dato.

Salvate il file secondario, ad esempio:

     F3 S secondo ENTER

e caricate il template.
Selezionate l'opzione  Mail dal comando Mail come ho  spiegato
poco sopra  ma  non  accettate  il  suggerimento  di  QUILL di
inserire i dati tramite  tastiera, ma scrivete  invece il nome
del file secondario:

     F3 O F M secondo_doc ENTER

Ricordate di includere  l'estensione _doc,  perche' QUILL  usa
come defalult _exp.

Esattamente come prima  voi avete la  possibilta' di  stampare
direttamente l'output oppure di scaricarlo su di un file _lis.
Ora l'intera operazione procedera' in automatico senza bisogno
di altri interventi da parte vostra.

L'unica  eccezione si  ha nel caso  in cui il vostro  template
contenesse marcatori vuoti, ad esempio "**".
In questo caso QUILL vi  segnalera' il problema e vi chiedera'
se volete continuare ugualmente oppure fermarvi.
Questo ovviamente per ogni copia che volete stampare.

Nell'esempio  di  template  sopra  riportato alcuni campi sono
stati riportati piu' volte.
In ogni caso il dato deve essere definito  una sola volta  nel
file  secondario,  sara'   QUILL  a  provvedere  a  tutte   le
sostituzioni.
Inoltre vi  possono essere  dati variabili  non  contenuti nel
template, essi saranno semplicemente ignorati.


3 - Inserimento da un file di esportazione

Il metodo piu' efficiente  per utilizzare la funzione  MAIL e'
quello di  utilizzare un  file  di interscambio  PSION, quelli
comunemente  noti come file  di esportazione (estensione _exp)
Il procedimento utilizzato e' uguale  al punto precedente, con
l'unica  differenza  costituita dalla  tipologia del  file  di
input.

Ma allora dove sta il vantaggio?
Il  vantaggio consiste nel  fatto che potete  generare il file
in formato _exp da qualunque applicativo.
Se  volete  produrre  stampe  di  una  certa  qualita', oppure
tabulati complessi, o ancora stampe con layout che necessitano
frequenti modifiche questa e' la soluzione che fa per voi.
Il  file   formato  _exp  puo'  essere  prodotto  dal   vostro
applicativo (che  non dovra' piu' preoccuparsi di salti pagina
e cose  simili) mentre la  fase di stampa personalizzata la si
lascia  invece  a  QUILL,  magari  richiamato  automaticamente
dall'applicazione stessa mediante un TSL.
Se si devono portare  delle modifiche e' sufficiente agire sul
documento  QUILL  utilizzato  come template  senza dover  ogni
volta modificare il proprio programma.