Index: trunk/info/info/alkis/alkisfshist.php
===================================================================
--- trunk/info/info/alkis/alkisfshist.php	(revision 332)
+++ trunk/info/info/alkis/alkisfshist.php	(revision 333)
@@ -10,9 +10,9 @@
 	2012-11-27  Function split deprecated: explode
 	2013-04-08  deprecated "import_request_variables" ersetzt
-	2014-09-03  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
+	2014-09-15  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
 */
 
 function fzerleg($fs) {
-/*	FlurstÃÂŒckskennzeichen (20) zerlegen als lesbares Format (wie im Balken):
+/*	Flurstueckskennzeichen (20) zerlegen als lesbares Format (wie im Balken):
 	Dies FS-Kennz-Format wird auch als Eingabe in der Navigation akzeptiert 
    ....*....1....*....2
@@ -82,8 +82,7 @@
 	// 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";
+	$sqlv.="SELECT 'h' AS ftyp, gml_id, flurstueckskennzeichen FROM ax_historischesflurstueck h ".$wherecl
+	."UNION SELECT 'o' AS ftyp, gml_id, flurstueckskennzeichen FROM ax_historischesflurstueckohneraumbezug o ".$wherecl
+	."ORDER BY flurstueckskennzeichen";
 
 	$v=array($fsk);
@@ -146,5 +145,5 @@
 	$whereclause="WHERE gml_id= $1 ";
 	$v = array($gmlid);
-} else {	// Alternativ: das FlurstÃÂŒcks-Kennzeichen wurde ÃÂŒbergeben
+} else {	// Alternativ: Flurst.-Kennz. uebergeben
 	if ($fskennz != "") {
 		$parmtyp="Flurst&uuml;ckskennzeichen";
@@ -163,13 +162,8 @@
 	$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;
-	
+	$sqlu ="SELECT 'a' AS ftyp, ".$felder."null AS nach, null AS vor, null AS \"name\" FROM ax_flurstueck f ".$whereclause." AND f.endet IS NULL "
+	."UNION SELECT 'h' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueck h ".$whereclause." AND h.endet IS NULL "
+	."UNION SELECT 'o' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueckohneraumbezug o ".$whereclause." AND o.endet IS NULL;";
+
 	$resu = pg_prepare("", $sqlu);
 	$resu = pg_execute("", $v);
@@ -185,5 +179,4 @@
 		$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);
@@ -191,5 +184,5 @@
 		$vor=$rowu["vor"];
 		$nach=$rowu["nach"];
-		if ($gmlid == "") {$gmlid=$rowu["gml_id"];} // fÃÂŒr selbst-link-Umschalter ueber footer
+		if ($gmlid == "") {$gmlid=$rowu["gml_id"];} // fuer selbst-link-Umschalter ueber footer
 	} else {
 		if ($debug > 1) {echo "<br><p class='err'>Fehler! Kein Treffer f&uuml;r ".$parmtyp." = '".$parmval."'</p><br>";}
@@ -198,5 +191,5 @@
 }
 
-switch ($ftyp) { // Unterschiede Historisch/Aktuell
+switch ($ftyp) { // Unterschiede Hist./Aktuell
 	case 'a': 
 		$wert = "aktuell";
Index: trunk/info/info/alkis/alkishaus.php
===================================================================
--- trunk/info/info/alkis/alkishaus.php	(revision 332)
+++ trunk/info/info/alkis/alkishaus.php	(revision 333)
@@ -51,16 +51,13 @@
 
 // // 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, ";
-$sqlg.="d.bezeichner AS bdach, round(area(g.wkb_geometry)::numeric,2) AS gebflae 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_dachform d ON g.dachform=d.wert ";
-
-$sqlg.="WHERE g.gml_id= $1 AND g.endet IS NULL ;";
+$sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, g.anzahlderoberirdischengeschosse AS aog, g.anzahlderunterirdischengeschosse AS aug, 
+g.lagezurerdoberflaeche, g.dachgeschossausbau, g.zustand, g.weiteregebaeudefunktion, g.dachform, g.hochhaus, g.objekthoehe, g.geschossflaeche, g.grundflaeche, g.umbauterraum, g.baujahr, g.dachart, g.qualitaetsangaben, 
+h.bauweise_beschreibung, u.bezeichner AS bfunk, z.bezeichner AS bzustand, "; // w.bezeichner AS bweitfunk,
+$sqlg.="d.bezeichner AS bdach, round(area(g.wkb_geometry)::numeric,2) AS gebflae FROM ax_gebaeude g 
+LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise=h.bauweise_id 
+LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert 
+LEFT JOIN ax_gebaeude_zustand z ON g.zustand=z.wert 
+LEFT JOIN ax_gebaeude_dachform d ON g.dachform=d.wert
+WHERE g.gml_id= $1 AND g.endet IS NULL ;";
 
 $v = array($gmlid);
Index: trunk/info/info/alkis/alkisinlayausk.php
===================================================================
--- trunk/info/info/alkis/alkisinlayausk.php	(revision 332)
+++ trunk/info/info/alkis/alkisinlayausk.php	(revision 333)
@@ -19,5 +19,5 @@
 	2014-02-06 pg_free_result
 	2014-09-04 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2014-09-10 Bei Relationen den Timestamp abschneiden
+	2014-09-15 Bei Relationen den Timestamp abschneiden
 */
 session_start();
@@ -52,7 +52,7 @@
 
 // *** 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 LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
-$sql.="WHERE f.gml_id= $1 ;";
+$sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung 
+FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
+WHERE f.gml_id= $1 AND f.endet IS NULL ;";
 // Weiter joinen: g.stelle -> ax_dienststelle "Katasteramt"
 $v = array($gmlid);
@@ -114,5 +114,6 @@
 FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16)=ANY(f.weistauf)
 JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
