GLE-Layer-Stellen-Zuordnung
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