Framework:Formeln:WarumTyped: Unterschied zwischen den Versionen

Aus CoPlanner 11
Zur Navigation springenZur Suche springen
T.auer (Diskussion | Beiträge)
KKeine Bearbeitungszusammenfassung
Kleine Überarbeitungen durchgeführt
Zeile 1: Zeile 1:
== Warum sind Strings in typed anders gebaut? ==
== Warum sind Strings in typed anders gebaut? ==
Im CoPlanner gibt es zwei Arten von Expressions, die im CoPlanner verwendet werden können.
Es gibt zwei Arten von Expressions, die in CoPlanner verwendet werden können.


Die ursprüngliche Variante sind Expressions, die nicht typed sind; im Zuge der Entwicklung neuer Formeltypen (Menge) wurde die Variante typed Expressions eingeführt.
Die ursprüngliche Variante sind Expressions, die nicht typed sind; im Zuge der Entwicklung neuer Formeltypen (Menge) wurde die Variante typed Expressions eingeführt.
Zeile 6: Zeile 6:
Was war die Motivation dafür?
Was war die Motivation dafür?


Neben Performance-Vorteilen, die typed gegenüber der ursprünglichen Variante hatte, gab es Fälle, in denen man in Formeln Werte zuweisen wolle, es in den Formeln aber nicht möglich oder nur sehr kompliziert zu bewerkstelligen war. Grund dafür ist, dass es in der ursprünglichen Variante der Expressions keine Unterscheidung „was ist der Ausdruck, der berechnet werden soll, was ist der Inhalt der Daten, mit denen gerechnet wird“ gibt.
Neben Performance-Vorteilen, die typed gegenüber der ursprünglichen Variante hat gab es Fälle, in denen man in Formeln Werte zuweisen wollte, dies in den Formeln aber nicht möglich oder nur sehr kompliziert zu bewerkstelligen war. Der Grund dafür ist, dass es in der ursprünglichen Variante der Expressions keine Unterscheidung gibt, zwischen dem„was der Ausdruck ist, der berechnet werden soll" und dem "was der Inhalt der Daten ist, mit denen gerechnet wird“  




Anhand von 2 einfachen Beispielen illustriert:
Dies kann anhand von zwei einfachen Beispielen illustriert werden:


=== Beispiel 1 ===
=== Beispiel 1 ===
Man baut eine Tabelle mit 2 Textspalten t1 und t2, dazu eine Same-Formel, die das Flag für typed nicht gesetzt hat, und die ganz einfach den Wert von t1 auf t2 schreibt.
Man erstellt eine Tabelle mit zwei Textspalten t1 und t2, dazu eine Same-Formel, die das Flag für typed nicht gesetzt hat und die ganz einfach den Wert von t1 auf t2 schreibt.


Wenn man jetzt in der Tabelle eine Zeile erzeugt, und in t1 den String „1+2“ eingibt, dann wird auf t2 mit der Same-Formel der String „1+2“ geschrieben.
Wenn man jetzt in der Tabelle eine Zeile erzeugt und in t1 den String „1+2“ eingibt, dann wird auf t2 mit der Same-Formel der String „1+2“ geschrieben.




Zeile 25: Zeile 25:
Man hat eine Tabelle mit einem Wertfeld w und einem Textfeld t. Jetzt möchte man in das Textfeld folgendes schreiben „[MeinWert] hat den Wert [w]“, wobei statt [w] der Wert des Wertfeldes stehen soll, also in einer Zeile mit w=5 soll in t folgender Text stehen: „[MeinWert] hat den Wert 5“.
Man hat eine Tabelle mit einem Wertfeld w und einem Textfeld t. Jetzt möchte man in das Textfeld folgendes schreiben „[MeinWert] hat den Wert [w]“, wobei statt [w] der Wert des Wertfeldes stehen soll, also in einer Zeile mit w=5 soll in t folgender Text stehen: „[MeinWert] hat den Wert 5“.


Um das mit einer Same-Formel mit typed calculation zu rechnen, gibt man folgenden Ausdruck an  
Um das mit einer Same-Formel mit typed calculation zu rechnen, gibt man folgenden Ausdruck an:




Zeile 34: Zeile 34:




Ändert man den Typ der Formel auf nicht typed, so bekommt man einen Fehler, da [MeinWert] nicht aufgelöst werden kann. Auch Escapen, z.B. mit „\“, oder Quoten löst das Problem nicht
Ändert man den Typ der Formel auf nicht typed, so bekommt man einen Fehler, da [MeinWert] nicht aufgelöst werden kann. Auch Escapen, z.B. mit „\“, oder Quoten löst das Problem nicht.

Version vom 7. Juni 2022, 15:17 Uhr

Warum sind Strings in typed anders gebaut?

Es gibt zwei Arten von Expressions, die in CoPlanner verwendet werden können.

Die ursprüngliche Variante sind Expressions, die nicht typed sind; im Zuge der Entwicklung neuer Formeltypen (Menge) wurde die Variante typed Expressions eingeführt.

Was war die Motivation dafür?

Neben Performance-Vorteilen, die typed gegenüber der ursprünglichen Variante hat gab es Fälle, in denen man in Formeln Werte zuweisen wollte, dies in den Formeln aber nicht möglich oder nur sehr kompliziert zu bewerkstelligen war. Der Grund dafür ist, dass es in der ursprünglichen Variante der Expressions keine Unterscheidung gibt, zwischen dem„was der Ausdruck ist, der berechnet werden soll" und dem "was der Inhalt der Daten ist, mit denen gerechnet wird“


Dies kann anhand von zwei einfachen Beispielen illustriert werden:

Beispiel 1

Man erstellt eine Tabelle mit zwei Textspalten t1 und t2, dazu eine Same-Formel, die das Flag für typed nicht gesetzt hat und die ganz einfach den Wert von t1 auf t2 schreibt.

Wenn man jetzt in der Tabelle eine Zeile erzeugt und in t1 den String „1+2“ eingibt, dann wird auf t2 mit der Same-Formel der String „1+2“ geschrieben.


Jetzt ändert man den String in t1 auf „(1+2)“ - und erhält in t2 den String „3“ – in diesem Fall wird der Ausdruck von nicht-typed Expressions so interpretiert, dass hier eine Berechnung durchzuführen ist.


Mit typed Expressions wird in beiden Fällen der String einfach weitergeschrieben.

Beispiel 2:

Man hat eine Tabelle mit einem Wertfeld w und einem Textfeld t. Jetzt möchte man in das Textfeld folgendes schreiben „[MeinWert] hat den Wert [w]“, wobei statt [w] der Wert des Wertfeldes stehen soll, also in einer Zeile mit w=5 soll in t folgender Text stehen: „[MeinWert] hat den Wert 5“.

Um das mit einer Same-Formel mit typed calculation zu rechnen, gibt man folgenden Ausdruck an:


‘[MeinWert] hat den Wert‘ +  [w]


und bekommt das gewünschte Ergebnis.


Ändert man den Typ der Formel auf nicht typed, so bekommt man einen Fehler, da [MeinWert] nicht aufgelöst werden kann. Auch Escapen, z.B. mit „\“, oder Quoten löst das Problem nicht.