Scopo
Questa funzione comunica al motore di stampa che occorre terminare la stampa multipla su PDF avviata precedentemente mediante il metodo OpenMultiPDF.
Sintassi
string NomePDF = "" // Nome del PDF multiplo
//
NomePDF := Book.CloseMultiPDF()
//
NomePDF := Book.CloseMultiPDF()
Argomenti
Questa funzione non ha argomenti.Valore di ritorno
La funzione restituisce il nome del file PDF generato a seguito di una stampa multipla.
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 nome del file PDF restituito dalla funzione dipende dal valore del parametro FileName fornito alla procedura OpenMultiPDF. Se alla procedura non è stato fornito alcun parametro il nome del file viene automaticamente generato dal sistema ed il file sarà contenuto nella directory temp a sua volta contenuta nella "root directory" dell'applicazione WEB (directory ove è contenuta l'applicazione WEB stessa).
- Attenzione: Se il file PDF viene salvato all'interno della "root directory" dell'applicazione WEB il risultato della funzione è un path relativo. Se il file PDF viene salvato all'esterno di tale directory la funzione restituisce un percorso assoluto. In altre parole se l'applicazione WEB è contenuta nella cartella c:\Inetpub\wwwroot\WebApp ed il PDF risultante è stato salvato nella cartella c:\Inetpub\wwwroot\WebApp\temp\PDF123456.pdf il risultato della funzione sarà solo temp\PDF123456.pdf poiché il sistema elimina dal nome completo del file la "root directory" dell'applicazione WEB, qualora il nome del file inizi con il path della "root directory".
- Se il file è salvato all'interno della "root directory" la funzione restituisce un path relativo che può, quindi, essere direttamente fornito alla procedura OpenDocument qualora sia necessario aprire il PDF per mostrarlo all'utente.
- Se si chiama la funzione CloseMultiPDF senza aver chiamato prima il metodo OpenMultiPDF la funzione restituisce Empty String.
- Se si chiama la funzione CloseMultiPDF dopo aver chiamato la procedura OpenMultiPDF ma senza aver stampato nessun book mediante il metodo Print si ottiene un PDF valido ma senza pagine.
Ultima modifica: 07/06/2024 / Validità: da 6.5.2680