Feature #8217
openif-elseif-else construct
0%
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
Updated by Carsten Rose over 4 years ago
- Tracker changed from Support to Feature
- Target version changed from 146 to 141
Updated by Carsten Rose almost 4 years ago
- Status changed from New to Some day maybe
Updated by Carsten Rose almost 4 years ago
- Status changed from Some day maybe to New
Updated by Carsten Rose over 3 years ago
- Target version changed from 141 to next8
Updated by Marc Egger over 3 years ago
- File use-cases_conditions-functions.txt use-cases_conditions-functions.txt added
- Assignee set to Marc Egger
Use Cases von Nicola
Updated by Marc Egger over 3 years ago
- Related to Feature #10716: Business Logic mit Externen Skripten added
Updated by Marc Egger over 2 years ago
- Status changed from Priorize to New
- Assignee changed from Marc Egger to Carsten Rose
Ein relativ umfangreiches projekt, ist eher unrealistisch, dass ich da je wirklich dran arbeiten kann mit meinem Pensum.