Scopo
Questa procedura comunica al motore di stampa che deve prepararsi per la stampa di un PDF che conterrà più copie del book. Dopo la chiamata alla procedura OpenMultiPDF le chiamate al metodo Print del book stampano all'interno del PDF multiplo oltre che nel proprio PDF singolo. Questo metodo è molto utile qualora il book sia stato disegnato per stampare un singolo oggetto (ordine, fattura, anagrafica utente, etc.) e si voglia generare un PDF contenente più documenti (ordini, fatture, dati anagrafica utenti, etc.).
Sintassi
// Inizio una stampa multipla
BookProdottiCategoria.OpenMultiPDF(nome file)
BookProdottiCategoria.OpenMultiPDF(nome file)
Argomenti
Nome File | Parametro stringa opzionale che indica al book il nome che dovrà essere dato al file PDF. Se non viene specificato il framework genererà un PDF con un nome casuale |
Esempio di codice
// Se è visibile la multi-selezione, attivo la stampa multipla
if Categorie.ShowMultipleSelection
{
int riga = 1 //
int CatSelected = 0 //
//
// Inizio una stampa multipla. Non fornisco alcun nome di file. Il framework ne
// genererà uno casuale
BookProdottiCategoria.OpenMultiPDF(??)
//
// Giro sulle righe del pannello alla ricerca di quelle selezionate
for each row (Categorie)
{
record Prodotto
int IDCategoria //
string NomeCategoriaCategorie //
string DescrizioneCategorie //
string ImmagineCategorie //
//
// Se la riga corrente è selezionata
if Categorie.IsRowSelected(riga)
{
// Informo il motore di stampa che questo book, contenuto in una stampa
// multipla, ha questo titolo
BookProdottiCategoria.Bookmark := Prodotto.NomeCategoriaCategorie
//
// Stampo il book, accodandolo alla stampa multipla
Filtro.Idcategoria := Prodotto.IDCategoria
BookProdottiCategoria.RefreshQuery()
BookProdottiCategoria.Print(ONE, C-1)
//
// Conto le categorie selezionate
CatSelected := CatSelected + ONE
}
riga := riga + ONE
}
//
// Se è stata selezionata almeno una riga
if CatSelected > ZERO
{
string PDFFile = "" //
//
// Chiudo la stampa multipla e chiedo al motore di stampa di fornire il nome
// del PDF risultato
PDFFile := BookProdottiCategoria.CloseMultiPDF()
//
// Apro il PDF risultato
EsempiLB.OpenDocument(PDFFile, ??, ??)
}
else // Non è stato selezionato nulla... segnalo l'errore
{
EsempiLB.MessageBox(MSG selezionare categoria)
}
}
if Categorie.ShowMultipleSelection
{
int riga = 1 //
int CatSelected = 0 //
//
// Inizio una stampa multipla. Non fornisco alcun nome di file. Il framework ne
// genererà uno casuale
BookProdottiCategoria.OpenMultiPDF(??)
//
// Giro sulle righe del pannello alla ricerca di quelle selezionate
for each row (Categorie)
{
record Prodotto
int IDCategoria //
string NomeCategoriaCategorie //
string DescrizioneCategorie //
string ImmagineCategorie //
//
// Se la riga corrente è selezionata
if Categorie.IsRowSelected(riga)
{
// Informo il motore di stampa che questo book, contenuto in una stampa
// multipla, ha questo titolo
BookProdottiCategoria.Bookmark := Prodotto.NomeCategoriaCategorie
//
// Stampo il book, accodandolo alla stampa multipla
Filtro.Idcategoria := Prodotto.IDCategoria
BookProdottiCategoria.RefreshQuery()
BookProdottiCategoria.Print(ONE, C-1)
//
// Conto le categorie selezionate
CatSelected := CatSelected + ONE
}
riga := riga + ONE
}
//
// Se è stata selezionata almeno una riga
if CatSelected > ZERO
{
string PDFFile = "" //
//
// Chiudo la stampa multipla e chiedo al motore di stampa di fornire il nome
// del PDF risultato
PDFFile := BookProdottiCategoria.CloseMultiPDF()
//
// Apro il PDF risultato
EsempiLB.OpenDocument(PDFFile, ??, ??)
}
else // Non è stato selezionato nulla... segnalo l'errore
{
EsempiLB.MessageBox(MSG selezionare categoria)
}
}
- Il parametro FileName è opzionale. Se non viene fornito il framework genera un nome casuale con estensione pdf.
- Per ottenere il nome del file PDF utilizzato è necessario, dopo aver effettuato tutte le stampe singole mediante il metodo Print del book, chiamare la funzione CloseMultiPDF. Tale funzione restituisce il nome del file PDF prodotto dalla stampa multipla.
- Durante la stampa multipla vengono stampati anche i PDF dei singoli documenti. Questo può essere molto utile qualora sia necessario avere anche tutti i PDF dei singoli documenti oltre al PDF multiplo. Per conoscere il nome del PDF singolo prodotto durante la stampa multipla è sufficiente leggere la proprietà OutputFileName del book dopo la chiamata al metodo Print.
Ultima modifica: 23/03/2021 / Validità: da 6.5.2680