Filmdatenbank mit PapyrusBase

Hallo miteinander!

Ich bin gerade dabei, mir den Umgang mit PapyrusBase beizubringen, und als Test-Projekt möchte ich eine Film-Sammlungs-Datenbank erstellen. Im Großen und Ganzen funktioniert alles sehr gut, aber bei ein paar Feinheiten hab ich noch Probleme:

1. Das Problemfeld “Genre”

Eine Filmdatenbank braucht natürlich ein Feld “Genre”. Ich hätte mir das folgendermaßen vorgestellt: Im Eingabeformular gibt es einen Bereich “Genre”, der eine Liste an möglichen Genres enthält. Der User markiert alle zutreffenden Genres per Checkbox - zum Beispiel für Lord of the Rings die Genres “Fantasy” und “Romanverfilmung”. Daraufhin wird in das Datenfeld “Genre” der Wert “Fantasy; Romanverfilmung” eingetragen.

Kann ich das irgendwie so umsetzen? Wenn nicht, was wäre die eleganteste Alternative?

2. “RegionCode” im Eingabeformular ausgrauen?

Ich hab ein Datenfeld “Medium”, in das man per radio button “VHS”, “DVD” oder “Blu-ray” eintragen kann, sowie ein Feld “RegionCode”, das ebendiesen als Zahlenwert enthalten soll. Nun hat aber natürlich eine VHS-Kasette gar keinen Region Code. Gibt es eine Möglichkeit, im Eingabeformular das Feld “RegionCode” zu deaktivieren (auszugrauen), wenn der User als Medium VHS gewählt hat?

3. Erstellen des “Gesamtreports” automatisieren?

Der “Gesamtreport” für meine Filmdatenbank soll folgendermaßen aussehen: Zuerst kommt eine alphabetisch sortierte Liste der kompletten Sammlung, danach das ganze nochmal geordnet nach Medium (VHS, DVD, Blu-ray), dann nach Genre, und zuletzt nochmal die komplette Sammlung sortiert nach Jahr.

Das ganze zu erstellen ist mir bereits gelungen, mit Hilfe mehrerer Report-Vorlagen und der Option “Einfügen in Dokument” bei “Ausgabe des Reports”.

Allerdings ist es etwas fummelig und zeitaufwendig, das ganze von Hand zusammenzuklicken. Kann ich das automatisieren? Gibt es vielleicht eine Möglichkeit, in einem Dokument Stellen zu markieren, an denen dann später bestimmte Report-Vorlagen eingefügt werden sollen?

Vielen Dank für eure Hilfe!

Sebastian

Von mir nur zu Problemfeld 1:

M. W. ist in diesem Fall das einschlägige Verfahren, eine Batterie von Checkboxen anzulegen, entsprechend der Anzahl von Genres. Jedes Genre bekommt also ein eigenes Feld vom Typ Checkbox. Im Eingabeformular kann diese Liste von Genres dann natürlich als ein zusammengehöriger “Bereich”, wie du schreibst, dargestellt werden.

Besten Gruß

@Waldfried: Im Zweifelsfall würd ich das so machen, das wäre aber schon eher eine Notlösung. Das größte Problem dabei wäre, dass meine Datenbank dadurch in der Tabellenansicht total unübersichtlich würde: Obwohl “Genre” vom Konzept her nur eine Kategorie unter 5-10 anderen ist, würde sie mehr Datenfelder einnehmen als alle anderen Kategorien zusammen.

Kann mir noch jemand Tipps zu den anderen Punkten geben, oder kennt jemand einen Trick für Problem 1?

Die von Waldfried vorgeschlagene Lösung erscheint mir sinnvoll und einfach umsetzbar. Dass dabei viele Tabellenfelder benötigt werden, würde ich als nicht so wichtig ansehen.

Natürlich gibt es datenbanktechnisch eine andere, wesentlich flexiblere Lösung in Form sogenannter n:m-Relationen. Allerdings kann man mit Papyrus hierfür keine wirklich brauchbare Bedienoberfläche realisieren, sodass dieser Weg nicht praktikabel erscheint.

Das geht nicht.

