Index: /trunk/info/info/alkisn/alkisfsnw.php
===================================================================
--- /trunk/info/info/alkisn/alkisfsnw.php	(revision 393)
+++ /trunk/info/info/alkisn/alkisfsnw.php	(revision 394)
@@ -15,4 +15,5 @@
 	2017-10-11 Nachbesserung Formatierung der SchÃ€tzungs-Zeilen
 	2017-10-17 Zeitpunkt der Entstehung in deutschen Datumsformat
+	2017-11-03 Wertelisten fÃŒr Arrays in BodenschÃ€tzung ausgeben.
 
 	ToDo:
@@ -633,6 +634,10 @@
 // Tabelle "klas_3x" (norbit-ALB): Dort fehlen Bodenart und Zustandsstufe, es ist aber bereits auf BuchflÃ€che umgerechnet.
 
+// BodenschÃ€tzungs-Abschnitte mit FlurstÃŒcken verschneiden, Spalten entschlÃŒsseln
 $sql="SELECT 
- kulturart.k as kulturartk, kulturart.v as kulturartv, bodenart.k as bodenartk, bodenart.v as bodenartv, zustbod.v AS zustbodv,
+ kulturart.k AS kulturartk, kulturart.v AS kulturartv, 
+ bodenart.k  AS bodenartk,  bodenart.v  AS bodenartv, 
+ zustbod.v AS zustbodv,
+ b.entstehungsartoderklimastufewasserverhaeltnisse AS entsteh, b.sonstigeangaben,
  b.bodenzahlodergruenlandgrundzahl as bodenzahl, b.ackerzahlodergruenlandzahl AS ackerzahl, 
  b.jahreszahl, st_area(st_intersection(b.wkb_geometry, f.wkb_geometry)) AS schnittflae 
@@ -652,5 +657,7 @@
 $klasflae = 0; // Summe klassifizierte FlÃ€che
 $j=0;
+
 if(!empty($res) && pg_num_rows($res) > 0) {
+
 	while ($row = pg_fetch_array($res)) {
 		$kulturartk=$row['kulturartk']; // Key	-
@@ -673,4 +680,9 @@
 		$boedenzahl=ltrim($row['bodenzahl'], '0');
 		$ackerzahl=ltrim($row['ackerzahl'], '0');
+		$jahr=$row['jahreszahl'];
+
+		// 2x Array mit SchlÃŒsseln. PostNAS fÃŒllt es nicht, wenn als "integer[]" definiert.
+		$entsteh=$row['entsteh'];
+		$sonst=$row['sonstigeangaben'];
 
 		// Sp. 1/4
@@ -688,13 +700,32 @@
 		echo "\n\t<td class='lr'><span title='".$kbez1."'>".$boedenzahl."</span>/<span title='".$kbez2."'>".$ackerzahl."</span></td>";
 		echo "\n\t<td class='lr'>";
+
 			if ($showkey) {echo "\n\t\t<span class='key'>(".$kulturartk.")</span> ";}
 			echo "\n\t\t<span title='Kulturart'>".$kulturartv."</span> ";
+
 			if ($showkey) {echo "\n\t\t<span class='key'>(".$row['bodenartk'].")</span> ";}
 			echo "\n\t\t<span title='Bodenart'>".$row['bodenartv']."</span> ";
-			echo "\n\t\t<span title='Zustandsstufe'>".$row['zustbodv']."</span>";
-			if (isset($row['jahreszahl'])) {echo "\n\t\t <span title='Jahreszahl'>".$row['jahreszahl']."</span>";}
-		//	++ Entstehungsart (Array) derzeit leer. 1:N entschlÃŒsseln. entstehungsartoderklimastufewasserverhaeltnisse
-		// $ent = explode(",", trim($entsteh, "{}") ); // [] --> PHP-Array
-		//	if (isset($row['sonstiges'])) {echo "\n\t\t, <span title='Sonstige Angaben'>".$row['sonstiges']."</span>";} -- immer leer (Konverter-Fehler?)
+
+			echo "\n\t\t<span title='Zustandsstufe'>".$row['zustbodv']."</span> ";
+
+			// ARRAYs auflÃ¶sen ohne den SchÃ€tzungs-Abschnitt mehrfach aufzulisten
+			if ($entsteh <> '') {
+				$ent="'".str_replace(",", "','", trim($entsteh, "{}"))."'"; // als Liste fÃŒr SQL "WHERE IN ()"
+				echo "\n\t\t <span title='Enststehungsart oder Klimastufe, Wasserverh&auml;ltnisse'>";
+					if ($showkey) {echo "\n\t\t <span class='key'>(".$ent.")</span> ";}
+					werteliste ('ax_bodenschaetzung', 'entstehungsartoderklimastufewasserverhaeltnisse', $ent);
+				echo "</span>";
+			}
+			if ($sonst <> '') {
+				$son="'".str_replace(",", "','", trim($sonst, "{}"))."'";
+				echo "\n\t\t <span title='Sonstige Angaben'>";
+					if ($showkey) {echo "\n\t\t <span class='key'>(".$son.")</span> ";}
+					werteliste ('ax_bodenschaetzung', 'sonstigeangaben', $son);
+				echo "</span>";
+			}
+
+			if ($jahr <> '') {
+				echo "\n\t\t<span title='Jahreszahl'>".$jahr."</span>";
+			}
 		echo "\n\t</td>";
 
@@ -703,4 +734,5 @@
 		$j++;
 	}
+
 	// Summenzeile
 	$klasflaedis = number_format($klasflae,0,",",".")." m&#178;";
@@ -708,4 +740,10 @@
 	."\n\t<td class='fla sum' title='Summe der Ertragsmesszahlen f&uuml;r dies Flurst&uuml;ck'>".$gesertragsmz."</td>"
 	."\n\t<td class='re'>".$klasflaedis."</td>\n\t<td colspan='3'>&nbsp;</td>\n</tr>";
+
+//} else { // Result ist leer
+//	if ($debug > 1) {
+//		echo "\n<p class='dbg'>Keine BodenschÃ€tzung gefunden</p>";
+//		if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+//	}
 }
 
