Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die If-Anweisung ist eine der leistungsfähigsten Programmstrukturen. Mit ihr können Sie einen Ausdruck auswerten, wenn eine Bedingung TRUE ist, und andernfalls einen anderen Ausdruck auswerten.
Anmerkung |
|---|
Wenn Sie Formatierungen mithilfe von Bedingungsformeln durchführen, sollten Sie immer das Else-Schlüsselwort verwenden, um zu vermeiden, dass Werte, die der If-Bedingung nicht entsprechen, ihr ursprüngliches Format verlieren. Sie können dies auch verhindern, indem Sie die DefaultAttribute-Funktion (If...Else formula = DefaultAttribute) verwenden. |
Beispiel
Eine Firma will allen Angestellten einen Bonus von 4 Prozent zuteilen, mit Ausnahme der Angestellten der Verkaufsabteilung, die einen Bonus von 6 Prozent erhalten sollen. Diese Aufgabe können Sie durch folgende Formel lösen, in der eine If-Anweisung verwendet wird:
If {Employee.Dept} = "Sales" Then
{Employee.Salary} * 0.06
Else
{Employee.Salary} * 0.04
In diesem Beispiel wird die Anweisung
{Employee.Salary} * 0.06
verarbeitet. Andernfalls wird der Ausdruck nach dem Schlüsselwort Else, nämlich
{Employee.Salary} * 0.04
verarbeitet.
Angenommen, ein anderes Unternehmen möchte seinen Angestellten einen Bonus in Höhe von vier Prozent geben. Dabei soll der Mindestbonus bei 1.000 € liegen. Beachten Sie, dass in diesem Beispiel keine Else-Klausel enthalten ist, da sie keine Pflichtklausel ist und hier auch nicht benötigt wird.
Local CurrencyVar bonus := {Employee.Salary} * 0.04;
If bonus < 1000 Then
bonus := 1000;
//Der letzte Ausdruck besteht einfach aus der Variablen 'bonus'.
//Dadurch wird der Wert der Variablen zurückgegeben, der das Ergebnis der Formel ist.
bonus
Beispiel 2 kann aber auch mit einem Else-Satz gestaltet werden:
Local CurrencyVar bonus := {Employee.Salary} * 0.04;
If bonus < 1000 Then
1000
Else
bonus
Nehmen wir an, dass die Firma aus dem obigen Beispiel den Bonus zusätzlich nach oben hin auf maximal 5.000 € beschränken will. In diesem Fall müssen Sie eine ElseIf-Klausel verwenden. Im folgenden Beispiel ist nur eine einzige ElseIf-Klausel enthalten, Sie können jedoch so viele wie nötig verwenden.
Anmerkung |
|---|
Pro If-Ausdruck darf nur eine einzige Else-Klausel verwendet werden. |
Die Else-Klausel wird nur dann abgearbeitet, wenn keine der If- oder ElseIf-Bedingungen erfüllt wird.
Local CurrencyVar bonus := {Employee.Salary} * 0.04;
If bonus < 1000 Then
1000
Else If bonus > 5000 Then
5000
Else
bonus;
Beispiel
Eine Firma möchte den Steuerbetrag schätzen, den ein Angestellter leisten muss, und eine entsprechende Mitteilung schreiben. Einkommen unter 8.000 US-Dollar werden nicht besteuert, Einkommen zwischen 8.000 und 20.000 US-Dollar werden mit 20% besteuert, Einkommen zwischen 20.000 und 35.000 US-Dollar werden mit 29% besteuert, und Einkommen über 35.000 US-Dollar werden mit 40% besteuert.
Local CurrencyVar tax := 0;
Local CurrencyVar income := {Employee.Salary};
Local StringVar message := "";
If income < 8000 Then
(
message := "no";
tax := 0
)
Else If income >= 8000 And income < 20000 Then
(
message := "lowest";
tax := (income - 8000)*0.20
)
Else If income >= 20000 And income < 35000 Then
(
message := "middle";
tax := (20000 - 8000)*0.20 + (income - 20000)*0.29
)
Else
(
message := "highest";
tax := (20000 - 8000)*0.20 + (35000 - 20000)*0.29 +
(income - 35000)*0.40
);
//Verwenden Sie zwei Dezimalstellen und einen Punkt als Tausendertrennzeichen.
Local StringVar taxStr := CStr (tax, 2, ",");
"Sie gehören " & Mitteilung & " Einkommensklasse an. " & "Ihr Steuerbetrag wird auf " & taxStr & " geschätzt."
Anmerkung |
|---|
Durch die Verwendung von Variablen wird die Berechnungslogik vereinfacht. Achten Sie auch darauf, dass hier zwei Anweisungen abgearbeitet werden, falls eine der Bedingungen erfüllt wird; in der ersten Anweisung wird der Variablen Steuer ein Wert zugewiesen, und in der anderen wird der Variablen Nachricht ein Text zugewiesen. Es ist häufig sinnvoll, bei Erfüllung einer Bedingung mehrere Anweisungen ausführen zu lassen. |
Anmerkung