Index: trunk/info/info/alkis/alkisfsnw.php
===================================================================
--- trunk/info/info/alkis/alkisfsnw.php	(revision 355)
+++ trunk/info/info/alkis/alkisfsnw.php	(revision 376)
@@ -6,49 +6,26 @@
 
 	Version:
-	2011-11-16 Neuer Style class='dbg', Link Historie
-	2011-11-17 Parameter der Functions geÃ€ndert
-	2011-11-30 import_request_variables, $dbvers PostNAS 0.5 entfernt
-	2011-12-01 Summe der AbschnittsflÃ€chen (NUA) an amtl. BuchflÃ€che des FS angleichen 
-	2011-12-16 Zeilenumbruch in Nutzungsart, Spaltenbreite Link
-	2012-07-24 Export als CSV, pg_free_result(), pg_close()
-	2012-11-27 split deprecated, besser: explode
-	2013-01-17 FS-Kennzeichen (ALB-Format) als Parameter statt gmlid mÃ¶glich
-	2013-04-08 deprecated "import_request_variables" ersetzt
-	2013-04-11 ID-Links (im Testmodus) auch an Lagebezeichnung (mit/ohne HsNr) und an Nutzungs-Abschnitt
-	2013-06-24 Unna: Bodenneuordnung, strittige Grenze
-	2013-06-27 Bodenneuordnung u. stritt.Gr. in Tabellen-Struktur, Link zur Bodenerneuerung (neues Modul)
-	2014-01-30 Korrektur Nutzungsart (z.B. Friedhof mit class=funktion=0 hatte Anzeige "unbekannt")
-	2014-02-06 Korrektur
-	2014-09-09 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2014-09-15 Bei Relationen den Timestamp abschneiden
-	2014-09-23 Korrektur "IS NULL"
-	2014-09-30 Umbenennung SchlÃŒsseltabellen (Prefix), RÃŒckbau substring(gml_id)
-	2014-12-16 Zum Grundbuch einen Hinweis anzeigen, wenn es dazu berechtigte Buchungen gibt.
-	2015-12-09 Austausch .ico durch .png
+	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-03-14 Korrekturen
+	2016-12-01 HTML5, Gemeinsam genutzte Datenbanken ermÃ¶glichen
 
 	ToDo:
 	- BodenschÃ€tzung anzeigen
-	- EntschlÃŒsseln "Bahnkategorie" bei Bahnverkehr, "OberflÃ€chenmaterial" bei Unland
-	  Dazu evtl. diese Felder ins Classfld verschieben (Meta-Tabellen!)
+	- Bessere Differenzierung bei den Nutzungsarten (Tabelle dafÃŒr aufbauen)
 */
 session_start();
 $id="n";
+$eig="n";
 $cntget = extract($_GET);
 require_once("alkis_conf_location.php");
 if ($auth == "mapbender") {require_once($mapbender);}
 include("alkisfkt.php");
-if ($id == "j") {$idanzeige=true;} else {$idanzeige=false;}
 $keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n";
 if ($keys == "j") {$showkey=true;} else {$showkey=false;}
 ?>
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
+<!doctype html>
+<html lang="de">
 <head>
-	<meta name="author" content="b600352" >
-	<meta http-equiv="cache-control" content="no-cache">
-	<meta http-equiv="pragma" content="no-cache">
-	<meta http-equiv="expires" content="0">
-	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+	<meta charset="utf-8">
 	<title>ALKIS Flurst&uuml;cksnachweis</title>
 	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
@@ -64,46 +41,7 @@
 </head>
 <body>
-
 <?php
-
-function ber_bs_hinw($gmls) {
-	// Unter einem Grundbuch-Link den Hinweis auf "berechtigte Buchungssstellen" anzeigen
-	// In FS-Nachweis wird nur der EigentÃŒmer des direkt gebuchten GrundstÃŒcks angezeigt.
-	// Den Erbbauberechtigten sieht man erst in der Grundbuch-Auskunft.
-	global $debug, $showkey;
-
-	// Buchungstelle dien. >an> Buchungstelle herr.
-	$sql ="SELECT count(sh.gml_id) AS anz, sh.buchungsart, a.bezeichner
-	FROM ax_buchungsstelle sd JOIN ax_buchungsstelle sh ON sd.gml_id=ANY(sh.an) 
-	LEFT JOIN v_bs_buchungsart a ON sh.buchungsart=a.wert 
-	WHERE sd.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL GROUP BY sh.buchungsart, a.bezeichner;";
-
-	$v = array($gmls); // id dienende BS
-	$resan = pg_prepare("", $sql);
-	$resan = pg_execute("", $v);
-	if (!$resan) {
-		echo "\n<p class='err'>Fehler bei 'berechtigte Buchungsstellen'.</p>\n";
-		//if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmls."'</p>";}
-	}
-	$an=0;
-	while($rowan = pg_fetch_array($resan)) {
-		$an++;
-		if ($an == 1) {echo "\n\t<br>\n\t<p class='nwlink' title='Andere Grundst&uuml;cke mit Rechten an diesem.'>Berechtigte Buchungen:<br><b>";}
-		if ($an > 1) {echo",<br>";} // kann es gemischste Buchungsarten geben?
-		echo $rowan["anz"]." ".htmlentities($rowan["bezeichner"], ENT_QUOTES, "UTF-8");
-		if ($showkey) {
-			echo " <span class='key'>(".$rowan["buchungsart"].")</span>";
-		}
-	}
-	if ($an == 0) {
-		echo "<br><p class='nwlink' title='Kein anderes Grundst&uuml;ck hat ein Recht an diesem.'>Keine berechtigte Buchung</p>";
-	} else {
-		echo "</b></p>";
-	}
-	pg_free_result($resan);
-}
-
 // S t a r t
-$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisfsnw.php'");
 if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
 
@@ -121,5 +59,5 @@
 			$zgemkg=substr($zgemkg, 2, 4);
 		} else { // kein schÃ¶ner Land ..
-			$land='05'; // NRW, ToDo: Default-Land aus config
+			$land=$defland; // Default-Land aus config
 		}
 		$zflur=str_pad($arr[1], 3 , "0", STR_PAD_LEFT); // Flur-Nr
@@ -137,5 +75,5 @@
 		$fskzdb=$land.$zgemkg.$zflur.$zzaehler.$znenner.'__'; // FS-Kennz. Format Datenbank
 	}
-	// Feld flurstueckskennzeichen ist in DB indiziert
+	// Spalte "flurstueckskennzeichen" ist in DB indiziert
 	// Format z.B.'052647002001910013__' oder '05264700200012______'
 	$sql ="SELECT gml_id FROM ax_flurstueck WHERE flurstueckskennzeichen= $1 AND endet IS NULL ;";
@@ -172,6 +110,7 @@
 	$gemeinde=$row["gemeinde"];
 	$flurnummer=$row["flurnummer"];
-	$flstnummer=$row["zaehler"];
+	$zaehler=$row["zaehler"];
 	$nenner=$row["nenner"];
