infra:NET Expert
 
×
[infraChart]
Die Sektion ist nur für Container-Objekte zulässig. Der Container wird dadurch komplett mit einem Chart bestehend aus ein oder mehreren Diagrammen gefüllt. Die zu visualisierenden Daten werden aus einer SQL-Datenbank gelesen.
Beispielhaft werden über den Menüpunkt „Charts“ im infra-Explorer und über ein Dashboard im Hauptfenster (siehe INI-Eintrag Navigation=DASHMAIN,DASHMAIN in der Sektion [Layout] der Datei CHARTS.INI) Charts mit Auswertungen auf Basis der replizierten infra:NET SQL-Datenbank zur Verfügung gestellt.
Voraussetzung für die Chart-Integration ist die Aktivierung des Plugins „infraChart“ in der INI-Sektion [PLUGIN].
Siehe auch Beschreibung der Chartsektion  in der INI-Datei.
Grundsätzlich können Charts an jeder beliebigen Stelle in infra:NET eingebaut werden, auch in bereits vorhandene Dialoge.
Alle infra:NET Charts können über das Kontextmenü gedruckt werden.

ConnectionString = Verbindungszeichenfolge
Hier kann die Verbindungszeichenfolge für den Aufbau der Datenverbindung zur SQL-Datenbank, die die zu visualisierenden Daten enthält, angegeben werden. Statt der Verbindungszeichenfolge kann auch ein infra-Makroausdruck z.B. zum Verweis auf einen INI-Eintrag angegeben werden. Dadurch kann die Verbindung flexibel angepasst werden, ohne CGW- oder SDF-Änderung.
Fehlt diese Angabe, wird in der INI-Sektion [infraChart] nach einem Eintrag „ConnectionString=…“ gesucht.
Ist auch der nicht vorhanden, wird die universelle Verbindungsangabe StdClientConnectionString des infra:NET Servers für die Verbindung zur SQL-Datenbank verwendet. Dies ist die empfohlene Vorgehensweise.
Series = INI-Sektion, INI-Schlüssel
Durch diese Angabe wird auf einen INI-Eintrag verwiesen, der die Serienauflistung der darzustellenden Diagramme enthält:
[INI-Sektion]
INI-Schlüssel=Serie1,Serie2,…
Serie1=Serienbeschreibung
Serie2=Serienbeschreibung
Alternativ können die zu zeichnenden Diagrammserien auch direkt angegeben werden (siehe folgender Eintrag „Series.x“).
Series.x = Serienbeschreibung
Mit „x“ als beliebige Zeichenfolge oder laufende Nummer können beliebig viele Diagrammserien direkt im CGW angegeben werden. Ein Verweis auf eine Serienauflistung in der INI-Datei (siehe oben) ist allerdings flexibler und erlaubt die Anpassung der Diagrammdarstellung ohne CGW- oder SDF-Änderung.
Um eine Serienbeschreibung mit all ihren Parametern in der INI-Datei übersichtlicher zu gestalten, kann auch eine mehrzeilige Notation verwendet werden. Dazu muss die Serienbeschreibung mit geschweiften Klammern umschlossen werden. Innerhalb der Klammern kann dann nach jedem Komma eine neue Zeile begonnen werden (siehe Beispiel in der Charts.ini im INI-Verzeichnis).

