Index: /trunk/info/info/alkis/alkisfsexp.php
===================================================================
--- /trunk/info/info/alkis/alkisfsexp.php	(revision 219)
+++ /trunk/info/info/alkis/alkisfsexp.php	(revision 219)
@@ -0,0 +1,144 @@
+<?php
+/*	Modul alkisfsexp.php
+	CSV-Export von Flurstuecks-Daten
+	2012-07-23 krz f.j.
+*/
+import_request_variables("G"); // gmlid
+header('Content-type: application/octet-stream');
+header('Content-Disposition: attachment; filename="alkis_flurstueck_'.$gmlid.'.csv"');
+require_once("alkis_conf_location.php");
+
+// CSV-Ausgabe
+echo "Gemarkung;FS-Kennzeichen;Flaeche;Adressen;Buchungsart;GB-Bezirk;GB-Blatt;LfdNr;Anteil";
+
+// Datenbank-Verbindung
+$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+if (!$con) {exit("Fehler beim Verbinden der DB");}
+pg_set_client_encoding($con, LATIN1); 
+
+// FlurstÃŒcksdaten
+$sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.gemeinde, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung ";
+$sql.="FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
+$sql.="WHERE f.gml_id= $1";
+$v = array($gmlid);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {exit("Fehler bei Flurstuecksdaten");}
+if ($row = pg_fetch_array($res)) {
+	$gemkname=$row["bezeichnung"];
+	$gmkgnr=$row["gemarkungsnummer"];
+	$flurnummer=$row["flurnummer"];
+	$flstnummer=$row["zaehler"];
+	$nenner=$row["nenner"];
+	if ($nenner > 0) {$flstnummer.="/".$nenner;} // BruchNr
+	$fsbuchflae=$row["amtlicheflaeche"]; // amtliche Fl. aus DB-Feld
+} else {exit ("Kein Treffer fuer gml_id=".$gmlid);}
+pg_free_result($res);
+
+// Lagebezeichnung Mit Hausnummer
+// Mehrere Lagebezeichnungen kommen in eine Zelle der Tabelle
+$sql ="SELECT DISTINCT s.bezeichnung, l.hausnummer FROM alkis_beziehungen v ";
+$sql.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id ";
+$sql.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage = s.lage ";
+$sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart='weistAuf' ";
+$sql.="ORDER BY s.bezeichnung, l.hausnummer;";
+$v=array($gmlid);
+$res=pg_prepare("", $sql);
+$res=pg_execute("", $v);
+if (!$res) {
+	echo "Fehler bei Lagebezeichnung mit Hausnummer\n";
+	echo $sql."\n";
+}
+$j=0;
+$lagehsnr=""; // mehrere ggf. in ein Feld
+while($row = pg_fetch_array($res)) {
+	if ($j > 0) {$lagehsnr.=", ";}
+	$sneu=$row["bezeichnung"];
+	if ($sneu == $salt) {
+		$lagehsnr.=$row["hausnummer"];
+	} else {
+		$lagehsnr.=$sneu." ".$row["hausnummer"];
+	}
+	$salt=$sneu;
+	$j++;
+}
+pg_free_result($res);
+
+$fskennz='"'.$gmkgnr.'-'.$flurnummer.'-'.$flstnummer.'"'; // in "" einschlieÃen, Excel macht sonst Datum daraus
+$csvfs="\n".$gemkname.";".$fskennz.";".$fsbuchflae.";".$lagehsnr.";"; // Buchung anhÃ€ngen
+// Ende linearer Teil (eine Zeile je FlurstÃŒck))
+
+// BUCHUNGSSTELLEN zum FS
+//  jede Buchung zu einem FS erzeugt eine neue FS-Zeile !!
+$sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer as lfd, s.zaehler, s.nenner, b.bezeichner AS bart ";
+$sql.="FROM alkis_beziehungen v "; // Bez Flurst.- Stelle.
+$sql.="JOIN ax_buchungsstelle s ON v.beziehung_zu=s.gml_id ";
+$sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart = b.wert ";
+$sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart= $2 ORDER BY s.laufendenummer;";
+$v = array($gmlid,'istGebucht');
+$ress = pg_prepare("", $sql);
+$ress = pg_execute("", $v);
+if (!$ress) {echo "\nKeine Buchungsstelle";}
+$bs=0; // Z.Buchungsstelle
+while($rows = pg_fetch_array($ress)) {
+	$gmls=$rows["gml_id"]; // gml b-Stelle	
+	$lfd=$rows["lfd"]; // BVNR
+
+	// BUCHUNGSBLATT zur Buchungsstelle
+	$sql ="SELECT b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung ";
+	$sql.="FROM alkis_beziehungen v "; // Bez. Stelle - Blatt
+	$sql.="JOIN ax_buchungsblatt b ON v.beziehung_zu=b.gml_id ";
+	$sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk ";
+	$sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart= $2 ";
+	$sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;";
+	$v=array($gmls,'istBestandteilVon');
+	$resg=pg_prepare("", $sql);
+	$resg=pg_execute("", $v);
+	if (!$resg) {echo "\nKein Buchungsblatt";}
+	$bl=0;
+	while($rowg = pg_fetch_array($resg)) {
+		echo $csvfs.$rows["bart"].";".$rowg["bezeichnung"].";".$rowg["blatt"].";".$rows["lfd"].";";
+		if ($rowg["zaehler"] == "") {echo "1";}
+		else {
+			$zah=str_replace(".",",",$rowg["zaehler"]);
+			$nen=str_replace(".",",",$rowg["nenner"]);		
+			echo "=".$zah."/".$nen;
+		}	
+		$bl++;
+	}
+	pg_free_result($resg);
+	if ($bl == 0) {echo "\nKein Buchungsblatt gefunden.";}
+
+	// RECHT Stelle an Stelle - Kommentare siehe alkisfsnw.php
+	$sql ="SELECT s.laufendenummer as lfd, s.zaehler, s.nenner, ";
+	$sql.=" b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, z.bezeichnung, a.bezeichner AS bart ";
+	$sql.="FROM alkis_beziehungen an ";
+	$sql.="JOIN ax_buchungsstelle s ON an.beziehung_von = s.gml_id ";
+	$sql.="JOIN alkis_beziehungen v ON s.gml_id = v.beziehung_von ";
+	$sql.="JOIN ax_buchungsblatt  b ON v.beziehung_zu = b.gml_id ";
+	$sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land = b.land AND z.bezirk = b.bezirk ";
+	$sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert ";
+	$sql.="WHERE an.beziehung_zu = $1 ";
+	$sql.="AND an.beziehungsart = 'an' ";
+	$sql.="AND v.beziehungsart = 'istBestandteilVon' ";
+	$sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
+	$v = array($gmls);
+	$resan = pg_prepare("", $sql);
+	$resan = pg_execute("", $v);
+	if (!$resan) {echo "\nFehler bei weiteren Buchungsstellen";}
+	while($rowan = pg_fetch_array($resan)) {
+		echo $csvfs.$rowan["bart"].";".$rowan["bezeichnung"].";".$rowan["blatt"].";".$rowan["lfd"].";";
+		if ($rowan["zaehler"] == "") {echo "1";}
+		else {
+			$zah=str_replace(".",",",$rowan["zaehler"]);
+			$nen=str_replace(".",",",$rowan["nenner"]);		
+			echo "=".$zah."/".$nen;
+		}
+	}
+	pg_free_result($resan);
+	$bs++;
+}
+if ($bs == 0) {echo "\nKeine Buchungstelle gefunden.";}
+pg_close($con);
+exit(0);
+?>
Index: /trunk/info/info/alkis/alkisinlaybaurecht.php
===================================================================
--- /trunk/info/info/alkis/alkisinlaybaurecht.php	(revision 219)
+++ /trunk/info/info/alkis/alkisinlaybaurecht.php	(revision 219)
@@ -0,0 +1,158 @@
+<?php
+/*	alkisinlaybaurecht.php - Inlay fuer Template: Baurecht
+	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+
+	Version:
+	26.07.2011  debug
+	28.11.2011  import_request_variables
+*/
+//ini_set('error_reporting', 'E_ALL & ~ E_NOTICE');
+session_start();
+import_request_variables("G");
+//$gkz=urldecode($_REQUEST["gkz"]);
+require_once("alkis_conf_location.php");
+if ($auth == "mapbender") {require_once($mapbender);}
+// $gmlid=urldecode($_REQUEST["gmlid"]);
+?>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+	<meta name="author" content="F. Jaeger krz" >
+	<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">
+	<title>ALKIS Bau-, Raum- oder Bodenordnungsrecht</title>
+	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
+	<link rel="shortcut icon" type="image/x-icon" href="ico/Gericht.ico">
+	<base target="_blank">
+</head>
+<body>
+
+<?php
+$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+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>";}
+
+// wie View "baurecht"
+$sql ="SELECT r.ogc_fid,  r.artderfestlegung as adfkey, r.name, r.stelle, r.bezeichnung AS rechtbez, ";
+$sql.="a.bezeichner  AS adfbez, d.bezeichnung AS stellbez, d.stellenart, ";
+$sql.="round(st_area(r.wkb_geometry)::numeric,0) AS flae ";
+$sql.="FROM ax_bauraumoderbodenordnungsrecht r ";
+$sql.="LEFT JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON r.artderfestlegung = a.wert ";
+$sql.="LEFT JOIN ax_dienststelle d ON r.land = d.land AND r.stelle = d.stelle ";
+$sql.="WHERE r.gml_id= $1 ;";
+
+$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";}
+}
+echo "\n<h2><img src='ico/Gericht.ico' width='16' height='16' alt=''> Bau-, Raum- oder Bodenordnungsrecht</h2>\n";
+
+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><span class='key'>(".$row["adfkey"].")</span> ";
+			echo "<span class='wichtig'>".$row["adfbez"]."</span></td>";
+		echo "\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>";
+			echo "\n\t<td class='li'>Verfahrensnummer:</td>";
+			echo "\n\t<td>".$row["rechtbez"]."</td>";
+		echo "\n</tr>";
+
+		$stell=$row["stelle"];
+		if ($stell != "") {
+			echo "\n<tr>";
+				echo "\n\t<td class='li'>Dienststelle:</td>\n\t<td><span class='key'>(".$stell.")</span> ".$row["stellbez"];
+				$stellart=$row["stellenart"];
+				if ($stellart != "") {
+					echo " (".$stellart.")"; // d.stellenart -- weiter entschluesseln
+				}
+				echo "</td>";
+			echo "\n</tr>";
+		}
+
+		echo "\n<tr>";
+			echo "\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>";
+} else {
+	echo "\n<p class='err'>Fehler! Kein Treffer bei gml_id=".$gmlid."</p>";
+}
+
+echo "\n<h2><img src='ico/Flurstueck.ico' 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>";
+
+$sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, ";
+$sql.="round(st_area(ST_Intersection(r.wkb_geometry,f.wkb_geometry))::numeric,1) AS schnittflae ";
+$sql.="FROM ax_flurstueck f, ax_bauraumoderbodenordnungsrecht r  ";
+$sql.="WHERE r.gml_id= $1 "; 
+$sql.="AND st_intersects(r.wkb_geometry,f.wkb_geometry) = true ";
+$sql.="AND st_area(st_intersection(r.wkb_geometry,f.wkb_geometry)) > 0.05 ";  // > 0.0 ist gemeint, Ungenauigkeit durch st_simplify
+$sql.="AND isvalid(r.wkb_geometry) AND isvalid(f.wkb_geometry) "; 
+$sql.="ORDER BY schnittflae DESC ";
+// Limit: Flurbereinigungsgebiete koennen sehr gross werden!
+$sql.="LIMIT 40;";
+// Trotz Limit lange Antwortzeit, wegen OrderBy -> intersection
+$v = array($gmlid);
+$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";}
+}
+
+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>";
+
+	$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 target='_blank' 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.ico' width='16' height='16' alt=''>";
+				echo "\n\t\t</a>";
+			echo "\n\t</td>";
+		echo "\n</tr>";
+	}
+echo "\n</table>";
+
+if ($fscnt == 40) {
+	echo "<p>... und weitere Flurst&uuml;cke (Limit 40 erreicht).</0>";
+}
+
+?>
+
+</body>
+</html>
Index: /trunk/info/info/alkis/alkisfsgbexp.php
===================================================================
--- /trunk/info/info/alkis/alkisfsgbexp.php	(revision 219)
+++ /trunk/info/info/alkis/alkisfsgbexp.php	(revision 219)
@@ -0,0 +1,150 @@
+<?php
+/*	Modul alkisfsgbexp.php
+	CSV-Export von Grundbuch-Daten zum Flurstueck
+	Es wird die GML-ID eines FlurstÃŒcks ÃŒbergeben (analog alkisfsexp.php)
+	Dazu sollen alle verbundenen GrundbÃŒcher gesucht werden.
+	Zu diesen sollen die EigentÃŒmerdaten exportiert werden (analog alkisbestexp.php)
+
++++ IN ARBEIT ++++  ZunÃ€chst Kopie von alkisfsexp.php
+	
+	2012-07-24 krz f.j.
+*/
+import_request_variables("G"); // gmlid
+header('Content-type: application/octet-stream');
+header('Content-Disposition: attachment; filename="alkis_flurstueck_'.$gmlid.'.csv"');
+require_once("alkis_conf_location.php");
+
+// CSV-Ausgabe
+echo "Gemarkung;FS-Kennzeichen;Flaeche;Adressen;Buchungsart;GB-Bezirk;GB-Blatt;LfdNr;Anteil";
+
+// Datenbank-Verbindung
+$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+if (!$con) {exit("Fehler beim Verbinden der DB");}
+pg_set_client_encoding($con, LATIN1); 
+
+// FlurstÃŒcksdaten
+$sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.gemeinde, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung ";
+$sql.="FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
+$sql.="WHERE f.gml_id= $1";
+$v = array($gmlid);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {exit("Fehler bei Flurstuecksdaten");}
+if ($row = pg_fetch_array($res)) {
+	$gemkname=$row["bezeichnung"];
+	$gmkgnr=$row["gemarkungsnummer"];
+	$flurnummer=$row["flurnummer"];
+	$flstnummer=$row["zaehler"];
+	$nenner=$row["nenner"];
+	if ($nenner > 0) {$flstnummer.="/".$nenner;} // BruchNr
+	$fsbuchflae=$row["amtlicheflaeche"]; // amtliche Fl. aus DB-Feld
+} else {exit ("Kein Treffer fuer gml_id=".$gmlid);}
+pg_free_result($res);
+
+// Lagebezeichnung Mit Hausnummer
+// Mehrere Lagebezeichnungen kommen in eine Zelle der Tabelle
+$sql ="SELECT DISTINCT s.bezeichnung, l.hausnummer FROM alkis_beziehungen v ";
+$sql.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id ";
+$sql.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage = s.lage ";
+$sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart='weistAuf' ";
+$sql.="ORDER BY s.bezeichnung, l.hausnummer;";
+$v=array($gmlid);
+$res=pg_prepare("", $sql);
+$res=pg_execute("", $v);
+if (!$res) {
+	echo "Fehler bei Lagebezeichnung mit Hausnummer\n";
+	echo $sql."\n";
+}
+$j=0;
+$lagehsnr=""; // mehrere ggf. in ein Feld
+while($row = pg_fetch_array($res)) {
+	if ($j > 0) {$lagehsnr.=", ";}
+	$sneu=$row["bezeichnung"];
+	if ($sneu == $salt) {
+		$lagehsnr.=$row["hausnummer"];
+	} else {
+		$lagehsnr.=$sneu." ".$row["hausnummer"];
+	}
+	$salt=$sneu;
+	$j++;
+}
+pg_free_result($res);
+
+$fskennz='"'.$gmkgnr.'-'.$flurnummer.'-'.$flstnummer.'"'; // in "" einschlieÃen, Excel macht sonst Datum daraus
+$csvfs="\n".$gemkname.";".$fskennz.";".$fsbuchflae.";".$lagehsnr.";"; // Buchung anhÃ€ngen
+// Ende linearer Teil (eine Zeile je FlurstÃŒck))
+
+// BUCHUNGSSTELLEN zum FS
+//  jede Buchung zu einem FS erzeugt eine neue FS-Zeile !!
+$sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer as lfd, s.zaehler, s.nenner, b.bezeichner AS bart ";
+$sql.="FROM alkis_beziehungen v "; // Bez Flurst.- Stelle.
+$sql.="JOIN ax_buchungsstelle s ON v.beziehung_zu=s.gml_id ";
+$sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart = b.wert ";
+$sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart= $2 ORDER BY s.laufendenummer;";
+$v = array($gmlid,'istGebucht');
+$ress = pg_prepare("", $sql);
+$ress = pg_execute("", $v);
+if (!$ress) {echo "\nKeine Buchungsstelle";}
+$bs=0; // Z.Buchungsstelle
+while($rows = pg_fetch_array($ress)) {
+	$gmls=$rows["gml_id"]; // gml b-Stelle	
+	$lfd=$rows["lfd"]; // BVNR
+
+	// BUCHUNGSBLATT zur Buchungsstelle
+	$sql ="SELECT b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung ";
+	$sql.="FROM alkis_beziehungen v "; // Bez. Stelle - Blatt
+	$sql.="JOIN ax_buchungsblatt b ON v.beziehung_zu=b.gml_id ";
+	$sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk ";
+	$sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart= $2 ";
+	$sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;";
+	$v=array($gmls,'istBestandteilVon');
+	$resg=pg_prepare("", $sql);
+	$resg=pg_execute("", $v);
+	if (!$resg) {echo "\nKein Buchungsblatt";}
+	$bl=0;
+	while($rowg = pg_fetch_array($resg)) {
+		echo $csvfs.$rows["bart"].";".$rowg["bezeichnung"].";".$rowg["blatt"].";".$rows["lfd"].";";
+		if ($rowg["zaehler"] == "") {echo "1";}
+		else {
+			$zah=str_replace(".",",",$rowg["zaehler"]);
+			$nen=str_replace(".",",",$rowg["nenner"]);		
+			echo "=".$zah."/".$nen;
+		}	
+		$bl++;
+	}
+	pg_free_result($resg);
+	if ($bl == 0) {echo "\nKein Buchungsblatt gefunden.";}
+
+	// RECHT Stelle an Stelle - Kommentare siehe alkisfsnw.php
+	$sql ="SELECT s.laufendenummer as lfd, s.zaehler, s.nenner, ";
+	$sql.=" b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, z.bezeichnung, a.bezeichner AS bart ";
+	$sql.="FROM alkis_beziehungen an ";
+	$sql.="JOIN ax_buchungsstelle s ON an.beziehung_von = s.gml_id ";
+	$sql.="JOIN alkis_beziehungen v ON s.gml_id = v.beziehung_von ";
+	$sql.="JOIN ax_buchungsblatt  b ON v.beziehung_zu = b.gml_id ";
+	$sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land = b.land AND z.bezirk = b.bezirk ";
+	$sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert ";
+	$sql.="WHERE an.beziehung_zu = $1 ";
+	$sql.="AND an.beziehungsart = 'an' ";
+	$sql.="AND v.beziehungsart = 'istBestandteilVon' ";
+	$sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
+	$v = array($gmls);
+	$resan = pg_prepare("", $sql);
+	$resan = pg_execute("", $v);
+	if (!$resan) {echo "\nFehler bei weiteren Buchungsstellen";}
+	while($rowan = pg_fetch_array($resan)) {
+		echo $csvfs.$rowan["bart"].";".$rowan["bezeichnung"].";".$rowan["blatt"].";".$rowan["lfd"].";";
+		if ($rowan["zaehler"] == "") {echo "1";}
+		else {
+			$zah=str_replace(".",",",$rowan["zaehler"]);
+			$nen=str_replace(".",",",$rowan["nenner"]);		
+			echo "=".$zah."/".$nen;
+		}
+	}
+	pg_free_result($resan);
+	$bs++;
+}
+if ($bs == 0) {echo "\nKeine Buchungstelle gefunden.";}
+pg_close($con);
+exit(0);
+?>
Index: /trunk/info/info/alkis/alkisgbfsexp.php
===================================================================
--- /trunk/info/info/alkis/alkisgbfsexp.php	(revision 219)
+++ /trunk/info/info/alkis/alkisgbfsexp.php	(revision 219)
@@ -0,0 +1,55 @@
+<?php
+/*	Modul alkisfsexp.php
+	CSV-Export von Flurstücksdaten zu einem Grundbuch-Blatt
+	2012-07-24 krz f.j.
+	
+++++ IN ARBEIT ++++   Zunächst Kopie von alkisgbexp.php
+
+	Es wird die gml_id eines Bestandes übergeben (analog alkisgbexp.php).
+	Dazu alle darauf gebuchten FS ermitteln.
+	Dazu dann alle FS-DFaten ausgeben (analog alkisfsexp.php).	
+
+*/
+
+
+import_request_variables("G"); // gmlid
+
+header('Content-type: application/octet-stream');
+header('Content-Disposition: attachment; filename="alkis_grundbuch_'.$gmlid.'.csv"');
+
+require_once("alkis_conf_location.php");
+
+// Datenbank-Verbindung
+$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+if (!$con) {exit("Fehler beim Verbinden der DB");}
+pg_set_client_encoding($con, LATIN1); 
+
+// Brundbuch-Blatt
+$sql ="SELECT g.buchungsblattnummermitbuchstabenerweiterung AS nr, g.blattart, "; // GB-Blatt
+$sql.=" b.bezirk, b.bezeichnung AS beznam, "; // Bezirk
+$sql.=" a.land, a.bezeichnung "; // Amtsgericht
+$sql.="FROM ax_buchungsblatt g ";
+$sql.="LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk ";  // BBZ
+$sql.="LEFT JOIN ax_dienststelle a ON b.land = a.land AND b.stelle = a.stelle ";
+$sql.="WHERE g.gml_id= $1 AND a.stellenart=1000;"; // Amtsgericht
+$v = array($gmlid);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {exit("Fehler bei Grundbuchdaten");}
+if ($row = pg_fetch_array($res)) {
+	$agland=$row["land"]; // Amtsgericht	
+	$agbez=$row["bezeichnung"];
+	$bezirk=$row["bezirk"]; // Bezirk
+	$beznam=$row["beznam"];
+	$blattnr=$row["nr"]; // Blatt
+	$blattart=$row["blattart"];
+} else {
+	exit("Kein Treffer fuer gml_id=".$gmlid);
+}
+//if ($blattkey == 5000) { // fikt. Blatt Keine Angaben zum Eigentum
+
+// CSV-Ausgabe
+echo "Land;Amtsgericht;Bezirk;Bezirksname;Blatt;Blattart";
+echo "\n".$agland.";".$agbez.";".$bezirk.";".$beznam.";".$blattnr.";".$blattart;
+exit();
+?>
Index: /trunk/info/info/alkis/alkisrelationen.php
===================================================================
--- /trunk/info/info/alkis/alkisrelationen.php	(revision 219)
+++ /trunk/info/info/alkis/alkisrelationen.php	(revision 219)
@@ -0,0 +1,96 @@
+<?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:
+	10.11.2011  Relationen-ZÃ€hler ausgeben, ab 5 Zeilen nicht mehr 'auf einen Blick' erkennbar.
+	30.11.2011  import_request_variables
+*/
+//ini_set('error_reporting', 'E_ALL');
+session_start();
+import_request_variables("G");
+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="F. Jaeger krz" >
+	<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>";
+	$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>
Index: /trunk/info/info/alkis/alkisfshist.php
===================================================================
--- /trunk/info/info/alkis/alkisfshist.php	(revision 219)
+++ /trunk/info/info/alkis/alkisfshist.php	(revision 219)
@@ -0,0 +1,324 @@
+<?php
+/*	Modul: alkisfshist.php
+
+	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+	FlurstÃŒcks-Historie fuer ein FlurstÃŒckskennzeichen 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
+*/
+
+function fzerleg($fs) {
+/*	FlurstÃŒckskennzeichen (20) zerlegen als lesbares Format (wie im Balken):
+	Dies FS-Kennz-Format wird auch als Eingabe in der Navigation akzeptiert 
+   ....*....1....*....2
+   ll    fff     nnnn
+     gggg   zzzzz    __
+*/
+	$fst=rtrim($fs,"_");	
+	$zer=substr ($fst, 2, 4)."-".ltrim(substr($fst, 6, 3), "0")."-<b>".ltrim(substr($fst, 9, 5),"0");
+	$nenn=ltrim(substr($fst, 14), "0");
+	if ($nenn != "") {$zer.="/".$nenn;}
+	$zer.="</b>";
+	return $zer; 
+}
+
+function vornach($dbarr) {
+// Datenbank-Array-Feld zeilenweise ausgeben als Selbst-Link
+	global $gkz, $idanzeige, $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>";
+		}
+	}
+	return 0;
+}
+
+function gemkg_name($gkey) {
+// SchlÃŒssel wird ÃŒbergeben, Name in DB nachschlagen
+	global $con;
+	$sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;";
+	$v=array($gkey);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkung.</p>";}
+	$zgmk=0;
+	while($row = pg_fetch_array($res)) { // eigentlich nur EINE
+		$gmkg=$row["bezeichnung"];
+		$zgmk++;
+	}
+	if ($zgmk == 0) {
+		echo "\n<p class='err'>Gemarkung ".$gkey." ist unbekannt.</p>";
+		return;
+	}
+	return $gmkg;
+}
+
+function such_vor_arr($fsk) {
+// Suchen der VorgÃ€nger zum aktuellen Flurst. Ausgabe von Selbst-Links Zeilenweise in <td>.
+// Akt. FS hat keine Verweise auf VorgÃ€nger. Darum in den Nachfolger-Verweisen von Hist.-FS suchen.
+// Problem: Dies sind Arrays, die nicht performant durchsucht werden kÃ¶nnen.
+	global $gkz, $con, $debug;
+
+	$wherecl="WHERE $1 = ANY (nachfolgerflurstueckskennzeichen) ";
+
+	// Bei kleinere Datenbanken keine spÃŒrbare VerzÃ¶gerung bei Suche mit " = ANY(Array)"
+	// FÃŒr grosse BestÃ€nde zusÃ€tzlich filtern ÃŒber indizierte Felder Gemarkung + Flur?
+	// Dazu die nÃ€chsten 2 Zeilen aktivieren.	
+//	$wherecl.="AND gemarkungsnummer=".substr($fsk, 2, 4)." ";
+//	$wherecl.="AND flurnummer=".ltrim(substr($fsk, 6, 3), "0")." ";
+	// Frage: kann das bei Historisierung wechseln? (Umflurung, Umgemarkung). Dann ggf. Fehler (nicht gefunden)
+
+	$sqlv.="SELECT 'h' AS ftyp, gml_id, flurstueckskennzeichen FROM ax_historischesflurstueck h ".$wherecl;
+	$sqlv.="UNION ";
+	$sqlv.="SELECT 'o' AS ftyp, gml_id, flurstueckskennzeichen FROM ax_historischesflurstueckohneraumbezug o ".$wherecl;
+	$sqlv.="ORDER BY flurstueckskennzeichen";
+
+	$v=array($fsk);
+	$resv = pg_prepare("", $sqlv);
+	$resv = pg_execute("", $v);
+	if (!$resv) {
+		echo "\n<p class='err'>Fehler bei Vorg&auml;nger-FS.</p>";
+		if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sqlv."<br>$1='".$fsk."'</p>";}
+	}
+	$zv=0;
+	while($rowv = pg_fetch_array($resv)) {
+		$ftyp=$rowv["ftyp"];
+		$gmlv=$rowv["gml_id"];
+		$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";}
+		echo "'>".fzerleg($vfsk)."</a><br>";
+		$zv++;
+	}
+	if ($zv == 0) {echo "(keine)";}
+	return;
+}
+
+session_start();
+import_request_variables("G");
+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>
+<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">
+	<title>ALKIS Flurst&uuml;cks-Historie</title>
+	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
+	<link rel="shortcut icon" type="image/x-icon" href="ico/Flurstueck_Historisch.ico">
+	<style type='text/css' media='print'>
+		.noprint {visibility: hidden;}
+	</style>
+</head>
+<body>
+<?php
+$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+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?
+if ($gmlid != "") { // Ja, die GML wurde uebergeben
+	$parmtyp="GML";
+	$parmval=$gmlid;
+	$whereclause="WHERE gml_id= $1 ";
+	$v = array($gmlid);
+} else {	// Alternativ: das FlurstÃŒcks-Kennzeichen wurde ÃŒbergeben
+	if ($fskennz != "") {
+		$parmtyp="Flurst&uuml;ckskennzeichen";
+		$parmval=$fskennz;
+		$whereclause="WHERE flurstueckskennzeichen= $1 "; // hinten auffuellen mit _ auf 20 Stellen
+		$v = array($fskennz);
+	} 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\" ";
+	$sqlu.="FROM ax_flurstueck f ".$whereclause;
+	$sqlu.="UNION ";
+	$sqlu.="SELECT 'h' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name ";
+	$sqlu.="FROM ax_historischesflurstueck h ".$whereclause;
+	$sqlu.="UNION ";
+	$sqlu.="SELECT 'o' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name ";
+	$sqlu.="FROM ax_historischesflurstueckohneraumbezug o ".$whereclause;
+	
+	$resu = pg_prepare("", $sqlu);
+	$resu = pg_execute("", $v);
+	if ($rowu = pg_fetch_array($resu)) {
+		$ftyp=$rowu["ftyp"];
+		$gmkgnr=$rowu["gemarkungsnummer"];
+		$flurnummer=$rowu["flurnummer"];
+		$zaehler=$rowu["zaehler"];
+		$nenner=$rowu["nenner"];
+		$flstnummer=$zaehler;
+		if ($nenner > 0) {$flstnummer.="/".$nenner;} // BruchNr
+		$fskenn=$rowu["flurstueckskennzeichen"];
+		$flae=number_format($rowu["amtlicheflaeche"],0,",",".") . " m&#178;";
+		$name=$rowu["name"]; // in DB ein Array
+	//	$arrn=split(",", trim($name, "{}") ); // split ist deprecated!
+		$arrn=explode(",", trim($name, "{}") ); // PHP-Array 
+		$gemkname= gemkg_name($gmkgnr);
+		$entsteh=$rowu["zeitpunktderentstehung"];
+		$vor=$rowu["vor"];
+		$nach=$rowu["nach"];
+		if ($gmlid == "") {$gmlid=$rowu["gml_id"];} // fÃŒr 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>";}
+	}
+}
+
+switch ($ftyp) { // Unterschiede Historisch/Aktuell
+	case 'a': 
+		$wert = "aktuell";
+		$ico= "Flurstueck.ico";
+		$cls= "kennzfs";	
+	break;
+	case 'h': 
+		$wert = "historisch<br>(mit Raumbezug)";
+		$ico= "Flurstueck_Historisch.ico"; //
+		$cls= "kennzfsh";
+	break;
+	case 'o': 
+		$wert = "historisch<br>ohne Raumbezug";
+		$ico= "Flurstueck_Historisch_oR.ico";
+		$cls= "kennzfsh";
+	break;
+	default:
+		$wert = "<b>nicht gefunden: ".$parmtyp." = '".$parmval."'</b>";
+		$ico= "Flurstueck_Historisch.ico";
+		$cls= "kennzfsh";
+	break;
+}
+
+// Balken
+echo "<p class='fshis'>ALKIS Flurst&uuml;ck ".$gmkgnr."-".$flurnummer."-".$flstnummer."&nbsp;</p>\n";
+echo "\n<h2><img src='ico/".$ico."' width='16' height='16' alt=''> Flurst&uuml;ck Historie</h2>\n";
+
+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'>";
+		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>";
+		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'>";
+				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"); }
+echo "\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";}
+			if ($showkey)   {echo "&amp;showkey=j";}
+			echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck ";
+			echo "<img src='ico/Flurstueck_Link.ico' width='16' height='16' alt=''>";
+		echo "</a>";
+}
+echo "\n<hr>";
+
+echo "<table class='outer'>";
+	echo "\n<tr>
+		<td class='head'>Flurst&uuml;ck</td>
+		<td class='head'>Vorg&auml;nger</td>
+		<td class='head'>Nachfolger</td>
+	</tr>"; // Head
+	
+	// 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>";
+
+	// Spalte 2: V o r g Ã€ n g e r
+	echo "\n\t<td>";
+	switch ($ftyp) { // Unterschiede Historisch/Aktuell
+		case 'a':
+			such_vor_arr($fskenn);
+		break;
+		case 'h':
+			if ($vor == "") {
+				echo "Geometrische Suche<br>(noch nicht m&ouml;glich)";
+			} else {
+				vornach($vor);
+			}
+		break;
+		case 'o':
+			vornach($vor);
+		break;
+	}
+	echo"</td>";
+
+	// Spalte 3: N a c h f o l g e r
+	echo "\n\t<td>";
+		vornach($nach);
+	echo "</td>\n</tr>";
+echo "\n</table>";
+
+if ($debug > 1) {
+	$z=1;
+	while($rowu = pg_fetch_array($resu)) {
+		$ftyp=$rowu["ftyp"];
+		echo "<p class='dbg'>Mehr als EIN Eintrag gefunden: '".$ftyp."' (".$z.")</p>";
+		$z++;
+	}
+}
+?>
+
+<form action=''>
+	<div class='buttonbereich noprint'>
+	<hr>
+		<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.ico" width="16" height="16" alt="zur&uuml;ck" /></a>&nbsp;
+		<a title="Drucken" href='javascript:window.print()'><img src="ico/print.ico" width="16" height="16" alt="Drucken" /></a>&nbsp;
+<!--	<a title="Export als CSV" href='javascript:ALKISexport()'><img src="ico/download.ico" width="16" height="16" alt="Export" /></a>&nbsp;
+		<a title="Seite schlie&szlig;en" href="javascript:window.close()"><img src="ico/close.ico" width="16" height="16" alt="Ende" /></a>	-->
+	</div>
+</form>
+
+<?php footer($gmlid, $_SERVER['PHP_SELF']."?", "&amp;eig=".$eig); ?>
+
+</body>
+</html>
Index: /trunk/info/info/alkis/alkishaus.php
===================================================================
--- /trunk/info/info/alkis/alkishaus.php	(revision 219)
+++ /trunk/info/info/alkis/alkishaus.php	(revision 219)
@@ -0,0 +1,362 @@
+<?php
+/*	alkishaus.php - Daten zum ALKIS-Geb&auml;ude-Objekt
+	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+
+	Version:
+	30.11.2011  NEU! Variante von alkisgebaeudenw: Aufruf f&uuml;r EIN Haus, nicht f&uuml;r ein FS
+
+	ToDo:
+	- sinnvolle Sortierung und Gruppierung der Felder
+	- ToDo: geometrische Suche nach Flurst&uuml;cken, auf denen das Haus steht
+	- Template im WMS auf Ebene Geb&auml;ude hierhin verkn&uuml;pfen.
+	- Auch diese Relationen abbilden:
+		ax_gebaeude >gehoertZu> ax_gebaeude  (ringf&ouml;rmige Verbindung Geb&auml;udekomplex)
+		ax_gebaeude (umschliesst) ax_bauteil
+		ax_gebaeude >gehoert> ax_person  (Ausnahme)
+*/
+session_start();
+import_request_variables("G");
+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;}
+if ($allfld == "j") {$allefelder=true;} else {$allefelder=false;}
+?>
+<!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">
+	<title>ALKIS Daten zum Haus</title>
+	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
+	<link rel="shortcut icon" type="image/x-icon" href="ico/Haus.ico">
+	<style type='text/css' media='print'>
+		.noprint {visibility: hidden;}
+	</style>
+</head>
+<body>
+<?php
+
+$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+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, ";
+$sqlg.="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, ";
+$sqlg.="h.bauweise_beschreibung, u.bezeichner AS bfunk, z.bezeichner AS bzustand, w.bezeichner AS bweitfunk, d.bezeichner AS bdach, ";
+$sqlg.="round(area(g.wkb_geometry)::numeric,2) AS gebflae ";
+$sqlg.="FROM ax_gebaeude g ";
+
+// Entschluesseln
+$sqlg.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise = h.bauweise_id ";
+$sqlg.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert ";
+$sqlg.="LEFT JOIN ax_gebaeude_zustand z ON g.zustand = z.wert ";
+$sqlg.="LEFT JOIN ax_gebaeude_weiterefunktion w ON g.weiteregebaeudefunktion = w.wert ";
+$sqlg.="LEFT JOIN ax_gebaeude_dachform d ON g.dachform = d.wert ";
+
+$sqlg.="WHERE g.gml_id= $1 "; // ID des Hauses
+
+$v = array($gmlid);
+$resg = pg_prepare("", $sqlg);
+$resg = pg_execute("", $v);
+if (!$resg) {
+	echo "\n<p class='err'>Fehler bei Geb&auml;ude.</p>\n";
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sqlg."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+
+// Balken
+echo "<p class='geb'>ALKIS Haus ".$gmlid."&nbsp;</p>\n"; // +++ Kennzeichen = ?
+
+echo "\n<h2><img src='ico/Haus.ico' width='16' height='16' alt=''> Haus (Geb&auml;ude)</h2>\n";
+
+// Kennzeichen in Rahmen 
+// - Welches Kennzeichen zum Haus ?
+if ($idanzeige) {linkgml($gkz, $gmlid, "Haus"); }
+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;
+	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";}
+echo "</a></p>";
+
+while($rowg = pg_fetch_array($resg)) { // Als 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>";
+
+	$aog=$rowg["aog"];
+	$aug=$rowg["aug"];
+	$hoh=$rowg["hochhaus"];
+	$nam=$rowg["name"]; // Gebbaeude-Name
+	$bfunk=$rowg["bfunk"];
+	$baw=$rowg["bauweise"];
+	$bbauw=$rowg["bauweise_beschreibung"];
+	$ofl=$rowg["lagezurerdoberflaeche"];
+	$dga=$rowg["dachgeschossausbau"];
+	$zus=$rowg["zustand"];
+	$zustand=$rowg["bzustand"];
+	$wgf=$rowg["weiteregebaeudefunktion"];
+	$daf=$rowg["dachform"];
+	$weitfunk=$rowg["bweitfunk"];
+	$dach=$rowg["bdach"];
+	$hho=$rowg["objekthoehe"];
+	$gfl=$rowg["geschossflaeche"];
+	$grf=$rowg["grundflaeche"];
+	$ura=$rowg["umbauterraum"];
+	$bja=$rowg["baujahr"];
+	$daa=$rowg["dachart"];
+	$qag=$rowg["qualitaetsangaben"];
+
+	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
+	// HAUPTgeb&auml;ude
+	$sqll ="SELECT 'm' AS ltyp, v.beziehung_zu, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer ";
+	$sqll.="FROM alkis_beziehungen v "; 
+	$sqll.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id ";
+	$sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
+	$sqll.="WHERE v.beziehungsart = 'zeigtAuf' AND v.beziehung_von = $1 ";
+	$sqll.="UNION ";
+	// oder NEBENgeb&auml;ude
+	$sqll.="SELECT 'p' AS ltyp, v.beziehung_zu, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer ";
+	$sqll.="FROM alkis_beziehungen v "; 
+	$sqll.="JOIN ax_lagebezeichnungmitpseudonummer l ON v.beziehung_zu=l.gml_id ";
+	$sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
+	$sqll.="WHERE v.beziehungsart = 'hat' AND v.beziehung_von = $1 "; // ID des Hauses"
+
+	$sqll.="ORDER BY bezeichnung, hausnummer ";
+
+	$v = array($gmlid);
+	$resl = pg_prepare("", $sqll);
+	$resl = pg_execute("", $v);
+	if (!$resl) {
+		echo "\n<p class='err'>Fehler bei Lage mit HsNr.</p>\n";
+		if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sqll."<br>$1 = gml_id = '".$gmlid."'</p>";}
+	}
+	$zhsnr=0;
+	while($rowl = pg_fetch_array($resl)) { // LOOP: Lagezeilen
+		$zhsnr++;
+		$ltyp=$rowl["ltyp"]; // Lagezeilen-Typ
+		$skey=$rowl["lage"]; // Str.-Schluessel
+		$snam=htmlentities($rowl["bezeichnung"], ENT_QUOTES, "UTF-8"); // -Name
+		$hsnr=$rowl["hausnummer"];
+		$hlfd=$rowl["laufendenummer"];
+		$gmllag=$rowl["beziehung_zu"];
+
+			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.ico' 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>";
+	} // 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 ($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>";
+			if ($showkey) {echo "<span class='key'>".$baw."</span>&nbsp;";}
+			echo $bbauw."</td>";
+		echo "\n</tr>";
+	}
+
+	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>";
+	}
+
+	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>";
+	}
+
+	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>";
+	}
+
+	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>";
+			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>";
+			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>";
+	}
+
+	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>";
+			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;udefunktion</td>";
+			echo "\n\t<td>";
+			if ($showkey) {echo "<span class='key'>".$wgf."</span>&nbsp;";}
+			echo $weitfunk."</td>";
+		echo "\n</tr>";
+	}
+
+	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>";
+			if ($showkey) {echo "<span class='key'>".$daf."</span>&nbsp;";}
+			echo $dach."</td>";
+		echo "\n</tr>";
+	}
+
+	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>";
+	}
+
+	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>";
+	}
+
+	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>";
+	}
+
+	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>";
+	}
+
+	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>";
+	}
+
+	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>";
+	}
+
+	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</table>";
+}
+if ($gebnr == 0) {echo "<p class='err'><br>Kein Geb&auml;ude gefunden<br>&nbsp;</p>";}
+// ++ ToDo: Verschnitt mit FS
+
+?>
+
+<form action=''>
+	<div class='buttonbereich noprint'>
+	<hr>
+		<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.ico" width="16" height="16" alt="zur&uuml;ck" /></a>&nbsp;
+		<a title="Drucken" href='javascript:window.print()'><img src="ico/print.ico" width="16" height="16" alt="Drucken" /></a>&nbsp;
+<!--	<a title="Export als CSV" href='javascript:ALKISexport()'><img src="ico/download.ico" width="16" height="16" alt="Export" /></a>&nbsp;
+		<a title="Seite schlie&szlig;en" href="javascript:window.close()"><img src="ico/close.ico" width="16" height="16" alt="Ende" /></a>	-->
+	</div>
+</form>
+
+<?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>
+
+</body>
+</html>
Index: /trunk/info/info/alkis/alkisinlayausk.php
===================================================================
--- /trunk/info/info/alkis/alkisinlayausk.php	(revision 219)
+++ /trunk/info/info/alkis/alkisinlayausk.php	(revision 219)
@@ -0,0 +1,231 @@
+<?php
+/*	alkisinlayausk.php
+
+	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+	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 ist eine Variante von alkisausk.ph 
+	 welches als vollstaendige Seite aufgerufen wird.
+
+	Version:
+	17.11.2011  Link FS-Historie, Parameter der Functions geÃ€ndert
+	30.11.2011  import_request_variables, $dbvers PostNAS 0.5 entfernt
+*/
+session_start();
+import_request_variables("G");
+require_once("alkis_conf_location.php");
+if ($auth == "mapbender") {require_once($mapbender);}
+include("alkisfkt.php");
+$gmlid = isset($_GET["gmlid"]) ? $_GET["gmlid"] : 0;
+?>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+	<meta name="author" content="F. Jaeger krz" >
+	<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/Flurstueck.ico">
+	<title>ALKIS-Auskunft</title>
+	<script type="text/javascript">
+	function imFenster(dieURL) {
+		var link = encodeURI(dieURL);
+		window.open(link,'','left=10,top=10,width=640,height=800,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes');
+	}
+	</script>
+</head>
+<body>
+<?php
+$con = pg_connect("host=".$dbhost." port=".$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+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, ";
+$sql.=" g.gemarkungsnummer, g.bezeichnung ";
+$sql.="FROM ax_flurstueck f ";
+$sql.="LEFT JOIN ax_gemarkung  g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
+$sql.="WHERE f.gml_id= $1;";
+// Weiter joinen: g.stelle -> ax_dienststelle "Katasteramt"
+$v = array($gmlid);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {
+	echo "\n<p class='err'>Fehler bei Flurstuecksdaten.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+
+if ($row = pg_fetch_array($res)) {
+	$gemkname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
+	$gmkgnr=$row["gemarkungsnummer"];
+	$flurnummer=$row["flurnummer"];
+	$flstnummer=$row["zaehler"];
+	$nenner=$row["nenner"];
+	if ($nenner > 0) $flstnummer.="/".$nenner; // BruchNr
+	$flae=$row["amtlicheflaeche"];
+	$flae=number_format($flae,0,",",".") . " m&#178;";
+} else {
+	echo "<p class='err'>Kein Treffer fuer gml_id=".$gmlid."</p>";
+}
+
+echo "\n<h2><img src='ico/Flurstueck.ico' 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<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.ico' width='16' height='16' alt=''>";
+echo "</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.ico' width='16' height='16' alt=''>";
+echo "</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.ico' width='16' height='16' alt=''>";
+echo "</a>";
+
+echo "\n\t</p>\n</td>";
+
+// Lagebezeichnung Mit Hausnummer (Adresse)
+// Analog zu alkisfsnachw.php, Kommentare siehe dort
+$sql ="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung ";
+$sql.="FROM alkis_beziehungen v ";
+$sql.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id "; // Strassennamen JOIN
+$sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde ";
+$sql.="AND l.lage=s.lage ";
+$sql.="WHERE v.beziehung_von= $1 "; // id FS";
+$sql.="AND v.beziehungsart='weistAuf' ";
+$sql.="ORDER BY l.gemeinde, l.lage, l.hausnummer;";
+$v = array($gmlid);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {
+	echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer.</p>";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+$j=0;
+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' ";
+			echo "href='javascript:imFenster(\"alkislage.php?gkz=".$gkz."&amp;ltyp=m&amp;gmlid=".$row["gml_id"]."\")'>Lage ";
+			echo "<img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''></a>";
+		echo "\n\t\t</p>\n\t</td>";
+	echo "\n</tr>";
+	$j++;
+}
+echo "\n</table>\n";
+
+// Flurstuecksflaeche
+echo "\n<p class='fsd'>Flurst&uuml;cksfl&auml;che: <b>".$flae."</b></p>\n";
+
+// *** G R U N D B U C H ***
+echo "\n<h2><img src='ico/Grundbuch_zu.ico' width='16' height='16' alt=''> Grundbuch</h2>";
+// ALKIS: FS --> bfs --> GS --> bsb --> GB.
+$sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, ";
+$sql.="s.gml_id AS s_gml, s.buchungsart, s.laufendenummer, s.zaehler, s.nenner, ";
+$sql.="z.bezeichnung, a.bezeichner AS bart ";  // stelle -> amtsgericht
+$sql.="FROM alkis_beziehungen bfs "; // Bez Flurst.- Stelle.
+$sql.="JOIN ax_buchungsstelle s ON bfs.beziehung_zu=s.gml_id ";
+$sql.="JOIN alkis_beziehungen bsb ON s.gml_id=bsb.beziehung_von "; // Bez. Stelle - Blatt
+$sql.="JOIN ax_buchungsblatt b ON bsb.beziehung_zu=b.gml_id ";
+$sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk ";
+$sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert ";
+$sql.="WHERE bfs.beziehung_von= $1 ";
+$sql.="AND bfs.beziehungsart='istGebucht' ";
+$sql.="AND bsb.beziehungsart='istBestandteilVon' ";
+$sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;";
+
+$v = array($gmlid);
+$resg = pg_prepare("", $sql);
+$resg = pg_execute("", $v);
+if (!$resg) {
+	echo "\n<p class='err'>Keine Buchungen.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+while($rowg = pg_fetch_array($resg)) {
+	$beznam=$rowg["bezeichnung"];
+	echo "\n<hr>\n<table class='outer'>";
+	echo "\n<tr>";
+	echo "\n<td>";
+
+		$blattkey=$rowg["blattart"];
+		$blattart=blattart($blattkey);
+		if ($blattkey == 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'>".$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>";
+
+		if ($rowg["zahler"] <> "") {
+			echo "\n<p class='ant'>".$rowg["zahler"]."/".$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.ico' width='16' height='16' alt=''>";
+			echo "</a>";
+		echo "\n\t</p>";
+	echo "\n</td>";
+	echo "\n</tr>";
+	echo "\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.ico' width='16' height='16' alt=''> Angaben zum Eigentum</h3>\n";
+
+		// Ausgabe Name in Function
+		// ToDo: Link in Function auch umstellen auf (optional) "javascript:imFenster"
+		//       oder base_ / target="_blank"
+		$n = eigentuemer($con, $rowg["gml_id"], false, "imFenster"); // ohne Adressen
+
+		if ($n == 0) { // keine Namensnummer, 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");
+		}
+	}
+}
+
+?>
+</body>
+</html>
Index: /trunk/info/info/alkis/alkisbestnw.php
===================================================================
--- /trunk/info/info/alkis/alkisbestnw.php	(revision 219)
+++ /trunk/info/info/alkis/alkisbestnw.php	(revision 219)
@@ -0,0 +1,488 @@
+<?php
+/*	Modul: alkisbestnw.php
+
+	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+	Bestandsnachweis fuer ein Grundbuch aus ALKIS PostNAS
+
+	Version:
+	17.11.2011  Parameter der Functions geÃ€ndert
+	22.11.2011  Feldname land in ax_buchungsblattbezirk geÃ€ndert
+	30.11.2011  import_request_variables
+	24.07.2012  Export CSV
+
+	ToDo:
+	Zahler fuer Anzahl GB und FS in der Liste (ausgeben wenn > 10)
+*/
+session_start();
+import_request_variables("G");
+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>
+<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">
+	<title>ALKIS Bestandsnachweis</title>
+	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
+	<link rel="shortcut icon" type="image/x-icon" href="ico/Grundbuch.ico">
+	<script type="text/javascript">
+	function ALKISexportGB() {window.open(<?php echo "'alkisgbexp.php?gkz=".$gkz."&gmlid=".$gmlid."'"; ?>);}
+	function ALKISexportFS() {window.open(<?php echo "'alkisgbfsexp.php?gkz=".$gkz."&gmlid=".$gmlid."'"; ?>);}
+	</script>
+	<style type='text/css' media='print'>
+		.noprint {visibility: hidden;}
+	</style>
+</head>
+<body>
+<?php
+$con = pg_connect("host=".$dbhost." port=".$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
+
+// G R U N D B U C H
+// Direkter JOIN zwischen den "ax_buchungsblattbezirk" und "ax_dienststelle".
+// Ueber Feld "gehoertzu|ax_dienststelle_schluessel|land" und "stelle".
+//	Bei JOIN ueber alkis_beziehungen entgegen Dokumentation keine Verbindung gefunden.
+$sql ="SELECT g.gml_id, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung AS nr, g.blattart, "; // GB-Blatt
+$sql.="b.gml_id, b.bezirk, b.bezeichnung AS beznam, "; // Bezirk
+$sql.="a.gml_id, a.land, a.bezeichnung, a.stelle, a.stellenart "; // Amtsgericht
+$sql.="FROM ax_buchungsblatt g ";
+$sql.="LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk ";  // BBZ
+//$sql.="LEFT JOIN ax_dienststelle a ON b.\"gehoertzu|ax_dienststelle_schluessel|land\"=a.land AND b.stelle=a.stelle ";
+$sql.="LEFT JOIN ax_dienststelle a ON b.land = a.land AND b.stelle = a.stelle ";
+$sql.="WHERE g.gml_id= $1 ";
+$sql.="AND a.stellenart=1000;"; // Amtsgericht
+
+$v = array($gmlid);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+
+if (!$res) {
+	echo "<p class='err'>Fehler bei Grundbuchdaten.</p>";
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+if ($row = pg_fetch_array($res)) {
+	$blattkey=$row["blattart"]; // Schluessel
+	$blattart=blattart($blattkey);
+	echo "<p class='gbkennz'>ALKIS Bestand ".$row["bezirk"]." - ".$row["nr"]."&nbsp;</p>\n"; // Balken
+	echo "\n<h2><img src='ico/Grundbuch.ico' width='16' height='16' alt=''> Grundbuch</h2>";
+	echo "\n<table class='outer'>\n<tr>\n\t<td>"; // Kennzeichen im Rahmen
+		if ($blattkey == 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'>".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>";
+}
+
+if ($blattkey == 5000) { // fikt. Blatt
+	echo "\n<p>Keine Angaben zum Eigentum bei fiktivem Blatt.</p>\n";
+} else { // E I G E N T U E M E R
+	echo "\n<h3><img src='ico/Eigentuemer_2.ico' width='16' height='16' alt=''> Angaben zum Eigentum</h3>\n";
+	$n = eigentuemer($con, $gmlid, true, ""); // MIT Adressen.
+	if ($n == 0) { // keine Namensnummer, 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");
+	}
+}
+
+// Vorab pruefen, ob Sonderfall "Rechte an .." vorliegt.
+if ($blattkey == 1000) { // Grundbuchblatt
+	$sql ="SELECT count(z.laufendenummer) AS anzahl ";
+	$sql.="FROM alkis_beziehungen v ";
+	$sql.="JOIN ax_buchungsstelle s ON v.beziehung_von=s.gml_id "; // Blatt
+	$sql.="JOIN alkis_beziehungen x ON x.beziehung_von=s.gml_id "; 
+	$sql.="JOIN ax_buchungsstelle z ON x.beziehung_zu=z.gml_id "; // andere B-Stelle
+	$sql.="WHERE v.beziehung_zu= $1 AND v.beziehungsart='istBestandteilVon' AND (x.beziehungsart='an' OR x.beziehungsart='zu');";
+	$v=array($gmlid);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) echo "<p class='err'>Fehler bei Suche nach Buchungen.</p>\n";
+	$row=pg_fetch_array($res);
+	$anz=$row["anzahl"];
+	//echo "<p>Zeilen : ".$anz." zu Blattart ".$blattkey."</p>";
+} else { // 2000: Katasterblatt, 3000: Pseudoblatt, 5000: Fiktives Blatt
+	$anz=0;
+}
+if ($anz > 0) {
+	echo "\n<hr>\n\n<h3><img src='ico/Flurstueck.ico' width='16' height='16' alt=''> Rechte und Flurst&uuml;cke</h3>";
+	echo "\n<table class='fs'>";
+	echo "\n<tr>"; // 2 Kopfzeilen
+		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>";
+} else {
+	echo "\n<hr>\n\n<h3><img src='ico/Flurstueck.ico' width='16' height='16' alt=''> Flurst&uuml;cke</h3>";
+	echo "\n<table class='fs'>";
+}
+
+echo "\n<tr>";
+	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' 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>";
+
+// Blatt ->  B u c h u n g s s t e l l e
+// ax_buchungsblatt <istBestandteilVon< ax_buchungsstelle 
+$sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer AS lfd, s.beschreibungdesumfangsderbuchung AS udb, ";
+$sql.="s.zaehler, s.nenner, s.nummerimaufteilungsplan AS nrap, s.beschreibungdessondereigentums AS sond, b.bezeichner as bart ";
+$sql.="FROM ax_buchungsstelle s ";
+$sql.="JOIN alkis_beziehungen v ON s.gml_id=v.beziehung_von "; 
+$sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart = b.wert ";
+$sql.="WHERE v.beziehung_zu= $1 AND v.beziehungsart='istBestandteilVon' ";
+$sql.="ORDER BY s.laufendenummer;";
+
+$v=array($gmlid);
+$res=pg_prepare("", $sql);
+$res=pg_execute("", $v);
+
+if (!$res) {
+	echo "<p class='err'>Fehler bei Buchung.</p>\n";
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+$i=0;
+while($row = pg_fetch_array($res)) {
+	$lfdnr  = $row["lfd"];
+	$bvnr   = str_pad($lfdnr, 4, "0", STR_PAD_LEFT);
+	$gml_bs = $row["gml_id"]; // id der buchungsstelle
+	$ba     = $row["bart"]; // Buchungsart aus Schluesseltabelle
+
+	if ($row["zaehler"] == "") {
+		$anteil = "";
+	} else {
+		$anteil = $row["zaehler"]."/".$row["nenner"];
+	}
+	// 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
+
+	if ($j == 0) { //  k e i n e  Flurstuecke gefunden (Miteigentumsnteil usw.)
+		// Bei "normalen" Grundstuecken wurden Flurstuecksdaten gefunden und ausgegeben.
+		// Bei Miteigentumsanteil, Erbbaurecht usw. muss nach weiteren Buchungsstellen gesucht werden:
+		//  Buchungsstelle >an/zu> (andere)Buchungsstelle >istBestandTeilVon>  "FiktivesBlatt (ohne) Eigentuemer"
+
+		// andere Buchungsstellen
+		//  ax_buchungsstelle  >zu>  ax_buchungsstelle (des gleichen Blattes)
+		//  ax_buchungsstelle  >an>  ax_buchungsstelle (anderes Blatt, z.B Erbbaurecht an)
+
+		// aktuelles Blatt (herrschendes GB) hat Recht "an" fiktives Blatt (dienendes GB-Blatt)
+		// a n d e r e  Buchungsstelle
+		$sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer AS lfd, s.beschreibungdesumfangsderbuchung AS udb, ";
+		$sql.="v.beziehungsart, s.nummerimaufteilungsplan AS nrap, s.beschreibungdessondereigentums AS sond, b.bezeichner AS bart ";
+		$sql.="FROM ax_buchungsstelle s ";
+		$sql.="JOIN alkis_beziehungen v ON s.gml_id=v.beziehung_zu "; 
+		$sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart = b.wert ";
+		$sql.="WHERE v.beziehung_von= $1 "; // id buchungsstelle (fiktives Blatt)
+		$sql.="AND (v.beziehungsart='an' OR v.beziehungsart='zu') ";
+		$sql.="ORDER BY s.laufendenummer;";
+		$v=array($gml_bs);
+		$resan=pg_prepare("", $sql);
+		$resan=pg_execute("", $v);
+		//$resan=pg_query($con,$sql);
+		if (!$resan) {
+			echo "<p class='err'>Fehler bei 'andere Buchungsstelle'.</p>\n";
+			if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";}
+		}
+		$a=0; // count: andere BS
+		$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
+
+			// 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 ";
+			$sql.="FROM ax_buchungsblatt  b ";
+			$sql.="JOIN alkis_beziehungen v ON b.gml_id=v.beziehung_zu ";
+			$sql.="LEFT JOIN ax_buchungsblattbezirk z ON b.land=z.land AND b.bezirk=z.bezirk ";
+			$sql.="WHERE v.beziehung_von= $1 ";
+			$sql.="AND v.beziehungsart='istBestandteilVon' ";
+			$sql.="ORDER BY b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
+			$v=array($gml_bsan);
+			$fbres=pg_prepare("", $sql);
+			$fbres=pg_execute("", $v);
+			//$fbres=pg_query($con,$sql);
+			if (!$fbres) {
+				echo "<p class='err'>Fehler bei fiktivem Blatt.</p>\n";
+				if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";}			
+			}
+			$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"];
+				$b++;
+			}
+			if ($b != 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>";
+					if($bvnr == $altbvnr) {	// gleiches Grundstueck
+						echo "&nbsp;"; // 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");}
+						$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");
+					}
+
+				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'>".$rowan["beziehungsart"];
+					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.ico' width='16' height='16' alt=''></a></p>";
+				echo "</td>";
+			echo "\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 = Anzahl der FS
+		   		   
+			// +++ Gibt es ueberhaupt 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>";
+			}
+			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>";
+			}
+			$a++;
+		}
+		if ($a == 0) {
+			echo "\n<tr>";
+				echo "\n\t<td><span class='wichtig'>".$bvnr."</span>";
+				if ($idanzeige) {
+					linkgml($gkz, $gml_bs, "Buchungsstelle");
+				}
+				echo "</td>";
+				echo "\n\t<td colspan=7>";
+					echo "<p class='warn'>Flurst&uuml;cke zu ".$bvnr." nicht im Datenbestand.</p>";
+				echo "</td>";
+			echo "\n</tr>";
+		}
+	}
+	$i++; 
+	if ($row["nrap"] != "") { // Nummer im Aufteilungsplan
+		echo "\n<tr>";
+			echo "\n\t<td class='nrap' colspan=8>Nummer <span class='wichtig'>".$row["nrap"]."</span> im Aufteilungsplan.</td>";
+		echo "\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>";
+	}
+} // Ende Buchungsstelle
+echo "\n</table>";
+
+if ($i == 0) {
+	echo "\n<p class='err'>Keine Buchung gefunden.</p>\n";
+	linkgml($gkz, $gmlid, "Buchungsblatt");
+}
+	// b e r e c h t i g t e  Grundbuecher (Buchungsblatt) 
+	// mit Recht "an"/"zu" dem aktuellen fiktiven GB
+
+	// bf              vf          sf       vs   sb                 vb            bb
+	// Blatt   <istBestandteilVon< Stelle  <an<  Stelle      >istBestandteilVon>  Blatt
+	// Fiktiv                      Fiktiv  <zu<  Berechtigt                       Berechtigt
+	$sql ="SELECT bb.gml_id, bb.land, bb.bezirk, bb.buchungsblattnummermitbuchstabenerweiterung AS blatt, bb.blattart, ";
+	$sql.="vs.beziehungsart, ";
+	$sql.="sb.gml_id AS gml_s, sb.laufendenummer AS lfdnr, sb.buchungsart, ba.bezeichner AS bart, ";  // berechtigte Buchungsstelle
+	$sql.=" bz.bezeichnung AS beznam, ag.bezeichnung, ag.stelle, ag.stellenart "; // Bezirk, Amtsgericht
+	$sql.="FROM alkis_beziehungen vf ";	// Verbindung fiktiv
+	$sql.="JOIN ax_buchungsstelle sf ON sf.gml_id = vf.beziehung_von ";	// Stelle fiktiv
+	$sql.="JOIN alkis_beziehungen vs ON sf.gml_id = vs.beziehung_zu ";	// Verbindung Stellen
+	$sql.="JOIN ax_buchungsstelle sb ON sb.gml_id = vs.beziehung_von ";	// Stelle berechtigt
+	$sql.="JOIN alkis_beziehungen vb ON sb.gml_id = vb.beziehung_von ";	// Verbindung berechtigt
+	$sql.="JOIN ax_buchungsblatt  bb ON bb.gml_id = vb.beziehung_zu ";	// Blatt berechtigt
+	$sql.="LEFT JOIN ax_buchungsblattbezirk bz ON bb.land = bz.land AND bb.bezirk = bz.bezirk ";
+//	$sql.="LEFT JOIN ax_dienststelle ag ON bz.\"gehoertzu|ax_dienststelle_schluessel|land\" = ag.land AND bz.stelle=ag.stelle ";
+	$sql.="LEFT JOIN ax_dienststelle ag ON bz.land = ag.land AND bz.stelle=ag.stelle ";	
+	$sql.="LEFT JOIN ax_buchungsstelle_buchungsart ba ON sb.buchungsart = ba.wert ";
+	$sql.="WHERE vf.beziehung_zu= $1 ";
+	$sql.="AND  vf.beziehungsart='istBestandteilVon' ";
+	$sql.="AND (vs.beziehungsart='an' OR vs.beziehungsart='zu') ";
+	$sql.="AND  vb.beziehungsart= 'istBestandteilVon' ";
+	$sql.="ORDER BY bb.land, bb.bezirk, bb.buchungsblattnummermitbuchstabenerweiterung;";
+
+	$v = array($gmlid);
+	$resb = pg_prepare("", $sql);
+	$resb = pg_execute("", $v);
+	if (!$resb) {
+		echo "<p class='err'>Fehler bei 'andere Berechtigte Bl&auml;tter:'<br>".$sql."</p>\n";
+		if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+	}
+	$b=0; // count: Blaetter
+	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.ico' width='16' height='16' alt=''> Berechtigte Grundb&uuml;cher</h3>\n";
+			echo "\n<table class='outer'>";
+			echo "\n<tr>"; // Tabelle Kopf
+				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'>Blatt</td>";
+				echo "\n\t<td class='head'>BVNR</td>"; // Neu
+				echo "\n\t<td class='head'>Buchungsart</td>"; // Neu
+				echo "\n\t<td class='head nwlink noprint'>Weitere Auskunft</td>";
+			echo "\n</tr>";
+		}
+		$gml_b=$rowb["gml_id"];		// id des berechtigten Blattes
+		$gml_s=$rowb["gml_s"];		// id der berechtigten Buchungsstelle
+		$blart=$rowb["blattart"];
+		$buch=$rowb["buchungsart"]; // Buchungsart Stelle berechtigt
+		$bart=$rowb["bart"];			// Buchungsart entschluesselt
+		$lfdnr=$rowb["lfdnr"];
+		$bvnr   = str_pad($lfdnr, 4, "0", STR_PAD_LEFT);
+
+		echo "\n<tr>";
+			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");}
+			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'>";
+			//	echo $rowb["beziehungsart"]." "; // "an"/"zu" ?
+				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 ".$rowb["beziehungsart"]." ".$blattart."'>";
+					echo blattart($blart);
+					echo " \n\t\t\t<img src='ico/GBBlatt_link.ico' width='16' height='16' alt=''></a>";
+				echo "\n\t\t</p>";
+			echo "</td>";
+		echo "\n</tr>";
+		$b++;
+	}
+	if ($b == 0) {
+		if ($blattkey > 2000 ) { // Warnung nicht bei Grundbuchblatt 1000 und Katasterblatt 2000
+			echo "<p class='err'>Keine berechtigten Bl&auml;tter zu ".$blattart." (".$blattkey.") gefunden.</p>";
+		}
+	} else {
+		echo "\n</table>";
+	}
+
+?>
+
+<form action=''>
+	<div class='buttonbereich noprint'>
+	<hr>
+		<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.ico" width="16" height="16" alt="zur&uuml;ck" /></a>&nbsp;
+		<a title="Drucken" href='javascript:window.print()'><img src="ico/print.ico" width="16" height="16" alt="Drucken" /></a>&nbsp;
+<!-- 	<a title="Export Flurst&uuml;cksdaten als CSV" href='javascript:ALKISexportFS()'><img src="ico/download_fs.ico" width="32" height="16" alt="Export" /></a>&nbsp; -->
+		<a title="Export Grundbuchdaten als CSV" href='javascript:ALKISexportGB()'><img src="ico/download_gb.ico" width="32" height="16" alt="Export" /></a>&nbsp;
+<!--	<a title="Seite schlie&szlig;en" href="javascript:window.close()"><img src="ico/close.ico" width="16" height="16" alt="Ende" /></a>	-->
+	</div>
+</form>
+
+<?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>
+
+</body>
+</html>
Index: /trunk/info/info/alkis/alkisausk.php
===================================================================
--- /trunk/info/info/alkis/alkisausk.php	(revision 219)
+++ /trunk/info/info/alkis/alkisausk.php	(revision 219)
@@ -0,0 +1,277 @@
+<?php
+/*	alkisausk.php
+
+	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+	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.
+	Siehe auch alkisinlayausk.php - eine Variante für den Einbau in einen iFrame
+
+	Version:
+	17.11.2011  Link FS-Historie, Parameter der Functions geändert
+	30.11.2011  import_request_variables
+*/
+session_start();
+import_request_variables("G");
+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>
+<head>
+	<meta name="author" content="F. Jaeger krz" >
+	<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/Flurstueck.ico">
+	<title>ALKIS-Auskunft</title>
+	<style type='text/css' media='print'>
+		.noprint { visibility: hidden;}
+	</style>
+</head>
+<body>
+<?php
+$con = pg_connect("host=".$dbhost." port=".$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+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.="FROM ax_flurstueck f ";
+$sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
+$sql.="WHERE f.gml_id= $1;";
+// Weiter joinen: g.stelle -> ax_dienststelle "Katasteramt"
+
+$v = array($gmlid);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {
+	echo "\n<p class='err'>Fehler bei Flurstuecksdaten.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+
+if ($row = pg_fetch_array($res)) {
+	$gemkname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
+	$gmkgnr=$row["gemarkungsnummer"];
+	$flurnummer=$row["flurnummer"];
+	$flstnummer=$row["zaehler"];
+	$nenner=$row["nenner"];
+	if ($nenner > 0) $flstnummer.="/".$nenner; // BruchNr
+	$flae=$row["amtlicheflaeche"];
+	$flae=number_format($flae,0,",",".") . " m&#178;";
+} else {
+	echo "<p class='err'>Kein Treffer fuer gml_id=".$gmlid."</p>";
+}
+
+// Balken
+echo "\n<p class='fsausk'>ALKIS-Auskunft Flurst&uuml;ck-&Uuml;bersicht ".$gmkgnr."-".$flurnummer."-".$flstnummer."</p>";
+
+echo "\n<table class='outer'>\n<tr><td>";
+	// linke Seite
+	echo "\n<h1>ALKIS-Auskunft</h1>";
+	echo "\n<h2><img src='ico/Flurstueck.ico' 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"); }
+echo "\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.ico' width='16' height='16' alt=''>";
+echo "</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.ico' width='16' height='16' alt=''>";
+echo "</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.ico' width='16' height='16' alt=''>";
+echo "</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.ico' width='16' height='16' alt=''>";
+echo "</a>";
+
+echo "\n\t</p>\n</td>";
+
+// Lagebezeichnung Mit Hausnummer (Adresse)
+// Analog zu alkisfsnachw.php, Kommentare siehe dort
+$sql ="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung ";
+$sql.="FROM alkis_beziehungen v ";
+$sql.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id "; // Strassennamen JOIN
+$sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde ";
+$sql.="AND l.lage = s.lage ";
+$sql.="WHERE v.beziehung_von= $1 "; // id FS";
+$sql.="AND v.beziehungsart='weistAuf' ";
+$sql.="ORDER BY l.gemeinde, l.lage, l.hausnummer;";
+$v = array($gmlid);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {
+	echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer.</p>";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+$j=0;
+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.ico' width='16' height='16' alt=''></a>";
+		echo "\n\t\t</p>\n\t</td>";
+	echo "\n</tr>";
+	$j++;
+}
+echo "\n</tr>\n</table>\n";
+
+// Flurstuecksflaeche
+echo "\n<p class='fsd'>Flurst&uuml;cksfl&auml;che: <b>".$flae."</b></p>\n";
+
+// *** G R U N D B U C H ***
+echo "\n<h2><img src='ico/Grundbuch_zu.ico' width='16' height='16' alt=''> Grundbuch</h2>";
+// ALKIS: FS --> bfs --> GS --> bsb --> GB.
+$sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, ";
+$sql.="s.gml_id AS s_gml, s.buchungsart, s.laufendenummer, s.zaehler, s.nenner, ";
+$sql.="z.bezeichnung, a.bezeichner AS bart ";  // stelle -> amtsgericht
+$sql.="FROM alkis_beziehungen bfs "; // Bez Flurst.- Stelle.
+$sql.="JOIN ax_buchungsstelle s ON bfs.beziehung_zu=s.gml_id ";
+$sql.="JOIN alkis_beziehungen bsb ON s.gml_id=bsb.beziehung_von "; // Bez. Stelle - Blatt
+$sql.="JOIN ax_buchungsblatt b ON bsb.beziehung_zu=b.gml_id ";
+$sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk ";
+$sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert ";
+$sql.="WHERE bfs.beziehung_von= $1 ";
+$sql.="AND bfs.beziehungsart='istGebucht' ";
+$sql.="AND bsb.beziehungsart='istBestandteilVon' ";
+$sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;";
+
+$v = array($gmlid);
+$resg = pg_prepare("", $sql);
+$resg = pg_execute("", $v);
+if (!$resg) {
+	echo "\n<p class='err'>Keine Buchungen.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+
+$j=0; // Z.Blatt
+while($rowg = pg_fetch_array($resg)) {
+	$beznam=$rowg["bezeichnung"];
+	echo "\n<hr>\n<table class='outer'>";
+	echo "\n<tr>";
+	echo "\n<td>";
+
+		$blattkey=$rowg["blattart"];
+		$blattart=blattart($blattkey);
+		if ($blattkey == 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'>".$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>";
+
+		if ($rowg["zahler"] <> "") {
+			echo "\n<p class='ant'>".$rowg["zahler"]."/".$rowg["nenner"]."&nbsp;Anteil am Flurst&uuml;ck</p>";
+		}
+		echo "\n</td>\n<td>";
+		if ($idanzeige) {linkgml($gkz, $rowg[0], "Buchungsblatt");}
+		echo "\n\t<p class='nwlink'>weitere Auskunft:<br>";
+			echo "\n\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$rowg[0];
+				if ($idanzeige) {echo "&amp;id=j";}
+				if ($showkey)   {echo "&amp;showkey=j";}
+				echo "' title='Grundbuchnachweis'>";
+				echo $blattart;
+				echo " <img src='ico/GBBlatt_link.ico' width='16' height='16' alt=''>";
+			echo "</a>";
+		echo "\n\t</p>";
+	echo "\n</td>";
+	echo "\n</tr>";
+	echo "\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.ico' width='16' height='16' alt=''> Angaben zum Eigentum</h3>\n";
+
+		// Ausgabe Name in Function
+		$n = eigentuemer($con, $rowg["gml_id"], false); // ohne Adressen
+
+		if ($n == 0) { // keine Namensnummer, 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");
+		}
+	}
+	$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
+}
+echo "\n<hr>";
+
+footer($gmlid, $_SERVER['PHP_SELF']."?", "");
+
+?>
+</body>
+</html>
Index: /trunk/info/info/alkis/alkisnamstruk.php
===================================================================
--- /trunk/info/info/alkis/alkisnamstruk.php	(revision 219)
+++ /trunk/info/info/alkis/alkisnamstruk.php	(revision 219)
@@ -0,0 +1,247 @@
+<?php
+/*	Modul: alkisnamstruk.php
+
+	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+	Namens- und Adressdaten fuer einen Eigentuemer aus ALKIS PostNAS
+
+	Version:
+	02.11.2011  $sqla, $sqlg, Meldungen mit $debug steuern
+	17.11.2011  Parameter der Functions geÃ€ndert
+	30.11.2011  import_request_variables
+
+	ToDo: 
+	Sortierung der GrundbÃŒcher zum Namen
+*/
+session_start();
+import_request_variables("G");
+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>
+<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">
+	<title>ALKIS Person und Adresse</title>
+	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
+	<link rel="shortcut icon" type="image/x-icon" href="ico/Eigentuemer_2.ico">
+	<style type='text/css' media='print'>
+		.noprint {visibility: hidden;}
+	</style>
+</head>
+<body>
+<?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.ico' width='16' height='16' alt=''> Person</h2>\n";
+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;";
+
+$v = array($gmlid);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+
+if (!$res) {echo "\n<p class='err'>Fehler bei Zugriff auf Namensnummer</p>\n";}
+if ($idanzeige) { linkgml($gkz, $gmlid, "Person"); }
+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");
+	$anr=anrede($row["anrede"]);
+	$aka=$row["akademischergrad"];
+
+	echo "<table>\n";
+		echo "\t<tr><td class='nhd'>Anrede:</td><td class='nam'>".$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."</td></tr>\n";
+		echo "\t<tr><td class='nhd'>Geburtsname:</td><td class='nam'>".$geb."</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'>".$row["namensbestandteil"]."&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";
+
+	// A d r e s s e
+	echo "\n<h3><img src='ico/Strasse_mit_Haus.ico' width='16' height='16' alt=''> Adresse</h3>\n";
+	$sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland ";
+	$sqla.="FROM ax_anschrift a ";
+	$sqla.="JOIN alkis_beziehungen b ON a.gml_id=b.beziehung_zu ";
+	$sqla.="WHERE b.beziehung_von= $1 ";
+	$sqla.="AND b.beziehungsart='hat';"; //"ORDER  BY ?;";
+
+	$v = array($gmlid);
+	$resa = pg_prepare("", $sqla);
+	$resa = pg_execute("", $v);
+
+	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";
+		}
+	}
+
+	$j=0;
+	while($rowa = pg_fetch_array($resa)) {
+		$gmla=$rowa["gml_id"];
+		$plz=$rowa["plz"];
+		$ort=htmlentities($rowa["ort_post"], ENT_QUOTES, "UTF-8");
+		$str=htmlentities($rowa["strasse"], ENT_QUOTES, "UTF-8");
+		$hsnr=$rowa["hausnummer"];
+		$land=htmlentities($rowa["bestimmungsland"], ENT_QUOTES, "UTF-8");
+		if ($idanzeige) { linkgml($gkz, $gmla, "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";
+		$j++;
+
+		// Name und Adresse Kompakt (im Rahmen)
+		// Alles was man fuer ein Anschreiben braucht
+		echo "<img src='ico/Namen.ico' width='16' height='16' alt='Brief' title='Anschrift'>"; // Symbol "Brief"
+		echo "\n<div class='adr' title='Anschrift'>".$anr." ".$aka." ".$vor." ".$nam."<br>";
+		echo "\n".$str." ".$hsnr."<br>";
+		echo "\n".$plz." ".$ort."</div>";
+	}
+	if ($j == 0) {echo "\n<p class='err'>Keine Adressen.</p>\n";}
+
+	// *** G R U N D B U C H ***
+	echo "\n<hr>\n<h3><img src='ico/Grundbuch_zu.ico' width='16' height='16' alt=''> Grundb&uuml;cher</h3>\n";
+	// person <benennt< namensnummer >istBestandteilVon>                Buchungsblatt
+	//                               >bestehtAusRechtsverhaeltnissenZu> namensnummer   (Nebenzweig/SonderfÃ€lle?)
+
+	$sqlg ="SELECT n.gml_id AS gml_n, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, ";
+	$sqlg.="g.gml_id AS gml_g, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung as nr, g.blattart, ";
+	$sqlg.="b.bezeichnung AS beznam ";
+	$sqlg.="FROM alkis_beziehungen bpn ";
+	$sqlg.="JOIN ax_namensnummer n ON bpn.beziehung_von=n.gml_id ";
+	$sqlg.="JOIN alkis_beziehungen bng ON n.gml_id=bng.beziehung_von ";
+	$sqlg.="JOIN ax_buchungsblatt g ON bng.beziehung_zu=g.gml_id ";
+	$sqlg.="LEFT JOIN ax_buchungsblattbezirk b ON g.land = b.land AND g.bezirk = b.bezirk ";
+	$sqlg.="WHERE bpn.beziehung_zu= $1 ";
+	$sqlg.="AND bpn.beziehungsart='benennt' AND bng.beziehungsart='istBestandteilVon' ";
+	$sqlg.="ORDER BY g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung;";
+	// buchungsblatt... mal mit und mal ohne fuehrende Nullen, bringt die Sortierung durcheinander
+
+	$v = array($gmlid);
+	$resg = pg_prepare("", $sqlg);
+	$resg = pg_execute("", $v);
+
+	if (!$resg) {
+		echo "\n<p class='err'>Fehler bei Grundbuch</p>\n";
+		if ($debug > 2) {
+			echo "\n<p class='err'>SQL=".$sqlg."</p>\n";
+		}
+	}
+	$j=0;
+	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>";
+
+	while($rowg = pg_fetch_array($resg)) {
+		$gmln=$rowg["gml_n"];
+		$gmlg=$rowg["gml_g"];
+		$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>";
+
+			echo "\n\t<td class='gbl'>"; // Blattart
+				if ($showkey) {
+					echo "<span class='key'>".$blattkey."</span> ";
+				}
+				echo $blattart;
+			echo "</td>";
+
+			echo "\n\t<td class='gbl'>"; // Blatt
+				echo "<span class='wichtig'>".$rowg["nr"]."</span>";
+				if ($idanzeige) {
+					linkgml($gkz, $gmlg, "Grundbuchblatt");
+				}
+			echo "</td>";
+
+			echo "\n\t<td class='gbl'>"; // Namensnummer
+				If ($namnum == "") {
+					echo "&nbsp;";
+				} else {
+					echo $namnum;
+				}
+				if ($idanzeige) {
+					linkgml($gkz, $gmln, "Namensnummer"); 
+				}
+			echo "</td>";
+
+			echo "\n\t<td class='gbl'>"; // Anteil
+				If ($zae == "") {
+					echo "&nbsp;";
+				} else {
+					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.ico' width='16' height='16' alt=''></a>";
+				echo "\n\t\t</p>";
+			echo "\n\t</td>";
+
+		echo "\n</tr>";
+		// +++ >bestehtAusRechtsverhaeltnissenZu> namensnummer ??
+		//     z.B. eine Namennummer "Erbengemeinschaft" zeigt auf Namensnummern mit EigentÃŒmern
+		$i++;
+	}
+	echo "</table>";
+	if ($i == 0) {echo "\n<p class='err'>Kein Grundbuch.</p>\n";}
+} else {
+	echo "\n\t<p class='err'>Fehler! Kein Treffer f&uuml;r\n\t<a target='_blank' href='alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gmlid."'>".$gmlid."</a>\n</p>\n\n";
+}
+?>
+
+<form action=''>
+	<div class='buttonbereich noprint'>
+	<hr>
+		<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.ico" width="16" height="16" alt="zur&uuml;ck" /></a>&nbsp;
+		<a title="Drucken" href='javascript:window.print()'><img src="ico/print.ico" width="16" height="16" alt="Drucken" /></a>&nbsp;
+<!--	<a title="Export als CSV" href='javascript:ALKISexport()'><img src="ico/download.ico" width="16" height="16" alt="Export" /></a>&nbsp;
+		<a title="Seite schlie&szlig;en" href="javascript:window.close()"><img src="ico/close.ico" width="16" height="16" alt="Ende" /></a>	-->
+	</div>
+</form>
+
+<?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>
+
+</body>
+</html>
Index: /trunk/info/info/alkis/alkisgbexp.php
===================================================================
--- /trunk/info/info/alkis/alkisgbexp.php	(revision 219)
+++ /trunk/info/info/alkis/alkisgbexp.php	(revision 219)
@@ -0,0 +1,41 @@
+<?php
+/*	Modul alkisgbexp.php
+	CSV-Export von Grundbuch-Daten (Blatt)
+	2012-07-24 krz f.j.
+*/
+import_request_variables("G"); // gmlid
+header('Content-type: application/octet-stream');
+header('Content-Disposition: attachment; filename="alkis_grundbuch_'.$gmlid.'.csv"');
+require_once("alkis_conf_location.php");
+
+// DB-Verbindung
+$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+if (!$con) {exit("Fehler beim Verbinden der DB");}
+pg_set_client_encoding($con, LATIN1); 
+
+// GB-Blatt, Bestand
+$sql ="SELECT g.buchungsblattnummermitbuchstabenerweiterung AS nr, g.blattart, "; // GB-Blatt
+$sql.=" b.bezirk, b.bezeichnung AS beznam, a.land, a.bezeichnung "; 
+$sql.="FROM ax_buchungsblatt g ";
+$sql.="LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk ";  // BBZ
+$sql.="LEFT JOIN ax_dienststelle a ON b.land = a.land AND b.stelle = a.stelle ";
+$sql.="WHERE g.gml_id= $1 AND a.stellenart=1000;"; // Amtsgericht
+$v = array($gmlid);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {exit("Fehler bei Grundbuchdaten");}
+if ($row = pg_fetch_array($res)) {
+	$agland=$row["land"]; // Amtsgericht	
+	$agbez=$row["bezeichnung"];
+	$bezirk=$row["bezirk"]; // Bezirk
+	$beznam=$row["beznam"];
+	$blattnr=$row["nr"]; // Blatt
+	$blattart=$row["blattart"];
+} else {exit("Kein Treffer fuer gml_id=".$gmlid);}
+//if ($blattkey == 5000) { // fikt. Blatt Keine Angaben zum Eigentum
+
+// CSV-Ausgabe
+echo "Land;Amtsgericht;Bezirk;Bezirksname;Blatt;Blattart";
+echo "\n".$agland.";".$agbez.";".$bezirk.";".$beznam.";".$blattnr.";".$blattart;
+exit();
+?>
Index: /trunk/info/info/alkis/alkisgebaeudenw.php
===================================================================
--- /trunk/info/info/alkis/alkisgebaeudenw.php	(revision 219)
+++ /trunk/info/info/alkis/alkisgebaeudenw.php	(revision 219)
@@ -0,0 +1,296 @@
+<?php
+/*	alkisgebaeudenw.php - Gebaeudenachweis
+	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+
+	Version:
+	22.11.2011  Feld ax_gebaeude.description ist entfallen, neue Spalte Zustand
+	30.11.2011
+		Fehlerkorrektur Gebaeude mit mehreren Adressen nicht mehrfach
+		Sonderfall lage aus PostNAS 05 entfernt, import_request_variables
+*/
+session_start();
+import_request_variables("G");
+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>
+<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">
+	<title>ALKIS Geb&auml;udenachweis</title>
+	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
+	<link rel="shortcut icon" type="image/x-icon" href="ico/Haus.ico">
+	<style type='text/css' media='print'>
+		.noprint {visibility: hidden;}
+	</style>
+</head>
+<body>
+<?php
+$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
+
+// Flurstueck
+$sqlf ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, f.zeitpunktderentstehung, ";
+$sqlf.="g.gemarkungsnummer, g.bezeichnung ";
+$sqlf.="FROM ax_flurstueck f ";
+$sqlf.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
+$sqlf.="WHERE f.gml_id= $1;";
+$v = array($gmlid);
+$resf = pg_prepare("", $sqlf);
+$resf = pg_execute("", $v);
+if (!$resf) {
+	echo "\n<p class='err'>Fehler bei Flurst&uuml;cksdaten.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqlf."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+
+if ($rowf = pg_fetch_array($resf)) {
+	$gemkname=htmlentities($rowf["bezeichnung"], ENT_QUOTES, "UTF-8");
+	$gmkgnr=$rowf["gemarkungsnummer"];
+	$flurnummer=$rowf["flurnummer"];
+	$flstnummer=$rowf["zaehler"];
+	$nenner=$rowf["nenner"];
+	if ($nenner > 0) { // BruchNr
+		$flstnummer.="/".$nenner;
+	} 
+	$flstflaeche = $rowf["amtlicheflaeche"] ;
+} else {
+	echo "<p class='err'>Fehler! Kein Treffer fuer gml_id=".$gmlid."</p>";
+}
+
+// Balken
+echo "<p class='geb'>ALKIS Flurst&uuml;ck (Geb&auml;ude) ".$gmkgnr."-".$flurnummer."-".$flstnummer."&nbsp;</p>\n";
+
+echo "\n<h2><img src='ico/Flurstueck.ico' width='16' height='16' alt=''> Flurst&uuml;ck (Geb&auml;ude)</h2>\n";
+
+// 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>";
+		echo "\n\t<tr>";
+			echo "\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.ico' width='16' height='16' alt=''></a>";
+echo "\n\t</p>";
+if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck"); }
+echo "\n\t</td>\n</tr>\n</table>";
+// Ende Seitenkopf
+
+echo "\n<p class='fsd'>Flurst&uuml;cksfl&auml;che: <b>".number_format($flstflaeche,0,",",".") . " m&#178;</b></p>";
+
+echo "\n\n<h3><img src='ico/Haus.ico' 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>";
+
+// G e b a e u d e
+$sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, ";
+$sqlg.="h.bauweise_beschreibung, u.bezeichner, g.zustand, z.bezeichner AS bzustand, ";
+
+// Gebaeudeflaeche komplett auch ausserhalb des FS
+$sqlg.="round(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 ax_gebaeude_bauweise h ON g.bauweise = h.bauweise_id ";
+$sqlg.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert ";
+$sqlg.="LEFT JOIN ax_gebaeude_zustand z ON g.zustand = z.wert ";
+$sqlg.="WHERE f.gml_id= $1 "; // ID des akt. FS
+
+// "within" liefert nur Gebaeude, die komplett im Flurstueck liegen
+// "intersects" liefert ueberlappende Flaechen
+$sqlg.="AND st_intersects(g.wkb_geometry,f.wkb_geometry) = true ";
+
+// RLP: keine Relationen zu Nebengebaeuden:
+// auf Qualifizierung verzichten, sonst werden NebengebÃ€ude nicht angezeigt
+	//$sqlg.="AND (v.beziehungsart='zeigtAuf' OR v.beziehungsart='hat') ";
+$sqlg.="ORDER BY schnittflae DESC;";
+
+$v = array($gmlid);
+$resg = pg_prepare("", $sqlg);
+$resg = pg_execute("", $v);
+if (!$resg) {
+	echo "\n<p class='err'>Keine Geb&auml;ude ermittelt.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqlg."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+$gebnr=0;
+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>";
+	// 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		
+		$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>";}
+			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>";
+			if ($showkey) {echo "<span class='key'>".$rowg["gebaeudefunktion"]."</span>&nbsp;";}
+			echo $rowg["bezeichner"]."</td>";
+
+			echo "\n\t<td>";
+			if ($showkey) {echo "<span class='key'>".$rowg["bauweise"]."</span>&nbsp;";}
+			echo $rowg["bauweise_beschreibung"]."&nbsp;</td>";
+
+			echo "\n\t<td>";
+			if ($showkey) {echo "<span class='key'>".$gzus."</span>&nbsp;";}
+			echo $gzustand."&nbsp;</td>";
+
+			echo "\n\t<td class='nwlink noprint'>";
+
+			// 0 bis N Lagebezeichnungen mit Haus- oder Pseudo-Nummer, alle in ein TD zu EINEM GebÃ€ude
+			// HAUPTgebÃ€ude
+			$sqll ="SELECT 'm' AS ltyp, v.beziehung_zu, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer ";
+			$sqll.="FROM alkis_beziehungen v "; 
+			$sqll.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id ";
+			$sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
+			$sqll.="WHERE v.beziehungsart = 'zeigtAuf' AND v.beziehung_von = $1 ";
+			$sqll.="UNION ";
+			// oder NEBENgebÃ€ude
+			$sqll.="SELECT 'p' AS ltyp, v.beziehung_zu, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer ";
+			$sqll.="FROM alkis_beziehungen v "; 
+			$sqll.="JOIN ax_lagebezeichnungmitpseudonummer l ON v.beziehung_zu=l.gml_id ";
+			$sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
+			$sqll.="WHERE v.beziehungsart = 'hat' AND v.beziehung_von = $1 "; // ID des Hauses"
+		
+			$sqll.="ORDER BY bezeichnung, hausnummer ";
+		
+			$v = array($ggml);
+			$resl = pg_prepare("", $sqll);
+			$resl = pg_execute("", $v);
+			if (!$resl) {
+				echo "\n<p class='err'>Fehler bei Lage mit HsNr.</p>\n";
+				if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sqll."<br>$1 = gml_id = '".$gmlid."'</p>";}
+			}
+			while($rowl = pg_fetch_array($resl)) { // LOOP: Lagezeilen
+				$ltyp=$rowl["ltyp"]; // Lagezeilen-Typ
+				$skey=$rowl["lage"]; // Str.-Schluessel
+				$snam=htmlentities($rowl["bezeichnung"], ENT_QUOTES, "UTF-8"); // -Name
+				$hsnr=$rowl["hausnummer"];
+				$hlfd=$rowl["laufendenummer"];
+				$gmllag=$rowl["beziehung_zu"];
+				if ($ltyp == "p") {
+					$lagetitl="NebengebÃ€ude - Pseudonummer";
+					$lagetxt="Nebengeb&auml;ude Nr. ".$hlfd;
+				} else {
+					$lagetitl="HauptgabÃ€ude - Hausnummer";
+					$lagetxt=$snam."&nbsp;".$hsnr;
+				}
+				echo "\n\t\t<img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''>&nbsp;";
+				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 Lagezeilen m.H.
+
+			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.ico' width='16' height='16' alt=''></a>";
+			echo "\n\t</td>";
+
+		echo "\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>";
+	} 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>";
+	$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>";
+}
+
+?>
+
+<form action=''>
+	<div class='buttonbereich noprint'>
+	<hr>
+		<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.ico" width="16" height="16" alt="zur&uuml;ck" /></a>&nbsp;
+		<a title="Drucken" href='javascript:window.print()'><img src="ico/print.ico" width="16" height="16" alt="Drucken" /></a>&nbsp;
+<!--	<a title="Export als CSV" href='javascript:ALKISexport()'><img src="ico/download.ico" width="16" height="16" alt="Export" /></a>&nbsp;
+		<a title="Seite schlie&szlig;en" href="javascript:window.close()"><img src="ico/close.ico" width="16" height="16" alt="Ende" /></a>	-->
+	</div>
+</form>
+
+<?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>
+
+</body>
+</html>
Index: /trunk/info/info/alkis/alkislage.php
===================================================================
--- /trunk/info/info/alkis/alkislage.php	(revision 219)
+++ /trunk/info/info/alkis/alkislage.php	(revision 219)
@@ -0,0 +1,417 @@
+<?php
+/*	alkislage.php
+
+	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+	Kann die 3 Arten von Lagebezeichnung anzeigen und verbundene Objekte verlinken
+
+	Version:
+	22.11.2011
+		Felder ax_gebaeude.description und .individualname sind entfallen
+		GebÃ€ude als Tabelle
+		Link auf neues Modul "alkishaus". 
+		Sonderfall PostNAS-Vers. 05 entfernt.
+		Kennzeichen im Balken verkÃŒrzt.
+	30.11.2011  import_request_variables
+
+	ToDo:
+	- Entschluesseln Kreis usw.
+	- Das Balken-Kennzeichen noch kompatibel machen mit der Eingabe der Navigation fÃŒr Adresse 
+*/
+session_start();
+import_request_variables("G");
+require_once("alkis_conf_location.php");
+if ($auth == "mapbender") {require_once($mapbender);}
+include("alkisfkt.php");
+switch ($ltyp) {
+	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
+		$tnam = "ax_lagebezeichnungohnehausnummer"; break;
+	default:
+		$ltyp = "m";
+		$tnam = "ax_lagebezeichnungmithausnummer"; break;
+}
+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>
+<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">
+	<title>ALKIS Lagebezeichnung</title>
+	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
+	<link rel="shortcut icon" type="image/x-icon" href="ico/Lage_mit_Haus.ico">
+	<style type='text/css' media='print'>
+		.noprint {visibility: hidden;}
+	</style>
+</head>
+<body>
+<?php
+$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
+
+// L a g e b e z e i c h n u n g
+$sql ="SELECT s.bezeichnung AS snam, k.bezeichnung AS knam, g.bezeichnung AS gnam, l.land, l.regierungsbezirk, l.kreis, l.gemeinde, l.lage, ";
+switch ($ltyp) {
+	case "m": // "Mit HsNr"
+		$sql.="l.hausnummer ";
+	break;
+	case "p": // "mit PseudoNr"
+		$sql.="l.pseudonummer, l.laufendenummer ";
+	break;
+	case "o": //"Ohne HsNr"
+		$sql.="l.unverschluesselt ";
+	break;
+}
+$sql.="FROM ".$tnam." l ";
+// Gemeinde, Kreis, Strasse entschluesseln
+$sql.="LEFT JOIN ax_gemeinde g ON l.land=g.land AND l.regierungsbezirk=g.regierungsbezirk AND l.kreis=g.kreis AND l.gemeinde=g.gemeinde ";
+$sql.="LEFT JOIN ax_kreisregion k ON l.land=k.land AND l.regierungsbezirk=k.regierungsbezirk AND l.kreis=k.kreis ";
+$sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ";
+// ab PostNAS 0.6: Feld "lage" char(5) mit fuehr.Nullen
+$sql.="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 ";
+$sql.="WHERE l.gml_id= $1;";
+
+$v = array($gmlid);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {
+	echo "\n<p class='err'>Fehler bei Lagebezeichnung.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+
+if ($row = pg_fetch_array($res)) {
+	$land =$row["land"];
+	$regbez=$row["regierungsbezirk"];
+	$kreis=$row["kreis"];
+	$knam=$row["knam"];
+	$gem  =$row["gemeinde"];
+	$gnam =$row["gnam"];
+	$lage =$row["lage"]; // Strassenschluessel
+	$snam =$row["snam"]; //Strassennamen
+	$unver=$row["unverschluesselt"]; // Gewanne
+//	$kennz=$land."-".$regbez."-".$kreis."-".$gem."-".$lage."-";
+	$kennz=$gem."-".$lage."-"; // ToDo: Kompatibel machen als Eingabe in in Navigation/Adresse 
+	
+	switch ($ltyp) {
+		case "m": // "Mit HsNr"
+			$hsnr=$row["hausnummer"];
+			$kennz.=$hsnr;
+			$untertitel="Hauptgeb&auml;ude mit Hausnummer";
+			// Balken
+			echo "<p class='lage'>ALKIS Lagebezeichnung mit Hausnummer ".$kennz."&nbsp;</p>\n"; // Balken
+		break;
+		case "p": // "mit PseudoNr"
+			$pseu=$row["pseudonummer"];
+			$lfd=$row["laufendenummer"];
+			$kennz.=$pseu."-".$lfd;
+			$untertitel="NebengebÃ€ude mit laufender Nummer (Lagebezeichnung mit Pseudonummer)";
+			echo "<p class='lage'>ALKIS Lagebezeichnung NebengebÃ€ude ".$kennz."&nbsp;</p>\n"; // Balken
+		break;
+		case "o": //"Ohne HsNr"
+			if ($lage == "") {
+				$kennz=" - ".$unver;
+			} else {
+				$kennz.=$unver;
+			}
+			$untertitel="Stra&szlig;e ohne Hausnummer und/oder Gewanne (unverschl&uuml;sselte Lage)";
+			echo "<p class='lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz."&nbsp;</p>\n"; // Balken
+		break;
+	}
+} else {
+	echo "<p class='err'>Fehler! Kein Treffer fuer gml_id=".$gmlid."</p>";
+}
+
+echo "\n<h2><img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''> Lagebezeichnung</h2>\n";
+
+echo "<p>Typ: ".$untertitel."</p>";
+
+echo "\n<table class='outer'>\n<tr>\n\t<td>"; 	// Tabelle Kennzeichen
+	// 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\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>";
+			switch ($ltyp) {
+				case "m": // "Mit HsNr"
+					echo "\n\t\t<td class='head'>Haus-Nr</td>";
+				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>";
+				break;
+				case "o": //"Ohne HsNr"
+					echo "\n\t\t<td class='head'>unverschl&uuml;sselte Lage</td>";
+				break;
+			}
+		echo "\n\t</tr>";
+		echo "\n\t<tr>";
+			echo "\n\t\t<td title='Bundesland'>".$land."</td>";
+			echo "\n\t\t<td title='Regierungsbezirk'>".$regbez."</td>";
+			echo "\n\t\t<td title='Kreis'>";
+				if ($showkey) {
+						echo "<span class='key'>".$kreis."</span><br>";
+				}
+			echo $knam."&nbsp;</td>";
+			echo "\n\t\t<td title='Gemeinde'>";
+				if ($showkey) {
+					echo "<span class='key'>".$gem."</span><br>";
+				}
+			echo $gnam."&nbsp;</td>";
+
+			echo "\n\t\t<td title='Stra&szlig;e'>";
+				if ($showkey) {
+					echo "<span class='key'>".$lage."</span><br>";
+				}
+			if ($ltyp == "o") {
+				echo "<span class='wichtig'>".$snam."</div>";
+			} else {
+				echo $snam;
+			}	
+			echo "&nbsp;</td>";
+
+			switch ($ltyp) {
+				case "m":
+					echo "\n\t\t<td title='Hausnummer und Zusatz'><span class='wichtig'>".$hsnr."</span></td>";
+				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>";
+				break;
+				case "o":
+					echo "\n\t\t<td title='Gewanne'><span class='wichtig'>".$unver."</span></td>";
+				break;
+			}
+		echo "\n\t</tr>";
+	echo "\n\t</table>";
+
+	echo "\n\t</td>\n\t<td>";
+
+	// Kopf Rechts: weitere Daten?
+	// z.B. hier Ausgabe von "georeferenzierte GebÃ€udeadresse" ?
+	if ($idanzeige) {linkgml($gkz, $gmlid, "Lage"); }
+
+echo "\n\t</td>\n</tr>\n</table>";
+// Ende Seitenkopf
+
+// F L U R S T U E C K E
+if ($ltyp <> "p") { // Pseudonummer linkt nur GebÃ€ude
+	echo "\n\n<a name='fs'></a><h3><img src='ico/Flurstueck.ico' width='16' height='16' alt=''> Flurst&uuml;cke</h3>\n";
+	echo "\n<p>mit dieser Lagebezeichnung.</p>";
+	// ax_Flurstueck  >weistAuf>  ax_LagebezeichnungMitHausnummer
+	// ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer
+	switch ($ltyp) {
+		case "m": $bezart="weistAuf"; break;
+		case "o": $bezart="zeigtAuf"; break;
+	}
+	$sql="SELECT g.gemarkungsnummer, g.bezeichnung, ";
+	$sql.="f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche ";
+	$sql.="FROM ax_flurstueck f ";
+	$sql.="JOIN alkis_beziehungen v ON f.gml_id=v.beziehung_von "; 
+	$sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
+	$sql.="WHERE v.beziehung_zu= $1 "; // id Lage
+	$sql.="AND v.beziehungsart= $2 ";
+	$sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
+
+	$v = array($gmlid,$bezart);
+	$resf = pg_prepare("", $sql);
+	$resf = pg_execute("", $v);
+	if (!$resf) {
+		echo "<p class='err'>Fehler bei Flurst&uuml;ck.</p>\n";
+		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' 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>";
+	$j=0;
+	while($rowf = pg_fetch_array($resf)) {
+		$flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT);
+		$fskenn=$rowf["zaehler"]; // Bruchnummer
+		if ($rowf["nenner"] != "") {$fskenn.="/".$rowf["nenner"];}
+		$flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m&#178;";
+		echo "\n<tr>";
+			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><span class='wichtig'>".$fskenn."</span>";
+				if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck");}
+			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.ico' width='16' height='16' alt=''></a>";
+			echo "\n\t\t</p>\n\t</td>";
+		echo "\n</tr>";
+		$j++;
+	}
+	echo "\n</table>";
+}
+
+// L A G E
+// 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.ico' width='16' height='16' alt=''> Lage</h3>\n";
+	echo "\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."&amp;gmlid="; // Basis
+	if ($idanzeige) {$url.="&amp;id=j";}
+	if ($showkey)   {$url.="&amp;showkey=j";}
+
+	switch ($ltyp) {
+		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 ORDER BY laufendenummer;";
+		// pseudonummer character varying(5), laufendenummer character varying(2),
+
+			$v = array($land,$regbez,$kreis,$gem,$lage,$lage,$hsnr);
+			$res = pg_prepare("", $sql);
+			$res = pg_execute("", $v);
+			if (!$res) {
+				echo "\n<p class='err'>Fehler bei Nebengeb&auml;ude.<br>".$sql."</p>\n";
+				if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."</p>";}
+			}
+			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;";
+			}
+			echo "\n</p>";
+		break;
+
+		case "p": // aktuell NebengebÃ€ude: Haupt- und NebengebÃ€ude suchen
+			echo "\n<p>Hauptgeb&auml;ude: ";
+			$sql ="SELECT l.gml_id FROM ax_lagebezeichnungmithausnummer l ";
+			$sql.=$whereclaus."AND hausnummer= $6;";
+
+			$v = array($land,$regbez,$kreis,$gem,$lage,$pseu);
+			$res = pg_prepare("", $sql);
+			$res = pg_execute("", $v);
+
+			if (!$res) echo "<p class='err'>Fehler bei Hauptgeb&auml;ude.<br>".$sql."</p>\n";
+			while($row = pg_fetch_array($res)) {
+				echo "\n\t<a href='".$url.$row["gml_id"]."&amp;ltyp=m'>Haus-Nr ".$pseu."</a>&nbsp;&nbsp;";
+			}
+			echo "\n</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 ORDER BY laufendenummer;";
+			$v = array($land,$regbez,$kreis,$gem,$lage,$pseu,$lfd);
+			$res = pg_prepare("", $sql);
+			$res = pg_execute("", $v);
+			if (!$res) {
+				echo "\n<p class='err'>Fehler bei Nebengeb&auml;ude.</p>\n";
+				if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."</p>";}			
+			}
+			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;";
+			}
+			echo "\n</p>";
+		break;
+	}
+}
+
+// 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.ico' width='16' height='16' alt=''> Geb&auml;ude</h3>";
+	echo "\n<p>mit dieser Lagebezeichnung.</p>";
+	switch ($ltyp) {
+		case "p": $bezart="hat"; break;
+		case "m": $bezart="zeigtAuf"; break;
+	}
+	$sql ="SELECT g.gml_id, g.gebaeudefunktion, g.name, g.bauweise, g.grundflaeche, g.zustand, ";
+	$sql.="round(area(g.wkb_geometry)::numeric,2) AS flaeche, h.bauweise_beschreibung, u.bezeichner ";
+	$sql.="FROM ax_gebaeude g ";
+	$sql.="JOIN alkis_beziehungen v ON g.gml_id=v.beziehung_von "; 
+	$sql.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise = h.bauweise_id ";
+	$sql.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert ";
+// +++ JOIN Zustand
+	$sql.="WHERE v.beziehung_zu= $1 AND v.beziehungsart= $2 ;";
+	$v = array($gmlid,$bezart);
+	$res = pg_prepare("", $sql);
+	$res = pg_execute("", $v);
+	if (!$res) {
+		echo "<p class='err'>Fehler bei Gebaeude.</p>\n";
+		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
+	$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");}
+				// +++ Hausnummer / Adresse ???
+			echo $row["name"]."</td>";
+
+		//	echo "<td class='fla'>".$row["grundflaeche"]."</td>";
+			echo "<td class='fla'>".$gfla." m&#178;</td>";
+
+			echo "<td>";
+				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.ico' width='16' height='16' alt=''></a>";
+			echo "</td>";
+
+		echo "</tr>";
+	}
+	echo "\n</table>";
+}
+
+?>
+
+<form action=''>
+	<div class='buttonbereich noprint'>
+	<hr>
+		<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.ico" width="16" height="16" alt="zur&uuml;ck" /></a>&nbsp;
+		<a title="Drucken" href='javascript:window.print()'><img src="ico/print.ico" width="16" height="16" alt="Drucken" /></a>&nbsp;
+<!--	<a title="Export als CSV" href='javascript:ALKISexport()'><img src="ico/download.ico" width="16" height="16" alt="Export" /></a>&nbsp;
+		<a title="Seite schlie&szlig;en" href="javascript:window.close()"><img src="ico/close.ico" width="16" height="16" alt="Ende" /></a>	-->
+	</div>
+</form>
+
+<?php footer($gmlid, $_SERVER['PHP_SELF']."?", "&amp;ltyp=".$ltyp); ?>
+
+</body>
+</html>
+
Index: /trunk/info/info/alkis/mapbender.php
===================================================================
--- /trunk/info/info/alkis/mapbender.php	(revision 219)
+++ /trunk/info/info/alkis/mapbender.php	(revision 219)
@@ -0,0 +1,4 @@
+<?php
+header("Location: http://map.krz.de/mapwww/frames/login.php?name=alkisdemo&password=alkisdemo&mb_user_myGui=ALKIS_Demo&mb_myPOI2SCALE=353072,5530881,1000");
+exit();
+?>
Index: /trunk/info/info/alkis/alkis_conf_location.php
===================================================================
--- /trunk/info/info/alkis/alkis_conf_location.php	(revision 219)
+++ /trunk/info/info/alkis/alkis_conf_location.php	(revision 219)
@@ -0,0 +1,19 @@
+<?php
+/*	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.
+
+	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
+*/
+# 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
+?>
Index: /trunk/info/info/alkis/alkisfsnw.php
===================================================================
--- /trunk/info/info/alkis/alkisfsnw.php	(revision 219)
+++ /trunk/info/info/alkis/alkisfsnw.php	(revision 219)
@@ -0,0 +1,772 @@
+<?php
+/*	Modul: alkisfsnw.php
+
+	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+	FlurstÃŒcksnachweis fuer ein FlurstÃŒckskennzeichen aus ALKIS PostNAS
+
+	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
+
+	ToDo:
+	- BodenschÃ€tzung anzeigen
+	- EntschlÃŒsseln "Bahnkategorie" bei Bahnverkehr, "OberflÃ€chenmaterial" bei Unland
+	  Dazu evtl. diese Felder ins Classfld verschieben (Meta-Tabellen!)
+	- NamNum >bestehtAusRechtsverhaeltnissenZu> NamNum
+*/
+session_start();
+import_request_variables("G");
+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>
+<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">
+	<title>ALKIS Flurst&uuml;cksnachweis</title>
+	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
+	<link rel="shortcut icon" type="image/x-icon" href="ico/Flurstueck.ico">
+	<style type='text/css' media='print'>
+		.noprint {visibility: hidden;}
+	</style>
+	<script type="text/javascript">
+	function ALKISexportFS() {window.open(<?php echo "'alkisfsexp.php?gkz=".$gkz."&gmlid=".$gmlid."'"; ?>);}
+	function ALKISexportGB() {window.open(<?php echo "'alkisfsgbexp.php?gkz=".$gkz."&gmlid=".$gmlid."'"; ?>);}
+	</script>
+</head>
+<body>
+<?php
+$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
+
+// Ein (ALB- ?) FlurstÃŒcks-Kennzeichen wurde alternativ zur gml_id ÃŒbermittelt
+if ($gmlid == '' and $fskennz != '') {
+	// Ãbergabe Format z.B. "llgggg-fff-nnnn/zz.nn" oder "gggg-ff-nnn/zz"
+	$arr=explode("-", $fskennz, 4);
+	$zgemkg=trim($arr[0]);
+	if (strlen($zgemkg) == 20 and $arr[1] == "") { // Oh, ist wohl schon das Datenbank-Feldformat 
+		$fskzdb=$zgemkg;
+	} else { // NÃ¶, ist wohl eher ALB-Format
+		// Das Kennzeichen auseinander nehmen. 
+		if (strlen($zgemkg) == 6) {
+			$land=substr($zgemkg, 0, 2);
+			$zgemkg=substr($zgemkg, 2, 4);
+		} else { // kein schÃ¶ner Land ..
+			$land='05'; // NRW, ToDo: Default-Land aus config
+		}
+		$zflur=str_pad($arr[1], 3 , "0", STR_PAD_LEFT); // Flur-Nr
+		$zfsnr=trim($arr[2]); // FlurstÃŒcke-Nr
+		$zn=explode("/", $zfsnr, 2); // Bruch?
+		$zzaehler=str_pad(trim($zn[0]), 5 , "0", STR_PAD_LEFT);	
+		$znenner=trim($zn[1]);
+		if (trim($znenner, " 0.") == "") { // kein Bruch oder nur Nullen
+			$znenner="____"; // in DB-Spalte mit Tiefstrich aufgefÃŒllt
+		} else {
+			$zn=explode(".", $znenner, 2); // .00 wegwerfen
+			$znenner=str_pad($zn[0], 4 , "0", STR_PAD_LEFT);
+		}
+		// nun die Teile stellengerecht wieder zusammen setzen		
+		$fskzdb=$land.$zgemkg.$zflur.$zzaehler.$znenner.'__'; // FS-Kennz. Format Datenbank
+	}
+	// Feld flurstueckskennzeichen ist in DB indiziert  
+	// Format z.B.'052647002001910013__' oder '05264700200012______'
+	$sql ="SELECT gml_id FROM ax_flurstueck WHERE flurstueckskennzeichen= $1 ;";
+
+	$v = array($fskzdb);
+	$res = pg_prepare("", $sql);
+	$res = pg_execute("", $v);
+	if ($row = pg_fetch_array($res)) {
+		$gmlid=$row["gml_id"];
+	} else {
+		echo "<p class='err'>Fehler! Kein Treffer f&uuml;r Flurst&uuml;ckskennzeichen='".$fskennz."' (".$fskzdb.")</p>";
+	}
+	pg_free_result($res);
+}
+
+// F L U R S T U E C K
+$sql ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche, st_area(f.wkb_geometry) AS fsgeomflae, f.zeitpunktderentstehung, ";
+$sql.="g.gemarkungsnummer, g.bezeichnung ";
+$sql.="FROM ax_flurstueck f ";
+$sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
+$sql.="WHERE f.gml_id= $1";
+
+$v = array($gmlid); // mit gml_id suchen
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {
+	echo "\n<p class='err'>Fehler bei Flurstuecksdaten</p>\n";
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+if ($row = pg_fetch_array($res)) {
+	$gemkname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
+	$gmkgnr=$row["gemarkungsnummer"];
+	$bezirk=$row["regierungsbezirk"];
+	$kreis=$row["kreis"];
+	$gemeinde=$row["gemeinde"];
+	$flurnummer=$row["flurnummer"];
+	$flstnummer=$row["zaehler"];
+	$nenner=$row["nenner"];
+	if ($nenner > 0) {$flstnummer.="/".$nenner;} // BruchNr
+	$fsbuchflae=$row["amtlicheflaeche"]; // amtliche Fl. aus DB-Feld
+	$fsgeomflae=$row["fsgeomflae"]; // aus Geometrie ermittelte FlÃ€che
+	$fsbuchflaed=number_format($fsbuchflae,0,",",".") . " m&#178;"; // Display-Format dazu
+	$fsgeomflaed=number_format($fsgeomflae,0,",",".") . " m&#178;";
+	$entsteh=$row["zeitpunktderentstehung"];
+	$name=$row["name"]; // Fortfuehrungsnummer(n)
+	$arrn = explode(",", trim($name, "{}") ); // PHP-Array
+} else {
+	echo "<p class='err'>Fehler! Kein Treffer f&uuml;r gml_id=".$gmlid."</p>";
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+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.ico' 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.ico' 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'>";
+		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'>";
+				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"); }
+echo "\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'>";
+
+// ** G e b i e t s z u g e h o e r i g k e i t **
+// eine Tabellenzeile mit der Gebietszugehoerigkeit eines Flurstuecks wird ausgegeben
+// Schluessel "land" wird nicht verwendet, gibt es Bestaende wo das nicht einheitlich ist?
+echo "\n<tr>\n\t<td class='ll'><img title='Im Gebiet von' src='ico/Gemeinde.ico' width='16' height='16' alt=''> Gebiet:</td>";
+
+// G e m e i n d e
+$sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk= $1 AND kreis= $2 AND gemeinde= $3"; 
+
+$v = array($bezirk,$kreis,$gemeinde);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {
+	echo "\n<p class='err'>Fehler bei Gemeinde</p>\n";
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";}
+}
+$row = pg_fetch_array($res);
+$gnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
+echo "\n\t<td class='lr'>Gemeinde</td><td class='lr'>";
+if ($showkey) {
+	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.ico' width='16' height='16' alt=''>";
+		echo "</a>";
+	echo "\n</p>";
+echo "</td></tr>";
+pg_free_result($res);
+
+// K r e i s
+$sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk= $1 AND kreis= $2"; 
+$v = array($bezirk,$kreis);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {
+	echo "\n<p class='err'>Fehler bei Kreis</p>\n";
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";}
+}
+$row = pg_fetch_array($res);
+$knam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
+echo "<tr><td>&nbsp;</td><td>Kreis</td><td>";
+if ($showkey) {
+	echo "<span class='key'>(".$kreis.")</span> ";
+}
+echo $knam."</td><td>&nbsp;</td></tr>";
+pg_free_result($res);
+
+// R e g - B e z
+$sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk= $1 ";
+$v = array($bezirk);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {
+	echo "<p class='err'>Fehler bei Regierungsbezirk</p>";
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";}
+}
+$row = pg_fetch_array($res);
+$bnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
+echo "<tr><td>&nbsp;</td><td>Regierungsbezirk</td><td>";
+if ($showkey) {
+	echo "<span class='key'>(".$bezirk.")</span> ";
+}
+echo $bnam."</td><td>&nbsp;</td></tr>";
+pg_free_result($res);
+// ENDE G e b i e t s z u g e h o e r i g k e i t
+
+// ** L a g e b e z e i c h n u n g **
+
+// Lagebezeichnung Mit Hausnummer
+//   ax_flurstueck  >weistAuf>  AX_LagebezeichnungMitHausnummer
+//                  <gehoertZu<
+$sql ="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung ";
+$sql.="FROM alkis_beziehungen v ";
+$sql.="JOIN ax_lagebezeichnungmithausnummer  l ON v.beziehung_zu=l.gml_id "; // Strassennamen JOIN
+$sql.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde ";
+$sql.="AND l.lage = s.lage ";
+$sql.="WHERE v.beziehung_von= $1 "; // id FS";
+$sql.="AND v.beziehungsart='weistAuf' ";
+$sql.="ORDER BY l.gemeinde, l.lage, l.hausnummer;";
+// Theoretisch JOIN notwendig ÃŒber den kompletten SchlÃŒssel bestehend aus land+regierungsbezirk+kreis+gemeinde+lage
+// bei einem SekundÃ€rbestand fÃŒr eine Gemeinde oder einen Kreis reicht dies hier:
+
+$v = array($gmlid);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {
+	echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer</p>";
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";}
+}
+$j=0;
+while($row = pg_fetch_array($res)) {
+	$sname = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name
+	echo "\n<tr>\n\t";
+		if ($j == 0) {
+			echo "<td class='ll'><img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''> Adresse:</td>";
+		} else {
+			echo "<td>&nbsp;</td>";
+		}
+		echo "\n\t<td>&nbsp;</td>";
+		echo "\n\t<td class='lr'>";
+		if ($showkey) {
+			echo "<span class='key'>(".$row["lage"].")</span>&nbsp;";
+		}
+		echo $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"];
+			if ($showkey) {echo "&amp;showkey=j";}
+			echo "'>Lage ";
+			echo "<img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''></a>";
+		echo "\n\t\t</p>\n\t</td>";
+	echo "\n</tr>";
+	$j++;
+}
+pg_free_result($res);
+// Verbesserung: mehrere HsNr zur gleichen StraÃe als Liste?
+
+// L a g e b e z e i c h n u n g   O h n e   H a u s n u m m e r  (Gewanne oder nur Strasse)
+//   ax_flurstueck  >zeigtAuf>  AX_LagebezeichnungOhneHausnummer
+//                  <gehoertZu<
+$sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung ";
+$sql.="FROM alkis_beziehungen v ";
+$sql.="JOIN ax_lagebezeichnungohnehausnummer l ON l.gml_id=v.beziehung_zu ";
+$sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde ";
+$sql.="AND l.lage = s.lage ";
+$sql.="WHERE v.beziehung_von= $1 "; // id FS";
+$sql.="AND   v.beziehungsart='zeigtAuf';"; //ORDER?
+$v = array($gmlid);
+$res = pg_prepare("", $sql);
+$res = pg_execute("", $v);
+if (!$res) {
+	echo "<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer</p>";
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";}
+}
+$j=0;
+// Es wird auch eine Zeile ausgegeben, wenn kein Eintrag gefunden!
+while($row = pg_fetch_array($res)) {
+	$gewann = htmlentities($row["unverschluesselt"], ENT_QUOTES, "UTF-8");
+	$skey=$row["lage"]; // Strassenschluessel
+	$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.ico' 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;
+				if ($showkey) {echo "&amp;showkey=j";}				
+				echo "'>\n\t\t\tLage <img src='ico/Lage_Gewanne.ico' width='16' height='16' alt=''></a>";
+			echo "\n\t\t</p>\n\t</td>";
+		echo "\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.ico' width='16' height='16' alt=''> Stra&szlig;e:</td>";
+			echo "\n\t<td></td>";
+			echo "\n\t<td class='lr'>";
+			if ($showkey) {
+				echo "<span class='key'>(".$skey.")</span>&nbsp;";
+			}
+			echo $row["bezeichnung"]."</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;
+				if ($showkey) {echo "&amp;showkey=j";}				
+				echo "'>\n\t\t\tLage <img src='ico/Lage_an_Strasse.ico' width='16' height='16' alt=''>\n\t\t\t</a>";
+			echo "\n\t\t</p>\n\t</td>";
+		echo "\n</tr>";
+	}
+	$j++;
+}
+pg_free_result($res);
+// ENDE  L a g e b e z e i c h n u n g
+
+// ** N U T Z U N G **
+// Tabellenzeilen (3 Spalten) mit tats. Nutzung zu einem FS ausgeben
+$sql ="SELECT m.title, m.fldclass, m.fldinfo, n.gml_id, c.class, n.info, n.zustand, n.name, n.bezeichnung, m.gruppe, ";
+// Gemeinsame FlÃ€che von NUA und FS
+$sql.="st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) AS schnittflae, ";
+$sql.="c.label, c.blabla ";
+$sql.="FROM ax_flurstueck f, nutzung n ";
+$sql.="JOIN nutzung_meta m ON m.nutz_id=n.nutz_id ";
+$sql.="LEFT JOIN nutzung_class c ON c.nutz_id=n.nutz_id AND c.class=n.class ";
+$sql.="WHERE f.gml_id= $1 "; // id FS";
+$sql.="AND st_intersects(n.wkb_geometry,f.wkb_geometry) = true "; // ueberlappende Flaechen
+$sql.="AND st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) > 0.05 "; // unter Rundung
+$sql.="ORDER BY schnittflae DESC;";
+
+$v = array($gmlid);
+$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 = gml_id = '".$gmlid."'</p>";}
+}
+$the_Xfactor=$fsbuchflae / $fsgeomflae; // geom. ermittelte FlÃ€che auf amtl. BuchflÃ€che angleichen
+$j=0;
+while($row = pg_fetch_array($res)) {
+	$grupp = $row["gruppe"];  // Individuelles Icon?
+	$title = htmlentities($row["title"], ENT_QUOTES, "UTF-8"); // NUA-Titel
+	$fldclass=$row["fldclass"]; // Feldname 1.  Zusatzfeld
+	$fldinfo= $row["fldinfo"];  // Feldname 2. Zusatzfeld
+	$gml=$row["gml_id"];
+	$class=$row["class"];  // 1. Zusatzfeld verschlÃŒsselt -> nutzung_class
+	$info=$row["info"]; // 2. Zus. verschlÃŒsselt (noch keine Info zum entschl.)
+	$schnittflae=$row["schnittflae"];
+	$label=$row["label"]; // Nutzungsart entschlÃŒsselt
+	$zus=$row["zustand"]; // im Bau
+	$nam=$row["name"]; // Eigenname
+	$bez=$row["bezeichnung"]; // weiterer Name (unverschl.)
+	$blabla=htmlentities($row["blabla"], ENT_QUOTES, "UTF-8");
+	$label=str_replace("/", "<br>", $label); // Ersetzen "/" durch Zeilenwechsel?
+
+	echo "\n<tr>\n\t";
+		if ($j == 0) {
+			echo "<td class='ll' title='Abschnitt der tats&auml;chlichen Nutzung'><img src='ico/Abschnitt.ico' width='16' height='16' alt=''> Nutzung:</td>";
+		} else {
+			echo "<td>&nbsp;</td>";
+		}
+		$absflaebuch = $schnittflae * $the_Xfactor; // angleichen geometrisch an amtliche FlÃ€che
+		$schnittflae = number_format($schnittflae,1,",",".") . " m&#178;"; // geometrisch
+		$absflaebuch = number_format($absflaebuch,0,",",".") . " m&#178;"; // Abschnitt an BuchflÃ€che angeglichen
+		echo "\n\t<td class='fla' title='geometrisch berechnet: ".$schnittflae."'>".$absflaebuch."</td>";
+
+		echo "\n\t<td class='lr'>";
+			If ( ($fldclass == "Funktion" OR $fldclass == "Vegetationsmerkmal") AND $label != "") { // Kurze Anzeige
+				if ($showkey) {echo "<span class='key'>(".$class.")</span> ";}
+				if ($blabla = "") {
+					echo $label;
+				} else {
+					echo "<span title='".$blabla."'>".$label."</span>";
+				}
+			} else { // ausfuehrlichere Anzeige
+				echo $title; // NUA-Tabelle
+				if ($class != "") { // NUA-SchlÃŒssel
+					echo ", ".$fldclass.": "; // Feldname
+					if ($showkey) {echo "<span class='key'>(".$class.")</span> ";}
+					if ($label != "") { // Bedeutung dazu wurde erfasst
+						if ($blabla = "") {
+							echo $label;
+						} else {
+							echo "<span title='".$blabla."'>".$label."</span>";
+						}
+					} else { // muss noch erfasst werden
+						echo $class." "; // SchlÃŒssel als Ersatz fÃŒr Bedeutung
+					}
+				}
+			}
+
+			If ($info != "") { // manchmal ein zweites Zusatzfeld (wie entschlÃŒsseln?)
+				echo ", ".$fldinfo."=".$info;
+			}
+			If ($zus != "") { // Zustand
+				echo "\n\t\t<br>";
+				if ($showkey) {echo "<span class='key'>(".$zus.")</span> ";}
+				echo "<span title='Zustand'>";				
+				switch ($zus) {
+					case 2100: echo "AuÃer Betrieb, stillgelegt, verlassen"; break;
+					case 4000: echo "Im Bau"; break;
+					case 8000: echo "Erweiterung, Neuansiedlung"; break;
+					default: echo "Zustand: ".$zus; break;
+				}
+				echo "</span>";
+			}
+			If ($nam != "") {echo "<br>Name: ".$nam;}
+			If ($bez != "") {echo "<br>Bezeichnung: ".$bez;}
+		echo "</td>";
+		echo "\n\t<td>";
+			switch ($grupp) { // Icon nach 4 Objektartengruppen
+				case "Siedlung":		$ico = "Abschnitt.ico";	break;
+				case "Verkehr":		$ico = "Strassen_Klassifikation.ico";	break;
+				case "Vegetation":	$ico = "Wald.ico";	break;
+				case "GewÃ€sser":		$ico = "Wasser.ico";	break;
+				default:					$ico = "Abschnitt.ico";	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>";
+	echo "\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'>";
+	echo "<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";}
+			if ($showkey) {echo "&amp;showkey=j";}
+			echo "' title='Geb&auml;udenachweis'>Geb&auml;ude <img src='ico/Haus.ico' width='16' height='16' alt=''></a>";
+		echo "\n\t\t</p>";
+	echo "\n\t</td>";
+echo "\n</tr>";
+
+echo "\n</table>";
+
+// ALB: KLASSIFIZIERUNG  BAULASTEN  HINWEISE  TEXTE  VERFAHREN
+
+// 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.ico' 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";}
+				// 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.ico' width='16' height='16' alt=''></a>";
+				}
+			echo "\n\t\t</p>";
+		echo "\n\t</td>";
+	echo "\n</tr>";
+echo "\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, ";
+$sql.="s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, b.bezeichner AS bart ";
+//  s.beschreibungdesumfangsderbuchung as umf,  ?
+$sql.="FROM alkis_beziehungen v "; // Bez Flurst.- Stelle.
+$sql.="JOIN ax_buchungsstelle s ON v.beziehung_zu=s.gml_id ";
+$sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart = b.wert ";
+$sql.="WHERE v.beziehung_von= $1 "; // id FS
+$sql.="AND v.beziehungsart= $2 ";
+$sql.="ORDER BY s.laufendenummer;";
+
+$v = array($gmlid,'istGebucht');
+$ress = pg_prepare("", $sql);
+$ress = pg_execute("", $v);
+if (!$ress) {
+	echo "\n<p class='err'>Keine Buchungsstelle.</p>\n";
+	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
+
+	// 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, ";
+	$sql.="z.bezeichnung ";  // stelle -> amtsgericht
+	$sql.="FROM alkis_beziehungen v "; // Bez. Stelle - Blatt
+	$sql.="JOIN ax_buchungsblatt b ON v.beziehung_zu=b.gml_id ";
+	$sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk ";
+	$sql.="WHERE v.beziehung_von= $1 "; // id Buchungsstelle
+	$sql.="AND v.beziehungsart= $2 ";
+	$sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;";
+
+	$v = array($gmls,'istBestandteilVon');
+	$resg = pg_prepare("", $sql);
+	$resg = pg_execute("", $v);
+	if (!$resg) {
+		echo "\n<p class='err'>Kein Buchungsblatt.</p>\n";
+		if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmls."'</p>";}
+	}
+	$bl=0; // Z.Blatt
+	while($rowg = pg_fetch_array($resg)) {
+		$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
+			echo "\n\t<td>"; // Outer linke Spalte:
+
+				// Rahmen mit GB-Kennz
+				if ($blattkeyg == 1000) {
+					echo "\n\t<table class='kennzgb' title='Bestandskennzeichen'>";
+				}else {
+					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>";
+
+				// Miteigentumsanteil
+				if ($rows["zaehler"] <> "") {
+					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");
+					echo "<br>";
+					linkgml($gkz, $gmlg, "Buchungsblatt");
+				}
+				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";}
+						if ($showkey)   {echo "&amp;showkey=j";}
+						if ($blattkeyg == 1000) {
+							echo "' title='Grundbuchnachweis mit kompletter Eigent&uuml;merangabe'>";
+						} else {
+							echo "' title='Grundbuchnachweis'>";
+						}
+						echo $blattartg." <img src='ico/GBBlatt_link.ico' width='16' height='16' alt=''>";
+					echo "</a>";
+				echo "\n\t</p>";
+			echo "\n</td>";
+		echo "\n</tr>";
+		echo "\n</table>";
+
+		// +++ Weitere Felder ausgeben? BeschreibungDesUmfangsDerBuchung
+		if ($rows["sond"] != "") {
+			echo "<p class='sond' title='Sondereigentum'>Verbunden mit dem Sondereigentum<br>".$rows["sond"]."</p>";
+		}
+		if ($rows["nrpl"] != "") {
+			echo "<p class='nrap' title='Nummer im Aufteilungsplan'>Nummer <span class='wichtig'>".$rows["nrpl"]."</span> im Aufteilungsplan.</p>";
+		}
+
+		// E I G E N T U E M E R, zum GB
+		// Person <-benennt< AX_Namensnummer  >istBestandteilVon-> AX_Buchungsblatt
+		if ($eig=="j") { // Wahlweise mit/ohne EigentÃŒmer
+			$n = eigentuemer($con, $gmlg, false, ""); // ohne Adresse
+ 			if ($n == 0) {
+				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>";
+				}
+			}
+		}
+		$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");
+	}
+
+	// Buchungstelle  >an>  Buchungstelle  >istBestandteilVon>  BLATT  ->  Bezirk
+	$sql ="SELECT s.gml_id AS s_gml, s.buchungsart, s.laufendenummer as lfd, ";
+	// , s.beschreibungdesumfangsderbuchung as umf   ?
+	$sql.="s.zaehler, s.nenner, s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, ";
+	$sql.="b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, ";
+	$sql.="z.bezeichnung, a.bezeichner AS bart ";  // stelle -> amtsgericht
+	$sql.="FROM alkis_beziehungen an "; // Bez. Stelle - Stelle
+	$sql.="JOIN ax_buchungsstelle s ON an.beziehung_von = s.gml_id ";
+	$sql.="JOIN alkis_beziehungen v ON s.gml_id = v.beziehung_von "; // Bez. Stelle - Blatt
+	$sql.="JOIN ax_buchungsblatt  b ON v.beziehung_zu = b.gml_id ";
+	$sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land = b.land AND z.bezirk = b.bezirk ";
+	$sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert ";
+	$sql.="WHERE an.beziehung_zu = $1 "; // id herrschende Buchungsstelle
+	$sql.="AND an.beziehungsart = 'an' ";
+	$sql.="AND v.beziehungsart = 'istBestandteilVon' ";
+	$sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
+	$v = array($gmls);
+	$resan = pg_prepare("", $sql);
+	$resan = pg_execute("", $v);
+	if (!$resan) {
+		echo "\n<p class='err'>Keine weiteren Buchungsstellen.</p>\n";
+		if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmls."'</p>";}
+	}
+	$an=0; // Stelle 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");
+					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.ico' 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"; 
+		}
+		// +++ BeschreibungDesUmfangsDerBuchung ?
+		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);
+	$bs++;
+}
+pg_free_result($resg);
+if ($bs == 0) {
+	echo "\n<p class='err'>Keine Buchungstelle gefunden.</p>";
+	linkgml($gkz, $gmlid, "Flurst&uuml;ck");
+}
+pg_close($con);
+?>
+
+<form action=''>
+	<div class='buttonbereich noprint'>
+	<hr>
+		<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.ico" width="16" height="16" alt="zur&uuml;ck" /></a>&nbsp;
+		<a title="Drucken" href='javascript:window.print()'><img src="ico/print.ico" width="16" height="16" alt="Drucken" /></a>&nbsp;
+		<a title="Export Flurst&uuml;cksdaten als CSV" href='javascript:ALKISexportFS()'><img src="ico/download_fs.ico" width="32" height="16" alt="Export" /></a>&nbsp;
+	 	<a title="Export Grundbuchdaten als CSV" href='javascript:ALKISexportGB()'><img src="ico/download_gb.ico" width="32" height="16" alt="Export" /></a>&nbsp;
+<!--	<a title="Seite schlie&szlig;en" href="javascript:window.close()"><img src="ico/close.ico" width="16" height="16" alt="Ende" /></a>	-->
+	</div>
+</form>
+
+<?php footer($gmlid, $_SERVER['PHP_SELF']."?", "&amp;eig=".$eig); ?>
+
+</body>
+</html>
Index: /trunk/info/info/alkis/alkisauszug.css
===================================================================
--- /trunk/info/info/alkis/alkisauszug.css	(revision 219)
+++ /trunk/info/info/alkis/alkisauszug.css	(revision 219)
@@ -0,0 +1,134 @@
+/*	Modul: alkisauszug.css
+	S t y l e s zur ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+
+	Version:
+	21.09.2010  Inlay
+	30.09.2010  body-width bei Print
+	12.10.2010  class p.fsd: margin statt position-relative, dann keine Scrollbar
+	04.01.2011  Spalte td.fla im fsnw
+	26.01.2011  einheitlich td padding-top 6px
+	16.11.2011  FS-Historie
+*/
+body	{background-color: #FDFFFD;}
+p, body	{font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
+	font-size: 10pt; color: #000033; margin-top: 2pt; margin-bottom: 2pt;}
+
+/* ** Banner im Kopf (Balken), Farbcode fuer Nachweis-Art ** */
+p.fsausk		{text-align: right; background: teal;	color: silver;}	/* Uebersichts-Seite Flurstuecks-Auskunft */
+p.fskennz	{text-align: right; background: navy;	color: silver;}	/* Flurstuecks-Nachweis */
+p.fsei		{text-align: right; background: olive;	color: silver;}	/* Flurstuecks- und Eigentuemer-Nachweis */
+p.fshis		{text-align: right; background: gray;	color: white;}		/* Flurstuecks-Historie */
+p.gbkennz	{text-align: right; background: green;	color: silver;}	/* Bestandsnachweis */
+p.nakennz	{text-align: right; background: maroon; color: silver;}	/* Personen- und Adressdaten */
+p.geb			{text-align: right; background: yellow; color: gray;}		/* Gebaeude zum FS */
+p.lage		{text-align: right; background: lime; color: gray;}		/* Gebaeude zum FS */
+
+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*/
+p.zus		{margin: 2pt; padding: 2pt; border:1px dotted maroon; background: white;} /* Zusatz zum Eigent., gerahmt */
+p.avh		{font-style: italic; color: navy;}	/* Anteilsverhaeltnis */
+p.ant		{font-style: italic; position: relative;left: 12px;} /* Anteil am FS */
+p.geig	{color: navy;}		/* GB-Nachw. Eigentuemer Name */
+p.gadr	{color: maroon; margin-top: 1pt;}	/* GB-Nachw. Eigentuemer Adresse */
+p.nwlink, td.nwlink {font-size: 7pt; text-align: right; margin-top: 0pt;}	/* Link zum Nachweis GB, FS, ..*/
+p.err		{font-size: 11px; color: red;}		/* Fehler -> Anwender */
+p.dbg		{font-size: 10px; color: gray;}		/* Debug -> Entwickler */
+p.warn	{color: gray; font-style: italic;}	/* Warnung, Hinweis */
+p.ph		{color: gray;}								/* Platzhalter */
+
+/* Links */
+a:link		{color: rgb(0,102,153);}
+a:visited	{color: rgb(0,153,102);}
+a:active		{color: rgb(0,102,102);}
+a:hover		{color: rgb(255,40,40);}
+
+/* Globaler Identifikator gml_id - Link fuer Entwicklung */
+a.gmlid		{text-decoration: none;	color: silver; font-style: italic; font-size: 7pt; text-align: right;}
+span.gmlid	{font-style: italic; font-size: 7pt; text-align: right;}
+
+/* komplette Adresse im Rahmen*/
+div.adr {border-left-width: 0px; border-right-width: 0px; border-bottom-width: 2px; border-top-width: 2px; 
+	width: 60%; font-size: 12pt;
+	border-color: #a2d545; border-style: solid; 
+	margin-bottom: 8px; margin-top: 8px; margin-left: 0.7in;
+	overflow: auto; padding: 6px;
+	background: #e4f7dd;}
+
+span.key 		{color: gray; font-style: italic;} /* Schluesselwert vor Text, Wert zurueck nehmen */
+span.wichtig	{color: #BB0000; font-weight: bold;} /* Wert hervorheben */
+span.flae		{font-weight: bold;} /* FlÃ€chensume Flurst. */
+
+/* ** T a b e l l e n ** */
+table 		{font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 10pt; color: #000033;}
+table.fsd	{font-size: 9pt; margin-left: 12px;}
+table.bez	{font-size: 9pt; margin-bottom: 10px; margin-left: 3px;}
+
+/* Kennzeichen mit Rahmen, Rahmen-Farben wie 'Balken' */
+table.kennzfs	{border: 2px solid  navy;  padding: 3px; margin: 0px;}	/* Flurstueck */
+table.kennzfsh	{border: 2px dotted navy;  padding: 3px; margin: 0px;}	/* - historisch */
+table.kennzgb	{border: 2px solid  green; padding: 3px; margin: 0px;}	/* Grundbuch */
+table.kennzgbf	{border: 2px dotted green; padding: 3px; margin: 0px;}	/* - fiktiv */
+table.kennzla	{border: 2px solid  lime;  padding: 3px; margin: 0px;}	/* Lage */
+
+/* volle Breite fuer verschiedene Zwecke */
+table.fs, table.nua, table.klas, table.eig, table.outer, table.geb {width: 100%;}
+
+td	{vertical-align: top; padding-top: 6px;}	/* ** Tabellenfelder ** */
+/* border: 1px dotted gray;  Variante fuer TEST */
+
+td.ll	{width: 130px;}	/* Liste Links */
+td.lr	{color: black;}	/* Liste Rechts */
+td.ph	{color: gray;}		/* Platzhalter, vorlaeufig, spaeter loschen */
+
+/* Flaechen rechtsbuendig (stellengerecht) */
+td.fla	{width: 110px; padding-right: 4px; text-align: right;}
+td.key	{width:  35px; padding-right: 4px; padding-left: 4px;}
+/* Ertragsmesszahl der Bodenschaetzung
+td.emz	{width: 45px; padding-right: 4px; padding-left: 4px; 
+			text-align: right;} */
+td.kurz	{width: 26px; padding-left: 4px;}
+td.nanu	{width: 80px;}				/* Namensnummer */
+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.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 */
+td.bez	{font-weight: bold;}		/* Beziehungen */
+td.nhd	{width: 150px;}			/* Namen - linke / rechte Spalte */
+td.nam	{font-weight: bold;}
+td.gbl	{border-bottom: 1px dotted green;}	/* Name: GB-Liste */
+/* Inlay analog 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;}
+
+/* Ueberschriften */
+h1, h2, h3, h4, h5, h6 {font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;}
+h1 {	color: black;	font-size: 14pt;}
+h2 {	color: maroon;	font-size: 12pt;}
+h3 {	color: green;	font-size: 12pt;}
+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 */
+
+img	{border: 0px; margin: 0px;} /* Icons */
+
+iframe.inlay {border:0px; width: 100%;} /* height: 400px; */
+
+/* Seitenfuss */
+.buttonbereich	{font-size: 7pt;	text-align: right;}
+.confbereich	{font-size: 7pt;
+	background-color: #EFFDFF;
+	width: 88%;
+	position: relative;
+	left: 40px;
+}
+@media print {
+	body {width: 98%; background-color:white;}
+}
Index: /trunk/info/info/alkis/alkisfkt.php
===================================================================
--- /trunk/info/info/alkis/alkisfkt.php	(revision 219)
+++ /trunk/info/info/alkis/alkisfkt.php	(revision 219)
@@ -0,0 +1,450 @@
+<?php
+/*	Modul: alkisfkt.php
+	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+	Functions
+
+	Version:
+	17.12.2010  Astrid Emde: Prepared Statements (pg_query -> pg_prepare + pg_execute)
+	01.02.2011  *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen
+	02.11.2011  Parameter debug in function eigentuemer
+	17.11.2011  Variable ($debug, $idanzeige, $showkey) von Parameter nach global. Die heiÃen in allen Programmteilen gleich.
+*/
+
+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>";
+
+	// Spalte 1: Info Benutzerkennung
+	echo "\n\t<td title='Info'><i>Benutzer:&nbsp;".$customer."</i></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.ico' 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.ico' 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>";
+		} else {
+			echo $mylink.$myid."&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";
+	return 0;
+}
+
+function linkgml($gkz, $gml, $typ)  {
+	// Einen Link zur Verfolgung der Beziehungen mit dem Modul alkisrelationen.php
+	$kurzid=substr($gml, 12); // ID in Anzeige kuerzen (4 Zeichen), der Anfang ist immer gleich
+	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."'>";
+	echo "<img src='ico/Beziehung_link.ico' width='16' height='16' alt=''>".$kurzid."</a>";
+	return 0;
+}
+
+function kurz_namnr($lang) {
+	// Namensnummer kuerzen. Nicht benoetigte Stufen der Dezimalklassifikation abschneiden
+	$kurz=str_replace(".00","",$lang);	// leere Stufen (nur am Ende)
+	$kurz=str_replace("0000","",$kurz);	// ganz leer (am Anfang)
+	$kurz=ltrim($kurz, "0");				// fuehrende Nullen am Anfang
+	$kurz=str_replace(".0",".",$kurz);	// fuehrende Null jeder Stufe
+	return $kurz;
+}
+
+function bnw_fsdaten($con, $lfdnr, $gml_bs, $ba, $anteil, $bvnraus) {
+/*	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 $gkz, $idanzeige, $showkey;
+	// F L U R S T U E C K
+	$sql="SELECT g.gemarkungsnummer, g.bezeichnung, ";
+	$sql.="f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche ";
+	$sql.="FROM ax_flurstueck f ";
+	$sql.="JOIN alkis_beziehungen v ON f.gml_id=v.beziehung_von "; 
+	$sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
+	$sql.="WHERE v.beziehung_zu= $1 "; // id buchungsstelle
+	$sql.="AND v.beziehungsart='istGebucht' ";
+	$sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
+
+	$v = array($gml_bs);
+	$resf = pg_prepare("", $sql);
+	$resf = pg_execute("", $v);
+
+	if (!$resf) {echo "<p class='err'>Fehler bei Flurst&uuml;ck</p>\n";}
+
+	if($bvnraus) { // nur bei direkten Buchungen die lfdNr ausgeben
+		$bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT);
+	}
+	$altlfdnr="";
+	$j=0;
+	while($rowf = pg_fetch_array($resf)) {
+		$flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT);
+
+/*		$fskenn=str_pad($rowf["zaehler"], 5, "0", STR_PAD_LEFT);
+		if ($rowf["nenner"] != "") { // Bruchnummer
+			$fskenn.="/".str_pad($rowf["nenner"], 3, "0", STR_PAD_LEFT);
+		} */
+
+		// ohne fuehrende Nullen?
+		$fskenn=$rowf["zaehler"];
+		if ($rowf["nenner"] != "") { // Bruchnummer
+			$fskenn.="/".$rowf["nenner"];
+		}
+
+		$flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m&#178;";
+
+		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");}
+				echo "</td>";
+
+				echo "\n\t<td>"; // Buchungsart 
+					//	if ($showkey) {echo "<span class='key'>".$???."</span>&nbsp;";} // Schluessel
+					echo $ba; // entschluesselt
+				echo "</td>"; 
+				echo "\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><span class='wichtig'>".$fskenn."</span>";
+				if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck");}
+			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 "&amp;showkey=j";}
+					echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck ";
+					echo "<img src='ico/Flurstueck_Link.ico' width='16' height='16' alt=''>";
+				echo "</a>";
+			echo "</p></td>";
+		echo "\n</tr>";
+
+		$j++;
+	} // Ende Flurstueck
+	return $j;
+}
+
+function eigentuemer($con, $gmlid, $mitadresse, $lnkclass) {
+	// Tabelle mit Eigentuemerdaten zu einem Grundbuchblatt ausgeben
+	// Sp.1 = Namennummer, Sp. 2 = Name / Adresse, Sp. 3 = Link
+	// Parameter:
+	//		$gmlid = ID des GB-Blattes
+	//		$mitadresse = Option (true/false) ob auch die Adresszeile ausgegeben werden soll
+	// Return = Anzahl Namensnummern
+
+	// 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;
+
+	// Link ÃŒber Java-Class? (Ja in alkisinlayausk.php, sonst normal)
+	if ($lnkclass == "") {
+		$lnkvor = "";
+		$lnknach = "";
+	} else {
+		$lnkvor  = "javascript:".$lnkclass."(\"";
+		$lnknach = "\")";
+	} // Beispiel-Link href='javascript:imFenster(\"alkislage.php?gkz= ... ."\")'>xxx ";
+
+	$sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, ";
+	$sqln.="n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass ";
+	$sqln.="FROM ax_namensnummer n ";
+	$sqln.="JOIN alkis_beziehungen b ON b.beziehung_von=n.gml_id ";
+	$sqln.="WHERE b.beziehung_zu= $1 "; // id blatt
+	$sqln.="AND b.beziehungsart='istBestandteilVon' ";
+	$sqln.="ORDER BY laufendenummernachdin1421;";
+
+	$v = array($gmlid);
+	$resn = pg_prepare("", $sqln);
+	$resn = pg_execute("", $v);
+
+	if (!$resn) {
+		echo "<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'>";
+	$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");}
+			echo "</p>\n\t</td>";
+
+			echo "\n\t<td>"; // Sp. 2
+			$rechtsg=$rown["adr"];
+			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>";
+				}
+			}
+			//if ($rown["anlass"] > 0 ) {echo "<p>Anlass=".$rown["anlass"]."</p>";} // TEST:
+
+			// Schleife Ebene 2: andere Namensnummern
+			// Beziehung   ax_namensnummer >bestehtAusRechtsverhaeltnissenZu>  ax_namensnummer 
+
+			// Die Relation 'Namensnummer' besteht aus RechtsverhÃ€ltnissen zu 'Namensnummer' sagt aus, 
+			// dass mehrere Namensnummern zu einer Rechtsgemeinschaft gehÃ¶ren kÃ¶nnen. 
+			// Die Rechtsgemeinschaft selbst steht unter einer eigenen AX_Namensnummer, 
+			// die zu allen Namensnummern der Rechtsgemeinschaft eine Relation besitzt.
+
+			// Die Relation 'Namensnummer' hat VorgÃ€nger 'Namensnummer' gibt Auskunft darÃŒber, 
+			// aus welchen Namensnummern die aktuelle entstanden ist.
+
+		// 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 alkis_beziehungen v ON v.beziehung_zu=p.gml_id ";
+		$sqlp.="WHERE v.beziehung_von= $1 AND v.beziehungsart='benennt';";
+
+		$v = array($gmlnn);
+		$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>";}
+		}
+
+		$i=0; // cnt Person
+		while($rowp = pg_fetch_array($resp)) {
+			$diePerson="";
+			if ($rowp["akademischergrad"] <> "") {$diePerson=$rowp["akademischergrad"]." ";}
+			$diePerson.=$rowp["nachnameoderfirma"];
+			if ($rowp["vorname"] <> "") {$diePerson.=", ".$rowp["vorname"];}
+			if ($rowp["namensbestandteil"] <> "") {$diePerson.=". ".$rowp["namensbestandteil"];}
+			if ($rowp["geburtsdatum"] <> "") {$diePerson.=", geb. ".$rowp["geburtsdatum"];}
+			if ($rowp["geburtsname"] <> "") {$diePerson.=", geb. ".$rowp["geburtsname"];}
+			$diePerson=htmlentities($diePerson, ENT_QUOTES, "UTF-8"); // Umlaute
+
+			// Spalte 1 enthÃ€lt die Namensnummer, nur in Zeile 0
+			if ($i > 0) {
+				echo "\n<tr>\n\t<td>&nbsp;</td>\n\t<td>";
+			}
+			// Spalte 2 = Angaben
+			$eiart=eigentuemerart($rown["eigentuemerart"]);
+			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"); echo "&nbsp";}
+				echo "\n\t\t<a href='".$lnkvor."alkisnamstruk.php?gkz=".$gkz."&amp;gmlid=".$rowp[0];
+				if ($idanzeige) {echo "&amp;id=j";}
+				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.ico' width='16' height='16' alt=''></a>\n\t\t</p>";
+			echo "\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 ";
+				$sqla.="FROM ax_anschrift a ";
+				$sqla.="JOIN alkis_beziehungen b ON a.gml_id=b.beziehung_zu ";
+				$sqla.="WHERE b.beziehung_von= $1 AND b.beziehungsart='hat';"; // ORDER?
+
+				$gmlp=$rowp["gml_id"]; // Person
+				$v = array($gmlp);
+				$resa = pg_prepare("", $sqla);
+				$resa = pg_execute("", $v);
+
+				if (!$resa) {
+					echo "\n\t<p class='err'>Fehler bei Adressen</p>\n";
+					if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqla."<br>$1=gml= '".$gmlp."'</p>";}
+				}
+
+				$j=0;
+				while($rowa = pg_fetch_array($resa)) {
+					$gmla=$rowa["gml_id"];
+					$plz=$rowa["plz"]; // integer
+					if($plz == 0) {
+						$plz="";
+					} else {
+						$plz=str_pad($plz, 5, "0", STR_PAD_LEFT);
+					}
+					$ort=htmlentities($rowa["ort_post"], ENT_QUOTES, "UTF-8");
+					$str=htmlentities($rowa["strasse"], ENT_QUOTES, "UTF-8");
+					$hsnr=$rowa["hausnummer"];
+					$land=htmlentities($rowa["bestimmungsland"], ENT_QUOTES, "UTF-8");
+
+					echo "\n<tr>\n\t<td>&nbsp;</td>"; // Spalte 1
+					echo "\n\t<td><p class='gadr'>"; //Spalte 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>"; // Spalte 3
+					if ($idanzeige) {
+						echo "<p class='nwlink noprint'>";
+						linkgml($gkz, $gmla, "Adresse");
+						echo "</p>";
+					} else { 
+						echo "&nbsp;";
+					}
+					echo "</td>\n</tr>";
+					$j++;
+				}
+			} // End if
+			// 'keine Adresse' kann vorkommen, z.B. "Deutsche Telekom AG"
+			$i++; // cnt Person
+			// als eigene Tab-Zeile?
+			// 'Anteil' ist der Anteil der Berechtigten in Bruchteilen (Par. 47 GBO) an einem gemeinschaftlichen Eigentum (GrundstÃŒck oder Recht).
+			if ($rown["zaehler"] != "") {
+				echo "\n<tr>\n\t<td>&nbsp;</td>"; // Sp. 1
+				echo "\n\t<td><p class='avh' title='Anteil'>".$rown["zaehler"]."/".$rown["nenner"]." Anteil</p></td>";
+				echo "\n\t<td>&nbsp;</td>\n</tr>"; // Sp. 3
+			}
+		} // End Loop Person
+		if ($i == 0) { // kommt vor hinter Zeile Erbengemeinschaft, dann kein Fehler
+			if ($debug > 0) {
+				echo "\n<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>";
+				if ($rechtsg != 9999) {
+					echo "\n<p class='dbg'>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>";
+		}
+		$n++; // cnt NamNum
+	} // End Loop NamNum
+	echo "\n</table>\n";
+	if ($n == 0) {
+		if ($debug > 0) {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>";}
+	}	
+	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
+// Abweichend hier in singular fuer Link-Text
+function eigentuemerart($key) {
+	switch ($key) {
+		case 1000: $wert = "Nat&uuml;rliche Person"; break;
+		case 2000: $wert = "Juristische Person"; break;
+		case 3000: $wert = "K&ouml;rperschaft"; break;
+		case "":   $wert = "Person"; break; // falls (noch) nicht gefuellt
+		default:   $wert = "** Unbekannte Eigent&uuml;merart '".$key."' **"; 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;
+}
+?>
Index: /trunk/info/info/featureinfo.css
===================================================================
--- /trunk/info/info/featureinfo.css	(revision 219)
+++ /trunk/info/info/featureinfo.css	(revision 219)
@@ -0,0 +1,62 @@
+/* Style fuer Feature-Info-Request - nicht kommunal-spezifisch, Vers. 17.12.2009 */
+body {	background-color: #FCFCFC;}
+h1, h2, p, td, a, iframe, div {font-family:Verdana, Arial, Helvetica, sans-serif; color:navy;}
+h1	{color:navy;
+	font-size:13pt;
+	text-align:center;
+	border-bottom:2px solid #AAAAAA;
+	border-top:2px solid #AAAAAA;
+	margin-bottom:6px;}
+h2	{font-size:13pt;}
+p, td, a, iframe {font-size:11pt;}
+p.datum, a.datum {font-size: 7pt; text-align:right;}
+p.hinweis, td.hinweis, div.hinweis {font-size: 8pt;}
+p.err {	color: red; }
+/* Tabelle allgemein */
+td	{min-width:40px; border-bottom:1px solid gray;}
+/* Tabellenfeld invisible */
+td.inv {border-bottom:0px;}
+/* linke Tabellenspalte - Feldname */
+td.li, td.gr {
+	color:gray;
+	padding-left:8px;
+	padding-right:8px;
+	border-bottom:0px;
+	vertical-align:top; }
+/* Tabellenspalte - Gruppenueberschrift */
+td.gr {	margin-top:8px;
+	font-style:italic ;
+	font-stretch:expanded;
+	border-top:1px dotted #AAAAAA; }
+/* Tabellenspalte - Nav-Form gerahmt Google */
+td.nav, div.nav {
+	padding:8px;
+	margin:8px;
+	border:1px solid #AAAAAA;
+	background-color: #ffffdd;}
+/* Tabellenspalte - Nav-Form gerahmt OpenRouteService */
+td.ors, div.ors {
+	padding:8px;
+	margin:8px;
+	border:1px solid #AAAAAA;
+	background-color: #ddffdd;}
+/* cms2map */
+div.poi {text-align: center; }
+iframe.poi {
+	text-align: center;
+	margin: 1px;
+	padding: 1px;
+	align: middle;
+	height: 40px;
+	width: 96%;
+	scrolling: no;
+	frameborder: 0;
+	background-color: #fff5fa;}
+a.cms2map {background-color: #ffff22;}
+
+@media print {
+	body {
+		width: 100%;
+		background-color:white;
+	}
+}
Index: /trunk/info/conf/alkis_www_conf.php
===================================================================
--- /trunk/info/conf/alkis_www_conf.php	(revision 219)
+++ /trunk/info/conf/alkis_www_conf.php	(revision 219)
@@ -0,0 +1,31 @@
+<?php
+/*	alkis_www_conf.php
+	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+	Zentrale Einstellungen - Internet-Version
+	2011-07-25  PostNAS 0.5/0.6 Versionen unterscheiden
+	2011-07-26  debug-Parameter zur Fehlersuche
+*/
+
+// Datenbank-Zugangsdaten
+$dbhost = 'localhost';
+$dbport = '5432';
+$dbuser = '***';
+$dbpass = '***';
+$dbpre  = 'alkis';
+$dbvers = '06';
+
+// Entwicklung / Produktion
+$idumschalter = false;
+
+// Authentifizierung
+//$auth="mapbender";
+$auth="";  // ** temporaer deaktiviert **!
+$mapbender="/data/mapwww/http/php/mb_validateSession.php";
+
+// Link für Hilfe
+$hilfeurl = 'http://map.krz.de/mapwww/?Themen:ALKIS';
+
+
+// Entwicklungsumgebung
+$debug=3; // 0=Produktion, 1=mit Fehlermeldungen, 2=mit Informationen, 3=mit SQL
+?>
