Meta-Reports

Hallo miteinander!

Ich bräuchte Hilfe beim erstellen von Meta-Reports mit Papyrus Base (Meta-Report = ein Report, der mehrere normale Reports zu einem großen Report vereint). Ich habe bereits erfahren, dass ich den Befehl „REPORT(‚filename.pap‘)“ verwenden muss, aber nicht wie ich ihn verwende, und in der Hilfe steht leider nichts darüber.

Bisher habe ich es folgendermaßen versucht (siehe Minidatenbank.zip):

  1. Minidatenbank.pb öffnen, Report auswählen

  2. Folgende Einstellungen vornehmen:

    -Metareport.pap ist Standardreport

    -bei beiden Reports „komplette Datenbank“

    -Metareport: neues Report-Dokument erzeugen

    -Subreport: Einfügen in Dokument

  3. Metareport auswhählen und „Report erzeugen“

Daraufhin kommt eine Fehlermeldung „Sie müssen erst den Cursor in einen Text oder ein Textobjekt setzen“ gefolgt von einem internen Fehler. Wenn ich für den Subreport statt „Einfügen in Dokument“ „in die Zwischenablage“ auswähle, dann bekomme ich zwar keine Fehlermeldung, aber der erzeugte Report ist leer.

Wie muss ich vorgehen, damit es funktioniert?

Noch eine Frage zum gleichen Thema:

Wie muss ich vorgehen, wenn ich den gleichen Sub-Report mehrmals mit unterschiedlichen Suchvorgaben verwenden will?

Zum Beispiel: Ich habe eine Literaturdatenbank, und einen Subreport, der die Titel ausgibt. Damit will ich einen Meta-Report erstellen, der eine Liste der Zeitschriften-Titel sowie eine Liste der Buch-Titel enthält, beides erzeugt mit dem gleichen Sub-Report.

Vielen Dank,

Sebastian

Minidatenbank.zip (3.23 KB)

Du musst bei deinem Subreport die “Ausgabe des Reports” auf “Neues Reportformular erzeugen” stellen.

Deiner Fehlerbeschreibung nach versucht Papyrus - zu recht - erfolglos, den Report in ein - bis dato nicht existierendes - Dokumentfenster zu schreiben.

Mit einer Bedingung, z.B.

IF Autor=“Stephen King” THEN REPORT(‘Subreport.pap’)

kannst du auch Suchvorgaben benutzen.

Mehrere Suchvorgaben kannst du aneinanderreihen:

IF Autor=“Stephen King” THEN REPORT(‘Subreport.pap’) ELSE

IF Autor=“Andreas Eschbach” THEN REPORT(‘Subreport.pap’) ELSE

IF Autor=“C.J.Sansom” THEN REPORT(‘Subreport2.pap’) ENDIF

Wenn ich beim Subreport “Neues Reportformular” einstelle, dann hab ich nach Ausführen des Metareports insgesamt vier Dokumente: ein leeres, eins mit “Eintrag 1”, eins mit “Eintrag 2” und eins mit “Eintrag 3”. Muss ich vielleicht noch was anderes ändern?

Ich hab schon versucht, beim Metareport als Ausgabe “nur Formeln ausführen” zu nehmen, dann fällt zwar das leere Dokument weg, aber ich hab immer noch drei einzelne Dokumente mit Eintrag 1-3.

Im Report Subreport Folgende Einstellungen vornehmen:

Hinter dem Datenfeld “Titel” eine neue Zeile einfügen(sonst wird alles hintereinandergeschrieben)

Die erste Zeile anwählen (das Datenfeld), rechte Maustaste klicken und “Auswahlals Datensatzbereich auswählen” anklicken (wird jetzt grün)

wieder speichern.

Dann funktionierts

Ich hab die Supreport.pap editiert wie beschrieben, das Titel-Feld ist jetzt auch grün, aber das Resultat ist das gleiche wie vorher, 3-4 einzelne Dokumente. Einstellung war bei beiden “komplette Datenbank” und bei beiden “neues Report-Dokument erstellen” (hab noch mit paar Variationen rumprobiert, hat aber nicht geholfen).

Hattest du sonst noch was verändert bevor es bei dir geklappt hat? Muss ich vielleicht bei den Optionen von Base irgendwas verstellen?

Sorry, komm da jetzt auch nicht weiter. Klappt nur bei direktaufruf von Subreport.

Bei Aufruf von metareport klappt es nicht.

Da müsste man vielleicht dem subreport (dann doch mit neuem ) Dokument-Fenster vielleicht noch einen report für ein “in aktuelles Dokument einfügen” hinterherschicken.

Aber da fehlt mir zum probieren grad die Zeit, und es klingt auch nach " von hinten durch die Brust ins Auge", sprich umstöndlich.-

Ich hab mit der modifizierten subreport.pap nochmal ein bischen mit “Einfügen in Dokument” experimentiert, insbesondere mit einem leeren Ziel-Dokument. Der Lösung bin ich leider nicht näher gekommen.

Wenn die Funktionsweise des Programms an der Stelle nicht völlig inkonsistent ist, dann sollte das ganze ja auf jeden Fall so funktionieren, dass das “REPORT(‘xy.pap’)” Datenfeld im Meta-Report beim Erstellen des Meta-Reports durch Text ersetzt wird, der von dem angegebenen Subreport erstellt wird - quasi so, wie wenn man per Datenfeld direkt eine Information aus der Datenbank ausgibt, nur eben mit einem Zwischenschritt. Was der Subreport mit seinem Text machen soll, ist also eigentlich schon durch die REPORT(‘…’)-Funktion klipp und klar vorgegeben: er soll ihn bei dessen Erzeugung in den Meta-Report einfügen. Nur wie bringt man das Programm dazu?