Aufbau einer Serienbeschreibung:
”Title”,Area,Legend,Type,SQL-Query,Settings
Title 
Angezeigter Titel der Datenserie (wird zum Beispiel in der Legende angezeigt).
Area
Eine frei definierbare ID für einen gemeinsamen Grafikbereich (Area).
In einer Area können mehrere Serien miteinander kombiniert werden.
Dazu muss in jeder Serienbeschreibung, die miteinander in einer Grafik kombiniert werden sollen, die gleiche Area angegeben werden.
Sollen Serien nicht in einer Grafik kombiniert werden, sondern neben und untereinander getrennt voneinander dargestellt werden,
müssen in den Serien unterschiedliche IDs als Area angegeben werden.
Die Angabe kann auch entfallen, wenn alle Serien in einer Area kombiniert werden sollen.
Legend 
Eine frei wählbare ID für eine gemeinsame Legende. Serienbeschreibungen (insbesondere Farbzuordnungen)
können in gemeinsamen Legenden oder getrennt voneinander in unterschiedlichen Legenden angezeigt werden.
Für alle Serien, deren Beschreibung in einer gemeinsamen Legende angezeigt werden sollen, muss die gleiche ID angegeben werden.
Die Angabe kann auch entfallen, wenn alle Serien in einer gemeinsamen Legende aufgeführt werden sollen.
Type 
Bestimmt in welcher Form (Charttyp) eine Datenserie angezeigt werden soll. Folgende Charttypen stehen zur Verfügung:
Point, FastPoint, Bubble, Line, Spline, StepLine, FastLine, Bar, StackedBar, StackedBar100, Column, StackedColumn,
StackedColumn100, Area, SplineArea, StackedArea, StackedArea100, Pie, Doughnut, Stock, Candlestick, Range, SplineRange,
RangeBar, RangeColumn, Radar, Polar, ErrorBar, BoxPlot, Renko, ThreeLineBreak, Kagi, PointAndFigure, Funnel, Pyramid
SQL-Query
Verweis auf die SQL-Abfrage, die die Daten für die anzuzeigende Datenserie liefert.
Der Verweis besteht entweder nur aus einem Schlüsselwort, dann wird dieser Schlüssel in der Sektion [infraChart] vermutet,
oder aus einem Sektionsnamen und einem Schlüsselwort in runden Klammern.
Die bei dem angegebenen Schlüsselwort hinterlegte SQL-Abfrage muss eine Sammlung von X/Y-Paaren liefern. X-Werte (horizontale Achse)
müssen mit dem Spaltennamen „XValue“ und zugehörige Y-Werte (vertikale Achse) mit dem Spaltennamen „YValue“ geliefert werden.
Für Range-Charttypen wie z.B. „Range“, „SplineRange“, „RangeBar“, „RangeColumn“, die beispielsweise für
Termin- und Belegungsdiagramme genutzt werden können, muss ein zweiter Y-Wert als Spalte „YValue2“ geliefert werden.
Innerhalb der SQL-Abfrage kann mit $Macros[…] auf infra-Makros und somit auf Puffer und Globalvariablen zugegriffen werden.
Settings 
Hier können weitere Einstellungen für die darzustellende Datenserie folgen.
Jede Einstellung muss durch Kommata von der nächsten Einstellung getrennt werden.
Die derzeit unterstützten Einstellungsmöglichkeiten werden im Folgenden beschrieben.
Hinweis:
Durch die Vielzahl von Einstellungsmöglichkeiten (Settings) ergibt sich recht schnell eine unübersichtliche Sammlung von Parametern, die sich unter Umständen mit jeder neu erstellten Grafik wiederholt. Das lässt sich vereinfachen, indem mit Hilfe des Makros „INI(…)“ alle Einstellungen, die Sie standardmäßig für einen bestimmten Chart-Typ verwenden, aus einem gemeinsamen INI-Eintrag (und/oder einer eigenen INI-Sektion) gelesen werden und nur die im jeweiligen speziellen Anwendungsfall abweichenden Einstellungen übersteuern. Beispiele dazu finden Sie in der Datei Charts.ini, die im INI-Verzeichnis mitgeliefert wird.

