Diagramme in gegliederten Bericht, och menno

09/07/2009 - 14:39 von Thomas Schultze | Report spam
Hallo,

ich habe mal wieder Zeit, mich des Diagrammproblems von letztens
anzunehmen. Lassen wir aber die Spezialtàten mal sein und fangen ganz
unten an, ich habe da nàmlich noch Probleme "weiter unten".

In der Datenbank gibt es Maschinen, diese haben Schichten, und wàhrend
dieser Schichten kommen Teile rein. Für diese habe ich eine
Ereignistabelle, die etwa so aussieht:

Maschine, Schicht, Teilenr., Zeit
1, 3, 42, 12:38
Auf Maschine 1 wird am Mittwoch gegen Mittag Teil 42 bearbeitet.

Nun habe ich mir einen Bericht gebaut, der für jede Maschine ein
Diagramm zeichnet: pro Schicht eine Sàule, die Höhe wird bestimmt von
der Anzahl der Teile (Anzahl der Ereignisse aus der Ereignistabelle).

Ich habe das im Diagramm-Assistenten zusammengestellt und gesehen,
dass er als Datenquelle eine Kreuztabellenabfrage druntergelegt hat.
Wenn ich jetzt weiß, dass jede Schicht eine eigene ID hat, macht er
mir für jede Schicht eine eigene Spalte in der Kreuztabelle.
Nun hatte ich gehört, es gibt bis zu 255 Spalten in der Kreuztabelle.
Mit einer Maschine und fünf Schichten pro Woche làuft mir das Ding
also nach einem Jahr voll, oder? Mit zwei, drei,... Maschinen dann
entsprechend eher.

In einem zweiten Schritt habe ich dann den Bericht erweitert:
Datengrundlage sind nun Maschinen und Schichten, ich bekomme also für
jede Maschine einen Gruppenkopf und -fuß mit dem Bericht von eben und
je einen Detailbereich pro Schicht. Dort füge ich nun ein zweites
Diagramm ein, das mir die Teiletypen pro Schicht zeigen soll (auch
wieder Sàule).

Im Bericht sind die Maschinen-ID und die Schicht-ID vorhanden. Wenn
ich nun also das Diagramm verknüpfe, müsste ich eigentlich die Schicht-
ID nehmen können, die in Berichts-Datengrundlage und Diagramm
vorkommt. Aber Pustekuchen: mein Diagramm bleibt leer. Es funktioniert
dann, wenn ich das Diagramm über die Maschinen-ID verknüpfe.

Nun habe ich das mit Testdaten gemacht, er generiert mit also ca. 80
Seiten mit Diagrammen in den Gruppenfüßen pro Maschine, und mit Teilen
pro Maschinenschicht. Nur dauert es irre lang, ich kann hier
minutenlang Dàumchen drehen. Als Datengrundlage für die Diagramme
existieren knapp 400 Datensàtze für das "àußere" (im Gruppenfuß, pro
Maschine, mit der Kreuztabellenabfrage) und 1800 Datensàtze für das
"innere" Diagramm (im Detailbereich, pro Maschinenschicht, als normale
Abfrage).

Ich nehme mal an, dass es so langsam ist, weil er für jede
Maschinenschicht die komplette "innere" Abfrage durchrattert (mit den
1800 Datensàtzen) und sich dann die zwanzig raussucht, die wirklich
ins Diagramm kommen. Dasselbe natürlich auch für die Testmaschinen,
also noch zwanzigmal die Kreuztabelle mit 400 Datensàtzen, von denen
dann auch immer nur fünf rausgesucht werden für das Diagramm.

Meine Fragen/Probleme dazu:
Die Kreuztabelle, wenn die wirklich nur 255 Spalten packt, muss man
das besser lösen, sonst làuft die voll. Stimmt das, oder kann die
beliebig breit werden?
Alle Diagramme sind mit dem Bericht über den "kleinsten gemeinsamen
Nenner" Maschinen-ID verknüpft, wobei für das "innere" Diagramm die
Schicht-ID besser wàre. Kann man das besser machen, ohne dass das
Diagramm einfach weiß bleibt?
Kriegt man die Datengrundlagen der Diagramme irgendwie reduziert? Ich
habe ja den Eindruck, dass er erst "alles komplett" aufbaut und dann
rauskürzt.

