Verwenden von Platzhaltern für Spaltenüberschriften in QGIS Field Calculator?

10

Ich weiß, dass Sie Platzhalter für solche Felder verwenden können (im Feldrechner):

case when "column" ILIKE '%example%' then 1
else 0
end

Können Sie etwas Ähnliches für die Spaltenüberschriften selbst tun?

Ich frage dies, weil ich mehrere Ebenen verbinde (mithilfe der Joins- Eigenschaften) und es mir einfacher machen würde, einen Satz von Filtern zu bearbeiten, anstatt mehrere Filter zu bearbeiten, da die Spaltennamen den Namen der verbundenen Ebene enthalten müssen.

Ich verwende QGIS 2.2.

Joseph
quelle

Antworten:

4

Es tut uns leid. Platzhalter werden zur Verwendung in Zeichenfolgen verwendet , und leider bedeuten die doppelten Anführungszeichen um einen Spaltennamen nicht, dass es sich um eine Zeichenfolge handelt. Spaltennamen sind "Bezeichner", die meiner Meinung nach im Grunde genommen Objektnamen sind, aber ich bin kein Experte. Das bedeutet nicht, dass es keine Möglichkeit gibt, das zu tun, was Sie verlangen, aber es wird nicht im Feldrechner passieren.

Zack
quelle
Danke Zack, ich verstehe, dass Spalten / Felder "Bezeichner" sind, wäre schön, wenn sie es irgendwie einschließen könnten. Ich werde diese Antwort vorerst sowieso akzeptieren :)
Joseph
6

Mit der Einführung des Funktionseditors in QGIS 2.8 ist es möglich, die Feldnamen zu durchlaufen und eine Art Analyse durchzuführen:

from qgis.core import *
from qgis.gui import *

@qgsfunction(args='auto', group='Custom')
def fields(feature, parent):
    layer = qgis.utils.iface.activeLayer()
    field_names = [field.name() for field in layer.fields()]
    for name in field_names:
        if "some_name" in name:
            # Do something
Joseph
quelle