Index: /trunk/mapbender/http/nav/alkisnav_grd.php
===================================================================
--- /trunk/mapbender/http/nav/alkisnav_grd.php	(revision 410)
+++ /trunk/mapbender/http/nav/alkisnav_grd.php	(revision 411)
@@ -7,5 +7,5 @@
 	2016-11-28 Gemeinsam genutzte Datenbanken ermÃ¶glichen
 	2018-02-15 Strikte Input-Validation der Parameter
-	2018-11-02 Suche GB-Blatt in "function gml_blatt": Jetzt einheitliches DB-Format. Zusatzbuchstabe mit Wildcard wenn nicht angegeben.
+	2018-11-02 Einheitliches DB-Format der GB-Blatt-Nummer vorausgesetzt. Suche GB-Blatt in Function "gml_blatt" und "gml_buchungsstelle" mit Wildcard wenn Zusatzbuchstabe nicht angegeben.
 */
 
@@ -356,11 +356,9 @@
 
 	// Blatt ->  B u c h u n g s s t e l l e
-	$sql ="SELECT s.gml_id FROM ax_buchungsstelle s "
-	."JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id "
+	$sql ="SELECT s.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id "
 	."WHERE b.bezirk= $1 AND s.endet IS NULL AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung ";
 
-	if ($zblattz == "") { // Ohne Buchstabenerweiterung
-		//Formate '123','000123 ','0000123'
-		$sql.="IN ('".$zblattn."','".str_pad($zblattn, 6, "0", STR_PAD_LEFT)." ','".str_pad($zblattn, 7, "0", STR_PAD_LEFT)."')";
+	if ($zblattz == "") { // Eingabe ohne Buchstabenerweiterung
+		$sql.="LIKE '".str_pad($zblattn, 6, "0", STR_PAD_LEFT)."_'";
 	} else { // Mit Buchstabenerweiterung: '000123A'
 		$sql.="='".str_pad($zblattn, 6, "0", STR_PAD_LEFT).$zblattz."'";
@@ -368,5 +366,5 @@
 	$sql.=" AND s.laufendenummer= $2 ;";
 
-	$v=array($zgbbez, $zbvnr);
+	$v=array($zgbbez, str_pad($zbvnr, 4, "0", STR_PAD_LEFT));
 	$res=pg_prepare("", $sql);
 	$res=pg_execute("", $v);
@@ -378,4 +376,10 @@
 	while($row = pg_fetch_array($res)) {	
 		$bs_gml=$row["gml_id"];
+		$gef_blatt=$row["blatt"];	// gefunden ggf. mit Buchstabe (Wildcard)
+		if ($zblatt != $gef_blatt) {
+			echo "\n<p>Blatt mit Buchstabenerweiterung gefunden.</p>";
+			$zblatt=$gef_blatt;
+			$zblattz=substr($zblatt,$len-1,1);
+		}
 		$zbs++;
 	}
@@ -403,5 +407,6 @@
 			echo "<p class='err'>Kennzeichen Bezirk und Blatt nicht gesetzt</p>";
 		} // ++ suchen!
-		zeile_buchung($buchunggml, $zbvnr, $zgbbez."-".$zblattn.$zblattz, false, true);
+	//	zeile_buchung($buchunggml, $zbvnr, $zgbbez."-".$zblattn.$zblattz, false, true);
+		zeile_buchung($buchunggml, $zbvnr, $zgbbez."-".$zblatt, false, true); // $zblatt wird aktualisiert, wenn Buchstabe gefunden wurde
 	}
 
Index: /trunk/mapbender/http/nav/alkisnav_fkt.php
===================================================================
--- /trunk/mapbender/http/nav/alkisnav_fkt.php	(revision 410)
+++ /trunk/mapbender/http/nav/alkisnav_fkt.php	(revision 411)
@@ -8,4 +8,5 @@
 	2018-02-15 Ãberarbeitung des Code
 	2018-05-02 Link "Buchung" zum neuen GrundstÃŒcks-Nachweis
+	2018-11-02 Suche GB-Blatt mit Wildcard wenn Zusatzbuchstabe nicht angegeben.
 */
 
@@ -16,5 +17,5 @@
 
 function ZerlegungGBKennz($gbkennz) {
-	// Das eingegebene Grundbuch-Kennzeichen auseinander nehmen (gggg-999999z-BVNR)
+	// Das EINGEGEBENE Grundbuch-Kennzeichen auseinander nehmen (gggg-999999z-BVNR)
 	// Return: 9=Fehler, 0=Listen alle Bezirke 1=Such Bezirk-Name
 	//  2=Such Bezirk-Nummer, 3=Such Blatt, 4=Such Buchung BVNR
@@ -45,12 +46,14 @@
 	//'0300001' gefÃŒllt 7, bei Blattart 5000 "fiktives Blatt"
 		$len=strlen($zblatt);
-		if ($len > 0 AND $len < 8) {		
-			if (trim($zblatt, "0..9 ") == "") { // Normalfall: nur Zahlen (und Blank))
+		if ($len > 0 AND $len < 8) { // Eingabe LÃ€nge 1 bis 7
+		//	if (trim($zblatt, "0..9 ") == "") { 
+			if (preg_match('#^[0-9]{1,6}[ ]{0,1}$#', $zblatt)) { // Normalfall: nur Zahlen (und Blank am Ende))
 				$zblattn= rtrim(ltrim($zblatt, "0"), " ");
 				$zblattz="";
 			} else { // Sonderfall: Zusatz-Buchstabe am Ende
 				$zblattn=substr($zblatt,0,$len-1);
-				$zblattz=strtoupper(substr($zblatt,$len-1,1)); 
-				if ((trim($zblattn, "0..9") == "") and (trim($zblattz, "A..Z") == "")) {
+				$zblattz=strtoupper(substr($zblatt,$len-1,1));
+			//	if ((trim($zblattn, "0..9") == "") and (trim($zblattz, "A..Z") == "")) {
+				if (preg_match('#^[0-9]{1,6}$#', $zblattn) and preg_match('#^[A-Z]{1}$#', $zblattz)) { 
 					$zblattn= ltrim($zblattn, "0"); // ohne fuehrende Nullen
 				} else {
@@ -127,6 +130,6 @@
 	// Zeile Grundbuch - B l a t t
 	// Aufruf aus Teil "Grundbuch" und Teil "EigentÃŒmer"
-	// Parameter $beznam = Name des GB-Bezirks. Sollte nur gefÃŒllt sein, bei dienendem Blatt ("Recht an").
-	//		sonst steht der Bezirk als Header-Zeile darÃŒber.
+	// Parameter $beznam = Name des GB-Bezirks. Sollte nur gefÃŒllt sein, bei dienendem Blatt ("Recht an"). Wird vor die Zeile gesetzt.
+	// Normalerweise steht der Bezirk als Header-Zeile darÃŒber.
 	global $gkz, $gemeinde, $epsg, $auskpath;
 
@@ -152,6 +155,5 @@
 	."&amp;blattgml=".$blattgml."&amp;gbkennz=".$bezirk."-".$blattlnk;
 
-	echo "&amp;gbbeznam=".urlencode($beznam);
-
+	if ($beznam != "") {echo "&amp;gbbeznam=".urlencode($beznam);}
 	if ($person != "") {echo "&amp;person=".$person;} // nur fÃŒr EigentÃŒmer-Suche
 	echo "'>Blatt&nbsp;".$blattd."</a>\n</div>";
