Ausgabe von Handel / Werten

Dieser Artikel beschreibt die Möglichkeiten der Druckausgabe von Werten aus dem Fenster Handel und Werte im Modul Sammlung.

Listengeneratorfunktion

Für die Druckausgabe von Werten (Ankaufswert, Versicherungswert etc.) aus dem Sammlungsmodul 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:

=<<Handel([Filter,...,Filter,][Paramter])>>

Es kann dabei als Filter ein oder mehrere Werttypen, durch Komma getrennt, angegeben werden. Bei der Ausgabe werden dann nur die Werteinträge mit den entsprechenden Werttypen 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 in der Form
  • 1: Ausgabe durch Seminkolon getrennt in der Form
  • 2: Ausgabe durch Zeilenumbruch getrennt in der Form
  • 3: Ausgabe durch Zeilenumbruch getrennt in der Form
  • 6: (nur MuseumPlus 5.0 und höher) Ausgabe durch Semikolon getrennt in der Form
  • 7: (nur MuseumPlus 5.0 und höher) Ausgabe durch Zeilenumbruch getrennt in der Form

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

Werte werden in MuseumPlus in einer separaten Tabelle gespeichert. Als Kennzeichen, welcher Wert zu welchem Objekt gehört, wird in dieser Tabelle zusätzlich die Objekt-ID (also Datensatznummer) des jeweiligen Objektes gespeichert. Dadurch können einem Sammlungsobjekt theoretisch beliebig viele Werte zugewiesen werden.

Verwendung der Funktion DLOOKUP

Die betreffende Tabelle heißt ObjHandel und kann im Listengenerator mit der VisualBasic-Funktion DLOOKUP folgendermaßen ausgelesen werden:

=DLOOKUP("OweWertF","ObjHandel","OweObjId=" & [ObjId])

Weitere Informationen zur Verwendung von DLOOKUP finden sich hier.

Die wichtigsten Feldnamen der Tabelle ObjHandel habe ich in der folgenden Liste zusammengestellt:

  • OweEreignisD: Datum von
  • OweEreignisBisD: Datum bis
  • OweAktionS: Geschäft / Werttyp
  • OwePreisF: Wert (Landeswährung)
  • OweWaehrungS: Währung (Landeswährung)
  • OwePreisFremdF: Wert (Fremdwährung)
  • OweWaehrungFremdS: Währung (Fremdwährung)
  • OweKommentarM: Kommentar

Kombination mehrerer Felder in der Ausgabe

Mehrere Felder können in der Ausgabe auch kombiniert werden:

=DLOOKUP("OweAktionS & ': ' & OwePreisF & ' ' & OweWaehrungS","ObjHandel","OweObjId=" & [ObjId])

Erzeugte Ausgabe: Versicherungswert: 2300 EUR.

Formatierte Zahlenangaben in der Ausgabe

Interessant besonders bei Zahlenwerten ist die Kombination der Funktionen DLOOKUP und FORMAT:

=DLOOKUP("OweAktionS & ': ' & FORMAT(OwePreisF,'#,##0.00') & ' ' & OweWaehrungS","ObjHandel","OweObjId=" & [ObjId])

Erzeugte Ausgabe: Versicherungswert: 2.300,00 EUR.

Auslesen eines bestimmten Werttyps

Die bisherigen Beispiele haben stets den ersten in der Datenbank gefundenen Wert eines bestimmten Objektes ausgegeben. Sinnvoller ist natürlich, bei der Abfrage festzulegen, welcher Werttyp ausgegeben werden soll. Das erledigt das folgende Beispiel:

=DLOOKUP("FORMAT(OwePreisF,'#,##0.00') & ' ' & OweWaehrungS","ObjHandel","OweObjId=" & [ObjId] & " AND OweAktionS='Versicherungswert'")

Erzeugte Ausgabe: 2.300,00 EUR.