[FOSSGIS-Talk] QGIS: Objektabfrageergebnisse nur für belegte Felder?

G. Wagner, Wagner-IT info at wagner-it.de
Fr Feb 2 11:18:01 CET 2018


Hallo Bernhard,

ja - ich hätte nicht so übertreiben sollen mit den 10.000 :)
Sollte das Problem nur veranschaulichen.

Gestört haben mich die leeren Felder schon oft, konkret jetzt bei einer Bebauungsplanübersicht. Da gibt es manchmal ein Lärmschutzgutachten und manchmal eben nicht oder wenn man es allgemein hält mal 3 verknüpfte Dokumente und mal 6. Und es wäre schön, wenn dann nicht 3 leere Felder erscheinen. 

Das mit der "Nutzeraktion mit einem Pythonskript" hört sich sehr mächtig. Fordert natürlich einiges an Einarbeitung, bzw. Wissen. Ich hoffe es ist irgendwann mal die Zeit dafür.

Weißt Du, ob sowas wie im QGISWebClient I für den neuen QGISWebClient II angedacht ist?

Vielen Dank und Grüße

Günter 

-----Ursprüngliche Nachricht-----
Von: FOSSGIS-Talk-Liste [mailto:fossgis-talk-liste-bounces at fossgis.de] Im Auftrag von Bernhard Ströbl
Gesendet: Freitag, 2. Februar 2018 11:01
An: fossgis-talk-liste at fossgis.de
Betreff: Re: [FOSSGIS-Talk] QGIS: Objektabfrageergebnisse nur für belegte Felder?

Hallo Günter,

was Du Dir wünscht, ist eine Felddarstellung in Abhängigkeit vom Feldwert eines Datensatzes (hier NULL/NOT NULL); was in QGIS aber implementiert ist, ist die Felddarstellung in Abhängigkeit von Feldeigenschaften bzw. nach Vorgaben in der Maske, diese Einstellungen gelten dann aber immer für alle Datensätze.

Noch ein Gedanke zu Deinem Beispiel (das vielleicht so in der Realität gar nicht auftritt): Wenn bei 10.000 Datensätzen nur bei einem ein Wert eingetragen ist, stimmt -mit Verlaub - etwas mit der Datenmodellierung nicht.

Beim QGISWebClient I hatte ich seinerzeit implementiert, dass NULL-Werte ausgeblendet werden (konfigurierbar), funktioniert aber, glaube ich nicht mehr so richtig. Dort ist das aber einfacher zu realisieren, denn es werden Werte für einen Datensatz angefragt und als HTML formatiert. 
Da kann man natürlich einen Filter schreiben, der NULL-Werte gar nicht mit aufführt. Wenn Du etwas ähnliches in QGIS möchtest, müsstest Du genauso vorgehen: Eine Nutzeraktion mit einem Pythonskript, das die Werte des angeklickten Features analysiert und nur Nicht-NULL-Werte z.B. 
in ein entsprechendes QWidget ausgibt (nur Anzeige!)

viel Erfolg
Bernhard

Am 02.02.2018 um 09:53 schrieb G. Wagner, Wagner-IT:
> Hallo Jürgen,
>
> Danke für Deine Antwort.
>
> Das setzt aber auch eine einheitliche Vorgehensweise (verbergen entsprechender Spalte) pro Layer voraus, wenn ich es richtig verstehe.
>
> Deshalb bisher auch mein Umweg über verschiedenen Layer, die wiederum nur eine Teilmenge der Attribute haben. Ist aber nicht schön.
> Im QGIS kann ich die Anzeige auch über die "Attributeditorzusammenstellung" (Drag+Drop) steuern aber auch hier nur für den ganzen Layer.
> Wenn von 10000 Objekten bei einem Objekt ein Wert gesetzt ist, wird bei allen anderen der Null-Wert angezeigt.
>
> Mein Wunsch wäre ein "verbergen wenn leer" pro Objekt.
>
> Das Ganze wird noch interessanter, wenn das QGIS-Projekt über den QGIS-Server im Web-Client genutzt wird.
> Hier könnte dann der Web-Client die Aufgabe übernehmen (Attributfeld nur darstellen wenn nicht Null).
> Gibt es hier Erfahrungen/Lösungen der Anwender in den verschiedenen Web-Clients?
>
> Danke und Gruß
>
> Günter
>
>
> -----Ursprüngliche Nachricht-----
> Von: FOSSGIS-Talk-Liste [mailto:fossgis-talk-liste-bounces at fossgis.de] 
> Im Auftrag von Jürgen E. Fischer
> Gesendet: Donnerstag, 1. Februar 2018 19:27
> An: fossgis-talk-liste at fossgis.de
> Betreff: Re: [FOSSGIS-Talk] QGIS: Objektabfrageergebnisse nur für belegte Felder?
>
> Moin Günter,
>
> On Thu, 01. Feb 2018 at 10:14:42 +0100, G. Wagner, Wagner-IT wrote:
>> gibt es im QGIS (2.18) eine Möglichkeit, dass man bei der Abfrage der 
>> Sachdaten eines Objektes nur diejenigen angezeigt bekommt, bei denen 
>> auch Werte hinterlegt sind?
>
>> Bei Objekten mit umfangreichen Sachdaten sind nicht immer für 
>> sämtliche Objekte alle Sachdaten belegt. Das Abfrageergebnis (Fenster 
>> der
>> Objektattribute) ist dann oft unnötig groß / lang, da viele 
>> "NULL"-Werte angezeigt werden.
>
> Das geht nicht direkt.  Du kannst aber in der Attributtabelle Spalten verbergen (Kontextmenü "Spalte verbergen" oder gleich mehrere über "Spalten anordnen").
>
> Dieses Snippet für die Python-Console macht das für den aktuellen 
> Layer
> automagisch:
>
> l = iface.activeLayer()
> c = l.attributeTableConfig()
> for i in reversed(range(len(l.fields()))):
>   uv = l.uniqueValues(i)
>   if len(uv)==1 and uv[0]==NULL:
>     c.setColumnHidden(i, True)
> l.setAttributeTableConfig(c)
>
>
> Jürgen
>



__________ Information from ESET Mail Security, version of virus signature database 16837 (20180202) __________

The message was checked by ESET Mail Security.
http://www.eset.com


--
....................................................................
FOSDEM'18  3. und 4. Februar 2018 in Brüssel https://fosdem.org/2018/

FOSSGIS 2018, die Konferenz für Open Source GIS mit OpenData und OpenStreetMap in Bonn!
21.-24. März 2018 an der Universität Bonn https://fossgis-konferenz.de/2018/
18.-25. März OSGeo Code Sprint im BaseCamp Bonn
https://wiki.osgeo.org/wiki/OSGeo_Code_Sprint_2018

FOSSGIS Veranstaltungen 2018
https://www.fossgis.de/node/306

FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem GIS-Bereich und Freier Geodaten!
https://www.fossgis.de/             https://twitter.com/fossgis_eV

____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
FOSSGIS-Talk-Liste at fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste




Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste