Formeln werden in der Konfiguration als Strings erfasst. Als Eingabeelemente ist es sinnvoll ein Memofeld [MemoControl] zu nutzen. Für Bedingungen kann der Bedingungseditor [FilterEditorPropertyControl] genutzt werden. Insbesondere wegen Free Joins sollte man die Felder mit dem Attribut [AllowHtml] kennzeichnen.

Für die Syntaxüberprüfung für .Net Formeln stehen in der Klasse CriteriaOperatorHelper die Methoden CompileExpression zur Verfügung (Siehe Kapitel). Beim compilieren wird die Expression vollständig validiert, so dass es zur Laufzeit nahezu keine Fehler mehr geben kann. Bei einem Validierungsfehler kommt eine Exception.

Für die Validierung von Formeln, die in Datenbankabfragen genutzt werden sollen, steht ValidateDBCriteria zur Verfügung. Die Methode validiert nach bestem Wissen und Gewissen, indem sie eine minimale SQL-Query auf das Ergebnis absetzt. Die Validierung ist allerdings nicht in allen Fällen vollständig, da DevExpress bestimmte Prüfungen erst zur Laufzeit durchführt.

public static CriteriaOperator ValidateDBCriteria(Type ormType, Type targetType, string criteriaString)

Validiert den Criteria String und gibt Criteria Objekte zurück.

  • ormType Die Datentabelle, auf der die Formel ausgeführt werden soll.
  • targetType Erwarteter Typ der Rückgabe
  • criteriaString Die Formel
  • Rückgabe: Eine Exception oder die Criteria Objekte

Beispiel

try
{
    CriteriaOperato criteria = CriteriaOperatorHelper.ValidateDBCriteria(typeof(OrmMyDataTable), typeof(bool), "StartsWith([TextField], 'Inhalt')");
}
catch (Exception ex) when (!ex.IsThreadAbort())
{
     // Fehler Handling
}