Öh, nein. Ein Meta-Report ist eigentlich nicht dafür gedacht, dass in ihm selbst Daten von Sub-Reports landen.

Ein Meta-Report bleibt ggf. völlig leer und bewirkt nur, dass mehrere Reports auf einen Hieb ausgeführt werden.

Wenn ich also einem Kunden die Download-Info per Mail schicke, seinen Papyrus Schlüssel auch, die Rechnung als PDF auch, mir einen Schlüssel für den Eintrag in unseren Download-Bereich mache, ggf. bei Post-Lieferung eine gedruckte Rechnung für unseren Versand, und was-weiß-ich-noch, dann mache ich mir dafür jew. einzelne Reports und EINEN Meta-Report, der dann alle einzelnen Reports aufruft.

Je nach Einstellungen des Report-Dialogs, natürlich - da kann man alle möglichen Dinge tun.

So, Beschluss (sofern nicht noch Schwierigkeiten damit auftauchen, wir glauben aber nicht).

Wir bauen bald - wohl noch in die vor Weihnachten kommende Papyrus Autor V.4 - ein, dass man auch Papyrus-Dokumente in Reports importieren kann.

Aaah. Ich glaube, DAS haben eine ganze Menge Leute nicht gewusst. Mich eingeschlossen. Die Abstürze beim versuchten “Subreport in Metareport integrieren” hatte ich nämlich auch, aber dann nach einiger Zeit erfolglosen Probierens entnervt aufgegeben und die Funktion für mich als unbrauchbar deklariert.

Ach so, das ist dann quasi eine Art Makro, eine Liste mit Reports die dann alle auf einen Schlag, aber alle unabhängig voneinander ausgeführt werden? Dann war ich da wohl die ganze Zeit auf der falschen Fährte.

Aber wie gehe ich dann vor, wenn ich “komplexe” Reports erstellen will? Sagen wir z.B. ich hab eine Literaturdatenbank mit dutzenden Feldern und hunderten Datensätzen, und will die in einer lesbaren Form ausgeben - Erst kommt eine Liste mit Zeitschriften die bestimmte Vorgaben erfüllen, mit Überschrift und einer kurzen Erläuterung, dann das gleiche für Lexikon-Artikel, dann für Bücher, auch wieder jeweils mit verschiedenen Vorgaben, eventuell nochmal weiter unterteilt (vielleicht nach Primär-/Sekundärquellen oder Epochen), und das alles dann noch diverse male wiederholt für verschiedene Themengebiete.

Wie kriege ich es hin, dass ich das alles einmal einrichte, und danach immer wieder mit wenigen Klicks erstellen kann?

Auch ich benutze den REPORT-Befehl seit längerem in einem “Metareport”-bei mir heisst das (ansonsten leere Dokument) “Druckzentrum”. Je nach Zustand eines Feldes wird ein Report aufgerufen. Dieser kann auch wieder REPORT-Befehle enthalten.

Tip:

Seitdem habe ich in meiner Datenbank ein Feld “Druck”, in dem ich angebe, was ich gerne gedruckt haben möchte. Das geht mittlerweile sehr elegant. Bei Aufträgen steht das Feld auf “Auftrag” und so erhalte ich eine Auftragsbestätigung auf meinem Bondrucker.

Sollte ich eine Rechnung drucken müssen, stelle ich das Feld auf “Rechnung” und (ohne den Umweg über das Reportmenü) Papyrus prüft, ob der Auftrag schon eine Rechnungsnummer erhalten hat, wenn nicht, wird eine neue vergeben. Dann wird eine Rechnung gedruckt. steht das Feld auf “Versand”, wird ein Adressaufkleber gedruckt. usw.

In der Regel geschieht das dann (wie bei Ulli) alles auf einmal.

Bei all dem handelt es sich aber um in sich geschlossene Dokumente, die direkt ausgedruckt werden. Inwieweit man daraus ein einziges Dokument erzeugen kann, hab ich noch nicht probiert,

Kann man nicht einfach erstmal ein neues (leeres) Dokument erzeugen lassen, und dann den Subreport die Daten einfügen lassen? Verwirrend ist das Papyrus seine Report-Reihenfolge zum Teil von hinten nach vorne arbeitet, vielleicht hat es deswegen noch nicht geklappt?

mmmh, habs kurz probiert, erzeugt einen internen Fehler (Lesezugriff).

Kinners …

Ich sagte doch schon, wir bauen einen IMPORT(Dokument_x) Befehl ein, der ein anderes pap in einen Report einfügt …

Und das bald … :slight_smile:

Aaaah…

Also geht das was ich machen will bis dato garnicht? Ok, da hätt ich natürlich lange suchen können. Aber ist ja gut, wenn demnächst was eingebaut wird.

Wobei ich jetzt noch nicht so ganz verstanden hab, wie die Import-Funktion das Problem lösen soll - müsste man da nicht immer noch jeden einzelnen Teilreport erstmal von Hand erstellen? Das wäre dann ja fast der gleiche Aufwand, wie wenn man mit “Einfügen in Dokument” als Ausgabeart arbeiten würde, oder?

Papyrus 4 ist ja inzwischen erschienen, ist auch die IMPORT(xy.pap)-Funktion schon drinn?

Ich hab auch immer noch nicht verstanden, wie diese Funktion das Problem lösen soll. Ums auf den Punkt zu bringen: Kann ich mit Papyrus 4 einen umfassenden Report erstellen, wie in meinem Beispiel von neulich beschrieben?

Nein, haben wir zu Weihnachten nicht geschafft, das kam dies Jahr zu plötzlich :wink:

Kommt dieser Tage kostenlos eingebaut nach, innerhalb von Papyrus Autor 4 / Office 2011.