Ich hoffe ihr habt Tipps für mich. Ich versuche mich nun schon ein
paar Tage, habe aber bei Google nicht wirklich etwas gefunden und bin
mal wieder hoffnungslos.

Viele Grüße,
Thomas
 

Lesen sie die antworten

#1 Karl Donaubauer
09/07/2009 - 21:34 | Warnen spam
Thomas Schultze wrote:
ich habe mal wieder Zeit, mich des Diagrammproblems von letztens
anzunehmen. Lassen wir aber die Spezialtàten mal sein und fangen ganz
unten an, ich habe da nàmlich noch Probleme "weiter unten".

In der Datenbank gibt es Maschinen, diese haben Schichten, und wàhrend
dieser Schichten kommen Teile rein. Für diese habe ich eine
Ereignistabelle, die etwa so aussieht:

Maschine, Schicht, Teilenr., Zeit
1, 3, 42, 12:38
Auf Maschine 1 wird am Mittwoch gegen Mittag Teil 42 bearbeitet.

Nun habe ich mir einen Bericht gebaut, der für jede Maschine ein
Diagramm zeichnet: pro Schicht eine Sàule, die Höhe wird bestimmt von
der Anzahl der Teile (Anzahl der Ereignisse aus der Ereignistabelle).

Ich habe das im Diagramm-Assistenten zusammengestellt und gesehen,
dass er als Datenquelle eine Kreuztabellenabfrage druntergelegt hat.
Wenn ich jetzt weiß, dass jede Schicht eine eigene ID hat, macht er
mir für jede Schicht eine eigene Spalte in der Kreuztabelle.
Nun hatte ich gehört, es gibt bis zu 255 Spalten in der Kreuztabelle.
Mit einer Maschine und fünf Schichten pro Woche làuft mir das Ding
also nach einem Jahr voll, oder? Mit zwei, drei,... Maschinen dann
entsprechend eher.



Erfahrungsgemàß ist schon um einiges vor den theoretischen 255
Spalten Schluss. Das ist für ein Diagramm aber egal, denn du
musst dich nicht an die Vorgaben des Assistenten halten.

Falls ich deinen Darstellungswunsch richtig verstehe, dann
schmeiß erst mal die Kreuztabellenabfrage weg. D.h. lösche den
SQL-Text in der Eigenschaft Datensatzherkunft des Diagrammes.

Dann klicke auf die Editorschaltflàche rechts neben der Eigenschaft
und bastle dir auf Basis deiner Tabelle eine Auswahlabfrage mt den
Feldern Schicht, TeileNr und Maschine (in dieser Reihenfolge).
Schalte die Funktionen ein und Gruppiere nach Schicht und Maschine,
bei der TeileNr stellst du Anzahl ein.

Die Eigenschaft "Spaltenanzahl" des Diagrammes stellst du auf 2.
Macht das Diagramm, was du darstellen willst?
Der Witz daran ist, dass die Schichten jetzt Datensàtze sind statt
Spalten und damit eher unbegrenzt.

In einem zweiten Schritt habe ich dann den Bericht erweitert:
Datengrundlage sind nun Maschinen und Schichten, ich bekomme also für
jede Maschine einen Gruppenkopf und -fuß mit dem Bericht von eben und
je einen Detailbereich pro Schicht. Dort füge ich nun ein zweites
Diagramm ein, das mir die Teiletypen pro Schicht zeigen soll (auch
wieder Sàule).
...



Hier bin ich nicht sicher, was du darstellen willst.
Teiletypen heißt was in Datenbanksprache? Wieder eine Anzahl
der TeileNr? Ohne Maschinenbezug?

Jedenfalls kannst du im Prinzip wieder so vorgehen, dass du
dir eine entsprechende Abfrage bastelst und testest, was
das Diagramm daraus macht.

Deine danach geschilderten Performanceprobleme sollten
sich ebenfalls durch das Umgestalten der Abfragen erledigen.

HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com

Ähnliche fragen