Index: trunk/info/info/alkis/alkisexport.php
===================================================================
--- trunk/info/info/alkis/alkisexport.php	(revision 375)
+++ trunk/info/info/alkis/alkisexport.php	(revision 376)
@@ -6,15 +6,20 @@
 	Der View verkettet Flurstueck - Buchungsstelle - Grundbuch - Eigentuemer
 	Die Lagebezeichnung des FlurstÃŒcks wird in ein Feld komprimiert.
-	Parameter: gkz=mandant&gmlid=DE...&tabtyp=flurstueck/grundbuch/person
-
-	2014-01-17 krz f.j.
-	2014-01-20 weitere Spalten und verbesserte Formatierung
-	2014-01-21 Der View liefert "Rechtsgemeinschaft" nun als Feld in allen Personen-SÃ€tzen 
-			eines GB-Blattes statt als eigenen "Satz ohne Person".
-	2014-01-27 Erweiterung auf Filter "strasse" ("gml_id" aus "ax_lagebezeichnungkatalogeintrag")
-	2014-09-04 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2014-09-10 Bei Relationen den Timestamp abschneiden
-	2014-09-30 RÃŒckbau substring(gml_id)
-	2015-12-09 LATIN1 in ''
+	Parameter Beispiele: 
+		?gkz=mandant&tabtyp=flurstueck/grundbuch/person&gmlid=DE...
+		?gkz=270&tabtyp=gemarkung&gemarkung=2662   
+		?gkz=270&gemarkung=2662
+	Parameter Beispiele fÃŒr Fehler:
+		?gkz=270&tabtyp=gemarkung&gmlid=2662
+		?gkz=270&tabtyp=flurstueck&gemarkung=2662
+		?gkz=270&tabtyp=flurstueck
+		?gkz=270&gmlid=2662
+
+	Version
+	2016-02-23 Version fuer norGIS-ALKIS-Import
+	2016-10-18 Export einer ganzen Gemarkung zulassen (Sonderfall bei den Parametern)
+	2016-11-29 Gemeinsam genutzte Datenbanken ermÃ¶glichen
+
+++ ToDo: SQL "exp_csv_str" und "exp_csv_str" optimieren
 */
 
@@ -31,7 +36,5 @@
 	$res=pg_prepare("", $sql);
 	$res=pg_execute("", $v);
-	if (!$res) {
-		return "** Fehler bei Lagebezeichnung **"; //.$sql;
-	}
+	if (!$res) {return "** Fehler bei Lagebezeichnung **";}
 	$j=0;
 	$lagehsnr="";
@@ -54,9 +57,36 @@
 // HIER START //
 
-$cntget = extract($_GET); // Parameter aus URL lesen
+$gkz=''; $tabtyp = ''; $gemarkung=''; $gmlid=''; // erwartete Parameter initialisieren
+$cntget = extract($_GET); // aktuelle Parameter aus URL auslesen
+require_once("alkis_conf_location.php"); // Konfiguration laden
+include("alkisfkt.php"); // Funktionen der ALKIS-Auskunft laden
+
+if ($tabtyp == '') { // Parameter (-kombinationen) pruefen
+	if ($gemarkung == '') { // Beim Wert "gmlid" MUSS man die Tabelle dazu nennen
+		exit ("Fehler: Art des Suchfilters nicht angeben.");
+	} else {  // Art des Wertes bestimmt eindeutig den Filter
+		$tabtyp = 'gemarkung';
+	}
+} elseif ($tabtyp == 'gemarkung') {
+	if ($gemarkung == '') {
+		exit ("Fehler: Gemarkungsnummer nicht angeben.");
+	}
+}
+if ($gmlid == '') {
+	if ($gemarkung == '') {
+		exit ("Fehler: Kein Wert fuer die Suche angegeben.");
+	} else { // Wert fÃŒr Gemarkungsnummer angegeben
+		if ($tabtyp != 'gemarkung') {
+			exit ("Fehler: Falsche Kombination Parameter tabtyp='".$tabtyp."' mit Wert fuer Gemarkungsnummer.");
+		}
+		$filename='alkis_'.$tabtyp.'_'.$gemarkung.'.csv';
+	}
+} else { // alles gut
+	$filename='alkis_'.$tabtyp.'_'.$gmlid.'.csv';
+}
+
+// DOWNLOAD der CSV-Datei vorbereiten (statt HTML-Ausgabe)
 header('Content-type: application/octet-stream');
-header('Content-Disposition: attachment; filename="alkis_'.$tabtyp.'_'.$gmlid.'.csv"');
-require_once("alkis_conf_location.php");
-include("alkisfkt.php");
+header('Content-Disposition: attachment; filename="'.$filename.'"');
 
 // CSV-Ausgabe: Kopfzeile mit Feldnamen
@@ -64,27 +94,38 @@
 
 // Datenbank-Verbindung
-$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
-if (!$con) {
-	exit("Fehler beim Verbinden der DB");
-}
+$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisexport.php'");
+if (!$con) {exit("Fehler beim Verbinden der DB");}
 pg_set_client_encoding($con, 'LATIN1'); // FÃŒr Excel kein UTF8 ausgeben
+
+$viewname="exp_csv"; // Standard-View, ist in der Datenbank gespeichert
+$v=array($gmlid); // Standard-Filter-Feld
 
 // Der Parameter "Tabellentyp" bestimmt den Namen des Filter-Feldes aus dem View "exp_csv".
 switch ($tabtyp) { // zulaessige Werte fuer &tabtyp=
-	case 'flurstueck': $filter = "fsgml"; break; // ax_flurstueck.gml_id
-	case 'grundbuch':  $filter = "gbgml"; break; // ax_buchungsblatt.gml_id
-	case 'person':     $filter = "psgml"; break; // ax_person.gml_id
-	case 'strasse':    $filter = "stgml"; break; // ax_lagebezeichnungkatalogeintrag.gml_id = StraÃe-GML-ID
-	default: exit("Falscher Parameter '".$tabtyp."'"); break;
+	case 'flurstueck': // ax_flurstueck.gml_id
+		$filter = "fsgml";
+		break;
+	case 'grundbuch': // ax_buchungsblatt.gml_id
+		$filter = "gbgml";
+		break;
+	case 'person': // ax_person.gml_id
+		$filter = "psgml";
+		break;
+	case 'strasse': // ax_lagebezeichnungkatalogeintrag.gml_id = StraÃe-GML-ID
+		$filter = "stgml";
+		$viewname="exp_csv_str"; // alternativer View mit "_str", ist in der Datenbank gespeichert  
+		break;
+	case 'gemarkung': // SONDERfall als Parameter wird "Gemarkungsnummer" und nicht "gml_id" geliefert
+		$filter = "gemarkungsnummer";
+		$v=array($gemarkung); // anderes Filter-Feld, anderer Parameter
+		break;
+	default:
+		exit("Falscher Parameter '".$tabtyp."'");
+		break;
 }
 
 // Daten aus gespeichertem View, zusaetzlich Filter: "feld"='wert' mitgeben
-if ($tabtyp == 'strasse') { // Sonderversion
-	$sql="SELECT * FROM exp_csv_str WHERE ".$filter." = $1 ";
-} else {
-	$sql="SELECT * FROM exp_csv WHERE ".$filter." = $1 ";
-}
-
-$v=array($gmlid);
+$sql="SELECT * FROM ".$viewname." WHERE ".$filter." = $1 ";
+
 $res=pg_prepare("", $sql);
 $res=pg_execute("", $v);
@@ -106,5 +147,6 @@
 	$flstnummer=$row["zaehler"];
 	$nenner=$row["nenner"];
-	if ($nenner > 0) {$flstnummer.="/".$nenner;} // BruchNr
+	// Bruchnummer kann in Excel als Datum interpretiert werden. In '' setzen.
+	if ($nenner > 0) {$flstnummer="'".$flstnummer."/".$nenner."'";} // BruchNr
 	$fs_flae=$row["fs_flae"]; // amtliche Fl. aus DB-Feld
 
@@ -140,5 +182,6 @@
 			$rechtsg=$row["nam_bes"]; // Beschrieb der Rechtsgemeinschaft
 		} else {
-			$rechtsg=rechtsgemeinschaft($nam_adr); // EntschlÃŒsseln
+		//	$rechtsg=rechtsgemeinschaft($nam_adr); // EntschlÃŒsseln
+			$rechtsg=$row["nam_adrv"]; // Art der Rechtsgemeischaft (Value zum Key)
 		}
 	}
@@ -148,5 +191,6 @@
 	$nana=$row["nachnameoderfirma"];
 	$namteil=$row["namensbestandteil"];
-	$name=anrede($row["anrede"]);
+	//$name=anrede($row["anrede"]);  
+	$name=$row["anrv"]; // Anrede (Value zum Key)
 	if ($name != "") {$name.=" ";} // Trenner
 	if ($namteil != "") {$name.=$namteil." ";} // von und zu
Index: trunk/info/info/alkis/alkisstrasse.php
===================================================================
--- trunk/info/info/alkis/alkisstrasse.php	(revision 375)
+++ trunk/info/info/alkis/alkisstrasse.php	(revision 376)
@@ -7,12 +7,6 @@
 
 	Version:
-	2014-01-23 Neu
-	2014-01-24 CSV-Export
-	2014-01-30 pg_free_result
-	2014-09-03 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-16 Wechsel Gem./Flur durch <b> hervorheben
-	2014-09-30 RÃŒckbau substring(gml_id)
-	2015-12-09 Austausch .ico durch .png
+	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermÃ¶glichen, SQL optimiert (FS-Liste jetzt schneller)
 */
 session_start();
@@ -23,16 +17,11 @@
 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 Stra&szlig;e</title>
 	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
@@ -49,5 +38,5 @@
 <body>
 <?php
-$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisstrasse.php'");
 if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
 
@@ -68,5 +57,4 @@
 	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
 }
-
 if ($row = pg_fetch_array($res)) {
 	$lage=$row["lage"]; // Strassenschluessel
@@ -82,38 +70,33 @@
 echo "\n<h2><img src='ico/Strassen.png' width='16' height='16' alt=''> Stra&szlig;e</h2>\n";
 
-echo "\n<table class='outer'>\n<tr>\n\t<td>"; // Tabelle Kennzeichen
-echo "\n\t<table class='kennzstra' title='Lage'>";
-	echo "\n\t<tr>";
-		echo "\n\t\t<td class='head'>Land</td>";
-		echo "\n\t\t<td class='head'>Reg.-Bez.</td>";
-		echo "\n\t\t<td class='head'>Kreis</td>";
-		echo "\n\t\t<td class='head'>Gemeinde</td>";
-		echo "\n\t\t<td class='head'>Stra&szlig;e</td>";
-	echo "\n\t</tr>";
-	echo "\n\t<tr>";
-
+// Tabelle Kennzeichen
+echo "\n<table class='outer'>\n<tr>\n\t<td>"
+."\n\t<table class='kennzstra' title='Lage'>"
+	."\n\t<tr>"
+		."\n\t\t<td class='head'>Land</td>"
+		."\n\t\t<td class='head'>Reg.-Bez.</td>"
+		."\n\t\t<td class='head'>Kreis</td>"
+		."\n\t\t<td class='head'>Gemeinde</td>"
+		."\n\t\t<td class='head'>Stra&szlig;e</td>"
+	."\n\t</tr>"
+	."\n\t<tr>";
 		echo "\n\t\t<td title='Bundesland'>";
 		if ($showkey) {echo "<span class='key'>".$row["land"]."</span><br>";}
-		echo $row["bnam"]."&nbsp;</td>";
-
-		echo "\n\t\t<td title='Regierungsbezirk'>";
+		echo $row["bnam"]."&nbsp;</td>"
+		."\n\t\t<td title='Regierungsbezirk'>";
 		if ($showkey) {echo "<span class='key'>".$row["regierungsbezirk"]."</span><br>";}
-		echo $row["rnam"]."&nbsp;</td>";
-
-		echo "\n\t\t<td title='Kreis'>";
+		echo $row["rnam"]."&nbsp;</td>"
+		."\n\t\t<td title='Kreis'>";
 		if ($showkey) {echo "<span class='key'>".$row["kreis"]."</span><br>";}
-		echo $row["knam"]."&nbsp;</td>";
-
-		echo "\n\t\t<td title='Gemeinde'>";
+		echo $row["knam"]."&nbsp;</td>"
+		."\n\t\t<td title='Gemeinde'>";
 		if ($showkey) {echo "<span class='key'>".$gem."</span><br>";}
-		echo $row["gnam"]."&nbsp;</td>";
-
-		echo "\n\t\t<td title='Stra&szlig;e'>";
+		echo $row["gnam"]."&nbsp;</td>"
+		. "\n\t\t<td title='Stra&szlig;e'>";
 		if ($showkey) {echo "<span class='key'>".$lage."</span><br>";}
-		echo "<span class='wichtig'>".$snam."</span>";
-
-		echo "&nbsp;</td>";
-	echo "\n\t</tr>";
-echo "\n\t</table>";
+		echo "<span class='wichtig'>".$snam."</span>"
+		. "&nbsp;</td>"
+	."\n\t</tr>"
+."\n\t</table>";
 
 echo "\n\t</td>\n\t<td>";
@@ -122,10 +105,9 @@
 $ogml=$row["ogml"]; // ID von "Lage Ohne HsNr"
 if ($ogml != "") {
-	echo "\n\t\t<p class='nwlink noprint'>";
-		echo "\n\t\t<a href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$ogml;
-			if ($idanzeige) {echo "&amp;id=j";}
-			if ($showkey)   {echo "&amp;showkey=j";}
-		echo "' title='Lage Ohne Hausnummer'>Lage <img src='ico/Lage_an_Strasse.png' width='16' height='16' alt=''></a>";
-	echo "\n\t\t</p>";
+	echo "\n\t\t<p class='nwlink noprint'>"
+		."\n\t\t<a href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$ogml;
+		if ($showkey)   {echo "&amp;showkey=j";}
+		echo "' title='Lage Ohne Hausnummer'>Lage <img src='ico/Lage_an_Strasse.png' width='16' height='16' alt=''></a>"
+	."\n\t\t</p>";
 }
 
@@ -135,5 +117,5 @@
 
 // F L U R S T U E C K E
-echo "\n\n<a name='fs'></a><h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;cke</h3>\n";
+echo "\n\n<a id='fs'></a><h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;cke</h3>\n";
 echo "\n<p>Zusammenfassung von 'Lage mit Hausnummer' und 'Lage ohne Hausnummer' an dieser StraÃe</p>";
 
@@ -141,17 +123,15 @@
 // ax_Flurstueck >zeigtAuf> ax_LagebezeichnungOhneHausnummer > = Strasse
 // Suchkriterium: gml_id aus Katalog
-$subquery = "SELECT f1.gml_id AS fsgml, lm.gml_id AS lgml, lm.land, lm.regierungsbezirk, lm.kreis, lm.gemeinde, lm.lage, lm.hausnummer 
- FROM ax_flurstueck f1 JOIN ax_lagebezeichnungmithausnummer lm ON lm.gml_id=ANY(f1.weistAuf) 
- WHERE f1.endet IS NULL AND lm.endet IS NULL
-UNION SELECT f2.gml_id AS fsgml, '' AS lgml, lo.land, lo.regierungsbezirk, lo.kreis, lo.gemeinde, lo.lage, '' AS hausnummer 
- FROM ax_flurstueck f2 JOIN ax_lagebezeichnungohnehausnummer lo ON lo.gml_id=ANY(f2.zeigtauf) 
- WHERE f2.endet IS NULL AND lo.endet IS NULL";
-
-$sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, duett.lgml, duett.hausnummer 
- FROM ax_flurstueck f JOIN ( ".$subquery." ) AS duett ON f.gml_id=duett.fsgml 
+$sql="SELECT f.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, l.gml_id AS lgml, l.hausnummer, 'm' AS ltyp
+ FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(f.weistAuf) 
  JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
- JOIN ax_lagebezeichnungkatalogeintrag s ON duett.land=s.land AND duett.regierungsbezirk=s.regierungsbezirk AND duett.kreis=s.kreis AND duett.gemeinde=s.gemeinde AND duett.lage=s.lage 
-WHERE s.gml_id = $1 AND f.endet IS NULL AND s.endet IS NULL 
-ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
+ JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land  AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
+ WHERE s.gml_id = $1 AND f.endet IS NULL AND s.endet IS NULL AND l.endet IS NULL
+UNION SELECT f.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, l.gml_id AS lgml, '' AS hausnummer, 'o' AS ltyp
+ FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON l.gml_id=ANY(f.zeigtauf) 
+ JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
+ JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
+ WHERE s.gml_id = $1 AND f.endet IS NULL AND s.endet IS NULL AND l.endet IS NULL
+ORDER BY gemarkungsnummer, flurnummer, zaehler, nenner;";
 
 $v=array($gmlid);
@@ -163,13 +143,13 @@
 }
 
-echo "\n<table class='fs'>";
-echo "\n<tr>"; // Kopfzeile der Tabelle
-	echo "\n\t<td class='head' title='Name der Gemarkung (Ortsteil)'>Gemarkung</td>";
-	echo "\n\t<td class='head' title='Flur-Nummer'>Flur</td>";
-	echo "\n\t<td class='head' title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'>Flurst.</td>";
-	echo "\n\t<td class='head fla' title='amtliche Fl&auml;che in Quadratmeter'>Fl&auml;che</td>";
-	echo "\n\t<td class='head hsnr' title='Hausnummer aus der Lagebezeichnung des Flurst&uuml;cks'>HsNr.</td>";
-	echo "\n\t<td class='head nwlink noprint' title='Link: weitere Auskunft'>weit. Auskunft</td>";
-echo "\n</tr>";
+echo "\n<table class='fs'>"
+."\n<tr>"
+	."\n\t<td class='heads' title='Name der Gemarkung (Ortsteil)'>Gemarkung<img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'></td>"
+	."\n\t<td class='heads' title='Flur-Nummer'>Flur<img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'></td>"
+	."\n\t<td class='heads' title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'>Flurst.</td>"
+	."\n\t<td class='head fla' title='amtliche Fl&auml;che in Quadratmeter'>Fl&auml;che</td>"
+	."\n\t<td class='head hsnr' title='Hausnummer aus der Lagebezeichnung des Flurst&uuml;cks'>HsNr.</td>"
+	."\n\t<td class='head nwlink noprint' title='Link: weitere Auskunft'>weit. Auskunft</td>"
+."\n</tr>";
 $j=0;
 $cnths=0; // Count Haus
@@ -184,8 +164,8 @@
 	$flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m&#178;";
 	$lgml=$rowf["lgml"]; // ID von "Lage Mit" oder leer
-
-	echo "\n<tr>";
-
-		echo "\n\t<td>";
+	$ltyp=$rowf["ltyp"]; // mit/ohne HsNr
+
+	echo "\n<tr>"
+		."\n\t<td>";
 		if ($showkey) {echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";}
 		if ($gwgmkg != $gmkg) {
@@ -204,26 +184,24 @@
 		}
 
-		echo "\n\t<td><span class='wichtig'>".$fskenn."</span>";
-		if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck", "ax_flurstueck");}
-		echo "</td>";
-		echo "\n\t<td class='fla'>".$flae."</td>";
-		echo "\n\t<td class='hsnr'>".$rowf["hausnummer"]."</td>";
-		echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
-
+		echo "\n\t<td><span class='wichtig'>".$fskenn."</span></td>"
+		."\n\t<td class='fla'>".$flae."</td>"
+		."\n\t<td class='hsnr'>".$rowf["hausnummer"]."</td>"
+		."\n\t<td>\n\t\t<p class='nwlink noprint'>";
+
+			// Link "Lage"
+// ++++ FEHLER kann auch Typ "o" sein
 			if ($lgml != '') {
-				echo "\n\t\t<a href='alkislage.php?gkz=".$gkz."&amp;ltyp=m&amp;gmlid=".$lgml;
-				if ($idanzeige) {echo "&amp;id=j";}
-				if ($showkey)   {echo "&amp;showkey=j";}
+				echo "\n\t\t<a href='alkislage.php?gkz=".$gkz."&amp;ltyp=".$ltyp."&amp;gmlid=".$lgml;
+				if ($showkey) {echo "&amp;showkey=j";}
 				echo "' title='Lage Mit Hausnummer'>Lage <img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''></a>&nbsp;";
 				$cnths++;
 			}
 
+			// Link FlurstÃŒcksnachweis
 			echo "\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n";
-			if ($idanzeige) {echo "&amp;id=j";}
-			if ($showkey)   {echo "&amp;showkey=j";}
+			if ($showkey) {echo "&amp;showkey=j";}
 			echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck <img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''></a>";
-
-		echo "\n\t\t</p>\n\t</td>";
-	echo "\n</tr>";
+		echo "\n\t\t</p>\n\t</td>"
+	."\n</tr>";
 	$j++;
 }
@@ -231,7 +209,5 @@
 if ($j > 6) {
 	echo "<p class='cnt'>".$j." Flurst&uuml;cke";
-	if ($cnths > 4) {
-		echo ", ".$cnths." H&auml;user";
-	}
+	if ($cnths > 4) {echo ", ".$cnths." H&auml;user";}
 	echo "</p>";
 }
@@ -239,12 +215,10 @@
 ?>
 
-<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.png" width="16" 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.png" width="16" height="16" alt="Export"></a>&nbsp;
+</div>
 
 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>
Index: trunk/info/info/alkis/alkisfkt.php
===================================================================
--- trunk/info/info/alkis/alkisfkt.php	(revision 375)
+++ trunk/info/info/alkis/alkisfkt.php	(revision 376)
@@ -1,80 +1,85 @@
 <?php
 /*	Modul: alkisfkt.php
+
 	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
 	Functions
 
 	Version:
-	2010-12-17 Astrid Emde: Prepared Statements (pg_query -> pg_prepare + pg_execute)
-	2011-11-01 *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen
-	2011-11-02 Parameter debug in function eigentuemer
-	2011-11-17 Variable ($debug, $idanzeige, $showkey) von Parameter nach global. Die heiÃen in allen Programmteilen gleich.
-	2014-01-22 Eigentuemerart: Mehr Werte und Zugriff auf DB-SchlÃŒssel-Tabelle
-	2014-02-06 Korrektur EigentÃŒmerart
-	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-30 Umbenennung SchlÃŒsseltabellen (Prefix), RÃŒckbau substring(gml_id)
-	2014-12-30 class='fsnr'
-	2015-12-09 Austausch .ico durch .png
+	2016-02-24 Version fuer norGIS-ALKIS-Import, "function linkgml" raus. Case-EntschlÃŒsselung raus.
+	2016-03-03 Hinweis auf Datenfehler wenn "ax_person" fehlt in function "eigentuemer"
+	2016-03-14 Kleine Korrekturen
+	2016-11-29 Gemeinsam genutzte Datenbanken ermÃ¶glichen (Filter Gemeinde)
 */
 
 function footer($gmlid, $link, $append) {
 	// Einen Seitenfuss ausgeben.
-	// Den URL-Parameter "&id=j/n" und "&showkey=j/n" in allen Kombinationen umschalten lassen.
 	// Die Parameter &gkz= und &gmlid= kommen in allen Modulen einheitlich vor
-
-	// Der Parameter $append wird angehaengt wenn gefuellt
-	//  Anwendung: &eig=j bei FS-NW, &ltyp=m/p/o bei Lage
-	global $gkz, $idumschalter, $idanzeige, $showkey, $hilfeurl;
-
-	$customer=$_SESSION["mb_user_name"];
-	echo "\n<div class='confbereich noprint'>";
-	echo "\n<table class='outer'>\n<tr>";
+	// Den URL-Parameter "&showkey=j/n" umschalten lassen.
+	// $append wird angehaengt wenn gefuellt. Anwendung: &eig=j bei FS-NW, &ltyp=m/p/o bei Lage
+	global $gkz, $showkey, $hilfeurl, $auth;
+
+	echo "\n<div class='confbereich noprint'>"
+	."\n<table class='outer'>\n<tr>";
 
 	// Spalte 1: Info Benutzerkennung
-	echo "\n\t<td title='Info'><i>Benutzer:&nbsp;".$customer."</i></td>";
+	if ($auth == "mapbender") {
+		$customer=$_SESSION["mb_user_name"];
+		echo "\n\t<td title='Info'><i>Benutzer:&nbsp;".$customer."</i></td>";
+	} else {
+		echo "\n\t<td>&nbsp;</td>";
+	}
 
 	// Spalte 2: Umschalter
 	echo "\n\t<td title='Konfiguration'>";
 		$mylink ="\n\t\t<a class='gmlid' href='".$link."gkz=".$gkz."&amp;gmlid=".$gmlid.$append;
-		if ($showkey) {$mykey = "&amp;showkey=j";} else {$mykey = "&amp;showkey=n";}
-		if ($idumschalter) { // fuer Entwicklung ODER Test
-			if ($idanzeige) {$myid = "&amp;id=j";} else {$myid = "&amp;id=n";}
-
-			// Umschalter nur ausgeben, wenn in conf gesetzt
-			if ($idanzeige) { // Umschalten ID ein/aus
-				echo $mylink.$mykey."&amp;id=n' title='Ohne Verfolgung der ALKIS-Beziehungen'>";
-				echo "<img src='ico/Beziehung_link.png' width='16' height='16' alt=''> ID aus</a>";
-			} else {
-				echo $mylink.$mykey."&amp;id=j' title='Verfolgung der GML-ID in den ALKIS-Beziehungen'>";
-				echo "<img src='ico/Beziehung_link.png' width='16' height='16' alt=''> ID ein</a>";
-			}
-			echo " | ";
-		} else { // keinen ID-Umschalter
-			$myid = "";
-		}
-
-		if ($showkey) { // // Umschalten SchlÃŒssel ein/aus
-			echo $mylink.$myid."&amp;showkey=n' title='Verschl&uuml;sselungen ausblenden'>Schl&uuml;ssel aus</a>";
+
+		if ($showkey) { // Umschalten SchlÃŒssel ein/aus
+			echo $mylink."&amp;showkey=n' title='Verschl&uuml;sselungen ausblenden'>Schl&uuml;ssel aus</a>";
 		} else {
-			echo $mylink.$myid."&amp;showkey=j' title='Verschl&uuml;sselungen anzeigen'>Schl&uuml;ssel ein</a>";
+			echo $mylink."&amp;showkey=j' title='Verschl&uuml;sselungen anzeigen'>Schl&uuml;ssel ein</a>";
 		}
 	echo "\n\t</td>";
 
 	// Spalte 3
-	echo "\n\t<td title='Hilfe'>";
-	echo "\n\t\t<p class='nwlink'>\n\t\t\t<a target='_blank' href='".$hilfeurl."' title='Dokumentation'>Hilfe zur ALKIS-Auskunft</a>\n\t\t</p>\n\t</td>";
-	echo "\n</tr>\n</table>\n</div>\n";
+	echo "\n\t<td title='Hilfe'>"
+	."\n\t\t<p class='nwlink'>\n\t\t\t<a target='_blank' href='".$hilfeurl."' title='Dokumentation'>Hilfe zur ALKIS-Auskunft</a>\n\t\t</p>\n\t</td>"
+	."\n</tr>\n</table>\n</div>\n";
 	return 0;
 }
 
-function linkgml($gkz, $gml, $typ, $tabelle)  {
-	// Einen Link zur Verfolgung der Beziehungen mit dem Modul alkisrelationen.php
-	// tabelle = nur angeben fÃŒr Tabellen, die Relationen-Spalten besitzen, sonst leer
-	$kurzid=substr($gml, 12, 4); // ID in Anzeige kuerzen (4 Zeichen), der Anfang ist immer gleich
-	// PostNAS 0.8: Timestamp abschneiden
-	echo "\n\t\t<a target='_blank' title='ID ".$typ."' class='gmlid noprint' ";
-	echo "href='alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gml."&amp;otyp=".$typ."&amp;tabelle=".$tabelle."'>";
-	echo "<img src='ico/Beziehung_link.png' width='16' height='16' alt=''>".$kurzid."</a>";
-	return 0;
+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.v "
+	."FROM ax_buchungsstelle sd JOIN ax_buchungsstelle sh ON sd.gml_id=ANY(sh.an) " 
+	."LEFT JOIN alkis_wertearten a ON sh.buchungsart=cast(a.k AS integer) " 
+	."WHERE sd.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL AND a.element='ax_buchungsstelle' and a.bezeichnung='buchungsart' "
+	."GROUP BY sh.buchungsart, a.v;";
+
+	$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["v"], 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);
 }
 
@@ -85,14 +90,16 @@
 	$kurz=ltrim($kurz, "0"); // fuehrende Nullen am Anfang
 	$kurz=str_replace(".0",".",$kurz); // fuehrende Null jeder Stufe
+	$kurz=rtrim($kurz); // Leerzeichen hinten
+	// echo "/n<p class='dbg'> lang='".$lang."'</p>/n<p class='dbg'> kurz='".$kurz."'</p>";
 	return $kurz;
 }
 