Index: /trunk/info/info/alkisn/alkisfkt.php
===================================================================
--- /trunk/info/info/alkisn/alkisfkt.php	(revision 393)
+++ /trunk/info/info/alkisn/alkisfkt.php	(revision 394)
@@ -12,4 +12,5 @@
 	2017-06-08 gestreifte Tabelle, Feinkorrekturen
 	2017-10-17 Deutsches Datumsformat fÃŒr Geburtsdatum der Person
+	2017-11-03 neue function werteliste()
 */
 
@@ -521,3 +522,27 @@
 } // End function eigentuemer
 
+function werteliste ($element, $bezeichnung ,$sqlin) {
+	// Eine oder mehrere EntschlÃŒsselungen aus "alkis_wertearten" in eine Zeile ausgeben.
+	// Dient dazu, SchlÃŒssel-ARRAYs auflÃ¶sen ohne die Zeile mehrfach aufzulisten (JOIN)
+	// Anwendung: FS-Nachweis BodenschÃ€tzung "Klimastufe + WasserverhÃ€ltnisse"
+	global $debug;
+	$sql="SELECT k, v FROM alkis_wertearten WHERE element = $1 AND bezeichnung = $2 AND k IN (".$sqlin.") ORDER BY k;";
+	$v = array($element, $bezeichnung);
+	$res = pg_prepare("", $sql);
+	$res = pg_execute("", $v);
+	if (!$res) {
+		echo "\n<p class='err'>Fehler bei Werteliste aus alkis_wertearten.</p>";
+		if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = '".$sqlin."'</p>";}
+		return;
+	}
+	$i=0;
+	while($row = pg_fetch_array($res)) {
+		echo " ".$row["v"];
+		$i++;	
+	}
+	pg_free_result($res);
+	if ($i == 0 ) {echo "(kein Treffer)";}
+	return;
+}
+
 ?>
Index: /trunk/umn/alkis_n/symbols.sym
===================================================================
--- /trunk/umn/alkis_n/symbols.sym	(revision 393)
+++ /trunk/umn/alkis_n/symbols.sym	(revision 394)
@@ -1,7 +1,10 @@
 SYMBOLSET
 # Symbole fuer ALKIS-Mapfile generiert aus aus Norbit-QGIS-Plugin
+# $ cat alkis_n_muster.map | grep norGIS_alkis | sort -u
 # 2017-11-03 aktualisiert und sortiert
 SYMBOL NAME "norGIS_alkis3010_1" TYPE SVG IMAGE "/opt/gdi/alkisn/svg/alkis3010_1.svg" END
+SYMBOL NAME "norGIS_alkis3011_1" TYPE SVG IMAGE "/opt/gdi/alkisn/svg/alkis3011_1.svg" END
 SYMBOL NAME "norGIS_alkis3020_1" TYPE SVG IMAGE "/opt/gdi/alkisn/svg/alkis3020_1.svg" END
+SYMBOL NAME "norGIS_alkis3021_1" TYPE SVG IMAGE "/opt/gdi/alkisn/svg/alkis3021_1.svg" END
 SYMBOL NAME "norGIS_alkis3022_1" TYPE SVG IMAGE "/opt/gdi/alkisn/svg/alkis3022_1.svg" END
 SYMBOL NAME "norGIS_alkis3024_1" TYPE SVG IMAGE "/opt/gdi/alkisn/svg/alkis3024_1.svg" END
@@ -24,7 +27,9 @@
 SYMBOL NAME "norGIS_alkis3324_1" TYPE SVG IMAGE "/opt/gdi/alkisn/svg/alkis3324_1.svg" END
 SYMBOL NAME "norGIS_alkis3326_1" TYPE SVG IMAGE "/opt/gdi/alkisn/svg/alkis3326_1.svg" END
+SYMBOL NAME "norGIS_alkis3332_1" TYPE SVG IMAGE "/opt/gdi/alkisn/svg/alkis3332_1.svg" END
 SYMBOL NAME "norGIS_alkis3334_1" TYPE SVG IMAGE "/opt/gdi/alkisn/svg/alkis3334_1.svg" END
 SYMBOL NAME "norGIS_alkis3336_1" TYPE SVG IMAGE "/opt/gdi/alkisn/svg/alkis3336_1.svg" END
 SYMBOL NAME "norGIS_alkis3338_1" TYPE SVG IMAGE "/opt/gdi/alkisn/svg/alkis3338_1.svg" END
+SYMBOL NAME "norGIS_alkis3340_1" TYPE SVG IMAGE "/opt/gdi/alkisn/svg/alkis3340_1.svg" END
 SYMBOL NAME "norGIS_alkis3401_1" TYPE SVG IMAGE "/opt/gdi/alkisn/svg/alkis3401_1.svg" END
 SYMBOL NAME "norGIS_alkis3407_1" TYPE SVG IMAGE "/opt/gdi/alkisn/svg/alkis3407_1.svg" END
