Index: trunk/import/norgis_alkis_pp/postcreate.de/x_classic2norgis.sql
===================================================================
--- trunk/import/norgis_alkis_pp/postcreate.de/x_classic2norgis.sql	(revision 377)
+++ trunk/import/norgis_alkis_pp/postcreate.de/x_classic2norgis.sql	(revision 378)
@@ -9,4 +9,7 @@
 --  2016-12-01 exp_csv: Fehlerkorrektur bei EntschlÃŒsselung der Buchungsart
 --             Optimierte Version (ohne Doppelverbindung)
+--  2017-02-23 Spalte "fall" aus View "flst_an_strasse" im View "exp_csv_str" ausgeben.
+--             Darauf basiert ein neuer Filter im Programm "alkisexport.php".
+--			Sortierung FS-Kennz. repariert in Views "exp_csv" und "exp_csv_str"
 
 -- ToDo: Auch den View "flst_an_strasse" mÃ¶glist nicht in andere Views einbinden.
@@ -486,5 +489,6 @@
     AND dien.endet IS NULL
 
-ORDER BY fsgml,      -- f.flurstueckskennzeichen, 
+ORDER BY fs_kennz,   -- f.flurstueckskennzeichen, 
+      -- fsgml,      
          gb_bezirk,  -- gb.bezirk, 
          gb_blatt,   -- gb.buchungsblattnummermitbuchstabenerweiterung,
@@ -595,7 +599,9 @@
 -- 2016-12-01: Neue schnellere Version unter Vermeidung von "doppelverbindung":
 --		Etwa um den Faktor 2,5 schneller als die alte Version
+-- 2017-02-23: Spalte fall aus View "flst_an_strasse" als Spalte ausgeben.
+--             Darauf basiert ein neuer Filter im Programm "alkisexport.php"
 
 -- ToDo: Den View "flst_an_strasse" mÃ¶glichst auch nicht im Views verwenden.
---       Ist 4-fach-Union schneller ??
+--       Ist 4-fach-Union ectl. schneller ??
 
 DROP VIEW IF EXISTS exp_csv_str;
@@ -606,4 +612,5 @@
     l.stgml,                                             -- Filter: gml_id aus "ax_lagebezeichnungkatalogeintrag"
                                                          -- UNTERSCHIED zu exp_csv
+    l.fall,                                              -- mit/ohne Hausnummer zur Lage
   -- F l u r s t ÃŒ c k
     f.gml_id                             AS fsgml,       -- mÃ¶glicher Filter FlurstÃŒcks-GML-ID
@@ -687,4 +694,5 @@
     l.stgml,                                             -- Filter: gml_id aus "ax_lagebezeichnungkatalogeintrag"
                                                          -- UNTERSCHIED zu exp_csv
+    l.fall,                                              -- mit/ohne Hausnummer zur Lage
   -- F l u r s t ÃŒ c k
     f.gml_id                             AS fsgml,       -- mÃ¶glicher Filter FlurstÃŒcks-GML-ID
@@ -764,5 +772,5 @@
     AND dien.endet IS NULL
 
-ORDER BY fsgml,      -- f.flurstueckskennzeichen, 
+ORDER BY fs_kennz,   -- f.flurstueckskennzeichen, 
          gb_bezirk,  -- gb.bezirk, 
          gb_blatt,   -- gb.buchungsblattnummermitbuchstabenerweiterung,
Index: trunk/info/info/alkisn/alkisexport.php
===================================================================
--- trunk/info/info/alkisn/alkisexport.php	(revision 377)
+++ trunk/info/info/alkisn/alkisexport.php	(revision 378)
@@ -1,5 +1,5 @@
 <?php
 /*	Modul alkisexport.php
-	CSV-Export von ALKIS-Daten zu einem Flurstueck, Grundbuch oder EigentÃŒmer.
+	CSV-Export von ALKIS-Daten zu einem Flurstueck, Grundbuch, EigentÃŒmer oder StraÃe.
 	Es wird eine GML-ID ÃŒbergeben.
 	Es wird ein gespeicherter View verwendet, der nach der gml_id gefiltert wird. 
@@ -7,8 +7,10 @@
 	Die Lagebezeichnung des FlurstÃŒcks wird in ein Feld komprimiert.
 	Parameter Beispiele: 
-		?gkz=mandant&tabtyp=flurstueck/grundbuch/person&gmlid=DE...
-		?gkz=270&tabtyp=gemarkung&gemarkung=2662   
+		?gkz=mandant&tabtyp=flurstueck/grundbuch/person/strasse&gmlid=DE...  Standard
+		?gkz=270&tabtyp=gemarkung&gemarkung=2662         Sonderfall ganze Gemarkung
 		?gkz=270&gemarkung=2662
-	Parameter Beispiele fÃŒr Fehler:
+		?gkz=mandant&tabtyp=strasse&haus=m&gmlid=DE...   Filter &haus=m/o = mit oder ohne Hausnummer
+		?gkz=mandant&tabtyp=strasse&haus=o               bei Strasse auch ohne gmlid zulÃ€ssig - nicht verwenden wenn aus NBA unscharf geladen
+	Beispiele fÃŒr Fehler:
 		?gkz=270&tabtyp=gemarkung&gmlid=2662
 		?gkz=270&tabtyp=flurstueck&gemarkung=2662
@@ -17,9 +19,11 @@
 
 	Version
-	2016-02-23 Version fuer norGIS-ALKIS-Import
-	2016-10-18 Export einer ganzen Gemarkung zulassen (Sonderfall bei den Parametern)
-	2016-11-29 Gemeinsam genutzte Datenbanken ermÃ¶glichen
-
-++ ToDo: SQL "exp_csv_str" und "exp_csv_str" optimieren
+	2016-02-23	Version fuer norGIS-ALKIS-Import
+	2016-10-18	Export einer ganzen Gemarkung zulassen (Sonderfall bei den Parametern)
+	2016-11-29	Gemeinsam genutzte Datenbanken ermÃ¶glichen
+	2017-02-23	Filter mit/ohne Hausnummer zum Typ "strasse".
+				Dazu muss der View "exp_csv_str" um die spalte "fall" erweitert werden.
+				Siehe Datei "x_classic2norgis.sql" in /OSGeo4W64/apps/alkis-import/postcreate.d/
+				Sonderfall: Auch Export zu *allen* StraÃen der Stadt ohne Filter "gmlid".
 */
 
