Immagine Sfondo Report

un saluto,

magari e’ una domanda banale, in una struttura report, sarebbe possibile inserire un’immagine di
sfondo per poi poterci inserire dei controlli come il Label o Testo al di sopra dello sfondo stesso?

al momento sono riuscito a inserire un’immagine, ma mi funziona tipo una casella di controllo,
e quindi non mi fa portare le altre caselle al di sopra dell’immagine, esiste un altro metodo?

Turlututu chapeau pointu…

Ciao, a meno che non elabori in writer, temo che tu possa ottenere uno sfondo su cui elaborare, solo nel modulo Formulario

Only in English:
Start this macro from a button in a form.
st the name of the report in the macro.
Set the name for the image, which is positioned in the same path as the Base file.
Will set a background image for every page in the report and expands the image to the whole background.

SUB ReportStart
	DIM oDoc AS OBJECT, oRepDoc AS OBJECT, oReport AS OBJECT
	DIM stUrl_Start AS STRING, stUrl_Image AS STRING, stImage AS STRING, stPageName AS STRING
	DIM loPageName AS LONG
	DIM arPageStyles
	oDoc = ThisDatabaseDocument
	oRepDoc = oDoc.ReportDocuments
	oReport = oRepDoc.getByName("Report1").open
	stUrl_Start = oDoc.URL
	stUrl_Start = Left(stUrl_Start, Len(stUrl_Start) - (Len(convertToUrl(oDoc.Title)) - 8))
	stImage = "image.png"
	stUrl_Image = convertToUrl(stUrl_Start & stImage)
	arPageStyles = oReport.StyleFamilies.getByName("PageStyles").ElementNames
	stPageName = arPageStyles(0)
	loPageName = len(stPageName)
	FOR i = 0 TO UBound(arPageStyles)
		IF Left(arPageStyles(i), loPageName) = stPageName THEN
			oReport.StyleFamilies.getByName("PageStyles").getByName(arPageStyles(i)).BackGraphicURL = stUrl_Image		
			oReport.StyleFamilies.getByName("PageStyles").getByName(arPageStyles(i)).FillBitmapStretch = True
		END IF
	NEXT
END SUB

Corrected “loPageName”
Corrected, so database name could also contain spaces.

Ho corretto un errore qui:

DIM loPage Name AS LONG >>> DIM loPageName AS LONG

La macro viene esguita, si apre Report1 ma senza immagine.

See stImage: This image is in the same folder as the *.odb-file.

Sì confermo, è nella stessa cartella.

Try to get the URL after it is defined - could also be at the end of the procedure.

msgbox stUrl_Image

Post content of the messagebox

file:///Users/myname/Desktop/cartella1/foglio%2image.png
Sono un utente Mac, può essere quello il problema?

First try without space in image name.
Then set IF… and END IF as comment. Might be I guessed the wrong style name for Italy.
Added convertToUrl in the original post. Might be it helps.
Here the image will be shown in the background without any problems…

Non sto usando spazi nel nome immagine.
foglio di rapporto con sfondo.odb (17.5 KB)

Ho risolto, era il nome del file database il problema: non deve avere spazi.
Ora la tua macro funziona, spero sia gradita anche da @CappellaioMatto.
Grazie

Corrected it in original post: File name of database could now include spaces.

Report è uno strumento limitato e pieno di bug che non sono mai stati risolti da quando è stato rilasciato la prima volta come plug-in e poi incorporato in LibreOffice.
Se può esserti utile puoi colorare lo sfondo impostandolo in Formato > Pagina.

@nicholas59 @charlie.it grazie dei suggerimenti

speravo in una mia non conoscenza del software

avevo optato a Base per stampare dei PDF in modo semi-automatico,
quindi a questo punto credo, che mi tocca ritornare al PDF editabile :sweat_smile:

un saluto e alla prossima :wave:

foglio di rapporto con sfondo.odb (17.1 KB)

Mai darsi per disperso… specialmente quando si scrivono idiozie sui muri.
Ti saluto

Il tuo report non è fatto con LibreOffice, ma con la vecchia funzione “nativa” di OpenOffice che, in realtà, è un foglio di Writer.

Ok Charlie, lontana da me qualsiasi pretesa di prevaricazione. Ho eseguito con quello che Canonical mi ha messo a disposizione. Grazie comunque per la precisazione. Con osservanza.

@nicholas59 grazie per il suggerimento, inizialmente avevo inteso che dovevo utilizzare direttamente Writer, mi era sfuggito il fatto che creando un report col Wizard in pratica ti apre Writer :+1:

come appena menzionato, sono riuscito a replicare il risultato di @nicholas59 utilizzando il Wizard di Base per creare nuovi Report, non so se questa sia una vecchia funzione di OpenOffice ma spero che sia la procedura corretta?


comunque giocandoci un pochino, diciamo che sembra una matriosca:
in Base avvio il Wizard per i Report, e mi creo un Report con le impostazioni standard
e mi ritrovo con un Report che quando lo apro viene aperto con Writer

poi ho provato a modificare lo sfondo di questo Report aperto con Writer
e sono andato nel menu’ File > Templates > EditTemplate
dove posso scegliere quale immagine dargli come sfondo
ma con questa procedura poi mi apre il programma Draw

poi da questo punto non riesco piu’ ad andare avanti
perche’ se provo a salvare non mi salva i cambiamenti
in Writer del Report, mi salva un file indipendente di Draw

non so per nulla cosa sto facendo :sweat_smile:
i passaggi sono questi oppure sono fuori strada?


cerco di riepilogare i punti: apro Base, creo una Tabella, poi Wizard Report e lo collego alla Tabella,
ora clicco Edit sul Report creato e mi apre Writer, come faccio a modificare lo sfondo e salvare?

Non può funzionare. Il wizard di LibreOffice non è lo stesso wizard di OpenOffice usato da @nicolas59.