Einstellungen:Abfragelogik: Unterschied zwischen den Versionen

Aus Afterbuy-Wiki
Wechseln zu:Navigation, Suche
K
 
(22 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Artikel:Start|title=Abfragelogik|text=}}
+
{{Status|review|tbd}}{{Artikel:Start|title=Abfragelogik|parents=Einstellungen, Einstellungen:Grundeinstellungen::Grundeinstellungen}}
  
 
== if/else Abfragen ==  
 
== if/else Abfragen ==  
Zeile 8: Zeile 8:
 
Dabei gilt zu beachten, dass die Anweisung, welche hinter der {{AB:Code|<-if->}} Bedingung steht, nur angewendet wird, wenn die Bedingung gültig ist. Ansonsten wird alles hinter der {{AB:Code|<-else->}} Bedingung ausgewertet. Sollte keine {{AB:Code|<-else->}} Bedingung vorhanden sein, wird nichts ausgewertet. Die entsprechenden Bedingungen können anhand von Variablen angegeben werden.
 
Dabei gilt zu beachten, dass die Anweisung, welche hinter der {{AB:Code|<-if->}} Bedingung steht, nur angewendet wird, wenn die Bedingung gültig ist. Ansonsten wird alles hinter der {{AB:Code|<-else->}} Bedingung ausgewertet. Sollte keine {{AB:Code|<-else->}} Bedingung vorhanden sein, wird nichts ausgewertet. Die entsprechenden Bedingungen können anhand von Variablen angegeben werden.
  