@@ -57,5 +61,5 @@
 // HIER START //
 
-$gkz=''; $tabtyp = ''; $gemarkung=''; $gmlid=''; // erwartete Parameter initialisieren
+$gkz=''; $tabtyp = ''; $gemarkung=''; $gmlid=''; $haus=''; // mÃ¶gliche Parameter initialisieren
 $cntget = extract($_GET); // aktuelle Parameter aus URL auslesen
 require_once("alkis_conf_location.php"); // Konfiguration laden
@@ -63,25 +67,51 @@
 
 if ($tabtyp == '') { // Parameter (-kombinationen) pruefen
-	if ($gemarkung == '') { // Beim Wert "gmlid" MUSS man die Tabelle dazu nennen
-		exit ("Fehler: Art des Suchfilters nicht angeben.");
-	} else {  // Art des Wertes bestimmt eindeutig den Filter
+	if ($gemarkung != '') { // Dieser Parameters bestimmt auch eindeutig den $tabtyp
 		$tabtyp = 'gemarkung';
+	} else {  // Bei "gmlid" MUSS man zwingend die Tabelle dazu nennen
+		$err="Fehler: Art des Suchfilters nicht angeben.";
+		echo "\n".$err; exit ($err);
 	}
 } elseif ($tabtyp == 'gemarkung') {
 	if ($gemarkung == '') {
-		exit ("Fehler: Gemarkungsnummer nicht angeben.");
-	}
-}
-if ($gmlid == '') {
-	if ($gemarkung == '') {
-		exit ("Fehler: Kein Wert fuer die Suche angegeben.");
-	} else { // Wert fÃŒr Gemarkungsnummer angegeben
+		$err="Fehler: Gemarkungsnummer nicht angeben.";
+		echo "\n".$err; exit ($err);
+	}
+}
+
+if ($gmlid != '') { // Angabe von gmlid ist der Normalfall, das passt fÃŒr fast jeden tabtyp
+	if ($tabtyp == 'strasse' and $haus != '') { // den Zusatzfilter m/o im Dateinamen dokumentieren
+		if ($haus == 'm') {
+			$filename='alkis_'.$tabtyp.'_'.$gmlid.'_mit_hsnr.csv';
+		} else {  // = o
+			$filename='alkis_'.$tabtyp.'_'.$gmlid.'_ohne_hsnr.csv.csv';
+		}
+	} else {
+		$filename='alkis_'.$tabtyp.'_'.$gmlid.'.csv';
+	}
+} else { // Oh Oh! Keine gmlid! - Alternativen?
+	if ($gemarkung != '') { // Sonderfall 1 - Gemarkungsnummer statt gmlid als Filter
 		if ($tabtyp != 'gemarkung') {
-			exit ("Fehler: Falsche Kombination Parameter tabtyp='".$tabtyp."' mit Wert fuer Gemarkungsnummer.");
+			$err = "Fehler: Falsche Kombination Parameter tabtyp='".$tabtyp."' mit Wert fuer Gemarkungsnummer.";
+			echo "\n".$err; exit ($err);
 		}
 		$filename='alkis_'.$tabtyp.'_'.$gemarkung.'.csv';
-	}
-} else { // alles gut
-	$filename='alkis_'.$tabtyp.'_'.$gmlid.'.csv';
+
+/* 	// $gmlid zu strasse noch notwendig solange kein Filter auf "Gemeinde" verwendet wird.
+	} elseif ($haus == 'm' or $haus == 'o') { // Sonderfall 2 - alle mit/ohne Hausnummer, nur ÃŒber View "exp_csv_str" mÃ¶glich
+		if ($tabtyp != 'strasse') {
+			$err="Fehler: Falsche Kombination Parameter tabtyp='".$tabtyp."' mit Wert fuer Haus.";
+			echo "\n".$err; exit ($err);
+		}
+		if ($haus == 'm') { // den Zusatzfilter m/o im Dateinamen dokumentieren
+			$filename='alkis_'.$tabtyp.'_mit_hsnr.csv';
+		} else {
+			$filename='alkis_'.$tabtyp.'_ohne_hsnr.csv';
+		}
+*/
+	} else {
+		$err= "Fehler: Kein passender Wert fuer die Suche angegeben.";
+		echo "\n".$err; exit ($err);
+	}
 }
 