-WHERE f.gml_id= $1 ORDER BY s.bezeichnung, l.hausnummer;";
+WHERE f.gml_id= $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL 
+ORDER BY s.bezeichnung, l.hausnummer;";
 
 $v=array($gmlid); // id FS
@@ -148,5 +149,6 @@
 	FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON substring(l.gml_id,1,16)=ANY(f.zeigtauf)
 	LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
-	WHERE f.gml_id= $1 ORDER BY s.bezeichnung;";
+	WHERE f.gml_id= $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL  
+	ORDER BY s.bezeichnung;";
 
 	$v=array($gmlid);
@@ -197,5 +199,6 @@
 LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk 
 LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart=a.wert 
-WHERE f.gml_id= $1 ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;";
+WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL 
+ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;";
 
 $v=array($gmlid);
Index: trunk/info/info/alkis/alkisbestnw.php
===================================================================
--- trunk/info/info/alkis/alkisbestnw.php	(revision 332)
+++ trunk/info/info/alkis/alkisbestnw.php	(revision 333)
@@ -12,5 +12,5 @@
 	2013-04-08 deprecated "import_request_variables" ersetzt
 	2014-09-10 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2014-09-10 Bei Relationen den Timestamp abschneiden
+	2014-09-15 Bei Relationen den Timestamp abschneiden
 
 	ToDo: ZÃ€hler fuer Anzahl FS in der Liste
@@ -119,5 +119,5 @@
 	WHERE sh.istbestandteilvon= $1 AND sd.endet IS NULL AND sh.endet IS NULL;";
 
-	$v=array(substr($gmlid,1,16)); // GB-Blatt, in Relation immer nur 16 Zeichen
+	$v=array(substr($gmlid,0,16)); // GB-Blatt, in Relation immer nur 16 Zeichen
 	$res=pg_prepare("", $sql);
 	$res=pg_execute("", $v);
@@ -164,5 +164,5 @@
 WHERE s.istbestandteilvon= $1 AND s.endet IS NULL ORDER BY cast(s.laufendenummer AS integer);";
 
-$v=array($gmlid);
+$v=array(substr($gmlid,0,16)); //  Rel. istbestandteilvon nur 16 Zeichen
 $res=pg_prepare("", $sql);
 $res=pg_execute("", $v);
@@ -170,13 +170,13 @@
 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>";}
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".substr($gmlid,0,16)."'</p>";}
 }
 $i=0;
 $fscnt=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
+	$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"] == "") {
@@ -231,9 +231,9 @@
 			$b=0;
 			while($fbrow = pg_fetch_array($fbres)) { // genau 1
-				$fbgml   = $fbrow["gml_id"];
-				$fbland  = $fbrow["land"];
-				$fbbez   = $fbrow["bezirk"];
+				$fbgml  = $fbrow["gml_id"];
+				$fbland = $fbrow["land"];
+				$fbbez  = $fbrow["bezirk"];
 				$fbblatt = $fbrow["blatt"];
-				$fbbart  = blattart($fbrow["blattart"]);
+				$fbbart = blattart($fbrow["blattart"]);
 				$beznam	= $fbrow["beznam"];
 				$b++;
@@ -323,5 +323,5 @@
 				echo "</td>";
 				echo "\n\t<td colspan=7>";
-					echo "<p class='warn'>Flurst&uuml;cke zu ".$bvnr." nicht im Datenbestand.</p>";
+					echo "<p class='warn'>Flurst&uuml;cke zu ".$bvnr." nicht gefunden.</p>";
 				echo "</td>";
 			echo "\n</tr>";
@@ -347,5 +347,5 @@
 } else {
 	if ($i > 5 and $fscnt > 5) { // nur wenn nicht auf einen Blick zu erkennen
-		echo "\n<p class='dbg'>".$i." Buchungen mit ".$fscnt." Flurst&uuml;cken</p>\n";
+		echo "\n<p class='cnt'>".$i." Buchungen mit ".$fscnt." Flurst&uuml;cken</p>\n";
 	}
 }