{{Beispiel|{{AB:Code|<pre><-if <-KLand-> &#61; D->
+
{{CodeExample|<-if <-KLand-> &#61; D->
 
+
  Land Deutschland
    Land Deutschland
 
 
 
 
<-else->
 
<-else->
 
+
  Irgendwo auf der Welt
    Irgendwo auf der Welt
 
 
 
 
<-end if->}}
 
<-end if->}}
  
 
Wichtig ist, dass die Bedingung (in diesem Fall die Variable {{AB:Code|<-KLand-> }}&#61; D) nur innerhalb des {{AB:Code|<-if->}} stehen darf. In dem Beispiel wird geprüft, ob in der Variable {{AB:Code|<-KLand->}} der Wert "D" steht. Wenn der Wert "D" in der Variable {{AB:Code|<-KLand->}} steht, wird der Text "Land Deutschland" ausgegeben. Sollte die Variable {{AB:Code|<-KLand->}} nicht den Wert "D" haben, wird der Wert nach dem {{AB:Code|<-else->}} ausgegeben. In diesem Fall ist es "Irgendwo auf der Welt". Die {{AB:Code|<-else->}} Bedingung ist optional und muss nicht angegeben werden. Es kann auch nur geprüft werden, ob in der Variable {{AB:Code|<-KLand->}} der Wert "D" steht. Das sieht dann wie folgt aus:
 
Wichtig ist, dass die Bedingung (in diesem Fall die Variable {{AB:Code|<-KLand-> }}&#61; D) nur innerhalb des {{AB:Code|<-if->}} stehen darf. In dem Beispiel wird geprüft, ob in der Variable {{AB:Code|<-KLand->}} der Wert "D" steht. Wenn der Wert "D" in der Variable {{AB:Code|<-KLand->}} steht, wird der Text "Land Deutschland" ausgegeben. Sollte die Variable {{AB:Code|<-KLand->}} nicht den Wert "D" haben, wird der Wert nach dem {{AB:Code|<-else->}} ausgegeben. In diesem Fall ist es "Irgendwo auf der Welt". Die {{AB:Code|<-else->}} Bedingung ist optional und muss nicht angegeben werden. Es kann auch nur geprüft werden, ob in der Variable {{AB:Code|<-KLand->}} der Wert "D" steht. Das sieht dann wie folgt aus:
  
{{Beispiel|{{AB:Code|<-if <-KLand-> &#61; D->}}
+
{{CodeExample|<-if <-KLand-> &#61; D->
 
+
  Land Deutschland
    Land Deutschland
+
<-end if->}}
 
 
{{AB:Code|<-end if->}}}}
 
  
 
Es wird nur "Land Deutschland" ausgegeben, wenn der Wert von {{AB:Code|<-Kland->}} "D" ist. Sollte dieser nicht "D" sein, passiert nichts.
 
Es wird nur "Land Deutschland" ausgegeben, wenn der Wert von {{AB:Code|<-Kland->}} "D" ist. Sollte dieser nicht "D" sein, passiert nichts.
  
Es stehen 5 Parameter zur Verfügung um Werte abzufragen. Diese lauten:
+
Es stehen 5 Parameter zur Verfügung, um Werte abzufragen. Diese lauten:
 
{{Legende|  
 
{{Legende|  
  
Zeile 43: Zeile 37:
 
| name=Parameter| description=Beschreibung}}
 
| name=Parameter| description=Beschreibung}}
  
Sollte man mit einer einfach <-If-> Abfrage nicht auskommen, kann man diese auch verschachteln um die Ergebnisse weiter einzugrenzen. Eine Verschachtelung ist eine erneute <-If-> Abfrage in einer bestehenden (also im Ergebnis). Eine solche sieht wie folgt aus:
+
Sollte man mit einer einfach <-If-> Abfrage nicht auskommen, kann man diese auch verschachteln, um die Ergebnisse weiter einzugrenzen. Eine Verschachtelung ist eine erneute <-If-> Abfrage in einer bestehenden (also im Ergebnis). Eine solche sieht wie folgt aus:
 +
{{CodeExample|<-if <-KLand-> &#61; D->
 +
  Land Deutschland
 +
  <-if <-KPLZ-> &#61; 47800->
 +
      Stadt Krefeld
 +
  <-else->
 +
      Irgendwo in Deutschland
 +
  <-end if->
 +
<-else->
 +
  Irgendwo auf der Welt
 +
<-end if->}}
  
{{AB:Code|<-if <-KLand-> &#61; D->}}
+
Es wird geprüft, ob die Variable {{AB:Code|<-KLand->}} den Wert "D" enthält. Wenn dies der Fall ist, wird "Land Deutschland" ausgegeben und anschließend wird die nächste <-If-> Abfrage geprüft. In unserem Fall abgefragt, ob die Variable {{AB:Code|<-KPLZ->}} den Wert "47800" enthält. Sollte dies der Fall sein, wird "Stadt Krefeld" ausgegeben. Wenn dies nicht der Fall ist, erhalten wir den Wert "Irgendwo in Deutschland".
  
    Land Deutschland
+
Sollte jedoch die Variable {{AB:Code|<-KLand->}} nicht den Wert "D" haben, kann diese zweite {{AB:Code|<-If->}} Abfrage gar nicht erst gestartet werden und es wird direkt der Wert "Irgendwo auf der Welt ausgegeben".
  
    {{AB:Code|<-if <-KPLZ-> &#61; 47800->}}
+
Ähnliche {{AB:Code|<-If->}} Abfragen können natürlich auch mit anderen Parametern durchgeführt werden. Nur bei dem Parameter "holds" gibt es eine Besonderheit. Mit "holds" kann man mit einer besonderen Syntax mehrere Werte prüfen.
  
        Stadt Krefeld
+
Dieser Syntax sieht wie folgt aus:
  
    {{AB:Code|<-else->}}
+
{{CodeExample|<-if ,D,NL, holds ,<-KLand->,->
 +
  Deutschland oder Niederlande
 +
<-else->
 +
  Irgendwo auf der Welt
 +
<-end if->}}
  
        Irgendwo in Deutschland
+
In diesem Fall (welcher nur mit dem "holds" Parameter möglich ist)  wird geprüft, ob die Variable {{AB:Code|<-KLand->}} den Wert "D" oder "NL" enthält. Sollte dies der Fall sein, wird "Deutschland oder Niederlande" ausgegeben, ansonsten "Irgendwo auf der Welt".
  
    {{AB:Code|<-end if->}}
+
== Berechnungen mit <-Funktion-> ==
 +
Sie können auch in Ihren Afterbuy Formularen Berechnungen mit der Funktion {{AB:Code|<-Funktion()->}} durchführen. Der Aufbau der Funktion sieht wie folgt aus:
  
{{AB:Code|<-else->}}
+
{{AB:Code|<-Funktion(1+2)->}}
  
    Irgendwo auf der Welt
+
In diesem Beispiel wäre der Wert, der in Ihrem Formular ausgegeben wird "3".
  
{{AB:Code|<-end if->}}
+
Sie können diese Funktion auch mit Variablen verwenden und somit dynamische Berechnungen durchführen.
  
Es wird geprüft, ob die Variable {{AB:Code|<-KLand->}} den Wert "D" enthält. Wenn dies der Fall ist, wird "Land Deutschland" ausgegeben und anschließend wird die nächste <-If-> Abfrage geprüft. In unserem Fall abgefragt, ob die Variable {{AB:Code|<-KPLZ->}} den Wert "47800" enthält. Sollte dies der Fall sein, wird "Stadt Krefeld" ausgegeben. Wenn dies nicht der Fall ist, erhalten wir den Wert "Irgendwo in Deutschland".
+
{{Beispiel|{{AB:Code|<-Funktion(<-summe->*1,19)->}}}}
 +
 
 +
Die Ausgabe auf der Seite wäre in dem Fall der Wert von {{AB:Code|<-Summe-> * 1,19}}.
 +
 
 +
Auch mit den Datumsfeldern können Berechnungen vorgenommen werden. So kann man z.B. ein Zahlungsziel von 14 Tagen als Datum auf z.B. die Rechnung ausgeben. Die Variable {{AB:Code|<-EndeDerAuktion->}} (Verkaufsdatum) kann man hierzu verwenden.
 +
Wenn der Käufer ein entsprechendes Zahlungsziel von 10 Tagen erhält, könnte die Funktion folgendermaßen aussehen:
  
Sollte jedoch die Variable {{AB:Code|<-KLand->}} nicht den Wert "D" haben, kann diese zweite {{AB:Code|<-If->}} Abfrage gar nicht erst gestartet werden und es wird direkt der Wert "Irgendwo auf der Welt ausgegeben".
+
{{Beispiel|{{AB:Code|<-Funktion(<-EndeDerAuktion-> dayadd 10)->}}}}
  
Ähnliche {{AB:Code|<-If->}} Abfragen können natürlich auch mit anderen Parametern durchgeführt werden. Nur bei dem Parameter "holds" gibt es eine Besonderheit. Mit "holds" kann man mit einer besonderen Syntax mehrere Werte prüfen.
+
Hier werden einfach 10 Tage auf das Verkaufsdatum aufaddiert und als Datum ausgegeben. Wenn demnach das Verkaufsdatum der 10.01.2020 gewesen ist, wird der 20.10.2020 als Zahlungsziel ausgegeben.
  
Dieser Syntax sieht wie folgt aus;
+
{{Warnung|Die Funktion {{AB:Code|<-Funktion()->}} kann nur 5x in einem Formular verwendet werden!}}
  
{{AB:Code|<-if ,D,NL, holds ,<-KLand->,->}}
+
== Reloop Schleife ==
 +
Die Funktion {{AB:Code|<-RELOOP->}} ist eine gesonderte Schleife, welche dazu dient alle Positionen eines Auftrags auszugeben. Diese Funktion sieht immer wie folgt aus:
  
    Deutschland oder Niederlande
+
{{CodeExample|<-RELOOP START->
 +
<-RELOOP END->}}
  
{{AB:Code|<-else->}}
+
In der {{AB:Code|<-RELOOP->}} Funktion können Variablen, Text und HTML Code verwendet werden.
  
    Irgendwo auf der Welt
+
Ein Beispiel könnte wie folgt aussehen:
  
{{AB:Code|<-end if->}}
+
{{CodeExample|<-RELOOP START->
 +
  <-Counter->,<-Artikelnummer->,<-ArtikelBeschreibung->,<-Menge->,<-Epreis->
 +
<-RELOOP END->}}
  
In diesem Fall (welcher nur mit dem "holds" Parameter möglich ist)  wird geprüft ob die Variable <-KLand-> den Wert "D" oder "NL" enthält. Sollte dies der Fall sein, wird "Deutschland oder Niederlande" ausgegeben, ansonsten "Irgendwo auf der Welt".
+
In diesem Beispiel wird die Schleife so lange durchlaufen, wie Positionen im Auftrag vorhanden sind. Es wird also immer über die Variable {{AB:Code|<-Counter->}} eine fortlaufende Nummer, dann die Artikelnummer, die Artikelbeschreibung, die Menge und der Einzelpreis ausgegeben.

Aktuelle Version vom 26. April 2023, 16:31 Uhr


Abfragelogik

if/else Abfragen[Bearbeiten]

If/else Abfragen können für das Optimieren und Formatieren Ihrer Vorlagen verwendet werden. Der Aufbau einer solchen Abfrage sieht immer wie folgt aus:

<-if-><-else-><-end if-> oder <-if-><-end if->

Dabei gilt zu beachten, dass die Anweisung, welche hinter der <-if-> Bedingung steht, nur angewendet wird, wenn die Bedingung gültig ist. Ansonsten wird alles hinter der <-else-> Bedingung ausgewertet. Sollte keine <-else-> Bedingung vorhanden sein, wird nichts ausgewertet. Die entsprechenden Bedingungen können anhand von Variablen angegeben werden.

Beispiel

<-if <-KLand-> = D->
   Land Deutschland
<-else->
   Irgendwo auf der Welt
<-end if->

Wichtig ist, dass die Bedingung (in diesem Fall die Variable <-KLand->= D) nur innerhalb des <-if-> stehen darf. In dem Beispiel wird geprüft, ob in der Variable <-KLand-> der Wert "D" steht. Wenn der Wert "D" in der Variable <-KLand-> steht, wird der Text "Land Deutschland" ausgegeben. Sollte die Variable <-KLand-> nicht den Wert "D" haben, wird der Wert nach dem <-else-> ausgegeben. In diesem Fall ist es "Irgendwo auf der Welt". Die <-else-> Bedingung ist optional und muss nicht angegeben werden. Es kann auch nur geprüft werden, ob in der Variable <-KLand-> der Wert "D" steht. Das sieht dann wie folgt aus:

Beispiel

<-if <-KLand-> = D->
   Land Deutschland
<-end if->

Es wird nur "Land Deutschland" ausgegeben, wenn der Wert von <-Kland-> "D" ist. Sollte dieser nicht "D" sein, passiert nichts.

Es stehen 5 Parameter zur Verfügung, um Werte abzufragen. Diese lauten:

ParameterBeschreibung
> Größer als
< Kleiner als
= gleich
<> ungleich ...
holds enthält

Sollte man mit einer einfach <-If-> Abfrage nicht auskommen, kann man diese auch verschachteln, um die Ergebnisse weiter einzugrenzen. Eine Verschachtelung ist eine erneute <-If-> Abfrage in einer bestehenden (also im Ergebnis). Eine solche sieht wie folgt aus:

Beispiel

<-if <-KLand-> = D->
   Land Deutschland
   <-if <-KPLZ-> = 47800->
      Stadt Krefeld
   <-else->
      Irgendwo in Deutschland
   <-end if->
<-else->
   Irgendwo auf der Welt
<-end if->

Es wird geprüft, ob die Variable <-KLand-> den Wert "D" enthält. Wenn dies der Fall ist, wird "Land Deutschland" ausgegeben und anschließend wird die nächste <-If-> Abfrage geprüft. In unserem Fall abgefragt, ob die Variable <-KPLZ-> den Wert "47800" enthält. Sollte dies der Fall sein, wird "Stadt Krefeld" ausgegeben. Wenn dies nicht der Fall ist, erhalten wir den Wert "Irgendwo in Deutschland".

Sollte jedoch die Variable <-KLand-> nicht den Wert "D" haben, kann diese zweite <-If-> Abfrage gar nicht erst gestartet werden und es wird direkt der Wert "Irgendwo auf der Welt ausgegeben".

Ähnliche <-If-> Abfragen können natürlich auch mit anderen Parametern durchgeführt werden. Nur bei dem Parameter "holds" gibt es eine Besonderheit. Mit "holds" kann man mit einer besonderen Syntax mehrere Werte prüfen.

Dieser Syntax sieht wie folgt aus:

Beispiel

<-if ,D,NL, holds ,<-KLand->,->
   Deutschland oder Niederlande
<-else->
   Irgendwo auf der Welt
<-end if->

In diesem Fall (welcher nur mit dem "holds" Parameter möglich ist) wird geprüft, ob die Variable <-KLand-> den Wert "D" oder "NL" enthält. Sollte dies der Fall sein, wird "Deutschland oder Niederlande" ausgegeben, ansonsten "Irgendwo auf der Welt".

Berechnungen mit <-Funktion->[Bearbeiten]

Sie können auch in Ihren Afterbuy Formularen Berechnungen mit der Funktion <-Funktion()-> durchführen. Der Aufbau der Funktion sieht wie folgt aus:

<-Funktion(1+2)->

In diesem Beispiel wäre der Wert, der in Ihrem Formular ausgegeben wird "3".

Sie können diese Funktion auch mit Variablen verwenden und somit dynamische Berechnungen durchführen.

Beispiel

<-Funktion(<-summe->*1,19)->

Die Ausgabe auf der Seite wäre in dem Fall der Wert von <-Summe-> * 1,19.

Auch mit den Datumsfeldern können Berechnungen vorgenommen werden. So kann man z.B. ein Zahlungsziel von 14 Tagen als Datum auf z.B. die Rechnung ausgeben. Die Variable <-EndeDerAuktion-> (Verkaufsdatum) kann man hierzu verwenden. Wenn der Käufer ein entsprechendes Zahlungsziel von 10 Tagen erhält, könnte die Funktion folgendermaßen aussehen:

Beispiel

<-Funktion(<-EndeDerAuktion-> dayadd 10)->

Hier werden einfach 10 Tage auf das Verkaufsdatum aufaddiert und als Datum ausgegeben. Wenn demnach das Verkaufsdatum der 10.01.2020 gewesen ist, wird der 20.10.2020 als Zahlungsziel ausgegeben.

Die Funktion <-Funktion()-> kann nur 5x in einem Formular verwendet werden!

Reloop Schleife[Bearbeiten]

Die Funktion <-RELOOP-> ist eine gesonderte Schleife, welche dazu dient alle Positionen eines Auftrags auszugeben. Diese Funktion sieht immer wie folgt aus:

Beispiel

<-RELOOP START->
<-RELOOP END->

In der <-RELOOP-> Funktion können Variablen, Text und HTML Code verwendet werden.

Ein Beispiel könnte wie folgt aussehen:

Beispiel

<-RELOOP START->
   <-Counter->,<-Artikelnummer->,<-ArtikelBeschreibung->,<-Menge->,<-Epreis->
<-RELOOP END->

In diesem Beispiel wird die Schleife so lange durchlaufen, wie Positionen im Auftrag vorhanden sind. Es wird also immer über die Variable <-Counter-> eine fortlaufende Nummer, dann die Artikelnummer, die Artikelbeschreibung, die Menge und der Einzelpreis ausgegeben.