+	$flstnummer=$zaehler;
 	if ($nenner > 0) {$flstnummer.="/".$nenner;} // BruchNr
 	$fsbuchflae=$row["amtlicheflaeche"]; // amtliche Fl. aus DB-Feld
@@ -189,47 +128,59 @@
 }
 pg_free_result($res);
+
 // Balken
 if ($eig=="j") {
-	echo "<p class='fsei'>ALKIS Flurst&uuml;ck ".$gmkgnr."-".$flurnummer."-".$flstnummer."&nbsp;</p>\n";
-	echo "\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;ck mit Eigent&uuml;mer</h2>\n";
+	echo "<p class='fsei'>ALKIS Flurst&uuml;ck ".$gmkgnr."-".$flurnummer."-".$flstnummer."&nbsp;</p>\n"
+	."\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;ck mit Eigent&uuml;mer</h2>\n";
 } else {
-	echo "<p class='fskennz'>ALKIS Flurst&uuml;ck ".$gmkgnr."-".$flurnummer."-".$flstnummer."&nbsp;</p>\n";
-	echo "\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;ck</h2>\n";
-}
-echo "\n<table class='outer'>\n<tr>\n\t<td>"; // linke Seite
-	// darin Tabelle Kennzeichen
-	echo "\n\t<table class='kennzfs' title='Flurst&uuml;ckskennzeichen'>\n\t<tr>";
-		echo "\n\t\t<td class='head'>Gmkg</td>\n\t\t<td class='head'>Flur</td>\n\t\t<td class='head'>Flurst-Nr.</td>\n\t</tr>";
-		echo "\n\t<tr>\n\t\t<td title='Gemarkung'>";
+	echo "<p class='fskennz'>ALKIS Flurst&uuml;ck ".$gmkgnr."-".$flurnummer."-".$flstnummer."&nbsp;</p>\n"
+	."\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;ck</h2>\n";
+}
+
+// PrÃŒfung der Gebiets-Berechtigung bei gemeinsam genutzten Datenbanken (Kreis und Gemeinde)
+// FÃŒr das gkz (z.B. aus dem Mapfile-Namen) wird in der Konfiguration ein Filter gesetzt.
+if ( ($filtkreis != '' and $filtkreis != $kreis) or ($filtgem != '' and $filtgem != $gemeinde) ) {
+	// Einer der gesetzten Filter passt nicht
+	if ($debug > 2) {
+//++ SchÃ¶nes Bild? Stop-Zeichen?
+		echo "<p class='err'>Filter Kreis='".$filtkreis."', Gemeinde='".$filtgem."'</p>"
+		."<p class='err'>Flstk. Kreis='".$fskrs."', Gemeinde='".$fsgem."'</p>";
+	}
+	echo "\n<br><p class='stop1'>Zugriff nicht erlaubt</p>"
+	."\n<br><p class='stop2'>Dies Flurst&uuml;ck liegt ausserhalb der zust&auml;ndigen Stadt oder Gemeinde.</p>\n</body>\n</html>";
+	exit;
+}
+
+echo "\n<table class='outer'>\n<tr>\n\t<td>" // linke Seite
+	."\n\t<table class='kennzfs' title='Flurst&uuml;ckskennzeichen'>\n\t<tr>" // darin Tabelle Kennzeichen
+		."\n\t\t<td class='head'>Gmkg</td>\n\t\t<td class='head'>Flur</td>\n\t\t<td class='head'>Flurst-Nr.</td>\n\t</tr>"
+		."\n\t<tr>\n\t\t<td title='Gemarkung'>";
 		if ($showkey) {
 			echo "<span class='key'>".$gmkgnr."</span><br>";
 		}
-		echo $gemkname."&nbsp;</td>";
-		echo "\n\t\t<td title='Flurnummer'>".$flurnummer."</td>";
-		echo "\n\t\t<td title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>\n\t</tr>";
-	echo "\n\t</table>";
-echo "\n\t</td>\n\t<td>"; // rechte Seite
-	// FS-Daten 2 Spalten
-	echo "\n\t<table class='fsd'>";
-		echo "\n\t<tr>\n\t\t<td>Entstehung</td>";
-		echo "\n\t\t<td>".$entsteh."</td>\n\t</tr>";
-		echo "\n\t<tr>";
-			echo "\n\t\t<td>letz. Fortf</td>";
-			echo "\n\t\t<td title='Jahrgang / Fortf&uuml;hrungsnummer - Fortf&uuml;hrungsart'>";
+		echo $gemkname."&nbsp;</td>"
+		."\n\t\t<td title='Flurnummer'>".$flurnummer."</td>"
+		."\n\t\t<td title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>\n\t</tr>"
+	."\n\t</table>"
+."\n\t</td>\n\t<td>" // rechte Seite
+	."\n\t<table class='fsd'>" // FS-Daten 2 Spalten
+		."\n\t<tr>\n\t\t<td>Entstehung</td>"
+		."\n\t\t<td>".$entsteh."</td>\n\t</tr>"
+		."\n\t<tr>"
+			."\n\t\t<td>letz. Fortf</td>"
+			."\n\t\t<td title='Jahrgang / Fortf&uuml;hrungsnummer - Fortf&uuml;hrungsart'>";
 				foreach($arrn AS $val) { // Zeile f. jedes Element des Array
 					echo trim($val, '"')."<br>";
 				}
-			echo "</td>";
-		echo "\n\t</tr>";
-
-	echo "\n\t</table>";
-	if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck", "ax_flurstueck"); }
-echo "\n\t</td>\n</tr>\n</table>";
+			echo "</td>"
+		."\n\t</tr>"
+	."\n\t</table>"
+."\n\t</td>\n</tr>\n</table>";
 //	echo "\n<tr>\n\t<td>Finanzamt</td>\n\t<td>".$finanzamt." ".$finame  . "</td>\n</tr>";
 // Ende Seitenkopf
 
-echo "\n<hr>";
-echo "\n<p class='nwlink noprint'>weitere Auskunft:</p>"; // oben rechts von der Tabelle
-echo "\n<table class='fs'>";
+echo "\n<hr>"
+."\n<p class='nwlink noprint'>weitere Auskunft:</p>" // oben rechts von der Tabelle
+."\n<table class='fs'>";
 
 // ** G e b i e t s z u g e h o e r i g k e i t **
@@ -254,15 +205,14 @@
 	echo "<span class='key'>(".$gemeinde.")</span> ";
 }
