Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Name

Inhalt

UserDefinedFieldsList(userdefinedfields)

Feldliste der benutzerdefinierten Felder „userdefinedfields“ einer Tabelle (z.B. „Artikel“) zur Verwendung in Datenquellen, die verschachtelte Abfragen enthalten (Angabe „userdefinedfields“ ohne Anführungsstriche)

InnerClause

Platzhalter für die Filter-Kriterien einer inneren SQL-Abfrage. Dieser wird aus den in der Datenquelle mit „UseFilterInInnerClause“ markierten Feldern gebildet, wenn diese gefiltert werden. Er ist entweder leer (kein Filter für innere SQL-Abfrage gesetzt) oder beginnt grundsätzlich mit einem „AND“, auf das die einzelnen Filter (ebenfalls mit „AND“ verknüpft) folgen.

Anmerkungen:

  • Der Platzhalter kann bei mehreren inneren Abfragen ggf. auch mehrfach genutzt werden. Allerdings ist hier die Performance zu prüfen.

Falls die innere Where-Clause nur die Filter enthalten soll, muss sie mit einem Dummy-True beginne, damit die AND-Syntax keinen Fehler verursacht.

IfParameterExists(name, “sqltrue“)
bzw.
IfParameterExists(name, “sqltrue“, "sqlfalse")

Die Funktion dient dem Zusammenbau von Where-Clauses bei optionalen Selektions-Parametern.

  • Parameter 1: Name
    • Der Name des zu prüfenden Selektions-Parameters.
  • Parameter 2: SqlTrue
    • SQL-Ausdruck, welcher den Platzhalter ersetzt, wenn der Selektions-Parameter existiert.
  • Parameter 3: SqlFalse (optional, Default="")
    • SQL Ausdruck, welcher den Platzhalter ersetzt, wenn der Selektions-Parameter nicht existiert.

Die SQL-Ausdrücke müssen in Anführungszeichen ("") eingeschlossen werden, die bei der Ersetzung entfernt werden. Evtl. vorhandene Anführungszeichen im SQL-Ausdruck müssen verdoppelt werden.

AppendAndParameterFromTo(name, sqlfieldname)

Die Funktion dient dem Zusammenbau von Where-Clauses für Von-Bis-Parameter, inkl. der Behandlung von Mehrfachselektion (siehe Metadaten-Attribute "IsFromTo" und "AllowMultiselect" der Datenstruktur).

  • Parameter 1: name
    (Name des Metadaten-Feldes)
  • Parameter 2: sqlfieldname
    (Name des korrespondierenden SQL-Feldes)

Der Platzhalter wird in Abhängigkeit der Inhalte der Parameter

  • name + "Von" für den Von-Wert
  • name  + "Bis" für den Bis-Wert
  • name (ohne Ergänzung) bei Mehrfachselektion

durch einen entsprechenden SQL-Ausdruck ersetzt:

  • Ist weder "Von" noch "Bis" noch eine Mehrfachselektion definiert, ist dies ein leerer String.
  • Ist "Von" oder "Bis" definiert, ist dies eine entsprechende Größer-Gleich-/Kleiner-Gleich-Abfrage mit vorangestelltem „AND“.
  • Sind "Von" und "Bis" definiert, ist dies eine entsprechende "BETWEEN"-Abfrage mit vorangestelltem "AND".
  • Sind weder "Von" noch "Bis", aber eine Mehrfachselektion definiert, ist dies eine entsprechende "IN"-Abfrage mit vorangestelltem "AND".
    (Bei mehreren Schlüssel-Segmenten kann dieser Platzhalter nicht verwendet werden.)
ParameterValueList(name)

Enthält ein Feld eine Werteliste, wie sie in der Oberfläche und in Makros verwendet wird (Semikolon-separierte Liste von Werten; Texte müssen in Anführungszeichen eingefasst werden; innenliegende Anführungszeichen sind verdoppelt), kann sie mit diesem Platzhalter in eine SQL-konforme Werteliste umgewandelt werden, z.B. zur Verwendung im IN-Operator.

Szenarien:

  • An ein Master-Detail-Element von außen übergebener benannter Parameter, der an die Datenquellen der enthaltenen Elemente weitergereicht wird.
  • In einem Ausdruck, wie er z.B. im Metadaten-Attribut "DataReferenceFilter" verwendet werden kann. Siehe hierzu Kapitel "Metadaten Abfragesprache".

Hinweis: Wertelisten, die in einer Selektion mit Mehrfachauswahl entstehen können (Metadaten-Attribute "IsFromTo" und "AllowMultiselect"), müssen mittels Platzhalter "AppendAndParameterFromTo" ausgewertet werden.

Achtung: Wertelisten, die im Frontend entstehen (Client-seitig). dürfen wegen der Gefahr von SQL-Injection nicht ungeprüft in SQL verwendet werden. Es ist immer eine typsichere Zerlegung in Einzelwerte und ein neues, maskiertes Erzeugen der Werteliste notwendig. Das ist mit Verwendung dieses Platzhalters sichergestellt.

ParentKeyField(n)

An ein Child-Part übergebener Inhalt von Key-Feld <n>
(n darf aktuell nur zwischen 1 und 9 liegen)

ParentFieldValue(name)

nur für Datensätze: ruft beim Lesen eines Child-Records den Inhalt des Parent-Feldes „name“ (Angabe ohne Anführungszeichen) ab.

Anwendungsbeispiel: Beim Lesen mit Left Join können Felder den Wert NULL haben, die in Unterabfragen aber verwendet werden. Falls die Felder auch im Hauptsatz existieren, können sie mit diesem Platzhalter ermittelt werden
(siehe Element "recArtikelstammArtikelpreise.Sage.Wawi", Feld "StatusStaffelpreise").

PartGuid

GUID der Part-Instanz (z.B. für Konfigurationsdialoge der „Trend…“-Parts)

Parameter(name)

Ein von außen übergebener benannter Parameter.

Beispielsweise:

  • Beim Makro-Befehl "AuskunftÖffnen" aus Parameter 2.
  • Beim Anwenden eines Datenfilters aus den Parametern der Bedingungen.

Hinweis:

  • Leere Strings werden als NULL im SQL ersetzt. Deshalb kann es angeraten sein, die SQL-Funktion "ISNULL()" zu verwenden, um den Unterschied zwischen Leerstring und NULL zu beseitigen.
    Beispiel: ISNULL(KHKAdressen.LieferPLZ, '') = ISNULL($[Parameter(Plz)], '')


Platzhalter für die WHERE-Bedingung bei Datenklassen-Lokatoren mit Fremdtabelle

NameInhalt
SearchValue

Dieser Platzhalter wird in der WHERE-Bedingung durch den Wert ersetzt, nach dem gesucht wird.

Der Wert, der eingesetzt wird, wird automatisch so formatiert, dass er in einer WHERE-Bedingung funktioniert.

  • Handelt es sich um ein String-Feld, wird dem Wert ein "%" angefügt, und der Wert wird in Apostrophe eingefasst und maskiert. Der Platzhalter muss zusammen mit "LIKE" verwendet werden, wodurch sich eine "Beginnt mit"-Abfrage ergibt.
  • Handelt es sich um ein numerisches Feld oder ein Datumsfeld, wird der Wert entsprechend formatiert. Der Platzhalter muss zusammen mit "=", "<>", "<", "<=", ">" oder ">=" verwendet werden.

Platzhalter bei Parametern für VBA-Funktionsaufrufe, Drilldown-Funktionsaufrufe (nur Inplace) sowie Drag&Drop-Funktionsaufrufe verfügbar

...