Index: trunk/info/info/alkisn/alkislage.php
===================================================================
--- trunk/info/info/alkisn/alkislage.php	(revision 422)
+++ trunk/info/info/alkisn/alkislage.php	(revision 425)
@@ -6,9 +6,11 @@
 
 	Version:
-	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-02-24 Version fÃŒr norGIS-ALKIS-Import
 	....
 	2020-02-20 Authentifizierung ausgelagert in Function darf_ich()
 	2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF']
 	2020-12-15 Input-Validation und Strict Comparisation (===)
+	2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÃ€che)
+               Gemarkung und Flur bei Gruppenwechsel FETT anzeigen
 
 	ToDo:
@@ -67,8 +69,9 @@
 
 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); }
+$dbg=$debug; // CONF in Arbeits-Variable
 
 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten.
-// Manuell an die URL anfÃŒgen, wirkt nur temporÃ€r und wird nicht in Links weiter gereicht.
-if ($nodebug === "j") {$debug=0;} 
+// Wirkt temporÃ€r und wird nicht in Links weiter gereicht.
+if ($nodebug === "j") {$dbg=0;} 
 
 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkislage.php'");
@@ -90,9 +93,9 @@
 // "Left" weil: Bei sub-Typ "Gewanne" von Typ "o" sind keine SchlÃŒsselfelder gefÃŒllt!
 $sql.="FROM ".$tnam." l 
-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 
-LEFT JOIN ax_kreisregion k ON l.land=k.land AND l.regierungsbezirk=k.regierungsbezirk AND l.kreis=k.kreis 
-LEFT JOIN ax_regierungsbezirk r ON l.land=r.land AND l.regierungsbezirk=r.regierungsbezirk 
-LEFT JOIN ax_bundesland b ON l.land=b.land 
-LEFT JOIN ax_lagebezeichnungkatalogeintrag s 
+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 ".UnqKatAmt("l","g")
+."LEFT JOIN ax_kreisregion k ON l.land=k.land AND l.regierungsbezirk=k.regierungsbezirk AND l.kreis=k.kreis ".UnqKatAmt("l","k")
+."LEFT JOIN ax_regierungsbezirk r ON l.land=r.land AND l.regierungsbezirk=r.regierungsbezirk ".UnqKatAmt("l","r")
+."LEFT JOIN ax_bundesland b ON l.land=b.land ".UnqKatAmt("l","b")
+."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 AND l.endet IS NULL AND g.endet IS NULL AND k.endet IS NULL AND r.endet IS NULL AND b.endet IS NULL AND s.endet IS NULL;";
@@ -103,7 +106,13 @@
 if (!$res) {
 	echo "\n<p class='err'>Fehler bei Lagebezeichnung.</p>";
-	if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}
-}
-
+	if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}
+}
+if ($dbg > 0) {
+	$zeianz=pg_num_rows($res);
+	if ($zeianz > 1){
+		echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Lage-Objekt!</p>";
+		if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";}
+	}
+}
 if ($row = pg_fetch_assoc($res)) {
 	$strgml=$row["strgml"]; // gml_id des Katalogeintrag StraÃe
@@ -118,7 +127,7 @@
 	$lage=$row["lage"]; // Strassenschluessel
 	$snam=$row["snam"]; //Strassennamen
-//	$kennz=$land."-".$regbez."-".$kreis.  ...
+//	$kennz=$land."-".$regbez."-".$kreis. ..
 	$kennz=$gem."-".$lage."-"; // ToDo: Kompatibel machen als Eingabe in Navigation/Adresse 
-	
+
 	switch ($ltyp) {
 		case "m": // "Mit HsNr"
@@ -155,5 +164,5 @@
 } else {
 	echo "\n<p class='err'>Fehler! Kein Treffer fuer Lagebezeichnung mit gml_id='".$gmlid."'</p>";
-	if ($debug > 2) {
+	if ($dbg > 2) {
 		echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";
 	}
@@ -260,7 +269,7 @@
 	}
 
-	$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 
+	$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 ".UnqKatAmt("f","g")
+	."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;";
 
@@ -270,5 +279,5 @@
 	if (!$resf) {
 		echo "\n<p class='err'>Fehler bei Flurst&uuml;ck.</p>";
-		if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}	
+		if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}	
 	}
 	echo "\n<table class='fs'>"
@@ -282,5 +291,8 @@
 	$j=0;
 	$zpaar=false;
+	$gwgmkg=""; // Gruppenwechsel
+	$gwflur="";
 	while($rowf = pg_fetch_assoc($resf)) {
+		$gmkg=$rowf["bezeichnung"];
 		$flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT);
 		$fskenn=$rowf["zaehler"]; // Bruchnummer
@@ -294,7 +306,18 @@
 			."\n\t<td>";
 			if ($showkey) {echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";}
-			echo $rowf["bezeichnung"]."</td>"
-			."\n\t<td>".$flur."</td>"
-			."\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span></td>"
+			if ($gwgmkg != $gmkg) {
+				echo "<b>".$gmkg."</b></td>";
+				$gwgmkg=$gmkg;
+				$gwflur="";
+			} else {
+				echo $gmkg."</td>";
+			}
+			if ($gwflur != $flur) {
+				echo "\n\t<td><b>".$flur."</b></td>";
+				$gwflur=$flur;
+			} else {
+				echo "\n\t<td>".$flur."</td>";
+			}
+			echo "\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span></td>"
 			."\n\t<td class='fla'>".$flae."</td>"
 			."\n\t<td>\n\t\t<p class='nwlink noprint'>"
@@ -333,5 +356,5 @@
 			if (!$res) {
 				echo "\n<p class='err'>Fehler bei Nebengeb&auml;ude.</p>";
-				if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} // 7 $-Parameter
+				if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} // 7 $-Parameter
 			}
 			$neb=0;
@@ -369,5 +392,5 @@
 			if (!$res) {
 				echo "\n<p class='err'>Fehler bei Nebengeb&auml;ude.</p>";
-				if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} // 7 $-Parameter		
+				if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} // 7 $-Parameter		
 			}
 			$neb=0;
@@ -405,5 +428,5 @@
 	if (!$res) {
 		echo "\n<p class='err'>Fehler bei Geb&auml;ude.</p>";
-		if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}
+		if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}
 	}
 	echo "\n<table class='geb'>"
@@ -445,13 +468,12 @@
 	echo "\n</table>";
 }
+
+echo "<div class='buttonbereich noprint'>\n<hr>"
+	."\n\t<a title='zur&uuml;ck' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zur&uuml;ck'></a>&nbsp;";
+if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a>&nbsp;";}
+echo "\n</div>";
+
+footer($gmlid, selbstverlinkung()."?", "&amp;ltyp=".$ltyp);
 ?>
-
-<div class='buttonbereich noprint'>
-	<hr>
-	<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp;
-	<a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a>&nbsp;
-</div>
-
-<?php footer($gmlid, selbstverlinkung()."?", "&amp;ltyp=".$ltyp); ?>
 
 </body>