-echo $gnam."</td><td width='80'>";  // Mindest-Breite der Spalte fuer die Links 
-	// Link zur FlurstÃŒcks-Historie (passt nicht ganz in die Zeile "Gemeinde", aber gut unter "weitere Auskunft")
-	echo "\n<p class='nwlink noprint'>";
-		echo "\n\t<a href='alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$gmlid;
-				if ($idanzeige) {echo "&amp;id=j";}
-				if ($showkey)   {echo "&amp;showkey=j";}
-			echo "' title='Vorg&auml;nger-Flurst&uuml;cke'>Historie ";
-			echo "<img src='ico/Flurstueck_Historisch.png' width='16' height='16' alt=''>";
-		echo "</a>";
-	echo "\n</p>";
-echo "</td></tr>";
+// Link zur FS-Historie (passt nicht ganz in die Zeile "Gemeinde", aber gut unter "weitere Auskunft")
+echo $gnam."</td><td class='nwlink'>"
+	."\n<p class='nwlink noprint'>"
+		."\n\t<a href='alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$gmlid;
+			if ($showkey)   {echo "&amp;showkey=j";}
+			echo "' title='Vorg&auml;nger-Flurst&uuml;cke'>Historie "
+			."<img src='ico/Flurstueck_Historisch.png' width='16' height='16' alt=''>"
+		."</a>"
+	."\n</p>"
+. "</td></tr>";
 pg_free_result($res);
 
@@ -335,24 +285,22 @@
 				echo "<td>&nbsp;</td>";
 			}
-			echo "\n\t<td>&nbsp;</td>";
-			echo "\n\t<td class='lr'>";
+			echo "\n\t<td>&nbsp;</td>"
+			."\n\t<td class='lr'>";
 			if ($showkey) {
 				echo "<span class='key' title='StraÃenschl&uuml;ssel'>(".$row["lage"].")</span>&nbsp;";
 			}
-			echo $sname."&nbsp;".$row["hausnummer"];
-			if ($idanzeige) {linkgml($gkz, $row["gml_id"], "Lagebezeichnung mit Hausnummer", "ax_lagebezeichnungmithausnummer");}
-			echo "</td>";
-			echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
-				echo "\n\t\t\t<a title='Lagebezeichnung mit Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=m&amp;gmlid=".$row["gml_id"];
+			echo $sname."&nbsp;".$row["hausnummer"]."</td>"
+			."\n\t<td>\n\t\t<p class='nwlink noprint'>"
+				."\n\t\t\t<a title='Lagebezeichnung mit Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=m&amp;gmlid=".$row["gml_id"];
 				if ($showkey) {echo "&amp;showkey=j";}
-				echo "'>Lage ";
-				echo "<img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''></a>";
-			echo "\n\t\t</p>\n\t</td>";
-		echo "\n</tr>";
+				echo "'>Lage <img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''></a>"
+			."\n\t\t</p>\n\t</td>"
+		."\n</tr>";
 		$j++;
 	}
+	$cnt_adressen=$j;
 	pg_free_result($res);
 }
-// Verbesserung: mehrere HsNr zur gleichen StraÃe als Liste?
+// +++ Verbesserung: mehrere HsNr zur gleichen StraÃe als Liste?
 
 // Lagebezeichnung OHNE Hausnummer  (Gewanne oder nur Strasse)
@@ -378,33 +326,31 @@
 	$lgml=$row["gml_id"]; // key der Lage
 	if (!$gewann == "") {
-		echo "\n<tr>";
-			echo "\n\t<td class='ll' title='Lagebezeichnung'><img src='ico/Lage_Gewanne.png' width='16' height='16' alt=''> Gewanne:</td>";
-			echo "\n\t<td></td>";
-			echo "\n\t<td class='lr'>".$gewann."</td>";
-			echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
-				echo "\n\t\t\t<a title='Lagebezeichnung Ohne Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml;
+		echo "\n<tr>"
+			."\n\t<td class='ll' title='Lagebezeichnung'><img src='ico/Lage_Gewanne.png' width='16' height='16' alt=''> Gewanne:</td>"
+			."\n\t<td></td>"
+			."\n\t<td class='lr'>".$gewann."</td>"
+			."\n\t<td>\n\t\t<p class='nwlink noprint'>"
+				."\n\t\t\t<a title='Lagebezeichnung Ohne Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml;
 				if ($showkey) {echo "&amp;showkey=j";}				
-				echo "'>\n\t\t\tLage <img src='ico/Lage_Gewanne.png' width='16' height='16' alt=''></a>";
-			echo "\n\t\t</p>\n\t</td>";
-		echo "\n</tr>";
+				echo "'>\n\t\t\tLage <img src='ico/Lage_Gewanne.png' width='16' height='16' alt=''></a>"
+			."\n\t\t</p>\n\t</td>"
+		."\n</tr>";
 	}
 	// Gleicher DB-Eintrag in zwei HTML-Zeilen, besser nur ein Link
 	if ($skey > 0) {
-		echo "\n<tr>";
-			echo "\n\t<td class='ll'><img src='ico/Lage_an_Strasse.png' width='16' height='16' alt=''> Stra&szlig;e:</td>";
-			echo "\n\t<td></td>";
-			echo "\n\t<td class='lr'>";
+		echo "\n<tr>"
+			."\n\t<td class='ll'><img src='ico/Lage_an_Strasse.png' width='16' height='16' alt=''> Stra&szlig;e:</td>"
+			."\n\t<td></td>"
+			."\n\t<td class='lr'>";
 			if ($showkey) {
 				echo "<span class='key'>(".$skey.")</span>&nbsp;";
 			}
-			echo $row["bezeichnung"];
-			if ($idanzeige) {linkgml($gkz, $lgml, "Lagebezeichnung o. HsNr.", "ax_lagebezeichnungohnehausnummer");}
-			echo "</td>";
-			echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
-				echo "\n\t\t\t<a title='Lagebezeichnung Ohne Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml;
+			echo $row["bezeichnung"]."</td>"
+			."\n\t<td>\n\t\t<p class='nwlink noprint'>"
+				."\n\t\t\t<a title='Lagebezeichnung Ohne Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml;
 				if ($showkey) {echo "&amp;showkey=j";}				
-				echo "'>\n\t\t\tLage <img src='ico/Lage_an_Strasse.png' width='16' height='16' alt=''>\n\t\t\t</a>";
-			echo "\n\t\t</p>\n\t</td>";
-		echo "\n</tr>";
+				echo "'>\n\t\t\tLage <img src='ico/Lage_an_Strasse.png' width='16' height='16' alt=''>\n\t\t\t</a>"
+			."\n\t\t</p>\n\t</td>"
+		."\n</tr>";
 	}
 	$j++;
@@ -415,4 +361,6 @@
 // ** N U T Z U N G ** Gemeinsame FlÃ€che von NUA und FS
 // Tabellenzeilen (3 Spalten) mit tats. Nutzung zu einem FS ausgeben
