Objektverwaltung:Tabellen: Unterschied zwischen den Versionen

Aus CoPlanner 11
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 161: Zeile 161:
Um eine optimale Auflösung der Ausdrücke zu ermöglichen, ist eine Klammersetzung bei jedem Ausdruck notwendig. z.B.: ([a] * [b]) + [c]
Um eine optimale Auflösung der Ausdrücke zu ermöglichen, ist eine Klammersetzung bei jedem Ausdruck notwendig. z.B.: ([a] * [b]) + [c]


Syntax von Ausdrücken
===Syntax von Ausdrücken===


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:
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]"
'''"[UnitPrice] * [Quantity]"'''


Beim Erstellen eines Ausdrucks für einen Filter schließt man Zeichenfolgen in einfache Anführungszeichen ein:
Beim Erstellen eines Ausdrucks für einen Filter schließt man Zeichenfolgen in einfache Anführungszeichen ein:


"LastName = 'Jones'"
'''"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:
Die folgenden Zeichen sind Sonderzeichen und müssen, wie nachstehend beschrieben, mit Escapezeichen versehen werden, wenn sie in einem Spaltennamen verwendet werden sollen:
Zeile 195: Zeile 195:


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#]":
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#]
 
'''Total * [Column#]'''


Da Klammern Sonderzeichen sind, müssen Sie einen umgekehrten Schrägstrich ("\") als
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:
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[\]]
'''Total * [Column[\]]'''


(Nur die zweite Klammer muss mit einem Escapezeichen versehen werden.)
(Nur die zweite Klammer muss mit einem Escapezeichen versehen werden.)


Benutzerdefinierte Werte
===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.
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.
Zeile 216: Zeile 217:
"EnumColumn = 5"
"EnumColumn = 5"


Operatoren
===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:
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:
Zeile 240: Zeile 241:
:<nowiki>%</nowiki> (Modulo)
:<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.





Version vom 1. Dezember 2008, 17:22 Uhr

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:

Framework, Tabellendesigner

Dieser setzt sich aus 3 bereichen zusammen:

  • Registerblätter (1)
  • Register-Bereich (2)
  • Allgemeiner Bereich (3)


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.

Sichtbar in LookUps

Ist „Sichtbar in Lookups“ aktiviert, wird das entsprechende Feld „Spaltenname“ in der Combo-Box in der verknüpften Tabelle zur Auswahl angezeigt (mehr dazu auf der nächsten Seite).

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.

Format-String

Hier kann ein .NET –Format String für die Formatierung der Spalte angegeben werden (Syntax siehe FormatString für .NET!)

Edit-Mask

Hier kann eine Eingabemaske für das Feld definiert werden!(Syntax siehe „Microsoft MaskedEdit ActiveX“)

Framework, Tabellendesigner - IsOK

Wenn eine Spalte noch nicht übernommen wurde (durch rotes Dreieck dargestellt) dann kann man diese durch Klicken von X oder durch selektieren der Zeile und drücken der „Entf“ – Taste die Spalte löschen. Ist die Spalte bereits übernommen (durch grünes Häkchen dargestellt) so kann man die Spalte erst löschen, wenn man die Tabelle neu erstellt.


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
Datei:Fw LookUp Tabellen1.jpg
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 Dimensionen
Framework, LookUp-Tabellen Dimensionen


Berechnete Felder

Berechnete Felder setzten sich aus anderen Feldern zusammen. In diesem Beispiel:

Berechnetes Feld: [Gesamtgehalt] = [Gehalt] + [Weihnachtsgeld] + [Urlaubsgeld] + [Prämie]

Framework, Berechnete Felder

Um eine optimale Auflösung der Ausdrücke zu ermöglichen, ist eine Klammersetzung bei jedem Ausdruck notwendig. z.B.: ([a] * [b]) + [c]

Syntax von Ausdrücken

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:

~
(
)
#
\
/
=
>
<
+
-
*
%
&
|
^
'
"
[
]

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:

<
>
<=
>=
<>
=
IN
LIKE

Die folgenden arithmetischen Operatoren werden ebenfalls in Ausdrücken unterstützt:

+ (Addition)
- (Subtraktion)
* (Multiplikation)
/ (Division)
% (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.