Formeln werden in der Konfiguration als Strings erfasst. Als Eingabeelemente ist es sinnvoll ein Memofeld zu nutzen. Für Bedingungen kann der Bedingungseditor genutzt werden.
Möchte man den Criteria String in Criteria Objekte wandeln, tut man dies mit
CriteriaOperator criteria = CriteriaOperator.parse("Iif(StartsWith([TextField], 'Inhalt'), [TextField], 'Kein Inhalt da')");
Für die Syntaxüberprüfung stehen in der Klasse CriteriaOperatorHelper Methoden zur Verfügung.
Ausführung in .Net
public static Func<ST, SR> CompileExpression<ST, SR>(Type ormType, CriteriaOperator criteria, ICriteriaToExpressionConverter converter = null)
Methode zur Kompilierung gegen eine Datentabelle mit einem gewünschten Rückgabetyp
STORM TypSRRückgabetypormTypeDatentabelle, auf deren Basis kompiliert wird.criteriaconverterOptionaler Converter- Rückgabe: Eine Exception oder eine ausführbare .Net Funktion.
Beispiel inkl. Kompilierung und Ausführung
try
{
CriteriaOperator criteria = CriteriaOperator.Parse("Iif(StartsWith([TextField], 'Inhalt'), [TextField], 'Kein Inhalt da')");
Func<OrmBase, object> compiled = CriteriaOperatorHelper.CompileExpression<OrmBase, object>(typeof(OrmMyDataTable), criteria);
string text = compiled(myData)?.ToString();
}
catch (Exception ex) when (!ex.IsThreadAbort())
{
// Fehler Handling
}
Datenbankformeln
public static CriteriaOperator ValidateDBCriteria(Type ormType, Type targetType, string criteriaString)
Validiert den Criteria String und gibt Criteria Objekte zurück.
ormTypeDie Datentabelle, auf der die Formel ausgeführt werden soll.targetTypeErwarteter Typ der RückgabecriteriaStringDie Formel- Rückgabe: Eine Exception oder die Criteria Objekte
Beispiel
try
{
CriteriaOperato criteria = CriteriaOperatorHelper.ValidateDBCriteria(typeof(OrmMyDataTable), typeof(bool), "StartsWith([TextField], 'Inhalt')");
if(orm.Fit(criteria) { ... }
}
catch (Exception ex) when (!ex.IsThreadAbort())
{
// Fehler Handling
}