@@ -366,10 +366,10 @@
 WHERE sf.istbestandteilvon = $1 AND sf.endet IS NULL AND sb.endet IS NULL AND bb.endet IS NULL ORDER BY bb.land, bb.bezirk, bb.buchungsblattnummermitbuchstabenerweiterung;";
 
-$v = array($gmlid);
+$v = array(substr($gmlid,0,16)); // nur 16 Zeichen in Relation
 $resb = pg_prepare("", $sql);
 $resb = pg_execute("", $v);
 if (!$resb) {
 	echo "<p class='err'>Fehler bei 'andere Berechtigte Bl&auml;tter.</p>\n";
-	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".substr($gmlid,0,16)."'</p>";}
 }
 $b=0; // count: Blaetter
Index: trunk/info/info/alkis/alkisausk.php
===================================================================
--- trunk/info/info/alkis/alkisausk.php	(revision 332)
+++ trunk/info/info/alkis/alkisausk.php	(revision 333)
@@ -15,7 +15,5 @@
 	2013-04-08 deprecated "import_request_variables" ersetzt
 	2014-01-28 Link zu alkisstrasse.php
-	2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-
-+++ NOCH UMSTELLEN:  alkis_beziehungen
+	2014-09-15 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
 
 */
@@ -50,9 +48,7 @@
 
 // *** 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"
+$sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung 
+FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer
+WHERE f.gml_id= $1 AND f.endet IS NULL;";
 
 $v = array($gmlid);
@@ -139,10 +135,9 @@
 
 // Lagebezeichnung MIT Hausnummer (Adresse)
-$sql ="SELECT DISTINCT l.gml_id, s.gml_id AS kgml, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung ";
-$sql.="FROM alkis_beziehungen v ";
-$sql.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=substring(l.gml_id,1,16) "; // Strassennamen JOIN
-$sql.="LEFT 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' ";// id FS";
-$sql.="ORDER BY l.gemeinde, l.lage, l.hausnummer;";
+$sql ="SELECT DISTINCT l.gml_id, s.gml_id AS kgml, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung 
+FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16)=ANY(f.weistauf)
+LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
+WHERE f.gml_id= $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL ORDER BY l.gemeinde, l.lage, l.hausnummer;";
+
 $v = array($gmlid);
 $res = pg_prepare("", $sql);
@@ -174,18 +169,13 @@
 // *** 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;";
+// ALKIS: FS >istgebucht> GS >istBestandteilVon> GB.
+$sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, 
+s.gml_id AS s_gml, s.buchungsart, s.laufendenummer, s.zaehler, s.nenner, z.bezeichnung, a.bezeichner AS bart 
+FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=s.gml_id 
+JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id 
+LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk 
+LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert 
+WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL AND b.endet IS NULL 
+ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;";
 
 $v = array($gmlid);
@@ -260,7 +250,7 @@
 
 		// Ausgabe Name in Function
-		$n = eigentuemer($con, $rowg["gml_id"], false); // ohne Adressen
-
-		if ($n == 0) { // keine Namensnummer, kein Eigentuemer
+		$n = eigentuemer($con, $rowg["gml_id"], false); // ohne Adr.
+
+		if ($n == 0) { // keine NamNum, kein Eigent.
 			echo "\n<p class='err'>Keine Eigent&uuml;mer gefunden.</p>";
 			echo "\n<p class='err'>Bezirk ".$rowg["bezirk"]." Blatt ".$rowg["blatt"]." Blattart ".$blattkey." (".$blattart.")</p>";
Index: trunk/info/info/alkis/alkisgebaeudenw.php
===================================================================
--- trunk/info/info/alkis/alkisgebaeudenw.php	(revision 332)
+++ trunk/info/info/alkis/alkisgebaeudenw.php	(revision 333)
@@ -43,5 +43,5 @@
 $sqlf ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, f.zeitpunktderentstehung, g.gemarkungsnummer, g.bezeichnung 
 FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
-WHERE f.gml_id= $1;";
+WHERE f.gml_id= $1 AND f.endet IS NULL;";
 $v=array($gmlid);
 $resf=pg_prepare("", $sqlf);
@@ -106,6 +106,5 @@
 
 // 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, ";
+$sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, h.bauweise_beschreibung, u.bezeichner, g.zustand, z.bezeichner AS bzustand, ";
 
 // GEB-Flaeche komplett auch die Fl. ausserhalb des FS
@@ -122,16 +121,14 @@
 
 // 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
+$sqlg.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise=h.bauweise_id 
+LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert 
+LEFT JOIN ax_gebaeude_zustand z ON g.zustand=z.wert 
+WHERE f.gml_id= $1 AND f.endet IS NULL and g.endet IS NULL "; // ID des akt. FS
 
 // "within" -> nur Geb., die komplett im FS liegen
-// "intersects" -> ueberlappende Fl.
+// "intersects" -> auch teil-ueberlappende Flst.
 $sqlg.="AND st_intersects(g.wkb_geometry,f.wkb_geometry) = true ";
-
-// RLP: keine Relationen zu NebengebÃ€uden:
-// auf Qualifizierung verzichten, sonst werden NebengebÃ€ude nicht angezeigt
-	//$sqlg.="AND (v.beziehungsart='zeigtAuf' OR v.beziehungsart='hat') ";
+// RLP: keine Relationen zu NebengebÃ€uden. Auf Qualifizierung verzichten, sonst werden NebengebÃ€ude nicht angezeigt
+//$sqlg.="AND (v.beziehungsart='zeigtAuf' OR v.beziehungsart='hat') ";
 $sqlg.="ORDER BY schnittflae DESC;";
 
@@ -203,5 +200,5 @@
 			$sqll.="FROM ax_gebaeude g JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16)=ANY(g.zeigtauf) ";
 			$sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
-			$sqll.="WHERE g.gml_id= $1 ";
+			$sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL ";
 
 			// oder NEBENgebÃ€ude  Geb >hat> Pseudo
@@ -209,5 +206,5 @@
 			$sqll.="FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON substring(l.gml_id,1,16)=g.hat ";
 			$sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
-			$sqll.="WHERE g.gml_id= $1 "; // ID des Hauses"
+			$sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; // ID des Hauses"
 		
 			$sqll.="ORDER BY bezeichnung, hausnummer;";
Index: trunk/info/info/alkis/alkislage.php
===================================================================
--- trunk/info/info/alkis/alkislage.php	(revision 332)
+++ trunk/info/info/alkis/alkislage.php	(revision 333)
@@ -10,5 +10,5 @@
 	2014-01-23 gml des Katalogs, Link auf Modul "strasse"
 	2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2014-09-10 Bei Relationen den Timestamp abschneiden
+	2014-09-15 Bei Relationen den Timestamp abschneiden
 
 	ToDo:
@@ -78,5 +78,5 @@
 LEFT JOIN ax_lagebezeichnungkatalogeintrag s 
 ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
-WHERE l.gml_id= $1;";
+WHERE l.gml_id= $1 AND l.endet IS NULL AND s.endet IS NULL AND g.endet IS NULL;";
 
 $v = array($gmlid);
@@ -144,5 +144,5 @@
 echo "<p>Typ: ".$untertitel."</p>";
 
-echo "\n<table class='outer'>\n<tr>\n\t<td>"; 	// Tabelle Kennzeichen
+echo "\n<table class='outer'>\n<tr>\n\t<td>"; 	// Tab. Kennz.
 	// ToDo: !! kleiner, wenn ltyp=0 und die Schluesselfelder leer sind
 	echo "\n\t<table class='kennzla' title='Lage'>";
@@ -234,6 +234,6 @@
 
 // F L U R S T U E C K E
-	// ax_Flurstueck  >weistAuf>  ax_LagebezeichnungMitHausnummer
-	// ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer
+// ax_Flurstueck  >weistAuf>  ax_LagebezeichnungMitHausnummer
+// ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer
 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";
@@ -244,16 +244,15 @@
 	}
 
-	$sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche ";
-	$sql.="FROM ax_flurstueck f ";
-	$sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
-	$sql.="WHERE $1 = ANY(f.".$bezart.")";
-	$sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
-
-	$v = array($gmlid);
+	$sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche 
+	FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
+	WHERE $1 = ANY(f.".$bezart.") AND f.endet IS NULL AND g.endet IS NULL 
+	ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
+
+	$v = array(substr($gmlid,0,16)); // Relation nur mit 16 Stellen 
 	$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>";}	
+		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".substr($gmlid,0,16)."'</p>";}	
 	}
 
@@ -291,4 +290,7 @@
 	}
 	echo "\n</table>";
+	if ($j > 6) {
+		echo "<p class='cnt'>".$j." Flurst&uuml;cke</p>";
+	}
 }
 
@@ -310,6 +312,5 @@
 			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),
+			$sql.=$whereclaus."AND lage= $6 AND pseudonummer= $7 AND l.endet IS NULL ORDER BY laufendenummer;";
 
 			$v = array($land,$regbez,$kreis,$gem,$lage,$lage,$hsnr);
@@ -329,5 +330,5 @@
 			echo "\n<p>Hauptgeb&auml;ude: ";
 			$sql ="SELECT l.gml_id FROM ax_lagebezeichnungmithausnummer l ";
-			$sql.=$whereclaus."AND hausnummer= $6;";
+			$sql.=$whereclaus."AND hausnummer= $6 AND l.endet IS NULL ;";
 
 			$v = array($land,$regbez,$kreis,$gem,$lage,$pseu);
@@ -343,5 +344,5 @@
 			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;";
+			$sql.=$whereclaus."AND pseudonummer= $6 AND laufendenummer <> $7 AND l.endet IS NULL ORDER BY laufendenummer;";
 			$v = array($land,$regbez,$kreis,$gem,$lage,$pseu,$lfd);
 			$res = pg_prepare("", $sql);
@@ -369,14 +370,12 @@
 	$sql ="SELECT g.gml_id, g.gebaeudefunktion, g.name, g.bauweise, g.grundflaeche, g.zustand, round(area(g.wkb_geometry)::numeric,2) AS flaeche, h.bauweise_beschreibung, u.bezeichner 
 	FROM ax_gebaeude g LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise=h.bauweise_id 
-	LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert ";
-	// +++ JOIN Zustand
-	$sql.="WHERE $1 = ".$bezart.";";
-
-	$v = array($gmlid);
+	LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert WHERE $1 = ".$bezart." AND g.endet IS NULL;";
+
+	$v = array(substr($gmlid,0,16)); // 16 St. in Rel.
 	$res = pg_prepare("", $sql);
 	$res = pg_execute("", $v);
 	if (!$res) {
 		echo "<p class='err'>Fehler bei Geb&auml;ude.</p>\n";
-		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".substr($gmlid,0,16)."'</p>";}
 	}
 	echo "\n<table class='geb'>";
Index: trunk/info/info/alkis/alkisfsnw.php
===================================================================
--- trunk/info/info/alkis/alkisfsnw.php	(revision 332)
+++ trunk/info/info/alkis/alkisfsnw.php	(revision 333)
@@ -21,5 +21,5 @@
 	2014-02-06 Korrektur
 	2014-09-09 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2014-09-10 Bei Relationen den Timestamp abschneiden
+	2014-09-15 Bei Relationen den Timestamp abschneiden
 
 	ToDo:
@@ -95,5 +95,5 @@
 	// Feld flurstueckskennzeichen ist in DB indiziert
 	// Format z.B.'052647002001910013__' oder '05264700200012______'
-	$sql ="SELECT gml_id FROM ax_flurstueck WHERE flurstueckskennzeichen= $1 ;";
+	$sql ="SELECT gml_id FROM ax_flurstueck WHERE flurstueckskennzeichen= $1 AND endet IS NULL ;";
 
 	$v = array($fskzdb);
@@ -195,5 +195,5 @@
 
 // G e m e i n d e
-$sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk= $1 AND kreis= $2 AND gemeinde= $3"; 
+$sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk= $1 AND kreis= $2 AND gemeinde= $3 AND endet IS NULL;"; 
 
 $v = array($bezirk,$kreis,$gemeinde);
@@ -224,5 +224,5 @@
 
 // K r e i s
-$sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk= $1 AND kreis= $2"; 
+$sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk= $1 AND kreis= $2 AND endet IS NULL;"; 
 $v = array($bezirk,$kreis);
 $res = pg_prepare("", $sql);
@@ -242,5 +242,5 @@
 
 // R e g - B e z
-$sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk= $1 ";
+$sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk= $1 AND endet IS NULL;";
 $v = array($bezirk);
 $res = pg_prepare("", $sql);
@@ -267,5 +267,6 @@
 FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16) = ANY(f.weistauf)  
 JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
-WHERE f.gml_id= $1 ORDER BY l.gemeinde, l.lage, l.hausnummer;";
+WHERE f.gml_id= $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL    
+ORDER BY l.gemeinde, l.lage, l.hausnummer;";
 
 $v = array($gmlid);
@@ -316,5 +317,5 @@
 FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON substring(l.gml_id,1,16)=ANY(f.zeigtauf) 
 LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
-WHERE f.gml_id = $1 ;";
+WHERE f.gml_id = $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL;";
 
 $v = array($gmlid);
@@ -370,11 +371,11 @@
 // ** N U T Z U N G ** Gemeinsame FlÃ€che von NUA und FS
 // Tabellenzeilen (3 Spalten) mit tats. Nutzung zu einem FS ausgeben
-$sql ="SELECT m.title, m.fldclass, m.fldinfo, n.gml_id, n.nutz_id, n.class, n.info, n.zustand, n.name, n.bezeichnung, m.gruppe, ";
-$sql.="st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) AS schnittflae, c.label, c.blabla ";
-$sql.="FROM ax_flurstueck f, nutzung n 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 AND st_intersects(n.wkb_geometry,f.wkb_geometry) = true "; // id FS, ueberlappende Flaechen
-$sql.="AND st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) > 0.05 "; // unter Rundung
-$sql.="ORDER BY schnittflae DESC;";
+$sql ="SELECT m.title, m.fldclass, m.fldinfo, n.gml_id, n.nutz_id, n.class, n.info, n.zustand, n.name, n.bezeichnung, m.gruppe, 
+st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) AS schnittflae, c.label, c.blabla 
+FROM ax_flurstueck f, nutzung n JOIN nutzung_meta m ON m.nutz_id=n.nutz_id 
+LEFT JOIN nutzung_class c ON c.nutz_id=n.nutz_id AND c.class=n.class 
+WHERE f.gml_id= $1 AND st_intersects(n.wkb_geometry,f.wkb_geometry) = true 
+AND st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) > 0.05 
+AND f.endet IS NULL ORDER BY schnittflae DESC;";
 
 $v = array($gmlid);
@@ -499,14 +500,16 @@
 //  b.name, b.artderfestlegung, 
 
-$sql_boden ="SELECT a.wert, a.bezeichner AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez, ";
-$sql_boden.="b.name AS verf_name, d.bezeichnung AS stelle_bez, d.stelle AS stelle_key ";
-$sql_boden.="FROM ax_bauraumoderbodenordnungsrecht b JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON a.wert=b.artderfestlegung ";
-$sql_boden.="LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle ";
-$sql_boden.="WHERE ST_Within((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry) ";
-$sql_boden.="OR ST_Overlaps((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry)";
+$sql_boden ="SELECT a.wert, a.bezeichner AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez, 
+b.name AS verf_name, d.bezeichnung AS stelle_bez, d.stelle AS stelle_key 
+FROM ax_bauraumoderbodenordnungsrecht b JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON a.wert=b.artderfestlegung 
+LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle 
+WHERE b.endet IS NULL AND d.endet IS NULL  
+AND ST_Within((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 ), wkb_geometry) 
+OR ST_Overlaps((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 ), wkb_geometry)";
+
 pg_prepare($con, "bodeneuordnung", $sql_boden);
 $res_bodeneuordnung = pg_execute($con, "bodeneuordnung", array($gmlid));
 
-$sql_str = "SELECT gml_id FROM ax_besondereflurstuecksgrenze WHERE 1000 = ANY(artderflurstuecksgrenze) AND ST_touches((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry);";
+$sql_str = "SELECT gml_id FROM ax_besondereflurstuecksgrenze WHERE endet IS NULL AND 1000 = ANY(artderflurstuecksgrenze) AND ST_touches((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry);";
 pg_prepare($con, "strittigeGrenze", $sql_str);
 $res_strittigeGrenze = pg_execute($con, "strittigeGrenze", array($gmlid));
@@ -615,5 +618,5 @@
 FROM ax_flurstueck f JOIN ax_buchungsstelle s ON substring(s.gml_id,1,16)=f.istgebucht 
 LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart=b.wert 
-WHERE f.gml_id= $1 ORDER BY s.laufendenummer;";
+WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL ORDER BY s.laufendenummer;";
 
 $v = array($gmlid);
@@ -631,8 +634,9 @@
 
 	// B U C H U N G S B L A T T  zur Buchungsstelle (istBestandteilVon)
-	$sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung ";
-	$sql.="FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=s.istbestandteilvon ";
-	$sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk ";
-	$sql.="WHERE s.gml_id = $1 ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;";
+	$sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung 
+	FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=s.istbestandteilvon 
+	LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk 
+	WHERE s.gml_id = $1 AND s.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL
+	ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;";
 
 	$v = array($gmls);
@@ -742,19 +746,19 @@
 	}
 