Einstellungsmöglichkeiten (Settings)
Für die Darstellung einer Datenserie können weitere Einstellungen vorgenommen werden. Bei der Kombination mehrerer Datenserien in einer Area, „gewinnen“ die Einstellungen der letzten Datenserie, wenn widersprüchliche Angaben bei den einzelnen Datenserien gemacht wurden.
Interval=x 
Legt die Schrittweite der Datenpunkte bezüglich der X-Achse fest. „1“ bedeutet, jeder X-Wert entspricht einer Angabe auf der X-Achse.
IntervalType=Typ
Basis für die bei Interval angegebene Schrittweite der X-Achse (Default „Auto“):
Days, Hours, Milliseconds, Minutes, Months, Number, Seconds, Weeks, Years
CenterMark
Die Mitte der Grafik soll durch einen grünen Balken markiert werden.
Color=Farbname
Farbe der Datenpunkte/ der Linie/ des Segmentes abhängig vom Diagrammtyp (siehe „vordefinierte Farbnamen“). “).
Durch Voranstellen eines „*“ wird die Farbe transparent gezeichnet.
BorderWidth=x
Strichstärke einer Liniengrafik bzw. Randstärke bei anderen Diagrammtypen.
BorderColor=Farbname
Rahmenfarbe abhängig vom Diagrammtyp (siehe „vordefinierte Farbnamen“).
BorderDashStyle=Typ
Art der zu zeichnenden Linie zum Beispiel im Liniendiagramm:
Dot
Punktraster
Dash
Linienraster
DashDot
Strich-Punkt-Raster
DashDotDot
Strich-Punkt-Punkt-Raster
Solid
durchgezogene Linie
Legend.Docking=Typ
Seite, auf der die Legende zur Serie angezeigt werden soll:
Top, Bottom, Left, Right
Legend.Style=Typ
Darstellung der Legende als
Table
Tabelle
Row
Zeilen
Column
Spalten
Legend.Alignment=Typ 
Anordnung der Legende in Bezug auf die Grafik:
Far
weit entfernt
Center
in der Grafik
Near
 an der Grafik