-function bnw_fsdaten($con, $lfdnr, $gml_bs, $ba, $anteil, $bvnraus) {
+function bnw_fsdaten($con, $lfdnr, $gml_bs, $ba, $anteil, $bvnraus, $bartkey, $bartstory) {
 /*	Bestandsnachweis - Flurstuecksdaten
 	Die Tabellenzeilen mit den Flurstuecksdaten zu einer Buchungsstelle im Bestandsnachweis ausgeben.
 	Die Funktion wird je einmal aufgerufen fÃŒr die Buchungen direkt auf dem GB (Normalfall).
 	Weiterere Aufrufe ggf. bei Erbbaurecht fÃŒr die mit "an" verknuepften Buchungsstellen.
-	Table-Tag und Kopfzeile im aufrufenden Programm. */
-	global $debug, $gkz, $idanzeige, $showkey;
+	Table-Tag und Tabellenkopf werden im aufrufenden Programm ausgegeben. */
+	global $debug, $gkz, $showkey, $filtkreis, $filtgem;
 
 	// F L U R S T U E C K
@@ -100,7 +107,12 @@
 	FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=s.gml_id 
 	LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
-	WHERE s.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL AND g.endet IS NULL ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
-
-	$v = array($gml_bs);
+	WHERE f.endet IS NULL AND s.endet IS NULL AND g.endet IS NULL AND s.gml_id= $1 ";
+	if ($filtgem == '' ) { // ungefiltert
+		$v=array($gml_bs);
+	} else {
+		$sql.="AND f.kreis = $2 AND f.gemeinde = $3 "; // ZustÃ€ndiges Gebiet
+		$v=array($gml_bs, $filtkreis, $filtgem);
+	}
+	$sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
 	$resf = pg_prepare("", $sql);
 	$resf = pg_execute("", $v);
@@ -109,4 +121,6 @@
 	if($bvnraus) { // nur bei direkten Buchungen die lfdNr ausgeben
 		$bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT);
+	} else {
+		$bvnr="";
 	}
 	$altlfdnr="";
@@ -123,43 +137,37 @@
 		echo "\n<tr>"; // eine Zeile je Flurstueck
 			// Sp. 1-3 der Tab. aus Buchungsstelle, nicht aus FS
-			if($lfdnr == $altlfdnr) {	// gleiches Grundstueck
-				echo "\n\t<td>&nbsp;</td>";
-				echo "\n\t<td>&nbsp;</td>";
-				echo "\n\t<td>&nbsp;</td>";
-			} else {
-				echo "\n\t<td>";
-					echo "<a name='bvnr".$lfdnr."'></a>"; // Sprungmarke
-					echo "<span class='wichtig'>".$bvnr."</span>";  // BVNR
-					if ($idanzeige) {linkgml($gkz, $gml_bs, "Buchungsstelle", "ax_buchungsstelle");}
-				echo "</td>";
-
-				echo "\n\t<td>"; // Buchungsart 
-					//	if ($showkey) {echo "<span class='key'>".$???."</span>&nbsp;";} // Schluessel
+			if($lfdnr == $altlfdnr) { // gleiches Grundstueck
+				echo "\n\t<td>&nbsp;</td>"
+				."\n\t<td>&nbsp;</td>"
+				."\n\t<td>&nbsp;</td>";
+			} else { // Sprungmarke, BVNR
+				echo "\n\t<td>"
+					."<a id='bvnr".$lfdnr."'></a><span class='wichtig'>".$bvnr."</span>" /// ++++ FEHLER?? $bvnr
+				."</td>";
+
+				echo "\n\t<td title ='".$bartstory."'>"; // Buchungsart 
+					if ($showkey) {echo "<span class='key'>".$bartkey."</span>&nbsp;";} // Schluessel
 					echo $ba; // entschluesselt
-				echo "</td>"; 
-				echo "\n\t<td>&nbsp;</td>"; // Anteil
+				echo "</td>"
+				."\n\t<td>&nbsp;</td>"; // Anteil
 				$altlfdnr=$lfdnr;
 			}
 			//Sp. 4-7 aus Flurstueck
 			echo "\n\t<td>";
-			if ($showkey) {
-				echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";
-			}
-			echo $rowf["bezeichnung"]."</td>";
-			echo "\n\t<td>".$flur."</td>";
-			echo "\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span>";
-				if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck", "ax_flurstueck");}
-			echo "</td>";
-			echo "\n\t<td class='fla'>".$flae."</td>";
-
-			echo "\n\t<td><p class='nwlink noprint'>";
-				echo "<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n";
-					if ($idanzeige) {echo "&amp;id=j";}
+			if ($showkey) {echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";}
+			echo $rowf["bezeichnung"]."</td>"
+			."\n\t<td>".$flur."</td>"
+			."\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span>"
+			."</td>"
+			."\n\t<td class='fla'>".$flae."</td>";
+
+			echo "\n\t<td><p class='nwlink noprint'>"
+				."<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n";
 					if ($showkey)   {echo "&amp;showkey=j";}
-					echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck ";
-					echo "<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>";
-				echo "</a>";
-			echo "</p></td>";
-		echo "\n</tr>";
+					echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck "
+					."<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>"
+				."</a>"
+			."</p></td>"
+		."\n</tr>";
 
 		$j++;
@@ -170,5 +178,4 @@
 		if ($debug > 2) {echo "<p class='dbg'>SQL='".$sql."'<br>$1 = '".$gml_bs."'</p>";}
 	} */
-
 	pg_free_result($resf);
 	return $j;
@@ -185,5 +192,5 @@
 	// Schleife 1: N a m e n s n u m m e r
 	// Beziehung: ax_namensnummer >istBestandteilVon> ax_buchungsblatt
-	global $debug, $gkz, $idanzeige, $showkey;
+	global $debug, $gkz, $showkey;
 
 	// Link ÃŒber Java-Class? (Ja in alkisinlayausk.php, sonst normal)
@@ -196,6 +203,9 @@
 	} // Beispiel-Link href='javascript:imFenster(\"alkislage.php?gkz= ... ."\")'>xxx ";
 
-	$sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass ";
-	$sqln.="FROM ax_namensnummer n WHERE n.istbestandteilvon= $1 AND n.endet IS NULL ORDER BY n.laufendenummernachdin1421;";
+	$sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass, n.benennt, wn.v AS adrv, we.v AS eiartv
+FROM ax_namensnummer n 
+LEFT JOIN alkis_wertearten wn ON cast(n.artderrechtsgemeinschaft AS character varying)=wn.k AND wn.element='ax_namensnummer' AND wn.bezeichnung='artderrechtsgemeinschaft' 
+LEFT JOIN alkis_wertearten we ON cast(n.eigentuemerart AS character varying)=we.k AND we.element='ax_namensnummer' AND we.bezeichnung='eigentuemerart'
+WHERE n.istbestandteilvon= $1 AND n.endet IS NULL ORDER BY n.laufendenummernachdin1421;";
 
 	$v = array($gmlid); // 16 Stellen bei Relationen
@@ -204,28 +214,25 @@
 
 	if (!$resn) {
-		echo "<p class='err'>Fehler bei Eigent&uuml;mer</p>\n";
+		echo "\n<p class='err'>Fehler bei Eigent&uuml;mer</p>\n";
 		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqln."<br>$1=gml= '".$gmlid."'</p>";}
 	}
 
-	echo "\n\n<table class='eig'>";
+	echo "\n<table class='eig'>";
 	$n=0; // Z.NamNum.
 
 	while($rown = pg_fetch_array($resn)) {
 		$gmlnn=$rown["gml_id"];
-		echo "\n<tr>";
-			echo "\n\t<td class='nanu' title='Namens-Nummer'>\n\t\t<p>"; // Sp. 1
-				// VOR die Tabelle: "EigentÃŒmer"
-				$namnum=kurz_namnr($rown["lfd"]);
-				echo $namnum."&nbsp;";
-				if ($idanzeige) {linkgml($gkz, $rown["gml_id"], "Namensnummer", "ax_namensnummer");}
-			echo "</p>\n\t</td>";
-
-			echo "\n\t<td>"; // Sp. 2
-			$rechtsg=$rown["adr"];
+		$namnum=kurz_namnr($rown["lfd"]);
+		$rechtsg=$rown["adr"];
+		echo "\n<tr>"
+			."\n\t<td class='nanu' title='Namens-Nummer'>\n\t\t<p>" // Sp. 1
+				.$namnum."&nbsp;" // VOR die Tabelle: "EigentÃŒmer"
+			."</p>\n\t</td>"
+			. "\n\t<td>"; // Sp. 2
 			if ($rechtsg != "" ) {
 				if ($rechtsg == 9999) { // sonstiges
 					echo "\n\t\t<p class='zus' title='Beschrieb der Rechtsgemeinschaft'>".htmlentities($rown["beschr"], ENT_QUOTES, "UTF-8")."</p>";
 				} else {
-					echo "\n\t\t<p class='zus' title='Art der Rechtsgemeinschaft'>".htmlentities(rechtsgemeinschaft($rown["adr"]), ENT_QUOTES, "UTF-8")."</p>";
+					echo "\n\t\t<p class='zus' title='Art der Rechtsgemeinschaft'>".htmlentities($rown["adrv"], ENT_QUOTES, "UTF-8")."</p>";
 				}
 			}
@@ -240,22 +247,26 @@
 			// die zu allen Namensnummern der Rechtsgemeinschaft eine Relation besitzt.
 
-
 		// Schleife 2: P e r s o n
 		// Beziehung: ax_person  <benennt<  ax_namensnummer
-		$sqlp ="SELECT p.gml_id, p.nachnameoderfirma, p.vorname, p.geburtsname, p.geburtsdatum, p.namensbestandteil, p.akademischergrad ";
-		$sqlp.="FROM ax_person p JOIN ax_namensnummer nn ON nn.benennt=p.gml_id WHERE nn.gml_id= $1 AND p.endet IS NULL AND nn.endet IS NULL;";
-
-		$v = array($gmlnn);
+
+	//	$sqlp="SELECT p.gml_id, p.nachnameoderfirma, p.vorname, p.geburtsname, p.geburtsdatum, p.namensbestandteil, p.akademischergrad "
+	//	."FROM ax_person p JOIN ax_namensnummer nn ON nn.benennt=p.gml_id WHERE nn.gml_id= $1 AND p.endet IS NULL AND nn.endet IS NULL;";
+	//	$v = array($gmlnn);
+
+	// 03.03.16:
+		$sqlp="SELECT gml_id, nachnameoderfirma, vorname, geburtsname, geburtsdatum, namensbestandteil, akademischergrad "
+		."FROM ax_person WHERE gml_id= $1 AND endet IS NULL;";
+		$gmlpers=$rown["benennt"];
+		$v = array($gmlpers); // gml_id von ax_person
 		$resp = pg_prepare("", $sqlp);
 		$resp = pg_execute("", $v);
-
 		if (!$resp) {
 			echo "\n\t<p class='err'>Fehler bei Person</p>\n";
-			if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqlp."<br>$1=gml= '".$gmlnn."'</p>";}
+			if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqlp."<br>$1=gml= '".$gmlpers."'</p>";}
 		}
 
 		$i=0; // cnt Person
-		while($rowp = pg_fetch_array($resp)) {  // ++ Schleife? nn >benennt> Person ist kein Array!
-			$diePerson="";
+		while($rowp = pg_fetch_array($resp)) { // Schleife weglassen? nn >benennt> Person ist KEIN Array!
+			$diePerson=""; //++ Anrede?
 			if ($rowp["akademischergrad"] <> "") {$diePerson=$rowp["akademischergrad"]." ";}
 			$diePerson.=$rowp["nachnameoderfirma"];
@@ -266,30 +277,27 @@
 			$diePerson=htmlentities($diePerson, ENT_QUOTES, "UTF-8"); // Umlaute
 
-			// Spalte 1 enthÃ€lt die Namensnummer, nur in Zeile 0
-			if ($i > 0) {
+			if ($i > 0) { // Spalte 1 enthÃ€lt die Namensnummer, nur in Zeile 0
 				echo "\n<tr>\n\t<td>&nbsp;</td>\n\t<td>";
 			}
 			// Spalte 2 = Angaben
-			$eiartkey=$rown["eigentuemerart"];
-			$eiart=eigentuemerart($eiartkey);
+			$eiartkey=$rown["eigentuemerart"]; // Key
+			$eiart=$rown["eiartv"]; // Value
 			echo "\n\t\t<p class='geig' title='Eigent&uuml;merart: ".$eiart."'>".$diePerson."</p>\n\t</td>";
 
 			// Spalte 3 = Link
 			echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
-				if ($idanzeige) {linkgml($gkz, $rowp["gml_id"], "Person", "ax_person"); echo "&nbsp";}
 				if ($showkey AND $eiartkey != '') { // oft leer
 						echo "<span class='key'>(".$eiartkey.")</span> ";
 				}
-				echo "\n\t\t<a href='".$lnkvor."alkisnamstruk.php?gkz=".$gkz."&amp;gmlid=".$rowp["gml_id"];
-				if ($idanzeige) {echo "&amp;id=j";}
+				echo "\n\t\t<a href='".$lnkvor."alkisnamstruk.php?gkz=".$gkz."&amp;gmlid=".$rowp[0];
 				if ($showkey)   {echo "&amp;showkey=j";}
-				echo $lnknach."' title='vollst&auml;ndiger Name und Adresse eines Eigent&uuml;mers'>".$eiart;
-				echo " <img src='ico/Eigentuemer.png' width='16' height='16' alt=''></a>\n\t\t</p>";
-			echo "\n\t</td>\n</tr>";
+				echo $lnknach."' title='vollst&auml;ndiger Name und Adresse eines Eigent&uuml;mers'>".$eiart
+				." <img src='ico/Eigentuemer.png' width='16' height='16' alt=''></a>\n\t\t</p>"
+			."\n\t</td>\n</tr>";
 
 			if ($mitadresse) {
 				// Schleife 3:  A d r e s s e  (OPTIONAL)
-				$sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland 
-				FROM ax_anschrift a JOIN ax_person p ON a.gml_id=ANY(p.hat) WHERE p.gml_id= $1 AND a.endet IS NULL AND p.endet IS NULL LIMIT 2;";
+				$sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland "
+				."FROM ax_anschrift a JOIN ax_person p ON a.gml_id=ANY(p.hat) WHERE p.gml_id= $1 AND a.endet IS NULL AND p.endet IS NULL LIMIT 2;";
 				$gmlp=$rowp["gml_id"]; // Person
 				$v = array($gmlp);
@@ -319,23 +327,9 @@
 						echo "\n<tr>\n\t<td>&nbsp;</td>"; //Sp. 1
 						echo "\n\t<td><p class='gadr'>"; //Sp. 2
-						if ($str.$hsnr != "") {
-							echo $str." ".$hsnr."<br>";
-						}
-						if ($plz.$ort != "") {
-							echo $plz." ".$ort;
-						}
-						if ($land != "" and $land != "DEUTSCHLAND") {
-							echo ", ".$land;
-						}
-						echo "</p></td>";
-						echo "\n\t<td>"; // Sp. 3
-						if ($idanzeige) {
-							echo "<p class='nwlink noprint'>";
-							linkgml($gkz, $gmla, "Adresse", "ax_adresse");
-							echo "</p>";
-						} else { 
-							echo "&nbsp;";
-						}
-						echo "</td>\n</tr>";
+						if ($str.$hsnr != "") {echo $str." ".$hsnr."<br>";}
+						if ($plz.$ort != "") {echo $plz." ".$ort;}
+						if ($land != "" and $land != "DEUTSCHLAND") {echo ", ".$land;}
+						echo "</p></td>\n\t<td>"; // Sp. 3
+						echo "&nbsp;</td>\n</tr>";
 					} else { // manchmal dopplete Angaben (_straÃe / _str.)
 						echo "\n<tr>\n\t<td>&nbsp;</td>\n\t<td><p class='dbg' title='Siehe Auskunft zur Person'>weitere Adresse</p></td>\n\t<td>&nbsp;</td>\n</tr>";
@@ -354,132 +348,31 @@
 				$nenner=str_replace(".", ",", $rown["nenner"]);
 				$comnt="Anteil der Berechtigten in Bruchteilen (Par. 47 GBO) an einem gemeinschaftlichen Eigentum (Grundst&uuml;ck oder Recht).";
-				echo "\n<tr>\n\t<td>&nbsp;</td>"; // Sp. 1
-				echo "\n\t<td><p class='avh' title='".$comnt."'>".$zaehler."/".$nenner." Anteil</p></td>";
-				echo "\n\t<td>&nbsp;</td>\n</tr>"; // Sp. 3
+				echo "\n<tr>\n\t<td>&nbsp;</td>" // Sp. 1
+				."\n\t<td><p class='avh' title='".$comnt."'>".$zaehler."/".$nenner." Anteil</p></td>"
+				."\n\t<td>&nbsp;</td>\n</tr>"; // Sp. 3
 			}
 		} // End Loop Person
-		if ($i == 0) { // kommt vor hinter Zeile Erbengemeinschaft, ist dann KEIN Fehler
-			if ($debug > 1) { // nur bei Entwicklung
-				echo "\n<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>";
-				if ($rechtsg != 9999) {
-					echo "\n<p class='dbg'>Fehler: Keine Person zur Namensnummer ".$namnum."</p>";
-				//	if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlp."<br>$1 = gml(NamNum) = '".$gmlnn."'</p>";}
-				}
-			}
-			echo "</td>\n\t<td>&nbsp;</td>\n<tr>";
+		if ($i == 0) { // Kine Parson. Kommt vor hinter Zeile "Erbengemeinschaft", ist dann KEIN Fehler
+			if ($rechtsg != 9999) {
+				echo "\n<p class='err'>(Die Person mit der ID '".$gmlpers."' fehlt im Datenbestand)</p>";
+			} else {
+				if ($debug > 1) { // nur bei Entwicklung
+					echo "\n\t\t<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>";
+				}
+			}
+			echo "</td>\n\t<td>&nbsp;</td>\n</tr>";
 		}
 		$n++; // cnt NamNum
 	} // End Loop NamNum
-	echo "\n</table>\n";
+	echo "\n</table>";
 	if ($n == 0) { // bei "Fiktives Blatt" KEIN Fehler 
-		if ($debug > 1) {echo "<p class='dbg'>keine Namensnummern zum Blatt</p>";}
-	//	if ($debug > 2) {echo "<p class='dbg'>Namensnummern: SQL=<br>".$sqln."<br>$1=gml(Blatt)= '".$gmlid."'</p>";}
+		if ($debug > 1) {
+			echo "\n<p class='dbg'>keine Namensnummern zum Blatt</p>";
+			if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqln."<br>$1=gml(Blatt)= '".$gmlid."'</p>";}
+		}
 	}
 	pg_free_result($resn);
 	return $n; 
-} // End Function eigentuemer
-
-// **  Functions  zum   E n t s c h l u e s s e l n  **
-
-// Entschluesslung ax_person.anrede
-function anrede($key) {
-	switch ($key) {
-		case 1000: $wert = "Frau"; break;
-		case 2000: $wert = "Herr"; break;
-		case 3000: $wert = "Firma"; break;
-		default:   $wert = ""; break;
-	}
-	return $wert;
-}
-
-// Entschluesslung AX_Namensnummer.artDerRechtsgemeinschaft
-function rechtsgemeinschaft($key) {
-	switch ($key) {
-		case 1000: $wert = "Erbengemeinschaft"; break;
-		case 2000: $wert = "GÃŒtergemeinschaft"; break;
-		case 3000: $wert = "BGB-Gesellschaft"; break;
-		case 9999: $wert = "Sonstiges"; break;	// dann: beschriebDerRechtsgemeinschaft
-		default:   $wert = ""; break;
-	}
-	return $wert;
-}
-
-// Entschluesslung AX_Namensnummer.eigentuemerart
-function eigentuemerart($key) {
-	// Die hÃ€ufigsten Werte direkt aus den Programmcode liefern, ggf. angepasst.
-	// FÃŒr seltene Werte in der Datenbank nachschlagen.
-	// SchlÃŒsseltabelle dazu ist vorhanden seit 2014-01-22.
-	// Hier Verwendung fÃŒr Text zum Link.
-	// FÃŒr korrekte Wiedergabe der amtlichen Werte einen Join auf Tabelle verwenden statt dieser Function. 
-	global $debug;
-	switch ($key) {
-		case 1000: $wert = "Nat&uuml;rliche Person"; break; // singular fuer Link-Text
-		case 2000: $wert = "Juristische Person"; break; // singl.
-		case 3000: $wert = "KÃ¶rperschaft"; break; // singl.
-		case 4000: $wert = "Kirchliches Eigentum"; break;
-		case 4100: $wert = "Evangelische Kirche"; break;
-		case 4200: $wert = "Katholische Kirche"; break;
-		case 5100: $wert = "Bundesrepublik Deutschland"; break;
-		case 5400: $wert = "Kreis"; break;
-		case 5500: $wert = "Gemeinde"; break;
-		case 5920: $wert = "Land"; break; // "Eigenes Bundesland"
-		case "":   $wert = "Person"; break; // falls (noch) nicht gefuellt
-		default: // Datenbank-Abfrage
-			$sql="SELECT bezeichner FROM v_namnum_eigart WHERE wert= $1 ;";
-			$v=array($key);
-			$res=pg_prepare("", $sql);
-			$res=pg_execute("", $v);
-			if ($res) {
-				$row=pg_fetch_array($res);
-				$wert=htmlentities($row["bezeichner"], ENT_QUOTES, "UTF-8");
-				if ($wert == "") {$wert="** Eigent&uuml;merart '".$key."' nicht gefunden **";}
-			} else {
-				echo "\n\t<p class='err'>Fehler bei DB-Zugriff auf EigentÃŒmerart.</p>\n";
-				$wert="** Unbekannte Eigent&uuml;merart '".$key."' **";
-			}
-			pg_free_result($res);
-			break;
-	}
-	return $wert;
-}
-
-// Entschluesslung ax_buchungsblatt.blattart
-function blattart($key) {
-	switch ($key) {
-		case 1000: $wert = "Grundbuchblatt"; break;
-		// Ein Grundbuchblatt ist ein Buchungsblatt, das die Buchung im Grundbuch enthÃ€lt.
-		case 2000: $wert = "Katasterblatt"; break;
-		// Ein Katasterblatt ist ein Buchungsblatt, das die Buchung im Liegenschaftskataster enthÃ€lt.
-		case 3000: $wert = "Pseudoblatt"; break;
-		// Ein Pseudoblatt ist ein Buchungsblatt, das die Buchung, die bereits vor Eintrag im Grundbuch Rechtskraft erlangt hat, enthÃ€lt 
-		// (z.B. Ãbernahme von Flurbereinigungsverfahren, Umlegungsverfahren).
-		case 5000: $wert = "Fiktives Blatt"; break;
-		// Das fiktive Blatt enthÃ€lt die aufgeteilten GrundstÃŒcke und Rechte als Ganzes. 
-		// Es bildet um die Miteigentumsanteile eine fachliche Klammer.
-		default: $wert = "** Unbekannter Wert '".$key."'"; break;
-	}
-	return $wert;
-}
-// Entschluesslung ax_dienststelle.stellenart
-function dienststellenart($key) {
-	switch ($key) {
-		case 1000: $wert = "Grundbuchamt"; break;
-		case 1100: $wert = "Katasteramt"; break;
-		case 1200: $wert = "Finanzamt"; break;
-		case 1300: $wert = "Flurbereinigungsbeh&ouml;rde"; break;
-		case 1400: $wert = "Forstamt"; break;
-		case 1500: $wert = "Wasserwirtschaftsamt"; break;
-		case 1600: $wert = "StraÃenbauamt"; break;
-		case 1700: $wert = "Gemeindeamt"; break;
-		case 1900: $wert = "Kreis- oder Stadtverwaltung"; break;
-		case 2000: $wert = "Wasser- und Bodenverband"; break;
-		case 2100: $wert = "Umlegungsstelle"; break;
-		case 2200: $wert = "Landesvermessungsverwaltung"; break;
-		case 2300: $wert = "&Ouml;bVI"; break;
-		case 2400: $wert = "Bundeseisenbahnverm&ouml;gen"; break;
-		case 2500: $wert = "Landwirtschaftskammer"; break;
-		default: $wert = "** Unbekannter Wert '".$key."'"; break;
-	}
-	return $wert;
-}
+} // End function eigentuemer
+
 ?>
Index: trunk/info/info/alkis/alkisinlaybaurecht.php
===================================================================
--- trunk/info/info/alkis/alkisinlaybaurecht.php	(revision 375)
+++ trunk/info/info/alkis/alkisinlaybaurecht.php	(revision 376)
@@ -2,16 +2,9 @@
 /*	alkisinlaybaurecht.php - Inlay fuer Template: Baurecht
 	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+	Ähnlich alkisbaurecht, aber nur Basisdaten, kein Footer und keine Flurstücks-Verschneidung.
 
 	Version:
-	2011-07-26  debug
-	2011-11-28  import_request_variables
-	2011-12-14  function imFenster
-	2013-04-08  deprecated "import_request_variables" ersetzt
-	2013-06-27	hiervon neue Variante alkisbaurecht (ohne "inlay"), 
-			dafÃŒr hier die SchlÃŒssel ganz raus und FlurstÃŒcks-Verschneidung raus.
-	2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2014-09-10 Bei Relationen den Timestamp abschneiden
-	2014-09-30 Umbenennung SchlÃŒsseltabellen (Prefix)
-	2015-12-09 Austausch .ico durch .png
+	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen
 */
 session_start();
@@ -20,12 +13,8 @@
 if ($auth == "mapbender") {require_once($mapbender);}
 ?>
-<!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 Bau-, Raum- oder Bodenordnungsrecht</title>
 	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
@@ -42,11 +31,11 @@
 
 <?php
-$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisinlaybaurecht.php'");
 if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
 
-// wie View "baurecht"
-$sql ="SELECT r.ogc_fid, r.name, r.stelle, r.bezeichnung AS rechtbez, a.bezeichner  AS adfbez, d.bezeichnung AS stellbez, round(st_area(r.wkb_geometry)::numeric,0) AS flae 
+// Keine Spalten, die eine Berechtigungsprüfung nach Gemeinde ermöglichen:
+$sql ="SELECT r.ogc_fid, r.name, r.stelle, r.bezeichnung AS rechtbez, a.v AS adfbez, d.bezeichnung AS stellbez, round(st_area(r.wkb_geometry)::numeric,0) AS flae 
 FROM ax_bauraumoderbodenordnungsrecht r 
-LEFT JOIN v_baurecht_adf a ON r.artderfestlegung=a.wert 
+LEFT JOIN alkis_wertearten a ON cast(r.artderfestlegung AS character varying)=a.k AND a.element='ax_bauraumoderbodenordnungsrecht' AND a.bezeichnung='artderfestlegung'
 LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle WHERE r.gml_id= $1 ;";
 
@@ -61,48 +50,39 @@
 echo "\n<h2><img src='ico/Gericht.png' width='16' height='16' alt=''> Bau-, Raum- oder Bodenordnungsrecht</h2>\n";
 
-// ToDo: ++++ Spalte anfÃŒgen, darin Link auf neue Variante alkisbaurecht.php
-
 if ($row = pg_fetch_array($res)) {
-	echo "\n<table>";
-
-		echo "\n<tr>";
-			echo "\n\t<td class='li'>Art der Festlegung:</td>\n\t<td>";
-			echo "<span class='wichtig'>".$row["adfbez"]."</span></td>";
-		echo "\n</tr>";
-
+	echo "\n<table>"
+		."\n<tr>"
+			."\n\t<td class='li'>Art der Festlegung:</td>\n\t<td>"
+			."<span class='wichtig'>".$row["adfbez"]."</span></td>"
+		."\n</tr>";
 		$enam=$row["name"];
 		if ($enam != "") {
-			echo "\n<tr>";
-				echo "\n\t<td class='li'>Eigenname des Gebietes:</td>\n\t<td>".$enam."</td>";
-			echo "\n</tr>";
+			echo "\n<tr>"
+				."\n\t<td class='li'>Eigenname des Gebietes:</td>\n\t<td>".$enam."</td>"
+			."\n</tr>";
 		}
-		echo "\n<tr>";
-			echo "\n\t<td class='li'>Verfahrensnummer:</td>";
-			echo "\n\t<td>".$row["rechtbez"]."</td>";
-		echo "\n</tr>";
-
+		echo "\n<tr>"
+			."\n\t<td class='li'>Verfahrensnummer:</td>\n\t<td>".$row["rechtbez"]."</td>"
+		."\n</tr>";
 		$stell=$row["stelle"];
 		if ($stell != "") {
-			echo "\n<tr>";
-				echo "\n\t<td class='li'>Dienststelle:</td>\n\t<td>".$row["stellbez"];
-				echo "</td>";
-			echo "\n</tr>";
+			echo "\n<tr>"
+				."\n\t<td class='li'>Dienststelle:</td>\n\t<td>".$row["stellbez"]."</td>"
+			."\n</tr>";
 		}
-
-		echo "\n<tr>";
-			echo "\n\t<td class='li'>Fl&auml;che:</td>";
+		echo "\n<tr>"
+			."\n\t<td class='li'>Fl&auml;che:</td>";
 			$flae=number_format($row["flae"],0,",",".")." m&#178;";
-			echo "\n\t<td>".$flae."</td>";
-		echo "\n</tr>";
-
-	echo "\n</table>";
+			echo "\n\t<td>".$flae."</td>"
+		."\n</tr>"
+	."\n</table>";
 } else {
 	echo "\n<p class='err'>Fehler! Kein Treffer bei gml_id=".$gmlid."</p>";
 }
 
-echo "\n<p class='nwlink'>";
-	echo "\n\t<a href='javascript:imFenster(\"alkisbaurecht.php?gkz=".$gkz."&amp;gmlid=".$gmlid."\")' ";
-	echo "' title='Bau-, Raum- oder Bodenordnungsrecht'>Weitere Auskunft <img src='ico/Gericht.png' width='16' height='16' alt=''></a>";
-echo "\n</p>";
+echo "\n<p class='nwlink'>"
+	."\n\t<a href='javascript:imFenster(\"alkisbaurecht.php?gkz=".$gkz."&amp;gmlid=".$gmlid."\")' "
+	."' title='Bau-, Raum- oder Bodenordnungsrecht'>Weitere Auskunft <img src='ico/Gericht.png' width='16' height='16' alt=''></a>"
+."\n</p>";
 
 ?>
Index: trunk/info/info/alkis/alkisbaurecht.php
===================================================================
--- trunk/info/info/alkis/alkisbaurecht.php	(revision 375)
+++ trunk/info/info/alkis/alkisbaurecht.php	(revision 376)
@@ -4,9 +4,6 @@
 
 	Version:
-	2013-06-27Neu als Variante von alkis*inlay*baurecht.ph (mit Footer, Balken und Umschaltung Key)
-	2014-09-15 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2015-12-09 Austausch .ico durch .png
-
-	ToDo: id-Anzeige hinzufÃŒgen fÃŒr Baurecht und FlurstÃŒck
+	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen
 */
 session_start();
@@ -15,17 +12,11 @@
 if ($auth == "mapbender") {require_once($mapbender);}
 include("alkisfkt.php"); // f. Footer
-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>
+echo <<<END
+<!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 Bau-, Raum- oder Bodenordnungsrecht</title>
 	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
@@ -33,29 +24,30 @@
 </head>
 <body>
+END;
 
-<?php
-$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+
+$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbaurecht.php'");
 if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
 
-// wie View "baurecht"
-$sql ="SELECT r.ogc_fid, r.artderfestlegung as adfkey, r.name, r.stelle, r.bezeichnung AS rechtbez, a.bezeichner AS adfbez, d.bezeichnung AS stellbez, d.stellenart, round(st_area(r.wkb_geometry)::numeric,0) AS flae 
+// Spalte "a.d" ist immer leer
+$sql ="SELECT r.ogc_fid, r.artderfestlegung as adfkey, r.name, r.stelle, r.bezeichnung AS rechtbez, 
+a.v AS adfbez, d.bezeichnung AS stellbez, d.stellenart, wd.v, wd.d, round(st_area(r.wkb_geometry)::numeric,0) AS flae 
 FROM ax_bauraumoderbodenordnungsrecht r 
-LEFT JOIN v_baurecht_adf a ON r.artderfestlegung=a.wert 
-LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle WHERE r.gml_id= $1 AND r.endet IS NULL AND d.endet IS NULL;";
+LEFT JOIN alkis_wertearten a ON cast(r.artderfestlegung AS character varying)=a.k AND a.element='ax_bauraumoderbodenordnungsrecht' AND a.bezeichnung='artderfestlegung'
+LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle 
+LEFT JOIN alkis_wertearten wd ON cast(d.stellenart AS character varying)=wd.k AND wd.element='ax_dienststelle' AND wd.bezeichnung='stellenart'
+WHERE r.gml_id= $1 AND r.endet IS NULL AND d.endet IS NULL;";
 
 $v = array($gmlid);
 $res = pg_prepare("", $sql);
 $res = pg_execute("", $v);
