Beim Erstellen eines Ausdrucks verweist man mit der ColumnName-Eigenschaft auf Spalten. Wenn z. B. der ColumnName einer Spalte "UnitPrice" und der einer anderen "Quantity" lautet, ergibt sich folgender Ausdruck:
'''"[UnitPrice] * [Quantity]"'''
Beim Erstellen eines Ausdrucks für einen Filter schließt man Zeichenfolgen in einfache Anführungszeichen ein:
'''"LastName = 'Jones'"'''
Die folgenden Zeichen sind Sonderzeichen und müssen, wie nachstehend beschrieben, mit Escapezeichen versehen werden, wenn sie in einem Spaltennamen verwendet werden sollen:
:<nowiki>~</nowiki>
:<nowiki>(</nowiki>
:<nowiki>)</nowiki>
:<nowiki>#</nowiki>
:<nowiki>\</nowiki>
:<nowiki>/</nowiki>
:<nowiki>=</nowiki>
:<nowiki>></nowiki>
:<nowiki><</nowiki>
:<nowiki>+</nowiki>
:<nowiki>-</nowiki>
:<nowiki>*</nowiki>
:<nowiki>%</nowiki>
:<nowiki>&</nowiki>
:<nowiki>|</nowiki>
:<nowiki>^</nowiki>
:<nowiki>'</nowiki>
:<nowiki>"</nowiki>
:<nowiki>[</nowiki>
:<nowiki>]</nowiki>
Wenn ein Spaltenname eines der oben aufgeführten Zeichen enthält, muss der Name in Klammern eingeschlossen werden. Wenn Sie z. B. eine Spalte mit dem Namen "Column#" in einem Ausdruck verwenden, schreiben Sie "[Column#]":
'''Total * [Column#]'''
Da Klammern Sonderzeichen sind, müssen Sie einen umgekehrten Schrägstrich ("\") als
Escapezeichen für die Klammer verwenden, wenn diese Teil des Spaltennamens ist. Eine Spalte mit dem Namen "Column[]" wird z. B. wie folgt geschrieben:
'''Total * [Column[\]]'''
(Nur die zweite Klammer muss mit einem Escapezeichen versehen werden.)
===Benutzerdefinierte Werte===
Benutzerdefinierte Werte können in Ausdrücken verwendet und mit Spaltenwerten verglichen werden. Zeichenfolgenwerte müssen in einfache Anführungszeichen eingeschlossen werden. Datumswerte müssen in Nummernzeichen (#) eingeschlossen werden. Dezimalwerte und wissenschaftliche Schreibweise sind für numerische Werte zulässig.
Beispiel:
"FirstName = 'John'"
"Price <= 50.00"
"Birthdate < #1/31/82#"
Wandeln Sie bei Spalten mit Enumerationswerten den Wert in einen Ganzzahldatentyp um. Beispiel:
"EnumColumn = 5"
===Operatoren===
Die Verkettung mit den booleschen Operatoren AND, OR und NOT ist zulässig. Sie können mit Hilfe von Klammern Klauseln gruppieren und den Vorrang erzwingen. Der AND-Operator hat Vorrang gegenüber anderen Operatoren. Beispiel:
(LastName = 'Smith' OR LastName = 'Jones') AND FirstName = 'John'
Beim Erstellen von Vergleichsausdrücken sind die folgenden Operatoren zulässig:
:<nowiki><</nowiki>
:<nowiki>></nowiki>
:<nowiki><=</nowiki>
:<nowiki>>=</nowiki>
:<nowiki><></nowiki>
:<nowiki>=</nowiki>
:<nowiki>IN</nowiki>
:<nowiki>LIKE</nowiki>
Die folgenden arithmetischen Operatoren werden ebenfalls in Ausdrücken unterstützt:
:<nowiki>+</nowiki> (Addition)
:<nowiki>-</nowiki> (Subtraktion)
:<nowiki>*</nowiki> (Multiplikation)
:<nowiki>/</nowiki> (Division)
:<nowiki>%</nowiki> (Modulo)
===Zeichenfolgenoperatoren===
Verwenden Sie zum Verketten einer Zeichenfolge das Pluszeichen (+). Ob die Groß- und Kleinschreibung bei Zeichenfolgenvergleichen berücksichtigt wird, wird durch den Wert der CaseSensitive-Eigenschaft der DataSet-Klasse bestimmt. Sie können diesen Wert jedoch mit der CaseSensitive-Eigenschaft der DataTable-Klasse überschreiben.
===Platzhalterzeichen===
Sowohl * als auch % können in einem LIKE-Vergleich synonym als Platzhalter verwendet werden. Wenn die Zeichenfolge in einer LIKE-Klausel * oder % enthält, müssen diese Zeichen in Klammern ([]) als Escapezeichen eingeschlossen werden. Wenn eine Klammer in der Klausel enthalten ist, müssen die Klammerzeichen mit Klammern als Escapezeichen versehen werden (z. B. [[] oder []]). Ein Platzhalter ist sowohl an Anfang und Ende eines Musters als auch nur am Ende oder nur am Anfang eines Musters zulässig.
Beispiel:
"ItemName LIKE '*product*'"
"ItemName LIKE '*product'"
"ItemName LIKE 'product*'"
Platzhalter innerhalb einer Zeichenfolge sind unzulässig. 'te*xt' ist z.B. nicht zulässig.
===Functions===
Die folgenden Funktionen werden ebenfalls unterstützt
| Überprüft einen Ausdruck und gibt entweder den überprüften Ausdruck oder einen Ersatzwert zurück.
|-
| style=background-color:#f6f6f6 |'''Syntax'''
| ISNULL(expression, replacementvalue)
|-
| style=background-color:#f6f6f6 |'''Argumente'''
|
expression – Der zu überprüfende Ausdruck. <br>replacementvalue – Wenn der Ausdruck NULL ist, wird replacementvalue zurückgegeben.
|-
| style=background-color:#f6f6f6 |'''Beispiel'''
| myDataColumn.Expression="IsNull(price, -1)"
|}
Alle Konvertierungen sind gültig, mit folgenden Ausnahmen: '''Boolean '''kann nur in und aus '''Byte''', '''SByte''', '''Int16''', '''Int32''', '''Int64''', '''UInt16''', '''UInt32''', '''UInt64''', '''String '''und in sich selbst umge<span style="color: white; background-color: navy"></span>wandelt werden. '''Char '''kann in und aus '''Int32''', '''UInt32''', '''String '''und in sich selbst umgewandelt werden. '''DateTime '''kann nur in und aus '''String '''und in sich selbst umgewandelt werden. '''TimeSpan '''kann nur in und aus '''String '''und in sich selbst umgewandelt werden.
| Ruft je nach dem Ergebnis eines logischen Ausdrucks einen von zwei Werten ab.
|-
| style=background-color:#f6f6f6 |'''Syntax'''
| IIF(expr, truepart, falsepart)
|-
| style=background-color:#f6f6f6 |'''Argumente'''
| expr – Der auszuwertende Ausdruck <br>truepart – Der Wert, der zurückgegeben wird, wenn der Ausdruck True ist <br>falsepart - Der Wert, der zurückgegeben wird, wenn der Ausdruck False ist
| Ruft eine Teilzeichenfolge einer angegebenen Länge ab, beginnend an ei<span style="color: white; background-color: navy"></span>nem angegebenen Punkt in einer Zeichenfolge.
|-
| style=background-color:#f6f6f6 |'''Syntax'''
| SUBSTRING(expression, start, length)
|-
| style=background-color:#f6f6f6 |'''Argumente'''
|
expression – Die Quellzeichenfolge für die Teilzeichenfolge. <br>start – Eine ganze Zahl, die den Beginn der Teilzeichenfolge angibt. <br>lenght – Eine ganze Zahl, die die Länge der Teilzeichenfolge angibt.
| <span style="color: darkblue;">'''Hinweis'''</span> Sie können die Expression-Eigenschaft zurücksetzen, indem Sie ihr einen NULL-Wert oder eine leere Zeichenfolge zuordnen. Wenn ein Standardwert für die Ausdrucksspalte festgelegt ist, wird allen bereits ausgefüllten Zeilen nach dem Zurücksetzen der Expression-Eigenschaft der Standardwert zugeordnet.
Um eine neue Tabelle zu erstellen, wechseln Sie zunächst in den Entwicklermodus und wählen den Menüpunkt Objektverwaltung.
In Tabellen werden die von User eingegebenen Daten gespeichert. Der Enduser kann über Eingabemasken Daten in Tabellen eingeben. Um eine Tabelle zu bearbeiten, markiert man diese und betätigt das Icon „Entwurf“ oder wählt „Entwurf“ über das Kontextmenü (mit rechter Maustaste aufrufbar) aus.
Framework, Tabellen
Es öffnet sich der Tabellendesigner:
Tabellendesigner
Framework, Tabellendesigner
Dieser setzt sich aus drei Bereichen zusammen:
Registerblätter
Register-Bereich
Allgemeiner Bereich
Allgemeiner Bereich
Diese 5 Buttons haben unterschiedliche Funktionen:
Schaltfläche
Beschreibung
OK
Übernimmt die vorgenommen Änderungen und schließt den Tabellendesigner
Tabelle aktualisieren
Falls Tabelle nicht vorhanden wird diese erstellt. Neue Felder werden in der Datenbank angelegt und sind danach verfügbar. Bei Dimensionen werden Defaultelemente (Root-Element und „Keine Zuordnung“-Element) werden angelegt.
„Tabelle aktualisieren“ macht folgendes:
Definition der Tabelle wird gespeichert
Alle Felder, welche freigegeben sind(-> rotes Dreieck, diese Felder sind noch nicht in der Daten-Tabelle, und können bis dahin beliebig bearbeitet werden!), werden jetzt in die Daten-Tabelle(auch in Datenbank!) übernommen, und können ab jetzt nicht mehr umbenannt werden!(-> deshalb weil entspr. DB-Befehle nicht über versch. Datenbanken konsistent sind!)
Andere Einstellungen von Feldern, welche keine Veränderung in der DB bewirken, können nach wie vor bearbeitet werden, diese werden ja im „Laden“ der Tabelle vorgenommen!
Tabelle wird am Server neu geladen(siehe „Übernehmen“)
Die Daten der Daten-Tabelle bleiben unberührt!
wenn Spalten gelöscht wurden, werden sie erst mit aktualisieren aus der Datenbank entfernt!
Übernehmen
Speichert die aktuelle Definition – Tabellen werden in der Datenbank nicht neu erstellt. Neue berechnete Felder sind sofort verfügbar.
Detail:
Speichert die Definition der Tabelle am CoPlanner-Server; übernimmt diese Veränderungen aber nicht in die wirkliche Daten-Tabelle am DB-Server!
Felder die mit dem grünen Häkchen versehen sind wurden bereits in die Daten-Tabelle übernommen(mit „Tabelle aktualisieren“!), Felder mit dem roten Dreieck wurden nicht in die Daten-Tabelle übernommen!
Ausgenommen sind berechnete Felder, diese werden auch bei „Übernehmen“ in die Daten-Tabelle übernommen. Das ist deshalb so, weil berechnete Felder nicht in der Datenbank gespeichert werden, sondern vom CoPlanner-Server hinzugefügt werden, und nur im Speicher (im Server-Cache) vorhanden sind!
Das heißt also dass mit „Übernehmen“ folgendes passiert:
Definition der Tabelle wird gespeichert
Tabelle wird neu von der relationalen DB in den CoPlanner-Server geladen geladen (wie sie ist!)
Tabelle wird überarbeitet mit Informationen aus der Tabellen-Definition (z.B.: berechnete Felder werden hinzugefügt!)
Veränderungen in der Definition welche ein neues erstellen der Daten-Tabelle in der DB erfordern, werden nicht gemacht!(-> rotes Dreieck!)
Die Daten der Daten-Tabelle bleiben unberührt!
Tabelle neu erstellen
Tabelle wird in der Datenbank neu erstellt – ACHTUNG: dabei werden alle bestehenden Daten gelöscht.
Mit „Tabelle neu erstellen“ passiert folgendes:
Die bestehende Daten-Tabelle wird gelöscht!
Die Datentabelle wird neu angelegt, gleich wie wenn man manuell eine neue Tabelle anlegt!
Das heißt, Die neue Tabelle besteht jetzt nur aus den Systemspalten!
Die Tabelle wird am Server neu geladen(siehe oben!)
Die in der Definition gespeicherten Felder sind jetzt wieder freigegeben, da sie sich nicht in der Daten-Tabelle befinden! Man kann sie jetzt bearbeiten und die Tabelle dann mit diesen Feldern neu aufbauen->“Tabelle aktualisieren“
Die Daten der Daten-Tabelle sind verloren!
Abbrechen
nichts wird gespeichert, das Fenster geschlossen!
Felder
Hier befindet man sich im Registerblatt „Felder“. Ein neues Feld kann man durch Anklicken des Buttons „Feld hinzufügen“ anlegen.
Framework, Tabellendesigner - Felder
Spaltenname
In dieses Feld kann individuell der Name der Spalte eingetragen werden.
Datentyp
Als Datentyp stehen folgende Möglichkeiten zur Auswahl:
Dezimalzahl
Ganzzahl
Prozentwert
Text(50)
Datum
Währung
Bool
Link
Bei dem Datentyp Text kann man die maximale Größe des Textes (angegeben durch die Zahl innerhalb der Klammern) auch ändern, indem man ganz einfach die Zahl innerhalb der Klammern erhöht oder erniedrigt.
Standardwert
Man kann einen beliebigen Standardwert definieren, der dem User als Wert in diesem Feld vorgeschlagen wird. Wird ein neuer Datensatz angelegt, dann wird dieser Standardwert in das Feld des neuen Datensatzes geschrieben. Dieser kann natürlich jeder Zeit vom User selbst geändert werden.
Framework, Tabellendesigner - Standardwert
Standardcode
Im Gegensatz zum statischen Standardwert ist der Standard Code ein variabler Wert, welcher von der Session abhängig ist, mit der der Benutzer gerade am CoPlanner-Server angeloggt ist.
Framework, Tabellendesigner - Standardcode
Beschreibung
Hier kann man eine kurze Beschreibung zum Inhalt der Spalte eingeben.
Aggregationstyp
Folgende Aggregationstypen hat man zur Auswahl:
Keine: keine Berechnung ist erwünscht
Sum: die Summe aller Felder in einer Spalte wird berechnet
Avg: der Durchschnitt aller Felder in einer Spalte wird berechnet, wobei die Berechnung mittels Summe der Werte der Datensätze / Anzahl der Datensätze gemacht wird.
Format-String
Hier kann ein Standard-Format-String angegeben werden, der dann in Masken, für die keine eigene Formatierung angegeben wird, übernommen wird. Standardmäßig wird ohne Eingabe eines Format-Strings bei Dezimalzahlen N2 sowie bei Prozentwerten P2 verwendet.
Mehrsprachig
Gibt an, ob ein Feld mehrsprachig gespeichert werden kann. Diese Einstellung kann nur bei Textfeldern verwendet werden und bewirkt, dass bei Überschreiben eines Textfeldes in einer anderen als der Standardsprache der neue Wert nur für die angemeldete Sprache, d. h. als Übersetzung, gespeichert wird. Der ursprünglich eingegebene Wert ist weiterhin bei Anmeldung in der Standardsprache ersichtlich.
IsAttribute
Wird diese Option gesetzt, ist der Wert des Attributes im CoPlanner Reporting verfügbar. Z.B. kann hier eine Hintergrundfarbe in einer Dimension für das jeweilige Element definiert werden und diese dann im Reporting ausgelesen und entsprechend verarbeitet werden. Wird nur bei der Verwendung im Zusammenhang mit einer Dimension interpretiert.
IsOK
Zeigt an, ob Änderungen aktualisiert, gespeichert und korrekt durchgeführt wurden. Ist ein rotes Dreieck mit Rufzeichen, wie hier, zu sehen, dann muss der Button „Tabelle aktualisieren“ gedrückt und somit die vorgenommenen Auswahlen gespeichert werden.
Framework, Tabellendesigner - IsOK
Hinweis Eine Spalte kann durch Kli¬cken von X oder durch selektieren der Zeile und drücken der „Entf“ – Taste gelöscht werden. Bitte beachten Sie, dass für den Fall, dass die Spalte bereits übernommen (durch grünes Häkchen dargestellt) wurde, auch darauf eingegebene Daten gelöscht werden.
Hinweis Die Eigenschaften „Spaltenname“ und „Datentyp“ einer einmal übernommenen Spalte können nicht mehr geändert werden. Befinden sich bereits Daten auf dieser Spalte, empfiehlt sich die Neuanlage einer weiteren Spalte, das manuelle Kopieren der Werte und das anschließende Löschen der alten Spalte.
LookUp-Tabellen
Hier kann man Tabellen miteinander verknüpfen. Bei einer Tabelle handelt es sich erst dann um eine „verknüpfbare“ LookUp-Tabelle, wenn zumindest ein Feld mit „Sichtbar in LookUps“ angehakt ist. Erst dann können die entsprechenden Felder in der verknüpften Tabelle angezeigt werden, wobei mit Klick in das entsprechende Feld eine Combo-Box mit den in LookUp-Daten geöffnet wird.
Framework, LookUp-Tabellen
Dimensionen
Ähnlich wie bei den LookUp-Tabellen öffnet sich für den User mit Klick in das entsprechende Feld ebenfalls eine Combo-Box mit dem einzigen Unterschied, dass hier eine Strukturebene zur Auswahl vorliegt.
Framework, LookUp-Tabellen DimensionenFramework, Öffnen eines Dimensions-Lookups in einer Eingabemaske
Dimensionsname
Bezeichnung der Dimension, wird automatisch übernommen
Anzahl
Vergibt eine fortlaufende Nummer je Dimension. Wird eine Dimension mehrfach hinzugefügt, erhält jede einen eigenen Zähler zur eindeutigen Identifikation.
Alias
Als Alias wird automatisch der Dimensionsname übernommen. Dieser kann jedoch angepasst werden.
Sprache
Durch Eingabe einer Übersetzung kann hier ein Alias für die jeweilige Sprache angegeben werden. Wird im obigen Beispiel etwa der Ausdruck „english=Cost Center;“ in das Feld Sprache geschrieben, so wird der Alias dieser Dimension bei englischer Anmeldung als „Cost Center“ und nicht als „PC/KST“ angezeigt.
StandardWert
Man kann einen beliebigen Standardwert definieren, der dem User als Wert in diesem Feld vorgeschlagen wird. Wird ein neuer Datensatz angelegt, dann wird dieser Standardwert in das Feld des neuen Datensatzes geschrieben. Dieser kann natürlich jeder Zeit vom User selbst geändert werden.
StandardCode
Im Gegensatz zum statischen Standardwert ist der Standard Code ein variabler Wert, welcher von der Session abhängig ist, mit der der Benutzer gerade am CoPlanner-Server angemeldet ist. Außerdem kann jede beliebige Anwendungseigenschaft als Standardwert definiert werden.
Planzeitraum
Durch Aktivieren dieses Hakens bei Zeitdimensionen wird festgelegt, dass für diese Dimension die im Szenariomanager eingestellte Zeiteinschränkung (Eingabe nur in diesem Zeitraum erlauben, Ist-Perioden sperren) verwendet werden soll.
IsOK
Zeigt an, ob Änderungen aktualisiert, gespeichert und korrekt durchgeführt wurden. Ist ein rotes Dreieck mit Rufzeichen, wie hier, zu sehen, dann muss die Schaltfläche „Tabelle aktualisieren“ gedrückt und somit die vorgenommenen Auswahlen gespeichert werden.
Berechnete Felder
Berechnete Felder setzten sich aus anderen Feldern zusammen. In diesem Beispiel:
Im folgenden Beispiel soll in Abhängigkeit vom Feld „Wert“ entweder dieser, wenn er ungleich Null ist, oder die Berechnung „Menge*Preis“ in das berechnete Feld „Betrag“ geschrieben werden:
Berechnetes Feld: Betrag= IIF([Wert absolut] =0,[Menge]*[Preis],[Wert absolut])
Optionen
Option „Planungstabelle“: Bei Dimensionen – kennzeichnet, ob diese Dimension im Dimensionsbaum angezeigt werden soll.
Option „planabhängig“: Daten werden pro Plan gespeichert. Ist diese Option nicht aktiviert, stehen die Daten der Tabelle in allen Plänen zur Verfügung