Ignore:
Timestamp:
12/30/21 17:49:00 (2 years ago)
Author:
frank.jaeger
Message:

Web-GIS-Auskunft und Mapbender2-Navigation: neue Konfigurations-Parameter und verbessertes Grundbuch-Modul

File:
1 edited

Legend:

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

    r422 r425  
    66 
    77        Version: 
    8         2016-02-24 Version fuer norGIS-ALKIS-Import, "function linkgml" raus. Case-EntschlÃŒsselung raus. 
     8        2016-02-24 Version fÃŒr norGIS-ALKIS-Import, "function linkgml" raus. Case-EntschlÃŒsselung raus. 
    99        .... 
    1010        2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] fÃŒr Einsatz hinter Gateway mit Änderung des Pfades (Docker/QWC2) 
     
    1212        2020-12-15 Input-Validation und Strict Comparisation (===) 
    1313        2020-12-16 Sonderfall QWC2 API-Gateway-Umleitung bei Selbstverlinkung 
     14        2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche) 
     15                           Footer: Umschalter fÃŒr SchlÃŒssel und Debug unabhÀngig benutzbar. Authentifizierung aus QWC2 nicht hier behandeln. 
     16        2021-12-30 Bestandsnachweis recursiv ÃŒber alle Buchungs-Ebenen 
     17 
     18++ ToDo: 
     19        - Parameter $lnkclass in eigentuemer() und $jfenster in buchung_anzg() vereinheitlichen 
    1420*/ 
    1521 
     
    1723//      Aus der Server-Variable den Pfad entfernen. 
    1824        global $pfadlos_selbstlink; 
    19         If ($pfadlos_selbstlink === 1) { // pfad-lose Selbstverlinkung hinter einer Umleitung. z.B. QWC2 API-Gateway 
    20                 // Pfad entfernen 
     25        If ($pfadlos_selbstlink === 1) { // Selbstverlinkung ohne Pfad z.B. hinter QWC2 API-Gateway (Umleitung) 
    2126                $mod=strrchr($_SERVER['PHP_SELF'], '/'); 
    2227                $mod=substr($mod, 1); 
     
    2934function darf_ich() { 
    3035//      Am Anfang jedes Moduls aufrufen um $customer zu fÃŒllen.         
    31 //      Nach EinfÃŒhrung eines automatisch einloggenden anonymen Mapbender-Gast-Benutzers muss dieser bei der Authentifizierung ausgeschlossen werden. 
    32         global $auth, $customer, $mb_guest_user, $debug; 
    33  
    34         if ($auth === "") {     // nicht prÃŒfen 
    35         //      if ($debug > 1) {echo "\n<p class='dbg'>keine Berechtigungs-PrÃŒfung</p>";} 
    36                 $customer = "(unbekannt)"; 
    37                 return 1;       // alles erlaubt 
    38  
     36//      Der automatisch einloggende anonyme Gast-Benutzers muss bei der Authentifizierung ausgeschlossen werden. 
     37        global $auth, $customer, $mb_guest_user, $dbg; 
     38 
     39        if ($auth === "") {             // nicht prÃŒfen 
     40                $customer = "";         // dann anonym 
     41                return 1;                       // alles erlaubt 
    3942        } elseif ($auth === "mapbender") { 
    40  
    41         //      if ($debug > 1) {echo "\n<p class='dbg' Berechtigungs-Pr&uuml;fung Mapbender</p>";} 
    4243                $customer = ""; 
    4344                include '/opt/gdi/mapbender/http/php/mb_validateSession.php'; 
    44                  
     45 
    4546                if (!isset($_SESSION)) { // keine (passende) Session 
    46                         if ($debug > 1) {echo "\n<p class='dbg'>Session nicht gesetzt</p>";} 
     47                        if ($dbg > 1) {echo "\n<p class='dbg'>Session nicht gesetzt</p>";} 
    4748                } elseif ( !isset($_SESSION["mb_user_name"]) )  { 
    48                         if ($debug > 1) {echo "\n<p class='dbg'>username nicht gesetzt</p>";} 
     49                        if ($dbg > 1) {echo "\n<p class='dbg'>username nicht gesetzt</p>";} 
    4950                } else { 
    5051                        $customer = $_SESSION["mb_user_name"]; // angemeldeter Benutzer  
    5152                } 
    52                 //if ($debug > 1) {echo "\n<p class='dbg'>Customer '".$customer."'</p>";} 
    5353                if ($customer == "") {  // Wer bin ich? 
    5454                        echo "<p class='stop2'>Aufruf nur aus Mapbender erlaubt.</p>"; 
     
    6060                        return 1;       // echter User, ist erlaubt 
    6161                } 
    62  
    63         } elseif ($auth === "qwc2") { 
    64  
    65                 if ($debug > 1) {echo "\n<p class='dbg'>Berechtigungs-PrÃŒfung QWC2 -GEPLANT-</p>";} 
    66  
    67                 // BAUSTELLE: Hier den Code einfÃŒgen um im QWC2 die Berechtigung zu prÃŒfen und den Benutzer auszulesen. 
    68                 // Guggs du: https://git.sourcepole.ch/krz_dt/qwc2/-/issues/78 
    69  
    70                 $customer = "(Unbekannt)"; 
    71                 echo "<p class='stop2'>Berechtigungspr&uuml;fung fÃŒr QWC2 ist noch nicht m&ouml;glich.</p>"; 
    72                 return 1;       // vorlÀufig erlaubt 
    73  
    7462        } else { 
    75  
    76                 echo "\n<p class='stop2'>Die Berechtigungs-PrÃŒfung ist falsch konfiguriert</p>"; 
     63                echo "\n<p class='stop2'>Die Berechtigungs-Pr&uuml;fung ist falsch konfiguriert</p>"; 
    7764                return 0;       // verboten 
    7865        } 
     
    8067 
    8168function footer($gmlid, $link, $append) { 
    82         // Einen Seitenfuss ausgeben. 
     69        // Einen Seitenfuß ausgeben. 
    8370        // Die Parameter &gkz= und &gmlid= kommen in allen Modulen einheitlich vor 
    8471        // Den URL-Parameter "&showkey=j/n" umschalten lassen. 
    85         // $append wird angehaengt wenn gefuellt. Anwendung: &eig=j bei FS-NW, &ltyp=m/p/o bei Lage 
    86         global $gkz, $showkey, $hilfeurl, $debug, $customer; 
    87  
    88         echo "<footer>"; 
     72        // $append wird angehÀngt wenn gefÃŒllt. Anwendung: &eig=j bei FSNW, &ltyp=m/p/o bei Lage 
     73        global $gkz, $showkey, $hilfeurl, $debug, $dbg, $customer; 
     74 
     75        echo "\n<footer>"; 
    8976        // S c r e e n - F o o t 
    90         echo "\n<div class='confbereich noprint'>" 
    91         ."\n\t<table class='outer'>\n\t<tr>"; 
     77        echo "\n\t<div class='confbereich noprint'>" 
     78        ."\n\t\t<table class='outer'>\n\t\t<tr>"; 
    9279 
    9380        // Spalte 1: Info Benutzerkennung 
    94         if (isset($customer)) { // ÃŒber global von fkt. darf_ich() 
    95                 echo "\n\t\t<td title='Info'><i>Benutzer:&nbsp;".$customer."</i></td>"; 
     81        if (isset($customer) and $customer != '') { // ÃŒber global von fkt. darf_ich() 
     82                echo "\n\t\t\t<td title='Info'><i>Benutzer:&nbsp;".$customer."</i></td>"; 
    9683        } else { 
    97                 echo "\n\t\t<td>&nbsp;</td>"; 
     84                echo "\n\t\t\t<td>&nbsp;</td>"; 
    9885        } 
    9986 
    10087        // Spalte 2: Umschalter 
    101         echo "\n\t\t<td title='Konfiguration'>"; 
    102                 $mylink ="\n\t\t\t<a class='keyswitch' href='".$link."gkz=".$gkz."&amp;gmlid=".$gmlid.$append; 
     88        echo "\n\t\t\t<td title='Konfiguration'>"; 
     89                $mylink ="\n\t\t\t\t<a class='keyswitch' href='".$link."gkz=".$gkz."&amp;gmlid=".$gmlid.$append; 
     90 
    10391                if ($showkey) { // Umschalten SchlÃŒssel ein/aus 
    104                         echo $mylink."&amp;showkey=n' title='Verschl&uuml;sselungen ausblenden'>Schl&uuml;ssel aus</a>"; 
     92                        echo $mylink."&amp;showkey=n"; 
     93                        if ($debug > 0 and $dbg == 0) {echo "&amp;nodebug=j";} 
     94                        echo "' title='Verschl&uuml;sselungen ausblenden'>Schl&uuml;ssel aus</a>"; 
     95                        $mylink.="&amp;showkey=j"; 
    10596                } else { 
    106                         echo $mylink."&amp;showkey=j' title='Verschl&uuml;sselungen anzeigen'>Schl&uuml;ssel ein</a>"; 
    107                 } 
    108                 if ($debug > 0) { // FÃŒr Entwickler temporÀr eine Ansicht OHNE debug 
    109                         echo "<br>".$mylink."&amp;nodebug=j' title='Debug-Ausgaben tempor&auml;r abschalten'>Ansicht ohne Testausgaben</a>"; 
    110                 } 
    111         echo "\n\t\t</td>"; 
    112  
    113         // Spalte 3 
    114         echo "\n\t\t<td title='Hilfe'>" 
    115                 ."\n\t\t\t<p class='nwlink'>\n\t\t\t\t<a target='_blank' href='".$hilfeurl."' title='Dokumentation'>Hilfe zur ALKIS-Auskunft</a>\n\t\t\t</p>\n\t\t</td>" 
    116                 ."\n\t</tr>\n\t</table>" 
    117         ."\n</div>\n"; 
     97                        echo $mylink."&amp;showkey=j"; 
     98                        if ($debug > 0 and $dbg == 0) {echo "&amp;nodebug=j";} 
     99                        echo "' title='Verschl&uuml;sselungen anzeigen'>Schl&uuml;ssel ein</a>"; 
     100                        $mylink.="&amp;showkey=n"; 
     101                } 
     102 
     103                if ($debug > 0) {       // nur fÃŒr Entwicklung 
     104                        if ($dbg > 0) { // temporÀr eine Ansicht OHNE debug 
     105                                echo "<br>".$mylink."&amp;nodebug=j' title='Debug-Ausgaben tempor&auml;r abschalten'>Testausgaben aus</a>"; 
     106                        } else {                // Abschaltung beenden 
     107                                echo "<br>".$mylink."' title='Debug-Ausgaben wie konfiguriert'>Testausgaben ein</a>"; 
     108                        } 
     109                } 
     110 
     111        echo "\n\t\t\t</td>"; 
     112 
     113        // Spalte 3: Dokumentation 
     114        echo "\n\t\t\t<td title='Hilfe'>" 
     115                ."\n\t\t\t\t<p class='nwlink'>\n\t\t\t\t\t<a target='_blank' href='".$hilfeurl."' title='Dokumentation'>Hilfe zur ALKIS-Auskunft</a>\n\t\t\t\t</p>\n\t\t\t</td>" 
     116                ."\n\t\t</tr>\n\t\t</table>" 
     117        ."\n\t</div>"; 
    118118 
    119119        // P r i n t - F o o t 
    120         if (isset($customer)) { 
    121                 echo "\n<p class='onlyprint'><i>Benutzer:&nbsp;".$customer."</i></p>"; 
    122         } 
    123  
    124         echo "</footer>"; 
     120        if (isset($customer) and $customer != '') { 
     121                echo "\n\t<p class='onlyprint'><i>Benutzer:&nbsp;".$customer."</i></p>"; 
     122        } 
     123 
     124        echo "\n</footer>\n"; 
    125125        return 0; 
     126} 
     127 
     128function UnqKatAmt($t1, $t2){ 
     129// Wenn der Datenbestand aus NBA-Verfahren mehrerer KatasterÀmter gemixt wurde, dann muss beim SQL-JOIN auf einige SchlÃŒsseltabellen 
     130// zusÀtzlich dafÃŒr gesort werden, dass nur die SchlÃŒssel des gleichen Katasteramtes verwendet werden. Sont bekommt man redundante Treffer. 
     131// Benötigt den Alias der zu verbindenden Tabellen. 
     132// Liefert einen String zum EinfÃŒgen hinter "JOIN .. ON". 
     133        global $katAmtMix; // aus Conf 
     134        if ($katAmtMix){ 
     135                return "AND substr(".$t1.".gml_id,1,6) = substr(".$t2.".gml_id,1,6) "; 
     136        } else { 
     137                return ""; 
     138        } 
    126139} 
    127140 
     
    150163        //  $gml_fs: GML-ID des FlurstÃŒcke (nur bei erstem Aufruf in einem FS-Nachweis notwendig) 
    151164        //      $trtyp: Tabellen-Zeilen-Typ. Werte: 1="mit GS-Link", 2="ohne GS-Link", 3="ohne GS-Link +Zeile einfÀrben" 
    152         global $gkz, $debug, $showkey, $bartgrp, $barttypgrp, $stufe; 
     165        global $gkz, $dbg, $showkey, $bartgrp, $barttypgrp, $stufe, $katAmtMix; 
    153166 
    154167        $sqlbs="SELECT sh.gml_id AS hgml, sh.buchungsart, sh.laufendenummer as lfd, sh.zaehler, sh.nenner, sh.nummerimaufteilungsplan as nrpl, sh.beschreibungdessondereigentums as sond, " // Buchungs-Stelle herrschend 
     
    156169        ."FROM ax_buchungsstelle sh " 
    157170        ."JOIN ax_buchungsblatt b ON b.gml_id=sh.istbestandteilvon " 
    158         ."LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk " 
     171        ."LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk ".UnqKatAmt("z","b") 
    159172        ."LEFT JOIN ax_buchungsart_buchungsstelle a ON sh.buchungsart = a.wert " // entschl. Buchungsart 
    160173        ."LEFT JOIN ax_blattart_buchungsblatt w ON b.blattart = w.wert " // entschl. Blatt-Art 
     
    166179        if (!$resbs) { 
    167180                echo "\n<p class='err'>Fehler bei 'Buchungsstelle ausgeben'.</p>"; 
    168                 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlbs."'", $sqlbs), ENT_QUOTES, "UTF-8")."</p>";} 
     181                if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlbs."'", $sqlbs), ENT_QUOTES, "UTF-8")."</p>";} 
    169182        } 
    170183        $gezeigt = 0; // Funktionswert default 
    171  
    172         if ($rowbs = pg_fetch_assoc($resbs)) { // ein Treffer 
     184        if ($dbg > 0) { 
     185                $zeianz=pg_num_rows($resbs); 
     186                if ($zeianz > 1){ 
     187                        echo "\n<p class='err'>Die Abfrage liefert mehr als eine (".$zeianz.") Buchung!</p>"; 
     188                        if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sqlbs), ENT_QUOTES, "UTF-8")."</p>";} 
     189                } 
     190        } 
     191        if ($rowbs = pg_fetch_assoc($resbs)) { // EIN Treffer 
    173192                $blattkeyber=$rowbs["blattart"]; // Schluessel von Blatt-Art des GB 
    174                 if ($blattkeyber != '5000' or $debug > 1) { // "Fiktives Blatt" nur bei Entwicklung anzeigen 
     193                if ($blattkeyber != '5000' or $dbg > 1) { // "Fiktives Blatt" nur bei Entwicklung anzeigen 
    175194                        $gezeigt = 1; // Funktionswert nach Treffer 
    176195                        $hgml=$rowbs["hgml"]; // GML-ID der (herrschenden) BuchungsStelle 
     
    218237                                } 
    219238 
    220                                 // +++ mehr Abstand oben zur Zeile in .css? 
     239                                // ++ mehr Abstand oben zur Zeile in .css? 
    221240                                echo "\n\t<tr>" // Buchungsart als Zwischenzeile 
    222241                                        ."\n\t\t<td class='ll'><img src='ico/Grundbuch.png' width='16' height='16' alt=''> Buchungsart:</td>" // 1 
    223242                                        ."\n\t\t<td colspan='2' title='".$barttitle."'>"; // 2-3 
    224                                                 if ($showkey) {echo "<span class='key'>(".$bartkey.")</span> ";} 
     243                                                if ($showkey) {echo "<span class='key' title='Buchungsart'>(".$bartkey.")</span> ";} 
    225244                                                echo "<span class='wichtig'>".$bart."</span>" 
    226245                                        ."</td>" 
     
    232251                        echo "\n\t<tr>" // Zeile mit 4 Spalten fÃŒr Buchung und EigentÃŒmer 
    233252                                ."\n\t\t<td class='ll'><img src='ico/Grundbuch_zu.png' width='16' height='16' alt=''> Buchung:"; // 1 
    234                         if ($showkey and $debug > 2) {echo "<br><span class='key'>Stufe ".$stufe."<br>".$hgml."</span> ";} 
     253                        if ($showkey and $dbg > 2) {echo "<br><span class='key'>Stufe ".$stufe."<br>".$hgml."</span> ";} 
    235254                        echo "</td>\n\t\t<td colspan='2'>"; // 2-3 
    236255 
     
    244263                                                ."\n\t\t\t\t<td class='head'>Bezirk</td>" 
    245264                                                ."\n\t\t\t\t<td class='head'>"; 
    246                                                 if ($showkey) {echo "<span class='key'>".$blattkeyber."</span> ";} 
     265                                                if ($showkey) {echo "<span class='key' title='Blattart'>(".$blattkeyber.")</span> ";} 
    247266                                                echo $blattartber."</td>" 
    248267                                                ."\n\t\t\t\t<td class='head'>Lfd-Nr</td>" 
     
    255274                                        } 
    256275                                        echo "\n\t\t\t\t<td title='Grundbuchbezirk'>"; 
    257                                                 if ($showkey) {echo "<span class='key'>".$rowbs["bezirk"]."</span><br>";} 
     276                                                if ($showkey) {echo "<span class='key' title='GB-Bezirk-Schl&uuml;ssel'>".$rowbs["bezirk"]."</span><br>";} 
    258277                                                echo $beznam."</td>" 
    259278                                                ."\n\t\t\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$blatt."</span></td>" 
     
    275294                                echo "\n\t\t<td>"; // 4 
    276295                                        echo "\n\t\t\t<p class='nwlink noprint'>"; 
    277                                         // Bestand 
    278                                                 if ($showkey) {echo "<span class='key'>".$blattkeyber."</span> ";} 
     296                                        //      Bestand 
     297                                                if ($showkey) {echo "<span class='key' title='Blattart'>(".$blattkeyber.")</span> ";} 
    279298                                                $url="alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gbgml; 
    280299                                                if ($showkey) {$url.="&amp;showkey=j";} 
     
    283302                                                        ." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''>" 
    284303                                                ."</a>"; 
    285                                         // Buchung 
     304                                        //      Buchung 
    286305                                                if ($trtyp === 1) { 
    287306                                                        echo "<br>"; 
    288                                                         if ($showkey) {echo "<span class='key'>".$bartkey."</span> ";} 
     307                                                        if ($showkey) {echo "<span class='key' title='Buchungsart'>(".$bartkey.")</span> ";} 
    289308                                                        $url="alkisgsnw.php?gkz=".$gkz."&amp;gmlid=".$hgml; 
    290309                                                        if ($showkey) {$url.="&amp;showkey=j";} 
     
    305324        pg_free_result($resbs); 
    306325         
    307         //if ($debug > 1) {echo "\n<p class='dbg'>Ende function buchung_anzg(), Return = ". $gezeigt ."</p>";} 
     326        //if ($dbg > 1) {echo "\n<p class='dbg'>Ende function buchung_anzg(), Return = ". $gezeigt ."</p>";} 
    308327         
    309328        return $gezeigt; // 1 wenn eine Buchung ausgegeben wurde 
     
    318337        //  $gml_fs: GML-ID des FlurstÃŒcke (nur bei erstem Aufruf in einem FS-Nachweis notwendig) 
    319338        //      $gsanfrd: In einem GS-Nachw. die GML-ID der in de URL angeforderten Buchungsstelle (-> Hervorhebung) 
    320         global $debug, $gezeigt; 
     339        global $dbg, $gezeigt; 
    321340 
    322341        // sh=Buchungstelle herrschend >(Recht)an> sd=Buchungstelle dienend >istBestandteilVon> BLATT -> Bezirk 
     
    332351        if (!$resber) { 
    333352                echo "\n<p class='err'>Fehler bei 'berechtigte Buchungsstellen'.</p>"; 
    334                 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmls."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 
     353                if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmls."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 
    335354        } 
    336355        $an=0; 
     
    370389} 
    371390 
    372 function bnw_fsdaten($lfdnr, $gml_bs, $ba, $anteil, $bvnraus, $bartkey, $bartstory) { 
    373 /*      Bestandsnachweis - Flurstuecksdaten 
    374         Die Tabellenzeilen mit den Flurstuecksdaten zu EINER Buchungsstelle im Bestandsnachweis ausgeben. 
    375         Die Funktion wird je einmal aufgerufen fÃŒr die Buchungen direkt auf dem GB (Normalfall). 
    376         Weiterere Aufrufe ggf. bei Erbbaurecht fÃŒr die mit "an" verknuepften Buchungsstellen. 
    377         Tabellenkopf wird im aufrufenden Programm ausgegeben. */ 
    378         global $debug, $gkz, $showkey, $filtkreis, $filtgem, $trclass; 
    379  
    380         // F L U R S T U E C K 
     391function bnw_bszeile_h() { 
     392/*      Bestandsnachweis - Buchungs-Stellen-Zeile ausgeben - herrschend. 
     393        Die GB-Daten hierzu stehen bereits im Kopf und bleiben in der Tab. leer */ 
     394        global $dbg, $gkz, $showkey, $trclass, $lfdnr, $bartkey, $bart, $bartstory, $anteil; 
     395 
     396        $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT); 
     397        echo "\n<tr class='".$trclass."'>" 
     398        ."\n\t<td id='bvnr".$bvnr."'><span class='wichtig'>".$bvnr."</span></td>" // Sprungmarke=BVNR auf dem GB-Blatt 
     399        ."\n\t<td class='dien' title='".$bartstory."'>"; 
     400        if ($showkey) {echo "<span class='key'>".$bartkey."</span> ";} 
     401        echo $bart."</td>" 
     402        ."\n\t<td class='dien'>".$anteil."</td>" 
     403        ."\n\t<td>&nbsp;</td>" 
     404        ."\n\t<td>&nbsp;</td>" 
     405        ."\n\t<td>&nbsp;</td>" 
     406        ."\n\t<td>&nbsp;</td>" 
     407        ."\n\t<td>&nbsp;</td>\n</tr>"; 
     408} 
     409 
     410function bnw_bszeile_d($bezkey, $beznam, $blatt, $blattartkey, $blattart, $lfdnran, $gbgml, $gml_bsan, $ebene, $und) { 
     411/*      Bestandsnachweis - Buchungsstellen-Zeile ausgeben - dienend 
     412        Eine Folge-Zeile fÃŒr eine dienende Buchung ausgeben. */ 
     413        global $gkz, $showkey, $trclass, $bartkey, $bart, $bartstory, $anteil; 
     414 
     415        $bvnr=str_pad($lfdnran, 4, "0", STR_PAD_LEFT); 
     416        $filler=str_repeat("&nbsp;", $ebene - 2); // 3 und 4 EinrÃŒcken 
     417        if ($und){$filler.="und ";}; // Unterscheidung Hierarchie (Ebene wechselt) von Liste (gleiche Ebene) 
     418        echo "\n<tr class='".$trclass."'>" 
     419        ."\n\t<td title='Ebene ".$ebene."'>".$filler."an</td>" 
     420        ."\n\t<td class='dien' title='".$bartstory."'>"; // Sp.2 Buchungsart 
     421        if ($showkey) {echo "<span class='key'>".$bartkey."</span> ";} 
     422        echo $bart."</td>" 
     423        ."\n\t<td class='dien'>".$anteil."</td>"; // Sp.3 Anteil 
     424 
     425        // Sp.4 GB-Bezirk 
     426        echo "\n\t<td class='dien' title='Grundbuch-Bezirk'>";  
     427                if ($showkey) {echo "<span class='key'>".$bezkey."</span> ";} 
     428                echo htmlentities($beznam, ENT_QUOTES, "UTF-8") 
     429        ."</td>" 
     430        ."\n\t<td class='dien' title='".$blattart."'>".$blatt."</td>" // Sp.5 
     431        ."\n\t<td class='dien' title='Bestandsverzeichnis-Nummer'>".$bvnr."</td>" // Sp.6 
     432        ."\n\t<td class='dien'></td>";  
     433 
     434        echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; // Sp.8 Link 
     435 
     436        // Link Bestand Blatt 
     437        if ($showkey) {echo "<span class='key'>".$blattartkey."</span>";} // Blatt-Art 
     438        echo "\n\t\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gbgml; 
     439                if ($showkey) {echo "&amp;showkey=j";} 
     440                echo "#bvnr".$lfdnran."' title='Zum Grundbuchnachweis des dienenden Blattes'>".$blattart 
     441        ." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''></a>"; 
     442 
     443        if ($bartkey < 2000){ 
     444                // Link Buchung BVNR nur fÃŒr GrundstÃŒck usw. 
     445                echo "<br>\n\t\t\t<a href='alkisgsnw.php?gkz=".$gkz."&amp;gmlid=".$gml_bsan; 
     446                if ($showkey) {echo "&amp;showkey=j";} 
     447                echo "' title='Grundst&uuml;cksnachweis'>Buchung <img src='ico/Grundstueck_Link.png' width='16' height='16' alt=''></a>";        
     448        } 
     449 
     450        echo "\n\t\t</p>" 
     451        ."\n\t</td>\n</tr>"; 
     452} 
     453 
     454function bnw_bsdaten($gml_h, $ebene) { 
     455/*      Bestandsnachweis - Buchungsstellen-Daten 
     456        "dienende" Buchungsstellen suchen. Miteigentumsanteil, Erbbaurecht usw.  
     457        Return: gml_id der dienenden Buchungsstelle wenn gefunden? Sonst Leerstring */ 
     458        global $dbg, $bartkey, $bart, $bartstory, $anteil; 
     459 
     460//      dann "dienende" Buchungsstellen 
     461//  sh=herrschend          sd=dienend 
     462//  ax_buchungsstelle >zu> ax_buchungsstelle (des gleichen Blattes)  
     463//  ax_buchungsstelle >an> ax_buchungsstelle (anderes Blatt, z.B Erbbaurecht an) 
     464//      - "zu" kommt in der Praxis (NRW) nicht vor, wird hier nicht berÃŒcksichtigt 
     465 
     466        if ($ebene > 5) {echo "\n<p class='err'>Ungewöhnlich tiefe Schachtelung ".$ebene." der Buchungs-Stellen.</p>";} 
     467 
     468        $sql ="SELECT sd.gml_id, sd.buchungsart, sd.zaehler, sd.nenner, sd.laufendenummer AS lfd, sd.beschreibungdesumfangsderbuchung AS udb, " 
     469        ."sd.nummerimaufteilungsplan AS nrap, sd.beschreibungdessondereigentums AS sond, " 
     470        ."wb.beschreibung AS bart, wb.dokumentation, " 
     471        ."b.gml_id as gbgml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung AS blatt, b.blattart, " 
     472        ."bb.beschreibung AS blattartv, z.bezeichnung AS beznam " 
     473        ."FROM ax_buchungsstelle sh " 
     474        ."JOIN ax_buchungsstelle sd ON sd.gml_id=ANY(sh.an) " 
     475        ."JOIN ax_buchungsblatt b ON b.gml_id=sd.istbestandteilvon "     
     476        ."LEFT JOIN ax_buchungsart_buchungsstelle wb ON sd.buchungsart = wb.wert " 
     477        ."LEFT JOIN ax_buchungsblattbezirk z ON b.land=z.land AND b.bezirk=z.bezirk ".UnqKatAmt("b","z") 
     478        ."LEFT JOIN ax_blattart_buchungsblatt bb ON b.blattart = bb.wert " 
     479        ."WHERE sh.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL " 
     480        ."ORDER BY sd.laufendenummer;"; 
     481        $v=array($gml_h); // gml_id "herrschende" B-Stelle 
     482        $resan=pg_prepare("", $sql); 
     483        $resan=pg_execute("", $v); 
     484        if (!$resan) { 
     485                echo "\n<p class='err'>Fehler bei 'dienende Buchungsstelle'.</p>"; 
     486                if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gml_bs."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 
     487        } 
     488        $zeianz=pg_num_rows($resan); // Zeilen-Anzahl = Returnwert 
     489        //if ($dbg > 0) {echo "\n<p class='dbg'>Auf Ebene ".$ebene.": Anzahl diennende Buchungs-Stellen = ".$zeianz.".</p>";} 
     490        $und = false; // mehrfaches "Recht an" auf gleicher Ebene 
     491        while($row= pg_fetch_assoc($resan)) { 
     492                $gml_bsan=$row["gml_id"];       // id der dien. BS 
     493                $blatt=ltrim($row["blatt"], "0");                
     494 
     495                // als Global-Var zur Sub-Function: 
     496                $bartkey=$row["buchungsart"];    
     497                $bart=$row["bart"]; // Buchungsart, entschlÃŒsselt 
     498                $bartstory=htmlentities($row["dokumentation"], ENT_QUOTES, "UTF-8"); 
     499                if ($row["zaehler"] == "") {$anteil = "";}  
     500                else {$anteil = $row["zaehler"]."/".$row["nenner"];} 
     501 
     502                // Zeile ausgeben Buchungsstelle dienend  
     503                bnw_bszeile_d($row["bezirk"], $row["beznam"], $blatt, $row["blattart"], $row["blattartv"], $row["lfd"], $row["gbgml"], $gml_bsan, $ebene, $und); 
     504                $und = true; 
     505                if ($row["nrap"] != "") { // Nr im Auft.Plan 
     506                        echo "\n<tr>\n\t<td colspan=3></td><td class='nrap' colspan=4>Nummer <span class='wichtig'>".$row["nrap"]."</span> im Aufteilungsplan.</td><td></td>\n</tr>"; 
     507                } 
     508                if ($row["sond"] != "") { // Sondereigentumsbeschreibung 
     509                        echo "\n<tr>\n\t<td></td><td class='sond' colspan=6 title='Sondereigentums-Beschreibung'>Verbunden mit dem Sondereigentum an: ".$row["sond"]."</td><td></td>\n</tr>"; 
     510                } 
     511 
     512                // Rekursiver Aufruf der gleichen Function, weitere Ebene dienend? 
     513                $tiefer = bnw_bsdaten($gml_bsan, ($ebene + 1)); 
     514                If ($tiefer == 0) {  // Wenn nicht, dann kann es FlurstÃŒcke dazu geben 
     515                        $fscnt= bnw_fsdaten($gml_bsan, false); // FlurstÃŒcksdaten 
     516                } 
     517        } 
     518        pg_free_result($resan); 
     519        return $zeianz; 
     520} 
     521 
     522function bnw_fsdaten($gml_bs, $mit_buchung_link) { 
     523/*      Bestandsnachweis - FlurstÃŒcksdaten 
     524        Die Tabellenzeilen mit den FlurstÃŒcksdaten zu EINER Buchungsstelle im Bestandsnachweis ausgeben. 
     525        Die Funktion wird entweder aufgerufen fÃŒr die Buchungen direkt auf dem GB (Normalfall) 
     526        oder bei Erbbaurecht fÃŒr die mit "an" verknÃŒpften Buchungsstellen der untersten Ebene (dienende Buchung). 
     527        Der Tabellenkopf wird im aufrufenden Programm ausgegeben.  
     528        Return: Anzahl der ausgegebenen FlurstÃŒcke */ 
     529        global $dbg, $gkz, $showkey, $filtkreis, $filtgem, $trclass, $katAmtMix, $lfdnr, $altlfdnr, $bartkey, $bart, $bartstory, $anteil; 
     530 
    381531        $sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche " 
    382         ."FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer " 
     532        ."FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ".UnqKatAmt("f","g") 
    383533        ."WHERE f.endet IS NULL AND g.endet IS NULL AND f.istgebucht = $1 "; 
    384534        if ($filtgem === '') { // ungefiltert 
     
    392542        $resf = pg_execute("", $v); 
    393543        if (!$resf) {echo "\n<p class='err'>Fehler bei Flurst&uuml;ck</p>";} 
    394  
    395         if($bvnraus) { // nur bei direkten Buchungen die lfdNr ausgeben 
    396                 $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT); 
    397         } else { 
    398                 $bvnr=""; 
    399         } 
    400         $altbvnr=""; // ++ besser mit "$j === 0" steuern? 
    401         $j=0; 
     544        $zeianz=pg_num_rows($resf); 
    402545        while($rowf = pg_fetch_assoc($resf)) { 
    403                 $flur= $rowf["flurnummer"]; 
    404546                $fskenn=$rowf["zaehler"]; 
    405547                if ($rowf["nenner"] != "") { // Bruch 
     
    409551 
    410552                echo "\n<tr class='".$trclass."'>"; // eine Zeile je Flurstueck 
    411                         // Sp. 1-3 der Tab. aus Buchungsstelle, nicht aus FS 
    412                         if($bvnr === $altbvnr) { // gleiches Grundstueck, leer lassen 
    413                                 echo "\n\t<td>&nbsp;</td>" 
    414                                 ."\n\t<td>&nbsp;</td>" 
    415                                 ."\n\t<td>&nbsp;</td>"; 
    416                         } else { // Sprungmarke, BVNR 
    417                                 echo "\n\t<td id='bvnr".$bvnr."'>"; // Sprungmarke 
    418                                 //      echo "\n\t\t<a id='bvnr".$bvnr."'></a>"; 
    419                                         echo "<span class='wichtig'>".$bvnr."</span>" 
    420                                 ."\n\t</td>"; 
    421  
    422                                 echo "\n\t<td title ='".$bartstory."'>"; // Buchungsart  
    423                                         if ($showkey) {echo "<span class='key'>".$bartkey."</span>&nbsp;";} // Schluessel 
    424                                         echo $ba; // entschluesselt 
    425                                 echo "</td>" 
    426                                 ."\n\t<td>&nbsp;</td>"; // Anteil 
    427                         } 
    428  
    429                         // Sp. 4-7 aus Flurstueck 
    430                         echo "\n\t<td>"; 
    431                         if ($showkey) {echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";} 
    432                         echo $rowf["bezeichnung"]."</td>" 
    433                         ."\n\t<td>".$flur."</td>" 
    434                         ."\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span>" 
    435                         ."</td>" 
    436                         ."\n\t<td class='flag'>".$flae."</td>"; // "width" hier (flaG) erweiterbar, weil in andere Zeile die Buchungsart steht  
    437                         echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 
    438                 //      if($bvnr != $altbvnr) { 
    439                         if($j === 0) { 
    440                                 echo "\n\t\t\t<a href='alkisgsnw.php?gkz=".$gkz."&amp;gmlid=".$gml_bs; 
    441                                         if ($showkey) {echo "&amp;showkey=j";} 
    442                                         echo "' title='Grundst&uuml;cksnachweis'>Buchung " 
    443                                         ."<img src='ico/Grundstueck_Link.png' width='16' height='16' alt=''>" 
    444                                 ."</a>"; 
    445  
    446                         } 
    447                                 echo "\n\t\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n"; 
    448                                         if ($showkey)   {echo "&amp;showkey=j";} 
    449                                         echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck " 
    450                                         ."<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>" 
    451                                 ."</a>" 
    452                         ."\n\t\t</p>\n\t</td>" 
    453                 ."\n</tr>"; 
    454                 $altbvnr=$bvnr; 
    455                 $j++; 
     553                 
     554                // Sp. 1-3 der Tab. Daten aus Buchungsstelle, nicht aus FS 
     555                if($lfdnr === $altlfdnr) { // gleiches GrundstÃŒck, leer lassen 
     556                        echo "\n\t<td>&nbsp;</td>" 
     557                        ."\n\t<td>&nbsp;</td>" 
     558                        ."\n\t<td>&nbsp;</td>"; 
     559                } else { // Sprungmarke, BVNR 
     560                        $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT); 
     561                        echo "\n\t<td id='bvnr".$bvnr."'>"; // Sprungmarke 
     562                                echo "<span class='wichtig'>".$bvnr."</span>" 
     563                        ."\n\t</td>"; 
     564                        echo "\n\t<td title ='".$bartstory."'>"; // Buchungsart  
     565                                if ($showkey) {echo "<span class='key'>".$bartkey."</span>&nbsp;";} 
     566                                echo $bart; 
     567                        echo "</td>" 
     568                        ."\n\t<td>&nbsp;</td>"; // Anteil 
     569                        $altlfdnr=$lfdnr; 
     570                } 
     571 
     572                // Sp. 4-7 aus FlurstÃŒck 
     573                echo "\n\t<td>"; 
     574                if ($showkey) {echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";} 
     575                echo $rowf["bezeichnung"]."</td>" 
     576                ."\n\t<td>".$rowf["flurnummer"]."</td>\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span></td>" 
     577                ."\n\t<td class='fla'>".$flae."</td>"; 
     578                echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 
     579 
     580                // Buchung BVNR 
     581                If ($mit_buchung_link == true) { // nur bei GrundstÃŒck 
     582                        echo "\n\t\t\t<a href='alkisgsnw.php?gkz=".$gkz."&amp;gmlid=".$gml_bs; 
     583                        if ($showkey) {echo "&amp;showkey=j";} 
     584                        echo "' title='Grundst&uuml;cksnachweis'>Buchung <img src='ico/Grundstueck_Link.png' width='16' height='16' alt=''></a>&nbsp;";                  
     585                        $mit_buchung_link = false; // nur in erster Zeile 
     586                } 
     587                // Flurstk. 
     588                echo "\n\t\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n"; 
     589                        if ($showkey)   {echo "&amp;showkey=j";} 
     590                        echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck " 
     591                        ."<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''></a>" 
     592                ."\n\t\t</p>\n\t</td>\n</tr>"; 
    456593        } 
    457594        pg_free_result($resf); 
    458         return $j; 
     595        return $zeianz; 
    459596} 
    460597 
     
    469606        // Schleife 1: N a m e n s n u m m e r 
    470607        // Beziehung: ax_namensnummer >istBestandteilVon> ax_buchungsblatt 
    471         global $debug, $gkz, $showkey; 
     608        global $dbg, $gkz, $showkey; 
    472609 
    473610        if ($lnkclass == "") { 
     
    484621        ."LEFT JOIN ax_eigentuemerart_namensnummer we ON n.eigentuemerart = we.wert " 
    485622        ."WHERE n.istbestandteilvon= $1 AND n.endet IS NULL ORDER BY n.laufendenummernachdin1421;"; 
    486         // +++  LEFT JOIN bis ax_Person statt Person als Schleife zu holen,  
    487         //              VerknÃŒpfungsfeld "benennt" ist leer bei "Beschrieb der Rechtsgemeinschaft". 
     623        // VerknÃŒpfungsfeld "benennt" ist leer bei "Beschrieb der Rechtsgemeinschaft". 
    488624 
    489625        $v = array($gmlid); // GB-Blatt 
     
    493629        if (!$resn) { 
    494630                echo "\n<p class='err'>Fehler bei Eigent&uuml;mer</p>"; // kein Fehler bei Blattarten > 1000 
    495                 //if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sqln )."</p>";} 
     631                //if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sqln )."</p>";} 
    496632        } 
    497633 
     
    501637                $namnum=kurz_namnr($rown["lfd"]); 
    502638                $rechtsg=$rown["adr"]; 
     639                $eiartkey=$rown["eigentuemerart"]; // Key 
     640                $eiart=$rown["eiartv"]; // Value 
     641        //      if ($dbg > 1) {echo "\n<p class='dbg'>Eigent&uuml:merart = '".$eiartkey."' = '".$eiart."'</p>";} 
     642 
    503643                echo "\n\t<tr>"; 
    504644                        if($n === 0) { // erste EigentÃŒmer-Zeile zu einer Buchung 
     
    527667 
    528668                // Schleife 2: P e r s o n 
    529                 // +++ bei SQL Namensnummer oben gleich mit JOIN dazu holen, statt dieser Schleife 
    530669                // Beziehung: ax_person  <benennt<  ax_namensnummer 
    531670                $sqlp="SELECT nachnameoderfirma, vorname, geburtsname, to_char(cast(geburtsdatum AS date),'DD.MM.YYYY') AS geburtsdatum, namensbestandteil, akademischergrad " 
     
    537676                if (!$resp) { 
    538677                        echo "\n\t<p class='err'>Fehler bei Person</p>"; 
    539                         if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlpers."'", $sqlp)."</p>";} 
     678                        if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlpers."'", $sqlp)."</p>";} 
    540679                } 
    541680 
     
    550689                        if ($rowp["geburtsname"] != "") {$diePerson.=", geb. ".$rowp["geburtsname"];} 
    551690                        $diePerson=htmlentities($diePerson, ENT_QUOTES, "UTF-8"); // Umlaute 
    552                         $eiartkey=$rown["eigentuemerart"]; // Key 
    553                         $eiart=$rown["eiartv"]; // Value 
    554691 
    555692                        echo "\n\t\t\t<p class='geig' title='Eigent&uuml;merart: ".$eiart."'>".$diePerson."</p>\n\t\t</td>"; // 3 - Person in Sp.3 hinter NamNum (Sp.2) 
    556693                        echo "\n\t\t<td>\n\t\t\t<p class='nwlink noprint'>"; // 4 
    557                                 if ($showkey AND $eiartkey != '') {echo "<span class='key' title='Eigent&uuml;merart'>".$eiartkey."</span> ";} 
     694                                if ($showkey AND $eiartkey != '') {echo "<span class='key' title='Eigent&uuml;merart'>(".$eiartkey.")</span> ";} 
    558695                                echo "\n\t\t\t\t<a href='".$lnkvor."alkisnamstruk.php?gkz=".$gkz."&amp;gmlid=".$gmlpers; 
    559696                                if ($showkey) {echo "&amp;showkey=j";} 
    560                                 if ($eiartkey === "") {$eiart="Eigent&uuml;mer" ;} // Default. Ersatz-Text, wenn nicht gefÃŒllt 
     697                                if ($eiartkey == "") {$eiart="Eigent&uuml;mer" ;} // Default. Ersatz-Text, wenn nicht gefÃŒllt 
    561698                                echo $lnknach."' title='vollst&auml;ndiger Name und Adresse eines Eigent&uuml;mers'>".$eiart 
    562                                 ." <img src='ico/Eigentuemer.png' width='16' height='16' alt=''></a>\n\t\t\t</p>" 
     699                                ." \n\t\t\t\t\t<img src='ico/Eigentuemer.png' width='16' height='16' alt=''>\n\t\t\t\t</a>\n\t\t\t</p>" 
    563700                        ."\n\t\t</td>" // 4 
    564701                        ."\n\t</tr>"; 
     
    573710                                if (!$resa) { 
    574711                                        echo "\n\t<p class='err'>Fehler bei Adressen</p>"; 
    575                                         if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlpers."'", $sqla)."</p>";} 
     712                                        if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlpers."'", $sqla)."</p>";} 
    576713                                } 
    577714                                $j=0; 
     
    628765 
    629766                if ($i === 0) { // KEINE Person. benennt ist leer. Das kommt vor hinter der Zeile "Erbengemeinschaft" und ist dann KEIN Fehler 
    630                         if ($rechtsg === 9999) { 
    631                                 if ($debug > 1) {echo "\n\t\t\t<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>";} 
    632                         } else { 
     767                        if ($dbg > 1) {echo "\n\t\t\t<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>";} 
     768                        if ($rechtsg !== '9999') { 
    633769                                echo "\n<p class='err'>(Die Person mit der ID '".$gmlpers."' fehlt im Datenbestand)</p>"; 
    634770                        } 
     
    646782        // Dient dazu, SchlÃŒssel-ARRAYs auflösen ohne die Zeile im JOIN mehrfach aufzulisten 
    647783        // Anwendung: FS-Nachweis BodenschÀtzung 
    648         global $debug; 
     784        global $dbg; 
    649785 
    650786        if ($bez === 'e') {$tabelle = 'ax_entstehungsartoderklimastufewasserverhaeltnisse_bodensc';}  
     
    657793        if (!$res) { 
    658794                echo "\n<p class='err'>Fehler bei Werteliste.</p>"; 
    659                 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 
     795                if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 
    660796                return; 
    661797        } 
     
    668804        if ($i === 0) { 
    669805                echo "(kein Treffer)"; 
    670                 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 
     806                if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 
    671807        } 
    672808        return; 
     
    676812// Tabelle im Kopf von FlurstÃŒck und FS-Historie. 2 Z./Sp. Entstehung/FortfÃŒhrung 
    677813// Parameter: Die DB-Spalten "zeitpunktderentstehung", "zeigtaufexternes_art" und "zeigtaufexternes_name" 
    678         global $debug, $showkey; 
    679  
    680 //      if ($debug > 2) {echo "<p class='dbg'>function fortfuehrungen<br>1: ".$dbzeart."<br>2: ".$dbzename."</p>";} 
     814        global $dbg, $showkey; 
     815 
     816//      if ($dbg > 2) {echo "<p class='dbg'>function fortfuehrungen<br>1: ".$dbzeart."<br>2: ".$dbzename."</p>";} 
    681817  
    682818        echo "\n\t<table class='fsd'>" // FS-Daten 2 Spalten 
Note: See TracChangeset for help on using the changeset viewer.