Changeset 394 for trunk/info/info


Ignore:
Timestamp:
11/03/17 13:56:10 (6 years ago)
Author:
frank.jaeger
Message:

ALKIS-Buchauskunft, im Flurstücksnachweis, Abschnitt Bodenschätzung: Ausgabe Enststehungsart, Klimastufe + Wasserverhältnisse (Arrays)

Location:
trunk/info/info/alkisn
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/info/info/alkisn/alkisfkt.php

    r391 r394  
    1212        2017-06-08 gestreifte Tabelle, Feinkorrekturen 
    1313        2017-10-17 Deutsches Datumsformat fÃŒr Geburtsdatum der Person 
     14        2017-11-03 neue function werteliste() 
    1415*/ 
    1516 
     
    521522} // End function eigentuemer 
    522523 
     524function werteliste ($element, $bezeichnung ,$sqlin) { 
     525        // Eine oder mehrere EntschlÃŒsselungen aus "alkis_wertearten" in eine Zeile ausgeben. 
     526        // Dient dazu, SchlÃŒssel-ARRAYs auflösen ohne die Zeile mehrfach aufzulisten (JOIN) 
     527        // Anwendung: FS-Nachweis BodenschÀtzung "Klimastufe + WasserverhÀltnisse" 
     528        global $debug; 
     529        $sql="SELECT k, v FROM alkis_wertearten WHERE element = $1 AND bezeichnung = $2 AND k IN (".$sqlin.") ORDER BY k;"; 
     530        $v = array($element, $bezeichnung); 
     531        $res = pg_prepare("", $sql); 
     532        $res = pg_execute("", $v); 
     533        if (!$res) { 
     534                echo "\n<p class='err'>Fehler bei Werteliste aus alkis_wertearten.</p>"; 
     535                if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = '".$sqlin."'</p>";} 
     536                return; 
     537        } 
     538        $i=0; 
     539        while($row = pg_fetch_array($res)) { 
     540                echo " ".$row["v"]; 
     541                $i++;    
     542        } 
     543        pg_free_result($res); 
     544        if ($i == 0 ) {echo "(kein Treffer)";} 
     545        return; 
     546} 
     547 
    523548?> 
  • trunk/info/info/alkisn/alkisfsnw.php

    r391 r394  
    1515        2017-10-11 Nachbesserung Formatierung der SchÀtzungs-Zeilen 
    1616        2017-10-17 Zeitpunkt der Entstehung in deutschen Datumsformat 
     17        2017-11-03 Wertelisten fÃŒr Arrays in BodenschÀtzung ausgeben. 
    1718 
    1819        ToDo: 
     
    633634// Tabelle "klas_3x" (norbit-ALB): Dort fehlen Bodenart und Zustandsstufe, es ist aber bereits auf BuchflÀche umgerechnet. 
    634635 
     636// BodenschÀtzungs-Abschnitte mit FlurstÃŒcken verschneiden, Spalten entschlÃŒsseln 
    635637$sql="SELECT  
    636  kulturart.k as kulturartk, kulturart.v as kulturartv, bodenart.k as bodenartk, bodenart.v as bodenartv, zustbod.v AS zustbodv, 
     638 kulturart.k AS kulturartk, kulturart.v AS kulturartv,  
     639 bodenart.k  AS bodenartk,  bodenart.v  AS bodenartv,  
     640 zustbod.v AS zustbodv, 
     641 b.entstehungsartoderklimastufewasserverhaeltnisse AS entsteh, b.sonstigeangaben, 
    637642 b.bodenzahlodergruenlandgrundzahl as bodenzahl, b.ackerzahlodergruenlandzahl AS ackerzahl,  
    638643 b.jahreszahl, st_area(st_intersection(b.wkb_geometry, f.wkb_geometry)) AS schnittflae  
     
    652657$klasflae = 0; // Summe klassifizierte FlÀche 
    653658$j=0; 
     659 
    654660if(!empty($res) && pg_num_rows($res) > 0) { 
     661 
    655662        while ($row = pg_fetch_array($res)) { 
    656663                $kulturartk=$row['kulturartk']; // Key  - 
     
    673680                $boedenzahl=ltrim($row['bodenzahl'], '0'); 
    674681                $ackerzahl=ltrim($row['ackerzahl'], '0'); 
     682                $jahr=$row['jahreszahl']; 
     683 
     684                // 2x Array mit SchlÃŒsseln. PostNAS fÃŒllt es nicht, wenn als "integer[]" definiert. 
     685                $entsteh=$row['entsteh']; 
     686                $sonst=$row['sonstigeangaben']; 
    675687 
    676688                // Sp. 1/4 
     
    688700                echo "\n\t<td class='lr'><span title='".$kbez1."'>".$boedenzahl."</span>/<span title='".$kbez2."'>".$ackerzahl."</span></td>"; 
    689701                echo "\n\t<td class='lr'>"; 
     702 
    690703                        if ($showkey) {echo "\n\t\t<span class='key'>(".$kulturartk.")</span> ";} 
    691704                        echo "\n\t\t<span title='Kulturart'>".$kulturartv."</span> "; 
     705 
    692706                        if ($showkey) {echo "\n\t\t<span class='key'>(".$row['bodenartk'].")</span> ";} 
    693707                        echo "\n\t\t<span title='Bodenart'>".$row['bodenartv']."</span> "; 
    694                         echo "\n\t\t<span title='Zustandsstufe'>".$row['zustbodv']."</span>"; 
    695                         if (isset($row['jahreszahl'])) {echo "\n\t\t <span title='Jahreszahl'>".$row['jahreszahl']."</span>";} 
    696                 //      ++ Entstehungsart (Array) derzeit leer. 1:N entschlÃŒsseln. entstehungsartoderklimastufewasserverhaeltnisse 
    697                 // $ent = explode(",", trim($entsteh, "{}") ); // [] --> PHP-Array 
    698                 //      if (isset($row['sonstiges'])) {echo "\n\t\t, <span title='Sonstige Angaben'>".$row['sonstiges']."</span>";} -- immer leer (Konverter-Fehler?) 
     708 
     709                        echo "\n\t\t<span title='Zustandsstufe'>".$row['zustbodv']."</span> "; 
     710 
     711                        // ARRAYs auflösen ohne den SchÀtzungs-Abschnitt mehrfach aufzulisten 
     712                        if ($entsteh <> '') { 
     713                                $ent="'".str_replace(",", "','", trim($entsteh, "{}"))."'"; // als Liste fÃŒr SQL "WHERE IN ()" 
     714                                echo "\n\t\t <span title='Enststehungsart oder Klimastufe, Wasserverh&auml;ltnisse'>"; 
     715                                        if ($showkey) {echo "\n\t\t <span class='key'>(".$ent.")</span> ";} 
     716                                        werteliste ('ax_bodenschaetzung', 'entstehungsartoderklimastufewasserverhaeltnisse', $ent); 
     717                                echo "</span>"; 
     718                        } 
     719                        if ($sonst <> '') { 
     720                                $son="'".str_replace(",", "','", trim($sonst, "{}"))."'"; 
     721                                echo "\n\t\t <span title='Sonstige Angaben'>"; 
     722                                        if ($showkey) {echo "\n\t\t <span class='key'>(".$son.")</span> ";} 
     723                                        werteliste ('ax_bodenschaetzung', 'sonstigeangaben', $son); 
     724                                echo "</span>"; 
     725                        } 
     726 
     727                        if ($jahr <> '') { 
     728                                echo "\n\t\t<span title='Jahreszahl'>".$jahr."</span>"; 
     729                        } 
    699730                echo "\n\t</td>"; 
    700731 
     
    703734                $j++; 
    704735        } 
     736 
    705737        // Summenzeile 
    706738        $klasflaedis = number_format($klasflae,0,",",".")." m&#178;"; 
     
    708740        ."\n\t<td class='fla sum' title='Summe der Ertragsmesszahlen f&uuml;r dies Flurst&uuml;ck'>".$gesertragsmz."</td>" 
    709741        ."\n\t<td class='re'>".$klasflaedis."</td>\n\t<td colspan='3'>&nbsp;</td>\n</tr>"; 
     742 
     743//} else { // Result ist leer 
     744//      if ($debug > 1) { 
     745//              echo "\n<p class='dbg'>Keine BodenschÀtzung gefunden</p>"; 
     746//              if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 
     747//      } 
    710748} 
    711749 
Note: See TracChangeset for help on using the changeset viewer.