-
 if (!$res) {
 	echo "\n<p class='err'>Fehler bei Baurecht.</p>\n";
-	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>\n";}
+	if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>\n";}
 }
-
 if ($row = pg_fetch_array($res)) {
 	$artfest=$row["adfkey"];  // Art der Festlegung, Key
 	$verfnr=$row["rechtbez"]; // Verfahrens-Nummer
 	$enam=$row["name"];
-	$stellk=$row["stelle"]; // LEFT JOIN !
 	$stellb=$row["stellbez"];
 	$stella=$row["stellenart"];
@@ -66,112 +58,112 @@
 	echo "\n<h2><img src='ico/Gericht.png' width='16' height='16' alt=''> Bau-, Raum- oder Bodenordnungsrecht</h2>\n";
 
-	echo "\n<table>";
-
-		echo "\n<tr>";
-			echo "\n\t<td class='li'>Art der Festlegung:</td>\n\t<td>";
-			if ($showkey) {
-				echo "<span class='key'>(".$artfest.")</span> ";
-			}
-			echo "<span class='wichtig'>".$row["adfbez"]."</span></td>";
-		echo "\n</tr>";
-
+	echo "\n<table>"
+		."\n<tr>"
+			."\n\t<td class='li'>Art der Festlegung:</td>\n\t<td>";
+			if ($showkey) {echo "<span class='key'>(".$artfest.")</span> ";}
+			echo "<span class='wichtig'>".$row["adfbez"]."</span></td>"
+		."\n</tr>";
 		if ($enam != "") {
-			echo "\n<tr>";
-				echo "\n\t<td class='li'>Eigenname des Gebietes:</td>\n\t<td>".$enam."</td>";
-			echo "\n</tr>";
+			echo "\n<tr>"
+				."\n\t<td class='li'>Eigenname des Gebietes:</td>"
+				."\n\t<td>".$enam."</td>"
+			. "\n</tr>";
 		}
-
 		if ($verfnr != "") {
-			echo "\n<tr>";
-				echo "\n\t<td class='li'>Verfahrensnummer:</td>";
-				echo "\n\t<td>".$verfnr."</td>";
-				// if ($idanzeige) {linkgml($gkz, $gmlid, "Verfahren", ""); } // KEINE Bez.!
-			echo "\n</tr>";
+			echo "\n<tr>"
+				."\n\t<td class='li'>Verfahrensnummer:</td>"
+				."\n\t<td>".$verfnr."</td>"
+			."\n</tr>";
 		}
-
-		if ($stellb != "") { // z.B. Umlegung mit und Baulast ohne Dienststelle
-			echo "\n<tr>";
-				echo "\n\t<td class='li'>Dienststelle:</td>\n\t<td>";
-					if ($showkey) {echo "<span class='key'>(".$stellk.")</span> ";}
-					echo $stellb;
-				echo "</td>";
-			echo "\n</tr>";
+		if ($stellb != "") { // z.B. Umlegung *mit* und Baulast *ohne* Dienststelle, darum bezirk testen
+			echo "\n<tr>"
+				."\n\t<td class='li'>Dienststelle:</td>\n\t<td>";
+					if ($showkey) {echo "<span class='key'>(".$row["stelle"].")</span> ";}
+					echo $stellb
+				."</td>"
+			."\n</tr>";
 			if ($stella != "") {
-				echo "\n<tr>";
-					echo "\n\t<td class='li'>Art der Dienststelle:</td>";
-					echo "\n\t<td>";
+				echo "\n<tr>"
+					."\n\t<td class='li'>Art der Dienststelle:</td>"
+					."\n\t<td>";
 						if ($showkey) {echo " <span class='key'>(".$stella.")</span>";}
-						// d.stellenart -- weiter entschluesseln 1000, 1200, 1300
-						// Dazu SchlÃŒsseltabelle aus GeoInfoDok erfassen
-						echo "&nbsp;"; // Platzhalter
-					echo "</td>";
-				echo "\n</tr>";
+						echo "<span title='".$row["d"]."'>".$row["v"]."</span>"; 
+					echo "</td>"
+				."\n</tr>";
 			}
 		}
-
-		echo "\n<tr>";
-			echo "\n\t<td class='li'>Fl&auml;che:</td>";
+		echo "\n<tr>"
+			."\n\t<td class='li'>Fl&auml;che:</td>";
 			$flae=number_format($row["flae"],0,",",".")." m&#178;";
-			echo "\n\t<td>".$flae."</td>";
-		echo "\n</tr>";
-
-	echo "\n</table>";
+			echo "\n\t<td>".$flae."</td>"
+		."\n</tr>"
+	. "\n</table>";
 } else {
 	echo "\n<p class='err'>Fehler! Kein Treffer bei gml_id=".$gmlid."</p>";
 }
 
-echo "\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> betroffene Flurst&uuml;cke</h2>\n";
-echo "\n<p>Ermittelt durch geometrische Verschneidung. Nach Gr&ouml;&szlig;e absteigend.</p>";
+echo "\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> betroffene Flurst&uuml;cke</h2>\n"
+."\n<p>Ermittelt durch geometrische Verschneidung. Nach Gr&ouml;&szlig;e absteigend.</p>";
 
 $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, round(st_area(ST_Intersection(r.wkb_geometry,f.wkb_geometry))::numeric,1) AS schnittflae 
 FROM ax_flurstueck f, ax_bauraumoderbodenordnungsrecht r
-WHERE r.gml_id= $1 AND f.endet IS NULL AND r.endet IS NULL
-AND st_intersects(r.wkb_geometry,f.wkb_geometry) = true 
+WHERE r.gml_id= $1 AND f.endet IS NULL AND r.endet IS NULL ";
+if ($filtgem == '' ) { // ungefiltert
+	$v=array($gmlid);
+} else {
+	$sql.="AND f.kreis = $2 AND f.gemeinde = $3 "; // Zuständiges Gebiet
+	$v=array($gmlid, $filtkreis, $filtgem);
+}
+$sql.="AND st_intersects(r.wkb_geometry,f.wkb_geometry) = true 
 AND st_area(st_intersection(r.wkb_geometry,f.wkb_geometry)) > 0.05 
-ORDER BY schnittflae DESC LIMIT 40;"; 
+ORDER BY schnittflae DESC LIMIT 50;"; 
 // > 0.0 ist gemeint, Ungenauigkeit durch st_simplify
 // Limit: Flurbereinig. kann gross werden!
 // Trotz Limit lange Antwortzeit, wegen OrderBy -> intersection
-$v = array($gmlid);
-$res = pg_prepare("", $sql);
-$res = pg_execute("", $v);
 
+$res=pg_prepare("", $sql);
+$res=pg_execute("", $v);
 if (!$res) {
 	echo "\n<p class='err'>Keine Flurst&uuml;cke ermittelt.<br>\nSQL=<br></p>\n";
-	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>\n";}
+//	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>\n";}
 }
 
-echo "\n<table class='fs'>";
-	echo "\n<tr>"; // Header
-		echo "\n\t<td class='head' title='Flur- und Flurst&uuml;cksnummer'>Flurst&uuml;ck</td>";
-		echo "\n\t<td class='head fla' title='geometrische Schnittfl&auml;che'>Fl&auml;che</td>";
-		echo "\n\t<td class='head fla' title='amtliche Flurst&uuml;cksfl&auml;che, Buchfl&auml;che'>von</td>";
-		echo "\n\t<td class='head nwlink' title='Link zum Flurst&uuml;ck'>weitere Auskunft</td>";
-	echo "\n</tr>";
+echo "\n<table class='fs'>"
+	."\n<tr>"
+		."\n\t<td class='head' title='Flur- und Flurst&uuml;cksnummer'>Flurst&uuml;ck</td>"
+		."\n\t<td class='heads fla' title='geometrische Schnittfl&auml;che'><img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'>Fl&auml;che</td>"
+		."\n\t<td class='head fla' title='amtliche Flurst&uuml;cksfl&auml;che, Buchfl&auml;che'>von</td>"
+		."\n\t<td class='head nwlink' title='Link zum Flurst&uuml;ck'>weitere Auskunft</td>"
+	."\n</tr>";
 
 	$fscnt=0;
 	while($row = pg_fetch_array($res)) {
 		$fscnt++;
-		echo "\n<tr>";
-			echo "\n\t<td>".$row["flurnummer"]."-<span class='wichtig'>".$row["zaehler"];
-			$nen=$row["nenner"];
-			if ($nen != "") {
-				echo "/".$nen;
-			}
-			echo "</span></td>";
-			echo "\n\t<td class='fla'>".$row["schnittflae"]." m&#178;</td>"; 
-			echo "\n\t<td class='fla'>".$row["amtlicheflaeche"]." m&#178;</td>";
-			echo "\n\t<td class='nwlink noprint'>";
-				echo "\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$row["gml_id"]."&amp;eig=n' " ;
-					echo "title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck ";
-					echo "\n\t\t\t<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>";
-				echo "\n\t\t</a>";
-			echo "\n\t</td>";
-		echo "\n</tr>";
+		echo "\n<tr>"
+			."\n\t<td>".$row["flurnummer"]."-<span class='wichtig'>".$row["zaehler"];
+				$nen=$row["nenner"];
+				if ($nen != "") {echo "/".$nen;}
+			echo "</span></td>"
+			."\n\t<td class='fla'>".$row["schnittflae"]." m&#178;</td>"
+			."\n\t<td class='fla'>".$row["amtlicheflaeche"]." m&#178;</td>"
+			."\n\t<td class='nwlink noprint'>"
+				."\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$row["gml_id"]."&amp;eig=n' "
+					."title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck "
+					."\n\t\t\t<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>"
+				."\n\t\t</a>"
+			."\n\t</td>"
+		."\n</tr>";
 	}
 echo "\n</table>";
 
-if ($fscnt == 40) {
-	echo "<p>... und weitere Flurst&uuml;cke (Limit 40 erreicht).</p>";
+if ($fscnt == 0) { // nicht gefunden
+	if ($filtgem == '' ) { // ungefiltert
+		echo "<p class='err'>Kein Flurst&uuml;ck gefunden.</p>";
+	} else { // Wahrscheinliche Ursache = Filter
+		echo "<p class='err'>Kein Flurst&uuml;ck im berechtigten Bereich.</p>";
+	//	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid." $2 = ".$filtkreis." $3 = ".$filtgem."</p>\n";}
+	}
+} elseif ($fscnt == 50) {
+	echo "<p>... und weitere Flurst&uuml;cke (Limit 50 erreicht).</p>";
 }
 
@@ -179,11 +171,9 @@
 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;
-	</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;
+</div>
 END;
 
Index: trunk/info/info/alkis/alkisfshist.php
===================================================================
--- trunk/info/info/alkis/alkisfshist.php	(revision 375)
+++ trunk/info/info/alkis/alkisfshist.php	(revision 376)
@@ -5,11 +5,6 @@
 	Flurstuecks-Historie fuer ein Flurstueckskennzeichen aus ALKIS PostNAS
 	Version:
-	2011-11-16 Zum aktuellen FS die VorgÃ€nger suchen
-	2011-11-17 Parameter der Functions geÃ€ndert
-	2011-11-30 import_request_variables
-	2012-11-27 Function split deprecated: explode
-	2013-04-08 deprecated "import_request_variables" ersetzt
-	2014-09-15 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2015-12-09 Austausch .ico durch .png
+	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermÃ¶glichen (Filter Gemeinde)
 */
 
@@ -31,14 +26,12 @@
 function vornach($dbarr) {
 // Datenbank-Array-Feld zeilenweise ausgeben als Selbst-Link
-	global $gkz, $idanzeige, $showkey;
+	global $gkz, $showkey;
 	if ($dbarr == "") {
 		echo "(keine)";
 	} else {
 		$stri=trim($dbarr, "{}");
-		//$arr = split(",",$stri);
 		$arr = explode(",",$stri);
 		foreach($arr AS $val){
 			echo "Flurst&uuml;ck <a title=' zur Flurst&uuml;ck Historie' href='".$_SERVER['PHP_SELF']."?gkz=".$gkz."&amp;fskennz=".$val;
-			if ($idanzeige) {echo "&amp;id=j";}
 			if ($showkey)   {echo "&amp;showkey=j";}
 			echo "'>".fzerleg($val)."</a><br>";
@@ -49,7 +42,7 @@
 
 function gemkg_name($gkey) {
-// Schluessel wird uebergeben, Name in DB nachschlagen
+//	Schluessel wird ÃŒbergeben, Name dazu in der DB nachschlagen
 	global $con;
-	$sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;";
+	$sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 AND g.endet IS NULL LIMIT 1;";
 	$v=array($gkey);
 	$res=pg_prepare("", $sql);
@@ -72,5 +65,5 @@
 // Akt. FS hat keine Verweise auf Vorgaenger. Darum in den Nachfolger-Verweisen von Hist.-FS suchen.
 // Problem: Dies sind Arrays, die nicht performant durchsucht werden koennen.
-	global $gkz, $con, $debug;
+	global $gkz, $con, $debug, $showkey, $filtkreis, $filtgem;
 
 	$wherecl="WHERE $1 = ANY (nachfolgerflurstueckskennzeichen) ";
@@ -100,6 +93,5 @@
 		$vfsk=$rowv["flurstueckskennzeichen"];
 		echo "Flurst&uuml;ck <a title='Historie des Vorg&auml;ngerflurst&uuml;cks' href='".$_SERVER['PHP_SELF']."?gkz=".$gkz."&amp;fskennz=".$vfsk."&amp;gmlid=".$gmlv;
-	   	if ($idanzeige) {echo "&amp;id=j";}
-			if ($showkey)   {echo "&amp;showkey=j";}
+			if ($showkey) {echo "&amp;showkey=j";}
 		echo "'>".fzerleg($vfsk)."</a><br>";
 		$zv++;
@@ -116,16 +108,11 @@
 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;cks-Historie</title>
 	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
@@ -137,7 +124,6 @@
 <body>
 <?php
-$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisfshist.php'");
 if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
-// if ($debug > 1) {echo "<p class='err'>DB=".$dbname.", user=".$dbuser."</p>";}
 
 // Such-Parameter bekommen? Welche?
@@ -147,24 +133,33 @@
 	$whereclause="WHERE gml_id= $1 ";
 	$v = array($gmlid);
-} else {	// Alternativ: Flurst.-Kennz. uebergeben
-	if ($fskennz != "") {
+} elseif ($fskennz != "") { // Alternativ: Flurst.-Kennz. uebergeben
 		$parmtyp="Flurst&uuml;ckskennzeichen";
 		$parmval=$fskennz;
 		$whereclause="WHERE flurstueckskennzeichen= $1 "; // hinten auffuellen mit _ auf 20 Stellen
 		$v = array($fskennz);
-	} else { // Pfui!
+} else { // Pfui!
 		$parmtyp="";
 		echo "<p class='err'>Parameter 'gmlid' oder 'fskennz' fehlt.</p>";
-	}
 }
 
 if ($parmtyp != "") { // einer der beiden erlaubten FÃ€lle
-	// UNION-Abfrage auf 3 Ã€hnliche Tabellen, darin aber immer nur 1 Treffer.
-
-	$felder="gml_id, flurnummer, zaehler, nenner, flurstueckskennzeichen, amtlicheflaeche, zeitpunktderentstehung, gemarkungsnummer, ";
-
-	$sqlu ="SELECT 'a' AS ftyp, ".$felder."null AS nach, null AS vor, null AS \"name\" FROM ax_flurstueck f ".$whereclause." AND f.endet IS NULL "
-	."UNION SELECT 'h' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueck h ".$whereclause." AND h.endet IS NULL "
-	."UNION SELECT 'o' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueckohneraumbezug o ".$whereclause." AND o.endet IS NULL;";
+	// UNION-Abfrage auf 3Ã€hnliche Tabellen, darin aber immer nur 1 Treffer.
+	// norGIS: unterschiedliche Formate der gleichen Spalten, Typumwandlung "cast" verwenden.
+
+	$felder="gml_id, flurnummer, cast(zaehler AS character varying), cast(nenner AS character varying), flurstueckskennzeichen, amtlicheflaeche, zeitpunktderentstehung, gemarkungsnummer, ";
+
+	if ($filtgem == '') { // Filter Gemeinde ?
+		$wheref='';
+		$whereh='';
+		$whereo='';
+	} else { // ZusÃ€tze zur WHERE-Clausel
+		$wheref=" AND f.kreis = '".$filtkreis."' AND f.gemeinde = '".$filtgem."' ";
+		$whereh=" AND h.kreis = '".$filtkreis."' AND h.gemeinde = '".$filtgem."' ";
+		$whereo=" AND o.gemeinde = '".$filtgem."' ";
+	}
+
+	$sqlu ="SELECT 'a' AS ftyp, ".$felder."null AS nach, null AS vor, null AS \"name\" FROM ax_flurstueck f ".$whereclause.$wheref." AND f.endet IS NULL "
+	."UNION SELECT 'h' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueck h ".$whereclause.$whereh." AND h.endet IS NULL "
+	."UNION SELECT 'o' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueckohneraumbezug o ".$whereclause.$whereo." AND o.endet IS NULL;";
 
 	$resu = pg_prepare("", $sqlu);
@@ -188,6 +183,10 @@
 		if ($gmlid == "") {$gmlid=$rowu["gml_id"];} // fuer selbst-link-Umschalter ueber footer
 	} else {
-		if ($debug > 1) {echo "<br><p class='err'>Fehler! Kein Treffer f&uuml;r ".$parmtyp." = '".$parmval."'</p><br>";}
-		if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sqlu."<br>$1=".$parmtyp." = '".$parmval."'</p>";}
+		if ($debug > 1) {
+			echo "<br><p class='err'>Fehler! Kein Treffer f&uuml;r ".$parmtyp." = '".$parmval."'</p><br>";
+			if ($debug > 2) {
+				echo "<p class='dbg'>SQL=<br>".$sqlu."<br>$1=".$parmtyp." = '".$parmval."'</p>";
+			}
+		}
 	}
 }
@@ -222,43 +221,39 @@
 echo "\n<table class='outer'>\n<tr>\n\t<td>"; // linke Seite
 	// darin Tabelle Kennzeichen
-	echo "\n\t<table class='".$cls."' 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 "\n\t<table class='".$cls."' title='Flurst&uuml;ckskennzeichen'>\n\t<tr>"
+		."\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
+		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
 	// 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>";
-		echo "\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 "\n\t<table class='fsd'>"
+		."\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
 					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>";
 
 if ($ftyp == "a") { // Aktuell -> Historie
-	echo "\n<p class='nwlink noprint'>weitere Auskunft: ";
-		echo "<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$gmlid."&amp;eig=n";
-			if ($idanzeige) {echo "&amp;id=j";}
+	echo "\n<p class='nwlink noprint'>weitere Auskunft: "
+		."<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$gmlid."&amp;eig=n";
 			if ($showkey)   {echo "&amp;showkey=j";}
-			echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck ";
-			echo "<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>";
-		echo "</a>";
-}
-echo "\n<hr>";
-
-echo "<table class='outer'>";
-	echo "\n<tr>
+			echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck "
+			."<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>"
+		."</a>";
+}
+echo "\n<hr>"
+."<table class='outer'>"
+	."\n<tr>
 		<td class='head'>Flurst&uuml;ck</td>
 		<td class='head'>Vorg&auml;nger</td>
@@ -267,8 +262,8 @@
 	
 	// Spalte 1: F l u r s t ÃŒ c k
-	echo "\n<tr>\n\t<td>";
-		echo "<img src='ico/".$ico."' width='16' height='16' alt=''> ".$wert;
-		echo "<br>Fl&auml;che <span class='flae'>".$flae."</span>";
-	echo "</td>";
+	echo "\n<tr>\n\t<td>"
+		."<img src='ico/".$ico."' width='16' height='16' alt=''> ".$wert
+		."<br>Fl&auml;che <span class='flae'>".$flae."</span>"
+	."</td>";
 
 	// Spalte 2: V o r g Ã€ n g e r
@@ -294,6 +289,6 @@
 	echo "\n\t<td>";
 		vornach($nach);
-	echo "</td>\n</tr>";
-echo "\n</table>";
+	echo "</td>\n</tr>"
+."\n</table>";
 
 if ($debug > 1) {
@@ -307,11 +302,9 @@
 ?>
 
-<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;
-	</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;
+</div>
 
 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>
Index: trunk/info/info/alkis/alkishaus.php
===================================================================
--- trunk/info/info/alkis/alkishaus.php	(revision 375)
+++ trunk/info/info/alkis/alkishaus.php	(revision 376)
@@ -1,15 +1,9 @@
 <?php
-/*	alkishaus.php - Daten zum ALKIS-GebÃ€ude-Objekt
+/*	alkishaus.php - viele Daten zu EINEM ALKIS-GebÃ€ude-Objekt
 	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
 
 	Version:
-	2011-11-30 NEU! Variante von alkisgebaeudenw: Aufruf fÃŒr EIN Haus, nicht fÃŒr ein FS
-	2011-01-31 ax_gebaeude.weiteregebaeudefunktion ist jetzt Array
-	2013-04-08 deprecated "import_request_variables" ersetzt
-	2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2014-09-10 Bei Relationen den Timestamp abschneiden
-	2014-09-30 Umbenennung SchlÃŒsseltabellen (Prefix), RÃŒckbau substring(gml_id)
-	2015-12-09 Austausch .ico durch .png
-	2015-12-16 area -> st_area
+	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermÃ¶glichen
 
 	ToDo:
@@ -17,8 +11,8 @@
 	- geometrische Suche nach FS, auf denen das Haus steht
 	- Template im WMS auf Ebene GebÃ€ude hierhin verknÃŒpfen.
-	- Auch diese Relationen abbilden:
+	- Relationen abbilden:
 		ax_gebaeude >gehoertZu> ax_gebaeude  (ringfÃ¶rmige Verbindung GebÃ€udekomplex)
 		ax_gebaeude (umschliesst) ax_bauteil
-		ax_gebaeude >gehoert> ax_person  (Ausnahme)
+		ax_gebaeude >gehoert> ax_person (Ausnahme)
 */
 session_start();
@@ -29,17 +23,12 @@
 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;}
 if ($allfld == "j") {$allefelder=true;} else {$allefelder=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 Daten zum Haus</title>
 	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
@@ -47,4 +36,5 @@
 	<style type='text/css' media='print'>
 		.noprint {visibility: hidden;}
+		td.mittelspalte	{width: 190px;}
 	</style>
 </head>
@@ -52,17 +42,21 @@
 <?php
 
-$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkishaus.php'");
 if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
 
 // G e b a e u d e
+
 $sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, g.anzahlderoberirdischengeschosse AS aog, g.anzahlderunterirdischengeschosse AS aug, 
-g.lagezurerdoberflaeche, g.dachgeschossausbau, g.zustand, g.weiteregebaeudefunktion, g.dachform, g.hochhaus, g.objekthoehe, g.geschossflaeche, g.grundflaeche, g.umbauterraum, g.baujahr, g.dachart, g.qualitaetsangaben, 
-h.bauweise_beschreibung, u.bezeichner AS bfunk, z.bezeichner AS bzustand, "; // w.bezeichner AS bweitfunk,
-$sqlg.="d.bezeichner AS bdach, round(st_area(g.wkb_geometry)::numeric,2) AS gebflae FROM ax_gebaeude g 
-LEFT JOIN v_geb_bauweise h ON g.bauweise=h.bauweise_id 
-LEFT JOIN v_geb_funktion u ON g.gebaeudefunktion=u.wert 
-LEFT JOIN v_geb_zustand z ON g.zustand=z.wert 
-LEFT JOIN v_geb_dachform d ON g.dachform=d.wert
-WHERE g.gml_id= $1 AND g.endet IS NULL ;";
+g.lagezurerdoberflaeche, g.dachgeschossausbau, g.zustand, array_to_string(g.weiteregebaeudefunktion, ',') AS wgf, g.dachform, g.hochhaus, g.objekthoehe, g.geschossflaeche, g.grundflaeche, g.umbauterraum, g.baujahr, g.dachart, g.qualitaetsangaben, 
+h.v AS bbauw, h.d AS dbauw, u.v AS bfunk, u.d AS dfunk, z.v AS zustandv, z.d AS zustandd, d.v AS bdach, a.v AS dgaus, o.v AS oflv, o.d AS ofld,
+round(st_area(g.wkb_geometry)::numeric,2) AS gebflae
+FROM ax_gebaeude g 
+LEFT JOIN alkis_wertearten h ON cast(g.bauweise AS character varying)=h.k AND h.element='ax_gebaeude' AND h.bezeichnung='bauweise'
+LEFT JOIN alkis_wertearten u ON cast(g.gebaeudefunktion AS character varying)=u.k AND u.element='ax_gebaeude' AND u.bezeichnung='gebaeudefunktion'
+LEFT JOIN alkis_wertearten z ON cast(g.zustand AS character varying)=z.k AND z.element='ax_gebaeude' AND z.bezeichnung='zustand'
+LEFT JOIN alkis_wertearten d ON cast(g.dachform AS character varying)=d.k AND d.element='ax_gebaeude' AND d.bezeichnung='dachform'
+LEFT JOIN alkis_wertearten a ON cast(g.dachgeschossausbau AS character varying)=a.k AND a.element='ax_gebaeude' AND a.bezeichnung='dachgeschossausbau'
+LEFT JOIN alkis_wertearten o ON cast(g.lagezurerdoberflaeche AS character varying)=o.k AND o.element='ax_gebaeude' AND o.bezeichnung='lagezurerdoberflaeche'
+WHERE g.gml_id= $1 AND g.endet IS NULL;";
 
 $v = array($gmlid);
@@ -81,13 +75,14 @@
 // Kennzeichen in Rahmen 
 // - Welches Kennzeichen zum Haus ?
-if ($idanzeige) {linkgml($gkz, $gmlid, "Haus", "ax_gebaeude"); }
 echo "\n<hr>";
 // Umschalter: auch leere Felder ausgeben?
 echo "<p class='nwlink noprint'>";
-echo "<a class='nwlink' href='".$_SERVER['PHP_SELF']."?gkz=".$gkz."&amp;gmlid=".$gmlid;
+echo "Umschalten: <a class='nwlink' href='".$_SERVER['PHP_SELF']."?gkz=".$gkz."&amp;gmlid=".$gmlid;
 	if ($showkey) {echo "&amp;showkey=j";} else {echo "&amp;showkey=n";}
-	if ($idanzeige) {echo "&amp;id=j";} else {echo "&amp;id=n";}
-	if ($allefelder) {echo "&amp;allfld=n'>nur Felder mit Inhalt";} 
-	else {echo "&amp;allfld=j'>auch leere Felder";}
+	if ($allefelder) {
+		echo "&amp;allfld=n'>nur Felder mit Inhalt";
+	} else {
+		echo "&amp;allfld=j'>auch leere Felder";
+	}
 echo "</a></p>";
 
@@ -96,9 +91,10 @@
 while($rowg = pg_fetch_array($resg)) { // Schleife, kann aber nur EIN Haus sein.
 	$gebnr++;
-	echo "\n<table class='geb'>";
-	echo "\n<tr>\n";
-		echo "\n\t<td class='head' title=''>Attribut</td>";
-		echo "\n\t<td class='head' title=''>Wert</td>";
-	echo "\n</tr>";
+	echo "\n<table class='geb'>"
+	."\n<tr>\n"
+		."\n\t<td class='head' title=''>Attribut</td>"
+		."\n\t<td class='head mittelspalte' title=''>Wert</td>"
+		."\n\t<td class='head' title=''>Erkl&auml;rung</td>"
+	."\n</tr>";
 
 	$aog=$rowg["aog"];
@@ -106,14 +102,29 @@
 	$hoh=$rowg["hochhaus"];
 	$nam=$rowg["name"]; // Gebaeude-Name
+
+	$kfunk=$rowg["gebaeudefunktion"];
 	$bfunk=$rowg["bfunk"];
+	$dfunk=$rowg["dfunk"];
+
 	$baw=$rowg["bauweise"];
-	$bbauw=$rowg["bauweise_beschreibung"];
+	$bbauw=$rowg["bbauw"];
+	$dbauw=$rowg["dbauw"];
+
 	$ofl=$rowg["lagezurerdoberflaeche"];
-	$dga=$rowg["dachgeschossausbau"];
-	$zus=$rowg["zustand"];
-	$zustand=$rowg["bzustand"];
-	$wgf=$rowg["weiteregebaeudefunktion"];
-	$daf=$rowg["dachform"];
-	$dach=$rowg["bdach"];
+	$oflv=$rowg["oflv"];
+	$ofld=$rowg["ofld"];
+
+	$dga=$rowg["dachgeschossausbau"]; // Key
+	$dgav=$rowg["dgaus"]; // Value
+
+	$zus=$rowg["zustand"]; // Key
+	$zusv=$rowg["zustandv"]; // Value
+	$zusd=$rowg["zustandd"]; // Description
+
+	$wgf=$rowg["wgf"]; // Array-> kommagetrennte Liste
+
+	$daf=$rowg["dachform"]; // Key
+	$dach=$rowg["bdach"]; // Value
+
 	$hho=$rowg["objekthoehe"];
 	$gfl=$rowg["geschossflaeche"];
@@ -125,25 +136,25 @@
 
 	if (($nam != "") OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='\"Name\" ist der Eigenname oder die Bezeichnung des Geb&auml;udes.'>Name</td>";
-			echo "\n\t<td>";
-			echo $nam."</td>";
-		echo "\n</tr>";
-	}
-
-	// 0 bis N Lagebezeichnungen mit Haus- oder Pseudo-Nummer
+		echo "\n<tr>"
+			."\n\t<td class='li'>Name</td>"
+			."\n\t<td>".$nam."</td>"
+			."\n\t<td class='erkl'>'Name' ist der Eigenname oder die Bezeichnung des Geb&auml;udes.</td>"
+		."\n</tr>";
+	}
+
+	// 0 bis N   L a g e bezeichnungen mit Haus- oder Pseudo-Nummer
+
 	// HAUPTgebÃ€ude
-	$sqll ="SELECT 'm' AS ltyp, l.gml_id AS gmllag, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer ";
-	$sqll.="FROM ax_gebaeude g ";
-	$sqll.="JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(g.zeigtauf) ";
-	$sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
-	$sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL ";
-	$sqll.="UNION ";
+	$sqll ="SELECT 'm' AS ltyp, l.gml_id AS gmllag, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer FROM ax_gebaeude g
+	JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(g.zeigtauf)
+	JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage
+	WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL";
 	// oder NEBENgebÃ€ude
-	$sqll.="SELECT 'p' AS ltyp, l.gml_id AS gmllag, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer ";
-	$sqll.="FROM ax_gebaeude g "; 
-	$sqll.="JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat ";
-	$sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
-	$sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL ";
+	$sqll.=" UNION 
+	SELECT 'p' AS ltyp, l.gml_id AS gmllag, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer
+	FROM ax_gebaeude g
+	JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat
+	JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage
+	WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL ";
 
 	$sqll.="ORDER BY bezeichnung, hausnummer ;";
@@ -166,220 +177,218 @@
 		$gmllag=$rowl["gmllag"];
 
-			if ($zhsnr == 1) {
-				echo "\n<tr>\n\t<td title='Lage mit Hausnummer oder Pseudonummer'>Adresse</td>";
-				echo "\n\t<td>";
-			}
-			echo "\n\t\t<img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''>&nbsp;";
-			if ($showkey) {echo "<span class='key'>(".$skey.")</span>&nbsp;";}
-			echo "\n\t\t<a title='Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;gmlid=".$gmllag."&amp;ltyp=".$ltyp;
-				if ($idanzeige) {echo "&amp;id=j";}
-			echo "'>";
-				echo $snam."&nbsp;".$hsnr;
-				if ($ltyp == "p") { echo ", lfd.Nr ".$hlfd;}
-			echo "</a>";
-			if ($idanzeige) {linkgml($gkz, $gmllag, "Lage", ""); }
-			echo "<br>";
+		if ($zhsnr == 1) {
+			echo "\n<tr>"
+				."\n\t<td class='li' title='Lage mit Hausnummer oder Pseudonummer'>Adresse</td>"
+				."\n\t<td class='fett'>";
+		}
+		echo "\n\t\t<img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''>&nbsp;";
+		if ($showkey) {echo "<span class='key'>(".$skey.")</span>&nbsp;";}			
+		echo "\n\t\t<a title='Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;gmlid=".$gmllag."&amp;ltyp=".$ltyp."'>"
+			.$snam."&nbsp;".$hsnr;
+			if ($ltyp == "p") {echo ", lfd.Nr ".$hlfd;}
+		echo "</a><br>";
 	} // Ende Loop Lagezeilen m.H.
-
-	if ($zhsnr > 0) {
-		echo "\n\t</td>\n</tr>";
-	}
-
-		echo "\n<tr>";
-			echo "\n\t<td title='\"Geb&auml;udefunktion\" ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Geb&auml;udes'>Funktion</td>";
-			echo "\n\t<td>";
-			if ($showkey) {echo "<span class='key'>".$rowg["gebaeudefunktion"]."</span>&nbsp;";}
-			echo $bfunk."</td>";
-		echo "\n</tr>";
-
+	if ($zhsnr > 0) {echo "\n\t</td>\n\t<td>&nbsp;</td>\n</tr>";}
+
+	// GebÃ€udefunktion
+	echo "\n<tr>"
+		."\n\t<td class='li'>Geb&auml;udefunktion</td>"
+		."\n\t<td class='fett'>";
+		if ($showkey) {echo "<span class='key'>".$kfunk."</span>&nbsp;";}
+		echo $bfunk."</td>"
+		."\n\t<td class='erkl'>'Geb&auml;udefunktion' ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Geb&auml;udes'<br>".$dfunk."</td>"
+	."\n</tr>";
+
+	// Bauweise
 	if ($baw != "" OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='\"Bauweise\" ist die Beschreibung der Art der Bauweise.'>Bauweise</td>";
-			echo "\n\t<td>";
+		echo "\n<tr>"
+			."\n\t<td class='li'>Bauweise</td>"
+			."\n\t<td class='fett'>";
 			if ($showkey) {echo "<span class='key'>".$baw."</span>&nbsp;";}
-			echo $bbauw."</td>";
-		echo "\n</tr>";
-	}
-
+			echo $bbauw."</td>"
+			."\n\t<td class='erkl'>'Bauweise' ist die Beschreibung der Art der Bauweise.<br>".$dbauw."</td>"
+		."\n</tr>";
+	}
+
+	// Geschosse
 	if ($aog != "" OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='Anzahl oberirdischer Geschosse'>Geschosse</td>";
-			echo "\n\t<td>".$aog."</td>";
-		echo "\n</tr>";
-	}
-
+		echo "\n<tr>"
+			."\n\t<td class='li'>Geschosse</td>"
+			."\n\t<td class='fett'>".$aog."</td>"
+			."\n\t<td class='erkl'>Anzahl oberirdischer Geschosse</td>"
+		."\n</tr>";
+	}
+
+	// U-Geschosse
 	if ($aug != "" OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='Anzahl unterirdischer Geschosse'>U-Geschosse</td>";
-			echo "\n\t<td>".$aug."</td>";
-		echo "\n</tr>";
-	}
-
+		echo "\n<tr>"
+			."\n\t<td class='li'>U-Geschosse</td>"
+			. "\n\t<td class='fett'>".$aug."</td>"
+			."\n\t<td class='erkl'>Anzahl unterirdischer Geschosse</td>"
+		."\n</tr>";
+	}
+
+	// Hochhaus
 	if ($hoh != "" OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='\"Hochhaus\" ist ein Geb&auml;ude, das nach Geb&auml;udeh&ouml;he und Auspr&auml;gung als Hochhaus zu bezeichnen ist. F&uuml;r Geb&auml;ude im Geschossbau gilt dieses i.d.R. ab 8 oberirdischen Geschossen, f&uuml;r andere Geb&auml;ude ab einer Geb&auml;udeh&ouml;he von 22 m.'>Hochhaus</td>";
-			echo "\n\t<td>".$hoh."</td>";
-		echo "\n</tr>";
-	}
-
+		echo "\n<tr>"
+			."\n\t<td class='li'>Hochhaus</td>"
+			."\n\t<td class='fett'>".$hoh."</td>"
+			."\n\t<td class='erkl'>'Hochhaus' ist ein Geb&auml;ude, das nach Geb&auml;udeh&ouml;he und Auspr&auml;gung als Hochhaus zu bezeichnen ist. F&uuml;r Geb&auml;ude im Geschossbau gilt dieses i.d.R. ab 8 oberirdischen Geschossen, f&uuml;r andere Geb&auml;ude ab einer Geb&auml;udeh&ouml;he von 22 m.</td>"
+		."\n</tr>";
+	}
+
+	// Lage zur ErdoberflÃ€che
 	if ($ofl != "" OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='\"Lage zur Erdoberfl&auml;che\" ist die Angabe der relativen Lage des Geb&auml;udes zur Erdoberfl&auml;che. Diese Attributart wird nur bei nicht ebenerdigen Geb&auml;uden gef&uuml;hrt.'>Lage zur Erdoberfl&auml;che</td>";
-			echo "\n\t<td>";
+		echo "\n<tr>"
+			."\n\t<td class='li'>Lage zur Erdoberfl&auml;che</td>"
+			."\n\t<td class='fett'>";
 			if ($showkey) {echo "<span class='key'>".$ofl."</span>&nbsp;";}
-			switch ($ofl) {
-				case 1200: echo "Unter der Erdoberfl&auml;che"; break;
-				// "Unter der Erdoberfl&auml;che" bedeutet, dass sich das Geb&auml;ude unter der Erdoberfl&auml;che befindet
-				case 1400: echo "Aufgest&auml;ndert"; break;
-				// "Aufgest&auml;ndert" bedeutet, dass ein Geb&auml;ude auf St&uuml;tzen steht
-				case "": echo "&nbsp;"; break;
-				default: echo "** Unbekannte Lage zur Erdoberfl&auml;che '".$ofl."' **"; break;
-			}
-			echo "&nbsp;</td>";
-		echo "\n</tr>";
-	}
-
-	if ($dga != "" OR $allefelder) { // keine Schluesseltabelle in DB
-		echo "\n<tr>";
-			echo "\n\t<td title='\"Dachgeschossausbau\" ist ein Hinweis auf den Ausbau bzw. die Ausbauf&auml;higkeit des Dachgeschosses.'>Dachgeschossausbau</td>";
-			echo "\n\t<td>";
+			echo $oflv."</td>"
+			."\n\t<td class='erkl'>'Lage zur Erdoberfl&auml;che' ist die Angabe der relativen Lage des Geb&auml;udes zur Erdoberfl&auml;che. Diese Attributart wird nur bei nicht ebenerdigen Geb&auml;uden gef&uuml;hrt.<br>".$ofld."</td>"
+		."\n</tr>";
+	}
+
+	// Dachgeschossausbau
+	// nichts dazu in alkis_wertearten.d
+	if ($dga != "" OR $allefelder) {
+		echo "\n<tr>"
+			."\n\t<td class='li'>Dachgeschossausbau</td>"
+			."\n\t<td class='fett'>";
 			if ($showkey) {echo "<span class='key'>".$dga."</span>&nbsp;";}
-			switch ($dga) {
-				case 1000: echo "Nicht ausbauf&auml;hig"; break;
-				case 2000: echo "Ausbauf&auml;hig"; break;
-				case 3000: echo "Ausgebaut"; break;
-				case 4000: echo "Ausbauf&auml;higkeit unklar"; break;
-				case "": echo "&nbsp;"; break;
-				default: echo "** Unbekannter Wert Dachgeschossausbau '".$dga."' **"; break;
-			}
-			echo "</td>";
-		echo "\n</tr>";
-	}
-
+			echo $dgav."</td>"
+			."\n\t<td class='erkl'>'Dachgeschossausbau' ist ein Hinweis auf den Ausbau bzw. die Ausbauf&auml;higkeit des Dachgeschosses.</td>"
+		."\n</tr>";
+	}
+
+	// Zustand
 	if ($zus != "" OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='\"Zustand\" beschreibt die Beschaffenheit oder die Betriebsbereitschaft von \"Geb&auml;ude\". Diese Attributart wird nur dann optional gef&uuml;hrt, wenn der Zustand des Geb&auml;udes vom nutzungsf&auml;higen Zustand abweicht.'>Zustand</td>";
-			echo "\n\t<td>";
+		echo "\n<tr>"
+			."\n\t<td class='li'>Zustand</td>"
+			."\n\t<td class='fett'>";
 			if ($showkey) {echo "<span class='key'>".$zus."</span>&nbsp;";}
-			echo $zustand."</td>";
-		echo "\n</tr>";
-	}
-
-	if ($wgf != "" OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='\"Weitere Geb&auml;udefunktion\" ist die Funktion, die ein Geb&auml;ude neben der dominierenden Geb&auml;udefunktion hat.'>Weitere Geb&auml;udefunktionen</td>";
-			echo "\n\t<td>";
-
-			if ($wgf != "") {
-				// weiteregebaeudefunktion ist jetzt ein Array
-				$wgflist=trim($wgf, "{}"); // kommagetrennte(?) Liste der Schluesselwerte
-				//$wgfarr=explode(",", $wgflist);
-				//for each ...
-				$sqlw="SELECT wert, bezeichner FROM v_geb_weiterefkt WHERE wert in ( $1 ) ORDER BY wert;";
-				$v = array($wgflist);
+			echo $zusv."</td>"
+			."\n\t<td class='erkl'>'Zustand' beschreibt die Beschaffenheit oder die Betriebsbereitschaft von 'Geb&auml;ude'. Diese Attributart wird nur dann optional gef&uuml;hrt, wenn der Zustand des Geb&auml;udes vom nutzungsf&auml;higen Zustand abweicht.<br>".$zusd."</td>"
+		."\n</tr>";
+	}
+
+	// Weitere GebÃ€udefunktionen
+	// Suche Testfall: SELECT * FROM ax_gebaeude WHERE NOT weiteregebaeudefunktion IS NULL;
+	// Keiner zu finden. Das folgende ungetestet:
+	if ($wgf != "" OR $allefelder) { // "weiteregebaeudefunktion" ist ein Array
+		echo "\n<tr>"
+			."\n\t<td class='li'>Weitere Geb&auml;udefunktionen</td>"
+			."\n\t<td>";
+			if ($wgf != "") { // Kommagetrennte Liste aus Array
+				$sqlw="SELECT k, v, d FROM alkis_wertearten WHERE k IN ( $1 ) AND element='ax_gebaeude' AND bezeichnung='weiteregebaeudefunktion' ORDER BY k;";
+				$v = array($wgf);
 				$resw = pg_prepare("", $sqlw);
 				$resw = pg_execute("", $v);
 				if (!$resw) {
 					echo "\n<p class='err'>Fehler bei Geb&auml;ude - weitere Funktion.</p>\n";
-					if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sqlw."<br>$1 = Werteliste = '".$wgflist."'</p>";}
+					if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sqlw."<br>$1 = Werteliste = '".$wgf."'</p>";}
 				}
 				$zw=0;
 				while($roww = pg_fetch_array($resw)) { // LOOP: w.Funktion
-					$wwert=$roww["wert"];
-					$wbez=$roww["bezeichner"];
-					if ($zw > 0) {echo ", ";} // Liste oder Zeile? echo "<br>"; 
-					if ($showkey) {echo "<span class='key'>".$wwert."</span>&nbsp;";}
-					echo $wbez;
+					if ($zw > 0) {echo "<br>";}
+					if ($showkey) {echo "<span class='key'>".$roww["k"]."</span>&nbsp;";}
+					echo "<span title='".$roww["d"]."'>".$roww["v"]."</span>";
 					$zw++;
 			   }
 			}
