[FOSSGIS-Talk] QGIS 3, Tabellenbeziehungen, Werte aus einer Hilfstabelle verwenden

Peter K. webentry at web.de
Mi Apr 28 13:44:20 CEST 2021


Hallo Bernd und Marco,

das Problem ist gelöst, die Glücksformel lautet:

 "CODE" = current_value( 'FL_CODE')

Wenn man das dann weiß, ist es total einfach.

Kurze Beschreibung:
Die Tabelle "Flächenobjekte" wurde in QGIS mit der Tabelle "Schlüsselwerte" in den Layereigenschaften
unter 'Attributformular' wie folgt verknüpft:

1. Spalte 'FL_CODE' von Tabelle "Flächenobjekte" über 'Werteabbildung' mit Spalte 'CODE' von Tabelle "Schlüsselwerte"

2. Spalte 'NUTZUNG' von Tabelle "Flächenobjekte" über 'Wertebeziehung' mit Spalte 'CODE' als 'Schlüsselspalte' und 'ART' als 'Wertspalte' von Tabelle "Schlüsselwerte"

Und dann im Feld 'Filterausdruck' den o.g. Wert eingetragen.

Bei einer zweiten Spalte wurde die 2. Variante auch eingestellt, nur mit geänderter 'Wertspalte'.


Damit bleibt nur noch das Thema DB ID, leider wird die Tabellen ID in QGIS nicht abgefragt, oder nicht ermittelt.
Wenn neue Objekte angelegt werden, wird das durch diesen Eintrag unter 'Vorgaben' abgefangen:

 maximum( "ID")+1
 
Das funktioniert nur nicht, wenn Objekte geteilt oder verschmolzen werden.
Aber das nur mal am Rande.

Gruß Peter

> Gesendet: Dienstag, 27. April 2021 um 16:12 Uhr
> Von: "Bernd Vogelgesang" <bernd.vogelgesang at gmx.de>
> An: "Peter K." <webentry at web.de>
> Cc: "FOSSGIS" <FOSSGIS-Talk-Liste at fossgis.de>
> Betreff: Re: Aw: Re: [FOSSGIS-Talk] QGIS 3, Tabellenbeziehungen, Werte aus einer Hilfstabelle verwenden
>
> Hi Peter,
> 
> tut gar nicht mehr weh.
> 
> Aber ich kann es leider weiterhin nicht vollumfänglich begreifen, da ja
> deine Anwendung weiterhin im Dunklen bleibt, also was dann mit dem Layer
> passiert, bzw. wozu er dienen soll.
> 
> Da ich aber bald den Bildschirm verlasse, schmeisse ich nur kurz den
> Begriff "Virtuellen Layer" in den Raum:
> 
> Da kann man entsprechend Abfragen in SQL (würg!) basteln, die
> entsprechende Spalten auf Grundlage deiner zwei Datenquellen befüllen.
> 
> Du fügst also in Deinem Objektlayer ein neues Objekt hinzu, und in
> deinem Virtuellen Layer aktualisieren sich dann automatisch die
> entsprechenden Werte.
> 
> Da das Ding ja nur "virtuell" ist, musst du ggf. Zwischen- oder
> Endstände als Datei exportieren.
> 
> Nur so als Idee.
> 
> Gruß,
> 
> Bernd
> 
> On 27.04.21 15:46, Peter K. wrote:
> > Hallo Bernd,
> >
> > sorry, aber das wollte ich nicht.
> > Ja ist immer schwierig mit dem Beschreiben, anders:
> >
> > Wenn in der Tabelle FOTB im Feld 'ART' der Wert "A" steht, dann soll in
> > Tabelle FOTB im Feld 'BESCHREIBUNG' der Wert 'A ist grün' aus der Tabelle HITB kommen.
> >
> > Besser?
> >
> > Gruß Peter
> >
> >> Gesendet: Dienstag, 27. April 2021 um 15:33 Uhr
> >> Von: "Bernd Vogelgesang" <bernd.vogelgesang at gmx.de>
> >> An: "Peter K." <webentry at web.de>, "FOSSGIS" <FOSSGIS-Talk-Liste at fossgis.de>
> >> Betreff: Re: [FOSSGIS-Talk] QGIS 3, Tabellenbeziehungen, Werte aus einer Hilfstabelle verwenden
> >>
> >> Hi Peter,
> >>
> >> ich hab mir jetzt den Kopf zerbrochen, um dein Problem, bzw. deinen
> >> Anwendungsfall zu verstehen. Jetzt ist er zerbrochen, aber ich habe es
> >> leider nicht verstanden :(
> >>
> >> Kannst Du es u.U. weniger schematisch, sondern etwas anwendungsbezogener
> >> erklären?
> >>
> >>
> >> Gruß,
> >>
> >> Bernd
> >>
> >> On 27.04.21 14:52, Peter K. wrote:
> >>> Hallo an alle,
> >>>
> >>> ich stehe gerade vor diesem Problem und komme nicht weiter. Vielleicht bin ich auch auf
> >>> dem "Holzweg" und man kann dieses Problem nicht mit 'Bordmitteln' lösen.
> >>> Ich habe zwei DB-Tabellen in QGIS eingebunden, eine mit Flächenobjekten (FOTB)und eine Hilfstabelle (HITB) ohne Geometrien,
> >>> nur mit Werten.
> >>> Die beiden Layer sind über eine 'Wertabbildung' auf einem Feld der FOTB verknüpft.
> >>> Wenn ein neues Objekt erstellt wird, wird in dem Verknüpften Feld "SPALTE 1" ein Wert 'A' ausgewählt.
> >>> Nun kommt das Problem, andere DB-Felder in der FOTB sollen mit Werten aus der HITB
> >>> 'befüllt' werden, entsprechend des Wertes 'A' in der FOTB.
> >>>
> >>> Ein Beispiel:
> >>> -------------------------------
> >>>    SPALTE 1 | Spalte 2 | Spalte 3 |
> >>> 1   A         A1          A2
> >>> ---------------------------------
> >>> 2   B         B1          B2
> >>> ---------------------------------
> >>> 3  usw.
> >>>
> >>> Ich hoffe das ist verständlich?
> >>>
> >>> Wenn es um sich nur um einige Werte in der "SPALTE 1" handeln würde, hätte ich das mit einem 'if()' Ausdruck
> >>> innerhalb des Layers gemacht.
> >>> Es sind aber einige Werte, und diese werden auch immer mal wieder erweitert.
> >>> Auch mit 'Beziehungsreferenz' bin ich nicht weiter gekommen.
> >>>
> >>> Nur noch zur Info, es sind zwei ORACLE-DB Tabellen. Ich habe aber keine Möglichkeit Datenbankseitig etwas zu regeln.
> >>> Es könnte also nur über QGIS gelöst werden, wenn überhaupt.
> >>>
> >>> QGIS: 3.16.6
> >>>
> >>> Gruß Peter
>


Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste