GLE-Layer-Stellen-Zuordnung: Unterschied zwischen den Versionen

Aus kvwmap
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „__NOTOC__ Allen Stellen, denen der Flurstücke-Layer zugeordnet ist, müss(t)en die Layouts und damit auch die Layer zugeordnet werden. Die Zuordnung ist nicht…“)
 
Zeile 39: Zeile 39:
  
 
Ein INSERT würde so aussehen:
 
Ein INSERT würde so aussehen:
  INSERT INTO `used_layer` VALUES (123, 12345678, '0', 0, NULL, -1, -1, '', NULL, '0', '', '', '', '', NULL, NULL, '0', '0', 0, '0', 0);
+
  INSERT INTO `used_layer` VALUES (123, 12345678, '0', 0, NULL, -1, -1, <nowiki>''</nowiki>, NULL, '0', <nowiki>''</nowiki>, <nowiki>''</nowiki>, <nowiki>''</nowiki>, <nowiki>''</nowiki>, NULL, NULL, '0', '0', 0, '0', 0);
  
 
=== Stellen ohne Zugriff auf Eigentümer ===
 
=== Stellen ohne Zugriff auf Eigentümer ===
Zeile 84: Zeile 84:
  
 
Ein INSERT würde so aussehen:
 
Ein INSERT würde so aussehen:
  INSERT INTO `u_rolle2used_layer` VALUES (1, 123, 12345678, '0', '0', '0', '0', '', NULL, NULL, NULL, 0, NULL);
+
  INSERT INTO `u_rolle2used_layer` VALUES (1, 123, 12345678, '0', '0', '0', '0', <nowiki>''</nowiki>, NULL, NULL, NULL, 0, NULL);
  
 
=== Stellen ohne Zugriff auf Eigentümer ===
 
=== Stellen ohne Zugriff auf Eigentümer ===

Version vom 26. März 2020, 13:39 Uhr

Allen Stellen, denen der Flurstücke-Layer zugeordnet ist, müss(t)en die Layouts und damit auch die Layer zugeordnet werden. Die Zuordnung ist nicht ganz einfach, da kvwmap kein Werkzeug bereit hält, um sowas massenweise zu erledigen. Zudem muss unterschieden werden, ob in einer Stelle die Eigentümer-Informationen angezeigt werden oder nicht. Und schließlich kann es Stellen geben, wo die Zuordnung der Layouts aus irgendwelchen Gründen gar nicht gewollt ist.

Hier werden SQLs vorgestellt, die erlauben, die zugehörigen Layer den Stellen massenweise zuzuordnen. Es wird unterschieden, ob in einer Stelle die Eigentümer-Informationen angezeigt werden oder nicht. Diese Information wird aus dem Layer-Attributrecht "eigentuemer" des Flurstücke-Layers geholt. Es wird kein Abgleich mit der Zuordnung der Funktionen "ALB-Auszug 30" und "ALB-Auszug 35" gemacht.

Die SQLs sind SELECTs, die die notwendigen IDs sammeln, die für die jeweiligen INSERTs benötigt werden. Diese SELECTs können also sehr einfach in INSERTs abgewandelt bzw. erweitert werden.

Die Zuordnung der zugehörigen Layouts selbst wird hier nicht beschrieben, da sie sinnvoll erst dann geschehen kann, wenn die Layouts im Sachdatendrucklayout-Editor angelegt wurden. Die Zuordnung kann dann entweder auch über SQL erfolgen oder über den Sachdatendrucklayout-Editor. Dort reicht es aus, wenn das "oberste" Layout den jeweiligen Stellen zugeordnet wird, also "FST-Auszüge Flurstück mit Eigentum" bzw. "FST-Auszüge Flurstück ohne Eigentum".


Alle Stellen mit Zugriff auf "Flurstücke"

Listet die Stellen auf, denen der Flurstücke-Layer zugeordnet ist. Diese SQLs dienen nur der Selbstvergewisserung.

kein Zugriff auf Eigentümer

SET @layer_id = xxxxxxxx; -- ID von Layer "Flurstücke"
select 'kein Zugriff' as recht, ul.Stelle_ID, s.Bezeichnung 
from used_layer ul, stelle s
where ul.Layer_ID = @layer_id
and ul.Stelle_ID = s.ID
and ul.Stelle_ID not in (
select a2s.stelle_id
from layer_attributes2stelle a2s
where a2s.layer_id = @layer_id and a2s.attributename='eigentuemer'
)

lesender Zugriff auf Eigentümer

SET @layer_id = xxxxxxxx; -- ID von Layer "Flurstücke"
select 'lesen' as recht, a2s.stelle_id, s.Bezeichnung
from layer_attributes2stelle a2s, stelle s
where a2s.layer_id = @layer_id
and a2s.attributename='eigentuemer'
and a2s.stelle_id = s.ID


Auszüge-Layer den Stellen zuweisen

Listet Stellen- und Layer-ID für die Tabelle used_layer.

Ein INSERT würde so aussehen:

INSERT INTO `used_layer` VALUES (123, 12345678, '0', 0, NULL, -1, -1, '', NULL, '0', '', '', '', '', NULL, NULL, '0', '0', 0, '0', 0);

Stellen ohne Zugriff auf Eigentümer

Die 3 Layer für das Drucklayout mit Eigentümer werden durch Nennung ausgeschlossen.

SET @layer_id = xxxxxxxx; -- ID von Layer "Flurstücke"
SET @layer_buchmiteig = 11111111; -- ID von Layer "FST-Auszüge Buchung mit Eigentum"
SET @layer_fstmiteig = 22222222; -- ID von Layer "FST-Auszüge Flurstück mit Eigentum"
SET @layer_eigentuemer = 33333333; -- ID von Layer "FST-Auszüge Eigentümer"
select
foo.Stelle_ID, l.Layer_ID
from layer l,
(
select ul.Stelle_ID
from used_layer ul, stelle s
where ul.Layer_ID = @layer_id
and ul.Stelle_ID = s.ID
and ul.Stelle_ID not in (
select a2s.stelle_id
from layer_attributes2stelle a2s
where a2s.layer_id = @layer_id and a2s.attributename='eigentuemer'
)) foo
where l.Name like 'FST-Auszüge%'
and l.Layer_ID not in (@layer_buchmiteig, @layer_fstmiteig, @layer_eigentuemer)

Stellen mit Zugriff auf Eigentümer

SET @layer_id = xxxxxxxx; -- ID von Layer "Flurstücke"
select
foo.stelle_id, l.Layer_ID
from layer l,
(
select 'lesen' as recht, a2s.stelle_id, s.Bezeichnung
from layer_attributes2stelle a2s, stelle s
where a2s.layer_id = @layer_id
and a2s.attributename='eigentuemer'
and a2s.stelle_id = s.ID
) foo
where l.Name like 'FST-Auszüge%'


Auszüge-Layer den Nutzern der Stellen zuweisen

Listet User-, Stellen- und Layer-ID für die Tabelle u_rolle2used_layer.

Ein INSERT würde so aussehen:

INSERT INTO `u_rolle2used_layer` VALUES (1, 123, 12345678, '0', '0', '0', '0', '', NULL, NULL, NULL, 0, NULL);

Stellen ohne Zugriff auf Eigentümer

Die 3 Layer für das Drucklayout mit Eigentümer werden durch Nennung ausgeschlossen.

SET @layer_id = xxxxxxxx; -- ID von Layer "Flurstücke"
SET @layer_buchmiteig = 11111111; -- ID von Layer "FST-Auszüge Buchung mit Eigentum"
SET @layer_fstmiteig = 22222222; -- ID von Layer "FST-Auszüge Flurstück mit Eigentum"
SET @layer_eigentuemer = 33333333; -- ID von Layer "FST-Auszüge Eigentümer"
select ru.user_id as uid,
sid,
lid
from u_rolle2used_layer ru,
(
select l.Layer_ID as lid, fs.Stelle_ID as sid
from layer l,
(
select ul.Stelle_ID 
from used_layer ul, stelle s
where ul.Layer_ID = @layer_id
and ul.Stelle_ID = s.ID
and ul.Stelle_ID not in (
select a2s.stelle_id
from layer_attributes2stelle a2s
where a2s.layer_id = @layer_id and a2s.attributename='eigentuemer'
)
) fs
where l.Name like 'FST-Auszüge%'
and l.Layer_ID not in (@layer_buchmiteig, @layer_fstmiteig, @layer_eigentuemer)
) fl
where layer_id = @layer_id
and ru.stelle_id = sid
group by ru.stelle_id, ru.user_id, lid
order by ru.stelle_id, ru.user_id

Stellen mit Zugriff auf Eigentümer

SET @layer_id = xxxxxxxx; -- ID von Layer "Flurstücke"
select ru.user_id as uid,
sid,
lid
from u_rolle2used_layer ru,
(
select l.Layer_ID as lid, fs.Stelle_ID as sid
from layer l,
(
select a2s.stelle_id
from layer_attributes2stelle a2s, stelle s
where a2s.layer_id = @layer_id
and a2s.attributename='eigentuemer'
and a2s.stelle_id = s.ID
) fs
where l.Name like 'FST-Auszüge%'
) fl
where layer_id = @layer_id
and ru.stelle_id = sid
group by ru.stelle_id, ru.user_id, lid
order by ru.stelle_id, ru.user_id


Layer-Attribute den Stellen zuweisen

Listet Stellen- und Layer-ID sowie Attributnamen für die Tabelle layer_attributes2stelle.

Ein INSERT würde so aussehen:

INSERT INTO `layer_attributes2stelle` VALUES (12345678, 'flurstueckskennzeichen', 123, 0, 0);

Stellen ohne Zugriff auf Eigentümer

SET @layer_id = xxxxxxxx; -- ID von Layer "Flurstücke"
SET @layer_buchmiteig = 11111111; -- ID von Layer "FST-Auszüge Buchung mit Eigentum"
SET @layer_fstmiteig = 22222222; -- ID von Layer "FST-Auszüge Flurstück mit Eigentum"
SET @layer_eigentuemer = 33333333; -- ID von Layer "FST-Auszüge Eigentümer"
select
Stelle_ID, Layer_ID, name
from (
select distinct ul.Stelle_ID
from used_layer ul, stelle s
where ul.Layer_ID = @layer_id
and ul.Stelle_ID = s.ID
and ul.Stelle_ID not in (
select a2s.stelle_id
from layer_attributes2stelle a2s
where a2s.layer_id = @layer_id and a2s.attributename='eigentuemer'
)) foo1,
(
select l.Layer_ID, la.name
from layer l, layer_attributes la
where l.Name like 'FST-Auszüge%'
and l.Layer_ID not in (@layer_buchmiteig, @layer_fstmiteig, @layer_eigentuemer)
and l.Layer_ID = la.layer_id
) foo2

Stellen mit Zugriff auf Eigentümer

SET @layer_id = xxxxxxxx; -- ID von Layer "Flurstücke"
select
Stelle_ID, Layer_ID, name
from (
select a2s.stelle_id
from layer_attributes2stelle a2s, stelle s
where a2s.layer_id = @layer_id
and a2s.attributename='eigentuemer'
and a2s.stelle_id = s.ID
) foo1,
(
select l.Layer_ID, la.name
from layer l, layer_attributes la
where l.Name like 'FST-Auszüge%'
and l.Layer_ID = la.layer_id
) foo2
order by Stelle_ID, Layer_ID, name