Newsgroup: it.comp.lang.visual-basic
Titolo: [? un po' OT] Usare bene la stampa unione come report...

Ciao ragazzi......come va?
Ho deciso di risolvere un problema su un report di stampa utilizzando la
stampa unione di Word, solo che non è molto flessibile come
credevo........devo stampare una cosa del genere:
DATA                    LOCALE                        ARTISTA
----------------------------------------------------------------------------
-------
01/01/2002            DISCOTECA                 DEEJAY
i record devono essere ripetuti su ogni riga, mentre la stampa unione me li
posiziona uno per pagina.....
Posso usare la direttiva <<Next>> che fa "saltare" al record successivo, ma
non è una cosa automatica e sono costretto a disegnare una seconda riga
della tabella per il secondo record.....
Morale : devo disegnare TUTTE le righe della tabella, cosa impossibile,
perchè non so quanti record devo stampare a priori......
voi come avete fatto a risolvere 'sto problema, se lo avete già affrontato?
Dove posso trovare un help da qualche parte che spieghi bene le direttive
della stampa unione?
good coding!!!
--
Damiani Liborio Igor
ig...@igordamiani.it
 - 
dam...@italiainfiera.it
 - 
idam...@hotmail.com
http://www.igordamiani.it
ICQ : 11847262
---
"Tu devi capire che lei è nuova a queste cose..."
"Bhè, e che cosa ci vuole?"
"Ci vuole, ci vuole, è questione di orizzonti che non è abituata a
vedere..."
Una persona che conosco, 8 Novembre 2002

 voi come avete fatto a risolvere 'sto problema, se lo avete già
affrontato?
Vedi "consiglio per stampe personalizzabili" del 6/11.
E' un bel thread con tante idee.
Ciao
Alberto

sì, me lo ricordo, l'avevo letto......ma non mi aveva soddisfatto molto.....
quello di cui sto parlando è un applicativo già distribuito presso alcuni
clienti. Per i report, mi appoggio su crystal report, che va benissimo.
Quello che il cliente vuole è un'esportazione dei dati in formato HTML.
Bene, dico io, uso il "motore" di CR: dall'anteprima di stampa, c'è un
pulsante Esporta, in vari formati: DOC, XSL, HTM e via dicendo.....
Manco a dirlo, nessuna di queste funziona, anzi produce output
orripilanti.......
quindi, non posso stravolgere la struttura del programma, devo semplicemente
creare un .doc con la stampa unione........
poi da Word, faccio un bel "Salva con nome" in formato HTML, sperando che
vada bene......
cmq guarderò meglio.........


 perchè non so quanti record devo stampare a priori......
Anche questo non è del tutto vero.
Quando avvii una stampa, colleghi il documento word ad una tabella o ad una
query, per cui sai esattamente quanti record hai.
Poi, anzichè collegarli con stampa unione, li inserisci da codice
direttamente nel testo.
Ma sono tutte cose già descritte in dettaglio nel thread che ti dicevo.
Ciao
Alberto

secondo me c'è qualche qui-pro-quo......dunque:
supponiamo di avere una tabella chiamata Anagrafica, con un campo Nome che
contiene:
Mario
Paolo
Francesco
Inizio una nuova stampa unione con Word. Pagina bianca. Ok. Vado sul
pulsante "Inserisci campo unione" sulla toolbar e clicco su "Nome".
Ovviamente, parto dal presupposto di aver già impostato la stampa-unione,
specificando l'mdb e via dicendo......
Ok. Sulla pagina bianca, in alto a sinistra, mi appare <<Nome>>.
Se a questo punto genero l'unione, Word mi crea un nuovo documento Word con
3 pagine, una per ciascun record. A me fa così, è così per tutti o sbaglio
io qualcosa?
Io non voglio avere un documento di 3 pagine, voglio una sola pagina con
Mario
Paolo
Francesco
e, ovviamente, che continui per n pagine se i record diventano 100.
io non ho ancora usato interruz. di paragrafo o di pagina.......come dovrei
usarli?
grazie!!!!


 secondo me c'è qualche qui-pro-quo......dunque:
L'unico qui-pro-quo è il tentativo di usare uno strumento (Word) senza
conoscerlo a sufficienza.
(Senza voler essere polemico, però se uno ti dice che funziona in un modo, e
a te funziona in un altro, potresti anche provare due click a caso per
vedere se cambia qualcosa).
La stampa unione può generare tante cose diverse: lettere, etichette,
cataloghi.
Se tu vuoi una lista di roba, vuoi fare una lettera? Vuoi fare delle
etichette? O vuoi fare un catalogo?
Secondo me, vuoi fare un catalogo.
Allora:
Stampa unione
 [Crea documento -> Catalogo]
 [Usa finestra corrente]
Apri sorgente dati
Modifica documento
.... inserisci i tuoi campi, e metti un fine paragrafo dopo l'ultimo campo
Stampa Unione -> Unisci
E' abbastanza evidente che ciò che vuoi sopra e sotto alla lista dati dovrai
metterlo in Intestazione e Piè di Pagina.
Ciao
Alberto

scusami e nel frattempo ti ringrazio enormemente per il post, mi hai
veramente delucidato.......
non pensavo che ci fosse una "differenza di funzionamento" tra catalogo,
buste e così via.....
pensavo che tra scegliere l'uno o l'altro, cambiasse solamente una serie di
impostazioni (formato del foglio, per esempio) che Word imposta
automaticamente per semplificare la vita all'utente.......
invece no!! grazie ancora......
in effetti, scegliendo catalogo, lui mi unisce tutti i record sulla stessa
pagina e già stamattina, a quest'ora, ho già raggiunto un livello di
impaginazione del mio Word sufficiente.....
un'ultima constatazione, però: ho messo un campo unione all'interno
dell'intestazione di pagina, ma quando unisco i dati, non me lo compila,
rimane la dicitura <<Nome>>.
mi cerco io la soluzione, mi sei già stato d'aiuto fin troppo.....
grazie ancora, alla prossima!!!
good coding!!!


 rimane la dicitura <<Nome>>.
Non puoi mettere un campo unione nell'intestazione.
E' come mettere un campo di un recordset in una sezione di intestazione di
un datareport.
Non è possibile per un motivo molto logico: l'intestazione non viene
riprodotta per ogni record, mentre il campo di un record può variare da
record a record.
Se si tratta di un campo uguale per tutti i record (ad esempio proprio il
campo su cui è stata fatta la selezione, tipo numero fattura o cose del
genere), lo devi inserire da codice direttamente in un segnaposto nel file
di word, utilizzando però, ed è qui la differenza, il .Value del campo,
anzichè il riferimento al nome del campo.
Ciao
Alberto