-	// Buchungstelle  >an>  Buchungstelle  >istBestandteilVon>  BLATT  ->  Bezirk
-	$sql ="SELECT sd.gml_id AS s_gml, sd.buchungsart, sd.laufendenummer as lfd, sd.zaehler, sd.nenner, sd.nummerimaufteilungsplan as nrpl, sd.beschreibungdessondereigentums as sond, ";
-	$sql.="b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung, a.bezeichner AS bart ";
-	$sql.="FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON substring(sd.gml_id,1,16)=ANY(sh.an) "; // Stelle >an> Stelle
-	$sql.="JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=sd.istbestandteilvon  ";// Stelle >istbestandteilvon> Blatt
-	$sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk ";
-	$sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON sd.buchungsart=a.wert ";
-	$sql.="WHERE sh.gml_id= $1 "; // id herrschende Buchungsstelle
-	$sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
-
-	$v = array($gmls);
+	// Buchungstelle >an> Buchungstelle >istBestandteilVon> BLATT -> Bezirk
+	$sql ="SELECT sd.gml_id AS s_gml, sd.buchungsart, sd.laufendenummer as lfd, sd.zaehler, sd.nenner, sd.nummerimaufteilungsplan as nrpl, sd.beschreibungdessondereigentums as sond, 
+	b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung, a.bezeichner AS bart 
+	FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON substring(sd.gml_id,1,16)=ANY(sh.an) 
+	JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=sd.istbestandteilvon  
+	LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk 
+	LEFT JOIN ax_buchungsstelle_buchungsart a ON sd.buchungsart=a.wert 
+	WHERE sh.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL
+	ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
+
+	$v = array($gmls); // id herrschende Buchungsstelle
 	$resan = pg_prepare("", $sql);
 	$resan = pg_execute("", $v);
 	if (!$resan) {
-		echo "\n<p class='err'>Keine weiteren Buchungsstellen.</p>\n";
+		echo "\n<p class='err'>Fehler bei 'weitere Buchungsstellen'.</p>\n";
 		if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmls."'</p>";}
 	}
Index: trunk/info/info/alkis/alkisauszug.css
===================================================================
--- trunk/info/info/alkis/alkisauszug.css	(revision 332)
+++ trunk/info/info/alkis/alkisauszug.css	(revision 333)
@@ -11,4 +11,5 @@
 	2013-06-27	p.recht
 	2014-01-27	strasse, hsnr, Print-Balken
+	2014-09-15  PostNAS 0.8: p.cnt
 */
 body	{background-color: #FDFFFD;}
@@ -41,4 +42,5 @@
 p.err		{font-size: 11px; color: red;}		/* Fehler -> Anwender */
 p.dbg		{font-size: 10px; color: gray;}		/* Debug -> Entwickler */
+p.cnt		{font-size: 10px; color: gray;}		/* Counter, Zaehler */
 p.warn		{color: gray; font-style: italic;}	/* Warnung, Hinweis */
 p.ph		{color: gray;}						/* Platzhalter */
Index: trunk/info/info/alkis/alkisstrasse.php
===================================================================
--- trunk/info/info/alkis/alkisstrasse.php	(revision 332)
+++ trunk/info/info/alkis/alkisstrasse.php	(revision 333)
@@ -11,5 +11,5 @@
 	2014-01-30 pg_free_result
 	2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2014-09-10 Bei Relationen den Timestamp abschneiden
+	2014-09-15 Bei Relationen den Timestamp abschneiden
 */
 session_start();
@@ -55,5 +55,5 @@
 JOIN ax_gemeinde g ON s.land=g.land AND s.regierungsbezirk=g.regierungsbezirk AND s.kreis=g.kreis AND s.gemeinde=g.gemeinde 
 LEFT JOIN ax_lagebezeichnungohnehausnummer o ON s.land=o.land AND s.regierungsbezirk=o.regierungsbezirk AND s.kreis=o.kreis AND s.gemeinde=o.gemeinde AND s.lage=o.lage 
-WHERE s.gml_id= $1 ;"; 
+WHERE s.gml_id= $1 AND s.endet IS NULL AND o.endet IS NULL ;"; 
 
 $v=array($gmlid);
@@ -139,6 +139,8 @@
 $subquery = "SELECT f1.gml_id AS fsgml, lm.gml_id AS lgml, lm.land, lm.regierungsbezirk, lm.kreis, lm.gemeinde, lm.lage, lm.hausnummer 
  FROM ax_flurstueck f1 JOIN ax_lagebezeichnungmithausnummer lm ON substring(lm.gml_id,1,16)=ANY(f1.weistAuf) 
+ WHERE f1.endet IS NULL AND lm.endet IS NULL
 UNION SELECT f2.gml_id AS fsgml, '' AS lgml, lo.land, lo.regierungsbezirk, lo.kreis, lo.gemeinde, lo.lage, '' AS hausnummer 
- FROM ax_flurstueck f2 JOIN ax_lagebezeichnungohnehausnummer lo ON substring(lo.gml_id,1,16)=ANY(f2.zeigtauf) ";
+ FROM ax_flurstueck f2 JOIN ax_lagebezeichnungohnehausnummer lo ON substring(lo.gml_id,1,16)=ANY(f2.zeigtauf) 
+ WHERE f2.endet IS NULL AND lo.endet IS NULL";
 
 $sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, duett.lgml, duett.hausnummer 
@@ -146,5 +148,6 @@
  JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
  JOIN ax_lagebezeichnungkatalogeintrag s ON duett.land=s.land AND duett.regierungsbezirk=s.regierungsbezirk AND duett.kreis=s.kreis AND duett.gemeinde=s.gemeinde AND duett.lage=s.lage 
-WHERE s.gml_id = $1 ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
+WHERE s.gml_id = $1 AND f.endet IS NULL AND s.endet IS NULL 
+ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
 
 $v=array($gmlid);
@@ -166,4 +169,5 @@
 echo "\n</tr>";
 $j=0;
+$cnths=0; // Count Haus
 while($rowf = pg_fetch_array($resf)) {
 	$flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT);
@@ -190,4 +194,5 @@
 				if ($showkey)   {echo "&amp;showkey=j";}
 				echo "' title='Lage Mit Hausnummer'>Lage <img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''></a>&nbsp;";
+				$cnths++;
 			}
 
