Index: trunk/info/info/alkisn/alkisexport.php
===================================================================
--- trunk/info/info/alkisn/alkisexport.php	(revision 362)
+++ trunk/info/info/alkisn/alkisexport.php	(revision 375)
@@ -6,8 +6,18 @@
 	Der View verkettet Flurstueck - Buchungsstelle - Grundbuch - Eigentuemer
 	Die Lagebezeichnung des FlurstÃŒcks wird in ein Feld komprimiert.
-	Parameter: gkz=mandant&gmlid=DE...&tabtyp=flurstueck/grundbuch/person
+	Parameter: 
+		alkisexport.php?gkz=mandant&tabtyp=flurstueck/grundbuch/person&gmlid=DE...
+		alkisexport.php?gkz=270&tabtyp=gemarkung&gemarkung=2662   
+		alkisexport.php?gkz=270&gemarkung=2662
+
+	Fehler
+		alkisexport.php?gkz=270&tabtyp=gemarkung&gmlid=2662
+		alkisexport.php?gkz=270&tabtyp=flurstueck&gemarkung=2662
+		alkisexport.php?gkz=270&tabtyp=flurstueck
+		alkisn/alkisexport.php?gkz=270&gmlid=2662
 
 	Version
 	2016-02-23 Version fuer norGIS-ALKIS-Import
+	2016-10-18 Export einer ganzen Gemarkung zulassen (Sonderfall bei den Parametern)
 */
 
@@ -43,10 +53,38 @@
 }
 
-// HIER START
-$cntget = extract($_GET); // Parameter aus URL lesen
+// HIER START //
+
+$gkz=''; $tabtyp = ''; $gemarkung=''; $gmlid=''; // erwartete Parameter initialisieren
+$cntget = extract($_GET); // aktuelle Parameter aus URL auslesen
+require_once("alkis_conf_location.php"); // Konfiguration laden
+include("alkisfkt.php"); // Funktionen der ALKIS-Auskunft laden
+
+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
+		$tabtyp = 'gemarkung';
+	}
+} 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
+		if ($tabtyp != 'gemarkung') {
+			exit ("Fehler: Falsche Kombination Parameter tabtyp='".$tabtyp."' mit Wert fuer Gemarkungsnummer.");
+		}
+		$filename='alkis_'.$tabtyp.'_'.$gemarkung.'.csv';
+	}
+} else { // alles gut
+	$filename='alkis_'.$tabtyp.'_'.$gmlid.'.csv';
+}
+
+// DOWNLOAD der CSV-Datei vorbereiten (statt HTML-Ausgabe)
 header('Content-type: application/octet-stream');
-header('Content-Disposition: attachment; filename="alkis_'.$tabtyp.'_'.$gmlid.'.csv"');
-require_once("alkis_conf_location.php");
-include("alkisfkt.php");
+header('Content-Disposition: attachment; filename="'.$filename.'"');
 
 // CSV-Ausgabe: Kopfzeile mit Feldnamen
@@ -58,21 +96,34 @@
 pg_set_client_encoding($con, 'LATIN1'); // FÃŒr Excel kein UTF8 ausgeben
 
+$viewname="exp_csv"; // Standard-View, ist in der Datenbank gespeichert
+$v=array($gmlid); // Standard-Filter-Feld
+
 // Der Parameter "Tabellentyp" bestimmt den Namen des Filter-Feldes aus dem View "exp_csv".
 switch ($tabtyp) { // zulaessige Werte fuer &tabtyp=
-	case 'flurstueck': $filter = "fsgml"; break; // ax_flurstueck.gml_id
-	case 'grundbuch':  $filter = "gbgml"; break; // ax_buchungsblatt.gml_id
-	case 'person':     $filter = "psgml"; break; // ax_person.gml_id
-	case 'strasse':    $filter = "stgml"; break; // ax_lagebezeichnungkatalogeintrag.gml_id = StraÃe-GML-ID
-	default: exit("Falscher Parameter '".$tabtyp."'"); break;
+	case 'flurstueck': // ax_flurstueck.gml_id
+		$filter = "fsgml";
+		break;
+	case 'grundbuch': // ax_buchungsblatt.gml_id
+		$filter = "gbgml";
+		break;
+	case 'person': // ax_person.gml_id
+		$filter = "psgml";
+		break;
+	case 'strasse': // ax_lagebezeichnungkatalogeintrag.gml_id = StraÃe-GML-ID
+		$filter = "stgml";
+		$viewname="exp_csv_str"; // alternativer View mit "_str", ist in der Datenbank gespeichert  
+		break;
+	case 'gemarkung': // SONDERfall als Parameter wird "Gemarkungsnummer" und nicht "gml_id" geliefert
+		$filter = "gemarkungsnummer";
+		$v=array($gemarkung); // anderes Filter-Feld, anderer Parameter
+		break;
+	default:
+		exit("Falscher Parameter '".$tabtyp."'");
+		break;
 }
 
 // Daten aus gespeichertem View, zusaetzlich Filter: "feld"='wert' mitgeben
-if ($tabtyp == 'strasse') { // Sonderversion
-	$sql="SELECT * FROM exp_csv_str WHERE ".$filter." = $1 ";
-} else {
-	$sql="SELECT * FROM exp_csv WHERE ".$filter." = $1 ";
-}
-
-$v=array($gmlid);
+$sql="SELECT * FROM ".$viewname." WHERE ".$filter." = $1 ";
+
 $res=pg_prepare("", $sql);
 $res=pg_execute("", $v);
