Bilder von Pfad in Formular laden?

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

StephanJohn
Beiträge: 6
Registriert: So, 15.04.2018 19:32

Bilder von Pfad in Formular laden?

Beitrag von StephanJohn »

Hi,

bin noch relativ frisch in OpenOffice-Base und könnte gut einen Tipp gebrauchen:

In einem Formular, in dem jeweils ein Datensatz angezeigt wird, möchte ich (in ein Grafisches Kontrollfeld?) automatisch ein Bild laden, dass sich in einem Unterverzeichnis ".\bilder\" befindet und dessen Dateiname sich aus der ID des Datensatzes ableitet, z.B. "ID_1.jpg".

Wie gehe ich da am besten vor? Muss ich ein Makro schreiben, dass das "Grafik"-Feld des "Grafischen Kontrollfelds" befüllt? (Aber wie generiere ich da den Dateinamen? Und wo muss ich das Makro eintragen, damit es bei Datensatzwechsel ausgeführt wird?)

Für Hinweise dankt
Stephan.
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Bilder von Pfad in Formular laden?

Beitrag von RobertG »

Hallo Stephan,

für das Bild solltest Du in einer Tabelle ein Textfeld haben. In diesem Textfeld wird über das Grafische Kontrollfeld der Pfad bespeichert und bei der Anzeige beim Datenwechsel auch wieder ausgelesen.

Du kannst natürlich auch, wenn sich das Ganze wirklich komplett aus der ID des Datensatzes ergibt, auch mit einer Abfrage arbeiten:

Code: Alles auswählen

SELECT "Tabelle".*, 'bilder/ID_'||"ID"||'.jpg' AS "Bild" FROM "Tabelle"
Dann verknüpfst Du einfach das Feld "Bild" mit Deinem grafischen Kontrollfeld und nimmst die Abfrage als Basis für Dein Formular. Die Abfrage ist genauso editierbar, wie die Tabelle, da sie alle Felder der Tabelle, auch das Schlüsselfeld, enthält.
Übrigens: Pfadangaben mit Frontslash, nicht mit Backslash eingeben. Das gilt von Base aus auch für Windows-Umgebungen.

Gruß

Robert
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Bilder von Pfad in Formular laden?

Beitrag von RobertG »

Hallo Stephan,

den Code jetzt mit der Erweiterung garantierte Vierstelligkeit:

Code: Alles auswählen

SELECT "Tabelle".*, 'bilder/ID_'||RIGHT('000'||"ID",4)||'.jpg' AS "Bild" FROM "Tabelle"
Es wird ein Text aus der ID gemacht und 3 Nullen davorgeschrieben. Von diesem Text werden durch die Funktion RIGHT immer die 4 letzten Zeichen genommen.

Gruß

Robert
StephanJohn
Beiträge: 6
Registriert: So, 15.04.2018 19:32

Re: Bilder von Pfad in Formular laden?

Beitrag von StephanJohn »

Hallo Robert,

sehr cool - besten Dank!!

Gruß,
Stephan.
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Bilder von Pfad in Formular laden?

Beitrag von RobertG »

Hallo Jürgen,

wenn Du nur den Link zu einem Bild speichern willst, also das Bild nicht später in der Datenbank liegen soll (und darum ging es in diesem Thread), dann muss das Feld in der Tabelle ein Textfeld sein. Das Feld im Formular muss ein grafisches Kontrollfeld sein. Mit einem Klick auf das grafische Kontrollfeld öffnest Du den Zugang zu dem Pfad für das Bild. Das Bild wird anschließend in dem Formular angezeigt. Der Pfad des Bildes wird in der Tabelle gespeichert. Dort also VARCHAR und nicht LONGVARBINARY.

Gruß

Robert

Vorausgehender Beitrag eines offensichtlichen Trolls wurde gelöscht (Rocko, Mod.)
Gesperrt