Legend.Title=Text  
Legendenüberschrift
Legend.TitleFont=Font
Schriftart und Größe der Legendenüberschrift.
Legend.TitleColor=Farbe
Farbe der Legendenüberschrift (siehe unten)
XAxis.Format=Format
Anzeigeformat für die Labels der X-Achse:
Bei Zahlen gilt:
C
Standard-Währung mit Währungssymbol
Cx
Standard-Währung mit Währungssymbol und x Nachkommastellen
D
ganze Zahl
Dx
ganze Zahl mit genau x Stellen (führende Nullen)
E
wissenschaftliche Darstellung mit Exponent
Ex
wissenschaftliche Darstellung mit x Nachkommastellen
F
Festkommadarstellung
Fx
Festkommadarstellung mit x Nachkommastellen
N
Zahl mit Tausender Gruppierung
Nx
Zahl mit Tausender Gruppierung und x Nachkommastellen
P
Prozentdarstellung
Px
Prozentdarstellung mit x Nachkommastellen
X
Hexadezimal
Xx
Hexadezimal mit genau x Ziffern
Bei Datum/Zeit gilt:
d
kurzes Datum (tt.mm.jjjj)
D
langes Datum (t.mmmm jjjj)
f
langes Datum mit Zeit (t.mmmm jjjj hh:mm)
f
langes Datum mit Zeit+Sekunden (t.mmmm jjjj hh:mm:ss)
g
kurzes Datum mit Zeit (tt.mm.jjjj hh:mm)
G
kurzes Datum mit Zeit+Sekunden (tt.mm.jjjj hh:mm:ss)
m
Monatstag (tt.mmmm)
t
kurze Zeit (hh:mm)
T
lange Zeit (hh:mm:ss)
y
Jahr-Monat (mmmm jjjj)
XAxis2
Zusätzliche X-Achse für diese Serie anzeigen (i.d.R. an der oberen Seite).
XAxis2.Format=Format
Anzeigeformat für die Labels der zweiten X-Achse (siehe XAxis.Format).
XGrid=Typ 
Gibt den Rastertyp für die X-Achse an:
None
kein Raster
Dot =
Punktraster
Dash
Linienraster
DashDot
Strich-Punkt-Raster
DashDotDot
Strich-Punkt-Punkt-Raster
YAxis.Format=Format
Anzeigeformat für die Labels der X-Achse (siehe XAxis.Format)
YAxis2
Zusätzliche Y-Achse für diese Serie anzeigen (i.d.R. auf der rechten Seite).
YAxis2.Format=Format
Anzeigeformat für die Labels der zweiten Y-Achse (siehe XAxis.Format).
YGrid=Typ 
Gibt den Rastertyp für die Y-Achse an (siehe XGrid).
Value.Format=Format
Anzeigeformat für die Beschriftung der Datenpunkte innerhalb des Diagramms (siehe XAxis.Format).
Wirkt nur in Verbindung mit „ShowValues“.
Value.Color=Farbname 
Farbe der Beschriftung der Datenpunkte innerhalb des Diagramms (Farbnamen siehe unten). Wirkt nur in Verbindung mit „ShowValues“.
Value.Percent  
Die Beschriftung der Datenpunkte soll als Prozentangabe erfolgen (z.B. bei Torten oder Donuts). Der Legendentext zeigt dann standardmäßig den zugehörigen absoluten Wert an. Wirkt nur in Verbindung mit „ShowValues“.
ShowValues 
Schaltet die Beschriftung der Datenpunkte im Diagramm ein.
Refresh=Sekunden
Automatische Aktualisierung der Grafik im angegebenen Zeitintervall.
Transparency=x 
Durchsichtigkeit der angezeigten Flächen/Segmente (0-255) – je niedriger der Wert desto durchsichtiger.
StripLine
Bereiche auf der X-Achse sollen durch zusätzliche Streifen hervorgehoben oder voneinander abgesetzt werden.
StripLine.Width=x   
Gibt die Breite eines Markierungs-Streifens in Intervallen auf der X-Achse an. „1“ bedeutet dabei, der Streifen soll die Breite genau eines Intervalls haben.
StripLine.Offset=x
Gibt den Abstand des ersten Markierungs-Streifens in Intervallen ausgehend vom Startintervall an.
StripLine.Interval=x 
Bestimmt, jedes wievielte Intervall durch einen Streifen hervorgehoben werden soll.
Area.3D
Aktiviert die 3D-Darstellung für die Area, in der die aktuelle Serie angezeigt werden soll.
Area.Inclination=x
Gibt den Neigungswinkel der Grafik gegenüber dem Horizont an (bei 3D-Darstellung)
Area.Rotation=x
Bestimmt den Rotationswinkel der Grafik um den vertikalen Mittelpunkt (bei 3D-Darstellung)
Area.Light=x
Bestimmt die Art des Licht-Effekts bei 3D-Darstellung:
Realistic
realistisch
Simplistic
vereinfacht
None
kein Licht-Effekt
Area.Perspective=x
Gibt den Grad der perspektivischen Verzerrung der Grafik an (bei 3D-Darstellung)
Area.X=x
Position des Diagramms innerhalb des gesamten Chartcontrols in Prozent ausgehend vom linken Rand. Bei 0 wird ggf. die linke Umrandung des Chartcontrols überschrieben.
Area.Y=x 
Position des Diagramms innerhalb des gesamten Chartcontrols in Prozent ausgehend vom oberen Rand.
Bei 0 wird ggf. die obere Umrandung des Chartcontrols überschrieben.
Area.Width=x
Breite des Diagramms (ohne Legende) innerhalb des gesamten Chartcontrols in Prozent bezogen auf die gesamte Breite des Chartcontrols.
Bei zu großen Werten wird ggf. die rechte Umrandung des Chartcontrols überschrieben.
Area.Height=x 
Höhe des Diagramms (ohne Legende) innerhalb des gesamten Chartcontrols in Prozent bezogen auf die gesamte Höhe des Charcontrols.
Bei zu großen Werten wird ggf. die untere Umrandung des Chartcontrols überschrieben.
ChartBorder.Width=x
Strichstärke der Umrandung des gesamten Chartcontrols.
ChartBorder.Color=x
Farbe des Umrandungsstrichs (Farbnamen siehe unten).
ChartBorder.Color1=x
1.Farbe des Umrandungsbereichs.
ChartBorder.Color2=x
2.Farbe des Umrandungsbereichs (bei Farbverläufen).
ChartBorder.Gradient=x
Farbverlauf des Umrandungsbereichs:
Center
mittig
DiagonalLert
diagonal von links
DiagonalRight
diagonal von rechts
Horizontal Center
horizontal mittig
LeftRight
nach links und rechts
TopBottom
nach oben und unten
Vertical Center
vertikal mittig
ChartBorder.PageColor 
Hintergrundfarbe außerhalb der Umrandung. „infralightblue“ liefert die Hintergrundfarbe des infra Hauptdialogs – ansonsten Farbname siehe unten.
ChartBorder.Skin=x
Umrandungsstil:
Emboss, Raised, Sunken, FrameThin1, FrameThin2, FrameThin3, FrameThin4, FrameThin5, FrameThin6, FrameTitle1, FrameTitle2, FrameTitle3, FrameTitle4, FrameTitle5, FrameTitle6, FrameTitle7, FrameTitle8
Chart.Title=Text  
Titel des gesamten Chartbereichs.
Chart.TitleFont=Font 
Schriftart und Größe des Chart-Titels.
Chart.TitleColor=Farbe 
Farbname der Farbe des Chart-Titels.
Angaben für Torten und Donuts (Diagrammtyp Pie und Doughnut):
PieDrawingStyle=Typ
Darstellungsart (nur 2D-Darstellung):
SoftEdge
Abgerundeter Rand
Concave
nach innen gewölbt
PieLabelStyle=Typ 
Beschriftung der Segmente:
Disabled
ohne Beschriftung
Inside
innerhalb der Segmente
Outside
Außerhalb der Segmente (mit Linien verbunden )
DoughnutRadius=x
Radius des Doughnut-Rings in Prozent (0-99) – je größer der Wert, desto kleiner das Loch in der Mitte.
Exploded=Wert 
Hebt ein Segment der Grafik hervor. Wert gibt dabei entweder die Position innerhalb der angezeigten Ergebnisliste (=Legende) gezählt ab 0 oder in Anführungszeichen einen Text an, der innerhalb des XValues des hervorzuhebenden Datensegments vorkommen muss.
Vordefinierte Farbnamen
AliceBlue
AntiqueWhite
Aqua
Aquamarine
Azure
Beige
Bisque
Black
BlanchedAlmond
Blue
BlueViolet
Brown
BurlyWood
CadetBlue
Chartreuse
Chocolate
Coral
CornflowerBlue
Cornsilk
Crimson
Cyan
DarkBlue
DarkCyan
DarkGoldenrod
DarkGray
DarkGreen
DarkKhaki
DarkMagenta
DarkOliveGreen
DarkOrange
DarkOrchid
DarkRed
DarkSalmon
DarkSeaGreen
DarkSlateBlue
 