-			echo "</td>";
-		echo "\n</tr>";
-	}
-
+			echo "</td>"
+			."\n\t<td class='erkl'>'Weitere Geb&auml;udefunktion' ist die Funktion, die ein Geb&auml;ude neben der dominierenden Geb&auml;udefunktion hat.</td>"
+		."\n</tr>";
+	}
+
+	// Dachform
+	// nichts dazu in alkis_wertearten.d
 	if ($daf != "" OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='\"Dachform\" beschreibt die charakteristische Form des Daches.'>Dachform</td>";
-			echo "\n\t<td>";
+		echo "\n<tr>"
+			."\n\t<td class='li'>Dachform</td>"
+			."\n\t<td class='fett'>";
 			if ($showkey) {echo "<span class='key'>".$daf."</span>&nbsp;";}
-			echo $dach."</td>";
-		echo "\n</tr>";
-	}
-
+			echo $dach."</td>"
+			."\n\t<td class='erkl'>'Dachform' beschreibt die charakteristische Form des Daches.</td>"
+		."\n</tr>";
+	}
+
+	// ObjekthÃ¶he
 	if ($hho != "" OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='\"Objekth&ouml;he\" ist die H&ouml;hendifferenz in [m] zwischen dem h&ouml;chsten Punkt der Dachkonstruktion und der festgelegten Gel&auml;ndeoberfl&auml;che des Geb&auml;udes.'>Objekth&ouml;he</td>";
-			echo "\n\t<td>";
-			echo $hho."</td>";
-		echo "\n</tr>";
-	}
-
+		echo "\n<tr>"
+			."\n\t<td class='li'>Objekth&ouml;he</td>"
+			."\n\t<td class='fett'>".$hho."</td>"
+			."\n\t<td class='erkl'>'Objekth&ouml;he' ist die H&ouml;hendifferenz in [m] zwischen dem h&ouml;chsten Punkt der Dachkonstruktion und der festgelegten Gel&auml;ndeoberfl&auml;che des Geb&auml;udes.</td>"
+		."\n</tr>";
+	}
+
+	// GeschossflÃ€che
 	if ($gfl != "" OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='\"Geschossfl&auml;che\" ist die Geb&auml;udegeschossfl&auml;che in [qm].'>Geschossfl&auml;che</td>";
-			echo "\n\t<td>";
-			if ($gfl != "") {
-				echo $gfl." m&#178;";
-			}
-			echo "</td>";
-		echo "\n</tr>";
-	}
-
+		echo "\n<tr>"
+			."\n\t<td class='li'>Geschossfl&auml;che</td>"
+			."\n\t<td class='fett'>";
+			if ($gfl != "") {echo $gfl." m&#178;";}
+			echo "</td>"
+			."\n\t<td class='erkl'>'Geschossfl&auml;che' ist die Geb&auml;udegeschossfl&auml;che in [qm].</td>"
+		."\n</tr>";
+	}
+
+	// GrundflÃ€che
 	if ($grf != "" OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='\"Grundfl&auml;che\" ist die Geb&auml;udegrundfl&auml;che in [qm].'>Grundfl&auml;che</td>";
-			echo "\n\t<td>";
-			if ($grf != "") {
-				echo $grf." m&#178;";
-			}
-		echo "\n</tr>";
-	}
-
+		echo "\n<tr>"
+			."\n\t<td class='li'>Grundfl&auml;che</td>"
+			."\n\t<td class='fett'>";
+			if ($grf != "") {echo $grf." m&#178;";}
+			echo "\n\t<td class='erkl'>'Grundfl&auml;che' ist die Geb&auml;udegrundfl&auml;che in [qm].</td>"
+		."\n</tr>";
+	}
+
+	// Umbauter Raum
 	if ($ura != "" OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='\"Umbauter Raum\" ist der umbaute Raum [Kubikmeter] des Geb&auml;udes.'>Umbauter Raum</td>";
-			echo "\n\t<td>";
-			echo $ura."</td>";
-		echo "\n</tr>";
-	}
-
+		echo "\n<tr>"
+			."\n\t<td class='li'>Umbauter Raum</td>"
+			."\n\t<td class='fett'>".$ura."</td>"
+			."\n\t<td class='erkl'>'Umbauter Raum' ist der umbaute Raum [Kubikmeter] des Geb&auml;udes.</td>"
+		."\n</tr>";
+	}
+
+	// Baujahr
 	if ($bja != "" OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='\"Baujahr\" ist das Jahr der Fertigstellung oder der baulichen Ver&auml;nderung des Geb&auml;udes.'>Baujahr</td>";
-			echo "\n\t<td>";
-			echo $bja."</td>";
-		echo "\n</tr>";
-	}
-
+		echo "\n<tr>"
+			."\n\t<td class='li'>Baujahr</td>"
+			."\n\t<td class='fett'>".$bja."</td>"
+			."\n\t<td class='erkl'>'Baujahr' ist das Jahr der Fertigstellung oder der baulichen Ver&auml;nderung des Geb&auml;udes.</td>"
+		."\n</tr>";
+	}
+
+	// Dachart
 	if ($daa != "" OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='\"Dachart\" gibt die Art der Dacheindeckung (z.B. Reetdach) an.'>Dachart</td>";
-			echo "\n\t<td>";
-			echo $daa."</td>";
-		echo "\n</tr>";
-	}
-
+		echo "\n<tr>"
+			."\n\t<td class='li'>Dachart</td>"
+			."\n\t<td class='fett'>".$daa."</td>"
+			."\n\t<td class='erkl'>'Dachart' gibt die Art der Dacheindeckung (z.B. Reetdach) an.</td>"
+		."\n</tr>";
+	}
+
+	// QualitÃ€tsangaben
 	if ($qag != "" OR $allefelder) {
-		echo "\n<tr>";
-			echo "\n\t<td title='Angaben zur Herkunft der Informationen (Erhebungsstelle). Die Information ist konform zu den Vorgaben aus ISO 19115 zu repr&auml;sentieren.'>Qualit&auml;tsangaben</td>";
-			echo "\n\t<td>";
-			echo $qag."</td>";
-		echo "\n</tr>";
-	}
-
+		echo "\n<tr>"
+			."\n\t<td class='li'>Qualit&auml;tsangaben</td>"
+			."\n\t<td class='fett'>".$qag."</td>"
+			."\n\t<td class='erkl'>Angaben zur Herkunft der Informationen (Erhebungsstelle). Die Information ist konform zu den Vorgaben aus ISO 19115 zu repr&auml;sentieren.</td>"
+		."\n</tr>";
+	}
 	echo "\n</table>";
 }
 if ($gebnr == 0) {echo "<p class='err'><br>Kein Geb&auml;ude gefunden<br>&nbsp;</p>";}
-// ++ ToDo: Verschnitt mit FS
+
+// ++ ToDo: Verschnitt mit FS?
 
 ?>
 
-<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;
-	</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;
+</div>
 
 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>
Index: trunk/info/info/alkis/alkisinlayausk.php
===================================================================
--- trunk/info/info/alkis/alkisinlayausk.php	(revision 375)
+++ trunk/info/info/alkis/alkisinlayausk.php	(revision 376)
@@ -5,23 +5,11 @@
 	Dies Programm wird in einen iFrame im Mapserver-Template (FeatureInfo) geladen.
 	Parameter: &gkz, &gml_id
-	Dies Programm gibt einen kurzen Ueberblick zum Flurstueck.
-	Eigentuemer ohne Adresse.
-	Fuer detaillierte Angaben wird zum GB- oder FS-Nachweis verlinkt.
+	Dies Programm gibt einen kurzen Ueberblick zum Flurstueck, z.B. Eigentuemer ohne Adresse.
+	FÃŒr detaillierte Angaben wird zum GB- oder FS-Nachweis verlinkt.
 	Dies ist eine Variante von alkisausk.php welches als vollstaendige Seite aufgerufen wird.
 
 	Version:
-	2011-11-17 Link FS-Historie, Parameter der Functions geÃ€ndert
-	2011-11-30 import_request_variables, $dbvers PostNAS 0.5 entfernt
-	2011-12-14 "window.open(..,width=680)"
-	2013-04-08 deprecated "import_request_variables" ersetzt
-	2013-05-06 Fehlende Leerstelle
-	2014-01-28 Link zu alkisstrasse.php
-	2014-02-06 pg_free_result
-	2014-09-04 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-30 Umbenennung SchlÃŒsseltabellen (Prefix), RÃŒckbau substring(gml_id)
-	2014-12-16 hr-Tag vor Eigentum entfernt
-	2015-12-09 Austausch .ico durch .png, Korrektur "zahler" nach "zaehler"
-
+	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermÃ¶glichen (Berechtigung fÃŒr Gemeinde prÃŒfen)
 */
 session_start();
@@ -32,12 +20,8 @@
 $gmlid = isset($_GET["gmlid"]) ? $_GET["gmlid"] : 0;
 echo <<<END
-<!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">
 	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
 	<link rel="shortcut icon" type="image/x-icon" href="ico/Flurstueck.ico">
@@ -52,9 +36,9 @@
 <body>
 END;
-$con = pg_connect("host=".$dbhost." port=".$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisinlayausk.php'");
 if (!$con) {echo "<br>Fehler beim Verbinden der DB.\n<br>";}
 
 // *** F L U R S T U E C K ***
-$sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung 
+$sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung, f.regierungsbezirk, f.kreis, f.gemeinde
 FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
 WHERE f.gml_id= $1 AND f.endet IS NULL ;";
@@ -77,4 +61,7 @@
 	$flae=$row["amtlicheflaeche"];
 	$flae=number_format($flae,0,",",".") . " m&#178;";
+	$fsreg=$row["regierungsbezirk"]; // Filter ZustÃ€ndigkeit
+	$fskrs=$row["kreis"];
+	$fsgem=$row["gemeinde"];
 } else {
 	echo "<p class='err'>Kein Treffer fuer gml_id=".$gmlid."</p>";
@@ -82,33 +69,47 @@
 }
 
+// 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 != $fskrs) or ($filtgem != '' and $filtgem != $fsgem) ) {
+	// Einer der gesetzten Filter passt nicht
+	if ($debug > 2) {
+		echo "<p class='err'>Filter Kreis='".$filtkreis."', Gemeinde='".$filtgem."'</p>";
+		echo "<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>";
+	pg_free_result($res);
+	exit;
+}
+
 echo "\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;ck - &Uuml;bersicht</h2>";
 
-echo "\n<table class='outer'>\n<tr>\n<td>";
-	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'>".$gemkname."</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</td>\n<td>";
-echo "\n\t<p class='nwlink'>weitere Auskunft:<br>";
-
-// Flurstuecksnachweis (mit EigentÃŒmer)
-echo "\n\t\t<a href='javascript:imFenster(\"alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$gmlid."&amp;eig=j\")' ";
-	echo "title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck&nbsp;";
-	echo "<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>";
-echo "</a><br>";
+echo "\n<table class='outer'>\n<tr>\n<td>"
+	."\n\t<table class='kennzfs' title='Flurst&uuml;ckskennzeichen'>\n\t<tr>"
+	."\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'>".$gemkname."</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</td>\n<td>"
+."\n\t<p class='nwlink'>weitere Auskunft:<br>";
+
+// FlurstÃŒcksnachweis (mit EigentÃŒmer)
+echo "\n\t\t<a href='javascript:imFenster(\"alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$gmlid."&amp;eig=j\")' "
+	."title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck&nbsp;"
+	."<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>"
+."</a><br>";
 
 // FS-Historie
-echo "\n\t\t<a href='javascript:imFenster(\"alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$gmlid."\")' ";
-	echo "title='Vorg&auml;nger des Flurst&uuml;cks'>Historie&nbsp;";
-	echo "<img src='ico/Flurstueck_Historisch.png' width='16' height='16' alt=''>";
-echo "</a><br>";
+echo "\n\t\t<a href='javascript:imFenster(\"alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$gmlid."\")' "
+	."title='Vorg&auml;nger des Flurst&uuml;cks'>Historie&nbsp;"
+	."<img src='ico/Flurstueck_Historisch.png' width='16' height='16' alt=''>"
+."</a><br>";
 
 // Gebaeude-NW zum FS
-echo "\n\t\t<a href='javascript:imFenster(\"alkisgebaeudenw.php?gkz=".$gkz."&amp;gmlid=".$gmlid."\")' ";
-	echo "title='Geb&auml;udenachweis'>Geb&auml;ude&nbsp;";
-	echo "<img src='ico/Haus.png' width='16' height='16' alt=''>";
-echo "</a>";
+echo "\n\t\t<a href='javascript:imFenster(\"alkisgebaeudenw.php?gkz=".$gkz."&amp;gmlid=".$gmlid."\")' "
+	."title='Geb&auml;udenachweis'>Geb&auml;ude&nbsp;"
+	."<img src='ico/Haus.png' width='16' height='16' alt=''>"
+."</a>";
 
 echo "\n\t</p>\n</td>";
@@ -133,17 +134,17 @@
 while($row = pg_fetch_array($res)) {
 	$sname = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name
-	echo "\n<tr>\n\t\n\t<td class='lr'>".$sname."&nbsp;".$row["hausnummer"]."</td>";
-	echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
+	echo "\n<tr>\n\t\n\t<td class='lr'>".$sname."&nbsp;".$row["hausnummer"]."</td>"
+	."\n\t<td>\n\t\t<p class='nwlink noprint'>";
 	$kgml=$row["kgml"]; // Wiederholung vermeiden
 	if ($kgml != $kgmlalt) { // NEUE Strasse vor Lage
 		$kgmlalt=$kgml; // Katalog GML-ID
-		echo "\n\t\t\t<a title='Flurst&uuml;cke an der Stra&szlig;e' ";
-		echo "href='javascript:imFenster(\"alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$row["kgml"]."\")'>Stra&szlig;e ";
-		echo "<img src='ico/Strassen.png' width='16' height='16' alt='STRA'></a>";
-	}
-		echo "\n\t\t\t<a title='Lagebezeichnung mit Hausnummer' ";
-		echo "href='javascript:imFenster(\"alkislage.php?gkz=".$gkz."&amp;ltyp=m&amp;gmlid=".$row["gml_id"]."\")'>Lage ";
-		echo "<img src='ico/Lage_mit_Haus.png' width='16' height='16' alt='HAUS'></a>&nbsp;";
-	echo "\n\t\t</p>\n\t</td>\n</tr>";
+		echo "\n\t\t\t<a title='Flurst&uuml;cke an der Stra&szlig;e' "
+		."href='javascript:imFenster(\"alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$row["kgml"]."\")'>Stra&szlig;e "
+		."<img src='ico/Strassen.png' width='16' height='16' alt='STRA'></a>";
+	}
+		echo "\n\t\t\t<a title='Lagebezeichnung mit Hausnummer' "
+		."href='javascript:imFenster(\"alkislage.php?gkz=".$gkz."&amp;ltyp=m&amp;gmlid=".$row["gml_id"]."\")'>Lage "
+		."<img src='ico/Lage_mit_Haus.png' width='16' height='16' alt='HAUS'></a>&nbsp;"
+	."\n\t\t</p>\n\t</td>\n</tr>";
 	$j++;
 }
@@ -151,9 +152,8 @@
 if ($j == 0) { // keine HsNr gefunden
 	// Lage OHNE HausNr
-	$sql ="SELECT DISTINCT s.gml_id AS kgml, l.gml_id, s.bezeichnung, l.unverschluesselt 
+	$sql="SELECT DISTINCT s.gml_id AS kgml, l.gml_id, s.bezeichnung, l.unverschluesselt 
 	FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON l.gml_id=ANY(f.zeigtauf)
 	LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
-	WHERE f.gml_id= $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL  
-	ORDER BY s.bezeichnung;";
+	WHERE f.gml_id= $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL ORDER BY s.bezeichnung;";
 
 	$v=array($gmlid);
@@ -179,12 +179,12 @@
 		if ($kgml != $kgmlalt) { // NEUE Strasse vor Lage-O
 			$kgmlalt=$kgml; // Katalog GML-ID
-			echo "\n\t\t\t<a title='Flurst&uuml;cke an der Stra&szlig;e' ";
-			echo "href='javascript:imFenster(\"alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$row["kgml"]."\")'>Stra&szlig;e ";
-			echo "<img src='ico/Strassen.png' width='16' height='16' alt='STRA'></a>";
-		}
-		echo "\n\t\t\t<a title='Lagebezeichnung ohne Hausnummer' ";
-		echo "href='javascript:imFenster(\"alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$row["gml_id"]."\")'>Lage ";
-		echo "<img src='ico/".$ico."' width='16' height='16' alt='OHNE'></a>&nbsp;";
-		echo "\n\t\t</p>\n\t</td>\n</tr>";
+			echo "\n\t\t\t<a title='Flurst&uuml;cke an der Stra&szlig;e' "
+			."href='javascript:imFenster(\"alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$row["kgml"]."\")'>Stra&szlig;e "
+			."<img src='ico/Strassen.png' width='16' height='16' alt='STRA'></a>";
+		}
+		echo "\n\t\t\t<a title='Lagebezeichnung ohne Hausnummer' "
+		."href='javascript:imFenster(\"alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$row["gml_id"]."\")'>Lage "
+		."<img src='ico/".$ico."' width='16' height='16' alt='OHNE'></a>&nbsp;"
+		."\n\t\t</p>\n\t</td>\n</tr>";
 	}
 	pg_free_result($res);
@@ -200,9 +200,11 @@
 // FS >istgebucht> GS >istbestandteilvon> GB.
 $sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, 
-s.gml_id AS s_gml, s.buchungsart, s.laufendenummer, s.zaehler, s.nenner, z.bezeichnung, a.bezeichner AS bart 
-FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=s.gml_id 
+s.gml_id AS s_gml, s.buchungsart, s.laufendenummer, s.zaehler, s.nenner, z.bezeichnung, wa.v AS blattartv, wb.v AS bart 
+FROM ax_flurstueck f 
+JOIN ax_buchungsstelle s ON f.istgebucht=s.gml_id 
 JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id
 LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk 
-LEFT JOIN v_bs_buchungsart a ON s.buchungsart=a.wert 
+LEFT JOIN alkis_wertearten wa ON cast(b.blattart AS character varying)=wa.k AND wa.element='ax_buchungsblatt' AND wa.bezeichnung='blattart'
+LEFT JOIN alkis_wertearten wb ON cast(s.buchungsart AS character varying)=wb.k AND wb.element='ax_buchungsstelle' AND wb.bezeichnung='buchungsart'
 WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL 
 ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;";
@@ -218,6 +220,7 @@
 	$beznam=$rowg["bezeichnung"];
 	echo "\n<hr>\n<table class='outer'>\n<tr>\n<td>";
-		$blattkey=$rowg["blattart"];
-		$blattart=blattart($blattkey);
+		$blattkey=$rowg["blattart"]; // Key
+		$blattart=$rowg["blattartv"]; // Value
+
 		if ($blattkey == 1000) {
 			echo "\n\t<table class='kennzgb' title='Bestandskennzeichen'>";
@@ -225,36 +228,32 @@
 			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'>".$blattart."</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'>";
-				echo $beznam."</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)'>".$rowg["laufendenummer"]."</td>";
-				echo "\n\t\t<td title='Buchungsart'>".$rowg["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'>".$blattart."</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'>".$beznam."</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)'>".$rowg["laufendenummer"]."</td>"
+				."\n\t\t<td title='Buchungsart'>".$rowg["bart"]."</td>"
+			."\n\t</tr>"
+		."\n\t</table>";
 
 		if ($rowg["zaehler"] <> "") {
 			echo "\n<p class='ant'>".$rowg["zaehler"]."/".$rowg["nenner"]."&nbsp;Anteil am Flurst&uuml;ck</p>";
 		}
-		echo "\n</td>\n<td>";
-		echo "\n\t<p class='nwlink'>weitere Auskunft:<br>";
-			echo "\n\t\t<a href='javascript:imFenster(\"alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$rowg[0]."\")' ";
-				echo "title='Grundbuchnachweis'>";
-				echo $blattart;
-				echo " <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''>";
-			echo "</a>";
-		echo "\n\t</p>";
-	echo "\n</td>\n</tr>\n</table>";
+		echo "\n</td>\n<td>"
+		."\n\t<p class='nwlink'>weitere Auskunft:<br>"
+			."\n\t\t<a href='javascript:imFenster(\"alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$rowg[0]."\")' "
+				."title='Grundbuchnachweis'>".$blattart." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''>"
+			."</a>"
+		."\n\t</p>"
+	."\n</td>\n</tr>\n</table>";
 
 	// E I G E N T U E M E R
 	if ($blattkey == 5000) { // Schluessel Blattart
-		echo "\n<p>Keine Angaben zum Eigentum bei fiktivem Blatt</p>\n";
-		echo "\n<p>Siehe weitere Grundbuchbl&auml;tter mit Rechten an dem fiktiven Blatt.</p>\n";
+		echo "\n<p>Keine Angaben zum Eigentum bei fiktivem Blatt</p>\n"
+		."\n<p>Siehe weitere Grundbuchbl&auml;tter mit Rechten an dem fiktiven Blatt.</p>\n";
 	} else {// kein Eigent. bei fiktiv. Blatt
 		echo "\n\n<h3><img src='ico/Eigentuemer_2.png' width='16' height='16' alt=''> Angaben zum Eigentum</h3>\n";
@@ -264,7 +263,6 @@
 
 		if ($n == 0) { // keine NamensNr, kein Eigentuemer
-			echo "\n<p class='err'>Keine Eigent&uuml;mer gefunden.</p>";
-			echo "\n<p class='err'>Bezirk ".$rowg["bezirk"]." Blatt ".$rowg["blatt"]." Blattart ".$blattkey." (".$blattart.")</p>";
-			linkgml($gkz, $gmlid, "Buchungsblatt", "");
+			echo "\n<p class='err'>Keine Eigent&uuml;mer gefunden.</p>"
+			."\n<p class='err'>Bezirk ".$rowg["bezirk"]." Blatt ".$rowg["blatt"]." Blattart ".$blattkey." (".$blattart.")</p>";
 		}
 	}
Index: trunk/info/info/alkis/alkisbestnw.php
===================================================================
--- trunk/info/info/alkis/alkisbestnw.php	(revision 375)
+++ trunk/info/info/alkis/alkisbestnw.php	(revision 376)
@@ -6,14 +6,6 @@
 
 	Version:
-	2011-11-17 Parameter der Functions geÃ€ndert
-	2011-11-22 Feldname land in ax_buchungsblattbezirk geÃ€ndert
-	2011-11-30 import_request_variables
-	2012-07-24 Export CSV
-	2013-04-08 deprecated "import_request_variables" ersetzt
-	2014-09-10 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-30 RÃŒckbau substring(gml_id)
-	2014-12-30 Berechtigte GB nach "an BVNR" dieses Bestandes sortieren
-	2015-12-09 Austausch .ico durch .png
+	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermÃ¶glichen, Markierung der Sortierung
 */
 session_start();
@@ -23,17 +15,11 @@
 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 Bestandsnachweis</title>
 	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
@@ -50,18 +36,21 @@
 <body>
 <?php
-$con = pg_connect("host=".$dbhost." port=".$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbestnw.php'");
 if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
 
 // G R U N D B U C H
-$sql="SELECT g.gml_id, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung AS nr, g.blattart, 
-b.gml_id, b.bezirk, b.bezeichnung AS beznam, a.gml_id, a.land, a.bezeichnung, a.stelle, a.stellenart 
-FROM ax_buchungsblatt g LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk 
-LEFT JOIN ax_dienststelle a ON b.land=a.land AND b.stelle=a.stelle 
-WHERE g.gml_id= $1 AND a.stellenart=1000 AND g.endet IS NULL AND a.endet IS NULL;";
+$sql="SELECT g.gml_id, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung AS nr, g.blattart, wb.v AS blattartv, wb.d AS blattartd, 
+b.gml_id, b.bezirk, b.bezeichnung AS beznam, d.gml_id, d.land, d.bezeichnung, d.stelle, d.stellenart, wd.v AS stellev 
+FROM ax_buchungsblatt g 
+LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk 
+LEFT JOIN ax_dienststelle d ON b.land=d.land AND b.stelle=d.stelle 
+LEFT JOIN alkis_wertearten wb ON cast(g.blattart AS character varying)=wb.k AND wb.element='ax_buchungsblatt' AND wb.bezeichnung='blattart'
+LEFT JOIN alkis_wertearten wd ON cast(d.stellenart AS character varying)=wd.k AND wd.element='ax_dienststelle' AND wd.bezeichnung='stellenart'
+WHERE g.gml_id= $1 AND g.endet IS NULL AND d.endet IS NULL;";
+// .. AND d.stellenart=1000 
 
 $v = array($gmlid);
 $res = pg_prepare("", $sql);
 $res = pg_execute("", $v);
-
 if (!$res) {
 	echo "<p class='err'>Fehler bei Grundbuchdaten.</p>";
@@ -70,8 +59,9 @@
 if ($row = pg_fetch_array($res)) {
 	$blattkey=$row["blattart"];
-	$blattart=blattart($blattkey);
+	$blattart=$row["blattartv"];
+
 	echo "<p class='gbkennz'>ALKIS Bestand ".$row["bezirk"]." - ".$row["nr"]."&nbsp;</p>\n"; // Balken
-	echo "\n<h2><img src='ico/Grundbuch.png' width='16' height='16' alt=''> Grundbuch</h2>";
-	echo "\n<table class='outer'>\n<tr>\n\t<td>"; // Kennz. im Rahmen
+	echo "\n<h2><img src='ico/Grundbuch.png' width='16' height='16' alt=''> Grundbuch</h2>"
+	."\n<table class='outer'>\n<tr>\n\t<td>"; // Kennz. im Rahmen
 		if ($blattkey == 1000) {
 			echo "\n\t<table class='kennzgb' title='Bestandskennzeichen'>";
@@ -79,26 +69,24 @@
 			echo "\n\t<table class='kennzgbf' title='Bestandskennzeichen'>"; // dotted
 		}
-			echo "\n\t<tr>";
-				echo "\n\t\t<td class='head'>".dienststellenart($row["stellenart"])."</td>";
-				echo "\n\t\t<td class='head'>Bezirk</td>";
-				echo "\n\t\t<td class='head'>".$blattart."</td>";
-			echo "\n\t</tr>\n\t<tr>";
-				echo "\n\t\t<td title='Amtsgerichtsbezirk'>";
-				if ($showkey) {
-					echo "<span class='key'>".$row["stelle"]."</span><br>";
-				}
-				echo htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8")."</td>";
-				echo "\n\t\t<td title='Grundbuchbezirk'>";
-				if ($showkey) {
-					echo "<span class='key'>".$row["bezirk"]."</span><br>";
-				}
-				echo htmlentities($row["beznam"], ENT_QUOTES, "UTF-8")."</td>";
-				echo "\n\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$row["nr"]."</span></td>";
-			echo "\n\t</tr>";
-		echo "\n\t</table>";
-
-		echo "\n\n\t</td>\n\t<td>";
-		if ($idanzeige) {linkgml($gkz, $gmlid, "Buchungsblatt", "");}
-	echo "\n\t</td>\n</tr>\n</table>";
+			echo "\n\t<tr>"
+				."\n\t\t<td class='head'>"; // .d nicht gefÃŒllt
+				if ($showkey) {echo "<span class='key'>".$row["stellenart"]."&nbsp;</span>";}
+				echo $row["stellev"]."</td>";
+				echo "\n\t\t<td class='head'>Bezirk</td>"
+				."\n\t\t<td class='head' title='".htmlentities($row["blattartd"], ENT_QUOTES, "UTF-8")."'>";
+				if ($showkey) {echo "<span class='key'>".$blattkey."&nbsp;</span>";}
+				echo $blattart."</td>"
+			."\n\t</tr>\n\t<tr>"
+				."\n\t\t<td title='Amtsgerichtsbezirk'>";
+				if ($showkey) {echo "<span class='key'>".$row["stelle"]."</span><br>";}
+				echo htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8")."</td>"
+				."\n\t\t<td title='Grundbuchbezirk'>";
+				if ($showkey) {echo "<span class='key'>".$row["bezirk"]."</span><br>";}
+				echo htmlentities($row["beznam"], ENT_QUOTES, "UTF-8")."</td>"
+				."\n\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$row["nr"]."</span></td>"
+			."\n\t</tr>"
+		."\n\t</table>"
+		."\n\n\t</td>\n\t<td>"
+	."\n\t</td>\n</tr>\n</table>";
 }
 
@@ -107,10 +95,9 @@
 } else {
 	// E I G E N T U E M E R
-	echo "\n<h3><img src='ico/Eigentuemer_2.png' width='16' height='16' alt=''> Angaben zum Eigentum</h3>\n";
+	echo "\n\n<h3><img src='ico/Eigentuemer_2.png' width='16' height='16' alt=''> Angaben zum Eigentum</h3>";
 	$n = eigentuemer($con, $gmlid, true, ""); // MIT Adressen.
 	if ($n == 0) { // keine NamensNr, kein Eigentuemer
-		echo "\n<p class='err'>Keine Namensnummer gefunden.</p>";
-		echo "\n<p>Bezirk: ".$row["bezirk"].", Blatt: ".$row["nr"].", Blattart ".$blattkey." (".$blattart.")</p>";
-		linkgml($gkz, $gmlid, "Buchungsblatt", "");
+		echo "\n<p class='err'>Keine Namensnummer gefunden.</p>"
+		."\n<p>Bezirk: ".$row["bezirk"].", Blatt: ".$row["nr"].", Blattart ".$blattkey." (".$blattart.")</p>";
 	}
 }
@@ -133,36 +120,35 @@
 }
 if ($anz > 0) {
-	echo "\n<hr>\n\n<h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Rechte und Flurst&uuml;cke</h3>";
-	echo "\n<table class='fs'>";
-	echo "\n<tr>"; // zusÃ€tzliche Kopfzeile
-		echo "\n\t<td>&nbsp;</td>";
-		echo "\n\t<td class='dien' title='herrschendes Grundst&uuml;ck'>herrschende Buchungsart</td>";
-		echo "\n\t<td>&nbsp;</td>";
-		echo "\n\t<td class='dien'>Bezirk</td>";
-		echo "\n\t<td class='dien'>Blatt</td>";
-		echo "\n\t<td class='dien'>BVNR</td>";
-		echo "\n\t<td class='dien' title='dienendes Grundst&uuml;ck'>Buchungsart</td>";
-		echo "\n\t<td>&nbsp;</td>";
-	echo "\n</tr>";
+	echo "\n<hr>\n\n<h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Rechte und Flurst&uuml;cke</h3>"
+	."\n<table class='fs'>"
+	."\n<tr>" // zus. Kopfz.
+		."\n\t<td>&nbsp;</td>"
+		."\n\t<td class='dien' title='herrschendes Grundst&uuml;ck'>herrschende Buchungsart</td>"
+		."\n\t<td>&nbsp;</td>"
+		."\n\t<td class='dien'>Bezirk</td>"
+		."\n\t<td class='dien'>Blatt</td>"
+		."\n\t<td class='dien'>BVNR</td>"
+		."\n\t<td class='dien' title='dienendes Grundst&uuml;ck'>Buchungsart</td>"
+		."\n\t<td>&nbsp;</td>"
+	."\n</tr>";
 } else {
-	echo "\n<hr>\n\n<h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;cke</h3>";
-	echo "\n<table class='fs'>";
-}
-
-echo "\n<tr>"; // gemeinsame Kopfzeile
-	echo "\n\t<td class='head' title='laufende Nummer Bestandsverzeichnis (BVNR) = Grundst&uuml;ck'><span class='wichtig'>BVNR</span></td>";
-	echo "\n\t<td class='head'>Buchungsart</td>";
-	echo "\n\t<td class='head'>Anteil</td>";
-	echo "\n\t<td class='head'>Gemarkung</td>";
-	echo "\n\t<td class='head'>Flur</td>";
-	echo "\n\t<td class='head fsnr' title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><span class='wichtig'>Flurst.</span></td>";
-	echo "\n\t<td class='head fla'>Fl&auml;che</td>"; // 7
-	echo "\n\t<td class='head nwlink noprint' title='Link: weitere Auskunft'>weit. Auskunft</td>";
-echo "\n</tr>";
+	echo "\n<hr>\n\n<h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;cke</h3>"
+	."\n<table class='fs'>";
+} // gemeinsame Kopfzeile
+echo "\n<tr>"
+	."\n\t<td class='heads' title='laufende Nummer Bestandsverzeichnis (BVNR) = Grundst&uuml;ck'><span class='wichtig'>BVNR</span><img src='ico/sort.png' width='10' height='10' alt='' title='prim&auml;re Sortierung'></td>"
+	."\n\t<td class='head'>Buchungsart</td>"
+	."\n\t<td class='head'>Anteil</td>"
+	."\n\t<td class='heads'>Gemarkung</td>"
+	."\n\t<td class='heads'>Flur</td>"
+	."\n\t<td class='heads fsnr' title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><span class='wichtig'>Flurst.</span></td>"
+	."\n\t<td class='head fla'>Fl&auml;che</td>"
+	."\n\t<td class='head nwlink noprint' title='Link: weitere Auskunft'>weit. Auskunft</td>"
+."\n</tr>";
 
 // Blatt ->  B u c h u n g s s t e l l e
 // aktuelles ax_buchungsblatt <istBestandteilVon< ax_buchungsstelle 
-$sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer AS lfd, s.beschreibungdesumfangsderbuchung AS udb, s.zaehler, s.nenner, s.nummerimaufteilungsplan AS nrap, s.beschreibungdessondereigentums AS sond, b.bezeichner as bart 
-FROM ax_buchungsstelle s LEFT JOIN v_bs_buchungsart b ON s.buchungsart=b.wert 
+$sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer AS lfd, s.beschreibungdesumfangsderbuchung AS udb, s.zaehler, s.nenner, s.nummerimaufteilungsplan AS nrap, s.beschreibungdessondereigentums AS sond, b.v as bart, b.d
+FROM ax_buchungsstelle s LEFT JOIN alkis_wertearten b ON cast(s.buchungsart AS character varying)=b.k AND b.element='ax_buchungsstelle' and b.bezeichnung='buchungsart'
 WHERE s.istbestandteilvon= $1 AND s.endet IS NULL ORDER BY cast(s.laufendenummer AS integer);";
 
@@ -181,5 +167,7 @@
 	$bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT);
 	$gml_bs= $row["gml_id"]; // id der buchungsstelle
-	$ba=$row["bart"]; // Buchungsart aus Schluesseltabelle
+	$bartkey=$row["buchungsart"]; // SchlÃŒsselwert
+	$bart=$row["bart"]; // BuchungsART Text dazu
+	$bartstory=htmlentities($row["d"], ENT_QUOTES, "UTF-8"); // .. fÃŒr Anzeige aufbereitet
 
 	if ($row["zaehler"] == "") {
@@ -189,5 +177,5 @@
 	}
 	// F l u r s t u e c k s d a t e n  zur direkten Buchungsstelle
-	$j = bnw_fsdaten($con, $lfdnr, $gml_bs, $ba, $anteil, true); // return=Anzahl der FS
+	$j = bnw_fsdaten($con, $lfdnr, $gml_bs, $bart, $anteil, true, $bartkey, $bartstory); // return=Anzahl der FS
 	$fscnt=$fscnt + $j;
 	if ($j == 0) { //  k e i n e  Flurstuecke gefunden (Miteigentumsnteil usw.)
@@ -200,8 +188,8 @@
 		//  ax_buchungsstelle >an> ax_buchungsstelle (anderes Blatt, z.B Erbbaurecht an)
 		//  sh=herrschend          sd=dienend
-		$sql ="SELECT sd.gml_id, sd.buchungsart, sd.laufendenummer AS lfd, sd.beschreibungdesumfangsderbuchung AS udb, sd.nummerimaufteilungsplan AS nrap, sd.beschreibungdessondereigentums AS sond, b.bezeichner AS bart 
-	FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON (sd.gml_id=ANY(sh.an) OR sd.gml_id=ANY(sh.zu))  
-	LEFT JOIN v_bs_buchungsart b ON sd.buchungsart=b.wert 
-	WHERE sh.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL ORDER BY sd.laufendenummer;";
+		$sql ="SELECT sd.gml_id, sd.buchungsart, sd.laufendenummer AS lfd, sd.beschreibungdesumfangsderbuchung AS udb, sd.nummerimaufteilungsplan AS nrap, sd.beschreibungdessondereigentums AS sond, wb.v AS bart "
+		."FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON (sd.gml_id=ANY(sh.an) OR sd.gml_id=ANY(sh.zu)) "
+		."LEFT JOIN alkis_wertearten wb ON cast(sd.buchungsart AS character varying)=wb.k AND wb.element='ax_buchungsstelle' AND wb.bezeichnung='buchungsart' "
+		."WHERE sh.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL ORDER BY sd.laufendenummer;";
 
 		$v=array($gml_bs);
@@ -210,19 +198,20 @@
 		if (!$resan) {
 			echo "<p class='err'>Fehler bei 'andere Buchungsstelle'.</p>\n";
-			if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+			//if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
 		}
 		$a=0; // count
 		$altbvnr=""; // Gruppenwechsel
-		while($rowan = pg_fetch_array($resan)) {
-			$lfdnran = $rowan["lfd"];		// BVNR an
-			$gml_bsan= $rowan["gml_id"];	// id der buchungsstelle an
-			$baan= $rowan["bart"];  		// Buchungsart an, entschluesselt
+		while($rowan= pg_fetch_array($resan)) {
+			$lfdnran=$rowan["lfd"];		// BVNR an
+			$gml_bsan=$rowan["gml_id"];	// id der buchungsstelle an
+			$baan=$rowan["bart"];  		// Buchungsart an, entschluesselt
 
 			// a n d e r e s   B l a t t  (an dem das aktuelle Blatt Rechte hat)
 			// dienendes Grundbuch
-			$sql ="SELECT b.gml_id, b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung AS blatt, b.blattart, z.bezeichnung AS beznam 
-	FROM ax_buchungsblatt b JOIN ax_buchungsstelle s ON b.gml_id=s.istbestandteilvon 
-	LEFT JOIN ax_buchungsblattbezirk z ON b.land=z.land AND b.bezirk=z.bezirk 
-	WHERE s.gml_id= $1 AND b.endet IS NULL ORDER BY b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
+			$sql ="SELECT b.gml_id, b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung AS blatt, b.blattart, wb.v AS blattartv, z.bezeichnung AS beznam "
+			."FROM ax_buchungsblatt b JOIN ax_buchungsstelle s ON b.gml_id=s.istbestandteilvon "
+			."LEFT JOIN ax_buchungsblattbezirk z ON b.land=z.land AND b.bezirk=z.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 b.endet IS NULL ORDER BY b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
 			$v=array($gml_bsan);
 			$fbres=pg_prepare("", $sql);
@@ -234,111 +223,89 @@
 			$b=0;
 			while($fbrow = pg_fetch_array($fbres)) { // genau 1
-				$fbgml  = $fbrow["gml_id"];
-				$fbland = $fbrow["land"];
-				$fbbez  = $fbrow["bezirk"];
-				$fbblatt = $fbrow["blatt"];
-				$fbbart = blattart($fbrow["blattart"]);
-				$beznam	= $fbrow["beznam"];
+				$fbgml=$fbrow["gml_id"];
+				$fbland=$fbrow["land"];
+				$fbbez=$fbrow["bezirk"];
+				$beznam=$fbrow["beznam"];
+				$fbblatt=$fbrow["blatt"]; // Key
+				$fbbart=$fbrow["blattartv"]; // Value
 				$b++;
 			}
-			if ($b != 1) {
+			if ($b != 1) { // Ãberwachen: genau 1?
 				echo "<p class='err'>Anzahl fiktive Bl&auml;tter zu anderer Buchungstelle = ".$b."</p>";
 			}
 
 			// G r u n d b u c h d a t e n  zur  a n d e r e n  Buchungsstelle
-			echo "\n<tr>";
-				echo"\n\t<td>";
+			echo "\n<tr>"
+				."\n\t<td>"; // Sp.1 Erbbau BVNR
 					if($bvnr == $altbvnr) {	// gleiches Grundstueck
-						echo "&nbsp;"; // Anzeige unterdruecken
+						echo "&nbsp;"; // dann Anzeige unterdruecken
 					} else {
-						echo "<a name='bvnr".$lfdnr."'></a>"; // Sprungmarke
-						echo "<span class='wichtig'>".$bvnr."</span>"; // Sp.1 Erbbau BVNR
-						if ($idanzeige) {linkgml($gkz, $gml_bs, "Buchungsstelle", "ax_buchungsstelle");}
+						echo "<a id='bvnr".$lfdnr."'></a>" // Sprungmarke
+						."<span class='wichtig'>".$bvnr."</span>"; 
 						$altbvnr = $bvnr; // Gruppenwechsel merken
 					}
-				echo "</td>";
-				echo "\n\t<td class='dien'>"; // Sp.2 Buchung
-					if ($showkey) {
-						echo "<span class='key'>".$row["buchungsart"]."</span> ";
-					}
-				echo $ba." an</td>";
-				echo "\n\t<td>".$anteil."</td>"; // Sp.3 Anteil
-				echo "\n\t<td class='dien'>"; // Sp.4 Gemarkg. hier Bezirk
-					if ($showkey) {
-						echo "<span class='key'>".$fbbez."</span> ";
-					}
-					echo $beznam;
-				echo "</td>"; // Sp.4 hier Bezirk
-				echo "\n\t<td class='dien'>"; // Sp. 5 Blatt
-					echo $fbblatt; // Sp.6 BVNR
-					if ($idanzeige) {
-						linkgml($gkz, $fbgml, "Buchungsblatt", "");
-					}
-				echo "</td>";
-				echo "\n\t<td class='dien'>"; // BVNR
-					echo str_pad($lfdnran, 4, "0", STR_PAD_LEFT);
-					if ($idanzeige) {
-						linkgml($gkz, $gml_bsan, "Buchungsstelle", "ax_buchungsstelle");
-					}
-
-				echo "</td>"; 
-				echo "\n\t<td class='dien'>"; // Sp.7 Buchungsart
-					if ($showkey) {
-						echo "<span class='key'>".$rowan["buchungsart"]."</span> ";
-					}
-					echo $baan." ";
-				echo "</td>";
-				echo "\n\t<td>";  // Sp.8 Link ("an" oder "zu" ?)
-					echo "<p class='nwlink noprint'>an/zu"; //.$rowan["beziehungsart"] Feld gibt es nicht mehr
-					echo " <a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$fbgml;
-						if ($idanzeige) {echo "&amp;id=j";}
-						if ($showkey)   {echo "&amp;showkey=j";}
-						echo "#bvnr".$lfdnran; // Sprungmarke auf der Seite
-						echo "' title='Grundbuchnachweis des dienenden Blattes'>";
-						echo $fbbart;
-					echo " <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''></a></p>";
-				echo "</td>";
-			echo "\n</tr>"; 
+				echo "</td>"
+				."\n\t<td class='dien'>"; // Sp.2 Buchung
+					if ($showkey) {echo "<span class='key'>".$row["buchungsart"]."</span> ";}
+				echo $bart." an</td>"
+				."\n\t<td>".$anteil."</td>" // Sp.3 Anteil
+				."\n\t<td class='dien'>"; // Sp.4 Gemarkg., hier Bezirk
+					if ($showkey) {echo "<span class='key'>".$fbbez."</span> ";}
+					echo $beznam
+				."</td>";
+				echo "\n\t<td class='dien'>".$fbblatt."</td>" // Sp. 5 Blatt
+					."\n\t<td class='dien'>".str_pad($lfdnran, 4, "0", STR_PAD_LEFT)."</td>" // Sp.6 BVNR
+					."\n\t<td class='dien'>"; // Sp.7 Buchungsart
+					if ($showkey) {echo "<span class='key'>".$rowan["buchungsart"]."</span> ";}
+					echo $baan." "
+				."</td>"
+				."\n\t<td>" // Sp.8 Link ("an" oder "zu"?)
+					."<p class='nwlink noprint'>an/zu"
+					." <a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$fbgml;
+						if ($showkey) {echo "&amp;showkey=j";}
+						echo "#bvnr".$lfdnran // Sprungmarke auf der Seite
+						."' title='Zum Grundbuchnachweis des dienenden Blattes'>";
+						if ($showkey) {echo "<span class='key'>".$rowan["blattart"]."</span> ";}
+						echo $fbbart
+					." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''></a></p>"
+				."</td>"
+			."\n</tr>"; 
 
 			// F l u r s t u e c k s d a t e n  zur  a n d e r e n  Buchungsstelle
 			// Buchungsart wird nur in erster Zeile ausgegeben, hier leer
-			$aj = bnw_fsdaten($con, $lfdnran, $gml_bsan, "", $anteil, false); // return=Anz.FS
+			$aj = bnw_fsdaten($con, $lfdnran, $gml_bsan, "", $anteil, false, "", ""); // return=Anz.FS
 			$fscnt=$fscnt + $aj;
 			// +++ Gibt es Sondereigentum beim fiktiven Blatt?
 			if ($rowan["nrap"] != "") {
-				echo "\n<tr>";
-					echo "\n\t<td class='sond' colspan=8>Nr. im Aufteilungsplan: ".$rowan["nrap"]."</td>";
-				echo "\n</tr>";
+				echo "\n<tr>"
+					."\n\t<td class='sond' colspan=8>Nr. im Aufteilungsplan: ".$rowan["nrap"]."</td>"
+				."\n</tr>";
 			}
 			if ($rowan["sond"] != "") {
-				echo "\n<tr>";
-					echo "\n\t<td class='sond' colspan=8>Verbunden mit dem Sondereigentum an: ".$rowan["sond"]."</td>";
-				echo "\n</tr>";
+				echo "\n<tr>"
+					."\n\t<td class='sond' colspan=8>Verbunden mit dem Sondereigentum an: ".$rowan["sond"]."</td>"
+				."\n</tr>";
 			}
 			$a++;
 		}
 		if ($a == 0) {
-			echo "\n<tr>";
-				echo "\n\t<td><span class='wichtig'>".$bvnr."</span>";
-				if ($idanzeige) {
-					linkgml($gkz, $gml_bs, "Buchungsstelle", "ax_buchungsstelle");
-				}
-				echo "</td>";
-				echo "\n\t<td colspan=7>";
-					echo "<p class='warn'>Flurst&uuml;cke zu ".$bvnr." nicht gefunden.</p>";
-				echo "</td>";
-			echo "\n</tr>";
+			echo "\n<tr>"
+				."\n\t<td><span class='wichtig'>".$bvnr."</span></td>"
+				."\n\t<td colspan=7>"
+					."<p class='warn'>Keine Flurst&uuml;cke zu Buchung ".$bvnr." im berechtigten Bereich.</p>"
+				."</td>"
+			."\n</tr>";
 		}
 	}
 	$i++; 
 	if ($row["nrap"] != "") { // Nr im Auft.Plan
-		echo "\n<tr>";
-			echo "\n\t<td class='nrap' colspan=8>Nummer <span class='wichtig'>".$row["nrap"]."</span> im Aufteilungsplan.</td>";
-		echo "\n</tr>";
+		echo "\n<tr>"
+			."\n\t<td class='nrap' colspan=8>Nummer <span class='wichtig'>".$row["nrap"]."</span> im Aufteilungsplan.</td>"
+		."\n</tr>";
 	}
 	if ($row["sond"] != "") { // Sondereigentumsbeschreibung
-		echo "\n<tr>";
-			echo "\n\t<td class='sond' colspan=8>Verbunden mit dem Sondereigentum an: ".$row["sond"]."</td>";
-		echo "\n</tr>";
+		echo "\n<tr>"
+			."\n\t<td class='sond' colspan=8>Verbunden mit dem Sondereigentum an: ".$row["sond"]."</td>"
+		."\n</tr>";
 	} // Ende Buchungsstelle/BVNR
 } // Ende Loop
@@ -347,5 +314,4 @@
 if ($i == 0) {
 	echo "\n<p class='err'>Keine Buchung gefunden.</p>\n";
-	linkgml($gkz, $gmlid, "Buchungsblatt", "");
 } else {
 	if ($i > 5 and $fscnt > 5) { // nur wenn nicht auf einen Blick zu erkennen
@@ -359,14 +325,15 @@
 // Blatt   <istBestandteilVon< Stelle  <an<  Stelle      >istBestandteilVon>  Blatt
 // Fiktiv                      Fiktiv  <zu<  Berechtigt                       Berechtigt
-$sql="SELECT sf.laufendenummer AS anlfdnr, bb.gml_id, bb.land, bb.bezirk, bb.buchungsblattnummermitbuchstabenerweiterung AS blatt, bb.blattart, 
-sb.gml_id AS gml_s, sb.laufendenummer AS lfdnr, sb.buchungsart, ba.bezeichner AS bart, bz.bezeichnung AS beznam, ag.bezeichnung, ag.stelle, ag.stellenart 
+$sql="SELECT sf.laufendenummer AS anlfdnr, bb.gml_id, bb.land, bb.bezirk, bb.buchungsblattnummermitbuchstabenerweiterung AS blatt, bb.blattart, wa.v AS blattartv, 
+sb.gml_id AS gml_s, sb.laufendenummer AS lfdnr, sb.buchungsart, wb.v AS bart, wb.d AS bartd, bz.bezeichnung AS beznam, d.bezeichnung, d.stelle, d.stellenart, wd.v AS stellev 
 FROM ax_buchungsstelle sf JOIN ax_buchungsstelle sb ON (sf.gml_id=ANY(sb.an) OR sf.gml_id=ANY(sb.zu)) 
 JOIN ax_buchungsblatt bb ON bb.gml_id=sb.istbestandteilvon 
 LEFT JOIN ax_buchungsblattbezirk bz ON bb.land=bz.land AND bb.bezirk=bz.bezirk 
-LEFT JOIN ax_dienststelle ag ON bz.land=ag.land AND bz.stelle=ag.stelle 
-LEFT JOIN v_bs_buchungsart ba ON sb.buchungsart=ba.wert 
+LEFT JOIN ax_dienststelle d ON bz.land=d.land AND bz.stelle=d.stelle 
+LEFT JOIN alkis_wertearten wa ON cast(bb.blattart AS character varying)=wa.k AND wa.element='ax_buchungsblatt' AND wa.bezeichnung='blattart'
+LEFT JOIN alkis_wertearten wb ON cast(sb.buchungsart AS character varying)=wb.k AND wb.element='ax_buchungsstelle' AND wb.bezeichnung='buchungsart'
+LEFT JOIN alkis_wertearten wd ON cast(d.stellenart AS character varying)=wd.k AND wd.element='ax_dienststelle' AND wd.bezeichnung='stellenart'
 WHERE sf.istbestandteilvon = $1 AND sf.endet IS NULL AND sb.endet IS NULL AND bb.endet IS NULL 
-ORDER BY cast(sf.laufendenummer AS integer), bb.land, bb.bezirk, bb.buchungsblattnummermitbuchstabenerweiterung, cast(sb.laufendenummer AS integer);";
-// Ãnd. 2014-12-30: Sort. wie im ersten Teil
+ORDER BY cast(sf.laufendenummer AS integer), bz.bezeichnung, bb.buchungsblattnummermitbuchstabenerweiterung, cast(sb.laufendenummer AS integer);";
 
 $v = array($gmlid);
@@ -380,16 +347,16 @@
 while($rowb = pg_fetch_array($resb)) {
 	if ($b == 0) { // Ueberschrift und Tabelle nur ausgeben, wenn etwas gefunden wurde
-		echo "\n<h3><img src='ico/Grundbuch_zu.png' width='16' height='16' alt=''> Berechtigte Grundb&uuml;cher</h3>\n";
-		echo "\n<table class='outer'>";
-		echo "\n<tr>"; // Tab Kopf
-			echo "\n\t<td class='head' title='lfd. Nr. auf diesem Blatt, wie im Teil Flurst&uuml;cke'>an <span class='wichtig'>BVNR</span></td>"; // wie oben
-			echo "\n\t<td class='head'>Land</td>";
-			echo "\n\t<td class='head'>Dienststelle</td>";
-			echo "\n\t<td class='head'>Bezirk</td>";
-			echo "\n\t<td class='head'><span class='wichtig'>Blatt</span></td>";
-			echo "\n\t<td class='head'>BVNR</td>";
-			echo "\n\t<td class='head'>Buchungsart</td>";
-			echo "\n\t<td class='head nwlink noprint'>Weitere Auskunft</td>";
-		echo "\n</tr>";
+		echo "\n<h3><img src='ico/Grundbuch_zu.png' width='16' height='16' alt=''> Berechtigte Grundb&uuml;cher</h3>\n"
+		."\n<table class='outer'>"
+		."\n<tr>"
+			."\n\t<td class='heads' title='lfd. Nr. auf diesem Blatt, wie im Teil Flurst&uuml;cke'><span class='wichtig'>an BVNR</span><img src='ico/sort.png' width='10' height='10' alt='' title='prim&auml;re Sortierung'></td>"
+		//	."\n\t<td class='heads'>Land</td>"
+			."\n\t<td class='head'>Dienststelle</td>"
+			."\n\t<td class='heads'>Bezirk</td>"
+			."\n\t<td class='heads'><span class='wichtig'>Blatt</span></td>"
+			."\n\t<td class='heads'>BVNR</td>"
+			."\n\t<td class='head'>Buchungsart</td>"
+			."\n\t<td class='head nwlink noprint'>Weitere Auskunft</td>"
+		."\n</tr>";
 	}
 
@@ -399,4 +366,5 @@
 	$gml_s=$rowb["gml_s"]; // id der ber. B-Stelle
 	$blart=$rowb["blattart"];
+
 	$buch=$rowb["buchungsart"]; // Buchungsart Stelle berechtigt
 	$bart=$rowb["bart"]; // BA entschl.
@@ -404,54 +372,33 @@
 	$bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT);
 
-	echo "\n<tr>";
-		// Teil berechtigte GrundbÃŒcher ist sortiert wie oberer Teil "FlurstÃŒcke"
+	echo "\n<tr>"; // Der Teil "berechtigte GrundbÃŒcher" ist sortiert wie oberer Teil "FlurstÃŒcke"
 		echo "\n\t<td><span class='wichtig'>".$anlfdnr0."</span>";
-		// Link "nach oben" - bringt das Nutzen? Nur bei ganz langen BestÃ€nden.
-/*			echo "\n\t\t<p class='noprint'>&nbsp;";
-			echo "\n\t\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gmlid."#bvnr".$anlfdnr;
-				if ($idanzeige) {echo "&amp;id=j";}
-				if ($showkey)   {echo "&amp;showkey=j";}
-				echo "' title='Sprung nach oben zum Grundst&uuml;ck'>hoch</a>";
-			echo "\n\t\t</p>";
-	++ <p> auflÃ¶sen, sonst 2 Zeilen im <td> ++
-*/
-		echo "</td>";
-		echo "\n\t<td>".$rowb["land"]."</td>";
-		echo "\n\t<td>"; // Amtsgericht
-			echo dienststellenart($rowb["stellenart"])." ";
-			if ($showkey) {
-				echo "<span class='key'>".$rowb["stelle"]."</span> ";
-			}
-			echo $rowb["bezeichnung"];
-		echo "</td>";
-		echo "\n\t<td>";
-			if ($showkey) {
-				echo "<span class='key'>".$rowb["bezirk"]."</span> ";
-			}
-			echo $rowb["beznam"];
-		echo "</td>";
-		echo "\n\t<td><span class='wichtig'>".$rowb["blatt"]."</span>";
-			if ($idanzeige) {linkgml($gkz, $gml_b, "Buchungsblatt", "");}
-		echo "</td>";
-		echo "\n\t<td>".$bvnr;
-			if ($idanzeige) {linkgml($gkz, $gml_s, "Buchungsstelle", "ax_buchungssstelle");}
-		echo "</td>";
-		echo "\n\t<td>";
-			if ($showkey) {
-				echo "<span class='key'>".$buch."</span> ";
-			}
-			echo $bart;
-		echo "</td>";
-		echo "\n\t<td>";
-			echo "\n\t\t<p class='nwlink noprint'>";
-			echo "\n\t\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gml_b."#bvnr".$lfdnr;
-				if ($idanzeige) {echo "&amp;id=j";}
-				if ($showkey)   {echo "&amp;showkey=j";}
-				echo "' title='Nachweis des berechtigten Blattes an ".$blattart."'>"; // oder "zu" statt "an"
-				echo blattart($blart);
-				echo " \n\t\t\t<img src='ico/GBBlatt_link.png' width='16' height='16' alt=''></a>";
-			echo "\n\t\t</p>";
-		echo "</td>";
-	echo "\n</tr>";
+
+		echo "</td>"
+		//."\n\t<td>".$rowb["land"]."</td>"
+		."\n\t<td>"; // Amtsgericht,Grundbuchamt
+			echo $rowb["stellev"]." ";
+			if ($showkey) {echo "<span class='key'>".$rowb["stelle"]."</span> ";}
+			echo $rowb["bezeichnung"]
+		."</td>"
+		."\n\t<td>";
+			if ($showkey) {echo "<span class='key'>".$rowb["bezirk"]."</span> ";}
+			echo $rowb["beznam"]
+		."</td>"
+		."\n\t<td><span class='wichtig'>".$rowb["blatt"]."</span></td>"
+		."\n\t<td>".$bvnr."</td>"
+		."\n\t<td title='".htmlentities($rowb["bartd"], ENT_QUOTES, "UTF-8")."'>";
+			if ($showkey) {echo "<span class='key'>".$buch."</span> ";}
+			echo $bart
+		."</td>"
+		."\n\t<td>"
+			."\n\t\t<p class='nwlink noprint'>"
+			."\n\t\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gml_b."#bvnr".$lfdnr;
+				if ($showkey) {echo "&amp;showkey=j";}
+				echo "' title='Nachweis des berechtigten Blattes an ".$blattart."'>".$rowb["blattartv"]; // oder "zu" statt "an"
+				echo " \n\t\t\t<img src='ico/GBBlatt_link.png' width='16' height='16' alt=''></a>"
+			."\n\t\t</p>"
+		."</td>"
+	."\n</tr>";
 	$b++;
 }
@@ -468,15 +415,11 @@
 ?>
 
-<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_gb.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_gb.png" width="32" height="16" alt="Export"></a>&nbsp;
+</div>
 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>
-
 </body>
 </html>
Index: trunk/info/info/alkis/alkisausk.php
===================================================================
--- trunk/info/info/alkis/alkisausk.php	(revision 375)
+++ trunk/info/info/alkis/alkisausk.php	(revision 376)
@@ -5,17 +5,14 @@
 	Dies Programm wird aus dem Mapserver-Template (FeatureInfo) aufgerufen.
 	Parameter: &gkz, &gml_id (optional &id)
-	Dies Programm gibt einen kurzen Ueberblick zum Flurstueck.
-	Eigentuemer ohne Adresse.
-	Fuer detaillierte Angaben wird zum GB- oder FS-Nachweis verlinkt.
+	Dies Programm gibt einen kurzen Ãberblick zum FlurstÃŒck, z.B. Eigentuemer ohne Adresse
+	FÃŒr detaillierte Angaben wird zum GB- oder FS-Nachweis verlinkt.
 	Siehe auch alkisinlayausk.php - eine Variante fÃŒr den Einbau in einen iFrame
 
 	Version:
-	2011-11-17 Link FS-Historie, Parameter der Functions geÃ€ndert
-	2011-11-30 import_request_variables
-	2013-04-08 deprecated "import_request_variables" ersetzt
-	2014-01-28 Link zu alkisstrasse.php
-	2014-09-15 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2014-09-30 RÃŒckbau substring(gml_id)
-	2015-12-09 Austausch .ico durch .png
+	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermÃ¶glichen (Berechtigung fÃŒr Gemeinde prÃŒfen)
+	Hinweis: Dies Modul wird beim Entwickler nicht mehr produktiv eingesetzt.
+		Statt dessen wird "alkisinlayauk.php" verwendet um von einer WMS-FeatureInfo in ein Fenster ÃŒberzuleiten.
+		Mangels Praxis bleiben Fehler mÃ¶glicherweise unerkannt.
 */
 session_start();
@@ -24,16 +21,11 @@
 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;}
 echo <<<END
-<!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">
 	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
 	<link rel="shortcut icon" type="image/x-icon" href="ico/Flurstueck.ico">
@@ -45,9 +37,9 @@
 <body>
 END;
-$con = pg_connect("host=".$dbhost." port=".$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisausk.php'");
 if (!$con) {echo "<br>Fehler beim Verbinden der DB.\n<br>";}
 
 // *** F L U R S T U E C K ***
-$sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung 
+$sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung, f.regierungsbezirk, f.kreis, f.gemeinde
 FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer
 WHERE f.gml_id= $1 AND f.endet IS NULL;";
@@ -70,4 +62,7 @@
 	$flae=$row["amtlicheflaeche"];
 	$flae=number_format($flae,0,",",".") . " m&#178;";
+	$fsreg=$row["regierungsbezirk"]; // Filter ZustÃ€ndigkeit
+	$fskrs=$row["kreis"];
+	$fsgem=$row["gemeinde"];
 } else {
 	echo "<p class='err'>Kein Treffer fuer gml_id=".$gmlid."</p>";
@@ -77,61 +72,67 @@
 echo "\n<p class='fsausk'>ALKIS-Auskunft Flurst&uuml;ck-&Uuml;bersicht ".$gmkgnr."-".$flurnummer."-".$flstnummer."</p>";
 
+// 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 != $fskrs) or ($filtgem != '' and $filtgem != $fsgem) ) {
+	// Einer der gesetzten Filter passt nicht
+	if ($debug > 2) {
+		echo "<p class='err'>Filter Kreis='".$filtkreis."', Gemeinde='".$filtgem."'</p>";
+		echo "<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>";
+	pg_free_result($res);
+	exit;
+}
+
 echo "\n<table class='outer'>\n<tr><td>";
 	// linke Seite
-	echo "\n<h1>ALKIS-Auskunft</h1>";
-	echo "\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;ck - &Uuml;bersicht</h2>";
+	echo "\n<h1>ALKIS-Auskunft</h1>"
+	."\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;ck - &Uuml;bersicht</h2>";
 echo "</td><td align='right'>";
 	// rechte Seite
-	echo "<img src='pic/AAA.gif' alt=''>";
-echo "</td></tr></table>";
-
-echo "\n<table class='outer'>\n<tr>\n<td>";
-	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'>";
-   if ($showkey) {
-		echo "<span class='key'>".$gmkgnr."</span><br>";
-	}
-	echo $gemkname."</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</td>\n<td>";
-if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck", "ax_flurstueck"); }
-echo "\n\t<p class='nwlink'>weitere Auskunft:<br>";
+	echo "<img src='pic/AAA.gif' alt=''>"
+."</td></tr></table>";
+
+echo "\n<table class='outer'>\n<tr>\n<td>"
+	."\n\t<table class='kennzfs' title='Flurst&uuml;ckskennzeichen'>\n\t<tr>"
+	."\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."</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</td>\n<td>"
+."\n\t<p class='nwlink'>weitere Auskunft:<br>";
 
 // Flurstuecksnachweis (o. Eigent.)
 echo "\n\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$gmlid."&amp;eig=n";
-	if ($idanzeige) {echo "&amp;id=j";}
-	if ($showkey)   {echo "&amp;showkey=j";}
-	echo "' title='Flurst&uuml;cksnachweis, alle Flurst&uuml;cksdaten'>Flurst&uuml;ck ";
-	echo "<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>";
-echo "</a><br>";
+	if ($showkey) {echo "&amp;showkey=j";}
+	echo "' title='Flurst&uuml;cksnachweis, alle Flurst&uuml;cksdaten'>Flurst&uuml;ck "
+	."<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>"
+."</a><br>";
 
 // FS- u. Eigent.-NW
 echo "\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$gmlid."&amp;eig=j";
-	if ($idanzeige) {echo "&amp;id=j";}
-	if ($showkey)   {echo "&amp;showkey=j";}
-	echo "' title='Flurst&uuml;ck mit Eigent&uuml;mer'>Flurst&uuml;ck mit Eigent&uuml;mer ";
-	echo "<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>";
-echo "</a><br>";
+	if ($showkey) {echo "&amp;showkey=j";}
+	echo "' title='Flurst&uuml;ck mit Eigent&uuml;mer'>Flurst&uuml;ck mit Eigent&uuml;mer "
+	."<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>"
+."</a><br>";
 
 // FS-Historie
 echo "\n\t\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 des Flurst&uuml;cks'>Historie ";
-	echo "<img src='ico/Flurstueck_Historisch.png' width='16' height='16' alt=''>";
-echo "</a><br>";
+	if ($showkey) {echo "&amp;showkey=j";}
+	echo "' title='Vorg&auml;nger des Flurst&uuml;cks'>Historie "
+	."<img src='ico/Flurstueck_Historisch.png' width='16' height='16' alt=''>"
+."</a><br>";
 
 // Gebaeude-NW
 echo "\n\t\t<a href='alkisgebaeudenw.php?gkz=".$gkz."&amp;gmlid=".$gmlid;
-	if ($idanzeige) {echo "&amp;id=j";}
-	if ($showkey)   {echo "&amp;showkey=j";}
-	echo "' title='Geb&auml;udenachweis'>Geb&auml;ude ";
-	echo "<img src='ico/Haus.png' width='16' height='16' alt=''>";
-echo "</a>";
-
-echo "\n\t</p>\n</td>";
+	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>"
+. "\n\t</p>\n</td>";
 
 // Lagebezeichnung MIT Hausnummer (Adresse)
@@ -151,14 +152,13 @@
 while($row = pg_fetch_array($res)) {
 	$sname = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name
-	echo "\n<tr>\n\t";
-		echo "\n\t<td class='lr'>".$sname."&nbsp;".$row["hausnummer"]."</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"]."'>Lage ";
-			echo "<img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''></a>&nbsp;";
-
-			echo "\n\t\t\t<a href='alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$row["kgml"]; // Katalog GML-ID
-			echo "' title='Stra&szlig;e'>Stra&szlig;e <img src='ico/Strassen.png' width='16' height='16' alt=''></a>";
-		echo "\n\t\t</p>\n\t</td>";
-	echo "\n</tr>";
+	echo "\n<tr>\n\t"
+		."\n\t<td class='lr'>".$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"]."'>Lage "
+			."<img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''></a>&nbsp;"
+			."\n\t\t\t<a href='alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$row["kgml"]
+			."' title='Stra&szlig;e'>Stra&szlig;e <img src='ico/Strassen.png' width='16' height='16' alt=''></a>"
+		."\n\t\t</p>\n\t</td>"
+	."\n</tr>";
 	$j++;
 }
@@ -171,10 +171,12 @@
 echo "\n<h2><img src='ico/Grundbuch_zu.png' width='16' height='16' alt=''> Grundbuch</h2>";
 // ALKIS: FS >istgebucht> GS >istBestandteilVon> GB.
-$sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, 
-s.gml_id AS s_gml, s.buchungsart, s.laufendenummer, s.zaehler, s.nenner, z.bezeichnung, a.bezeichner AS bart 
-FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=s.gml_id 
+$sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, wa.v AS blattartv, 
+s.gml_id AS s_gml, s.buchungsart, s.laufendenummer, s.zaehler, s.nenner, z.bezeichnung, wb.v AS bart 
+FROM ax_flurstueck f 
+JOIN ax_buchungsstelle s ON f.istgebucht=s.gml_id 
 JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id 
 LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk 
-LEFT JOIN v_bs_buchungsart a ON s.buchungsart = a.wert 
+LEFT JOIN alkis_wertearten wa ON cast(b.blattart AS character varying)=wa.k AND wa.element='ax_buchungsblatt' AND wa.bezeichnung='blattart'
+LEFT JOIN alkis_wertearten wb ON cast(s.buchungsart AS character varying)=wb.k AND wb.element='ax_buchungsstelle' AND wb.bezeichnung='buchungsart'
 WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL AND b.endet IS NULL 
 ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;";
@@ -191,10 +193,7 @@
 while($rowg = pg_fetch_array($resg)) {
 	$beznam=$rowg["bezeichnung"];
-	echo "\n<hr>\n<table class='outer'>";
-	echo "\n<tr>";
-	echo "\n<td>";
-
+	echo "\n<table class='outer'>\n<tr>\n<td>";
 		$blattkey=$rowg["blattart"];
-		$blattart=blattart($blattkey);
+		$blattart=$rowg["blattartv"];
 		if ($blattkey == 1000) {
 			echo "\n\t<table class='kennzgb' title='Bestandskennzeichen'>";
@@ -202,68 +201,53 @@
 			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'>".$blattart."</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."</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)'>".$rowg["laufendenummer"]."</td>";
-				echo "\n\t\t<td title='Buchungsart'>";
-					if ($showkey) {
-						echo "<span class='key'>".$rowg["buchungsart"]."</span><br>";
-					}
-					echo $rowg["bart"];
-				echo "</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'>".$blattart."</td>"
+				."\n\t\t<td class='head'>Lfd-Nr.</td>"
+				."\n\t\t<td class='head'>Buchungsart</td>"
+			."\n\t</tr>";
+			echo "\n\t<tr>"
+				."\n\t\t<td title='Grundbuchbezirk'>";
+					if ($showkey) {echo "<span class='key'>".$rowg["bezirk"]."</span><br>";}
+				echo $beznam."</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)'>".$rowg["laufendenummer"]."</td>"
+				."\n\t\t<td title='Buchungsart'>";
+					if ($showkey) {echo "<span class='key'>".$rowg["buchungsart"]."</span><br>";}
+					echo $rowg["bart"]
+				."</td>"
+			."\n\t</tr>"
+		."\n\t</table>";
 
 		if ($rowg["zaehler"] <> "") {
 			echo "\n<p class='ant'>".$rowg["zaehler"]."/".$rowg["nenner"]."&nbsp;Anteil am Flurst&uuml;ck</p>";
 		}
-		echo "\n</td>\n<td>";
-		if ($idanzeige) {linkgml($gkz, $rowg["gml_id"], "Buchungsblatt", "");}
-		echo "\n\t<p class='nwlink'>weitere Auskunft:<br>";
-			echo "\n\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$rowg["gml_id"];
-				if ($idanzeige) {echo "&amp;id=j";}
-				if ($showkey)   {echo "&amp;showkey=j";}
-				echo "' title='Grundbuchnachweis'>";
-				echo $blattart;
-				echo " <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''>";
-			echo "</a>";
-		echo "\n\t</p>";
-	echo "\n</td>";
-	echo "\n</tr>";
-	echo "\n</table>";
+		echo "\n</td>\n<td>"
+		."\n\t<p class='nwlink'>weitere Auskunft:<br>"
+			."\n\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$rowg[0];
+				if ($showkey) {echo "&amp;showkey=j";}
+				echo "' title='Grundbuchnachweis'>".$blattart." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''>"
+			."</a>"
+		."\n\t</p>"
+	."\n</td>\n</tr>\n</table>";
 
 	// E I G E N T U E M E R
-	if ($blattkey == 5000) { // Schluessel Blattart
-		echo "\n<p>Keine Angaben zum Eigentum bei fiktivem Blatt</p>\n";
-		echo "\n<p>Siehe weitere Grundbuchbl&auml;tter mit Rechten an dem fiktiven Blatt.</p>\n";
-	} else {// kein Eigent. bei fiktiv. Blatt
-		echo "\n<hr>\n\n<h3><img src='ico/Eigentuemer_2.png' width='16' height='16' alt=''> Angaben zum Eigentum</h3>\n";
+	if ($blattkey == 5000) { // SchlÃŒssel Blatt-Art
+		echo "\n<p>Keine Angaben zum Eigentum bei fiktivem Blatt</p>\n"
+		."\n<p>Siehe weitere Grundbuchbl&auml;tter mit Rechten an dem fiktiven Blatt.</p>\n";
+	} else { // kein Eigent. bei fiktiv. Blatt
+		echo "\n<h3><img src='ico/Eigentuemer_2.png' width='16' height='16' alt=''> Angaben zum Eigentum</h3>\n";
 
 		// Ausgabe Name in Function
-		$n = eigentuemer($con, $rowg["gml_id"], false); // ohne Adr.
+		$n = eigentuemer($con, $rowg["gml_id"], false, "imFenster"); // ohne Adressen
 
 		if ($n == 0) { // keine NamNum, kein Eigent.
-			echo "\n<p class='err'>Keine Eigent&uuml;mer gefunden.</p>";
-			echo "\n<p class='err'>Bezirk ".$rowg["bezirk"]." Blatt ".$rowg["blatt"]." Blattart ".$blattkey." (".$blattart.")</p>";
-			linkgml($gkz, $gmlid, "Buchungsblatt", "");
+			echo "\n<p class='err'>Keine Eigent&uuml;mer gefunden.</p>"
+			."\n<p class='err'>Bezirk ".$rowg["bezirk"]." Blatt ".$rowg["blatt"]." Blattart ".$blattkey." (".$blattart.")</p>";
 		}
 	}
 	$j++;
 }
-if ($j == 0) { // Entwicklungshilfe
-	echo "\n<p class='err'>Keine Buchungen gefunden.</p>";
-	echo "\n<p><a target='_blank' href=alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gmlid.">Beziehungen des Flurst&uuml;cks</a></p>";
-	//echo "<p>".$sql."</p>"; // TEST
-}
+if ($j == 0) {echo "\n<p class='err'>Keine Buchungen gefunden.</p>";}
 echo "\n<hr>";
 
Index: trunk/info/info/alkis/alkisnamstruk.php
===================================================================
--- trunk/info/info/alkis/alkisnamstruk.php	(revision 375)
+++ trunk/info/info/alkis/alkisnamstruk.php	(revision 376)
@@ -6,13 +6,6 @@
 
 	Version:
-	2013-04-08 deprecated "import_request_variables" ersetzt
-	2013-11-22 Namensbestandteil ("von") in Kompakt-Adresse vor den Namen setzen
-	2014-02-06 Redundante Adressen kommen vor. Nur eine davon anzeigen.
-	2014-09-04 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2014-09-10 Bei Relationen den Timestamp abschneiden
-	2014-09-30 RÃŒckbau substring(gml_id)
-	2015-12-09 Austausch .ico durch .png
-
-	ToDo: Sortierung der GrundbÃŒcher zum Namen
+	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermÃ¶glichen
 */
 session_start();
@@ -23,17 +16,12 @@
 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 Person und Adresse</title>
 	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
@@ -51,13 +39,14 @@
 
 <?php
-$con = pg_connect("host=".$dbhost." port=".$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+
 // Balken
-echo "<p class='nakennz'>ALKIS Name id=".$gmlid."&nbsp;</p>\n";
-
-echo "\n<h2><img src='ico/Eigentuemer.png' width='16' height='16' alt=''> Person</h2>\n";
+echo "<p class='nakennz'>ALKIS Name id=".$gmlid."&nbsp;</p>\n"
+."\n<h2><img src='ico/Eigentuemer.png' width='16' height='16' alt=''> Person</h2>\n";
+$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisnamstruk.php'");
 if (!$con) "\n<p class='err'>Fehler beim Verbinden der DB</p>\n";
 
-$sql="SELECT nachnameoderfirma, anrede, vorname, geburtsname, geburtsdatum, namensbestandteil, akademischergrad ";
-$sql.="FROM ax_person WHERE gml_id= $1;";
+$sql="SELECT p.nachnameoderfirma, p.anrede, p.vorname, p.geburtsname, p.geburtsdatum, p.namensbestandteil, p.akademischergrad, a.v AS anrv
+FROM ax_person p LEFT JOIN alkis_wertearten a ON cast(p.anrede AS character varying)=a.k AND a.element='ax_person' AND a.bezeichnung='anrede' 
+WHERE gml_id= $1;";
 
 $v = array($gmlid);
@@ -65,26 +54,28 @@
 $res = pg_execute("", $v);
 
-if (!$res) {echo "\n<p class='err'>Fehler bei Zugriff auf Namensnummer</p>\n";}
-if ($idanzeige) { linkgml($gkz, $gmlid, "Person", "ax_person"); }
+if (!$res) {
+	echo "\n<p class='err'>Fehler bei Zugriff auf Namensnummer</p>\n";
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
 if ($row = pg_fetch_array($res)) {
 	$vor=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8");
 	$nam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8");
 	$geb=htmlentities($row["geburtsname"], ENT_QUOTES, "UTF-8");
-	$anrk=$row["anrede"];
-	$anr=anrede($anrk);
+	$anrk=$row["anrede"]; // Key
+	$anr=$row["anrv"]; // Value
 	$nbest=$row["namensbestandteil"];
 	$aka=$row["akademischergrad"];
 
-	echo "<table>\n";
-		echo "\t<tr><td class='nhd'>Anrede:</td><td class='nam'>";
+	echo "<table>\n"
+		."\t<tr><td class='nhd'>Anrede:</td><td class='nam'>";
 		if ($showkey) {echo "<span class='key' title='Anredekennung'>(".$anrk.")</span> ";}
-		echo $anr."</td></tr>\n";
-		echo "\t<tr><td class='nhd'>Nachname oder Firma:</td><td class='nam'>".$nam."</td></tr>\n";
-		echo "\t<tr><td class='nhd'>Vorname:</td><td class='nam'>".$vor."&nbsp;</td></tr>\n";
-		echo "\t<tr><td class='nhd'>Geburtsname:</td><td class='nam'>".$geb."&nbsp;</td></tr>\n";
-		echo "\t<tr><td class='nhd'>Geburtsdatum:</td><td class='nam'>".$row["geburtsdatum"]."&nbsp;</td></tr>\n";
-		echo "\t<tr><td class='nhd'>Namensbestandteil:</td><td class='nam'>".$nbest."&nbsp;</td></tr>\n";
-		echo "\t<tr><td class='nhd'>akademischer Grad:</td><td class='nam'>".$aka."&nbsp;</td></tr>\n";
-	echo "\n</table>\n<hr>\n";
+		echo $anr."</td></tr>\n"
+		."\t<tr><td class='nhd'>Nachname oder Firma:</td><td class='nam'>".$nam."</td></tr>\n"
+		."\t<tr><td class='nhd'>Vorname:</td><td class='nam'>".$vor."&nbsp;</td></tr>\n"
+		."\t<tr><td class='nhd'>Geburtsname:</td><td class='nam'>".$geb."&nbsp;</td></tr>\n"
+		."\t<tr><td class='nhd'>Geburtsdatum:</td><td class='nam'>".$row["geburtsdatum"]."&nbsp;</td></tr>\n"
+		."\t<tr><td class='nhd'>Namensbestandteil:</td><td class='nam'>".$nbest."&nbsp;</td></tr>\n"
+		."\t<tr><td class='nhd'>akademischer Grad:</td><td class='nam'>".$aka."&nbsp;</td></tr>\n"
+	."\n</table>\n<hr>\n";
 
 	// A d r e s s e
@@ -100,7 +91,5 @@
 	if (!$resa) {
 		echo "\n<p class='err'>Fehler bei Adressen</p>\n";
-		if ($debug > 2) {	
-			echo "<p class='err'>SQL=<br>".$sqla."<br>$1=gml(Person)= '".$gmlid."'</p>\n";
-		}
+		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqla."<br>$1=gml(Person)= '".$gmlid."'</p>\n";}
 	}
 
@@ -116,19 +105,17 @@
 			$hsnr=$rowa["hausnummer"];
 			$land=htmlentities($rowa["bestimmungsland"], ENT_QUOTES, "UTF-8");
-			if ($idanzeige) { linkgml($gkz, $gmla, "Adresse", "ax_adresse"); }
-
-			echo "<table>\n";
-				echo "\t<tr><td class='nhd'>PLZ:</td><td class='nam'>".$plz."</td></tr>\n";
-				echo "\t<tr><td class='nhd'>Ort:</td><td class='nam'>".$ort."</td></tr>\n";
-				echo "\t<tr><td class='nhd'>Strasse:</td><td class='nam'>".$str."</td></tr>\n";
-				echo "\t<tr><td class='nhd'>Hausnummer:</td><td class='nam'>".$hsnr."</td></tr>\n";
-				echo "\t<tr><td class='nhd'>Land:</td><td class='nam'>".$land."</td></tr>\n";
-			echo "\n</table>\n<br>\n";
+			echo "<table>\n"
+				."\t<tr><td class='nhd'>PLZ:</td><td class='nam'>".$plz."</td></tr>\n"
+				."\t<tr><td class='nhd'>Ort:</td><td class='nam'>".$ort."</td></tr>\n"
+				."\t<tr><td class='nhd'>Strasse:</td><td class='nam'>".$str."</td></tr>\n"
+				."\t<tr><td class='nhd'>Hausnummer:</td><td class='nam'>".$hsnr."</td></tr>\n"
+				."\t<tr><td class='nhd'>Land:</td><td class='nam'>".$land."</td></tr>\n"
+			."\n</table>\n<br>\n";
 
 			// Name und Adresse Kompakt (im Rahmen) - Alles was man fuer ein Anschreiben braucht
-			echo "<img src='ico/Namen.png' width='16' height='16' alt='Brief' title='Anschrift'>"; // Symbol "Brief"
-			echo "\n<div class='adr' title='Anschrift'>".$anr." ".$aka." ".$vor." ".$nbest." ".$nam."<br>";
-			echo "\n".$str." ".$hsnr."<br>";
-			echo "\n".$plz." ".$ort."</div>";
+			echo "<img src='ico/Namen.png' width='16' height='16' alt='Brief' title='Anschrift'>"
+			."\n<div class='adr' title='Anschrift'>".$anr." ".$aka." ".$vor." ".$nbest." ".$nam."<br>"
+			."\n".$str." ".$hsnr."<br>"
+			."\n".$plz." ".$ort."</div>";
 		}
 	}
@@ -137,7 +124,6 @@
 		echo "\n<p class='err'>Keine Adressen.</p>\n";
 	} elseif ($j > 1) {
-		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";}
+		echo "\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";}
 		if ($multiadress == "j") {
@@ -146,6 +132,6 @@
 			echo "&amp;multiadress=j' title='Adressen ggf. mehrfach vorhanden'>alle Adressen ";
 		}
-		echo "\n\t\t\t</a>";
-		echo "\n\t\t</p>";
+		echo "\n\t\t\t</a>"
+		."\n\t\t</p>";
 	}
 
@@ -155,8 +141,11 @@
 	//                               >bestehtAusRechtsverhaeltnissenZu> namensnummer   (Nebenzweig/SonderfÃ€lle?)
 
-	$sqlg ="SELECT n.gml_id AS gml_n, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, g.gml_id AS gml_g, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung as nr, g.blattart, b.bezeichnung AS beznam 
-	FROM ax_person p JOIN ax_namensnummer n ON p.gml_id=n.benennt JOIN ax_buchungsblatt g ON g.gml_id=n.istbestandteilvon 
+	$sqlg ="SELECT n.gml_id AS gml_n, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, g.gml_id AS gml_g, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung as nr, g.blattart, wb.v AS blattartv, b.bezeichnung AS beznam 
+	FROM ax_person p JOIN ax_namensnummer n ON p.gml_id=n.benennt 
+	JOIN ax_buchungsblatt g ON g.gml_id=n.istbestandteilvon 
 	LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk 
-	WHERE p.gml_id= $1 ORDER BY g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung;";
+	LEFT JOIN alkis_wertearten wb ON cast(g.blattart AS character varying)=wb.k AND wb.element='ax_buchungsblatt' AND wb.bezeichnung='blattart'
+	WHERE p.gml_id= $1
+	ORDER BY b.bezeichnung, g.buchungsblattnummermitbuchstabenerweiterung, n.laufendenummernachdin1421;";
 	// buchungsblatt... mal mit und mal ohne fuehrende Nullen, bringt die Sortierung durcheinander
 
@@ -167,17 +156,15 @@
 	if (!$resg) {
 		echo "\n<p class='err'>Fehler bei Grundbuch</p>\n";
-		if ($debug > 2) {
-			echo "\n<p class='err'>SQL=".$sqlg."</p>\n";
-		}
-	}
-	echo "<table class='eig'>";
-	echo "\n<tr>";
-		echo "\n\t<td class='head'>Bezirk</td>";
-		echo "\n\t<td class='head'>Blattart</td>";
-		echo "\n\t<td class='head'>Blatt</td>";
-		echo "\n\t<td class='head'>Namensnummer</td>";
-		echo "\n\t<td class='head'>Anteil</td>";
-		echo "\n\t<td class='head nwlink noprint' title='Link: weitere Auskunft'>weit. Auskunft</td>";
-	echo "\n</tr>";
+		if ($debug > 2) {echo "\n<p class='err'>SQL=".$sqlg."</p>\n";}
+	}
+	echo "<table class='eig'>"
+	."\n<tr>"
+		."\n\t<td class='heads'>Bezirk<img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'></td>"
+		."\n\t<td class='head'>Blattart</td>"
+		."\n\t<td class='heads'>Blatt<img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'></td>"
+		."\n\t<td class='heads'>Namensnummer<img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'></td>"
+		."\n\t<td class='head'>Anteil</td>"
+		."\n\t<td class='head nwlink noprint' title='Link: weitere Auskunft'>weit. Auskunft</td>"
+	."\n</tr>";
 
 	$i=0;
@@ -187,29 +174,21 @@
 		$namnum=kurz_namnr($rowg["lfd"]);
 		$zae=$rowg["zaehler"];
-		$blattkey=$rowg["blattart"];
-		$blattart=blattart($blattkey);
-
-		echo "\n<tr>";
-
-			echo "\n\t<td class='gbl'>"; // GB-Bezirk"
-				if ($showkey) {
-					echo "<span class='key'>".$rowg["bezirk"]."</span> ";
-				}
-				echo $rowg["beznam"];
-			echo "</td>";
+		$blattkey=$rowg["blattart"]; // Key
+		$blattart=$rowg["blattartv"]; // Value
+
+		echo "\n<tr>"
+			."\n\t<td class='gbl'>"; // GB-Bezirk"
+				if ($showkey) {echo "<span class='key'>".$rowg["bezirk"]."</span> ";}
+				echo $rowg["beznam"]
+			."</td>";
 
 			echo "\n\t<td class='gbl'>"; // Blattart
-				if ($showkey) {
-					echo "<span class='key'>".$blattkey."</span> ";
-				}
-				echo $blattart;
-			echo "</td>";
+				if ($showkey) {echo "<span class='key'>".$blattkey."</span> ";}
+				echo $blattart
+			."</td>";
 
 			echo "\n\t<td class='gbl'>"; // Blatt
-				echo "<span class='wichtig'>".$rowg["nr"]."</span>";
-				if ($idanzeige) {
-					linkgml($gkz, $gmlg, "Grundbuchblatt", "");
-				}
-			echo "</td>";
+				echo "<span class='wichtig'>".$rowg["nr"]."</span>"
+			."</td>";
 
 			echo "\n\t<td class='gbl'>"; // Namensnummer
@@ -219,7 +198,4 @@
 					echo $namnum;
 				}
-				if ($idanzeige) {
-					linkgml($gkz, $gmln, "Namensnummer", "ax_namensnummer"); 
-				}
 			echo "</td>";
 
@@ -230,18 +206,14 @@
 					echo $zae."/".$rowg["nenner"]." Anteil";
 				} 
-			echo "</td>";
-
-			echo "\n\t<td class='gbl'>";
-				echo "\n\t\t<p class='nwlink noprint'>";
-					echo "\n\t\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gmlg;
-						if ($idanzeige) {echo "&amp;id=j";}
-						if ($showkey)   {echo "&amp;showkey=j";}
-						echo "' title='Bestandsnachweis'>";
-						echo $blattart;
-					echo "\n\t\t\t<img src='ico/GBBlatt_link.png' width='16' height='16' alt=''></a>";
-				echo "\n\t\t</p>";
-			echo "\n\t</td>";
-
-		echo "\n</tr>";
+			echo "</td>"
+			."\n\t<td class='gbl'>"
+				."\n\t\t<p class='nwlink noprint'>"
+					."\n\t\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gmlg;
+						if ($showkey) {echo "&amp;showkey=j";}
+						echo "' title='Bestandsnachweis'>".$blattart
+					."\n\t\t\t<img src='ico/GBBlatt_link.png' width='16' height='16' alt=''></a>"
+				."\n\t\t</p>"
+			."\n\t</td>"
+		."\n</tr>";
 		// +++ >bestehtAusRechtsverhaeltnissenZu> namensnummer ?
 		// z.B. eine Namennummer "Erbengemeinschaft" zeigt auf Namensnummern mit EigentÃŒmern
@@ -256,12 +228,10 @@
 ?>
 
-<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.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.png" width="16" height="16" alt="Export"></a>&nbsp;
+</div>
 
 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>
Index: trunk/info/info/alkis/alkisgebaeudenw.php
===================================================================
--- trunk/info/info/alkis/alkisgebaeudenw.php	(revision 375)
+++ trunk/info/info/alkis/alkisgebaeudenw.php	(revision 376)
@@ -4,13 +4,6 @@
 
 	Version:
-	2011-11-22 Feld ax_gebaeude.description ist entfallen, neue Spalte Zustand
-	2011-11-30 Fehlerkorrektur Gebaeude mit mehreren Adressen nicht mehrfach
-	2013-04-08 deprecated "import_request_variables" ersetzt
-    2014-01-30 pg_free_result
-	2014-09-04 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2014-09-10 Bei Relationen den Timestamp abschneiden
-	2014-09-30 Umbenennung SchlÃŒsseltabellen (Prefix), RÃŒckbau substring(gml_id)
-	2015-12-09 Austausch .ico durch .png
-	2015-12-16 area -> st_area
+	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermÃ¶glichen
 */
 session_start();
@@ -20,16 +13,11 @@
 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 Geb&auml;udenachweis</title>
 	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
@@ -41,5 +29,5 @@
 <body>
 <?php
-$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisgebaeudenw.php'");
 if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
 
@@ -76,29 +64,27 @@
 
 // Kennzeichen in Rahmen
-echo "\n<table class='outer'>\n<tr>\n<td>";
-	echo "\n\t<table class='kennzfs' title='Flurst&uuml;ckskennzeichen'>";
-    echo "\n\t<tr>";
-        echo "\n\t\t<td class='head'>Gmkg</td>";
-        echo "\n\t\t<td class='head'>Flur</td>";
-        echo "\n\t\t<td class='head'>Flurst-Nr.</td>";
-    echo "\n\t</tr>\n\t<tr>";
-        echo "\n\t\t<td title='Gemarkung'>";
+echo "\n<table class='outer'>\n<tr>\n<td>"
+	."\n\t<table class='kennzfs' title='Flurst&uuml;ckskennzeichen'>"
+    ."\n\t<tr>"
+        ."\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>";
-    echo "\n\t</tr>";
-	echo "\n\t</table>";
-echo "\n</td>\n<td>";
-
-// Links zu anderen Nachweisen
-echo "\n\t<p class='nwlink noprint'>";
-	echo "\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$gmlid;
-	if ($idanzeige) {echo "&amp;id=j";}
-	if ($showkey)   {echo "&amp;showkey=j";}
-	echo "&amp;eig=n' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck <img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''></a>";
-echo "\n\t</p>";
-if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck", "ax_flurstueck"); }
-echo "\n\t</td>\n</tr>\n</table>";
+        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</td>\n<td>";
+
+// Links zu anderem Nachweis
+echo "\n\t<p class='nwlink noprint'>"
+	."\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$gmlid;
+	if ($showkey) {echo "&amp;showkey=j";}
+	echo "&amp;eig=n' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck <img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''></a>"
+."\n\t</p>"
+."\n\t</td>\n</tr>\n</table>";
 // Ende Seitenkopf
 
@@ -106,30 +92,19 @@
 pg_free_result($resf);
 
-echo "\n\n<h3><img src='ico/Haus.png' width='16' height='16' alt=''> Geb&auml;ude</h3>";
-echo "\n<p>.. auf oder an dem Flurst&uuml;ck. Ermittelt durch Verschneidung der Geometrie.</p>";
+echo "\n\n<h3><img src='ico/Haus.png' width='16' height='16' alt=''> Geb&auml;ude</h3>"
+."\n<p>.. auf oder an dem Flurst&uuml;ck. Ermittelt durch Verschneidung der Geometrie.</p>";
 
 // G e b a e u d e
-$sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, h.bauweise_beschreibung, u.bezeichner, g.zustand, z.bezeichner AS bzustand, ";
-
-// GEB-Flaeche komplett auch die Fl. ausserhalb des FS
-$sqlg.="round(st_area(g.wkb_geometry)::numeric,2) AS gebflae, ";
-
-// wie viel vom GEB liegt im FS?
-$sqlg.="round(st_area(ST_Intersection(g.wkb_geometry,f.wkb_geometry))::numeric,2) AS schnittflae, ";
-
-// liegt das GEB komplett im FS?
-$sqlg.="st_within(g.wkb_geometry,f.wkb_geometry) as drin ";
-
-// FS und GEB geometrisch verschneiden
-$sqlg.="FROM ax_flurstueck f, ax_gebaeude g ";
-
-// Entschluesseln
-$sqlg.="LEFT JOIN v_geb_bauweise h ON g.bauweise=h.bauweise_id 
-LEFT JOIN v_geb_funktion u ON g.gebaeudefunktion=u.wert 
-LEFT JOIN v_geb_zustand z ON g.zustand=z.wert 
+$sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, h.v AS bauweise_beschreibung, u.v AS bezeichner, g.zustand, z.v AS bzustand, 
+round(st_area(g.wkb_geometry)::numeric,2) AS gebflae, "; // GEB-Flaeche komplett auch die Fl. ausserhalb des FS
+$sqlg.="round(st_area(ST_Intersection(g.wkb_geometry,f.wkb_geometry))::numeric,2) AS schnittflae, "; // wie viel vom GEB liegt im FS?
+$sqlg.="st_within(g.wkb_geometry,f.wkb_geometry) as drin "; // liegt das GEB komplett im FS?
+$sqlg.="FROM ax_flurstueck f, ax_gebaeude g 
+LEFT JOIN alkis_wertearten h ON cast(g.bauweise AS character varying) = h.k AND h.element='ax_gebaeude' and h.bezeichnung='bauweise'
+LEFT JOIN alkis_wertearten u ON cast(g.gebaeudefunktion AS character varying) = u.k AND u.element='ax_gebaeude' and u.bezeichnung='gebaeudefunktion'
+LEFT JOIN alkis_wertearten z ON cast(g.zustand AS character varying) = z.k AND z.element='ax_gebaeude' and z.bezeichnung='zustand'
 WHERE f.gml_id= $1 AND f.endet IS NULL and g.endet IS NULL "; // ID des akt. FS
 
-// "within" -> nur Geb., die komplett im FS liegen
-// "intersects" -> auch teil-ueberlappende Flst.
+// "within" -> nur Geb., die komplett im FS liegen. "intersects" -> auch teil-ueberlappende Flst.
 $sqlg.="AND st_intersects(g.wkb_geometry,f.wkb_geometry) = true ";
 // RLP: keine Relationen zu NebengebÃ€uden. Auf Qualifizierung verzichten, sonst werden NebengebÃ€ude nicht angezeigt
@@ -141,5 +116,5 @@
 $resg=pg_execute("", $v);
 if (!$resg) {
-	echo "\n<p class='err'>Keine Geb&auml;ude ermittelt.</p>\n";
+	echo "\n<p class='err'>Fehler bei Geb&auml;ude-Verschneidung.</p>\n";
 	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqlg."<br>$1 = gml_id = '".$gmlid."'</p>";}
 }
@@ -148,51 +123,57 @@
 echo "\n<hr>\n<table class='geb'>";
 	// T-Header
-	echo "\n<tr>\n";
-		echo "\n\t<td class='head' title='ggf. Geb&auml;udename'>Name</td>";
-		echo "\n\t<td class='head fla' title='Schnittsfl&auml;che'>Fl&auml;che</td>";
-		echo "\n\t<td class='head' title='Geb&auml;udefl&auml;che'>&nbsp;</td>";
-		echo "\n\t<td class='head' title='Geb&auml;udefunktion ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Geb&auml;udes'>Funktion</td>";
-		echo "\n\t<td class='head' title='Bauweise (Schl&uuml;ssel und Beschreibung)'>Bauweise</td>";
-		echo "\n\t<td class='head' title='Zustand (Schl&uuml;ssel und Beschreibung)'>Zustand</td>";
-		echo "\n\t<td class='head nwlink' title='Lagebezeichnung mit Stra&szlig;e und Hausnummer'>Lage</td>";
-		echo "\n\t<td class='head nwlink' title='Link zu den kompletten Hausdaten'>Haus</td>";
-	echo "\n</tr>";
+	echo "\n<tr>\n"
+		."\n\t<td class='head' title='ggf. Geb&auml;udename'>Name</td>"
+		."\n\t<td class='heads fla' title='Schnittsfl&auml;che'><img src='ico/sortd.png' width='10' height='10' alt='' title='Sortierung (absteigend)'>Fl&auml;che</td>"
+		."\n\t<td class='head' title='Geb&auml;udefl&auml;che'>&nbsp;</td>"
+		."\n\t<td class='head' title='Geb&auml;udefunktion ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Geb&auml;udes'>Funktion</td>"
+		."\n\t<td class='head' title='Bauweise ist die Beschreibung der Art der Bauweise'>Bauweise</td>"
+		."\n\t<td class='head' title='Zustand beschreibt die Beschaffenheit oder die Betriebsbereitschaft von Geb&auml;ude. Diese Attributart wird nur dann optional gef&uuml;hrt, wenn der Zustand des Geb&auml;udes vom nutzungsf&auml;higen Zustand abweicht.'>Zustand</td>"
+		."\n\t<td class='head nwlink' title='Lagebezeichnung mit Stra&szlig;e und Hausnummer'>Lage</td>"
+		."\n\t<td class='head nwlink' title='Link zu den kompletten Hausdaten'>Haus</td>"
+	."\n</tr>";
 	// T-Body
 	while($rowg = pg_fetch_array($resg)) {
 		$gebnr = $gebnr + 1;
-// ++ ToDo: Die Zeilen abwechselnd verschieden einfÃ€rben, Angrenzend anders einfÃ€rben 
 		$ggml=$rowg["gml_id"];
-		$gebflsum = $gebflsum + $rowg["schnittflae"];
-	#	$skey=$rowg["lage"]; // Strassenschluessel		
+		$gebflsum=$gebflsum + $rowg["schnittflae"];
 		$gnam=$rowg["name"];
 		$gzus=$rowg["zustand"];
 		$gzustand=$rowg["bzustand"];
 
-		echo "\n<tr>";
-			echo "\n\t<td>";
-				if ($gnam != "") {echo "<span title='Geb&auml;udename'>".$gnam."</span><br>";}
+		// 3 FÃ€lle unterscheiden:
+		if ($rowg["drin"] == "t") { // GebÃ€ude liegt komplett in FlurstÃŒck
+			$f1=$rowg["schnittflae"]." m&#178;";
+			$f2="&nbsp;";
+			$gstyle="gin"; // siehe .css
+		} else {
+	       	if ($rowg["schnittflae"] == "0.00") { // GebÃ€ude angrenzend (Grenzbebauung)
+				$gstyle="gan";
+				$f1="&nbsp;";
+				$f2="angrenzend";
+			} else { // Teile des GebÃ€udes stehen auf dem FlurstÃŒck
+				$gstyle="gtl";
+				$f1=$rowg["schnittflae"]." m&#178;";
+				$f2="(von ".$rowg["gebflae"]." m&#178;)";
+			}
+		}
+
+		echo "\n<tr>"
+			."\n\t<td class='".$gstyle."'>";
+			if ($gnam != "") {echo "<span title='Geb&auml;udename'>".$gnam."</span><br>";}
 			echo "\n\t</td>";
 
-			if ($rowg["drin"] == "t") { // 3 komplett enthalten
-				echo "\n\t<td class='fla'>".$rowg["schnittflae"]." m&#178;</td>"; 
-				echo "\n\t<td>&nbsp;</td>";
-			} else {
-	       	if ($rowg["schnittflae"] == "0.00") { // angrenzend
-					echo "\n\t<td class='fla'>&nbsp;</td>";
-					echo "\n\t<td>angrenzend</td>";
-				} else { // Teile enthalten
-					echo "\n\t<td class='fla'>".$rowg["schnittflae"]." m&#178;</td>";
-					echo "\n\t<td>(von ".$rowg["gebflae"]." m&#178;)</td>";
-				}
-			}
-			echo "\n\t<td>";
+			echo "\n\t<td class='fla'>".$f1."</td>"
+			."\n\t<td class='".$gstyle."'>".$f2."</td>"; // FlÃ€chenangaben
+
+			echo "\n\t<td class='".$gstyle."'>";
 			if ($showkey) {echo "<span class='key'>".$rowg["gebaeudefunktion"]."</span>&nbsp;";}
 			echo $rowg["bezeichner"]."</td>";
 
-			echo "\n\t<td>";
+			echo "\n\t<td class='".$gstyle."'>";
 			if ($showkey) {echo "<span class='key'>".$rowg["bauweise"]."</span>&nbsp;";}
 			echo $rowg["bauweise_beschreibung"]."&nbsp;</td>";
 
-			echo "\n\t<td>";
+			echo "\n\t<td class='".$gstyle."'>";
 			if ($showkey) {echo "<span class='key'>".$gzus."</span>&nbsp;";}
 			echo $gzustand."&nbsp;</td>";
@@ -202,14 +183,14 @@
 
 			// HAUPTgebÃ€ude  Geb >zeigtAuf> lage (mehrere)
-			$sqll ="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer ";
-			$sqll.="FROM ax_gebaeude g JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(g.zeigtauf) ";
-			$sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
-			$sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL ";
+			$sqll="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer "
+			."FROM ax_gebaeude g JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(g.zeigtauf) "
+			."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "
+			."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL ";
 
 			// oder NEBENgebÃ€ude  Geb >hat> Pseudo
-			$sqll.="UNION SELECT 'p' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer ";
-			$sqll.="FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat ";
-			$sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
-			$sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; // ID des Hauses"
+			$sqll.="UNION SELECT 'p' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer "
+			."FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat "
+			."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "
+			."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; // ID des Hauses"
 		
 			$sqll.="ORDER BY bezeichnung, hausnummer;";
@@ -239,8 +220,6 @@
 				if ($showkey) {echo "<span class='key'>(".$skey.")</span>&nbsp;";}			
 				echo "\n\t\t<a title='".$lagetitl."' href='alkislage.php?gkz=".$gkz."&amp;gmlid=".$gmllag."&amp;ltyp=".$ltyp;
-					if ($idanzeige) {echo "&amp;id=j";}
 					if ($showkey)   {echo "&amp;showkey=j";}
 				echo "'>".$lagetxt."</a>";
-				if ($idanzeige) {linkgml($gkz, $gmllag, "Lage", ""); }
 				echo "<br>";
 			} // Ende Loop Lage m.H.
@@ -248,41 +227,33 @@
 			echo "\n\t</td>";
 
-			echo "\n\t<td class='nwlink noprint'>";
-				echo "\n\t\t<a title='Daten zum Geb&auml;ude-Objekt' href='alkishaus.php?gkz=".$gkz."&amp;gmlid=".$ggml;
-				if ($idanzeige) {echo "&amp;id=j";}
-				if ($showkey)   {echo "&amp;showkey=j";}
-				echo "'><img src='ico/Haus.png' width='16' height='16' alt=''></a>";
-			echo "\n\t</td>";
-
-		echo "\n</tr>";
+			echo "\n\t<td class='nwlink noprint'>"
+				."\n\t\t<a title='Daten zum Geb&auml;ude-Objekt' href='alkishaus.php?gkz=".$gkz."&amp;gmlid=".$ggml;
+				if ($showkey) {echo "&amp;showkey=j";}
+				echo "'><img src='ico/Haus.png' width='16' height='16' alt=''></a>"
+			."\n\t</td>"
+		."\n</tr>";
 	}
 	// Footer
 	if ($gebnr == 0) {
-		echo "\n</table>";
-		echo "<p class='err'><br>Keine Geb&auml;ude auf diesem Flurst&uuml;ck.<br>&nbsp;</p>";
+		echo "\n</table>"
+		."<p class='err'><br>Keine Geb&auml;ude auf diesem Flurst&uuml;ck.<br>&nbsp;</p>";
 	} else {
-		echo "\n<tr>";
-			echo "\n\t<td>Summe:</td>"; // 1
-			echo "\n\t<td class='fla sum'>".number_format($gebflsum,0,",",".")."&nbsp;&nbsp;&nbsp;&nbsp;m&#178;</td>";
-			echo "\n\t<td>&nbsp;</td>"; // 3
-			echo "\n\t<td>&nbsp;</td>"; // 4
-			echo "\n\t<td>&nbsp;</td>"; // 5
-			echo "\n\t<td>&nbsp;</td>"; // 6
-			echo "\n\t<td>&nbsp;</td>"; // 7
-		echo "\n</tr>";
-	echo "\n</table>";
+		echo "\n<tr>"
+			."\n\t<td>Summe:</td>"
+			."\n\t<td class='fla sum' title='von Geb&auml;uden &uuml;berbaute Fl&auml;che des Flurst&uuml;cks'>".number_format($gebflsum,0,",",".")."&nbsp;&nbsp;&nbsp;&nbsp;m&#178;</td>"
+			."\n\t<td colspan='6'>&nbsp;</td>"
+		."\n</tr>"
+	."\n</table>";
 	$unbebaut = number_format(($flstflaeche - $gebflsum),0,",",".") . " m&#178;";
-	echo "\n<p>Flurst&uuml;cksfl&auml;che abz&uuml;glich Geb&auml;udefl&auml;che: <b>".$unbebaut."</b></p><br>";
+	echo "\n<p><br>Flurst&uuml;cksfl&auml;che abz&uuml;glich Geb&auml;udefl&auml;che: <b>".$unbebaut."</b></p><br>";
 }
 pg_free_result($resg);
 ?>
 
-<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>
-	</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>
+</div>
 
 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>
Index: trunk/info/info/alkis/alkislage.php
===================================================================
--- trunk/info/info/alkis/alkislage.php	(revision 375)
+++ trunk/info/info/alkis/alkislage.php	(revision 376)
@@ -6,20 +6,16 @@
 
 	Version:
-	2013-03-06 Korrektur URL des Link im Abs. Lage bei eingeschalteten Test-Optionen
-	2013-04-08 deprecated "import_request_variables" ersetzt
-	2014-01-23 gml des Katalogs, Link auf Modul "strasse"
-	2014-09-03 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-30 Umbenennung SchlÃŒsseltabellen (Prefix), RÃŒckbau substring(gml_id)
-	2014-12-30 Fs-Nr. rechtbuendig (class)
-	2015-12-09 Austausch .ico durch .png
-	2015-12-16 area -> st_area
+	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-03-14 Korrekturen
+	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermÃ¶glichen
 
 	ToDo:
-	- Das Balken-Kennzeichen noch kompatibel machen mit der Eingabe der Navigation fÃŒr Adresse 
+	- Balken-Kennzeichen kompatibel machen mit der Eingabe der Navigation fÃŒr Adresse
+	- das Modul "alkisgebaeudenw" (alle Geb. auf einem FS) verschneidet die FlÃ€chen und findet damit auch 
+		Grenz-Uberbauungen und angrenzende GebÃ€ude. Diese fehlen hier, weil nur VerknÃŒpfungen verarbeitet werden.
+		Mit FlÃ€chen-Verschneidung auch weitere FS anzeigen?
 */
 session_start();
 $id="n";
-$ltyp="";
 $cntget = extract($_GET);
 require_once("alkis_conf_location.php");
@@ -28,9 +24,9 @@
 
 switch ($ltyp) {
-	case "m": // "Mit HsNr"     = Hauptgebaeude
+	case "m": // "Mit HsNr" = Hauptgebaeude
 		$tnam = "ax_lagebezeichnungmithausnummer"; break;
 	case "p": // "mit PseudoNr" = Nebengebaeude
 		$tnam = "ax_lagebezeichnungmitpseudonummer";	break;
-	case "o": //"Ohne HsNr"    = Gewanne oder Strasse
+	case "o": //"Ohne HsNr" = Gewanne oder Strasse
 		$tnam = "ax_lagebezeichnungohnehausnummer"; break;
 	default:
@@ -39,16 +35,11 @@
 }
 
-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 Lagebezeichnung</title>
 	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
@@ -60,5 +51,5 @@
 <body>
 <?php
-$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkislage.php'");
 if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
 
@@ -142,5 +133,10 @@
 	}
 } else {
-	echo "<p class='err'>Fehler! Kein Treffer fuer gml_id=".$gmlid."</p>";
+	echo "<p class='err'>Fehler! Kein Treffer fuer Lagebezeichnung mit gml_id='".$gmlid."'</p>";
+	if ($debug > 2) {
+		echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";
+	}
+	echo "</body></html>";
+	exit;
 }
 
@@ -151,12 +147,12 @@
 echo "\n<table class='outer'>\n<tr>\n\t<td>"; 	// Tab. Kennz.
 	// ToDo: !! kleiner, wenn ltyp=0 und die Schluesselfelder leer sind
-	echo "\n\t<table class='kennzla' title='Lage'>";
-		echo "\n\t<tr>";
+	echo "\n\t<table class='kennzla' title='Lage'>"
+		."\n\t<tr>";
 			if ($osub != "g") { // nicht bei Gewanne
-				echo "\n\t\t<td class='head'>Land</td>";
-				echo "\n\t\t<td class='head'>Reg.-Bez.</td>";
-				echo "\n\t\t<td class='head'>Kreis</td>";
-				echo "\n\t\t<td class='head'>Gemeinde</td>";
-				echo "\n\t\t<td class='head'>Stra&szlig;e</td>";
+				echo "\n\t\t<td class='head'>Land</td>"
+				."\n\t\t<td class='head'>Reg.-Bez.</td>"
+				."\n\t\t<td class='head'>Kreis</td>"
+				."\n\t\t<td class='head'>Gemeinde</td>"
+				."\n\t\t<td class='head'>Stra&szlig;e</td>";
 			}
 			switch ($ltyp) {
@@ -165,6 +161,6 @@
 				break;
 				case "p": // "mit PseudoNr"
-					echo "\n\t\t<td class='head'>Haus-Nr</td>";
-					echo "\n\t\t<td class='head'>lfd.-Nr</td>";
+					echo "\n\t\t<td class='head'>Haus-Nr</td>"
+					."\n\t\t<td class='head'>lfd.-Nr</td>";
 				break;
 				case "o": //"Ohne HsNr"
@@ -174,6 +170,5 @@
 				break;
 			}
-		echo "\n\t</tr>";
-		echo "\n\t<tr>";
+		echo "\n\t</tr>\n\t<tr>";
 			if ($osub != "g") { // nicht bei Gewanne
 
@@ -209,6 +204,6 @@
 				break;
 				case "p":
-					echo "\n\t\t<td title='Pseudonummer - Nebengeb&auml;ude zu dieser Hausnummer'>".$pseu."</td>";
-					echo "\n\t\t<td title='Laufende Nummer Nebengeb&auml;ude'><span class='wichtig'>".$lfd."</span></td>";
+					echo "\n\t\t<td title='Pseudonummer - Nebengeb&auml;ude zu dieser Hausnummer'>".$pseu."</td>"
+					."\n\t\t<td title='Laufende Nummer Nebengeb&auml;ude'><span class='wichtig'>".$lfd."</span></td>";
 				break;
 				case "o":
@@ -218,19 +213,16 @@
 				break;
 			}
-		echo "\n\t</tr>";
-	echo "\n\t</table>";
+		echo "\n\t</tr>"
+	."\n\t</table>";
 
 	echo "\n\t</td>\n\t<td>";
 
 	// Kopf Rechts: weitere Daten?
-	if ($idanzeige) {linkgml($gkz, $gmlid, "Lage", ""); }
-
 	if ($osub != "g") { // Link zu Strasse
-		echo "\n\t\t<p class='nwlink noprint'>";
-			echo "\n\t\t<a href='alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$strgml;
-				if ($idanzeige) {echo "&amp;id=j";}
-				if ($showkey)   {echo "&amp;showkey=j";}
-			echo "' title='Stra&szlig;e'>Stra&szlig;e <img src='ico/Strassen.png' width='16' height='16' alt=''></a>";
-		echo "\n\t\t</p>";
+		echo "\n\t\t<p class='nwlink noprint'>"
+			."\n\t\t<a href='alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$strgml;
+			if ($showkey) {echo "&amp;showkey=j";}
+			echo "' title='Stra&szlig;e'>Stra&szlig;e <img src='ico/Strassen.png' width='16' height='16' alt=''></a>"
+		."\n\t\t</p>";
 	}
 
@@ -241,7 +233,8 @@
 // ax_Flurstueck  >weistAuf>  ax_LagebezeichnungMitHausnummer
 // ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer
+// ++ auch FlÃ€chenverschneidung?
 if ($ltyp <> "p") { // Pseudonummer linkt nur GebÃ€ude
-	echo "\n\n<a name='fs'></a><h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;cke</h3>\n";
-	echo "\n<p>mit dieser Lagebezeichnung.</p>";
+	echo "\n\n<a id='fs'></a><h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;cke</h3>\n"
+	."\n<p>mit dieser Lagebezeichnung.</p>";
 	switch ($ltyp) {
 		case "m": $bezart="weistauf"; break;
@@ -261,13 +254,12 @@
 		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}	
 	}
-
-	echo "\n<table class='fs'>";
-	echo "\n<tr>"; // Kopfzeile der Tabelle
-		echo "\n\t<td class='head'>Gemarkung</td>";
-		echo "\n\t<td class='head'>Flur</td>";
-		echo "\n\t<td class='head fsnr' title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'>Flurst.</td>";
-		echo "\n\t<td class='head fla'>Fl&auml;che</td>";
-		echo "\n\t<td class='head nwlink noprint' title='Link: weitere Auskunft'>weit. Auskunft</td>";
-	echo "\n</tr>";
+	echo "\n<table class='fs'>"
+	."\n<tr>"
+		."\n\t<td class='heads'>Gemarkung<img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'></td>"
+		."\n\t<td class='heads'>Flur<img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'></td>"
+		."\n\t<td class='heads fsnr' title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'>Flurst.</td>"
+		."\n\t<td class='head fla'>Fl&auml;che</td>"
+		."\n\t<td class='head nwlink noprint' title='Link: weitere Auskunft'>weit. Auskunft</td>"
+	."\n</tr>";
 	$j=0;
 	while($rowf = pg_fetch_array($resf)) {
@@ -276,26 +268,21 @@
 		if ($rowf["nenner"] != "") {$fskenn.="/".$rowf["nenner"];}
 		$flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m&#178;";
-		echo "\n<tr>";
-			echo "\n\t<td>";
+		echo "\n<tr>"
+			."\n\t<td>";
 			if ($showkey) {echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";}
-			echo $rowf["bezeichnung"]."</td>";
-			echo "\n\t<td>".$flur."</td>";
-			echo "\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span>";
-				if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck", "ax_flurstueck");}
-			echo "</td>";
-			echo "\n\t<td class='fla'>".$flae."</td>";
-			echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
-				echo "\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n";
-					if ($idanzeige) {echo "&amp;id=j";}
-					if ($showkey)   {echo "&amp;showkey=j";}
-				echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck <img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''></a>";
-			echo "\n\t\t</p>\n\t</td>";
-		echo "\n</tr>";
+			echo $rowf["bezeichnung"]."</td>"
+			."\n\t<td>".$flur."</td>"
+			."\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span></td>"
+			."\n\t<td class='fla'>".$flae."</td>"
+			."\n\t<td>\n\t\t<p class='nwlink noprint'>"
+				."\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n";
+				if ($showkey) {echo "&amp;showkey=j";}
+				echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck <img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''></a>"
+			."\n\t\t</p>\n\t</td>"
+		."\n</tr>";
 		$j++;
 	}
 	echo "\n</table>";
-	if ($j > 6) {
-		echo "<p class='cnt'>".$j." Flurst&uuml;cke</p>";
-	}
+	if ($j > 6) {echo "<p class='cnt'>".$j." Flurst&uuml;cke</p>";}
 }
 
@@ -303,19 +290,18 @@
 // andere Lage mit gleicher Hausnummer suchen
 if ($ltyp <> "o") { // nicht bei Gewanne (Ohne HsNr)
-	echo "\n\n<a name='lage'></a><h3><img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''> Lage</h3>\n";
-	echo "\n<p>andere Lagebezeichnungen zur gleichen Hausnummer.</p>";
+	echo "\n\n<a id='lage'></a><h3><img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''> Lage</h3>\n"
+	."\n<p>andere Lagebezeichnungen zur gleichen Hausnummer.</p>";
 	$whereclaus="WHERE land= $1 AND regierungsbezirk= $2 AND kreis= $3 AND gemeinde= $4 AND lage= $5 ";
 
 	$url=$_SERVER['PHP_SELF']."?gkz=".$gkz."&amp;id=".$id; // Basis
-	if ($idanzeige) {$url.="&amp;id=j";}
 	if ($showkey)   {$url.="&amp;showkey=j";}
 	$url.="&amp;gmlid=";
 
 	switch ($ltyp) {
-		case "m": // aktuell Hausnummer gefunden
+		case "m": // aktuell: Hausnummer gefunden
 			// dazu alle NebengebÃ€ude suchen
-			echo "\n<p>Nebengeb&auml;ude: ";
-			$sql ="SELECT l.gml_id, l.laufendenummer FROM ax_lagebezeichnungmitpseudonummer l ";
-			$sql.=$whereclaus."AND lage= $6 AND pseudonummer= $7 AND l.endet IS NULL ORDER BY laufendenummer;";
+			echo "\n<p>Nebengeb&auml;ude:&nbsp;";
+			$sql ="SELECT l.gml_id, l.laufendenummer FROM ax_lagebezeichnungmitpseudonummer l "
+			.$whereclaus."AND lage= $6 AND pseudonummer= $7 AND l.endet IS NULL ORDER BY laufendenummer;";
 
 			$v = array($land,$regbez,$kreis,$gem,$lage,$lage,$hsnr);
@@ -326,7 +312,10 @@
 				if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."</p>";}
 			}
+			$neb=0;
 			while($row = pg_fetch_array($res)) {
 				echo "\n\t<a href='".$url.$row["gml_id"]."&amp;ltyp=p'>lfd.-Nr ".$row["laufendenummer"]."</a>&nbsp;&nbsp;";
-			}
+				$neb++;
+			}
+			if ($neb == 0) {echo "keine";}
 			echo "</p>";
 		break;
@@ -341,14 +330,17 @@
 			$res = pg_execute("", $v);
 
-			if (!$res) echo "<p class='err'>Fehler bei Hauptgeb&auml;ude.<br>".$sql."</p>\n";
+			if (!$res) {echo "<p class='err'>Fehler bei Hauptgeb&auml;ude.<br>".$sql."</p>\n";}
+			$hg=0;
 			while($row = pg_fetch_array($res)) {
 				echo "\n\t<a href='".$url.$row["gml_id"]."&amp;ltyp=m'>Haus-Nr ".$pseu."</a>&nbsp;&nbsp;";
-			}
+				$hg++;
+			}
+			if ($hg == 0) {echo "&nbsp;Kein Hauptgeb&auml;ude gefunden.";}
 			echo "</p>";
 
-			echo "\n<p>weitere Nebengeb&auml;ude: ";
-			$sql ="SELECT l.gml_id, l.laufendenummer FROM ax_lagebezeichnungmitpseudonummer l ";
-			$sql.=$whereclaus."AND pseudonummer= $6 AND laufendenummer <> $7 AND l.endet IS NULL ORDER BY laufendenummer;";
-			$v = array($land,$regbez,$kreis,$gem,$lage,$pseu,$lfd);
+			echo "\n<p>Weitere Nebengeb&auml;ude:&nbsp;";
+			$sql ="SELECT l.gml_id, l.laufendenummer FROM ax_lagebezeichnungmitpseudonummer l "
+			.$whereclaus."AND pseudonummer= $6 AND laufendenummer <> $7 AND l.endet IS NULL ORDER BY laufendenummer;";
+			$v=array($land,$regbez,$kreis,$gem,$lage,$pseu,$lfd);
 			$res = pg_prepare("", $sql);
 			$res = pg_execute("", $v);
@@ -357,7 +349,10 @@
 				if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."</p>";}			
 			}
+			$neb=0;
 			while($row = pg_fetch_array($res)) {
 				echo "\n\t<a href='".$url.$row["gml_id"]."&amp;ltyp=p'>lfd.-Nr ".$row["laufendenummer"]."</a>&nbsp;&nbsp;";
-			}
+				$neb++;
+			}
+			if ($neb == 0) {echo "keine";}
 			echo "</p>";
 		break;
@@ -367,13 +362,19 @@
 // G E B A E U D E
 if ($ltyp <> "o") { // OhneHsNr linkt nur Flurst.
-	echo "\n\n<a name='geb'></a><h3><img src='ico/Haus.png' width='16' height='16' alt=''> Geb&auml;ude</h3>";
-	echo "\n<p>mit dieser Lagebezeichnung.</p>";
+	echo "\n\n<a id='geb'></a><h3><img src='ico/Haus.png' width='16' height='16' alt=''> Geb&auml;ude</h3>"
+	."\n<p>mit dieser Lagebezeichnung.</p>";
 	switch ($ltyp) {
 		case "p": $bezart="g.hat"; break;
 		case "m": $bezart="ANY(g.zeigtauf)"; break; // array
 	}
-	$sql ="SELECT g.gml_id, g.gebaeudefunktion, g.name, g.bauweise, g.grundflaeche, g.zustand, round(st_area(g.wkb_geometry)::numeric,2) AS flaeche, h.bauweise_beschreibung, u.bezeichner 
-	FROM ax_gebaeude g LEFT JOIN v_geb_bauweise h ON g.bauweise=h.bauweise_id 
-	LEFT JOIN v_geb_funktion u ON g.gebaeudefunktion=u.wert WHERE $1 = ".$bezart." AND g.endet IS NULL;";
+
+	$sql ="SELECT g.gml_id, g.gebaeudefunktion, array_to_string(g.name, ',') AS name, g.bauweise, g.grundflaeche, g.zustand, round(st_area(g.wkb_geometry)::numeric,2) AS flaeche,
+	h.v AS hv, h.d AS hd, u.v AS uv, u.d AS ud, z.v AS zv, z.d AS zd FROM ax_gebaeude g 
+	LEFT JOIN alkis_wertearten h ON cast(g.bauweise AS character varying)=h.k AND h.element='ax_gebaeude' AND h.bezeichnung='bauweise'
+	LEFT JOIN alkis_wertearten u ON cast(g.gebaeudefunktion AS character varying)=u.k AND u.element='ax_gebaeude' AND u.bezeichnung='gebaeudefunktion'
+	LEFT JOIN alkis_wertearten z ON cast(g.zustand AS character varying)=z.k AND z.element='ax_gebaeude' AND z.bezeichnung='zustand'
+	WHERE $1 = ".$bezart." AND g.endet IS NULL;";
+	// Keine Sortierung (ORDER BY) notwendig weil i.d.R. nur ein (Haupt-)GebÃ€ude diese Hausnummer hat.
+	// FÃŒr weiter "alkis_wertearten" (EnstschlÃŒsselungen) zum GebÃ€ude dem Link "Haus" folgen.
 
 	$v = array($gmlid);
@@ -384,41 +385,38 @@
 		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
 	}
-	echo "\n<table class='geb'>";
-	echo "\n<tr>"; // T-Header
-		echo "\n\t<td class='head' title='Geb&auml;udename'>Name</td>";
-		echo "\n\t<td class='head fla' title='Fl&auml;che'>Fl&auml;che</td>";
-		echo "\n\t<td class='head' title='Geb&auml;udefunktion ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Geb&auml;udes'>Funktion</td>";
-		echo "\n\t<td class='head' title='Bauweise (Schl&uuml;ssel und Beschreibung)'>Bauweise</td>";
-		echo "\n\t<td class='head' title='Zustand (Schl&uuml;ssel und Beschreibung)'>Zustand</td>";
-		echo "\n\t<td class='head nwlink' title='Link zu kompletten Hausdaten'>Haus</td>";
-	echo "\n</tr>";
-	// T-Body
+	echo "\n<table class='geb'>"
+	."\n<tr>"
+		."\n\t<td class='head' title='Name ist der Eigenname oder die Bezeichnung des Geb&auml;udes.'>Name</td>"
+		."\n\t<td class='head fla' title='Fl&auml;che'>Fl&auml;che</td>"
+		."\n\t<td class='head' title='Geb&auml;udefunktion ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Geb&auml;udes'>Funktion</td>"
+		."\n\t<td class='head' title='Bauweise ist die Beschreibung der Art der Bauweise'>Bauweise</td>"
+		."\n\t<td class='head' title='Zustand beschreibt die Beschaffenheit oder die Betriebsbereitschaft von Geb&auml;ude. Diese Attributart wird nur dann optional gef&uuml;hrt, wenn der Zustand des Geb&auml;udes vom nutzungsf&auml;higen Zustand abweicht.'>Zustand</td>"
+		."\n\t<td class='head nwlink' title='Komplette Hausdaten'>Hausdaten</td>"
+	."\n</tr>";
 	$i=0;
 	while($row = pg_fetch_array($res)) {
 		$ggml=$row["gml_id"];
 		$gfla=$row["flaeche"];
-		echo "\n\t<tr>";
-
-			echo "<td>";
-				if ($idanzeige) {linkgml($gkz, $ggml, "Geb&auml;ude", "ax_gebaeude");}
-				// +++ Hausnummer / Adresse ???
-			echo $row["name"]."</td>";
-			echo "<td class='fla'>".$gfla." m&#178;</td>";
-			echo "<td>";
+		echo "\n\t<tr>"
+			."<td>".$row["name"]."</td>"
+			."<td class='fla'>".$gfla." m&#178;</td>";
+
+			echo "<td title='".$row["ud"]."'>";
 			if ($showkey) {echo "<span class='key'>".$row["gebaeudefunktion"]."</span> ";}
-			echo $row["bezeichner"]."</td>";
-			echo "<td>";
-				if ($showkey) {echo "<span class='key'>".$row["bauweise"]."</span> ";}
-			echo $row["bauweise_beschreibung"]."</td>";
-
-			echo "<td>".$row["zustand"]."</td>"; // +++ EntschlÃŒsseln
-
-			echo "\n\t<td class='nwlink noprint'>";
-				echo "<a title='Hausdaten' href='alkishaus.php?gkz=".$gkz."&amp;gmlid=".$ggml;
-				if ($idanzeige) {echo "&amp;id=j";}
-				echo "'><img src='ico/Haus.png' width='16' height='16' alt=''></a>";
-			echo "</td>";
-
-		echo "</tr>";
+			echo $row["uv"]."</td>";
+
+			echo "<td title='".$row["hd"]."'>";
+			if ($showkey) {echo "<span class='key'>".$row["bauweise"]."</span> ";}
+			echo $row["hv"]."</td>";
+				
+			echo "<td title='".$row["zd"]."'>";
+			if ($showkey) {echo "<span class='key'>".$row["zustand"]."</span> ";}
+			echo $row["zv"]."</td>";
+
+			echo "\n\t<td class='nwlink noprint'>"
+				."<a title='komplette Hausdaten' href='alkishaus.php?gkz=".$gkz."&amp;gmlid=".$ggml
+				."'>Haus <img src='ico/Haus.png' width='16' height='16' alt=''></a>"
+			."</td>"
+		."</tr>";
 	}
 	echo "\n</table>";
@@ -427,11 +425,9 @@
 ?>
 
-<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;
-	</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;
+</div>
 
 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", "&amp;ltyp=".$ltyp); ?>
Index: trunk/info/info/alkis/alkis_conf_location.php
===================================================================
--- trunk/info/info/alkis/alkis_conf_location.php	(revision 375)
+++ trunk/info/info/alkis/alkis_conf_location.php	(revision 376)
@@ -2,18 +2,9 @@
 /*	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
 	Pfad zur Konfigurationsdatei der ALKIS-Auskunft.
-	Die Conf-Datei sollte aus SicherheitsgrÃŒnden nicht unterhalb des Web-Root-Verzeichnisses liegen.
+	Die Conf-Datei sollte aus Sicherheitsgruenden nicht unterhalb des Web-Root-Verzeichnisses liegen.
 
 	Version:
-	14.12.2010 zentrale Anpassung des Pfades
-	25.07.2011 PostNAS  0.5/0.6 Versionen unterscheiden
-	04.11.2011 PostNAS  Datenbankname um "_neu" erweitert
+	2016-02-23 Version fuer norGIS-ALKIS-Import, keine PostNAS-Versionsnummer im DB-Namen
 */
-# relativ:
-#	require_once(dirname(__FILE__)."/../../../../conf/alkis_www_conf.php");
-#
-# absolut:
-#  Hier: Entwicklungs-Version
-	require_once("/data/conf/alkis_entw_conf.php");
-	$dbname = $dbpre.$dbvers.$gkz;			// Prefix + Konverter-Version + Mandant
-//	$dbname = $dbpre.$dbvers.$gkz."_neu";	// Prefix + Konverter-Version + Mandant  ENTWICKLUNG aus neuem Schema
+require_once("/opt/gdi/conf/alkisn_conf.php"); // Nicht unter Web-Root speichern
 ?>
Index: trunk/info/info/alkis/alkisfsnw.php
===================================================================
--- trunk/info/info/alkis/alkisfsnw.php	(revision 375)
+++ 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>
Index: trunk/info/info/alkis/alkisauszug.css
===================================================================
--- trunk/info/info/alkis/alkisauszug.css	(revision 375)
+++ trunk/info/info/alkis/alkisauszug.css	(revision 376)
@@ -1,4 +1,4 @@
 /*	Modul: alkisauszug.css
-	S t y l e s zur ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+	S t y l e s  zur ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
 
 	Version:
@@ -11,6 +11,8 @@
 	2013-06-27	p.recht
 	2014-01-27	strasse, hsnr, Print-Balken
-	2014-09-15  PostNAS 0.8: p.cnt
+	2014-09-15	PostNAS 0.8: p.cnt
 	2014-12-30	Neu: td.fsnr
+	2016-02-24	Umstellung norBIT-Struktur
+	2016-12-01	Stop-Meldung bei BerechtigungsprÃŒfung, Sortierspalten
 */
 body	{background-color: #FDFFFD;}
@@ -22,5 +24,4 @@
 p.fsausk	{background-color: teal; color: silver;}	/* Uebersichts-Seite Flurstuecks-Auskunft */
 p.fskennz,p.fsei{background-color: navy; color: silver;}	/* Flurstuecks-Nachweis */
-/* p.fsei	{background-color: olive; color: silver;}*/	/* Flurstuecks- und Eigentuemer-Nachweis */
 p.fshis		{background-color: gray; color: white;}		/* Flurstuecks-Historie */
 p.gbkennz	{background-color: green; color: silver;}	/* Bestandsnachweis */
@@ -32,5 +33,5 @@
 
 /* Format nach Inhalt */
-p.bezieh	{text-align: right; background: olive;	color: silver;} /* Beziehungen */
+/* p.bezieh	{text-align: right; background: olive;	color: silver;} */ /* Beziehungen */
 p.fsd		{margin-left: 170px;}	/* Flst-Flaeche */
 p.gbl		{position: relative; left: 60px;}	/* Nam: Buchungsstelle*/
@@ -89,4 +90,5 @@
 td.lr	{color: black;}	/* Liste Rechts */
 td.ph	{color: gray;}	/* Platzhalter, vorlaeufig, spaeter loschen */
+td.erkl	{color: silver; font-size: 8pt;}	/* ErklÃ€rungen, nur klein (Haus) */
 
 td.fla	{width: 110px; padding-right: 4px; text-align: right;} /* Flaechen rechtsbuendig (stellengerecht) */
@@ -99,9 +101,13 @@
 td.sond, p.sond	{font-size: 9pt; font-style: italic; background-color: white;
 		border: 1px dotted silver; padding: 6px;}	/* Sondereigentumsbeschreibung */
+td.nrap, p.nrap	{font-size: 9pt; font-style: italic; background-color: white;}	/* Nummer im Aufteilungsplan */
+td.fett	{font-weight: bold;}
+td.nwlink {width: 80px;}	/* Link zum Nachweis */
 
-td.nrap, p.nrap	{font-size: 9pt; font-style: italic; background-color: white;}	/* Nummer im Aufteilungsplan */
+/* Kopfzeile, Spaltenueberschrift */
+td.head, td.heads{font-style: italic; padding-top: 2px;}	
+td.head	{border-bottom: 1px solid gray;}	
+td.heads	{border-bottom: 1px solid black;}	/* Kopf Sortierspalte(n) */
 
-td.fett	{font-weight: bold;}
-td.head	{border-bottom: 1px solid gray; font-style: italic; padding-top: 2px;}	/* Kopfzeile, Spaltenueberschrift */
 td.sum {border-top: 2px dotted maroon;	border-bottom:3px solid maroon;
 	border-left:0px dotted maroon;	border-right:0px dotted maroon; font-weight: bold;}	/* unter dem Strich = Summenzeile */
@@ -110,9 +116,14 @@
 td.nam	{font-weight: bold;}
 td.gbl	{border-bottom: 1px dotted green;}	/* Name: GB-Liste */
-/* Inlay analog Template: linke Tabellenspalte - Feldname */
+/* Inlay analog WMS-Feature-Info Template: linke Tabellenspalte - Feldname */
 td.li, td.gr {color:gray; padding-left: 8px; padding-right:8px; border-bottom: 0px; vertical-align:top;}
 /* dienendes GB in FS-Tab im Best-NW  */
 td.dien	{font-size: 9pt; font-style: italic; color: purple; border-bottom: 1px solid silver;}
 td.hsnr	{width: 70px; padding-right: 4px; text-align: right;} /* Hausnummer in StraÃe */
+
+/* Fallunterscheidung bei GebÃ€ude auf FlurstÃŒck: */
+td.gin {color: rgb(0,50,0);}	/* GebÃ€ude in FS */
+td.gtl {color: rgb(140,140,100);}	/* GebÃ€ude teilweise auf FS */
+td.gan {color: rgb(210,170,170);}	/* GebÃ€ude angrenzend an FS*/
 
 /* Ueberschriften */
@@ -123,9 +134,14 @@
 h4 {	color: black;	font-size: 11pt;}
 h5 {	color: black;	font-size: 10pt;}
-h6 {	color: black;	font-size:  9pt; margin-top: 2pt; margin: 0pt}	/* FS in Best-NW */
+h6 {	color: black;	font-size:  9pt; margin-top: 2pt; margin: 0pt;}	/* FS in Best-NW */
 
 img	{border: 0px; margin: 0px;} /* Icons */
 
 iframe.inlay {border:0px; width: 100%;} /* height: 400px; */
+
+/* Abbruch, Fehler der Berechtigung */
+p.stop1, p.stop2  {text-align: center; color: red;}
+p.stop1 {font-size: 14pt; margin: 4pt;}
+p.stop2 {font-size: 10pt;}
 
 /* Seitenfuss */
Index: trunk/info/info/alkis/alkisrelationen.php
===================================================================
--- trunk/info/info/alkis/alkisrelationen.php	(revision 375)
+++ 	(revision )
@@ -1,118 +1,0 @@
-<?php
-/*	Modul: alkisrelationen.php
-
-	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
-	Verfolgt die Beziehungen von ALKIS-Objekten in der Tabelle 'alkis_beziehungen'.
-	Link durch "&id=j;" in den anderen Modulen zuschaltbar.
-	Dies ist fuer die Entwicklung der Auskunft gedacht (Sonderfaelle) nicht fuer den Anwender.
-
-	Version:
-	2011-11-10  Relationen-ZÃ€hler ausgeben, ab 5 Zeilen nicht mehr 'auf einen Blick' erkennbar.
-	2011-11-30  import_request_variables
-	2013-04-08  deprecated "import_request_variables" ersetzt
-	2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-
-V o r l Ã€ u f i g   u n b e n u t z b a r 
-
-Dies Modul nutzte die gml_ids in der zentralen Tabelle 'alkis_beziehungen' um dort ALLE Relationen zu finden.
-Mit Umstellung auf Relationen-Spalten in den Objekt-Tabellen ist das nicht mehr mÃ¶glich.
-
-Neuentwicklung wahrscheinlich nicht sinnvoll.
-
-*/
-session_start();
-$cntget = extract($_GET);
-require_once("alkis_conf_location.php");
-if ($auth == "mapbender") {require_once($mapbender);}
-$otyp=htmlentities($otyp, ENT_QUOTES, "UTF-8");
-?>
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<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">
-	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
-	<link rel="shortcut icon" type="image/x-icon" href="ico/Beziehung.ico">
-	<title>ALKIS-Relationen-Browser</title>
-</head>
-<body>
-<?php
-$con = pg_connect("host=".$dbhost." port=".$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
-echo "\n<p class='bezieh'>Beziehungen ".$gmlid."</p>"; // Balken
-
-echo "\n\n<h2><img src='ico/Beziehung.ico' width='16' height='16' alt=''> Beziehungen</h2>";
-if (!$con) {
-	echo "\n<p class='err'>Fehler beim Verbinden der DB.</p>";
-} else {
-	echo "\n\n<h3 title='Die gml_is ist global eindeutig'>ALKIS-".$otyp." mit gml_id = '".$gmlid."'</h3>";
-
-	// Zerlegen
-	echo "<h4>Zerlegung des Kennzeichens</h4>";
-	echo "<p>Land = '".substr($gmlid, 0, 2)."'</p>";
-	echo "<p>Bundesland = '".substr($gmlid, 2, 2)."'</p>";
-	echo "<p>Kreis = '".substr($gmlid, 4, 2)."'</p>";
-	echo "<p>Konstante = '".substr($gmlid, 6, 6)."'</p>";
-	echo "<p>Objekt-Nr = '".substr($gmlid, 12, 4)."'</p>";
-//	echo "<p>Zeitstempel = '".substr($gmlid, 16)."'</p>";
-
-//	$sql="SELECT beziehungsart, beziehung_zu FROM alkis_beziehungen WHERE beziehung_von= $1;";
-//	$v = array($gmlid);
-//	$res = pg_prepare("", $sql);
-//	$res = pg_execute("", $v);
-
-	echo "\n<table>";
-	if (!$res) {
-		echo "\n<tr>\n\t<td colspan=3><b>Keine</b> Beziehungen vom Objekt</td>\n</tr>";
-	} else {
-		echo "\n<tr>\n\t<td class='head' colspan=3><br>Beziehungen <b>vom</b> Objekt zu ..</td>\n</tr>";
-		$i=0;
-		while($row = pg_fetch_array($res)) {
-			echo "\n<tr>\n\t<td>".$otyp."</td>";
-			echo "\n\t<td class='bez'>".$row["beziehungsart"]."</td>";
-			echo "\n\t<td>\n\t\t<a href='".$_SERVER['PHP_SELF']."?gkz=".$gkz."&amp;gmlid=".$row["beziehung_zu"]."'>".$row["beziehung_zu"]."</a>";
-			echo "\n\t</td>\n</tr>";
-			$i++;
-		}
-		if ($i == 0) {
-			echo "<tr><td colspan=3>.. keine</td></tr>";
-		} elseif ($i > 4) {
-			echo "\n<tr>\n\t<td colspan=3>".$i." Relationen</td>\n</tr>";
-		}
-	}
-
-/*
-	$sql="SELECT beziehungsart, beziehung_von FROM alkis_beziehungen WHERE beziehung_zu= $1;";
-	$v = array($gmlid);
-	$res = pg_prepare("", $sql);
-	$res = pg_execute("", $v);
-
-	if (!$res) {
-		echo "<tr><td colspan=3><b>Keine</b> Beziehungen zum Objekt</td></tr>";
-	} else {
-		echo "\n<tr>\n\t<td class='head' colspan=3><br>Beziehungen <b>zum</b> Objekt von ..</td>\n</tr>";
-		$i=0;
-		while($row = pg_fetch_array($res)) {
-			echo "\n<tr>\n\t<td>";
-			echo "\n\t\t<a href='".$_SERVER['PHP_SELF']."?gkz=".$gkz."&amp;gmlid=".$row["beziehung_von"]."'>".$row["beziehung_von"]."</a>";
-			echo "\n\t</td>";
-			echo "\n\t<td class='bez'>".$row["beziehungsart"]."</td>";
-			echo "\n\t<td>".$otyp."</td>\n</tr>";
-			$i++;
-		}
-		if ($i == 0) {
-			echo "\n<tr>\n\t<td colspan=3>.. keine</td>\n</tr>";
-		} elseif ($i > 4) {
-			echo "\n<tr>\n\t<td colspan=3>".$i." Relationen</td>\n</tr>";
-		}
-	}
-*/
-	echo "\n</table>";
-}
-echo "\n<hr>\n<p class='nwlink'>\n\t<a target='_blank' href='".$hilfeurl."' title='Dokumentation'>Hilfe zur ALKIS-Auskunft</a>\n</p>\n";
-?>
-
-</body>
-</html>