+
+/* N U T Z U N G   C l a s s i c (alt)
 $sql ="SELECT m.title, m.fldclass, m.fldinfo, n.gml_id, n.nutz_id, n.class, n.info, n.zustand, n.name, n.bezeichnung, m.gruppe, 
 st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) AS schnittflae, c.label, c.blabla 
@@ -487,5 +435,4 @@
 				}
 			}
-
 			if ($info != "") { // manchmal ein zweites Zusatzfeld (wie entschlÃŒsseln?)
 				echo ", ".$fldinfo."=".$info;
@@ -505,5 +452,4 @@
 			if ($nam != "") {echo "<br>Name: ".$nam;}
 			if ($bez != "") {echo "<br>Bezeichnung: ".$bez;}
-			if ($idanzeige) {linkgml($gkz, $gml, "Nutzungs-Abschnitt", "");}
 
 		echo "</td>";
@@ -522,49 +468,143 @@
 	$j++;
 }
+  E N D E   N U T Z U N G   C l a s s i c  */
+
+/* Status "Nutzung":
+
+ Die Classic-Tabelle "nutzung" ist eine Zusammenfassung aller Tabellen mit Nutzungs-FlÃ€chen
+ Die Classic-Tabelle "nutzung_meta" zeigt die Kategorie und Gruppe des Nutzungs-Abschnitts an.
+
+ Aus der norGIS-Struktur wird ersatzweise VORLÃUFIG die Tabelle "nutz_21" verwendet,
+ die das alte ALB-Format der Nutzungs-Abschnitte von FlurstÃŒcken simuliert.
+ Hier finden sich bereits verschnittene FlÃ€chen, aber die gml_id fehlt.
+
+ Die EntschlÃŒsselung der Nutzungsart in den verschiedenen ALKIS-Varianten ist darin unterentwickelt.
+ Diese ist eigentlich fÃŒr jede der getrennten Tabellen der Gruppe Nutzungsrt individuell.
+ Die Classic-LÃ¶sung mit 2 Zusatzfeldern war schon sehr pauschalisiert, aber 
+ durch die RÃŒck-Konvertierung in ALB-Strukturen in der norGIS-Version ist das zu stark vereinfacht.
+ z.B. wird "WohnbauflÃ€che" mit der Zusatzeigenschaft "Art der Bebauung": 'Offen'
+ nun zur Nutzungsart "Offen".
+ Durch JOIN auf die "alkis_elemente" mit einem Teil des SchlÃŒssels wird das zur "WohnbauflÃ€che, Offen".
+ Es sollte eine Tabellen-Struktur bereit gestellt werden, die auch aussagt, dass der Wert "Offen" zur
+ Zusatz-Eigenschaft "Art der Bebauung" gehÃ¶rt. Dazu muss das PostProcessing erweitert werden. */
+
+
+$sql="SELECT e.definition, trim(both FROM n.nutzsl) AS nutzsl, trim(both FROM n.fl) AS fl, trim(both FROM s.nutzung) AS nutzung
+ FROM nutz_21 n JOIN nutz_shl s ON n.nutzsl = s.nutzshl
+ JOIN alkis_elemente e ON e.kennung = substring(n.nutzsl from 1 for 5)
+WHERE n.flsnr = $1 ORDER BY cast(n.fl AS integer) DESC;";
+// Flurstueckskennzeichen mit Trennzeichen im ALB-Format wie 'llgggg-fff-zzzzz/nnn'
+// Alternativ kÃ¶nnte auch der VIEW "ax_tatsaechlichenutzungsschluessel" fÃŒr den Text zur Nutzungsart verwendet werden.
+
+$fskennzalb=$defland.$gmkgnr."-".str_pad($flurnummer,3,"0",STR_PAD_LEFT)."-".str_pad($zaehler,5,"0",STR_PAD_LEFT)."/".str_pad($nenner,3,"0",STR_PAD_LEFT);
+// echo "<p class='err'>Kennz ALB='".$fskennzalb."'</p>";
+
+$v = array($fskennzalb);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {
+	echo "<p class='err'>Fehler bei Suche tats. Nutzung</p>\n";
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = FS-Kennz = '".$fskennzalb."'</p>";}
+}
+
+$j=0;
+while($row = pg_fetch_array($res)) {
+	$flae=$row["fl"]; // BuchflÃ€che
+	$nutzsl=$row["nutzsl"]; // SchlÃŒssel
+	$nutzung=$row["nutzung"]; // Bezeichnung aus ALB-Tabelle, "fein"
+	$defi=$row["definition"]; // Langer Text mit Beschreibung
+	$title=htmlentities($defi, ENT_QUOTES, "UTF-8"); // .. fÃŒr Anzeige aufbereitet
+
+	// Aus der Definition den String zwischen den ersten '' ausschneiden
+	$pos = strpos($defi, "'") + 1;
+	$len = strpos($defi, "'", $pos) - $pos;
+	$nutztab=substr($defi, $pos, $len); // Nutzungart Kategorie aus der Beschreibung ausschneiden
+
+	echo "\n<tr>\n\t";
+		if ($j == 0) {
+			echo "<td class='ll' title='Abschnitt der tats&auml;chlichen Nutzung'><img src='ico/Abschnitt.png' width='16' height='16' alt=''> Nutzung:</td>";
+		} else {
+			echo "<td>&nbsp;</td>";
+		}
+		$absflaebuch = number_format($flae,0,",",".") . " m&#178;"; // Formatierte Abschnitts-Buch-FlÃ€che
+		echo "\n\t<td class='fla' title='Buchfl&auml;che des Abschnitts'>".$absflaebuch."</td>";
+
+		echo "\n\t<td class='lr' title='".$title."'>";
+			if ($showkey) {echo "<span class='key'>(".$nutzsl.")</span> ";}
+			echo $nutztab.", ".$nutzung
+		."</td>"
+		."\n\t<td>";
+/*		//	Derzeit ist keine Gruppe zugeordnet
+			switch ($grupp) { // Icon nach 4 Objektartengruppen
+				case "Siedlung":   $ico = "Abschnitt.png"; break;
+				case "Verkehr":	   $ico = "Strassen_Klassifikation.png"; break;
+				case "Vegetation": $ico = "Wald.png"; break;
+				case "GewÃ€sser":   $ico = "Wasser.png";	break;
+				default:	$ico = "Abschnitt.png";	break;
+			}
+			// Icon ist auch im Druck sichtbar, class='noprint' ?		
+			echo "<p class='nwlink'><img title='".$title."' src='ico/".$ico."' width='16' height='16' alt='NUA'></p>";
+*/
+		echo "</td>"
+	."\n</tr>";
+	$j++;
+}
 pg_free_result($res);
 // ENDE  N U T Z U N G
 
-echo "\n<tr>"; // Summenzeile
-	echo "\n\t<td class='ll' title='amtliche Fl&auml;che (Buchfl&auml;che)'>Fl&auml;che:</td>";
-	echo "\n\t<td class='fla sum'>";
-	echo "<span title='geometrisch berechnete Fl&auml;che = ".$fsgeomflaed."' class='flae'>".$fsbuchflaed."</span></td>";
+echo "\n<tr>" // Summenzeile
+	."\n\t<td class='ll' title='amtliche Fl&auml;che (Buchfl&auml;che)'>Fl&auml;che:</td>"
+	."\n\t<td class='fla sum'>"
+	."<span title='geometrisch berechnete Fl&auml;che = ".$fsgeomflaed."' class='flae'>".$fsbuchflaed."</span></td>";
 
 	// Flaeche und Link auf GebÃ€ude-Auswertung
-	echo "\n\t<td>&nbsp;</td>\n\t<td>";
-		echo "\n\t\t<p class='nwlink noprint'>"; // Gebaeude-Verschneidung
-			echo "\n\t\t\t<a href='alkisgebaeudenw.php?gkz=".$gkz."&amp;gmlid=".$gmlid;
-			if ($idanzeige) {echo "&amp;id=j";}
+	echo "\n\t<td>&nbsp;</td>\n\t<td>"
+		."\n\t\t<p class='nwlink noprint'>" // Gebaeude-Verschneidung
+			."\n\t\t\t<a href='alkisgebaeudenw.php?gkz=".$gkz."&amp;gmlid=".$gmlid;
 			if ($showkey) {echo "&amp;showkey=j";}
-			echo "' title='Geb&auml;udenachweis'>Geb&auml;ude <img src='ico/Haus.png' width='16' height='16' alt=''></a>";
-		echo "\n\t\t</p>";
-	echo "\n\t</td>";
-echo "\n</tr>";
+			if ($cnt_adressen > 0) { // wenn Adresse vorgekommen ist
+				echo "' title='Geb&auml;udenachweis'>Geb&auml;ude ";
+			} else { // GebÃ€ude mit Adresse gibt es NICHT, das ist klar
+				echo "' title='Suche Geb&auml;ude ohne Adresse auf dem Flurst&uuml;ck oder angrenzende Geb&auml;ude'>Suche ";
+			}
+			echo "<img src='ico/Haus.png' width='16' height='16' alt=''></a>"
+		."\n\t\t</p>"
+	."\n\t</td>"
+."\n</tr>";
 
 // H i n w e i s  auf Bodenneuordnung oder eine strittige Grenze
 // b.name, b.artderfestlegung, 
 
-$sql_boden ="SELECT a.wert, a.bezeichner AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez, 
+$sql_boden ="SELECT a.k AS wert, a.v AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez, 
 b.name AS verf_name, d.bezeichnung AS stelle_bez, d.stelle AS stelle_key 
-FROM ax_bauraumoderbodenordnungsrecht b JOIN v_baurecht_adf a ON a.wert=b.artderfestlegung 
+FROM ax_bauraumoderbodenordnungsrecht b 
+LEFT JOIN alkis_wertearten a ON cast(b.artderfestlegung AS character varying)=a.k AND a.element='ax_bauraumoderbodenordnungsrecht' AND a.bezeichnung='artderfestlegung'
 LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle 
 WHERE b.endet IS NULL AND d.endet IS NULL  
-AND (ST_Within((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 AND endet IS NULL ), wkb_geometry) 
- OR ST_Overlaps((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 AND endet IS NULL), wkb_geometry))";
+AND (ST_Within((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 AND endet IS NULL ), wkb_geometry)
+ OR ST_Overlaps((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 AND endet IS NULL), wkb_geometry));";
 
 pg_prepare($con, "bodeneuordnung", $sql_boden);
 $res_bodeneuordnung = pg_execute($con, "bodeneuordnung", array($gmlid));
-
-$sql_str="SELECT gml_id 
-FROM ax_besondereflurstuecksgrenze WHERE endet IS NULL AND 1000 = ANY(artderflurstuecksgrenze) 
+if (!$res_bodeneuordnung) {
+	echo "<p class='err'>Fehler bei Bau-, Raum- oder Bodenordnungsrecht</p>\n";
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql_boden."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+
+$sql_str="SELECT gml_id FROM ax_besondereflurstuecksgrenze WHERE endet IS NULL AND 1000 = ANY(artderflurstuecksgrenze) 
 AND ST_touches((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 AND endet IS NULL),wkb_geometry);";
 
 pg_prepare($con, "strittigeGrenze", $sql_str);
 $res_strittigeGrenze = pg_execute($con, "strittigeGrenze", array($gmlid));
+if (!$res_strittigeGrenze) {
+	echo "<p class='err'>Fehler bei strittige Grenze</p>\n";
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql_str."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
 
 if (pg_num_rows($res_bodeneuordnung) > 0 OR pg_num_rows($res_strittigeGrenze) > 0) {
-	echo "\n<tr>";
-	echo "\n\t<td title='Hinweise zum Flurst&uuml;ck'><h6><img src='ico/Hinweis.png' width='16' height='16' alt=''> ";
-	echo "Hinweise:</td></h6>\n\t<td colspan=3>&nbsp;</td>";
-	echo "\n</tr>";
+	echo "\n<tr>"
+	."\n\t<td title='Hinweise zum Flurst&uuml;ck'><h6><img src='ico/Hinweis.png' width='16' height='16' alt=''> "
+	."Hinweise:</h6></td>\n\t<td colspan=3>&nbsp;</td>"
+	."\n</tr>";
 
 	if (pg_num_rows($res_bodeneuordnung) > 0) {
@@ -573,34 +613,32 @@
 
 			// Zeile 1 - kommt immer, darum hier den Link
-			echo "\n<tr title='Bau-, Raum- oder Bodenordnungsrecht'>";
-				echo "\n\t<td>Bodenrecht:</td>";
-				echo "\n\t<td>Festlegung</td>"; // "Art der Festlegung" zu lang
-				echo "\n\t<td>";
+			echo "\n<tr title='Bau-, Raum- oder Bodenordnungsrecht'>"
+				."\n\t<td>Bodenrecht:</td>"
+				."\n\t<td>Festlegung</td>" // "Art der Festlegung" zu lang
+				."\n\t<td>";
 					if ($showkey) {echo "<span class='key'>(".$row['wert'].")</span> ";}
-					echo $row['art_verf'];
-				echo "</td>";
-				echo "\n\t<td>";
+					echo $row['art_verf']
+				."</td>\n\t<td>";
 				// LINK:
-				echo "\n\t\t<p class='nwlink noprint'>";
-					echo "\n\t\t\t<a href='alkisbaurecht.php?gkz=".$gkz."&amp;gmlid=".$row['verf_gml'];
-					if ($idanzeige) {echo "&amp;id=j";}
+				echo "\n\t\t<p class='nwlink noprint'>"
+					."\n\t\t\t<a href='alkisbaurecht.php?gkz=".$gkz."&amp;gmlid=".$row['verf_gml'];
 					if ($showkey) {echo "&amp;showkey=j";}
-					echo "' title='Bau-, Raum- oder Bodenordnungsrecht'>Recht <img src='ico/Gericht.png' width='16' height='16' alt=''></a>";
-				echo "\n\t\t</p>";			
-				echo "</td>";
-			echo "\n</tr>";
+					echo "' title='Bau-, Raum- oder Bodenordnungsrecht'>Recht <img src='ico/Gericht.png' width='16' height='16' alt=''></a>"
+				."\n\t\t</p>"		
+				."</td>"
+			."\n</tr>";
 
 			// Zeile 2
-			$dstell=$row['stelle_key']; // LEFT JOIN
+			$dstell=$row['stelle_key'];
 			if ($dstell != "") { // Kann auch leer sein
-				echo "\n<tr title='Flurbereinigungsbeh&ouml;rde'>";
-					echo "\n\t<td>&nbsp;</td>";
-					echo "\n\t<td>Dienststelle</td>";
-					echo "\n\t<td>";
+				echo "\n<tr title='Flurbereinigungsbeh&ouml;rde'>"
+					."\n\t<td>&nbsp;</td>"
+					."\n\t<td>Dienststelle</td>"
+					."\n\t<td>";
 						if ($showkey) {echo "<span class='key'>(".$dstell.")</span> ";}
-						echo $row['stelle_bez'];
-					echo "</td>";
-					echo "\n\t<td>&nbsp;</td>";
-				echo "\n</tr>";
+						echo $row['stelle_bez']
+					."</td>"
+					."\n\t<td>&nbsp;</td>"
+				."\n</tr>";
 			}
 
@@ -609,7 +647,7 @@
 			$vnam=$row['verf_name']; // noch seltener
 			if ($vbez != "") {
-				echo "\n<tr title='Verfahrensbezeichnung'>";
-					echo "\n\t<td>&nbsp;</td>\n\t<td>Verfahren</td>";
-					echo "\n\t<td>";
+				echo "\n<tr title='Verfahrensbezeichnung'>"
+					."\n\t<td>&nbsp;</td>\n\t<td>Verfahren</td>"
+					."\n\t<td>";
 						if ($vnam == "") {
 							echo $vbez; // nur die Nummer
@@ -618,49 +656,45 @@
 							echo $vnam;
 						}
-		 			echo "</td>";
-					echo "\n\t<td>&nbsp;</td>";
-				echo "\n</tr>";
-			}
-		}
-	}
-
+		 			echo "</td>"
+					."\n\t<td>&nbsp;</td>"
+				."\n</tr>";
+			}
+		}
+	}
 	if (pg_num_rows($res_strittigeGrenze) > 0) { // 1 Zeile
-		echo "\n<tr>";
-		echo "\n<td>Strittige Grenze:</td>";
-		echo "<td colspan=2>Mindestens eine Flurst&uuml;cksgrenze ist als <b>strittig</b> zu bezeichnen. Sie kann nicht festgestellt werden, weil die Beteiligten sich nicht &uuml;ber den Verlauf einigen. Nach sachverst&auml;ndigem Ermessen der Katasterbeh&ouml;rde ist anzunehmen, dass das Liegenschaftskataster nicht die rechtm&auml;&szlig;ige Grenze nachweist.</td>";
-		echo "\n<td>&nbsp;</td>";
-		echo "\n</tr>";
-	}
-}
-
+		echo "\n<tr>\n<td>Strittige Grenze:</td>"
+		."<td colspan=2>Mindestens eine Flurst&uuml;cksgrenze ist als <b>strittig</b> zu bezeichnen. Sie kann nicht festgestellt werden, weil die Beteiligten sich nicht &uuml;ber den Verlauf einigen. Nach sachverst&auml;ndigem Ermessen der Katasterbeh&ouml;rde ist anzunehmen, dass das Liegenschaftskataster nicht die rechtm&auml;&szlig;ige Grenze nachweist.</td>"
+		."\n<td>&nbsp;</td>\n</tr>";
+	}
+}
 echo "\n</table>";
 
 // G R U N D B U C H
-echo "\n<table class='outer'>";
-	echo "\n<tr>";
-		echo "\n\t<td>";
-			echo "\n\t\t<a name='gb'></a>\n\t\t<h3><img src='ico/Grundbuch_zu.png' width='16' height='16' alt=''> Grundb&uuml;cher</h3>";
-		echo "\n\t</td>";
-		echo "\n\t<td>";
-			echo "\n\t\t<p class='nwlink noprint'>";
-				echo "\n\t\t\t<a href='".$_SERVER['PHP_SELF']. "?gkz=".$gkz."&amp;gmlid=".$gmlid;
-				if ($idanzeige) { echo "&amp;id=j";}
-				if ($showkey)   {echo "&amp;showkey=j";}
+echo "\n<table class='outer'>"
+	."\n<tr>"
+		."\n\t<td>"
+			."\n\t\t<a id='gb'></a>\n\t\t<h3><img src='ico/Grundbuch_zu.png' width='16' height='16' alt=''> Grundb&uuml;cher</h3>"
+		."\n\t</td>"
+		."\n\t<td>"
+			."\n\t\t<p class='nwlink noprint'>"
+				."\n\t\t\t<a href='".$_SERVER['PHP_SELF']. "?gkz=".$gkz."&amp;gmlid=".$gmlid;
+				if ($showkey) {echo "&amp;showkey=j";}
+
 				// Umschalter: FS-Nachw ruft sich selbst mit geaend. Param. auf. Posit. auf Marke #gb
 				if ($eig=="j") {
 					echo "&amp;eig=n#gb' title='Flurst&uuml;cksnachweis'>ohne Eigent&uuml;mer</a>";
-				} else {
-					echo "&amp;eig=j#gb' title='Flurst&uuml;cks- und Eigent&uuml;mernachweis'>mit Eigent&uuml;mer ";
-					echo "<img src='ico/EigentuemerGBzeile.png' width='16' height='16' alt=''></a>";
+				} else { // ++ kÃ¶nnte man sich sparen, wenn unten nur ein "fiktives Blatt" kommt
+					echo "&amp;eig=j#gb' title='Flurst&uuml;cks- und Eigent&uuml;mernachweis'>mit Eigent&uuml;mer "
+					."<img src='ico/EigentuemerGBzeile.png' width='16' height='16' alt=''></a>";
 				}
-			echo "\n\t\t</p>";
-		echo "\n\t</td>";
-	echo "\n</tr>";
-echo "\n</table>\n";
+			echo "\n\t\t</p>"
+		."\n\t</td>"
+	."\n</tr>"
+."\n</table>\n";
 
 // B U C H U N G S S T E L L E N  zum FS (istGebucht)
-$sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer as lfd, s.zaehler, s.nenner, s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, b.bezeichner AS bart 
+$sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer as lfd, s.zaehler, s.nenner, s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, b.v AS bart, b.d AS barttitle
 FROM ax_flurstueck f JOIN ax_buchungsstelle s ON s.gml_id=f.istgebucht 
-LEFT JOIN v_bs_buchungsart b ON s.buchungsart=b.wert 
+LEFT JOIN alkis_wertearten b ON cast(s.buchungsart AS character varying)=b.k AND b.element='ax_buchungsstelle' AND b.bezeichnung='buchungsart'
 WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL ORDER BY s.laufendenummer;";
 
