Używasz symboli wieloznacznych dla nagłówków kolumn w Kalkulatorze polowym QGIS?

10

Wiem, że możesz używać symboli wieloznacznych do takich pól (w kalkulatorze pola):

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

Czy możesz zrobić coś podobnego dla samych nagłówków kolumn?

Pytam o to, ponieważ łączę kilka warstw (używając właściwości Połączeń ) i ułatwiłbym edycję jednego zestawu filtrów zamiast edytowania kilku filtrów, ponieważ nazwy kolumn będą musiały zawierać nazwę połączonej warstwy.

Używam QGIS 2.2.

Joseph
źródło

Odpowiedzi:

4

Przepraszam. Symbole wieloznaczne są używane w ciągach znaków i niestety podwójne cudzysłowy wokół nazwy kolumny nie oznaczają, że jest to ciąg znaków. Nazwy kolumn to „identyfikatory”, które moim zdaniem są w zasadzie nazwami obiektów, ale nie jestem ekspertem. To nie znaczy, że nie ma sposobu na zrobienie tego, o co prosisz, ale nie będzie tak w kalkulatorze polowym.

Zack
źródło
Dzięki Zack, rozumiem, że kolumny / pola są „identyfikatorami”, byłoby miło, gdyby w jakiś sposób mogli to uwzględnić. W każdym razie zaakceptuję tę odpowiedź :)
Joseph
6

Po wprowadzeniu Edytora funkcji z powrotem w QGIS 2.8 można iterować nazwy pól i przeprowadzać analizę:

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
źródło