@@ -95,5 +125,8 @@
 // Datenbank-Verbindung
 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisexport.php'");
-if (!$con) {exit("Fehler beim Verbinden der DB");}
+if (!$con) {
+	$err= "Fehler beim Verbinden der DB";
+	echo "\n".$err; exit($err);
+}
 pg_set_client_encoding($con, 'LATIN1'); // FÃŒr Excel kein UTF8 ausgeben
 
@@ -121,5 +154,6 @@
 		break;
 	default:
-		exit("Falscher Parameter '".$tabtyp."'");
+		$err= "Falscher Parameter '".$tabtyp."'";
+		echo "\n".$err; exit($err);
 		break;
 }
@@ -128,7 +162,22 @@
 $sql="SELECT * FROM ".$viewname." WHERE ".$filter." = $1 ";
 
+if ($haus != '') { // nur FS mit/ohne verschlÃŒsselter Lagebezeichnung
+	if ($gmlid == '') { // m/o-Filter als einziger Filter
+		$sql="SELECT * FROM ".$viewname." WHERE fall='".$haus."' "; // Ersetzen
+		$v=array(); // kein Filter-Feld
+		// ToDo: Filter auf Gemeinde notwendig, wenn nicht auf strasse gefiltert wird.
+		// - Sonst Ausgabe von Rand-FlurstÃŒcken (bei geometrischer Filterung des NBA-Verfahrens)
+		// - Sonst ggf. Ausgabe Kreisgebiet
+	} else { // als zusÃ€tzlicher Filter 
+		$sql.="AND fall='".$haus."' "; // m/o-Filter AnhÃ€ngen
+	}
+}
+
 $res=pg_prepare("", $sql);
 $res=pg_execute("", $v);
-if (!$res) {exit("Fehler bei Datenbankabfrage");}
+if (!$res) {
+	$err= "Fehler bei Datenbankabfrage";
+	echo "\n".$err; exit($err);
+}
 $i=1; // Kopfzeile zÃ€hlt mit
 $fsalt='';
@@ -236,5 +285,8 @@
 }
 pg_free_result($res);
-if ($i == 1) {exit ("Kein Treffer fuer gml_id=".$gmlid);} // nur Kopfzeile
+if ($i == 1) { // nur Kopf
+	$err= "Kein Treffer fuer gml_id='".$gmlid."'";
+	echo "\n".$err; exit ($err);
+}
 pg_close($con);
 exit(0);
Index: trunk/info/info/alkisn/alkisstrasse.php
===================================================================
--- trunk/info/info/alkisn/alkisstrasse.php	(revision 377)
+++ trunk/info/info/alkisn/alkisstrasse.php	(revision 378)
@@ -9,4 +9,7 @@
 	2016-02-24 Version fuer norGIS-ALKIS-Import
 	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermÃ¶glichen, SQL optimiert (FS-Liste jetzt schneller)
+	2017-02-23 Neuer Parameter &haus=m/o zum alkisexport.php
+
+ToDo: Neuen Parameter haus=m/o zum ALKISexport (alkisexport.php) bedienen
 */
 session_start();
@@ -28,6 +31,6 @@
 	<link rel="shortcut icon" type="image/x-icon" href="ico/Strassen.ico">
 	<script type="text/javascript">
-		function ALKISexport() {
-			window.open(<?php echo "'alkisexport.php?gkz=".$gkz."&tabtyp=strasse&gmlid=".$gmlid."'"; ?>);
+		function ALKISexport(phaus) {
+			window.open(<?php echo "'alkisexport.php?gkz=".$gkz."&tabtyp=strasse&gmlid=".$gmlid."&haus='"; ?> + phaus);
 		}
 	</script>
@@ -219,5 +222,7 @@
 	<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp;
 	<a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a>&nbsp;
-	<a title="Export als CSV" href='javascript:ALKISexport()'><img src="ico/download.png" width="16" height="16" alt="Export"></a>&nbsp;
+	<a title="Export als CSV" href='javascript:ALKISexport("")'><img src="ico/download.png" width="16" height="16" alt="Export"></a>&nbsp;
+	<a title="CSV - nur Flurst&uuml;cke mit Hausnummer" href='javascript:ALKISexport("m")'>mit HsNr<img src="ico/download.png" width="16" height="16" alt="Export"></a>&nbsp;
+	<a title="CSV - nur Flurst&uuml;cke ohne Hausnummer" href='javascript:ALKISexport("o")'>ohne<img src="ico/download.png" width="16" height="16" alt="Export"></a>&nbsp;
 </div>
 