@@ -670,22 +704,26 @@
 if (!$ress) {
 	echo "\n<p class='err'>Keine Buchungsstelle.</p>\n";
-	//if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($ress)."</p>";}
-	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
-}
-$bs=0; // Z.Buchungsstelle
+	if ($debug > 1) {
+		echo "<p class='dbg'>Fehler:".pg_result_error($ress)."</p>";
+		if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+	}
+}
+$bs=0; // Z.BuchungsStelle
 while($rows = pg_fetch_array($ress)) {
 	$gmls=$rows["gml_id"]; // gml b-Stelle
 	$lfd=$rows["lfd"]; // BVNR
+	$barttitle=htmlentities($rows["barttitle"], ENT_QUOTES, "UTF-8"); // .. fÃŒr Anzeige aufbereitet
 
 	// B U C H U N G S B L A T T  zur Buchungsstelle (istBestandteilVon)
-	$sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung 
+	$sql="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, wb.v AS blattartv, wb.d AS blattartd, z.bezeichnung 
 	FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON b.gml_id=s.istbestandteilvon 
 	LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk 
+	LEFT JOIN alkis_wertearten wb ON cast(b.blattart AS character varying)=wb.k AND wb.element='ax_buchungsblatt' AND wb.bezeichnung='blattart' 
 	WHERE s.gml_id = $1 AND s.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL
 	ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;";
 
-	$v = array($gmls);
-	$resg = pg_prepare("", $sql);
-	$resg = pg_execute("", $v);
+	$v=array($gmls);
+	$resg=pg_prepare("", $sql);
+	$resg=pg_execute("", $v);
 	if (!$resg) {
 		echo "\n<p class='err'>Kein Buchungsblatt.</p>\n";
@@ -696,10 +734,9 @@
 		$gmlg=$rowg["gml_id"];
 		$beznam=$rowg["bezeichnung"];
-		$blattkeyg=$rowg["blattart"];
-		$blattartg=blattart($blattkeyg);
-
-		echo "\n<hr>";
-		echo "\n<table class='outer'>";
-		echo "\n<tr>"; // 1 row only
+		$blattkeyg=$rowg["blattart"]; // Key
+		$blattartg=$rowg["blattartv"]; // Value
+		echo "\n<hr>"
+		."\n<table class='outer'>"
+		."\n<tr>"; // 1 row only
 			echo "\n\t<td>"; // Outer linke Spalte:
 
@@ -710,27 +747,22 @@
 					echo "\n\t<table class='kennzgbf' title='Bestandskennzeichen'>"; // dotted
 				}
-					echo "\n\t<tr>\n\t\t<td class='head'>Bezirk</td>";
-						echo "\n\t\t<td class='head'>".$blattartg."</td>";
-						echo "\n\t\t<td class='head'>Lfd-Nr.</td>";
-						echo "\n\t\t<td class='head'>Buchungsart</td>";
-					echo "\n\t</tr>";
-					echo "\n\t<tr>";
-						echo "\n\t\t<td title='Grundbuchbezirk'>";
-							if ($showkey) {
-								echo "<span class='key'>".$rowg["bezirk"]."</span><br>";
-							}
-						echo $beznam."&nbsp;</td>";
-
-						echo "\n\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$rowg["blatt"]."</span></td>";
-
-						echo "\n\t\t<td title='Bestandsverzeichnis-Nummer (BVNR, Grundst&uuml;ck)'>".$rows["lfd"]."</td>";
-
-						echo "\n\t\t<td title='Buchungsart'>";
-							if ($showkey) {
-								echo "<span class='key'>".$rows["buchungsart"]."</span><br>";
-							}
-						echo $rows["bart"]."</td>";
-					echo "\n\t</tr>";
-				echo "\n\t</table>";
+					echo "\n\t<tr>\n\t\t<td class='head'>Bezirk</td>"
+						."\n\t\t<td class='head' title='".$rowg["blattartd"]."'>";
+						if ($showkey) {echo "<span class='key'>".$blattkeyg."</span>&nbsp;";}
+						echo $blattartg."</td>"
+						."\n\t\t<td class='head'>Lfd-Nr.</td>"
+						."\n\t\t<td class='head'>Buchungsart</td>"
+					."\n\t</tr>"
+					."\n\t<tr>"
+						."\n\t\t<td title='Grundbuchbezirk'>";
+							if ($showkey) {echo "<span class='key'>".$rowg["bezirk"]."</span><br>";}
+						echo $beznam."&nbsp;</td>"
+						."\n\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$rowg["blatt"]."</span></td>"
+						."\n\t\t<td title='Bestandsverzeichnis-Nummer (BVNR, Grundst&uuml;ck)'>".$rows["lfd"]."</td>"
+						."\n\t\t<td title='".$barttitle."'>";
+						if ($showkey) {echo "<span class='key'>".$rows["buchungsart"]."</span><br>";}
+						echo $rows["bart"]."</td>"
+					."\n\t</tr>"
+				."\n\t</table>";
 
 				// Miteigentumsanteil
@@ -738,15 +770,7 @@
 					echo "\n<p class='ant'>".$rows["zaehler"]."/".$rows["nenner"]."&nbsp;Anteil am Flurst&uuml;ck</p>";
 				}
-			echo "\n</td>";
-
-			echo "\n<td>"; // Outer rechte Spalte: NW-Links
-				if ($idanzeige) {
-					linkgml($gkz, $gmls, "Buchungsstelle", "ax_buchungsstelle");
-					echo "<br>";
-					linkgml($gkz, $gmlg, "Buchungsblatt", ""); // ax_buchungsblatt keine Relationen
-				}
-				echo "\n\t<p class='nwlink noprint'>weitere Auskunft:<br>";
-					echo "\n\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gmlg."#bvnr".$lfd;
-						if ($idanzeige) {echo "&amp;id=j";}
+			echo "\n</td>\n<td>"; // Outer rechte Spalte: NW-Links
+				echo "\n\t<p class='nwlink noprint'>weitere Auskunft:<br>"
+					."\n\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gmlg."#bvnr".$lfd;
 						if ($showkey)   {echo "&amp;showkey=j";}
 						if ($blattkeyg == 1000) {
@@ -755,13 +779,13 @@
 							echo "' title='Grundbuchnachweis'>";
 						}
-						echo $blattartg." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''>";
-					echo "</a>";
-				echo "\n\t</p>";
+						echo $blattartg." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''>"
+					."</a>"
+				."\n\t</p>";
 
 				ber_bs_hinw($gmls); // berechtigte Buchungstellen Hinweis
 
-			echo "\n</td>";
-		echo "\n</tr>";
-		echo "\n</table>";
+			echo "\n</td>"
+		."\n</tr>"
+		."\n</table>";
 
 		// +++ Weitere Felder ausgeben? BeschreibungDesUmfangsDerBuchung
@@ -781,5 +805,4 @@
 				if ($blattkeyg == 1000) {
 					echo "\n<p class='err'>Keine Namensnummer gefunden.</p>";
-					linkgml($gkz, $gmlg, "Buchungsblatt", "");
 				} else {
 					echo "\n<p>ohne Eigent&uuml;mer.</p>";
@@ -789,134 +812,21 @@
 		$bl++;
 	}
