Ignore:
Timestamp:
04/23/18 15:33:39 (6 years ago)
Author:
frank.jaeger
Message:

ALKIS-Buchauskunft überarbeitet. z.B. Flurstücksnachweis mit allen Buchungen.

File:
1 edited

Legend:

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

    r399 r402  
    1818        2017-12-08 Planung (Kommentare) der Erweiterung fÃŒr Berechtigte GrundbÃŒcher 
    1919        2017-12-20 Links auf Lagebezeichnung verbessert. 
    20  
    21 +++     ToDo: +++ 
    22         - Wenn nur 1 Buchung auf der nÀchsten Stufe "Recht an" vorliegt (z.B. Erbbaurecht), dann sofort anzeigen. $berbu='' 
    23           Bei vielen Buchungen auf der nÀchsten Stufe (Miteigentumsanteil) nur die Anzahl, erst auf Anforderung (Parameter) &berbu='j' oder 2,3,4,fÃŒr maximale Stufen. 
    24       Anzahl weiterer "Rechte an" auf jeder Stufe anzeigen, auch wenn noch kein Link möglich ist. 
    25           MEHR: Alle "Rechte an" RÃŒckwÀrts auflisten analog View "buchungsrechte_3text". Bis zu 4 Buchungen weit. 
    26       Im Gegensatz zum "Bestandsnachweis" aber nur je eine BVNR weiter verfolgen, die auf dies eine FlurstÃŒck bezogen ist. 
    27       Dabei berechtigte Buchungen VOR dem Grundbuch anzeigen, also eine Berechtigungs-"Hierarchie" abbilden. 
     20        2018-04-11 Variable "gmlid" an Function "ALKISexport" ÃŒbergeben. Ist beim Schreiben des Headers noch unbekannt, wenn mit "&fskennz=" aufgerufen. 
     21        2018-04-23 Umfangreiche Überarbeitung der "Buchungsstellen" 
     22 
     23++ToDo: 
     24        - Buchung auf "fiktives Blatt" ist nur mit debug zu sehen: die <tr> in .css grau hinterlegen 
     25        - Umschalter (gleiches Modul) anders darstellen als Links zu anderen Nachweisen 
    2826        - Parameter zum Umschalten mit/ohne BodenschÀtzung? 
    2927        - Bessere Differenzierung bei den Nutzungsarten (Tabelle dafÃŒr aufbauen)  
    3028*/ 
    3129session_start(); 
    32  
    33 // Var. aus Parameter initalisieren 
    34 $eig="n"; 
    35 $berbu="n"; 
    36 $showkey="n"; 
    37  
    38 // alle Parameter in Variable umwandeln 
    39 $cntget = extract($_GET); 
     30$eig="n"; $showkey="n"; $nodebug=""; // Var. initalisieren 
     31$cntget = extract($_GET); // alle Parameter in Variable umwandeln 
    4032 
    4133// strikte Validierung aller Parameter 
     
    5345if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 
    5446if (!preg_match('#^[j|n]{0,1}$#', $eig)) {die("Eingabefehler eig");} 
    55 if (!preg_match('#^[j|n]{0,1}$#', $berbu)) {die ("Eingabefehler berbu");} 
    5647if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} 
    5748if ($showkey == "j") {$showkey=true;} else {$showkey=false;} // "j"/"n" als boolean umwandeln, ist praktischer abzufragen, wird oft gebraucht 
     49if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} 
    5850 
    5951require_once("alkis_conf_location.php"); 
     
    6961        <link rel="stylesheet" type="text/css" href="alkisauszug.css"> 
    7062        <link rel="shortcut icon" type="image/x-icon" href="ico/Flurstueck.ico"> 
    71         <script type="text/javascript"> 
    72                 function ALKISexport() { 
    73                         window.open(<?php echo "'alkisexport.php?gkz=".$gkz."&tabtyp=flurstueck&gmlid=".$gmlid."'"; ?>); 
     63        <script> 
     64                function ALKISexport(gmlid) { 
     65                        window.open('alkisexport.php?gkz=<?php echo $gkz;?>&tabtyp=flurstueck&gmlid=' + gmlid); 
    7466                } 
    7567        </script> 
     
    7769<body> 
    7870<?php 
    79 // S t a r t 
     71// Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. Blendet z.B. "fiktives Blatt" aus. 
     72// Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 
     73if ($nodebug == "j") {$debug=0;}  
     74 
    8075$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisfsnw.php'"); 
    8176if (!$con) echo "\n<p class='err'>Fehler beim Verbinden der DB</p>"; 
    8277 
    83 // Ein (ALB- ?) FlurstÃŒcks-Kennzeichen wurde alternativ zur gml_id ÃŒbermittelt 
     78// Ein FlurstÃŒcks-Kennzeichen wurde alternativ zur gml_id ÃŒbermittelt 
    8479if ($fskennz != '') { 
    85         // Übergabe Format z.B. "llgggg-fff-nnnn/zz.nn" oder "gggg-ff-nnn/zz" 
    86         $arr=explode("-", $fskennz, 4); 
     80        $arr=explode("-", $fskennz, 4); // zerlegen 
    8781        $zgemkg=trim($arr[0]); 
    88         if (strlen($zgemkg) == 20 and !isset($arr[1])) { // Oh, ist wohl schon das Datenbank-Feldformat  
    89                 $fskzdb=$zgemkg; 
    90         } else { // Nö, ist wohl eher ALB-Format 
     82        if (strlen($zgemkg) == 20 and !isset($arr[1])) { 
     83                $fskzdb=$zgemkg; // Datenbank-Feldformat 
     84        } else { // Format "llgggg-fff-nnnn/zz.nn" oder "gggg-ff-nnn/zz" 
    9185                // Das Kennzeichen auseinander nehmen.  
    9286                if (strlen($zgemkg) == 6) { 
     
    121115        $res = pg_prepare("", $sql); 
    122116        $res = pg_execute("", $v); 
    123         if ($row = pg_fetch_array($res)) { 
     117        if ($row = pg_fetch_assoc($res)) { 
    124118                $gmlid=$row["gml_id"]; 
    125119        } else { 
     
    132126} 
    133127 
    134 // F L U R S T U E C K 
     128// F L U R S T U E C K  m. Gebiet 
    135129$sql ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche, st_area(f.wkb_geometry) AS fsgeomflae,  
    136 to_char(cast(f.zeitpunktderentstehung AS date),'DD.MM.YYYY') AS zeitpunktderentstehung, g.gemarkungsnummer, g.bezeichnung  
    137 FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
    138 WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL;"; 
    139  
     130to_char(cast(f.zeitpunktderentstehung AS date),'DD.MM.YYYY') AS zeitpunktderentstehung, f.istgebucht, g.gemarkungsnummer, g.bezeichnung,  
     131r.bezeichnung AS rbez, k.bezeichnung AS kbez, m.bezeichnung AS mbez  
     132FROM ax_flurstueck f  
     133LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
     134LEFT JOIN ax_regierungsbezirk r ON f.regierungsbezirk=r.regierungsbezirk  
     135LEFT JOIN ax_kreisregion k ON f.regierungsbezirk=k.regierungsbezirk AND f.kreis=k.kreis  
     136LEFT JOIN ax_gemeinde m ON m.regierungsbezirk=f.regierungsbezirk AND m.kreis=f.kreis AND m.gemeinde=f.gemeinde 
     137WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL AND m.endet IS NULL AND k.endet IS NULL AND r.endet IS NULL;"; 
    140138$v = array($gmlid); // mit gml_id suchen 
    141139$res = pg_prepare("", $sql); 
    142140$res = pg_execute("", $v); 
    143  
    144141if (!$res) { 
    145142        echo "\n<p class='err'>Fehler bei Flurstuecksdaten</p>"; 
    146143        if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";} 
    147144} 
    148 if ($row = pg_fetch_array($res)) { 
     145if ($row = pg_fetch_assoc($res)) { 
    149146        $gemkname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 
    150147        $gmkgnr=$row["gemarkungsnummer"]; 
    151148        $bezirk=$row["regierungsbezirk"]; 
     149        $rbez=htmlentities($row["rbez"], ENT_QUOTES, "UTF-8"); 
    152150        $kreis=$row["kreis"]; 
     151        $kbez=htmlentities($row["kbez"], ENT_QUOTES, "UTF-8"); 
    153152        $gemeinde=$row["gemeinde"]; 
     153        $mbez=htmlentities($row["mbez"], ENT_QUOTES, "UTF-8"); 
    154154        $flurnummer=$row["flurnummer"]; 
    155155        $zaehler=$row["zaehler"]; 
     
    163163        $fsgeomflaed=number_format($fsgeomflae,0,",",".") . " m&#178;"; 
    164164        $entsteh=$row["zeitpunktderentstehung"]; 
     165        $gml_buchungsstelle=$row["istgebucht"]; // wird erst im GB-Teil benötigt 
    165166        $name=$row["name"]; // Fortfuehrungsnummer(n) 
    166167        $arrn = explode(",", trim($name, "{}") ); // PHP-Array 
     
    173174pg_free_result($res); 
    174175 
    175 // Balken 
    176 if ($eig=="j") { 
     176if ($eig=="j") { // Balken 
    177177        echo "<p class='fsei'>ALKIS Flurst&uuml;ck ".$gmkgnr."-".$flurnummer."-".$flstnummer."&nbsp;</p>" 
    178         ."\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;ck mit Eigent&uuml;mer</h2>"; 
     178        ."\n\n<h2>Flurst&uuml;ck mit Eigent&uuml;mer</h2>"; 
    179179} else { 
    180180        echo "<p class='fskennz'>ALKIS Flurst&uuml;ck ".$gmkgnr."-".$flurnummer."-".$flstnummer."&nbsp;</p>" 
    181         ."\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;ck</h2>"; 
     181        ."\n\n<h2>Flurst&uuml;ck</h2>"; 
    182182} 
    183183 
     
    186186if ( ($filtkreis != '' and $filtkreis != $kreis) or ($filtgem != '' and $filtgem != $gemeinde) ) { 
    187187        // Einer der gesetzten Filter passt nicht 
    188         if ($debug > 2) { 
    189         //++ Schönes Bild? Stop-Zeichen? 
     188        if ($debug > 2) { //++ Schönes Bild? Stop-Zeichen? 
    190189                echo "\n<p class='err'>Filter Kreis='".$filtkreis."', Gemeinde='".$filtgem."'</p>" 
    191190                ."\n<p class='err'>Flstk. Kreis='".$fskrs."', Gemeinde='".$fsgem."'</p>"; 
     
    196195} 
    197196 
    198 echo "\n<table class='outer'>\n<tr>\n\t<td>" // linke Seite 
    199         ."\n\t\t<table class='kennzfs' title='Flurst&uuml;ckskennzeichen'>\n\t\t<tr>" // darin Tabelle Kennzeichen 
    200                 ."\n\t\t\t<td class='head'>Gmkg</td>\n\t\t\t<td class='head'>Flur</td>\n\t\t\t<td class='head'>Flurst-Nr.</td>\n\t\t</tr>" 
    201                 ."\n\t\t<tr>\n\t\t\t<td title='Gemarkung'>"; 
    202                 if ($showkey) { 
    203                         echo "<span class='key'>".$gmkgnr."</span><br>"; 
    204                 } 
    205                 echo $gemkname."&nbsp;</td>" 
    206                 ."\n\t\t\t<td title='Flurnummer'>".$flurnummer."</td>" 
    207                 ."\n\t\t\t<td title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>\n\t\t</tr>" 
    208         ."\n\t\t</table>" 
    209 ."\n\t</td>\n\t<td>" // rechte Seite 
    210         ."\n\t\t<table class='fsd'>" // FS-Daten 2 Spalten 
    211                 ."\n\t\t<tr>\n\t\t\t<td>Entstehung</td>" 
    212                 ."\n\t\t\t<td>".$entsteh."</td>\n\t\t</tr>" 
    213                 ."\n\t\t<tr>" 
    214                         ."\n\t\t\t<td>letz. Fortf</td>" 
    215                         ."\n\t\t\t<td title='Jahrgang / Fortf&uuml;hrungsnummer - Fortf&uuml;hrungsart'>"; 
     197echo "\n<table class='outer'>" 
     198        ."\n\t<tr>\n\t\t<td class='ll'><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Kennzeichen:</td>" // Links 
     199        ."\n\t\t<td>" // Mitte 
     200        ."\n\t\t\t<table class='kennzfs' title='Flurst&uuml;ckskennzeichen'>\n\t\t\t\t<tr>" // darin Tabelle Kennzeichen 
     201                ."\n\t\t\t\t\t<td class='head'>Gemarkung</td>\n\t\t\t\t\t<td class='head'>Flur</td>\n\t\t\t\t\t<td class='head'>Flurst-Nr.</td>\n\t\t\t\t</tr>" 
     202                ."\n\t\t\t\t<tr>\n\t\t\t\t\t<td title='Gemarkung'>"; 
     203                        if ($showkey) {echo "<span class='key'>".$gmkgnr."</span><br>";} 
     204                        echo $gemkname."&nbsp;</td>" 
     205                ."\n\t\t\t\t\t<td title='Flurnummer'>".$flurnummer."</td>" 
     206                ."\n\t\t\t\t\t<td title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>\n\t\t\t\t</tr>" 
     207        ."\n\t\t\t</table>" 
     208        ."\n\t\t</td>\n\t\t<td>" // Rechts 
     209        ."\n\t\t\t<table class='fsd'>" // FS-Daten 2 Spalten 
     210                ."\n\t\t\t\t<tr>\n\t\t\t\t\t<td>Entstehung</td>" 
     211                ."\n\t\t\t\t\t<td>".$entsteh."</td>\n\t\t\t\t</tr>" 
     212                ."\n\t\t\t\t<tr>" 
     213                        ."\n\t\t\t\t\t<td>letz. Fortf</td>" 
     214                        ."\n\t\t\t\t\t<td title='Jahrgang / Fortf&uuml;hrungsnummer - Fortf&uuml;hrungsart'>"; 
    216215                                foreach($arrn AS $val) { // Zeile f. jedes Element des Array 
    217216                                        echo trim($val, '"')."<br>"; 
    218217                                } 
    219218                        echo "</td>" 
    220                 ."\n\t\t</tr>" 
    221         ."\n\t\t</table>" 
    222 ."\n\t</td>\n</tr>\n</table>"; 
    223 //      echo "\n<tr>\n\t<td>Finanzamt</td>\n\t<td>".$finanzamt." ".$finame  . "</td>\n</tr>"; 
    224 // Ende Seitenkopf 
    225  
    226 echo "\n<hr>" 
    227 ."\n<p class='nwlink noprint'>weitere Auskunft:</p>" // oben rechts von der Tabelle 
    228 ."\n<table class='fs'>"; 
    229  
    230 // ** G e b i e t s z u g e h o e r i g k e i t ** 
    231 // eine Tabellenzeile mit der Gebietszugehoerigkeit eines Flurstuecks wird ausgegeben 
    232 // Schluessel "land" wird nicht verwendet, gibt es Bestaende wo das nicht einheitlich ist? 
    233 echo "\n<tr>\n\t<td class='ll'><img title='Im Gebiet von' src='ico/Gemeinde.png' width='16' height='16' alt=''> Gebiet:</td>"; 
    234  
    235 // G e m e i n d e 
    236 $sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk= $1 AND kreis= $2 AND gemeinde= $3 AND endet IS NULL;";  
    237  
    238 $v = array($bezirk,$kreis,$gemeinde); 
    239 $res = pg_prepare("", $sql); 
    240 $res = pg_execute("", $v); 
    241 if (!$res) { 
    242         echo "\n<p class='err'>Fehler bei Gemeinde</p>"; 
    243         if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 
    244 } 
    245 $row = pg_fetch_array($res); 
    246 $gnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 
    247 echo "\n\t<td class='lr'>Gemeinde</td>\n\t<td class='lr' colspan='3'>"; 
    248 if ($showkey) {echo "<span class='key'>(".$gemeinde.")</span> ";} 
    249 // Link zur FS-Historie (passt nicht ganz in die Zeile "Gemeinde", aber gut unter "weitere Auskunft") 
    250 echo $gnam."</td>\n\t<td class='nwlink'>" 
    251         ."\n\t\t<p class='nwlink noprint'>" 
     219                ."\n\t\t\t\t</tr>" 
     220        ."\n\t\t\t</table>" 
     221."\n\t\t</td>\n\t</tr>\n</table>"; 
     222 
     223echo "\n<hr>\n<table class='fs'>"; // FS-Teil 6 Spalten 
     224echo "\n<tr>\n\t\t<td></td>\n\t\t<td></td>\n\t\t<td></td>\n\t\t<td></td>\n\t\t<td></td>" // 1-5 in erster Zeile kein "colspan" verwenden 
     225        ."\n\t\t<td>\n\t\t<p class='nwlink noprint'>weitere Auskunft:</p></td>" // 6 
     226."\n</tr>"; 
     227 
     228echo "\n<tr>" // Zeile: G e b i e t s z u g e h o e r i g k e i t  Gemeinde / Kreis / Regierungsbezirk 
     229        ."\n\t<td class='ll'><img title='Im Gebiet von' src='ico/Gemeinde.png' width='16' height='16' alt=''> Gebiet:</td>" // 1 
     230        ."\n\t<td>Gemeinde<br>Kreis<br>Regierungsbezirk</td>" // 2 
     231        ."\n\t<td class='lr' colspan='3'>"; // 3-5 
     232                if ($showkey) {echo "<span class='key'>(".$gemeinde.")</span> ";} 
     233                echo $mbez."<br>"; 
     234                if ($showkey) {echo "<span class='key'>(".$kreis.")</span> ";} 
     235                echo $kbez."<br>"; 
     236                if ($showkey) {echo "<span class='key'>(".$bezirk.")</span> ";} 
     237                echo $rbez 
     238        ."</td>" 
     239        ."\n\t<td class='nwlink'>" // 5 
     240                ."\n\t\t<p class='nwlink noprint'>" 
    252241                ."\n\t\t\t<a href='alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$gmlid; 
    253                         if ($showkey) {echo "&amp;showkey=j";} 
    254                         echo "' title='Vorg&auml;nger-Flurst&uuml;cke'>Historie " 
    255                         ."<img src='ico/Flurstueck_Historisch.png' width='16' height='16' alt=''>" 
     242                if ($showkey) {echo "&amp;showkey=j";} 
     243                echo "' title='Vorg&auml;nger-Flurst&uuml;cke'>Historie " 
     244                ."<img src='ico/Flurstueck_Historisch.png' width='16' height='16' alt=''>" 
    256245                ."</a>" 
    257         ."\n\t\t</p>" 
    258 . "\n\t</td>\n</tr>"; 
    259 pg_free_result($res); 
    260  
    261 // K r e i s 
    262 $sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk= $1 AND kreis= $2 AND endet IS NULL;";  
    263 $v = array($bezirk,$kreis); 
    264 $res = pg_prepare("", $sql); 
    265 $res = pg_execute("", $v); 
    266 if (!$res) { 
    267         echo "\n<p class='err'>Fehler bei Kreis</p>"; 
    268         if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 
    269 } 
    270 $row = pg_fetch_array($res); 
    271 $knam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 
    272 echo "\n<tr>\n\t<td>&nbsp;</td>\n\t<td>Kreis</td>\n\t<td class='lr' colspan='3'>"; 
    273 if ($showkey) {echo "<span class='key'>(".$kreis.")</span> ";} 
    274 echo $knam."</td>\n\t<td>&nbsp;</td>\n</tr>"; 
    275 pg_free_result($res); 
    276  
    277 // R e g - B e z 
    278 $sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk= $1 AND endet IS NULL;"; 
    279 $v = array($bezirk); 
    280 $res = pg_prepare("", $sql); 
    281 $res = pg_execute("", $v); 
    282 if (!$res) { 
    283         echo "\n<p class='err'>Fehler bei Regierungsbezirk</p>"; 
    284         if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 
    285 } 
    286 $row=pg_fetch_array($res); 
    287 $bnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 
    288 echo "\n<tr>\n\t<td>&nbsp;</td>\n\t<td>Regierungsbezirk</td>\n\t<td class='lr' colspan='3'>"; 
    289 if ($showkey) {echo "<span class='key'>(".$bezirk.")</span> ";} 
    290 echo $bnam."</td>\n\t<td>&nbsp;</td>\n</tr>"; 
    291 pg_free_result($res); 
    292 // ENDE G e b i e t s z u g e h o e r i g k e i t 
     246                ."\n\t\t</p>" 
     247        ."\n\t</td>" // 6 
     248."\n</tr>"; 
    293249 
    294250// ** L a g e b e z e i c h n u n g ** 
    295251 
    296252// Lagebezeichnung  M I T  Hausnummer 
    297  
    298253// ax_flurstueck  >weistAuf>  AX_LagebezeichnungMitHausnummer 
    299254$sql="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung, s.gml_id AS kgml 
     
    316271        $j=0; 
    317272        $kgmlalt=""; 
    318         while($row = pg_fetch_array($res)) { 
     273        while($row = pg_fetch_assoc($res)) { 
    319274                $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name 
    320275                if (substr($sname, strlen($sname) -3, 3) == 'weg') { // Versuch fuer korrekten Satzbau 
     
    324279                } 
    325280                $hsnr=$row["hausnummer"]; 
    326                 echo "\n<tr>\n\t"; 
    327                         if ($j == 0) { 
     281                echo "\n<tr>"; 
     282                        if ($j == 0) { // 1 
    328283                                echo "\n\t<td class='ll'><img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''> Adresse:</td>"; 
    329284                        } else { 
    330285                                echo "\n\t<td>&nbsp;</td>"; 
    331286                        } 
    332                         echo "\n\t<td>&nbsp;</td>" 
    333                         ."\n\t<td class='lr' colspan='3'>"; 
    334                         if ($showkey) { 
    335                                 echo "<span class='key' title='Straßenschl&uuml;ssel'>(".$row["lage"].")</span>&nbsp;"; 
    336                         } 
    337                         echo $sname."&nbsp;".$hsnr."</td>"; 
    338  
    339                         // rechte Spalte 
    340                         echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 
     287                        echo "\n\t<td>&nbsp;</td>" // 2 
     288                        ."\n\t<td class='lr' colspan='3'>"; // 3-5 
     289                                if ($showkey) {echo "<span class='key' title='Straßenschl&uuml;ssel'>(".$row["lage"].")</span>&nbsp;";} 
     290                                echo $sname."&nbsp;".$hsnr."</td>"; 
     291                        echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; // 6 
    341292 
    342293                        // +++ davor auch Link "Straße" 
     
    352303                                if ($showkey) {echo "&amp;showkey=j";} 
    353304                                echo "'>Lage <img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''></a>" 
    354                         ."\n\t\t</p>\n\t</td>" 
     305                        ."\n\t\t</p>\n\t</td>"  // 6 
    355306                ."\n</tr>"; 
    356307                $j++; 
     
    359310        pg_free_result($res); 
    360311} 
    361 // +++ Verbesserung: mehrere HsNr zur gleichen Straße als Liste? 
    362312 
    363313// Lagebezeichnung  O H N E  Hausnummer  (Gewanne oder nur Strasse) 
    364  
    365314// ax_flurstueck  >zeigtAuf>  AX_LagebezeichnungOhneHausnummer 
    366315$sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung  
     
    378327} 
    379328$j=0; 
    380 while($row = pg_fetch_array($res)) { 
     329while($row = pg_fetch_assoc($res)) { 
    381330        $skey=$row["lage"]; // Strassenschl. 
    382331        $lgml=$row["gml_id"]; // key der Lage 
    383332        $gewann = htmlentities($row["unverschluesselt"], ENT_QUOTES, "UTF-8"); 
    384  
    385333        if ($gewann != "") { 
    386334                echo "\n<tr>" 
    387                         ."\n\t<td class='ll' title='unverschl&uuml;sselte Lagebezeichnung'><img src='ico/Lage_Gewanne.png' width='16' height='16' alt=''> Gewanne:</td>" 
    388                         ."\n\t<td></td>" 
    389                         ."\n\t<td class='lr' colspan='3'>".$gewann."</td>" 
    390                         ."\n\t<td>\n\t\t<p class='nwlink noprint'>" 
     335                        ."\n\t<td class='ll' title='unverschl&uuml;sselte Lagebezeichnung'><img src='ico/Lage_Gewanne.png' width='16' height='16' alt=''> Gewanne:</td>" // 1 
     336                        ."\n\t<td></td>" // 2 
     337                        ."\n\t<td class='lr' colspan='3'>".$gewann."</td>" // 3-5 
     338                        ."\n\t<td>\n\t\t<p class='nwlink noprint'>" // 6 
    391339                                ."\n\t\t\t<a title='Flurst&uuml;cke mit der Gewanne ".$gewann."' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml; 
    392340                                if ($showkey) {echo "&amp;showkey=j";}                           
    393341                                echo "'>\n\t\t\tLage <img src='ico/Lage_Gewanne.png' width='16' height='16' alt=''></a>" 
    394                         ."\n\t\t</p>\n\t</td>" 
     342                        ."\n\t\t</p>\n\t</td>" // 6 
    395343                ."\n</tr>"; 
    396344        } elseif ($skey > 0) { 
     
    402350                } 
    403351                echo "\n<tr>" 
    404                         ."\n\t<td class='ll'><img src='ico/Lage_an_Strasse.png' width='16' height='16' alt=''> Stra&szlig;e:</td>" 
    405                         ."\n\t<td></td>" 
    406                         ."\n\t<td class='lr' colspan='3'>"; 
    407                         if ($showkey) {echo "<span class='key'>(".$skey.")</span>&nbsp;";} 
    408                         echo $sname."</td>"; 
    409  
    410                         // rechte Spalte 
    411                         echo "\n\t<td>\n\t\t<p class='nwlink noprint'>" 
     352                        ."\n\t<td class='ll'><img src='ico/Lage_an_Strasse.png' width='16' height='16' alt=''> Stra&szlig;e:</td>" // 1 
     353                        ."\n\t<td></td>" // 2 
     354                        ."\n\t<td class='lr' colspan='3'>"; // 3-5 
     355                                if ($showkey) {echo "<span class='key'>(".$skey.")</span>&nbsp;";} 
     356                                echo $sname."</td>"; 
     357                        echo "\n\t<td>\n\t\t<p class='nwlink noprint'>" // 6 
    412358                                ."\n\t\t\t<a title='FlurstÃŒcke ".$slink."' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml; 
    413359                                if ($showkey) {echo "&amp;showkey=j";}                           
    414360                                echo "'>\n\t\t\tLage <img src='ico/Lage_an_Strasse.png' width='16' height='16' alt=''>\n\t\t\t</a>" 
    415                         ."\n\t\t</p>\n\t</td>" 
     361                        ."\n\t\t</p>\n\t</td>" // 6 
    416362                ."\n</tr>"; 
    417363        } 
     
    419365} 
    420366pg_free_result($res); 
    421 // ENDE  L a g e b e z e i c h n u n g 
    422  
    423 // ** N U T Z U N G ** Gemeinsame FlÀche von NUA und FS 
    424 // Tabellenzeilen (3 Spalten) mit tats. Nutzung zu einem FS ausgeben 
    425  
    426 /* N U T Z U N G   C l a s s i c (alt) 
    427 $sql ="SELECT m.title, m.fldclass, m.fldinfo, n.gml_id, n.nutz_id, n.class, n.info, n.zustand, n.name, n.bezeichnung, m.gruppe,  
    428 st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) AS schnittflae, c.label, c.blabla  
    429 FROM ax_flurstueck f, nutzung n JOIN nutzung_meta m ON m.nutz_id=n.nutz_id  
    430 LEFT JOIN nutzung_class c ON c.nutz_id=n.nutz_id AND c.class=n.class  
    431 WHERE f.gml_id= $1 AND st_intersects(n.wkb_geometry,f.wkb_geometry) = true  
    432 AND st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) > 0.05  
    433 AND f.endet IS NULL ORDER BY schnittflae DESC;"; 
    434  
    435 $v = array($gmlid); 
    436 $res = pg_prepare("", $sql); 
    437 $res = pg_execute("", $v); 
    438 if (!$res) { 
    439         echo "\n<p class='err'>Fehler bei Suche tats. Nutzung</p>"; 
    440         if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";} 
    441 } 
    442 $the_Xfactor=$fsbuchflae / $fsgeomflae; // geom. ermittelte FlÀche auf amtl. BuchflÀche angleichen 
    443 $j=0; 
    444 while($row = pg_fetch_array($res)) { 
    445         $grupp=$row["gruppe"]; // 4 Gruppen 
    446         $nutzid=$row["nutz_id"]; // 27 Tabellen, num. Key 
    447         $title=htmlentities($row["title"], ENT_QUOTES, "UTF-8"); // Titel der 27 Tabellen 
    448         $fldclass=$row["fldclass"]; // Name 1. Zusatzfeld 
    449         $fldinfo= $row["fldinfo"];  // Name 2. Zus. 
    450         $gml=$row["gml_id"]; 
    451         $class=$row["class"]; // 1. Zusatzfeld verschlÃŒsselt -> nutzung_class 
    452         $info=$row["info"]; // 2. Zus. verschlÃŒsselt (noch keine Info zum entschl.) 
    453         $schnittflae=$row["schnittflae"]; 
    454         $label=$row["label"]; // Nutzungsart entschlÃŒsselt 
    455         $zus=$row["zustand"]; // im Bau 
    456         $nam=$row["name"]; // Eigenname 
    457         $bez=$row["bezeichnung"]; // weiterer Name (unverschl.) 
    458         $blabla=htmlentities($row["blabla"], ENT_QUOTES, "UTF-8"); 
    459         $label=str_replace("/", "<br>", $label); // Ersetzt "/" durch html-Zeilenwechsel 
    460  
    461         echo "\n<tr>\n\t"; 
    462                 if ($j == 0) { 
    463                         echo "<td class='ll' title='Abschnitt der tats&auml;chlichen Nutzung'><img src='ico/Abschnitt.png' width='16' height='16' alt=''> Nutzung:</td>"; 
    464                 } else { 
    465                         echo "<td>&nbsp;</td>"; 
    466                 } 
    467                 $absflaebuch = $schnittflae * $the_Xfactor; // angleichen geometrisch an amtliche FlÀche 
    468                 $schnittflae = number_format($schnittflae,1,",",".") . " m&#178;"; // geometrisch 
    469                 $absflaebuch = number_format($absflaebuch,0,",",".") . " m&#178;"; // Abschnitt an BuchflÀche angeglichen 
    470                 echo "\n\t<td class='fla' title='geometrisch berechnet: ".$schnittflae."'>".$absflaebuch."</td>"; 
    471  
    472                 echo "\n\t<td class='lr' colspan='3'>"; 
    473                         if ($class == 0) { 
    474                                 if ($showkey) {echo "<span class='key'>(".$nutzid.")</span> ";} 
    475                                 echo $title; // Name der Tabelle 
    476                         } elseif ( ($fldclass == "Funktion" OR $fldclass == "Vegetationsmerkmal") AND $label != "") { // Kurze Anzeige 
    477                                 if ($showkey) {echo "<span class='key' title='".$fldclass."'>(".$nutzid."-".$class.")</span> ";} 
    478                                 if ($blabla = "") { 
    479                                         echo $label; 
    480                                 } else { 
    481                                         echo "<span title='".$blabla."'>".$label."</span>"; 
    482                                 } 
    483                         } else { // ausfuehrlichere Anzeige 
    484                                 echo $title; // NUA-Tabelle 
    485                                 if ($class != "") { // NUA-SchlÃŒssel 
    486                                         echo ", ".$fldclass.": "; // Feldname 
    487                                         if ($showkey) {echo "<span class='key' title='".$fldclass."'>(".$nutzid."-".$class.")</span> ";} 
    488                                         if ($label != "") { // Bedeutung dazu wurde erfasst 
    489                                                 if ($blabla = "") { 
    490                                                         echo $label; 
    491                                                 } else { 
    492                                                         echo "<span title='".$blabla."'>".$label."</span>"; 
    493                                                 } 
    494                                         } else { // muss noch erfasst werden 
    495                                                 echo $class." "; // SchlÃŒssel als Ersatz fÃŒr Bedeutung 
    496                                         } 
    497                                 } 
    498                         } 
    499                         if ($info != "") { // manchmal ein zweites Zusatzfeld (wie entschlÃŒsseln?) 
    500                                 echo ", ".$fldinfo."=".$info; 
    501                         } 
    502                         if ($zus != "") { // Zustand 
    503                                 echo "\n\t\t<br>"; 
    504                                 if ($showkey) {echo "<span class='key'>(".$zus.")</span> ";} 
    505                                 echo "<span title='Zustand'>";                           
    506                                 switch ($zus) { 
    507                                         case 2100: echo "Außer Betrieb, stillgelegt, verlassen"; break; 
    508                                         case 4000: echo "Im Bau"; break; 
    509                                         case 8000: echo "Erweiterung, Neuansiedlung"; break; 
    510                                         default: echo "Zustand: ".$zus; break; 
    511                                 } 
    512                                 echo "</span>"; 
    513                         } 
    514                         if ($nam != "") {echo "<br>Name: ".$nam;} 
    515                         if ($bez != "") {echo "<br>Bezeichnung: ".$bez;} 
    516  
    517                 echo "</td>"; 
    518                 echo "\n\t<td>"; 
    519                         switch ($grupp) { // Icon nach 4 Objektartengruppen 
    520                                 case "Siedlung":   $ico = "Abschnitt.png"; break; 
    521                                 case "Verkehr":    $ico = "Strassen_Klassifikation.png"; break; 
    522                                 case "Vegetation": $ico = "Wald.png"; break; 
    523                                 case "GewÀsser":   $ico = "Wasser.png";        break; 
    524                                 default:        $ico = "Abschnitt.png"; break; 
    525                         } 
    526                         // Icon ist auch im Druck sichtbar, class='noprint' ?            
    527                         echo "<p class='nwlink'><img title='".$title."' src='ico/".$ico."' width='16' height='16' alt='NUA'></p>"; 
    528                 echo "</td>"; 
    529         echo "\n</tr>"; 
    530         $j++; 
    531 } 
    532   E N D E   N U T Z U N G   C l a s s i c  */ 
    533  
    534 /* Status "Nutzung": 
    535  
    536  Die Classic-Tabelle "nutzung" ist eine Zusammenfassung aller Tabellen mit Nutzungs-FlÀchen 
    537  Die Classic-Tabelle "nutzung_meta" zeigt die Kategorie und Gruppe des Nutzungs-Abschnitts an. 
    538  
    539  Aus der norGIS-Struktur wird ersatzweise VORLÄUFIG die Tabelle "nutz_21" verwendet, 
    540  die das alte ALB-Format der Nutzungs-Abschnitte von FlurstÃŒcken simuliert. 
    541  Hier finden sich bereits verschnittene FlÀchen, aber die gml_id fehlt. 
    542  
    543  Die EntschlÃŒsselung der Nutzungsart in den verschiedenen ALKIS-Varianten ist darin unterentwickelt. 
    544  Diese ist eigentlich fÃŒr jede der getrennten Tabellen der Gruppe Nutzungsart individuell. 
    545  Die Classic-Lösung mit 2 Zusatzfeldern war schon sehr pauschalisiert, aber  
    546  durch die RÃŒck-Konvertierung in ALB-Strukturen in der norGIS-Version ist das zu stark vereinfacht. 
    547  z.B. wird "WohnbauflÀche" mit der Zusatzeigenschaft "Art der Bebauung": 'Offen' 
    548  nun zur Nutzungsart "Offen". 
    549  Durch JOIN auf die "alkis_elemente" mit einem Teil des SchlÃŒssels wird das zur "WohnbauflÀche, Offen". 
    550  Es sollte eine Tabellen-Struktur bereit gestellt werden, die auch aussagt, dass der Wert "Offen" zur 
    551  Zusatz-Eigenschaft "Art der Bebauung" gehört. Dazu muss das PostProcessing erweitert werden. */ 
    552  
     367 
     368/* Status "N u t z u n g": 
     369Die Classic-Tabelle "nutzung" ist eine Zusammenfassung aller Tabellen mit Nutzungs-FlÀchen 
     370Die Classic-Tabelle "nutzung_meta" zeigt die Kategorie und Gruppe des Nutzungs-Abschnitts an. 
     371 
     372Aus der norGIS-Struktur wird ersatzweise VORLÄUFIG die Tabelle "nutz_21" verwendet, 
     373die das alte ALB-Format der Nutzungs-Abschnitte von FlurstÃŒcken simuliert. 
     374Hier finden sich bereits verschnittene FlÀchen, aber die gml_id fehlt. 
     375 
     376Die EntschlÃŒsselung der Nutzungsart in den verschiedenen ALKIS-Varianten ist darin unterentwickelt. 
     377Diese ist eigentlich fÃŒr jede der getrennten Tabellen der Gruppe Nutzungsart individuell. 
     378Die Classic-Lösung mit 2 Zusatzfeldern war schon sehr pauschalisiert, aber  
     379durch die RÃŒck-Konvertierung in ALB-Strukturen in der norGIS-Version ist das zu stark vereinfacht. 
     380z.B. wird "WohnbauflÀche" mit der Zusatzeigenschaft "Art der Bebauung": 'Offen' 
     381nun zur Nutzungsart "Offen". 
     382Durch JOIN auf die "alkis_elemente" mit einem Teil des SchlÃŒssels wird das zur "WohnbauflÀche, Offen". 
     383Es sollte eine Tabellen-Struktur bereit gestellt werden, die auch aussagt, dass der Wert "Offen" zur 
     384Zusatz-Eigenschaft "Art der Bebauung" gehört. Dazu muss das PostProcessing erweitert werden. */ 
    553385 
    554386$sql="SELECT e.definition, trim(both FROM n.nutzsl) AS nutzsl, trim(both FROM n.fl) AS fl, trim(both FROM s.nutzung) AS nutzung 
     
    565397        if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = FS-Kennz = '".$fskennzalb."'</p>";} 
    566398} 
    567  
    568399$j=0; 
    569 while($row = pg_fetch_array($res)) { 
     400while($row = pg_fetch_assoc($res)) { 
    570401        $flae=$row["fl"]; // BuchflÀche 
    571402        $nutzsl=$row["nutzsl"]; // SchlÃŒssel 
     
    573404        $defi=$row["definition"]; // Langer Text mit Beschreibung 
    574405        $title=htmlentities($defi, ENT_QUOTES, "UTF-8"); // .. fÃŒr Anzeige aufbereitet 
    575  
    576406        echo "\n<tr>\n\t"; 
    577                 if ($j == 0) { 
     407                if ($j == 0) { // 1 
    578408                        echo "<td class='ll' title='Abschnitt der tats&auml;chlichen Nutzung'><img src='ico/Abschnitt.png' width='16' height='16' alt=''> Nutzung:</td>"; 
    579409                } else { 
     
    581411                } 
    582412                $absflaebuch = number_format($flae,0,",",".") . " m&#178;"; // Formatierte Abschnitts-Buch-FlÀche 
    583                 echo "\n\t<td class='fla' title='Buchfl&auml;che des Abschnitts'>".$absflaebuch."</td>"; 
    584  
    585                 echo "\n\t<td class='lr' colspan='3' title='".$title."'>"; 
     413                echo "\n\t<td></td>"; // 2 
     414                echo "\n\t<td class='fla' title='Buchfl&auml;che des Abschnitts'>".$absflaebuch."</td>"; // 3 - gleiche Spalte wie Fl. in BodenschÀtzg. 
     415                echo "\n\t<td></td>"; // 4 
     416                echo "\n\t<td class='lr' title='".$title."'>"; // 5 - gleiche Sp. wie Zustandsstufe usw. 
    586417                        if ($showkey) {echo "<span class='key'>(".$nutzsl.")</span> ";} 
    587418                        echo $nutzung 
    588419                ."</td>" 
    589                 ."\n\t<td>"; 
     420                ."\n\t<td>"; // 6 
    590421/*              // Derzeit ist keine Gruppe zugeordnet 
    591422                        switch ($grupp) { // Icon nach 4 Objektartengruppen 
     
    597428                        } 
    598429                        // Icon ist auch im Druck sichtbar, class='noprint' ?            
    599                         echo "<p class='nwlink'><img title='".$title."' src='ico/".$ico."' width='16' height='16' alt='NUA'></p>"; 
    600 */ 
    601                 echo "</td>" 
     430                        echo "<p class='nwlink'><img title='".$title."' src='ico/".$ico."' width='16' height='16' alt='NUA'></p>"; */ 
     431                echo "</td>" // 6 
    602432        ."\n</tr>"; 
    603433        $j++; 
     
    605435pg_free_result($res); 
    606436 
    607 echo "\n<tr>" // Summenzeile 
    608         ."\n\t<td class='re' title='amtliche Fl&auml;che (Buchfl&auml;che)'>Fl&auml;che:</td>" 
    609         ."\n\t<td class='fla sum'>" 
    610         ."<span title='geometrisch berechnete Fl&auml;che = ".$fsgeomflaed."' class='flae'>".$fsbuchflaed."</span></td>"; 
    611  
    612         // Flaeche und Link auf GebÀude-Auswertung 
    613         echo "\n\t<td colspan='3'>&nbsp;</td>\n\t<td>" 
     437echo "\n<tr>" // FlÀchen-Summenzeile 
     438        ."\n\t<td class='re' title='amtliche Fl&auml;che (Buchfl&auml;che)'>Fl&auml;che:</td>" // 1 
     439        ."\n\t<td>&nbsp;</td>" // 2 
     440        ."\n\t<td class='fla sum'>" // 3 Flaeche 
     441                ."<span title='geometrisch berechnete Fl&auml;che = ".$fsgeomflaed."' class='flae'>".$fsbuchflaed."</span></td>" 
     442        ."\n\t<td>&nbsp;</td>" // 4 
     443        ."\n\t<td>&nbsp;</td>" // 5 
     444        ."\n\t<td>" // 6 Link auf GebÀude-Auswertung 
    614445                ."\n\t\t<p class='nwlink noprint'>" // Gebaeude-Verschneidung 
    615                         ."\n\t\t\t<a href='alkisgebaeudenw.php?gkz=".$gkz."&amp;gmlid=".$gmlid; 
    616                         if ($showkey) {echo "&amp;showkey=j";} 
    617                         if ($cnt_adressen > 0) { // wenn Adresse vorgekommen ist 
    618                                 echo "' title='Geb&auml;ude auf oder an dem Flurst&uuml;ck'>Geb&auml;ude "; 
    619                         } else { // GebÀude mit Adresse gibt es NICHT, das ist klar 
    620                                 echo "' title='Suche Geb&auml;ude ohne Adresse auf dem Flurst&uuml;ck oder angrenzende Geb&auml;ude'>Suche "; 
    621                         } 
    622                         echo "<img src='ico/Haus.png' width='16' height='16' alt=''></a>" 
     446                ."\n\t\t\t<a href='alkisgebaeudenw.php?gkz=".$gkz."&amp;gmlid=".$gmlid; 
     447                if ($showkey) {echo "&amp;showkey=j";} 
     448                if ($cnt_adressen > 0) { // wenn Adresse vorgekommen ist 
     449                        echo "' title='Geb&auml;ude auf oder an dem Flurst&uuml;ck'>Geb&auml;ude "; 
     450                } else { // GebÀude mit Adresse gibt es NICHT, das ist klar 
     451                        echo "' title='Suche Geb&auml;ude ohne Adresse auf dem Flurst&uuml;ck oder angrenzende Geb&auml;ude'>Suche "; 
     452                } 
     453                echo "<img src='ico/Haus.png' width='16' height='16' alt=''></a>" 
    623454                ."\n\t\t</p>" 
    624         ."\n\t</td>" 
    625 ."\n</tr>"; 
    626 // ENDE  N U T Z U N G 
    627  
    628  
    629 // K L A S S I F I Z I E R U N G 
    630  
    631 // Klassifizierung nach  W a s s e rrecht 
    632 /*  
    633         // Tabelle immer leer? 
    634 $sql="SELECT h.v, w.artderfestlegung, st_area(st_intersection(w.wkb_geometry, f.wkb_geometry)) AS schnittflae, f.amtlicheflaeche, st_area(f.wkb_geometry) as fsgeomflae  
    635 FROM ax_flurstueck f 
    636 JOIN ax_klassifizierungnachwasserrecht w 
    637  ON st_intersects(w.wkb_geometry, f.wkb_geometry) AND st_area(st_intersection(w.wkb_geometry, f.wkb_geometry)) > 0.05 
    638 LEFT JOIN alkis_wertearten h 
    639  ON cast(w.artderfestlegung AS character varying) = h.k AND h.element='ax_klassifizierungnachwasserrecht' AND h.bezeichnung='artderfestlegung' 
    640 WHERE f.gml_id = $1 AND f.endet IS NULL AND w.endet IS NULL ORDER BY schnittflae DESC"; 
    641  
    642 $v = array($gmlid); 
    643 $res = pg_prepare("", $sql); 
    644 $res = pg_execute("", $v); 
    645 if (!$res) {echo "\n<p class='err'>Fehler bei DB-Abfrage zur Klassifizierung Wasser</p>\n";} 
    646  
    647 if(!empty($res) && pg_num_rows($res) > 0) { 
    648         echo "\n<table>"; 
    649         while($row = pg_fetch_array($res)) { 
    650                 $fsbuchflae=$row["amtlicheflaeche"]; 
    651                 $fsgeomflae=$row["fsgeomflae"]; 
    652                 $the_Xfactor=$fsbuchflae / $fsgeomflae; // ++ nicht in Loop, ist konst. je FS 
    653                 $absflaebuch = $row['schnittflae'] * $the_Xfactor; 
    654                 echo"\n<tr><td></td><td></td></tr>" 
    655                 ."\n<tr><td><b>FlÀche</b></td><td class='klassifizerung'><span class=''>".number_format(intval($absflaebuch),0,",",".")." m²</span></td></tr>"         
    656                 ."\n<tr><td><b>Bezeichnung</b></td><td class='klassifizerung'><span class=''>".$row['v']."</span></td></tr>" 
    657                 ."\n<tr><td></td><td></td></tr>";        
    658         } 
    659         echo "</table>"; 
    660 } 
    661 // Klassifizierung nach  S t r a ß e n recht 
    662         // Tabelle immer leer? 
    663 */ 
     455        ."\n\t</td>" // 6 
     456        ."\n</tr>"; 
    664457 
    665458// B o d e n s c h À t z u n g 
     
    668461 
    669462// BodenschÀtzungs-Abschnitte mit FlurstÃŒcken verschneiden, Spalten entschlÃŒsseln 
    670 $sql="SELECT  
    671  kulturart.k AS kulturartk, kulturart.v AS kulturartv,  
    672  bodenart.k  AS bodenartk,  bodenart.v  AS bodenartv,  
     463$sql="SELECT kulturart.k AS kulturartk, kulturart.v AS kulturartv, 
     464 bodenart.k  AS bodenartk,  bodenart.v  AS bodenartv, 
    673465 zustbod.v AS zustbodv, 
    674466 b.entstehungsartoderklimastufewasserverhaeltnisse AS entsteh, b.sonstigeangaben, 
    675  b.bodenzahlodergruenlandgrundzahl as bodenzahl, b.ackerzahlodergruenlandzahl AS ackerzahl,  
     467 b.bodenzahlodergruenlandgrundzahl as bodenzahl, b.ackerzahlodergruenlandzahl AS ackerzahl, 
    676468 b.jahreszahl, st_area(st_intersection(b.wkb_geometry, f.wkb_geometry)) AS schnittflae  
    677469FROM ax_flurstueck f 
     
    686478$res = pg_execute("", $v); 
    687479if (!$res) {echo "\n<p class='err'>Fehler bei DB-Abfrage zur Klassifizierung Boden</p>\n";} 
    688  
    689480$gesertragsmz = 0; // Gesamt-ErtragsMesszahl 
    690481$klasflae = 0; // Summe klassifizierte FlÀche 
    691482$j=0; 
    692  
    693483if(!empty($res) && pg_num_rows($res) > 0) { 
    694  
    695         while ($row = pg_fetch_array($res)) { 
     484        while ($row = pg_fetch_assoc($res)) { 
    696485                $kulturartk=$row['kulturartk']; // Key  - 
    697486                $kulturartv=$row['kulturartv']; //              - Value 
     
    718507                $entsteh=$row['entsteh']; 
    719508                $sonst=$row['sonstigeangaben']; 
    720  
    721                 // Sp. 1/4 
    722                 if ($j == 0) { 
     509                if ($j == 0) { // 1 
    723510                        echo "\n<tr>\n\t<td class='ll' title='Abschnitt Bodensch&auml;tzung'><img src='ico/Landwirt.png' width='16' height='16' alt=''> Bodensch&auml;tzung:</td>"; 
    724511                } else { 
    725512                        echo "\n<tr>\n\t<td>&nbsp;</td>"; 
    726513                } 
    727  
    728                 // Sp. 2/4 
    729                 echo "\n\t<td class='fla' title='Ertragsmesszahl: Produkt von ".$kbez2."/100 und Fl&auml;che.'>EMZ ".$ertragszahl."</td>"; 
    730  
    731                 // Sp. 3/4 - unterteilt in 3 Sp. 
    732                 echo "\n\t<td class='re' title='Fl&auml;che des Sch&auml;tzungsabschnitts'>".$absbuchflaedis."</td>"; 
    733                 echo "\n\t<td class='lr'><span title='".$kbez1."'>".$boedenzahl."</span>/<span title='".$kbez2."'>".$ackerzahl."</span></td>"; 
    734                 echo "\n\t<td class='lr'>"; 
     514                echo "\n\t<td class='fla' title='Ertragsmesszahl: Produkt von ".$kbez2."/100 und Fl&auml;che.'>EMZ ".$ertragszahl."</td>"; // 2 
     515                echo "\n\t<td class='re' title='Fl&auml;che des Sch&auml;tzungsabschnitts'>".$absbuchflaedis."</td>"; // 3 
     516                echo "\n\t<td class='lr'><span title='".$kbez1."'>".$boedenzahl."</span>/<span title='".$kbez2."'>".$ackerzahl."</span></td>"; // 4 
     517                echo "\n\t<td class='lr'>"; // 5 
    735518 
    736519                        if ($showkey) {echo "\n\t\t<span class='key'>(".$kulturartk.")</span> ";} 
     
    761544                                echo "\n\t\t<span title='Jahreszahl'>".$jahr."</span>"; 
    762545                        } 
    763                 echo "\n\t</td>"; 
    764  
    765                 // Sp. 4/4 - leer, keine Links 
    766                 echo "\n\t<td>&nbsp;</td>\n</tr>"; 
     546                echo "\n\t</td>"; // 5 
     547                echo "\n\t<td>&nbsp;</td>\n</tr>"; // 6 
    767548                $j++; 
    768549        } 
    769  
    770550        // Summenzeile 
    771551        $klasflaedis = number_format($klasflae,0,",",".")." m&#178;"; 
    772         echo "\n<tr>\n\t<td class='re'>Ertragsmesszahl:</td>" 
    773         ."\n\t<td class='fla sum' title='Summe der Ertragsmesszahlen f&uuml;r dies Flurst&uuml;ck'>".$gesertragsmz."</td>" 
    774         ."\n\t<td class='re'>".$klasflaedis."</td>\n\t<td colspan='3'>&nbsp;</td>\n</tr>"; 
     552        echo "\n<tr>\n\t<td class='re'>Ertragsmesszahl:</td>" // 1 
     553        ."\n\t<td class='fla sum' title='Summe der Ertragsmesszahlen f&uuml;r dies Flurst&uuml;ck'>".$gesertragsmz."</td>" // 2 
     554        ."\n\t<td class='re'>".$klasflaedis."</td>" // 3 
     555        ."\n\t<td colspan='3'>&nbsp;</td>\n</tr>"; // 4-6 
    775556} 
    776557 
     
    791572        if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sql_boden."<br>$1 = gml_id = '".$gmlid."'</p>";} 
    792573} 
    793  
    794574$sql_str="SELECT gml_id FROM ax_besondereflurstuecksgrenze WHERE endet IS NULL AND 1000 = ANY(artderflurstuecksgrenze)  
    795575AND ST_touches((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 AND endet IS NULL),wkb_geometry);"; 
     
    801581        if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sql_str."<br>$1 = gml_id = '".$gmlid."'</p>";} 
    802582} 
    803  
    804583if (pg_num_rows($res_bodeneuordnung) > 0 OR pg_num_rows($res_strittigeGrenze) > 0) { 
    805584        echo "\n<tr>" 
    806         ."\n\t<td title='Hinweise zum Flurst&uuml;ck'><h6><img src='ico/Hinweis.png' width='16' height='16' alt=''> " 
    807         ."Hinweise:</h6></td>\n\t<td colspan='5'>&nbsp;</td>" 
    808         ."\n</tr>"; 
    809  
     585        ."\n\t<td title='Hinweise zum Flurst&uuml;ck'><h6><img src='ico/Hinweis.png' width='16' height='16' alt=''> " // 1 
     586        ."Hinweise:</h6></td>\n\t<td colspan='5'>&nbsp;</td>\n</tr>";// 2-6 
    810587        if (pg_num_rows($res_bodeneuordnung) > 0) { 
    811  
    812                 while ($row = pg_fetch_array($res_bodeneuordnung)) { // 3 Zeilen je Verfahren 
    813  
    814                         // Zeile 1 - kommt immer, darum hier den Link 
    815                         echo "\n<tr title='Bau-, Raum- oder Bodenordnungsrecht'>" 
    816                                 ."\n\t<td>Bodenrecht</td>" 
    817                                 ."\n\t<td class='re'>Festlegung: </td>" // "Art der Festlegung" zu lang 
    818                                 ."\n\t<td colspan='3'>"; 
     588                while ($row = pg_fetch_assoc($res_bodeneuordnung)) { // 3 Zeilen je Verfahren 
     589                        echo "\n<tr title='Bau-, Raum- oder Bodenordnungsrecht'>" // Zeile 1 - kommt immer, darum hier den Link 
     590                                ."\n\t<td>Bodenrecht</td>" // 1 
     591                                ."\n\t<td class='re'>Festlegung: </td>" // 2 "Art der Festlegung" zu lang 
     592                                ."\n\t<td colspan='3'>"; // 3-5 
    819593                                        if ($showkey) {echo "<span class='key'>(".$row['wert'].")</span> ";} 
    820594                                        echo $row['art_verf'] 
    821595                                ."</td>"; 
    822                                 // LINK: 
    823                                 echo "\n\t<td>" 
     596                                echo "\n\t<td>" // 6 LINK: 
    824597                                        ."\n\t\t<p class='nwlink noprint'>" 
    825598                                        ."\n\t\t\t<a href='alkisbaurecht.php?gkz=".$gkz."&amp;gmlid=".$row['verf_gml']; 
     
    829602                                ."\n\t</td>" 
    830603                        ."\n</tr>"; 
    831  
    832                         // Zeile 2 
    833                         $dstell=$row['stelle_key']; 
     604                        $dstell=$row['stelle_key']; // Zeile 2 
    834605                        if ($dstell != "") { // Kann auch leer sein 
    835606                                echo "\n<tr title='Flurbereinigungsbeh&ouml;rde'>" 
    836                                         ."\n\t<td>&nbsp;</td>" 
    837                                         ."\n\t<td class='re'>Dienststelle: </td>" 
    838                                         ."\n\t<td colspan='3'>"; 
     607                                        ."\n\t<td>&nbsp;</td>" // 1 
     608                                        ."\n\t<td class='re'>Dienststelle: </td>" // 2 
     609                                        ."\n\t<td colspan='3'>"; // 3-5 
    839610                                                if ($showkey) {echo "<span class='key'>(".$dstell.")</span> ";} 
    840611                                                echo $row['stelle_bez'] 
    841612                                        ."</td>" 
    842                                         ."\n\t<td>&nbsp;</td>" 
     613                                        ."\n\t<td>&nbsp;</td>" // 6 
    843614                                ."\n</tr>"; 
    844615                        } 
    845  
    846                         // Zeile 3 
    847                         $vbez=$row['verf_bez']; // ist nicht immer gefÃŒllt 
     616                        $vbez=$row['verf_bez']; // Zeile 3, ist nicht immer gefÃŒllt 
    848617                        $vnam=$row['verf_name']; // noch seltener 
    849618                        if ($vbez != "") { 
     
    872641echo "\n</table>"; 
    873642 
    874 // G R U N D B U C H 
    875 echo "\n\n<table class='outer'>" 
    876         ."\n<tr>" 
    877                 ."\n\t<td>" 
    878                         ."\n\t\t<h3 id='gb'><img src='ico/Grundbuch_zu.png' width='16' height='16' alt=''> Grundb&uuml;cher</h3>" 
    879                 ."\n\t</td>" 
    880                 ."\n\t<td>" 
    881                         ."\n\t\t<p class='nwlink noprint'>" 
    882                                 ."\n\t\t\t<a href='".$_SERVER['PHP_SELF']. "?gkz=".$gkz."&amp;gmlid=".$gmlid."&amp;berbu=".$berbu; 
    883                                 if ($showkey) {echo "&amp;showkey=j";} 
    884  
    885                                 // Umschalter: FS-Nachweis ruft sich selbst mit geaendertem Parameter auf. Positionierung auf Marke "#gb" 
    886                                 if ($eig=="j") { 
    887                                         echo "&amp;eig=n#gb' title='Umschalter: Flurst&uuml;cksnachweis'>ohne Eigent&uuml;mer</a>"; 
    888                                 } else { 
    889                                         echo "&amp;eig=j#gb' title='Umschalter: Flurst&uuml;cks- und Eigent&uuml;mernachweis'>mit Eigent&uuml;mer " 
    890                                         ."<img src='ico/EigentuemerGBzeile.png' width='16' height='16' alt=''></a>"; 
     643// B U C H U N G S S T E L L E N  zum FS 
     644$bartgrp="";    // Buchungsart 
     645$barttypgrp=""; // Buchungsart Typ 
     646if ($gml_buchungsstelle == '') {echo "\n<p class='err'>Keine Buchungstelle zum Flurst&uuml;ck gefunden.</p>";} 
     647echo "\n<table class='outer'>"; // ALLE Buchungen und EigentÃŒmer in 4 Spalten EINER Tabelle ausgeben 
     648        $stufe=1; // SchleifenzÀhler Tiefe 
     649        $gezeigt=buchung_anzg($gml_buchungsstelle, $eig, false, $gmlid); // die ("dienende") Buchung anzeigen, wenn nicht fiktiv. Liefert true/false 
     650 
     651        $anzber=ber_bs_zaehl($gml_buchungsstelle); // Anzahl berechtigte Buchungen (nÀchste Stufe) zu dieser Buchung ermitteln 
     652        $verf_next = array($gml_buchungsstelle); // Start Recursion mit einem Element 
     653        //if ($debug > 2) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";} 
     654 
     655        while ($anzber > 0 ) { // Stufe - recursiv in die Tiefe, solange es was zu verfolgen gibt 
     656                $verf_akt=$verf_next; // die nÀchste Stufe als aktuell ÃŒbernehmen .. 
     657                $verf_next=array(); // .. und zum AuffÃŒllen leeren 
     658                $stufe++; 
     659                $i=0; // SchleifenzÀhler Elemente 
     660                foreach($verf_akt as $gml_ber_bs) { 
     661                        $i++; 
     662                        if (ber_bs_zaehl($gml_ber_bs) > 0) { 
     663                                $verf_neu=ber_bs_anzg($gml_ber_bs, $eig, $gmlid); // Anzeige ber. Buchungst., ggf. mit EigentÃŒmer. 
     664                                $anz_neu=count($verf_neu); // Das Ergebnis zÀhlen 
     665                        //      if ($debug > 2) {echo "<p class='dbg'>Weiter zu verfolgen: Stufe ".$stufe.", Element ".$i.", Anzahl: ".$anz_neu."</p>";} 
     666                                if ($anz_neu > 0) { // wenn neue geliefert 
     667                                        $verf_next=array_merge($verf_next, $verf_neu); // die neuen an die Sammlung heften 
    891668                                } 
    892                         echo "\n\t\t</p>" 
    893                 ."\n\t</td>" 
    894         ."\n</tr>" 
    895 ."\n</table>"; 
    896  
    897 // B U C H U N G S S T E L L E N  zum FS (istGebucht) 
    898 $sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer as lfd, s.zaehler, s.nenner, s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, b.v AS bart, b.d AS barttitle 
    899 FROM ax_flurstueck f JOIN ax_buchungsstelle s ON s.gml_id=f.istgebucht  
    900 LEFT JOIN alkis_wertearten b ON cast(s.buchungsart AS character varying)=b.k AND b.element='ax_buchungsstelle' AND b.bezeichnung='buchungsart' 
    901 WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL ORDER BY s.laufendenummer;"; 
    902  
    903 $v = array($gmlid); 
    904 $ress = pg_prepare("", $sql); 
    905 $ress = pg_execute("", $v); 
    906 if (!$ress) { 
    907         echo "\n<p class='err'>Keine Buchungsstelle.</p>"; 
    908         if ($debug > 1) { 
    909                 echo "<p class='dbg'>Fehler:".pg_result_error($ress)."</p>"; 
    910                 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";} 
    911         } 
    912 } 
    913 $bs=0; // Z.BuchungsStelle 
    914 while($rows = pg_fetch_array($ress)) {  // Schleife Buchungs-Stelle 
    915         $gmls=$rows["gml_id"]; // gml b-Stelle 
    916         $lfd=$rows["lfd"]; // BVNR 
    917         $barttitle=htmlentities($rows["barttitle"], ENT_QUOTES, "UTF-8"); // .. fÃŒr Anzeige aufbereitet 
    918  
    919         // B U C H U N G S B L A T T  zur Buchungsstelle (istBestandteilVon) 
    920         $sql="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, wb.v AS blattartv, wb.d AS blattartd, z.bezeichnung  
    921         FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON b.gml_id=s.istbestandteilvon  
    922         LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk  
    923         LEFT JOIN alkis_wertearten wb ON cast(b.blattart AS character varying)=wb.k AND wb.element='ax_buchungsblatt' AND wb.bezeichnung='blattart'  
    924         WHERE s.gml_id = $1 AND s.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL 
    925         ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;"; 
    926  
    927         $v=array($gmls); 
    928         $resg=pg_prepare("", $sql); 
    929         $resg=pg_execute("", $v); 
    930         if (!$resg) { 
    931                 echo "\n<p class='err'>Kein Buchungsblatt.</p>"; 
    932                 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmls."'</p>";} 
    933         } 
    934         $bl=0; // Z.Blatt 
    935         while($rowg = pg_fetch_array($resg)) { 
    936                 $gmlg=$rowg["gml_id"]; 
    937                 $beznam=$rowg["bezeichnung"]; 
    938                 $blattkeyg=$rowg["blattart"]; // Key 
    939                 $blattartg=$rowg["blattartv"]; // Value 
    940                 $blatt=$rowg["blatt"]; 
    941                 echo "\n<hr>" 
    942                 ."\n<table class='outer'>" 
    943                 ."\n<tr>"; // 1 row only 
    944                         echo "\n\t<td>"; // Outer linke Spalte: 
    945  
    946                                 // Rahmen mit GB-Kennz 
    947                                 if ($blattkeyg == 1000) { 
    948                                         echo "\n\t\t<table class='kennzgb' title='Bestandskennzeichen'>"; 
    949                                 }else { 
    950                                         echo "\n\t\t<table class='kennzgbf' title='Bestandskennzeichen'>"; // GB fiktiv = Rahmen dotted 
    951                                 } 
    952                                         echo "\n\t\t<tr>\n\t\t\t<td class='head'>Bezirk</td>" 
    953                                                 ."\n\t\t\t<td class='head' title='".$rowg["blattartd"]."'>"; 
    954                                                 if ($showkey) {echo "<span class='key'>".$blattkeyg."</span>&nbsp;";} 
    955                                                 echo $blattartg."</td>" 
    956                                                 ."\n\t\t\t<td class='head'>Lfd-Nr.</td>" 
    957                                                 ."\n\t\t\t<td class='head'>Buchungsart</td>" 
    958                                         ."\n\t\t</tr>" 
    959                                         ."\n\t\t<tr>" 
    960                                                 ."\n\t\t\t<td title='Grundbuchbezirk'>"; 
    961                                                 if ($showkey) {echo "<span class='key'>".$rowg["bezirk"]."</span><br>";} 
    962                                                 echo $beznam."&nbsp;</td>" 
    963                                                 ."\n\t\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$blatt."</span></td>" 
    964                                                 ."\n\t\t\t<td title='Bestandsverzeichnis-Nummer (BVNR, Grundst&uuml;ck)'>".$lfd."</td>" 
    965                                                 ."\n\t\t\t<td title='".$barttitle."'>"; 
    966                                                 if ($showkey) {echo "<span class='key'>".$rows["buchungsart"]."</span><br>";} 
    967                                                 echo $rows["bart"]."</td>" 
    968                                         ."\n\t\t</tr>" 
    969                                 ."\n\t\t</table>"; 
    970  
    971                                 // Miteigentumsanteil 
    972                                 if ($rows["zaehler"] <> "") { 
    973                                         echo "\n<p class='ant'>".$rows["zaehler"]."/".$rows["nenner"]."&nbsp;Anteil am Flurst&uuml;ck</p>"; 
    974                                 } 
    975                         echo "\n\t</td>\n\t<td>"; // Outer rechte Spalte: NW-Links 
    976  
    977                                 echo "\n\t\t<p class='nwlink noprint'>weitere Auskunft:<br>"; 
    978                                         if ($showkey) {echo "<span class='key'>".$blattkeyg."</span> ";} 
    979                                         echo "\n\t\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gmlg; 
    980                                                 if ($showkey) {echo "&amp;showkey=j";} 
    981                                                 echo "#bvnr".$lfd; // Die # hinter die &-Paramter 
    982                                                 if ($blattkeyg == 1000) { 
    983                                                         echo "' title='Grundbuchnachweis mit kompletter Eigent&uuml;merangabe'>"; 
    984                                                 } else { 
    985                                                         echo "' title='Grundbuchnachweis'>"; 
    986                                                 } 
    987                                                 echo $blattartg." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''>" 
    988                                         ."</a>" 
    989                                 ."\n\t\t</p>"; 
    990  
    991                                 // berechtigte Buchungstellen (im rechten Teil der Àußeren Tab. 
    992                                 $cnt_ber = ber_bs_hinw($gmls, $gmlid); // Hinweis ausgeben, zÀhlen 
    993  
    994                         echo "\n\t</td>" // ende aussen rechts 
    995                 ."\n</tr>" 
    996                 ."\n</table>"; 
    997  
    998                 // +++ Weitere Felder ausgeben? BeschreibungDesUmfangsDerBuchung 
    999                 if ($rows["sond"] != "") { 
    1000                         echo "\n<p class='sond' title='Sondereigentum'>Verbunden mit dem Sondereigentum<br>".$rows["sond"]."</p>"; 
    1001                 } 
    1002                 if ($rows["nrpl"] != "") { 
    1003                         echo "\n<p class='nrap' title='Nummer im Aufteilungsplan'>Nummer <span class='wichtig'>".$rows["nrpl"]."</span> im Aufteilungsplan.</p>"; 
    1004                 } 
    1005  
    1006                 // E I G E N T U E M E R, zum GB 
    1007                 // Person <-benennt< AX_Namensnummer  >istBestandteilVon-> AX_Buchungsblatt 
    1008                 if ($eig=="j") { // Wahlweise mit/ohne EigentÃŒmer 
    1009                         $n = eigentuemer($gmlg, false, ""); // hier ohne Adresse 
    1010                         if ($n == 0) { 
    1011                                 if ($blattkeyg == 1000) { 
    1012                                         echo "\n<p class='err'>Keine Namensnummer gefunden.</p>"; 
    1013                                 } else { 
    1014                                         echo "\n<p>ohne Eigent&uuml;mer.</p>"; 
    1015                                 } 
    1016                         } 
    1017                 } 
    1018  
    1019                 // B e r e c h t i g t e   B u c h u n g e n  ... zu dieser Buchungs-Stelle. Optional. 
    1020                 if ($berbu=="j") { // Wahlweise anzeigen 
    1021                         echo "\n<hr>\n<h3 id='berbu'><img src='ico/Grundbuch.png' width='16' height='16' alt=''> Berechtigte Buchungen</h3>" 
    1022                         ."\n<p>".$cnt_ber." Buchungen mit Rechten an der Buchung ".$lfd." auf ".$blattartg." ".$blatt." von ".$beznam.":</p>"; 
    1023                         ber_bs_anz($gmls, $eig); // berechtigte Buchungstellen und GB-BlÀtter Anzeigen, und ggf. auch mit EigentÃŒmer 
    1024                 } 
    1025                 $bl++; // ZÀhl Blatt 
    1026         } 
    1027         if ($bl == 0) {echo "\n<p class='err'>Kein Buchungsblatt zur Buchungstelle gefunden.</p>";} 
    1028         $bs++; // ZÀhl Buchungs-Stelle 
    1029 } 
    1030  
    1031 pg_free_result($resg); 
    1032 if ($bs == 0) {echo "\n<p class='err'>Keine Buchungstelle zum Flurst&uuml;ck gefunden.</p>";} 
     669                        } 
     670                } // Ende Buchungs-Array in der Stufe 
     671                $anzber=count($verf_next); // Sammlung auf Stufe zÀhlen, Steuert die Schleife. 
     672                //if ($debug > 2) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";} 
     673        } // Ende Stufe 
     674// Diese aufwÀndige Analyse mit Arrays geht davon aus, dass es Verzweigungen auf oberen Stufen geben könnte, 
     675// so dass mehrere Zweige parallel weiter zu verfolgen sind. In der Praxis ist eine Verzweigung bisher nur in der letzten Stufe vorgekommen. 
     676// Eine weniger aufwÀndige Lösung (ohne Arrays) wÃŒrde reichen, wenn das immer so wÀre: 
     677/*  Alte Version (einfacher): 
     678        $gezeigt = buchung_anzg($gml_buchungsstelle, $eig, false, $gmlid); 
     679        $anzber = ber_bs_zaehl($gml_buchungsstelle); 
     680        if ($anzber > 0 ) { 
     681                $verfolg = ber_bs_anzg($gml_buchungsstelle, $eig, $gmlid); 
     682                while ($verfolg != "") { 
     683                        $valt=$verfolg; 
     684                        $verfolg = ber_bs_anzg($valt, $eig, $gmlid); 
     685                } 
     686        } */ 
     687echo "\n</table>\n\n"; 
     688 
    1033689pg_close($con); 
    1034690echo <<<END 
    1035  
    1036691<div class='buttonbereich noprint'> 
    1037692<hr> 
    1038693        <a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp; 
    1039694        <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a>&nbsp; 
    1040         <a title="Export als CSV" href='javascript:ALKISexport()'><img src="ico/download_fs.png" width="32" height="16" alt="Export"></a>&nbsp; 
    1041 </div> 
    1042695END; 
    1043 footer($gmlid, $_SERVER['PHP_SELF']."?", "&amp;eig=".$eig."&amp;berbu=".$berbu); 
     696echo "\n\t<a title='Export als CSV' href='javascript:ALKISexport(\"" . $gmlid . "\")'><img src='ico/download_fs.png' width='32' height='16' alt='Export'></a>&nbsp;\n</div>"; 
     697 
     698footer($gmlid, $_SERVER['PHP_SELF']."?", "&amp;eig=".$eig); 
    1044699?> 
    1045700</body> 
Note: See TracChangeset for help on using the changeset viewer.