Ausgabe von Multimedia-Datensätzen

Dieser Artikel beschreibt wie Sie Angaben zu verknüpften Bildern und Dokumenten für die Druckausgabe verwenden können. 

Listengeneratorfunktion

Für die Druckausgabe von Multimedia-Einträgen stellt MuseumPlus im Listengenerator eine Listengeneratorfunktion bereit, mit deren Hilfe diese Werte aus der Datenbank ausgelesen und formatiert ausgegeben werden können. Die Funktion wird an Stelle eines Feldnamens in der Listendefinition hinterlegt und hat folgendes Format:

= <<Multimedia([Filter,...,Filter,][Parameter])>>

Es können dabei als Filter ein oder mehrere Multimedia-Typen (Bild, Office, Video, Website), durch Komma getrennt, angegeben werden. Bei der Ausgabe werden dann nur die Einträge mit den entsprechenden Typen berücksichtigt.

Als Parameter kann ein numerischer Wert zwischen 0 und 3 angegeben werden, welche die Formatierung der Ausgabe steuern. Wird dieser Parameter weggelassen, benutzt MuseumPlus automatisch den Wert 0.

  • 0: Ausgabe durch Seminkolon getrennt, kurze Ausgabeform
  • 1: Ausgabe durch Seminkolon getrennt, kurze Ausgabeform
  • 2: Ausgabe durch Zeilenumbruch getrennt, lange Ausgabeform
  • 3: Ausgabe durch Zeilenumbruch getrennt, lange Ausgabeform

Direkter Datenbankzugriff

Ein Nachteil bei der Verwendung der Listengeneratorfunktion ist die fehlende Einflussmöglichkeit auf die exakte Auswahl und Gestaltung der auszugebenden Informationen. Es gibt allerdings noch die Möglichkeit, direkt auf die Datenbank zuzugreifen. Dazu nutzt man die Möglichkeit des Listengenerators in MuseumPlus, VisualBasic-Befehle auszuführen. Was man allerdings benötigt ist etwas Hintergrundwissen über die Datenbankstruktur von MuseumPlus.

Hintergrundwissen

Die Speicherung von Multimedia-Informationen erfolgt in MuseumPlus für alle Module zentral in einer Tabelle. Um einen Multimedia-Eintrag einem bestimmten Datensatz in einem bestimmten Modul zuordnen zu können, sind zwei Kennzeichen notwendig: Eines enthält die eindeutige Nummer des Moduls, das zweite die eindeutige Nummer des Datensatzes. Die Nummer des Datensatzes lässt sich meist sehr einfach ermitteln - beispielsweise im Modul Sammlung handelt es sich um die Objekt-ID, die stets oben rechts in der Erfassungsmaske angezeigt wird. Etwas schwieriger ist die Ermittlung der eindeutigen Modulnummer, daher habe ich für die wichtigsten Modul-IDs in der folgenden Übersicht zusammengestellt:

  • 21: Sammlung
  • 30: Künstler / Beteiligte
  • 39: Literatur
  • 36: Standortverwaltung
  • 31: Restaurierung
  • 40: Ausstellung
  • 22: Adressen
  • 71: Thesaurus

Die Modul-IDs können übrigens seit MuseumPlus 4.5 im Menü Administration -> Einstellung (Felder/Suche/Allgemein), und hier in der Registerkarte Steuerung eingesehen werden.

Verwendung der Funktion DLOOKUP

Nach dieser kurzen Einführung in die Hintergründe nun der Blick direkt in die Datenbank: Die betreffende Tabelle für Multimedia-Einträge heißt passenderweise Multimedia und kann im Listengenerator mit der VisualBasic-Funktion DLOOKUP folgendermaßen ausgelesen werden:

=DLOOKUP("MulDateiS","Multimedia","MulDstIndexL=21 AND MulRefId=" & [ObjId])

Dieses Beispiel liest den Dateinamen des ersten gefundenen Multimediaeintrags eines bestimmten Objektes aus dem Modul Sammlung aus. Weitere Informationen zur Verwendung von DLOOKUP finden sich hier.

Für die Auswahl der gewünschten Informationen aus der Tabelle Multimedia benötigt man die sogenannten generischen Feldnamen - also den internen, von der Datenbank verwendeten Namen - der Felder, welche die Informationen enthalten. Die wichtigsten generischen Feldnamen der Tabelle Multimedia habe ich in der folgenden Liste zusammengestellt:

  • MulDstIndexL: eindeutige Modulnummer (siehe Übersicht)
  • MulRefId: eindeutige Datensatznummer des zugehörigen Datensatzes
  • MulTypS: Typ (Bild, Office, Video, Website)
  • MulBemerkungS: Titel (des Multimedia-Eintrags)
  • MulPfadS: Dateipfad des Multimedia-Eintrags
  • MulDateiS: Dateiname des Multimedia-Eintrags
  • MulExtentS: Dateierweiterung des Multimedia-Eintrags

Alle anderen Feldbezeichnungen können mit Hilfe einer MuseumPlus-Funktionalität herausgefunden werden: Positioniert man die Einfügemarke in einem Feld und betätigt danach die Tastenkombintion >Strg<->I<, werden einige Feldinformationen angezeigt, unter anderem der generische Feldname

Einige Beispiele zum Auslesen von Multimedia-Einträgen

Beispiel 1: Auslesen eines definierten Bildes

Das erste Beispiel liest den kompletten Dateinamen inklusive Pfad eines Multimedia-Eintrags im Sammlungsmodul aus, bei dem das Feld Bezeichnung (MulBemerkungS) mit dem Wert "Vorschaubild" gefüllt ist:

=DLOOKUP("MulPfadS & '\' & MulDateiS & '.' & MulExtentS","Multimedia","MulDstIndexL=21 AND MulBemerkungS='Vorschaubild' AND MulRefId=" & [ObjId])

Wichtig ist an dieser Stelle noch einmal der Hinweis: Existieren zu dem entsprechenden Sammlungsobjekt mehrere Multimedia-Einträge mit der Kennzeichnung "Vorschaubild", wird durch die oben gezeigte Funktion nur der erste gefundene Datensatz ausgegeben. Welcher das dann jeweils ist, kann kaum vorhergesagt werden.

Beispiel 2: Verwendung von Platzhalterbildern

Das zweite Beispiel geht noch einen Schritt weiter, in dem es die DLOOKUP-Funktion mit einer weiteren Funktion kombiniert. Soll beispielsweise bei der Druckausgabe für alle Objekte, die keinen entsprechenden Multimedia-Eintrag besitzen, eine Art Platzhalterbild ausgegeben werden, erledigt das die folgende Konstruktion:

=NZ(DLOOKUP("MulPfadS & '\' & MulDateiS & '.' & MulExtentS","Multimedia","MulDstIndexL=21 AND MulBemerkungS='Vorschaubild' AND MulRefId=" & [ObjId]),"M:\Multimedia\Dummy.jpg")

Die zusätzlich verwendete Funktion heißt NZ und erwartet zwei Parameter. Der erste Parameter wird ausgegeben, wenn er einen Wert ungleich NULL hat. Die Angabe NULL steht dabei nicht für die Zahl 0, sondern für einen leeren Wert - quasi ein Synonym für nichts. Hat der erste Parameter allerdings den Wert NULL, wird einfach der zweite Parameter ausgegeben. Existiert also im angegebenen Beispiel kein Datensatz mit den angegebenen Bedingungen, liefert die Funktion DLOOKUP den Wert NULL an die Funktion NZ zurück, welche dann einfach den zweiten Parameter ausgibt, in dem ein fester Dateipfad als Text steht.