PDA

Vollständige Version anzeigen : Reportgenerator


Atrus2711
27.08.2009, 09:33
Hi,

diese Reportgenerator erzeugt aus Benutzervorgaben Berichte.
Lauffähig ab Access 2000 aufwärts; für Access 2007 muss die DB an einem Ort liegen, der im Vertrauensstellungscenter als sicher gilt.

Grundidee:

Es gibt eine Tabelle oder Abfrage, die ausgewertet werden soll. In dieser Demo ist das die tblDaten, die die altbekannten Daten der Tabelle Bestellungen aus der Nordwind-DB zeigt (830 Sätze zum Spielen) zeigt.
Der Benutzer gibt per Maus vor:

Feldauswahl (= SELECT-Teil) aus den verfügbaren Feldern
Bedingungen (=WHERE-Teil)
Sortier- und Gruppiervorgaben (steuern die Gruppierung im Bericht). Hier kommen nur Felder in Frage, die in der Auswahl enthalten sind.

Für die Bedingungen steht ein komfortabler Generator zur Verfügung, der u.a.

je nach Feldtyp richtig formatierte Kriterien erzeugt
die im Feld vorkommenden Werte (Wertevorrat) zur Auswahl anbietet
Absolutvergleiche bei numerischen Feldern erlaubt
Vergleiche Feld gegen Wert oder Feld gegen anderes Feld erlaubt

Das Tool erzeugt einen neuen Bericht auf Basis einer wählbaren Vorlage (Hochformat oder Querformat) und gestaltet ihn nach den Vorgaben.
Die Quelldatentabelle wird in einer Tabelle beschrieben (Metadaten). Diese Tabelle (Selektionsattribute) nennt die Namen, Datentypen, die gewünschten Standardformate und die Angabe, ob das Feld summierbar sein soll oder nicht. Dadurch ist das Tool leicht auf andere Datentabellen umrüstbar.
Bei jedem verlangten Gruppenwechsel werden die als summierbar gekennzeichneten Felder summiert und die Sätze gezählt.
Die Layouts können gespeichert und abgerufen werden. Es werden nur die o.e. 3 Layoutkomponenten gespeichert; der Bericht wird immer neu designt. Eine Demo-Auswertung ist enthalten (siehe Kombi oben links).
Die Textfelder im Bericht werden so breit eingerichtet, dass auch der längste vorkommende formatierte Wert im Feld hineinpasst (unproportionale Schrift). Bei Feldern, deren Breite für die Feldüberschrift zu schmal ist, wird eine Mindestbreite eingehalten; die vollen Feldnamen (sowie weitere technische Angaben) stehen zur Doku im Berichtsfuß.
Die Reihenfolge der Felder in Auswahl und Gruppe/Sortierung kann durch Änderung der Indexnummern verändert werden. Sollen zwei Spalten die Positon austauschen, brauchen sie also nur die Nummern zu tauschen. Zur Erleichterung sind dabei auch Dezimalzahlen möglich (Position 1,5 = zwischen 1 und 2 etc).
Die Ausgabe erfolgt als Snapshot View-Datei, um Manipulationen am Berichtsentwurf zu verhindern.



Viel Spaß!

Anhang entfernt; aktuelle Version unter #6

Sascha Trowitzsch
27.08.2009, 10:53
Irgendwas scheint in diesem Thread von der Forensoftware aus schiefgegangen zu sein (Berechtigungsproblem).

Upload-Test
Hier der Anhang nochmal >

Anhang entfernt; aktuelle Version unter #6

Thomas_Ulo
27.08.2009, 13:55
cool schockt :)

greetz

Atrus2711
28.08.2009, 09:07
Hallo,

hier die Kurzanleitung zum Generator.

xStaer
28.08.2009, 10:06
Hi, schöne DB hast du da programmiert. Gefällt mir gut Danke

Atrus2711
29.08.2009, 10:14
Hallo,

schon gibts das erste Update. :p

Das Tool hat bisher nicht bei allen numerischen Feldern eine Suche anhand des Absolutwerts angeboten, sondern nur bei Long und Double. Das ist jetzt korrigiert.

tosoma
08.09.2009, 12:36
Hallo Martin,
Dein Tool scheint sehr interessant zu sein. Jedoch stürzt es bei mir (Access 2007) komplett ab. Nach dem Klicken auf "Anwendung starten" erscheint beigefügte Fehlermeldung (Bild1). Im Debug Modus (sh. Bild2), wenn ich aus dem Editor hinaus will, gibt es einen Programmabsturz.

Gruß,

Mathias

Atrus2711
08.09.2009, 12:47
Hi,
@tosoma:
öffne mal die beiden Berichtsvorlagen im Entwurf, blende das Sortier- und Gruppierfenster aus und speichere diese wieder. Dann sollte das gehen.

Grundsätzlich läuft das schon unter 2007 - ich nutze es selbst damit. ;)

tosoma
08.09.2009, 13:03
Gut, schon besser. Jetzt bleibt es hier (Bild1) hängen. Im Debg Modus sh. Bild2

Gruß

Mathias

Atrus2711
08.09.2009, 13:14
Die Ausgabe erfolgt als Snapshot View-Datei, um Manipulationen am Berichtsentwurf zu verhindern.
Der Snapshotviewer (Officebestandteil) ist dann bei dir wohl nicht installiert. Du kannst den Snapshot Viewer entweder

von der Office-Cd nachinstallieren (lassen)
oder von Microsoft runterladen (such mal da nach Snapshot Viewer)


Wenn du den Snapshot Viewer nicht nutzen willst oder darfst, dann ändere den Code so ab, dass der Bericht als Bericht ausgedruckt oder gezeigt wird (=da, wo er jetzt kracht; per Docmd.OpenReport). Der SnapshotViewer hat jedoch den Vorteil, dass der Berichtsentwurf da nicht zugänglich ist - er zeigt den Bericht "als Grafik", nicht als konstruiertes Objekt. Der fertig bestückte Access-Bericht soll nicht in Nutzerhände fallen, da er dort manipuliert werden könnte.

tosoma
08.09.2009, 13:49
jetzt klappt alles sehr gut, danke für die Hilfe.

g202e
02.08.2010, 12:25
Hi Atrus2711,
habe deinen Reportgenerator per Suche gefunden und möchte mich ganz herzlich bedanken.
Ist ein tolles Teil und genau das, was ich gesucht habe.:top:

tepeque
12.08.2010, 13:35
Hi Atrus2711,
ein schönes Ding, was Du da gezauberst hast.
Falls das Thema noch aktuell ist, hätte ich ebenfalls einen interessanten Reportselector (über Merkmalsausprägungen) zu bieten - eine recht einfache Lösung (die der Kunde so wollte) - läßt vielleicht mit Deiner Lösung kombinieren...
Grüße Thomas