DarkSlateGray
DarkTurquoise
DarkViolet
DeepPink
DeepSkyBlue
DimGray
DodgerBlue
Firebrick
FloralWhite
ForestGreen
Fuchsia
Gainsboro
GhostWhite
Gold
Goldenrod
Gray
Green
GreenYellow
Honeydew
HotPink
IndianRed
Indigo
Ivory
Khaki
Lavender
LavenderBlush
LawnGreen
LemonChiffon
LightBlue
LightCoral
LightCyan
LightGoldenrodYellow
LightGray
LightGreen
 
LightPink
LightSalmon
LightSeaGreen
LightSkyBlue
LightSlateGray
LightSteelBlue
LightYellow
Lime
LimeGreen
Linen
Magenta
Maroon
MediumAquamarine
MediumBlue
MediumOrchid
MediumPurple
MediumSeaGreen
MediumSlateBlue
MediumSpringGreen
MediumTurquoise
MediumVioletRed
MidnightBlue
MintCream
MistyRose
Moccasin
NavajoWhite
Navy
OldLace
Olive
OliveDrab
Orange
OrangeRed
Orchid
PaleGoldenrod
PaleGreen
 
PaleTurquoise
PaleVioletRed
PapayaWhip
PeachPuff
Peru
Pink
Plum
PowderBlue
Purple
Red
RosyBrown
RoyalBlue
SaddleBrown
Salmon
SandyBrown
SeaGreen
SeaShell
Sienna
Silver
SkyBlue
SlateBlue
SlateGray
Snow
SpringGreen
SteelBlue
Tan
Teal
Thistle
Tomato
Turquoise
Violet
Wheat
White
WhiteSmoke
Yellow
YellowGreen 
Beispiel:
Das folgende Beispiel kombiniert 2 Balkendiagramme jeweils über Zu- und Abgänge eines Teils und ein Tortendiagramm der anteiligen Lagerbestände über alle Lager des Teils (jeweils in 3D-Darstellung).
In einem leeren Container innerhalb eines Dialogs im CGW wird mit folgenden SibDef-Angaben (Create-Event) ein Chart-Control eingebaut. Für die Serienbeschreibungen wird auf die INI-Sektion [infraChart] und den Schlüssel „MeinChart“ verwiesen:
[infraChart]
Series=infraChart,MeinChart
 