@@ -202,4 +207,11 @@
 }
 echo "\n</table>";
+if ($j > 6) {
+	echo "<p class='cnt'>".$j." Flurst&uuml;cke";
+	if ($cnths > 4) {
+		echo ", ".$cnths." H&auml;user";
+	}
+	echo "</p>";
+}
 pg_free_result($res);
 ?>
Index: trunk/info/info/alkis/alkisfkt.php
===================================================================
--- trunk/info/info/alkis/alkisfkt.php	(revision 332)
+++ trunk/info/info/alkis/alkisfkt.php	(revision 333)
@@ -12,5 +12,5 @@
 	2014-02-06 Korrektur EigentÃŒmerart
 	2014-09-09 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2014-09-10 Bei Relationen den Timestamp abschneiden
+	2014-09-15 Bei Relationen den Timestamp abschneiden
 */
 
@@ -90,13 +90,26 @@
 	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;
+	Table-Tag und Kopfzeile im aufrufenden Programm. */
+	global $debug, $gkz, $idanzeige, $showkey;
 
 	// F L U R S T U E C K
-	$sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche ";
-	$sql.="FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=substring(s.gml_id,1,16) "; 
-	$sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
-	$sql.="WHERE s.gml_id= $1 ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
+	$sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche 
+	FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=substring(s.gml_id,1,16) 
+	LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
+	WHERE s.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL AND g.endet IS NULL ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
+
+/*
+SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, 
+  f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche 
+FROM ax_flurstueck f 
+JOIN ax_buchungsstelle s ON f.istgebucht=substring(s.gml_id,1,16) 
+LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
+WHERE s.gml_id= 'DENW18AL00001hHb' 
+  AND f.endet IS NULL 
+  AND s.endet IS NULL 
+  AND g.endet IS NULL 
+ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;
+
+$1 = 'DENW18AL00001hHb' */
 
 	$v = array($gml_bs);
@@ -113,10 +126,4 @@
 	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"];
@@ -124,5 +131,4 @@
 			$fskenn.="/".$rowf["nenner"];
 		}
-
 		$flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m&#178;";
 
@@ -171,4 +177,14 @@
 		$j++;
 	} // Ende Flurstueck
+
+	if ($j == 0 ) { // nur Entw.
+		if ($debug > 1) {
+			echo "<p class='dbg'>Keine FS gefunden</p>";
+		}
+		if ($debug > 2) {
+			echo "<p class='dbg'>SQL='".$sql."'<br>$1 = '".$gml_bs."'</p>";
+		}
+	}
+
 	pg_free_result($resf);
 	return $j;
@@ -199,5 +215,5 @@
 	$sqln.="FROM ax_namensnummer n WHERE n.istbestandteilvon= $1 AND n.endet IS NULL ORDER BY n.laufendenummernachdin1421;";
 
-	$v = array($gmlid);
+	$v = array(substr($gmlid,0,16)); // 16 Stellen bei Relationen
 	$resn = pg_prepare("", $sqln);
 	$resn = pg_execute("", $v);
@@ -205,5 +221,5 @@
 	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>";}
+		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqln."<br>$1=gml= '".substr($gmlid,0,16)."'</p>";}
 	}
 
@@ -369,8 +385,7 @@
 	} // End Loop NamNum
 	echo "\n</table>\n";
-	if ($n == 0) {
-		// kommt vor bei "Fiktives Blatt", kein Fehler 
+	if ($n == 0) { // bei "Fiktives Blatt" KEIN Fehler 
 		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>";}
+		if ($debug > 2) {echo "<p class='dbg'>Namensnummern: SQL=<br>".$sqln."<br>$1=gml(Blatt)= '".substr($gmlid,0,16)."'</p>";}
 	}
 	pg_free_result($resn);
