{ IF { MERGESEQ } ="1" "{MERGEFIELD Citta}
" ""}{SET Place1 {MERGEFIELD Citta}}
{IF {Plac2} <> {Place1}"
----------------------salto pagina-----------------
{MERGEFIELD Citta}
{MERGEFIELD Cognome} {MERGEFIELD Nome}" "{MERGEFIELD Cognome}
{MERGEFIELD Nome}"}{SET Place2 {MERGEFIELD Citta}}
Premesso che la tabella deve essere ordinata per Citta, queste istruzioni
consentono di ottenere per ogni pagina l'elenco dei nominativi distanziati
di una riga raggruppati per Citta in questo modo:
Citta1
Cognome1.1 Nome1.1
Cognome2.1 Nome2.1
..........................
CognomeN.1 NomeN.1
-----------------salto pagina--------------
Citta2
Cognome1.2 Nome1.2
Cognome2.2 Nome2.2
..........................
CognomeN.2 NomeN.2
-----------------salto pagina--------------
e cos� via.
Domanda: se volessi gestire anche il salto riga fra un nominativo e l'altro?
Pi� precisamente, se volessi che per ogni pagina vi stessero solo tre
nominativi seppure nell'ambito della stessa categoria, ci sarebbe una
soluzione?
Io una soluzione di ripiego l'ho trovata aggiungendo un certo numero di
righe vuote dopo l'ultima riga di istruzioni, per�, quando il gruppo �
numeroso si verificano via via delle sfasature negli spazi.
Grazie, paoloard
mancava..
http://support.microsoft.com/kb/294686 8-)
ciao
paoloard
>Nella seguente webpage Microsoft spiega come ottenere un elenco ordinato per
>categoria mediante la Stampa unione.
>In pratica, se ho una tabella con i seguenti dati:
>Cognome Nome Citta
>e voglio ottenere una stampa con l'elenco dei nominativi raggruppato per
>Citta e con salto pagina ad ogni cambio di categoria dovrei scrivere le
>seguenti istruzioni:
A questo punto io di solito ho gi� cominciato a scrivere un
programmino perl che genera l'RTF o, nella peggiore delle ipotesi, ho
aperto un generatore di report (una delle tipologie di programma pi�
frustranti con cui si possa avere a che fare, ma alcuni sono meno
peggio di altri; con ActiveReports � quasi possibile lavorare... se
proprio qualcuno vi costringe a farlo. Tutti comunque hanno degli
strumenti di controllo pi� fini della stampa unione di Word, insieme a
una quantit� di inutili complicazioni.)
Comunque, visto che � una specie di "sfida"...
>Domanda: se volessi gestire anche il salto riga fra un nominativo e l'altro?
>Pi� precisamente, se volessi che per ogni pagina vi stessero solo tre
>nominativi seppure nell'ambito della stessa categoria, ci sarebbe una
>soluzione?
Un uso cos� intenso della stampa unione lo facevo con Word 5
DOS[1](intorno quindi al 1990), ma Word 5 aveva, paradossalmente, un
sistema di stampa unione per certi versi pi� versatile (o se non altro
pi� simpatico) di quello delle versioni attuali di Word.
Comunque, mi pare che si potrebbe fare, sulla falsa riga del gruppo
Citt�, utilizzando il campo MERGESEQ; qualcosa del tipo:
{If {=mod({MERGESEQ};3)}="0" "
---interruzione di pagina ---
"""}
L'esito, comunque, � tutto da verificare.
Ciao.
[1] Prodotto che, per inciso, � ancora (e gratuitamente) disponibile:
>http://download.microsoft.com/download/word97win/Wd55_be/97/WIN98/EN-US/Wd55_ben.exe
LOL!
Grazie Giovanni, noto con piacere che la mia provocazione non � caduta nel
vuoto. :-)
Comunque non vorrei certo sfidarti in singolar tenzone, preferirei misurarmi
con avversari di "carni pi� tenere" delle tue :-)
Grazie
Prover� la soluzione e poi ti riferir�.
--
ciao paoloard
http://riolab.org
>Comunque non vorrei certo sfidarti in singolar tenzone, preferirei misurarmi
>con avversari di "carni pi� tenere" delle tue :-)
Come dovrebbe essersi capito, non ho una grande simpatia per la stampa
unione di Word e, di conseguenza, la mia competenza in merito � abbastanza
scarsa (posto che sia poi cos� preparato su altri argomenti, che � assai
discutibile). E' uno strumento potente, a cui quindi non si pu� rinunciare
del tutto, ma appena le cose si fanno un po' complicate tendo ad usare
altri metodi, pi� consoni al mio carattere.
Vent'anni fa, il confine fra "stampa unione" e "macro", in Word di quella
lontana epoca, era pi� sottile (di fatto, condividevano la stessa struttura
lessicale, e avevano diverse istruzioni in comune), e quindi, rientrando
entrambi in campi di mio interesse, ci trafficavo di pi� (ricordo di averci
realizzato, in pieno delirio informatico, un preprocessore per programmi in
dBIV). Ho poi, per fortuna, dimenticato tutto.
>Prover� la soluzione e poi ti riferir�.
Pi� che "soluzione", in realt� era appena un accenno su una possibile linea
operativa, tutta da verificare.
Ciao.
sono d'accordo, per un problema del genere io avrei usato un report di
Access e mi sarei semplificato la vita, purtroppo per� il problema mi �
stato posto in quei termini da terzi e quindi avrei voluto rispondere anche
per ci� che al momento non so
>
> Vent'anni fa, il confine fra "stampa unione" e "macro", in Word di quella
> lontana epoca, era pi� sottile (di fatto, condividevano la stessa
> struttura
> lessicale, e avevano diverse istruzioni in comune), e quindi, rientrando
> entrambi in campi di mio interesse, ci trafficavo di pi� (ricordo di
> averci
> realizzato, in pieno delirio informatico, un preprocessore per programmi
> in
> dBIV). Ho poi, per fortuna, dimenticato tutto.
altri tempi :-)
>
cut
>Pi� che "soluzione", in realt� era appena un accenno su una possibile linea
> operativa, tutta da verificare.
>
anche se ho capito il suggerimento che mi hai dato ho difficolt� ad
applicarlo anche perch� mi � nuova l'applicazione di campi composti come
pure la loro esatta sintassi.
Sto facendo delle prove ma finora non ho ottenuto il risultato sperato.
Ti far� sapere, anche perch� non � escluso che, alla fine, avr� necessit� di
un ulteriore "suggerimento".
Per ora ti ringrazio.
>anche se ho capito il suggerimento che mi hai dato ho difficolt� ad
>applicarlo anche perch� mi � nuova l'applicazione di campi composti come
>pure la loro esatta sintassi.
Direi che si potrebbe combinare la condizione sul numero di righe con
quella della citt�.
La sintassi per gli operatori logici per� � effettivamente piuttosto
intricata (http://support.microsoft.com/kb/211363/en-us/)
Se ho capito bene, dovrebbe saltarne fuori qualcosa come:
>{ IF { MERGESEQ } ="1" "{MERGEFIELD Citta}
>" ""}{SET Place1 {MERGEFIELD Citta}}
>{IF {=OR({COMPARE {Place2} <>{Place1}},{COMPARE{=mod({MERGESEQ};3)}="0"})}=1"
>----------------------salto pagina-----------------
>{MERGEFIELD Citta}
>
>{MERGEFIELD Cognome} {MERGEFIELD Nome}" "{MERGEFIELD Cognome}
>{MERGEFIELD Nome}"}{SET Place2 {MERGEFIELD Citta}}
Immagino che si potrebbe fare anche senza l'OR, mettendo la condizione sul
numero di righe nella parte ELSE dell'IF, ma temo che salti fuori qualcosa
di ancora peggio.
Ciao.
P.S. Ho gi� detto che in Word 5 era pi� semplice?
�IF condizione1 OR condizione2 AND...�
Testo se vero
�else�
Testo se falso
�endif�
domanda retorica :-)
Ciao Giovanni, ho letto il contenuto della pagina che mi hai linkato e
sembra applicarsi al caso in questione, come del resto hai suggerito tu.
Purtroppo per� non d� il risultato atteso anzi, in primo luogo d� un "errore
di calcolo nel campo n..." e cos� per tutti i record, inoltre restituisce
come risultato =1 per tutti i record e niente altro, senza peraltro
rispettare i tre elementi per pagina.
Oltre che applicare pedissequamente le indicazioni sia tue sia della pagina
suddetta non sono in grado di andare oltre.
Pertanto consiglier� al mio interlocutore due soluzioni: la prima di
aggiungere spazi dopo l'ultima istruzione cos� da spaziare manualmente le
righe, la seconda di usare Access.
Grazie per le informazioni, comunque utili per approfondire i temi.
>Purtroppo per� non d� il risultato atteso anzi, in primo luogo d� un "errore
>di calcolo nel campo n..." e cos� per tutti i record, inoltre restituisce
>come risultato =1 per tutti i record e niente altro
Be', nel codice che ho pubblicato c'�, vedo ora, un errore palese:
>{IF {=OR({COMPARE {Place2} <>{Place1}},{COMPARE{=mod({MERGESEQ};3)}="0"})}=1"
Se � "=mod(a; b)" non pu� essere "=OR(a, b)": il carattere deve essere
sempre il separatore di elenco, quale che sia sul sistema che si sta usando
(per l'italia, di solito, il punto e virgola); in ogni caso, se � giusto
uno, � sbagliato l'altro.
Da me poi funzionano solo i confronti stringa, cio� devo scrivere:
>{IF {=OR({COMPARE {Place2} <>{Place1}};{COMPARE{=mod({MERGESEQ};3)}="0"})}="1""
nonostante il campo OR restituisca indiscutibilmente un valore numerico.
Non garantisco, comunque, che anche con queste modifiche il codice
funzioni.
Ciao.
Ciao Giovanni, avevo gi� provato a sostituire la virgola con il punto e
virgola ma ottenevo come risposta un errore (non ricordo pi� quale); alla
luce delle tue nuove considerazioni ci rimetto le mani poi ti riscontro.
Grazie
Nisba :-(
comunque ne approfitto per farti gli auguri.