Scopo
Questa funzione salva su file il contenuto di un campo BLOB e ritorna il percorso del file salvato, calcolando l'estensione in base al MIME type del BLOB. Se si verificano problemi ritorna una stringa vuota.
Può essere utilizzata per mostrare all'utente i files contenuti nel database dell'applicazione, oppure per utilizzarli per personalizzare un book.
Sintassi
string Filename = "" // Il percorso del file salvato
//
Filename := SaveBlobFile(campo blob, percorso, nome del file)
//
Filename := SaveBlobFile(campo blob, percorso, nome del file)
Argomenti
Blob | E' un riferimento al campo BLOB il cui contenuto deve essere salvato su disco. |
Path | E' una stringa che contiene il percorso in cui salvare il file. Deve contenere un percorso assoluto sul server web. Il parametro è opzionale, se non specificato il blob viene salvato in una directory temporanea. |
File Name | Parametro opzionale che permette di specificare il nome del file da creare. Se non viene specificato, verrà creato un nome di file temporaneo. Se non si specifica un'estensione, verrà aggiunta l'estensione corrispondente al tipo di file contenuto nel campo BLOB. |
Valore di ritorno
Viene ritornata una stringa contenente il percorso completo del file salvato. Nelle applicazioni offline viene ritornato un url temporaneo.
Esempio di codice
// ************************************
// Fired when the section is formatting
// ************************************
event Categorie.CategorieBook.CategorieReport.Detail.BeforeFormatting()
{
// Eseguo un ciclo sulle categorie filtrando solamente alla categoria in
// stampa ora
for each row
{
select
CategorieImmagine := Immagine
from
Categorie // Master Table
where
Idcategoria = CategorieBook.IdcategoriaCategorie
//
record Categorie
string Immagine // Brief description of field content.
string FileName = "" //
//
// Salvo l'immagine sul disco, se ci sono riuscito la applico al book
FileName := SaveBlobFile(Categorie.Immagine, Path() +c C/ +c temp, ??)
if FileName <> Empty String
{
// Segno l'immagine salvata per essere cancellata al termine della
// sessione
EsempiGL.AddTempFile(FileName)
//
CategorieBook.CategorieReport.Immagine.SetImage(Mid(FileName,
Length(Path()) + C2, ??))
}
}
}
// Fired when the section is formatting
// ************************************
event Categorie.CategorieBook.CategorieReport.Detail.BeforeFormatting()
{
// Eseguo un ciclo sulle categorie filtrando solamente alla categoria in
// stampa ora
for each row
{
select
CategorieImmagine := Immagine
from
Categorie // Master Table
where
Idcategoria = CategorieBook.IdcategoriaCategorie
//
record Categorie
string Immagine // Brief description of field content.
string FileName = "" //
//
// Salvo l'immagine sul disco, se ci sono riuscito la applico al book
FileName := SaveBlobFile(Categorie.Immagine, Path() +c C/ +c temp, ??)
if FileName <> Empty String
{
// Segno l'immagine salvata per essere cancellata al termine della
// sessione
EsempiGL.AddTempFile(FileName)
//
CategorieBook.CategorieReport.Immagine.SetImage(Mid(FileName,
Length(Path()) + C2, ??))
}
}
}
- Il campo BLOB da passare dalla funzione deve essere recuperato tramite la query di un blocco For-Each, come mostrato nell'esempio seguente. E' infatti necessario un oggetto Record nel quale memorizzare il BLOB, che non è memorizzabile in una normale variabile applicativa.
Ultima modifica: 23/03/2021 / Validità: da 6.5.2680