Seite 1 von 1

Im Bericht Bild mit Pfad einfügen

Verfasst: So, 23.11.2014 20:41
von Blechdose
Hallo zusammen,

ich habe eine Datenbank, die u.a. die Pfade zu Bildern enthält.
Nun möchte ich in einem Bericht nicht die Pfade stehen haben sondern wieder die Bilder sehen / ausdrucken.
Ich bekomme es nicht hin! Geht das überhaupt?
Wenn ich ein "Grafic" in den Bericht einfüge, finde ich keine Möglichkeit diesem Steuerelement mitzuteilen, dass im Feld "Bild" der Pfad zum anzuzeigenden Bild zu finden ist.
Evtl. hat einer von Euch ja eine Idee oder sogar eine Lösung.

Dank und Gruß
Lars
alias Blechdose

Re: Im Bericht Bild mit Pfad einfügen

Verfasst: So, 23.11.2014 21:28
von RobertG
Hallo Lars,

was für eine Office-Version hast Du denn? Ich habe das gerade in einer Beispieldatenbank für das handbuch noch einmal getestet. Da wird sehr wohl das Bild aus einem Pfad heraus geladen. Das Bericht-Steuerelement heißt "Grafik", in den Eigenschaften → Daten habe ich das entsprechende Feld aus meiner Tabelle ausgewählt, das so einen Pfad enthält. Funktioniert bei *.jpg, *.png und lässt eine *.pdf-Datei, die ich da auch abgelegt habe, mit einer Fehlergrafik erscheinen.

Gruß

Robert

Re: Im Bericht Bild mit Pfad einfügen

Verfasst: So, 23.11.2014 22:26
von Blechdose
Hallo Robert,

ich hab die Version 4.1.4.2.
Das Steuerelement habe ich im Bericht über einen Button eingefügt der ein weißes Blatt (mit Eselsohr oben links) darauf sich gegenseitig überlagernd einen gelben Kreis, ein rotes Viereck und ein blaues Dreieck zeigt und den Ballontip "Grafic" zeigt.
In den Eigenschaften dazu habe ich auf dem Register "Daten" unter "Datenfeld-Typ" "Feld oder Formel" und unter "Datenfeld" "Bild" eingetragen.
Öffne ich dann diesen Bericht kommt die Fehlermeldung
"Das Dokument 'xyz' konnte nicht geöffnet werden.
Illegal charakter in opaque part at index 2:
F:\MEC\Test.jpg"

Wenn ich in der zugehöriogen Tabelle den Pfad löschen, kommt der Fehler beim zweiten Datensatz.

Evtl. stimmt also was mit der Pfadangabe nicht, auch wenn diese für die Anzeige der Bilder in einem Formular funktioniert.

Gruß Lars

Re: Im Bericht Bild mit Pfad einfügen

Verfasst: Mo, 24.11.2014 09:58
von RobertG
Hallo Lars,

wie gibst Du den Pfad ein? Bei mir (unter Linux) ist das kein Problem im Formular und im Report-Builder. Wäre natürlich blöd, wenn für den Report-Builder unter Windows andere Pfadangaben nötig wären als für das Formular. Unter Linux ist weder ein Backslash noch eine Eingabe der Partition mit einem Doppelpunkt üblich.

Gruß

Robert

Re: Im Bericht Bild mit Pfad einfügen

Verfasst: Mo, 24.11.2014 21:14
von Blechdose
Hallo Robert,

ich gebe den Pfad per Dateiauswahlwerkzeug in einem Formular ein. Dieses trägt den ausgewählten Pfad mit folgendem Makro in das entsprechende Datenbankfeld ein:

Code: Alles auswählen

Sub PfadSpeichern (event)
    sPath =  event.source.Text
    oForm =  event.source.model.parent
    oForm.getByName("Dateiname").text = sPath
    oForm.getByName("Dateiname").commit(true)
End Sub
In der Tabellen-Ansicht stellt sich der Pfad dann wie folgt dar:
F:\MEC\Bild1.jpg
Mit einem solchen Pfad funktioniert die Darstellung der Bilder in einem Bericht nicht (wie zuvor beschrieben)!
Mit folgendem Code wird im Formular das Bild angezeigt:

Code: Alles auswählen

Sub Get_Image_Name
	Dim ImageName_Ctrl as Object
	Dim sImageName as String
	on error goto weiter
	GlobalScope.BasicLibraries.LoadLibrary("Tools")
	oDoc = thisComponent
	DB_URL =convertfromurl(oDoc.Parent.URL)
	DB_Path = DirectoryNameoutofPath(DB_URL,"\")
	oForm = oDoc.drawpage.forms.getbyindex(0)
	ImageName_Ctrl = oForm.getByName("Dateiname")
	ImageName_Ctrl.commit(true)
	sImageName = ImageName_Ctrl.Text
	Image_Ctrl = oForm.getByName("Bild")
	imagePath = converttourl(sImageName)
	if not FileExists(imagePath) then
	imagePath = converttourl(DB_Path & "\" & "NoImage" & ".jpg")
	end if
	Image_Ctrl.ImageURL = imagePath
	Image_Ctrl.commit(true)
	weiter:	
End Sub
Ändere ich in der Tabelle den Pfad zu
Bild1.jpg
dann funktioniert das Erstellen des Berichts, die Anzeige im Formular nicht mehr!

Gruß Lars
alias Blechdose

Re: Im Bericht Bild mit Pfad einfügen

Verfasst: Mo, 24.11.2014 22:03
von RobertG
Hallo Lars,

hast Du einen bestimmten Grund, warum Du das alles mit Makros machst? Ich habe hier das grafische Kontrollfeld einfach mit einem Textfeld in der Datenbankdatei verbunden. Starte ich das Formular und mache einen Doppelklick auf das grafische Kontrollfeld, so kann ich eine Grafik einfügen. Es wird aber nur der relative Pfad gespeichert. Das funktioniert einwandfrei - ohne Makro.

Makros habe ich in die Beispieldatenbank nur eingebaut, um das Bild z.B. in einem externen Editor zu betrachten oder die Bildaufnahme zusammen mit einen Tabellenkontrollfeld auch möglich zu machen. Sonst gehört die Aufnahme aber zum Standard von Base.

Noch ein kleiner Hinweis: Du nimmst die URL mit einem Makro auf, ohne sie in eine für Base gültige URL zu überführen. Die gültige URL erstellst Du erst, wenn Du den Pfad ausliest - mit ConvertToUrl machst Du aus so etas wie "C:\Bild\Test.jpg" ein file:///c:/Bild/Test.jpg. Du solltest, wenn Du schon den absoluten Pfad mit einem Makro speichern willst, doch tunlichst die URL speichern, die auch direkt gelesen werden kann - sowohl vom Formular als auch vom Bericht. Dann kannst Du Dir das Umwandeln und all den Ärger sparen.

Gruß

Robert

Re: AW: Im Bericht Bild mit Pfad einfügen

Verfasst: Mo, 24.11.2014 22:42
von Blechdose
Hallo Robert,

Ich habe keinen "speziellen" Grund es genauso zu machen. Als am letzten Wochenende etwas freie Zeit und die Idee so eine Lernkarten-Datenbank zu erstellen aufeinander trafen, waren das halt die ersten Versuche, die ich mir aus mehreren Forenbeiträge zusammen basteln könnte. Deshalb bin ich Dir sehr dankbar, dass Du Dir die Mühe machst diese meine Stümpereien zu hinterfragen. Wenn das ohne Makros geht soll mir das nur Recht sein. Werde mir jetzt mal RTFM hinter die Ohren schreiben und 'Dein' Basehandbuch samt Beispielen mal Durchlesen, bevor ich hier weiter rumstümper. :)

Gruß Lars
Alias Blechdose

Re: Im Bericht Bild mit Pfad einfügen

Verfasst: Mo, 24.11.2014 22:47
von RobertG
Hallo Lars,

das müsste eigentlich hier drin enthalten sein:
https://wiki.documentfoundation.org/ima ... ng_V43.zip

Gruß

Robert