WklChart
WklChart zeichnet auf einem Access-Formular ein Diagramm einer Tabelle, einer Abfrage oder
einer SQL-Anweisung: eine Messreihe über dem Datum mit ihrer unteren und oberen Grenze, Anzahlen
je Monat als Säulen, Werte je Kategorie als Balken. Wie ein Unterformular folgt es über
LinkMasterFields und LinkChildFields dem aktuellen Datensatz des Formulars. Es zeichnet mit
einem eigenen Renderer; das Bild ist daher in der Formularansicht, der Entwurfsansicht und der
Seitenansicht dasselbe.
Seit Release 1.60.0; in Berichten und mit PrintStyle seit 1.62.0.
Erste Schritte
Häufige Aufgaben
- Die Wandstärke der aktuellen Messstelle über dem Datum anzeigen:
RecordSource= die Messungen,XField= das Datum,YFields= die Wandstärke,LinkMasterFields= der Schlüssel auf dem Formular,LinkChildFields= der Schlüssel in den Messungen. - Minimum und Maximum einzeichnen:
AddReference SollMin, , "Soll-min", wskBadinForm_Current. - Ermitteln, wann das Minimum erreicht wird, wenn der Trend anhält:
TrendReaches(0, SollMin). - Fällige Prüfungen je Monat zählen:
ChartType = wctColumn,Aggregate = wcaCount,Period = wcyMonth. - Bänder, eine Reihe je Messstelle aus langen Daten, den Trend ablesen: Grenzwerte und einen Trend in einem Diagramm anzeigen.
- Ein Diagramm je Datensatz eines Berichts, lesbar auch auf einem Graustufenausdruck: Messanzeigen und Diagramme in einem Bericht drucken.
Schaubild
+- WklChart ------------------------------------------------------+ | TML-1 Wandstärke | 1 | 11,0 | | | 10,5 |- - - - - - - - - - - - - - - - - - - - - - - - - Soll-max| 2 | 10,0 | *-* | | 9,5 | *-*-* . | 3 | 9,0 | *-*-*-* . . | 4 | 8,5 |- - - - - - - - - - - - - - - - - - - - - - - - - Soll-min| | +----------+----------+----------+----------+ | | 2026 2027 2028 2029 | 5 +-----------------------------------------------------------------+
| Bereich | Bedeutung |
|---|---|
| 1 | Title |
| 2 | Eine Grenzlinie aus AddReference, in der Farbe ihrer Art, mit ihrer Beschriftung |
| 3 | Die Reihe als Linie mit Markierungen; ein fehlender Wert unterbricht die Linie |
| 4 | Der lineare Trend (ShowTrend), gestrichelt, über den Punkten, auf denen er beruht |
| 5 | Die Zeitachse mit Kalenderschritten (Jahre, Monate, Tage), passend zur Breite gewählt |
Wichtige Funktionen
- Datenbindung an eine Tabelle, Abfrage oder SQL-Anweisung, mit einer Reihe je Y-Feld („breite“ Daten) oder einer Reihe je Wert eines Reihenfelds („lange“ Daten).
- Folgt dem Formular wie ein Unterformular:
LinkMasterFieldsundLinkChildFields; ein Wechsel des Master-Datensatzes liest die Daten neu. - Vier Arten: Linie, Punkt, Säule und Balken; Säulen und Balken nebeneinander oder gestapelt.
- Zusammenfassen je X-Wert oder je Tag, Woche, Monat, Quartal oder Jahr: Summe, Mittelwert, Anzahl, Minimum, Maximum.
- Grenzen und Bänder mit Beschriftungen, in den Statusfarben der anderen Komponenten.
- Linearer Trend je Reihe mit seiner Steigung und dem Datum, an dem eine Grenze erreicht wird.
- Lange Reihen werden für das Bild verdichtet, und das Diagramm weist darauf hin; Trend und Achse verwenden alle Werte.
- Für alle lesbar: Reihenfarben, die auch bei Farbsehschwäche unterscheidbar bleiben und einen Kontrast von 3:1 einhalten, eine Markierungsform je Reihe, die Farbschemas der anderen Komponenten.
Grundkonzepte
Was X ist, bestimmt die Achse. XKind = wcxDate ergibt eine Zeitachse mit
Kalenderschritten; wcxNumber eine Zahlenachse mit runden Schritten (das 1-, 2-, 2,5- oder 5-Fache
einer Zehnerpotenz); wcxCategory einen Platz je unterschiedlichem Text in der Reihenfolge seines
ersten Auftretens.
Ein fehlender Wert wird nicht erfunden. Mit Missing = wcvGap (Standardwert) unterbricht
eine Zeile ohne Y-Wert die Linie. wcvConnect lässt den Punkt aus, wcvZero zählt ihn als 0.
Eine Zeile ohne lesbaren X-Wert lässt sich nicht platzieren; sie wird in RowsWithoutX
gezählt, statt das Diagramm scheitern zu lassen.
Fehler werden angezeigt, nicht ausgelöst. Das Diagramm liest seine Daten selbstständig
(beim Öffnen des Formulars, beim Wechsel des Master-Datensatzes), außerhalb jedes VBA-Aufrufs,
der einen Fehler abfangen könnte. Ein Lesefehler wird im Diagramm gezeichnet, in LastError
festgehalten und von DataLoaded gemeldet.
Die Wertachse umfasst die Grenzen. Die Y-Achse schließt immer jede Grenzlinie und jedes Band ein; eine Grenze außerhalb der Messwerte wird daher nie abgeschnitten. Säulen und Balken beginnen bei 0.
Ein verdichtetes Bild weist darauf hin. Eine Linie mit mehr Punkten, als das Bild zeigen kann (mehr als 2.000), wird mit dem Verfahren Largest-Triangle-Three-Buckets (Steinarsson, 2013) verdichtet. Es behält den ersten und den letzten Punkt sowie die Spitzen; das Diagramm schreibt dann „für die Anzeige verdichtet“ in seine Ecke.
Schnittstelle
| Member | Bedeutung |
|---|---|
RecordSource | Tabelle, Abfrage oder SQL-Anweisung. |
XField, YFields, SeriesField | Das X-Feld; die Y-Felder, durch Semikolon getrennt (je eine Reihe); oder ein Y-Feld und ein Feld, dessen Werte die Reihen benennen. |
XKind | wcxNumber, wcxDate (Standardwert), wcxCategory. |
ChartType, Grouping | wctLine (Standardwert), wctPoint, wctColumn, wctBar; wcgGrouped (Standardwert), wcgStacked. |
Aggregate, Period | wcaNone (Standardwert), wcaSum, wcaAverage, wcaCount, wcaMin, wcaMax; wcyNone (Standardwert), wcyDay, wcyWeek (ISO, ab Montag), wcyMonth, wcyQuarter, wcyYear. Eine Gruppe ohne jeden Wert ist eine Lücke, nicht 0; wcaCount braucht kein Y-Feld. |
Missing | wcvGap (Standardwert), wcvConnect, wcvZero. |
Title, YFormat | Titel über dem Diagramm; .NET-Zahlenformat der Y-Beschriftungen, zum Beispiel 0.0. |
ShowLegend, ShowTrend, ShowMarkers | Legende bei mehr als einer Reihe (standardmäßig ein); Trendlinie je Reihe; Markierungen auf Linien bis 200 Punkte (standardmäßig ein). |
LinkMasterFields, LinkChildFields | Felder oder Steuerelemente des Formulars und die passenden Felder der Daten, durch Semikolon getrennt. |
Requery | Liest die Daten neu. |
AddReference(FromValue, [ToValue], [Caption], [Kind]) | Fügt eine Grenzlinie hinzu oder ein Band von FromValue bis ToValue; Kind ist eine Statusart wsk*. Gibt ihre Nummer zurück. |
ClearReferences | Entfernt alle Grenzlinien und Bänder. |
SeriesCount, SeriesName(i), SeriesVisible(i) | Die Reihen ab 0; ein Klick auf einen Legendeneintrag schaltet SeriesVisible um. |
TrendSlope(i) | Änderung von Y je X-Einheit (auf einer Datumsachse je Tag); Null bei weniger als zwei Punkten. |
TrendReaches(i, Value) | Der X-Wert (auf einer Datumsachse ein Datum), an dem der Trend Value erreicht; Null, wenn er ihn nie erreicht. |
RowsWithoutX, LastError | Schreibgeschützt. |
ColorScheme | Wie bei den anderen Komponenten. |
PrintStyle | wpsAutomatic (Standardwert): Reihen, Grenzen und Bänder beim Drucken und in der Seitenansicht zusätzlich durch Muster unterschieden; wpsColor: nur Farbe; wpsPatterns: Muster auch auf dem Bildschirm. |
| Ereignis | Wann |
|---|---|
PointClick(Series, X, Y) | Ein Klick auf einen Punkt, eine Säule oder einen Balken; X als Datum, Kategorietext oder Zahl. |
DataLoaded(Points) | Die Daten wurden gelesen; auch nach einem Fehler (siehe LastError). |
Administration
Fehlerbehebung
Bisher keine Einträge.
Für Entwickler
Verwandte Themen
- WklGauge: ein Wert vor seinen Bereichen, wo ein Diagramm eine Reihe zeigt.