Project

General

Profile

Feature #8217

if-elseif-else construct

Added by Nicola Chiapolini 2 months ago. Updated about 1 month ago.

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

0%

Estimated time:
Discuss:

Description

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.

History

#1 Updated by Carsten Rose 2 months ago

  • Target version set to 19.6.3

#2 Updated by Carsten Rose about 1 month ago

  • Tracker changed from Support to Feature
  • Target version changed from 19.6.3 to 19.6.4

Also available in: Atom PDF