Ein Gesamtreport müsste sich mit der Funktion REPORT() realisieren lassen. Im Gesamtreport legst Du einfach für jeden Teilreport ein Funktionsfeld an, das die entsprechende Reportvorlage aufruft. Die Beschreibung der REPORT-Funktion scheint in der aktuellen Autor-Hilfe nicht drin zu sein, in einer älteren History.pap habe ich sie aber noch gefunden:

@glucose: Diese “Report(Reportpfad)” Funktion scheint genau das zu sein, was ich suche. Jetzt muss ich allerdings nochmal ganz doof fragen: Wie leg ich ein Funktionsfeld an?

Im Endeffekt sieht das dann so aus, dass ich eine Reportvorlage für den Gesamtreport habe, in dem dann z.B. die Überschrift “Filme auf VHS” steht, und darunter kommt dann das Funktionsfeld “Report(VHS.pap)”, das auf die Reportvorlage VHS.pap verweist, durch die alle VHS-Filme aufgelistet werden. In dem Report-Dialog meiner Filmsammlungs-Datenbank sind alle Reportvorlagen aufgelistet, die ich für den Gesamtreport verwende, direkt gestartet wird aber nur die Gesamtreport-Vorlage. Hab ich das soweit richtig verstanden?

Zu Problem 1 (Checkboxen) nochmal:

Gewiss, die Zahl der Felder und damit Tabellenspalten vermehrt sich, wenn jedes Feld nur zwei mögliche Werte annehmen kann. Aber sie können in der Tabellendarstellung entsprechend schmal eingestellt werden.

Alternativ - und ich selbst nutze diese Alternative auch oft - sehe ich nur die Möglichkeit, tatsächlich ein Feld “Genre” zu kreieren und dort die zutreffenden Werte als Freitext einzutragen, als key-word-Liste. Zur leichteren Eingabe lassen sich nat. Abk. verwenden.

Freilich wird dieses eine Feld in der Tabellendarstellung dann wiederum von seiner Füllung her unübersichtlich, wenn mehrere Genres eingetragen sind.

Übrigens: Die Combo-Box zur Auswahl vorgegebener Werte eignet sich leider nicht, weil ich nur einen Wert auswählen kann, die restlichen Werte müssen wieder von Hand hinzugefügt werden. Wünschenswert wäre hier eine “erweiterte” Combo-Box, bei der die Auswahl eines (weiteren) vorgegebenen Wertes dem Feldinhalt hinzugefügt wird, anstatt diesen zu überschreiben.

Genauso wie ein Datenfeld. Einfügen > Datenfeld … und dann im Dialog “Datenfeld” in die rechte Textbox “Report(Vorlagenname.pap)” reinschreiben.

Ich denke ja. Da ich die Report-Funktion selbst noch kaum gebraucht habe, kommt es auf einen Versuch an.

@Waldfried: Ich denk mal ich würd dann wirklich eher viele einzelne Datenfelder erstellen, denn bei einer Eingabe von Hand wäre mir das Risiko, dass die Tabelle z.B. durch Tippfehler verfälscht wird, zu groß. Eine automatisierte Eingabe wär da natürlich schön, das wäre dann so ähnlich wie das (nicht vorhandene) Feature, nach dem ich ursprünglich gesucht habe.

@glucose: Ich hab das mit der Report-Funktion gerade ausprobiert, bisher aber leider noch erfolglos. Was auf jeden Fall schonmal funktioniert, das ist, dass aus dem Gesamtreport heraus die anderen “Teilreports” aufgerufen werden, allerdings klappt es noch nicht, den Text aus den Teilreports in den Gesamtreport einzufügen.

Wenn ich bei den Teilreports “Einfügen in Dokument” als Ausgabe-Art einstelle, dann bekomm ich beim Starten des Gesamtreports die Fehlermeldung “Sie müssen erst den Cursor in den Text oder in ein Textobjekt setzen”, gefolgt von einem “Internen Fehler”. Bei einer anderen Ausgabeart bekomme ich keine Fehlermeldung, aber ich krieg auch den Text nicht in meinen Gesamtreport. Brauch ich vielleicht noch ein weiteres Funktionsfeld, das quasi eine bestimmte Cursor-Position simuliert?