-	if ($bl == 0) {
-		echo "\n<p class='err'>Kein Buchungsblatt gefunden.</p>";
-		echo "\n<p class='err'>Parameter: gml_id= ".$gmls.", Beziehung='istBestandteilVon'</p>";
-		linkgml($gkz, $gmls, "Buchungstelle", "ax_buchungsstelle");
-	}
-
-
-/* ++ Diese Teil wird deaktiviert, weil das nicht vorkommen kann. SpÃ€ter komplett lÃ¶schen ++
-
-// Dienende Buchungsstellen ausgeben - Beginn
-
-	// Buchungstelle herr. >an> Buchungstelle dien. >istBestandteilVon> BLATT -> Bezirk
-	$sql ="SELECT sd.gml_id AS s_gml, sd.buchungsart, sd.laufendenummer as lfd, sd.zaehler, sd.nenner, sd.nummerimaufteilungsplan as nrpl, sd.beschreibungdessondereigentums as sond, 
-	b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung, a.bezeichner AS bart 
-	FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON sd.gml_id=ANY(sh.an) 
-	JOIN ax_buchungsblatt b ON b.gml_id=sd.istbestandteilvon 
-	LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk 
-	LEFT JOIN v_bs_buchungsart a ON sd.buchungsart=a.wert 
-	WHERE sh.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL 
-	ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
-
-	$v = array($gmls); // id herrschende Buchungsstelle
-	$resan = pg_prepare("", $sql);
-	$resan = pg_execute("", $v);
-	if (!$resan) {
-		echo "\n<p class='err'>Fehler bei 'weitere Buchungsstellen'.</p>\n";
-		if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmls."'</p>";}
-	}
-
-	$an=0; // Stelle >Recht an> Stelle
-	while($rowan = pg_fetch_array($resan)) {
-		$beznam=$rowan["bezeichnung"];
-		$blattkeyan=$rowan["blattart"]; // Schluessel von Blattart
-		$blattartan=blattart($blattkeyan);
-		echo "\n<hr>\n<table class='outer'>";
-		echo "\n<tr>"; // 1 row only
-			echo "\n<td>"; // outer linke Spalte
-				// Rahmen mit Kennzeichen GB
-				if ($blattkeyan == 1000) {
-					echo "\n\t<table class='kennzgb' title='Bestandskennzeichen'>";
-				} else {
-					echo "\n\t<table class='kennzgbf' title='Bestandskennzeichen'>"; // dotted
-				}
-					echo "\n\t<tr>";
-						echo "\n\t\t<td class='head'>Bezirk</td>";
-						echo "\n\t\t<td class='head'>".$blattartan."</td>";
-						echo "\n\t\t<td class='head'>Lfd-Nr,</td>";
-						echo "\n\t\t<td class='head'>Buchungsart</td>";
-					echo "\n\t</tr>";
-					echo "\n\t<tr>";
-						echo "\n\t\t<td title='Grundbuchbezirk'>";
-						if ($showkey) {echo "<span class='key'>".$rowan["bezirk"]."</span><br>";}
-						echo $beznam."</td>";
-
-						echo "\n\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$rowan["blatt"]."</span></td>";
-
-						echo "\n\t\t<td title='Bestandsverzeichnis-Nummer (BVNR, Grundst&uuml;ck)'>".$rowan["lfd"]."</td>";
-
-						echo "\n\t\t<td title='Buchungsart'>";
-							if ($showkey) {echo "<span class='key'>".$rowan["buchungsart"]."</span><br>";}
-							echo $rowan["bart"];
-						echo "</td>";
-					echo "\n\t</tr>";
-				echo "\n\t</table>";
-				if ($rowan["zaehler"] <> "") {
-					echo "\n<p class='ant'>".$rowan["zaehler"]."/".$rowan["nenner"]."&nbsp;Anteil am Flurst&uuml;ck</p>";
-				}
-			echo "\n</td>";
-			echo "\n<td>"; // outer rechte Spalte
-				if ($idanzeige) {
-					linkgml($gkz, $rowan["s_gml"], "Buchungsstelle", "ax_buchungsstelle");
-					echo "<br>";
-					linkgml($gkz, $rowan["g_gml"], "Buchungsblatt", "");
-				}
-				echo "\n<br>";
-				echo "\n\t<p class='nwlink'>";
-					echo "\n\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$rowan["g_gml"];
-						if ($idanzeige) {echo "&amp;id=j";}
-						if ($showkey)   {echo "&amp;showkey=j";}
-						echo "' title='Grundbuchnachweis mit kompletter Eigent&uuml;merangabe'>";
-						echo $blattartan;
-						echo " <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''>";
-					echo "</a>";
-				echo "\n\t</p>";
-			echo "\n\t</td>";
-		echo "\n</tr>";
-		echo "\n</table>";
-
-		if ($blattkeyan != 1000) {
-			echo "\n<p>Blattart: ".$blattartan." (".$blattkeyan.").<br>\n"; 
-		}
-		if ($rowan["nrpl"] != "") {
-			echo "<p class='nrap' title='Nummer im Aufteilungsplan'>Nummer <span class='wichtig'>".$rowan["nrpl"]."</span> im Aufteilungsplan.</p>";
-		}
-		if ($rowan["sond"] != "") {
-			echo "<p class='sond' title='Sondereigentum'>Verbunden mit dem Sondereigentum<br>".$rowan["sond"]."</p>";
-		}
-		if ($eig == "j") {
-			$n = eigentuemer($con, $rowan["g_gml"], false, ""); // ohne Adresse
-		}
-		$an++;	
-	}
-	pg_free_result($resan);
-// Dienende Buchungsstellen ausgeben - Ende
-*/
-
+	if ($bl == 0) {echo "\n<p class='err'>Kein Buchungsblatt gefunden.</p>";}
 	$bs++;
 }
 pg_free_result($resg);
-if ($bs == 0) {
-	echo "\n<p class='err'>Keine Buchungstelle gefunden.</p>";
-	linkgml($gkz, $gmlid, "Flurst&uuml;ck", "ax_flurstueck");
-}
+if ($bs == 0) {echo "\n<p class='err'>Keine Buchungstelle gefunden.</p>";}
 pg_close($con);
 echo <<<END
 
-<form action=''>
-	<div class='buttonbereich noprint'>
-	<hr>
-		<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp;
-		<a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a>&nbsp;
-		<a title="Export als CSV" href='javascript:ALKISexport()'><img src="ico/download_fs.png" width="32" height="16" alt="Export"></a>&nbsp;
-	</div>
-</form>
+<div class='buttonbereich noprint'>
+<hr>
+	<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp;
+	<a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a>&nbsp;
+	<a title="Export als CSV" href='javascript:ALKISexport()'><img src="ico/download_fs.png" width="32" height="16" alt="Export"></a>&nbsp;
+</div>
 END;
-
 footer($gmlid, $_SERVER['PHP_SELF']."?", "&amp;eig=".$eig);
-
 ?>
-
 </body>
 </html>
