Project

General

Profile

Actions

Feature #8217

open

if-elseif-else construct

Added by Nicola Chiapolini almost 5 years ago. Updated about 3 years ago.

Status:
New
Priority:
Normal
Assignee:
Carsten Rose
Target version:
Start date:
16.04.2019
Due date:
% Done:

0%

Estimated time:
Discuss:
Prio Planung:
Vote:

Description

Prio2 für Nicola

Da if-elseif-else situationen ziemlich häuffig vorkommen, wäre es schön, wenn QFQ das direkt anbieten würde und wir nicht jeweils ein Pseudo-Query schreiben müssten.
(Intern könnte das aber natürlich problemlos über ein Pseudo-Query gelöst werden).

Mein Vorschlag für die Syntax wäre:

10.if = "{{feUser:TE:alnumx:s}}"="nchiapol" 
10 {
1.sql = SELECT shortname, mail FROM persons_ldap
[...]
}
11.elseif = "{{feUser:TE:alnumx:s}}"="crose"
[...]
12.else
[...]

sollte identisch sein mit

10.sql = SELECT 1 AS _ FROM (SELECT "") AS fake WHERE ("{{feUser:TE:alnumx:s}}"="nchiapol") LIMIT 1
10.1.sql = SELECT shortname FROM persons_ldap
[...]
11.sql = SELECT 1 AS _ FROM (SELECT "") AS fake WHERE NOT ("{{feUser:TE:alnumx:s}}"="nchiapol") AND ("{{feUser:TE:alnumx:s}}"="crose") LIMIT 1
[...]
12.sql = SELECT 1 AS _ FROM (SELECT "") AS fake WHERE NOT ("{{feUser:TE:alnumx:s}}"="nchiapol") OR ("{{feUser:TE:alnumx:s}}"="crose") LIMIT 1
[...]

Falls für if-elseif-else statt 10-11-12 drei mal 10 verwendet werden kann, wäre das natürlich noch eleganter. Aber ich glaube schon diese Lösung wäre ein grosser Fortschritt.

Vorteile: * viel intuitivere Syntax * leichter lesbar * falls später Probleme entdeckt werden, können diese Zentral behoben werden.

Use Cases von Nicola:  use-cases_conditions-functions.txt


Files


Related issues

Related to QFQ - Feature #10716: Business Logic mit Externen SkriptenSome day maybeCarsten Rose04.06.2020

Actions
Actions

Also available in: Atom PDF