In der INI-Datei wird in der Sektion laut obigem CGW-Eintrag beim Schlüssel „MeinChart“ hinterlegt, aus welchen weiteren Einträgen die darzustellenden Serienbeschreibungen gelesen werden sollen. Die „ConnectionString“-Angabe kann entfallen, wenn für die Datenquelle eine universelle Verbindungsangabe beim infra:NET Server hinterlegt ist:
[infraChart]
ConnectionString="Data Source=(local);Initial Catalog=INFRA_ECHT;Integrated Security=True"
MeinChart=Serie1,Serie2,Serie3
Serie1="Summe AR",Area1,Legend1,Column,SummeAR,Interval=1,Area.3D
Serie2="Summe ZB",Area1,Legend1,Column,SummeZB,Interval=1
Serie3="Lagerbestand",Area2,Legend2,Pie,LagerBestand,Area.3D
SummeAR={
    Select ISNULL(SUM(MngEff),0) As YValue, MONTH(BuchTerm) As XValue
    From BEWEGUNG
    Where           Teil='$Macros[LBUF2(6,3)]'
            AND BuchArt='AR'
            AND YEAR(BuchTerm)>2011
            Group by MONTH(BuchTerm)
    }
SummeZB={
    Select ISNULL(SUM(MngEff),0) As YValue, MONTH(BuchTerm) As XValue
    From BEWEGUNG
    Where           Teil='$Macros[LBUF2(6,3)]'
            AND BuchArt='ZB'
            AND YEAR(BuchTerm)>2011
            Group by MONTH(BuchTerm)
    }
Lagerbestand={
    Select LagBst As YValue, Lag As XValue
    From LAGER
    Where           Teil='$Macros[LBUF2(6,3)]'
    AND LagBst>0
    }
Hinweis: Da in den Serienbeschreibungen auch mit Makros gearbeitet werden kann, wäre auch denkbar, einzelne Einstellungen (Settings) oder den Charttyp zum Beispiel per „GV(…)“ oder „ReadDlgField“ variabel aus einem Dialogfeld oder einer Auswahlliste im Dialog zu lesen. Um ein Chart-Control nach der Änderung einer solchen Einstellung neu aufzubauen, steht die infra:NET Prozedur „CBgCHARTAction“ zur Verfügung. Ein Beispiel für diese Anwendung steht mit dem Beispiel-Chart „Top Teile“ basierend auf dem Dialog „TOPTEILE“ im Charts.CGW und der Serienbeschreibung „TopTeileSingle“ der Charts.INI zur Verfügung. Hier werden in einer Auswahlliste alle verfügbaren Chart-Typen zum Ausprobieren angeboten.