Changeset 282


Ignore:
Timestamp:
05/08/13 09:04:34 (8 years ago)
Author:
frank.jaeger
Message:

Mapbender-ALKIS-Navigation korrigiert und verbessert.

Location:
trunk/mapbender/http/nav
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/mapbender/http/nav/alkisnav_adr.php

    r280 r282  
    11<?php 
    22/* Version vom  
    3         2011-04-11      epsg in Link, transform nur wenn notwendig 
    4         2011-07-25      PostNAS 0.5/0.6 Versionen unterscheiden 
    5         2011-10-24      Nach Pos-Klick Highlight erneuern statt hideHighlight 
    6         2011-12-09      Sonderfall PostNAS 0.5 raus, 
    7         2012-12-03      A.E.: Ausgabe von Hausnr ohne Gebaeude 
    8         2013-01-15      F.J.: HsNr ohne GebÀude auf NRW/krz-Daten anpassen 
    93        2013-04-26      "import_request_variables" entfÀllt in PHP 5.4. 
    104                                        ZurÃŒck-Link, Titel der Transaktion anzeigen 
    115        2013-04-29      Test mit IE 
     6        2013-05-07  Strukturierung des Programms 
    127 
    138        ToDo: 
     
    4035<body> 
    4136<a href='javascript:history.back()'> 
    42         <img src="ico/zurueck.ico" width="16" height="16" alt="&lt;&lt;" title="zur&uuml;ck" /> 
     37        <img src="ico/zurueck.ico" width="16" height="16" alt="&lt;&lt;" title="zur&uuml;ck"> 
    4338</a> 
    4439<dfn class='title' id='transaktiontitle'></dfn> 
     
    129124        $sql.="JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde "; 
    130125        $sql.="WHERE k.lage LIKE $1 "; 
    131  
    132126        switch ($gfilter) { 
    133127                case 1: // Einzelwert 
     
    155149                        echo $skey." <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;str_schl=".$gkey."' title='".$gemname."'>".$sname; 
    156150                        echo "</a>"; 
    157  
    158151                        switch ($gfilter) { 
    159152                                case 0: // Kein Filter 
     
    162155                                case 2: // Liste 
    163156                                        echo " in ".$gemname; 
    164                                         break; 
    165                                 default: // Einzelwert 
    166157                                        break; 
    167158                        } 
     
    247238                                        echo " in ".$gemname; 
    248239                                        break; 
    249                                 default: // Einzelwert 
    250                                         break; 
    251240                        }                        
    252241                        echo "\n</div>"; 
    253242                } 
    254243                echo "\n<hr>"; 
    255  
    256244                // Haeuser zum Strassenschluessel 
    257         //      $sql="SELECT replace(h.hausnummer,' ','') AS hsnr, subq.geb, "; // Subquery 
    258245                $sql="SELECT replace(h.hausnummer,' ','') AS hsnr, "; 
    259246                if($epsg == "25832") { // Transform nicht notwendig 
     
    264251                        $sql.="st_y(st_transform(p.wkb_geometry,".$epsg.")) AS y ";              
    265252                } 
    266  
    267 /* Version mit // Subquery 
    268 Liefert Informationen ÃŒber GebÀude zur Hausnummer. LÀuft aber spÃŒrbar langsamer. 
    269                 $sql.="FROM ap_pto p JOIN alkis_beziehungen v ON p.gml_id = v.beziehung_von "; 
    270                 $sql.="JOIN ax_lagebezeichnungmithausnummer h ON v.beziehung_zu = h.gml_id "; 
    271                 $sql.="LEFT JOIN (SELECT b.beziehung_zu AS zu, g.gml_id AS geb FROM alkis_beziehungen b "; 
    272                 $sql.="JOIN ax_gebaeude g ON b.beziehung_von=g.gml_id WHERE b.beziehungsart='zeigtAuf') subq "; 
    273                 $sql.="ON h.gml_id = subq.zu WHERE v.beziehungsart='dientZurDarstellungVon' AND p.art = 'HNR' "; 
    274                 $sql.="AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 "; 
    275                 $sql.="ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);"; */ 
    276  
    277                 // Version ohne Subquery 
    278253                $sql.="FROM ap_pto p JOIN alkis_beziehungen v ON p.gml_id = v.beziehung_von "; 
    279254                $sql.="JOIN ax_lagebezeichnungmithausnummer h ON v.beziehung_zu = h.gml_id "; 
     
    291266                        if($count == 0){echo "\n<tr>";}  
    292267                        $hsnr=$rowh["hsnr"]; 
    293                 //      $geb=$rowh["geb"]; // Subquery 
    294268                        $x=$rowh["x"]; 
    295269                        $y=$rowh["y"]; 
    296                 /* // Subquery 
    297                         if ($geb == "") { // kein GebÀude 
    298                                 $cls=" class='hsnro'"; 
    299                                 $ttl="kein Haus"; 
    300                         } else { 
    301                                 $cls=""; 
    302                                 $ttl="Haus ".$geb; 
    303                         } 
    304                 */               
    305270                        echo "\n\t<td class='hsnr'>"; 
    306                         //      echo "<a".$cls." href='"; 
    307271                                echo "<a href='"; 
    308272                                        echo "javascript:"; 
     
    312276                                echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
    313277                                echo "onmouseout='parent.parent.hideHighlight()"; 
    314                         //      echo "' title='".$ttl."'>".$hsnr."</a>"; // Subquery 
    315278                                echo "'>".$hsnr."</a>"; 
    316279                        echo "</td>"; 
  • trunk/mapbender/http/nav/alkisnav_eig.php

    r280 r282  
    11<?php 
    22/* Version vom 
    3         24.10.2011      Nach Pos-Klick Highlight erneuern statt hideHighlight 
    4         17.11.2011      Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 
    5         02.12.2011      Suche nach Vorname Nachname oder Nachname 
    6         09.12.2011      Filter "Gemeinde" fÃŒr Ebene FlurstÃŒcke. 
    7                                         Filter "Gemeinde" fÃŒr Personen ÃŒber neue Hilfstabelle "gemeinde_person". 
    8                                         Format css Person (Rahmen). 
    93        2013-04-16 "import_request_variables" entfÀllt in PHP 5.4 
    104        2013-04-26      Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung". 
     
    148                                        Dazu Var-Namen harmonisieren: $gb wird $blattgml. 
    159                                        ZurÃŒck-Link, Titel der Transaktion anzeigen. 
    16         2013-04-29      Test mit IE 
     10        2013-04-29      Darstellung mit IE 
     11        2013-05-07  Strukturierung des Programms, redundanten Code in Functions zusammen fassen 
    1712*/ 
    1813$cntget = extract($_GET); 
     
    4338<body> 
    4439<a href='javascript:history.back()'> 
    45         <img src="ico/zurueck.ico" width="16" height="16" alt="&lt;&lt;" title="zur&uuml;ck" /> 
     40        <img src="ico/zurueck.ico" width="16" height="16" alt="&lt;&lt;" title="zur&uuml;ck"> 
    4641</a> 
    4742<dfn class='title' id='transaktiontitle'></dfn> 
     
    5146// Einen Link generieren, um nach anderen Personen mit gleichem Familiennamen zu suchen 
    5247function familiensuche() { 
    53         global $gkz, $gemeinde, $epsg, $name; // $debug 
     48        global $gkz, $gemeinde, $epsg, $name; 
    5449        if(isset($name)) { // Familiensuche 
    5550                echo "\n<div class='back' title='Andere Personen mit diesem Nachnamen'>"; 
     
    6156} 
    6257 
    63 // Adresse und Geburtsdatum der aktuellen Person ausgeben 
    64 function personendaten() { 
     58function personendaten() { // Adresse und Geburtsdatum der aktuellen Person ausgeben 
    6559        global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath; // $debug 
    6660        $sql ="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil, "; 
    6761        $sql.="a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer "; 
    68         $sql.="FROM ax_person p "; 
    69         $sql.="LEFT JOIN alkis_beziehungen b ON p.gml_id=b.beziehung_von "; 
    70         $sql.="LEFT JOIN ax_anschrift a ON a.gml_id=b.beziehung_zu "; 
    71         #sql.="WHERE p.gml_id= $1 AND b.beziehungsart='hat';";  // passt nicht zum LEFT 
    72         $sql.="WHERE p.gml_id= $1 ;";    
     62        $sql.="FROM ax_person p LEFT JOIN alkis_beziehungen b ON p.gml_id=b.beziehung_von "; 
     63        $sql.="LEFT JOIN ax_anschrift a ON a.gml_id=b.beziehung_zu WHERE p.gml_id= $1 ;";        
    7364        $v=array($person); 
    7465        $res=pg_prepare("", $sql); 
    7566        $res=pg_execute("", $v); 
    76         if (!$res) { 
    77                 echo "\n<p class='err'>Fehler bei Name</p>\n"; 
    78         } 
     67        if (!$res) {echo "\n<p class='err'>Fehler bei Name</p>\n";} 
    7968        echo "\n\t<table>\n\t<tr>\n\t\t<td valign='top'>"; 
    8069                // Sp. 1: Icon, Link zur Auskunft Person 
     
    10089 
    10190function getEigByName() { 
    102 // 1 ============================= 
    103 // Eigentuemer nach Name(-nsanfang) 
    104 // =============================== 
    105         global $gkz, $gemeinde, $epsg, $name, $person, $gfilter, $auskpath; 
     91        // 1 // Eigentuemer nach Name(-nsanfang) 
     92        global $gkz, $gemeinde, $epsg, $name, $person, $gfilter; 
    10693        $linelimit=150; 
    107  
    10894        $arr = explode(",", $name); 
    10995        $name0 = trim($arr[0]); 
     
    148134        $cnt = 0; 
    149135        while($row = pg_fetch_array($res)) { 
    150                 $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8"); 
    151                 $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); 
    152                 $gml=$row["gml_id"]; 
    153                 // Link zur Auskunft Person  +++ Icon differenzieren? Firma/Person 
    154                 echo "\n<br>\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$gml."\")'>"; 
    155                         echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>"; 
    156                 echo "\n\t</a> ";                
    157                 echo "\n<a title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$gml."&amp;name=".$nnam."'>".$nnam.", ".$vnam."</a>"; 
     136                $nachname=$row["nachnameoderfirma"]; 
     137                $vorname=$row["vorname"]; 
     138                $persongml=$row["gml_id"]; 
     139                zeile_person ($persongml, $nachname, $vorname); 
    158140                $cnt++; 
    159141        } 
     
    163145                echo "\n<p class='anz' title='Bitte den Namen eindeutiger qualifizieren'>... und weitere</p>"; 
    164146        } elseif($cnt == 1){ // Eindeutig! 
    165                 $person = $gml; 
     147                $person = $persongml; 
    166148        } else { 
    167149                echo "\n<p class='anz'>".$cnt." Eigent&uuml;mer mit '".$name."'</p>";   // im Limit 
     
    171153 
    172154function getGBbyPerson() { 
    173 // 2 ================================= 
    174 // GrundbÃŒcher zur gewÀhlten Person 
    175 // =================================== 
     155        // 2 // GrundbÃŒcher zur gewÀhlten Person 
    176156// Es wird in dieser Function nicht geprÃŒft, ob die gefundenen GrundbÃŒcher auch FlurstÃŒcke 
    177157// haben, die im gefilterten Bereich (Gemeinde) liegen. Es können daher Sackgassen entstehen, 
     
    181161// Alternativ wÃŒrde eine Hilfstabelle benötigt, in der im PostProcessing  
    182162// das GB-zu-Gemeinde-VerhÀltnis vorbereitet wird. 
    183         global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath, $debug, $bltbez, $bltblatt, $bltseite; 
     163        global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $debug, $bltbez, $bltblatt, $bltseite; 
    184164        $linelimit=150; 
    185         $linelimit=15;  // +++ TEST +++  
    186165        familiensuche(); 
    187166        personendaten(); 
    188         #if ($debug > 0) {echo "\n<p>Nur Grundb&uuml;cher</p>"; } 
    189167        // Suche nach GrundbÃŒchern der Person 
    190168        $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezeichnung AS beznam "; 
     
    218196                $beznam=$row["beznam"]; 
    219197                $blatt=$row["blatt"]; 
    220                 echo "\n<div class='gb'>"; 
    221                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$gml."\")'>"; 
    222                                 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 
    223                         echo "\n\t</a> ";                
    224                         echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;blattgml=".$gml."&amp;person=".$person."'> Blatt ".$blatt."&nbsp;</a>"; 
    225                 echo "\n</div>"; 
     198                zeile_blatt ($zgbbez, $beznam, $gml, $blatt, false, $person); 
    226199                $cnt++; 
    227200        } 
     
    245218 
    246219function getFSbyGB($backlink) { 
    247 // 3 ================================= 
    248 // FlurstÃŒcke zum gewÀhlten Grundbuch 
    249 // =================================== 
     220        // 3 // FlurstÃŒcke zum Grundbuch 
    250221// Zu einem Grundbuch (gml_id als Parameter) werden alle darauf gebuchten FlurstÃŒcke gesucht. 
    251222// Im ersten Schritt sind das direkt gebuchten FlurstÃŒcke. 
    252223// Im zweiten Schritt wird gesucht nach Rechten einer Buchungstelle des durchsuchten Blattes an anderen 
    253 // Buchungstellen. Es werden dann die FlurstÃŒcke darauf gelistet. 
    254         global $gkz, $gemeinde, $name, $person, $blattgml, $scalefs, $auskpath, $epsg, $gfilter, $debug; 
    255         $linelimit=150; 
     224// Buchungstellen. 
     225        global $gkz, $gemeinde, $name, $person, $blattgml, $epsg, $gfilter, $debug; 
    256226        if($backlink) { // Erneuter Ansatz bei Person oder GB möglich. 
    257  
    258227                // Namen ermitteln 
    259228                $sql ="SELECT nachnameoderfirma, vorname FROM ax_person WHERE gml_id = $1 "; 
     
    261230                $res=pg_prepare("", $sql); 
    262231                $res=pg_execute("", $v); 
    263                 if (!$res) { 
    264                         echo "\n<p class='err'>Fehler bei Eigent&uuml;mer</p>"; 
    265                 } 
     232                if (!$res) {echo "\n<p class='err'>Fehler bei Eigent&uuml;mer</p>";} 
    266233                $row = pg_fetch_array($res); // nur eine Zeile 
    267234                $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8"); 
    268235                $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); 
     236 
    269237                echo "\n\t<div class='back' title='zur&uuml;ck zur Person'>"; 
    270238                        echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'> "; 
     
    274242 
    275243                // Grundbuch-Daten ermitteln 
    276                 $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezeichnung AS beznam "; 
    277                 $sql.="FROM ax_buchungsblatt gb JOIN ax_buchungsblattbezirk b ON gb.land = b.land AND gb.bezirk = b.bezirk "; 
     244                $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam "; 
     245                $sql.="FROM ax_buchungsblatt gb JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk "; 
    278246                $sql.="WHERE gb.gml_id= $1 ;"; 
    279247                $v=array($blattgml); 
    280248                $res=pg_prepare("", $sql); 
    281249                $res=pg_execute("", $v); 
    282                 if (!$res) { 
    283                         echo "\n<p class='err'>Fehler bei Grundbuch</p>"; 
    284                 } 
    285                 $row = pg_fetch_array($res); // nur eine Zeile 
     250                if (!$res) {echo "\n<p class='err'>Fehler bei Grundbuch</p>";} 
     251                $row = pg_fetch_array($res); // eine Zeile 
    286252                $gml=$row["gml_g"]; 
     253                $bezirk=$row["bezirk"]; 
    287254                $beznam=$row["beznam"]; 
    288255                $blatt=$row["blatt"]; 
    289                 echo "<div class='gb'>"; 
    290                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$blattgml."\")'>"; 
    291                                 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 
    292                         echo "\n\t</a>&nbsp;".$beznam." Blatt ".$blatt; 
    293                 echo "</div>";   
    294         } 
    295  
    296         GB_Buchung_FS($linelimit); // Externe Function: Blatt > GrundstÃŒck > Flurst. 
    297          
     256                zeile_blatt ($bezirk, $beznam, $blattgml, $blatt, false, $person);       
     257        } 
     258        GB_Buchung_FS(200); // Blatt > GrundstÃŒck > Flurst. (max. 200)) 
    298259        return; 
    299260} 
    300261 
    301262function getGBuFSbyPerson() { 
    302 // 2 + 3 ========================================= 
    303 // GrundbÃŒcher UND FlurstÃŒcke zur gewÀhlten Person 
    304 // =============================================== 
     263        // 2 + 3 // GrundbÃŒcher UND FlurstÃŒcke zur gewÀhlten Person 
     264// 
    305265// Dies ist die Kombination von Stufe 2 (GrundbÃŒcher zur Person) und 3 (FlurstÃŒcke zum Grundbuch)  
    306266// in einem einzelnen Schritt. Wenn auf Gemeinde gefiltert wird, dann können in Stufe 2 (noch ohne Filter) 
     
    311271// Stufe 2 und 3 nacheinander verwendet werden. Dies ist wahrscheinlich ÃŒbersichtlicher,  
    312272// weil "ungefiltert" in "2+3" zu lange Listen entstehen wÃŒrden, die durchblÀttert werden mÃŒssen.  
    313         global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath, $scalefs, $gfilter, $debug, $bltbez, $bltblatt, $bltbvnr, $bltseite, $bltrecht; 
     273        global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $gfilter, $debug, $bltbez, $bltblatt, $bltbvnr, $bltseite, $bltrecht; 
    314274        $linelimit=80; // als Limit "Anzahl FlurstÃŒcke" in den beiden folgenden Abfragen 
    315275        // darf nun etwas knapper sein, weil man jetzt blÀttern kann 
     
    375335                $bltwhere.="OR (b.bezeichnung = '".$bltbez."' AND gb.buchungsblattnummermitbuchstabenerweiterung > '".$bltblatt."') "; 
    376336                $bltwhere.="OR (b.bezeichnung = '".$bltbez."' AND gb.buchungsblattnummermitbuchstabenerweiterung = '".$bltblatt."' AND cast(s1.laufendenummer AS integer) >= ".$bltbvnr." )) "; 
    377         } // FlurstÃŒcke in der BVNR werden ggf. wiederholt 
     337        } // FlurstÃŒcke in der angeblÀtterten BVNR werden ggf. wiederholt 
    378338 
    379339        if ($bltseite == "") { // auf Seite 1 beide Teile ausgegeben 
     
    395355                // Blatt <vbg/istBestandteilVon<  Buchungsstelle <vfb/istGebucht< Flurstck. 
    396356                $sql=$sql1.$sqla1.$sql2.$bltwhere.$sql3; // Direkte Buchungen 
    397          
    398357                $v=array($person, $linelimit); 
    399358                $res=pg_prepare("", $sql); 
     
    401360                if (!$res) { 
    402361                        echo "\n<p class='err'>Fehler bei Buchung und Flurst&uuml;ck.</p>"; 
    403                         if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
    404362                        return; 
    405363                } 
     
    408366                while($row = pg_fetch_array($res)) {     
    409367                        $gb_gml=$row["gml_g"]; 
    410          
    411                         // Gruppenwechsel auf Ebene Grundbuch 
    412                         if ($gwgb != $gb_gml) { 
     368                        if ($gwgb != $gb_gml) { // Gruppierung Blatt (Grundbuch) 
    413369                                $beznam=$row["beznam"]; 
    414370                                $blatt=$row["blatt"]; 
    415                                 echo "\n<div class='gb'>"; // Ausgabe GB - B L A T T  
    416                                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$gb_gml."\")'>"; 
    417                                                 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 
    418                                         echo "\n\t</a> ";                
    419                                         echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;blattgml=".$gb_gml."&amp;person=".$person."'> Blatt ".$blatt."&nbsp;</a>"; 
    420                                 echo "\n</div>"; 
     371                                zeile_blatt ($bezirk, $beznam, $gb_gml, $blatt, false, $person); 
    421372                                $gwgb = $gb_gml;        // Steuerg GW GB 
    422373                                $gwbv = "";             // Steuerg GW BVNR 
    423374                        } 
    424          
    425                         // Gruppenwechsel auf Ebene Buchungs-Stelle (BVNR) 
    426375                        $bvnr=$row["lfd"]; 
    427                         if ($gwbv != $bvnr) { 
    428                                 if ($bvnr == 0) { 
    429                                         $bvnra = "-"; 
    430                                 } else { 
    431                                         $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen 
    432                                 } 
    433                                 $gwbv = $bvnr; // Steuerg GW BVNR 
    434                                 echo "\n<div class='gs' title='Grundst&uuml;ck'>"; 
    435                                 echo "<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 
    436                                 echo "Buchung ".$bvnra."</div>"; 
     376                        if ($gwbv != $bvnr) { // Gruppierung Buchung (BVNR) 
     377                                $gwbv = $bvnr; 
     378                                zeile_buchung ($bsgml, $bvnr, "", false); 
    437379                        } 
    438          
    439380                        $fs_gml=$row["gml_id"]; 
    440381                        $gmkg=$row["gemarkungsname"]; 
     
    444385                        $x=$row["x"]; 
    445386                        $y=$row["y"]; 
    446                         echo "\n<div class='fs'>"; // F L U R S T Ü C K 
    447                                 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    448                                         echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
    449                                 echo "\n\t</a> ";        
    450                                 echo "\n\t".$gmkg." <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    451                                                 echo "javascript:"; 
    452                                                 echo "transtitle(\"auf Flurst&uuml;ck positioniert\"); "; 
    453                                                 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    454                                                 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    455                                         echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
    456                                         echo "onmouseout='parent.parent.hideHighlight()'>"; 
    457                                 echo " Flur ".$flur." ".$fskenn."</a>"; 
    458                         echo "\n</div>"; 
     387                        zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur ); 
    459388                        $zfs1++; 
    460389                } 
    461390                if($zfs1 == 0) { 
    462                         if ($bltrecht == "ohne") { 
    463                                 echo "\n<p class='anz'>Keine direkte Buchung gefunden.</p>"; 
    464                                 #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
    465                         } 
     391                        if ($bltrecht == "ohne") {echo "\n<p class='anz'>Keine direkte Buchung gefunden.</p>";} 
    466392                } elseif($zfs1 >= $linelimit) { // das Limit war zu knapp, das  B l À t t e r n  anbieten 
    467393                        echo "\n<p class='blt'>".$zfs1." Flurst&uuml;cke"; 
     
    476402                } 
    477403        }        
    478  
    479404        if ($bltrecht == "" and $zfs1 > 0) { // beides 
    480405                echo "<hr>"; // dann Trenner 
     
    491416                if (!$res) { 
    492417                        echo "\n<p class='err'>Fehler bei Recht an Buchung.</p>"; 
    493                         if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
    494418                        return; 
    495419                } 
     
    497421                $gwgb=""; 
    498422                while($row = pg_fetch_array($res)) {     
    499                         // Gruppenwechsel auf Ebene Grundbuch 
    500423                        $gb_gml=$row["gml_g"]; 
    501                         if ($gwgb != $gb_gml) {  
     424                        if ($gwgb != $gb_gml) {  // Gruppierung Blatt (Grundbuch) 
    502425                                $beznam=$row["beznam"]; 
    503426                                $blatt=$row["blatt"]; 
    504                                 echo "\n<div class='gb'>"; // Ausgabe GB 
    505                                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$gb_gml."\")'>"; 
    506                                                 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 
    507                                         echo "\n\t</a> ";                
    508                                         echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;blattgml=".$gb_gml."&amp;person=".$person."'> Blatt ".$blatt."&nbsp;</a>"; 
    509                                 echo "\n</div>"; 
     427                                zeile_blatt ($bezirk, $beznam, $gb_gml, $blatt, false, $person); 
    510428                                $gwgb = $gb_gml;        // Steuerg GW GB 
    511429                                $gwbv = "";             // Steuerg GW BVNR 
    512430                        } 
    513  
    514                         // Gruppenwechsel auf Ebene Buchungs-Stelle (BVNR) 
    515431                        $bvnr=$row["lfd"]; 
    516                         if ($gwbv != $bvnr) { 
    517                                 if ($bvnr == 0) { 
    518                                         $bvnra = "-"; 
    519                                 } else { 
    520                                         $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen 
    521                                 } 
    522                                 $gwbv = $bvnr; // Steuerg GW BVNR 
    523                                 echo "\n<div class='gs' title='Grundst&uuml;ck'>"; 
    524                                 echo "<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 
    525                                 echo "Buchung ".$bvnra."</div>"; 
     432                        if ($gwbv != $bvnr) { // Gruppierung Buchungs (BVNR) 
     433                                $gwbv = $bvnr; 
     434                                zeile_buchung ($bsgml, $bvnr, "", true); // Recht an ... 
    526435                        } 
    527  
    528436                        $fs_gml=$row["gml_id"]; 
    529437                        $gmkg=$row["gemarkungsname"]; 
    530438                        $flur=$row["flurnummer"]; 
    531439                        $fskenn=$row["zaehler"]; 
    532                         if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 
     440                        if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} 
    533441                        $x=$row["x"]; 
    534442                        $y=$row["y"]; 
    535                         echo "\n<div class='fs'>"; 
    536                                 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    537                                         echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
    538                                 echo "\n\t</a> ";        
    539                                 echo "\n\tRecht an ".$gmkg." <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    540                                                 echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    541                                                 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    542                                         echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
    543                                         echo "onmouseout='parent.parent.hideHighlight()'>"; 
    544                                 echo " Flur ".$flur." ".$fskenn."</a>"; 
    545                         echo "\n</div>"; 
     443                        zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur); 
    546444                        $zfs2++; 
    547445                } 
     
    549447                        if ($zfs1 == 0 or $bltrecht == "nur") { // keine Meldung wenn schon in Teil 1 eine Ausgabe 
    550448                                echo "\n<p class='anz'>Keine Rechte an Buchungen.</p>"; 
    551                                 #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
    552449                        } 
    553450                } elseif($zfs2 >= $linelimit) { // das Limit war zu knapp, das  B l À t t e r n  anbieten 
     
    569466// Start hier! 
    570467// =========== 
    571  
    572468// Parameter:   
    573469// 1. name   = Suche nach Namensanfang oder -bestandteil. 
     
    576472 
    577473if(isset($epsg)) { 
    578         #if ($debug >= 2) {echo "\n<p class='dbg'>aktueller EPSG='".$epsg."'</p>";} // aus MB 
    579474        $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]);    
    580475} else { 
    581         #if ($debug >= 1) {echo "<p class='dbg'>kein EPSG gesetzt</p>";}         
    582476        $epsg=$gui_epsg; // aus Conf 
    583477} 
    584 #if ($debug >= 2) {echo "\n<p class='dbg'>Filter Gemeinde = '".$gemeinde."'</p>";} 
    585478if ($gemeinde == "") { 
    586479        $gfilter = 0; // Gemeinde ungefiltert 
     
    592485 
    593486// Quo Vadis? 
    594 if(isset($blattgml)) {          // 3. Stufe: FlurstÃŒcke zum Grundbuch 
     487if(isset($blattgml)) {          // FlurstÃŒcke zum Grundbuch 
    595488 
    596489        // Das Programm hat sich selbst verlinkt aus einer Liste der GB zu einem EigentÃŒmer. 
     
    599492        getFSbyGB(true);                                // mit BackLink 
    600493 
    601 } elseif(isset($person)) {      // 2. Stufe: GrundbÃŒcher zur Person 
     494} elseif(isset($person)) {      // GrundbÃŒcher zur Person 
    602495        // Das Programm hat sich selbst verlinkt aus einer Liste der Personen zu einer Suchmaske. 
    603496        if ($debug >= 2) {echo "\n<p class='dbg'>Gemeinde-Filter-Steuerung = '".$gfilter."'</p>";} 
     
    609502                getGBbyPerson(); 
    610503                // Also schrittweise erst mal Stufe 2 = GrundbÃŒcher zur Person suchen. 
    611                 // Diese Function hat auch noch keine Gemeinde-Filter-Funktion auf GB-Ebene. 
    612                                                                          
    613504                if(isset($blattgml) ) { // Es wurde nur EIN Grundbuch zu der Person gefunden. 
    614505                        $trans="1 Blatt zum Eigent&uuml;mer"; 
     
    617508 
    618509        } else {                                                // mit Filter auf Gemeinde: weniger Daten? 
    619  
    620510                $trans="Grundb. und Flurst. zum Eigent&uuml;mer"; 
    621511                getGBuFSbyPerson();             // Schritte 2+3 gleichzeitig, dabei Gemeinde-Filter auf Stufe 3 
    622512        } 
    623513 
    624 } elseif(isset($name)) {        // Suchbegriff aus Form - 1. Stufe: Suche nach Name 
     514} elseif(isset($name)) {        // Suchbegriff aus Form: Suche nach Name 
    625515 
    626516        $trans="Namensuche \"".$name."\""; 
    627517        getEigByName();                         // Suchen nach Namensanfang 
    628518 
    629         if(isset($person)) {            // genau EIN Treffer 
    630                 $trans="1 Grundbuch zum Namen"; 
    631                 getGBbyPerson();                // Dann gleich das Grundbuch hinterher 
     519        if(isset($person)) {            // genau EIN Treffer zum Namen 
     520                if ($gfilter == 0) { 
     521                        $trans="Grundb&uuml;cher zum Namen"; 
     522                        getGBbyPerson();                // Dann gleich das Grundbuch hinterher 
     523                } else { 
     524                        $trans="Grdb. und Flst. zum Namen"; 
     525                        getGBuFSbyPerson();     // .. oder auch GB + FS 
     526                } 
    632527        } 
    633528 
  • trunk/mapbender/http/nav/alkisnav_fkt.php

    r278 r282  
    11<?php 
    22/* Version vom  
    3         2013-04-26      NEU Function "GB_Buchung_FS" ausgelagert. 
    4                                         Code aus aus _eig soll auch in _grd verwendet werden 
    5                 Dazu Var-Namen harmonisieren: 
    6                 _eig    _grd     NEU 
    7                 $gb     $gblatt  $blattgml 
     3        2013-05-07  Strukturierung des Programms, redundanten Code in Functions zusammen fassen 
    84*/ 
    95 
     6// function Typ "zeile_**"  = Ausgabe eines Knotens 
     7// - Icon,  ggf. mit Link zur Buchauskunft 
     8// - Zeile, ggf. mit Link zur weiteren Auflösung untergeordneter Knoten 
     9// Hierin die Encodierung fÃŒr url und HTML. 
     10 
     11function zeile_ag ($ag, $anr) { // Zeile  A m t s g e r i c h t 
     12        global $gkz, $gemeinde, $epsg, $auskpath; 
     13        if ($ag == "") { 
     14                $agd=$anr; // Ersatz: Nummer statt Name. Besser: Name immer fÃŒllen 
     15        } else { 
     16                $agd=htmlentities($ag, ENT_QUOTES, "UTF-8"); 
     17        } 
     18        echo "\n<div class='ga' title='Amtsgericht'>"; 
     19                echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Amtsgericht'> "; 
     20                echo "AG <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;ag=".$anr."'>";             
     21                echo $agd."</a> (".$anr.")"; 
     22        echo "\n</div>"; 
     23        return; 
     24} 
     25 
     26function zeile_gbbez ($gnam, $zgbbez) { // Zeile Grundbuch - B e z i r k 
     27        global $gkz, $gemeinde, $epsg, $auskpath; 
     28        $gnamd=htmlentities($gnam, ENT_QUOTES, "UTF-8"); 
     29        echo "\n<div class='gk' title='GB-Bezirk'>"; 
     30                echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 
     31                echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$zgbbez."'>";                
     32                echo "Bezirk ".$gnamd."</a> (".suchfeld($zgbbez).")";                    
     33        echo "\n</div>"; 
     34        return; 
     35} 
     36 
     37function zeile_blatt ($bezirk, $beznam, $blattgml, $blatt, $dienend, $person) { 
     38        global $gkz, $gemeinde, $epsg, $auskpath; 
     39        // Zeile Grundbuch - B l a t t 
     40        $blattd=ltrim($blatt, "0"); // Display-Version ohne fÃŒhrende Nullen 
     41        if ( $dienend) {$dientxt="dienendes ";} 
     42        $blattlnk=urlencode($blatt); // trailing Blank 
     43        if ($beznam != "") {$nam = $beznam." ";} 
     44        echo "\n<div class='gb' title='".$dientxt."GB-Blatt'>"; 
     45        if ($blattgml == "") { // Link zum Nachweis nur wenn GML bekannt 
     46                echo "\n\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 
     47        } else { 
     48                echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$blattgml."\")'>"; 
     49                        echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 
     50                echo "\n\t</a> "; 
     51        } 
     52        echo $nam." <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg; 
     53        echo "&amp;blattgml=".$blattgml."&amp;gbkennz=".$bezirk."-".$blattlnk; 
     54 
     55        echo "&amp;gbbeznam=".urlencode($beznam); 
     56 
     57        if ($person != "") {echo "&amp;person=".$person;} // nur fÃŒr EigentÃŒmer-Suche 
     58        echo "'>Blatt&nbsp;".$blattd."</a>\n</div>"; 
     59        return; 
     60} 
     61 
     62function zeile_buchung ($buchunggml, $bvnr, $gbkennz, $dienend) { 
     63        // Zeile  B u c h u n g s s t e l l e  -  GrundstÃŒck ausgeben 
     64        global $gkz, $gemeinde, $epsg, $auskpath; 
     65        if ($bvnr == 0) { 
     66                $bvnra = "-"; 
     67        } else { 
     68                $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen 
     69        } 
     70        if ($diened) { 
     71                $ti="dienendes&nbsp;"; 
     72                $re="Recht an "; 
     73        } else { 
     74                $ti=""; 
     75                $re=""; 
     76        } 
     77        echo "\n<div class='gs' title='".$ti."Grundst&uuml;ck'>"; 
     78        echo "\n\t<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 
     79        echo $re."Buchung"; 
     80 
     81        if ($gbkennz == "") { // ohne Link 
     82                echo "&nbsp;".$bvnra."&nbsp;"; 
     83        } else { // Bezirk-Blatt-lfd 
     84                echo "\n\t<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;buchunggml=".$buchunggml;                  
     85                echo "&amp;gbkennz=".$gbkennz; 
     86                echo "'>&nbsp;".$bvnra."&nbsp;</a>"; 
     87        } 
     88        echo "\n</div>";         
     89        return 0; 
     90} 
     91 
     92function zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur) { 
     93        // Zeile mit Icon (Link zum Buch-Nachweis) und Text (Link zum Positionieren) 
     94        global $gkz, $gemeinde, $epsg, $auskpath, $scalefs; 
     95 
     96        echo "\n<div class='fs'>"; 
     97        echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
     98                echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
     99        echo "\n\t</a>\n\t";                     
     100 
     101        echo "&nbsp;<a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
     102        echo "javascript:"; 
     103                echo "transtitle(\"auf Flurst&uuml;ck positioniert\"); "; 
     104                echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
     105                echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
     106        echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
     107        echo "onmouseout='parent.parent.hideHighlight()'>"; 
     108 
     109        if ($gmkg == "" ) { 
     110                echo "Flst. "; // Im FS-Teil: Gem+Flur als Knoten darÃŒber ($gmkg und $flur leer) 
     111        } else { 
     112                echo $gmkg." "; // Im GB-und Nam-Teil in der Zeile angezeigt 
     113        } 
     114        if ($flur != "" ) {echo $flur."-";} 
     115        echo $fskenn."</a>\n</div>"; 
     116        return; 
     117} 
     118 
     119function zeile_person ($persongml, $nachname, $vorname) { 
     120        global $gkz, $gemeinde, $epsg, $auskpath; 
     121        // Zeile  P e r s o n   (oder Firma) 
     122        $nnam=htmlentities($nachname, ENT_QUOTES, "UTF-8"); 
     123        $namlnk=urlencode($nachname); 
     124        $vnam=htmlentities($vorname, ENT_QUOTES, "UTF-8"); 
     125        // Link zur Auskunft Person  +++ Icon differenzieren? Firma/Person 
     126        echo "\n<br>\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$gml."\")'>"; 
     127                echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>"; 
     128        echo "\n\t</a> ";                
     129        echo "\n<a title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$persongml."&amp;name=".$namlnk."'>".$nnam.", ".$vnam."</a>"; 
     130        return; 
     131} 
     132 
    10133function GB_Buchung_FS ($linelimit) { 
    11 // Zu einem Grundbuch-Blatt (identifiziert ÃŒber seine gml_id): 
    12 //  - suchen der Buchungen (Gruppenwechsel)  
    13 //  - und FlurstÃŒcke (Links) 
    14 // Wird verwendet in den Modulen _eig und _grd. 
    15 // 2013-04-26   Noch kein BlÀttern und noch keine BerÃŒcksichtigung des Filters auf "Gemeinde" 
    16 // ToDo: ZÀhler fÃŒr Blatt, Buchung, FS - am Ende ausgeben 
    17  
    18         global $gkz, $gemeinde, $blattgml, $scalefs, $auskpath, $epsg, $gfilter, $debug; 
     134// Zu einem Grundbuch-Blatt (identifiziert ÃŒber seine gml_id) suchen der  
     135// Buchungen (Gruppenwechsel) und FlurstÃŒcke (Links) 
     136        global $gkz, $gemeinde, $blattgml, $epsg, $gfilter, $debug; 
    19137 
    20138        // SQL-Bausteine vorbereiten 
    21         $sql1 ="SELECT s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 
     139        // SQL vorne gleich 
     140        $sql1 ="SELECT s1.laufendenummer AS lfd, s1.gml_id AS bsgml, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 
    22141        if($epsg == "25832") { // Transform nicht notwendig 
    23142                $sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, "; 
     
    28147        } 
    29148        $sql1.="g.gemarkung, g.gemarkungsname "; 
    30    $sql1.="FROM alkis_beziehungen vbg "; 
     149        $sql1.="FROM alkis_beziehungen vbg "; 
    31150        $sql1.="JOIN ax_buchungsstelle s1 ON vbg.beziehung_von = s1.gml_id ";  
    32151 
    33         // Zwischen-JOIN (zusÀtzlich nur bei zweiter Abfrage) 
    34         $sqlz ="JOIN alkis_beziehungen vss ON vss.beziehung_von = s1.gml_id "; 
    35         $sqlz.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id "; 
    36  
    37         $sqla1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu "; 
    38         $sqla2 ="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu "; 
    39  
    40         $sql2.="JOIN ax_flurstueck f ON vfb.beziehung_von = f.gml_id "; 
    41    $sql2.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 
     152        // Zwischen-JOIN verschieden 
     153        $sqlz1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu "; 
     154         
     155        $sqlz2 ="JOIN alkis_beziehungen vss ON vss.beziehung_von = s1.gml_id "; 
     156        $sqlz2.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id "; 
     157        $sqlz2.="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu "; 
     158 
     159        // ++   JOIN alkis_beziehungen - ax_buchungsblatt  
     160        //              fÃŒr Link auf Buchung mit komplettem Grundbuchennzeichen 
     161 
     162        // SQL hinten gleich 
     163        $sql2 ="JOIN ax_flurstueck f ON vfb.beziehung_von = f.gml_id "; 
     164        $sql2.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 
    42165        $sql2.="WHERE vbg.beziehung_zu= $1 AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' "; 
    43166        switch ($gfilter) { 
     
    47170                        $sql2.="AND g.gemeinde in (".$gemeinde.") "; break; 
    48171        } 
    49         $sql2.="ORDER BY s1.laufendenummer, f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 
    50  
    51         // Blatt <vbg/istBestandteilVon<  Buchungsstelle <vfb/istGebucht< Flurstck. 
    52         $sql=$sql1.$sqla1.$sql2; // Direkte Buchungen 
     172        $sql2.="ORDER BY cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 
     173 
     174        // Abfrage:  d i r e k t e  B u c h u n g e n 
     175        // Blatt <vbg/istBestandteilVon<  Buchungsstelle <vfb/istGebucht< FlurstÃŒck 
     176        #$sql=$sql1.$sqlz1.$sql2; // Direkte Buchungen 
    53177 
    54178        $v=array($blattgml, $linelimit); 
    55         $res=pg_prepare("", $sql); 
     179        $res=pg_prepare("", $sql1.$sqlz1.$sql2); 
    56180        $res=pg_execute("", $v); 
    57181        if (!$res) { 
    58182                echo "\n<p class='err'>Fehler bei Buchung und Flurst&uuml;ck.</p>"; 
    59                 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
     183                #if ($debug >= 3) {echo "\n<p class='err'>".$sql1.$sqlz1.$sql2."</p>";} 
    60184                return; 
    61185        } 
     
    63187        $gwbv=""; 
    64188        while($row = pg_fetch_array($res)) {     
    65  
    66                 // Gruppenwechsel auf Ebene Buchungs-Stelle (BVNR) 
    67189                $bvnr=$row["lfd"]; 
    68                 if ($gwbv != $bvnr) { 
    69                         if ($bvnr == 0) { 
    70                                 $bvnra = "-"; 
    71                         } else { 
    72                                 $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen 
    73                         } 
    74                         $gwbv = $bvnr; // Steuerg GW BVNR 
    75                         echo "\n<div class='gs' title='Grundst&uuml;ck'>"; 
    76                         echo "<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 
    77                         echo "Buchung ".$bvnra."</div>"; 
     190                $bsgml=$row["bsgml"]; // Buchungsstelle gml_id 
     191                if ($gwbv != $bvnr) { // Gruppierung Buchungs-Stelle (BVNR) 
     192                        $gwbv = $bvnr; 
     193                        zeile_buchung ($bsgml, $bvnr, "", false); // FÃŒr GB-Kennz. (-> Link) fehlt Bezirk + Blatt 
    78194                } 
    79  
    80195                $fs_gml=$row["gml_id"]; 
    81196                $gmkg=$row["gemarkungsname"]; 
     
    85200                $x=$row["x"]; 
    86201                $y=$row["y"]; 
    87                 echo "\n<div class='fs'>"; 
    88                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    89                                 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
    90                         echo "\n\t</a> ";        
    91                         echo "\n\t".$gmkg." <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    92                                         echo "javascript:"; 
    93                                         echo "transtitle(\"auf Flurst&uuml;ck positioniert\"); "; 
    94                                         echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    95                                         echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    96                                 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
    97                                 echo "onmouseout='parent.parent.hideHighlight()'>"; 
    98                         echo " Flur ".$flur." ".$fskenn."</a>"; 
    99                 echo "\n</div>"; 
     202                zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur); 
    100203                $zfs1++; 
    101204        } 
    102         if($zfs1 == 0) {  
    103                 // "nichts gefunden" erst melden, wenn auch Teil 2 (Rechte an) nichts findet 
    104         } elseif($zfs1 >= $linelimit) { 
    105                 echo "\n<p class='anz'>... und weitere</p>"; 
    106         // +++  BlÀttern einfÃŒhren? 
     205        #if($zfs1 == 0) { // "nichts gefunden" erst melden, wenn auch Teil 2 (Rechte an) nichts findet 
     206        #} else 
     207        if($zfs1 >= $linelimit) { 
     208                echo "\n<p class='anz'>... und weitere</p>"; // +++  BlÀttern einfÃŒhren? 
    107209        } elseif($zfs1 > 1) { // ab 2 
    108210                echo "\n<p class='anz'>".$zfs1." Flurst&uuml;cke zum Grundbuch</p>"; 
    109211        } 
    110  
    111         if($zfs1 > 1) { // wenn's was zu trennen gibt 
    112                 echo "<hr>"; // Trennen 
    113         } 
    114  
    115         // Zweite Abfrage (Variante) aus den Bausteinen zusammen bauen 
    116         // buchungsStelle2 < an < buchungsStelle1 
    117         $sql=$sql1.$sqlz.$sqla2.$sql2; // Rechte an 
    118  
     212        if($zfs1 > 0) {echo "<hr>";} // Trennen 
     213 
     214        // Abfrage:  R e c h t e  a n   /   d i e n e n d e  B u c h u n g e n 
    119215        $v=array($blattgml, $linelimit); 
    120         $res=pg_prepare("", $sql); 
     216        $res=pg_prepare("", $sql1.$sqlz2.$sql2); 
    121217        $res=pg_execute("", $v); 
    122218        if (!$res) { 
    123219                echo "\n<p class='err'>Fehler bei Recht an Buchung.</p>"; 
    124                 if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
     220                #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql1.$sqlz2.$sql2."</p>";} 
    125221                return; 
    126222        } 
    127223        $zfs2=0; 
     224        #$gwblatt=""; 
    128225        $gwbv=""; 
    129226        while($row = pg_fetch_array($res)) {     
    130  
    131                 // Gruppenwechsel auf Ebene Buchungs-Stelle (BVNR) 
    132227                $bvnr=$row["lfd"]; 
    133                 if ($gwbv != $bvnr) { 
    134                         if ($bvnr == 0) { 
    135                                 $bvnra = "-"; 
    136                         } else { 
    137                                 $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen 
    138                         } 
    139                         $gwbv = $bvnr; // Steuerg GW BVNR 
    140                         echo "\n<div class='gs' title='Grundst&uuml;ck'>"; 
    141                         echo "<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 
    142                         echo "Buchung ".$bvnra."</div>"; 
     228                $bsgml=$row["bsgml"]; // Buchungsstelle gml_id 
     229                if ($gwbv != $bvnr) { // Gruppierung Buchung (BVNR) - dienend 
     230                        $gwbv = $bvnr; 
     231                        zeile_buchung ($bsgml, $bvnr, "", true); 
    143232                } 
    144  
    145233                $fs_gml=$row["gml_id"]; 
    146234                $gmkg=$row["gemarkungsname"]; 
     
    150238                $x=$row["x"]; 
    151239                $y=$row["y"]; 
    152                 echo "\n<div class='fs'>"; 
    153                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    154                                 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
    155                         echo "\n\t</a> ";        
    156                         echo "\n\tRecht an ".$gmkg." <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    157                                         echo "javascript:"; 
    158                                         echo "transtitle(\"auf Flurst&uuml;ck positioniert\"); "; 
    159                                         echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    160                                         echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    161                                 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
    162                                 echo "onmouseout='parent.parent.hideHighlight()'>"; 
    163                         echo " Flur ".$flur." ".$fskenn."</a>"; 
    164                 echo "\n</div>"; 
     240                zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur); 
    165241                $zfs2++; 
    166242        } 
     
    168244                echo "\n<p class='anz'>Kein Flurst&uuml;ck im berechtigten Bereich.</p>"; 
    169245        } elseif($zfs >= $linelimit) { 
    170                 echo "\n<p class='anz'>... und weitere</p>"; 
    171         // +++ BlÀttern einfÃŒhren? 
     246                echo "\n<p class='anz'>... und weitere</p>"; // BlÀttern einfÃŒhren? 
    172247        } elseif($zfs2 > 1) { // keine Meldung "nichts gefunden - Rechte an" wenn Treffer in Teil 1 
    173248                echo "\n<p class='anz'>".$zfs2." Rechte an Flurst.</p>"; 
  • trunk/mapbender/http/nav/alkisnav_fls.php

    r280 r282  
    11<?php 
    22/* Version vom 
    3         2011-10-24      Nach Pos-Klick Highlight erneuern statt hideHighlight 
    4         2011-11-07      optional auch Historische FS suchen, Link auf Buchauskunft-Modul alkisfshis.php 
    5         2011-11-09      "h" hinter Flur oder FlurstÃŒck sucht sofort in Historie 
    6                                         Ausgabe Flur in Varianten aktuell/historisch mit gegenseitigen Verweisen 
    7         2011-11-11      Nachfolger-Liste in der DB nachschlagen, und aktuelle FS als solche kennzeichnen 
    8                                         neue Icons fÃŒr Link mit Pfeil 
    9                                         Differenzierung mit/ohne Raumbezug bei Icons fuer Histor. FS 
    10                                         Gemarkung- und Flur-Zeile vor einzelnem FlurstÃŒck ausgeben 
    11         2011-11-17      Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 
    123        2013-04-16      "import_request_variables" entfÀllt in PHP 5.4,  
    134                                        Fehlerkorrektur Komma in SQL bei FS-Suche. 
     
    156                                        ZurÃŒck-Link, Titel der Transaktion anzeigen 
    167        2013-04-29      Test mit IE 
     8        2013-05-07  Strukturierung des Programms, redundanten Code in Functions zusammen fassen 
    179*/ 
    1810$cntget = extract($_GET); 
    1911include("../../conf/alkisnav_conf.php"); 
     12include("alkisnav_fkt.php"); // Funktionen 
    2013$con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 
    2114$con = pg_connect ($con_string) or die ("Fehler bei der Verbindung zur Datenbank ".$dbname.$dbvers.$gkz); 
     
    2922        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    3023        <title>ALKIS-Suche Flurst&uuml;ck</title> 
    31         <link rel="stylesheet" type="text/css" href="alkisnav.css"></link> 
     24        <link rel="stylesheet" type="text/css" href="alkisnav.css"> 
    3225        <script type="text/javascript"> 
    3326                function imFenster(dieURL) { 
     
    4235<body> 
    4336<a href='javascript:history.back()'> 
    44         <img src="ico/zurueck.ico" width="16" height="16" alt="&lt;&lt;" title="zur&uuml;ck" /> 
     37        <img src="ico/zurueck.ico" width="16" height="16" alt="&lt;&lt;" title="zur&uuml;ck"> 
    4538</a> 
    4639<dfn class='title' id='transaktiontitle'></dfn> 
     
    7568// Das eingegebene FlurstÃŒcks-Kennzeichen auseinander nehmen. Erwartet wird gggg-fff-zzzz/nnn 
    7669        global $debug, $zgemkg, $zflur, $zzaehler, $znenner;     
    77 //      if ($debug > 1) {echo "<p class='dbg'>Zerlegen: '".$fskennz."'</p>";} 
    7870        $arr = explode("-", $fskennz, 4); 
    7971        $zgemkg=trim($arr[0]); 
     
    111103} 
    112104 
    113 function gemkg_zeile($zgemkg) { 
    114 // Eine Zeile zu Gemarkung ausgeben, SchlÃŒssel wird ÃŒbergeben, Name in DB nachschlagen 
    115         global $con, $gkz, $gemeinde, $epsg; 
    116         $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;"; 
    117         $v=array($zgemkg); 
    118         $res=pg_prepare("", $sql); 
    119         $res=pg_execute("", $v); 
    120         if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkung.</p>";} 
    121         $zgmk=0; 
    122         while($row = pg_fetch_array($res)) { // eigentlich nur EINE 
    123                 $gmkg=$row["bezeichnung"]; 
    124                 $zgmk++; 
    125                 echo "\n<div class='gk' title='Gemarkung'>"; 
    126                         echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 
    127                         echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."'> ".$gmkg." (".$zgemkg.")</a>"; 
    128                 echo "\n</div>"; 
    129         } 
    130         if ($zgmk == 0) { 
    131                 echo "\n<div class='gk' title='Gemarkung'>"; 
    132                         echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 
    133                                 echo  " Gemarkung ".$zgemkg." ist unbekannt.</p>"; 
    134                 echo "\n</div>"; 
     105function flurstueckskoordinaten($gml) { 
     106        // Die Koordinaten zu einem FlurstÃŒck aus der Datenbank liefern 
     107        global $epsg; 
     108        $sqlk ="SELECT "; 
     109        if($epsg == "25832") { // Transform nicht notwendig 
     110                $sqlk.="x(st_Centroid(wkb_geometry)) AS x, "; 
     111                $sqlk.="y(st_Centroid(wkb_geometry)) AS y "; 
     112        } else {   
     113                $sqlk.="x(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS x, "; 
     114                $sqlk.="y(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS y ";                    
     115        } 
     116   $sqlk.="FROM ax_flurstueck WHERE gml_id= $1 "; 
     117        $v=array($gml); 
     118        $resk=pg_prepare("", $sqlk); 
     119        $resk=pg_execute("", $v); 
     120        if (!$resk) {echo "\n<p class='err'>Fehler bei Koordinate.</p>";} 
     121        $rowk = pg_fetch_array($resk); 
     122        $koor=array("x" => $rowk["x"], "y" => $rowk["y"]); 
     123        return $koor; 
     124} 
     125 
     126function zeile_gemeinde ($gnr, $gemeindename) { 
     127        // Eine Zeile zu Gemeinde ausgeben, SchlÃŒssel und Name wird ÃŒbergeben 
     128        global $gkz, $gemeinde, $epsg; 
     129        $stadt=htmlentities($gemeindename, ENT_QUOTES, "UTF-8"); 
     130        $bez=urlencode($gemeindename); 
     131        echo "\n<div class='gm' title='Gemeinde'>"; 
     132                echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>"; 
     133                echo " Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gm=".$gnr."&amp;bez=".$bez."'>";                 
     134                echo  " ".$stadt."</a> (".$gnr.")"; 
     135        echo "\n</div>"; 
     136        return; 
     137} 
     138 
     139function zeile_gemarkung($gnr, $gemkgname) { 
     140        // Eine Zeile zu Gemarkung ausgeben 
     141        global $con, $gkz, $gemeinde, $epsg, $gfilter; 
     142        if ($gemkgname == "") { // Falls Gem.-Name fehlt, in DB nachschlagen 
     143                $sql ="SELECT g.gemarkungsname FROM pp_gemarkung g WHERE g.gemarkung = $1 LIMIT 1;"; 
     144                $v=array($gnr); 
     145                $res=pg_prepare("", $sql); 
     146                $res=pg_execute("", $v); 
     147                if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkungsname.</p>";} 
     148                $row = pg_fetch_array($res); 
     149                $gemkgname=$row["gemarkungsname"]; 
     150        } 
     151        if ($gemkgname == "") {$gemkgname = "(unbekannt)";} 
     152        $gnam=htmlentities($gemkgname, ENT_QUOTES, "UTF-8"); 
     153        echo "\n<div class='gk' title='Gemarkung'>"; 
     154        echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 
     155        echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$gnr."'>";               
     156        echo  " ".$gnam."</a> (".$gnr.")"; 
     157        echo "\n</div>"; 
     158        return; 
     159} 
     160 
     161function zeile_flur($zgemkg, $zflur, $historie) { // Eine Zeile zur Flur ausgeben 
     162        global $gkz, $gemeinde, $epsg; 
     163        echo "\n<div class='fl' title='Flur'>"; 
     164        echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> "; 
     165        $url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."-".$zflur; 
     166        echo "<a title='Aktuelle Flurst&uuml;cke suchen' href='".$url."'>Flur ".$zflur." </a>";  
     167        If ($historie) { // Link zur hist. Suche anbieten 
     168                echo " <a class='hislnk' title='Historische Flurst&uuml;cke der Flur' href='".$url."&amp;hist=j'>Hist.</a>"; 
     169        } 
     170        echo "\n</div>";         
     171        return; 
     172} 
     173 
     174function zeile_hist_fs($fs_gml, $fskenn, $ftyp, $gknr, $flur) { 
     175        // Eine Zeile fÃŒr ein historisches FlurstÃŒck ausgeben  
     176        global $gkz, $gemeinde, $epsg, $auskpath; 
     177        if ($ftyp == "h") { 
     178                $ico="Flurstueck_Historisch_Lnk.ico"; 
     179                $titl="Historisches Flurst&uuml;ck"; 
     180        } else { 
     181                $ico="Flurstueck_Historisch_oR_Lnk.ico"; 
     182                $titl="Historisches Flurst&uuml;ck ohne Raumbezug"; 
     183        } 
     184        echo "\n<div class='hi' title='".$titl."'>"; 
     185 
     186        // Icon -> Buchnachweis 
     187        echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
     188                echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='Hist'>"; 
     189        echo "\n\t</a>"; 
     190 
     191        // Zeile -> tiefer in die Historie 
     192        $flurl =$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;hist=j"; 
     193        $flurl.="&amp;fskennz=".$gknr."-".$flur."-"; 
     194        echo "\n\thist. Flst. <a href='".$flurl.$fskenn."'>".$fskenn."</a>";             
     195 
     196        echo "\n</div>"; 
     197        return; 
     198} 
     199 
     200function zeile_nachf_fs($gml, $gknr, $flur, $fskenn, $ftyp) { 
     201        // Eine Zeile fÃŒr ein Nachfolger-FlurstÃŒck eines hist. Fs. ausgeben  
     202        global $gkz, $gemeinde, $epsg, $auskpath; 
     203        $fs=$gknr."-".$flur."-".$fskenn; 
     204        switch ($ftyp) { 
     205 
     206        #case "a": 
     207        #       // Fuer ein akt. FS wird hier ein Link auf FS-Kennzeichen-Eingabe angeboten. 
     208        #       // Erst aus der nÀchsten Anzeige kann dann positioniert werden. 
     209        #       $ico="Flurstueck_Link.ico"; 
     210        #       $titl="Aktuelles Flurst&uuml;ck"; 
     211        #       $hisparm=""; 
     212        #       $auskprog="alkisfsnw"; 
     213        #       break; 
     214                 
     215        case "a": // Alternativ: hier gleich eine FS-Zeile mit Link ausgeben (EinrÃŒckung css passt nicht) 
     216                $koor=flurstueckskoordinaten($gml); 
     217                zeile_flurstueck($gml, $fskenn, $koor["x"], $koor["y"], "", ""); 
    135218                return; 
    136         } 
    137         return 0; 
    138 } 
    139  
    140 function flur_zeile($zgemkg, $zflur) { 
    141 //      Eine Zeile zur Flur ausgeben 
    142         global $con, $gkz, $gemeinde, $epsg; 
    143         echo "\n<div class='fl' title='Flur'>"; 
    144                 echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> "; 
    145                 $url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."-".$zflur; 
    146                 echo "Flur <a href='".$url."'>".$zflur."</a>"; 
    147                 //echo "<span class='hislnk'>"; 
    148                 echo " <a class='hislnk' title='Historische Flurst&uuml;cke' href='".$url."&amp;hist=j'>Hist.</a>";              
     219                break; 
     220 
     221        case "h": 
     222                $ico="Flurstueck_Historisch_Lnk.ico"; 
     223                $titl="Historisches Flurst&uuml;ck"; 
     224                $hisparm="&amp;hist=j"; 
     225                $auskprog="alkisfshist"; 
     226                break; 
     227        case "o": 
     228                $ico="Flurstueck_Historisch_oR_Lnk.ico"; 
     229                $titl="Historisches Flurst&uuml;ck ohne Raumbezug"; 
     230                $hisparm="&amp;hist=j"; 
     231                $auskprog="alkisfshist"; 
     232                break; 
     233        } 
     234        // fÃŒr die Hist.-FÀlle: 
     235        echo "\n<div class='hn' title='Nachfolger: ".$titl."'>";                         
     236                echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath.$auskprog.".php?gkz=".$gkz."&amp;gmlid=".$gml."\")'>"; 
     237                        echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='FS'>"; 
     238                echo "\n\t</a> ";                
     239                echo "Flst. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$fs.$hisparm."'>".$fskenn."</a>";                                      
    149240        echo "\n</div>"; 
    150         return 0; 
     241        return; 
    151242} 
    152243 
    153244function ListGemeinden() { 
    154 // bei Leereingabe die Gemeinden anlisten 
     245        // Bei Leereingabe im Formular die Gemeinden auflisten 
    155246        global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter; 
    156         $linelimit=50; 
     247        $linelimit=60; 
    157248        $sql ="SELECT gemeinde, gemeindename FROM pp_gemeinde "; 
    158249        switch ($gfilter) { 
    159250                case 1: // Einzelwert 
    160                         $sql.="WHERE gemeinde=".$gemeinde." "; 
    161                         break; 
     251                        $sql.="WHERE gemeinde=".$gemeinde." "; break; 
    162252                case 2: // Liste 
    163                         $sql.="WHERE gemeinde in (".$gemeinde.") "; 
    164                         break; 
    165                 default: // kein Filter 
    166                         break; 
     253                        $sql.="WHERE gemeinde in (".$gemeinde.") "; break; 
     254                default: break; 
    167255        } 
    168256        $sql.=" ORDER BY gemeindename LIMIT $1 ;"; 
     
    171259        if (!$res) { 
    172260                echo "\n<p class='err'>Fehler bei Gemeinde</p>"; 
    173                 if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
     261                #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
    174262                return 0; 
    175263        } 
    176264        $cnt = 0; 
    177265        while($row = pg_fetch_array($res)) { 
     266                $gnr=$row["gemeinde"]; 
    178267                $gemeindename=$row["gemeindename"]; 
    179                 $stadt=htmlentities($gemeindename, ENT_QUOTES, "UTF-8"); 
    180                 $bez=urlencode($gemeindename);  // Uebergeben an ListGmkgInGemeinde 
    181                 $gnr=$row["gemeinde"]; 
    182                 echo "\n<div class='gm' title='Gemeinde'>"; 
    183                         echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>"; 
    184                         echo " Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gm=".$gnr."&amp;bez=".$bez."'>";                 
    185                         echo  " ".$stadt."</a> (".$gnr.")"; 
    186                 echo "\n</div>"; 
     268                zeile_gemeinde($gnr, $gemeindename); 
    187269                $cnt++; 
    188270        } 
    189         if($cnt == 0){  
     271        // Foot 
     272        if($cnt == 0) {  
    190273                echo "\n<p class='anz'>Keine Gemeinde.</p>"; 
    191274        } elseif($cnt >= $linelimit) { 
    192275                echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Gemeinden ... und weitere</p>"; 
    193                 // +++ BlÀttern ? 
    194276        } elseif($cnt == 1) { // Eindeutig! 
    195277                return $gnr;  
     
    197279                echo "\n<p class='anz'>".$cnt." Gemeinden</p>"; 
    198280        } 
    199         return 0; 
    200 } 
    201  
    202 function ListGmkgInGemeinde($gkey) { 
    203 // Die (gefuellten) Gemarkungen zu einem Gemeinde-Key (aus Link) listen 
    204         global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter, $bez; 
     281        return; 
     282} 
     283 
     284function ListGmkgInGemeinde($gkey, $bez) { 
     285        // Die Gemarkungen zu einem Gemeinde-Key (aus Link) listen 
     286        global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter; 
    205287        $linelimit=70; 
    206         $sql ="SELECT gemarkung, gemarkungsname FROM pp_gemarkung "; 
    207    $sql.="WHERE gemeinde= $1 ORDER BY gemarkungsname LIMIT $2 ;"; 
     288 
     289        // Head 
     290        zeile_gemeinde($gkey, $bez); 
     291 
     292        // Body 
     293        $sql ="SELECT gemarkung, gemarkungsname FROM pp_gemarkung WHERE gemeinde= $1 ORDER BY gemarkungsname LIMIT $2 ;"; 
    208294        $res=pg_prepare("", $sql); 
    209295        $res=pg_execute("", array($gkey, $linelimit)); 
    210296        if (!$res) { 
    211297                echo "\n<p class='err'>Fehler bei Gemarkungen</p>"; 
    212                 if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
    213                 return 0; 
    214         } 
    215         // Hierarchie Dokumentieren, Gemeinde-Name? 
    216         echo "\n<div class='gm' title='Gemeinde'>"; 
    217                 echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>";     
    218                 echo  " Gem. ".$bez." (".$gkey.")"; // .urldecode($bez). ?? 
    219         echo "\n</div>"; 
     298                return 1; 
     299        } 
    220300        $cnt = 0; 
    221301        while($row = pg_fetch_array($res)) { 
    222                 $gnam=htmlentities($row["gemarkungsname"], ENT_QUOTES, "UTF-8"); 
    223302                $gnr=$row["gemarkung"]; 
    224                 echo "\n<div class='gk' title='Gemarkung'>"; 
    225                         echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 
    226                         echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$gnr."'>";               
    227                         echo  " ".$gnam."</a> (".$gnr.")"; 
    228                 echo "\n</div>"; 
     303                $gnam=$row["gemarkungsname"]; 
     304                zeile_gemarkung($gnr, $gnam, ""); 
    229305                $cnt++; 
    230306        } 
    231         if($cnt == 0){  
    232                 echo "\n<p class='anz'>Keine Gemarkung.</p>"; 
    233         } elseif($cnt >= $linelimit) { 
    234                 echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Gemarkungen ... und weitere</p>"; 
    235                 // +++ BlÀttern ? 
    236         } elseif($cnt == 1) { // Eindeutig! 
    237                 return $gnr;  
    238         } else { 
    239                 echo "\n<p class='anz'>".$cnt." Gemarkungen</p>"; 
    240         } 
    241         return 0; 
    242 } 
    243  
    244 function SuchGmkgName() { 
    245 // Gemarkung suchen nach Name(-nsanfang) 
    246         global $con, $gkz, $gemeinde, $epsg, $debug, $fskennz, $gfilter; 
    247         $linelimit=120; 
    248         if(preg_match("/\*/",$fskennz)){ 
    249                 $match = trim(preg_replace("/\*/i","%", strtoupper($fskennz))); 
    250         } else { 
    251                 $match = trim($fskennz)."%"; 
    252         }        
    253         $sql ="SELECT g.gemeinde, g.gemarkung, g.gemarkungsname "; 
    254         If ($gfilter == 0 OR $gfilter == 2) { // Stadt anzeigen 
    255                 $sql.=", s.gemeindename FROM pp_gemarkung g JOIN pp_gemeinde s ON g.gemeinde = s.gemeinde "; 
    256         } else { 
    257                 $sql.="FROM pp_gemarkung g "; 
    258         } 
    259         $sql.="WHERE g.gemarkungsname ILIKE $1 "; 
    260         switch ($gfilter) { 
    261                 case 1: // Einzelwert 
    262                         $sql.="AND g.gemeinde = ".$gemeinde." "; 
    263                         break; 
    264                 case 2: // Liste 
    265                         $sql.="AND g.gemeinde in (".$gemeinde.") "; 
    266                         break; 
    267                 default: // kein Filter 
    268                         break; 
    269         } 
    270         $sql.=" ORDER BY g.gemarkungsname LIMIT $2 ;"; 
    271         $v=array($match, $linelimit); 
    272         $res=pg_prepare("", $sql); 
    273         $res=pg_execute("", $v); 
    274         if (!$res) { 
    275                 echo "\n<p class='err'>Fehler bei Gemarkung</p>"; 
    276                 if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
    277                 return 0; 
    278         } 
    279         $cnt = 0; 
    280         while($row = pg_fetch_array($res)) { 
    281                 $gnam=htmlentities($row["gemarkungsname"], ENT_QUOTES, "UTF-8"); 
    282                 $gnr=$row["gemarkung"]; 
    283  
    284                 echo "\n<div class='gk' title='Gemarkung'>"; 
    285                         echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 
    286                         echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$gnr."'>";               
    287                         echo  " ".$gnam."</a> (".$gnr.")"; 
    288                         switch ($gfilter) { 
    289                                 case 0: // Kein Filter 
    290                                         echo " ".$row["gemeindename"]; 
    291                                         break; 
    292                                 case 2: // Liste 
    293                                         echo " ".$row["gemeindename"]; 
    294                                         break; 
    295                                 default: // Einzelwert 
    296                                         break; 
    297                         } 
    298                 echo "\n</div>"; 
    299                 $cnt++; 
    300         } 
     307        // Foot 
    301308        if($cnt == 0){  
    302309                echo "\n<p class='anz'>Keine Gemarkung.</p>"; 
     
    308315                echo "\n<p class='anz'>".$cnt." Gemarkungen</p>"; 
    309316        } 
    310         return 0; 
     317        return; 
     318} 
     319 
     320function SuchGmkgName() { 
     321        // Gemarkung suchen nach Name(-nsanfang) 
     322        global $con, $gkz, $gemeinde, $epsg, $debug, $fskennz, $gfilter; 
     323        $linelimit=120; 
     324        if(preg_match("/\*/",$fskennz)){ 
     325                $match = trim(preg_replace("/\*/i","%", strtoupper($fskennz))); 
     326        } else { 
     327                $match = trim($fskennz)."%"; 
     328        }        
     329        $sql ="SELECT g.gemeinde, g.gemarkung, g.gemarkungsname, s.gemeindename "; 
     330        $sql.="FROM pp_gemarkung g JOIN pp_gemeinde s ON g.gemeinde = s.gemeinde "; 
     331        $sql.="WHERE g.gemarkungsname ILIKE $1 "; 
     332        switch ($gfilter) { 
     333                case 1: // Einzelwert 
     334                        $sql.="AND g.gemeinde = ".$gemeinde." "; break; 
     335                case 2: // Liste 
     336                        $sql.="AND g.gemeinde in (".$gemeinde.") "; break; 
     337        } 
     338        $sql.=" ORDER BY s.gemeindename, g.gemarkungsname LIMIT $2 ;"; 
     339        $v=array($match, $linelimit); 
     340        $res=pg_prepare("", $sql); 
     341        $res=pg_execute("", $v); 
     342        if (!$res) { 
     343                echo "\n<p class='err'>Fehler bei Gemarkung</p>"; 
     344                return; 
     345        } 
     346        $cnt = 0; 
     347        $gwgem=""; 
     348        while($row = pg_fetch_array($res)) { 
     349                $gemeindename=$row["gemeindename"]; 
     350                if ($gwgem != $gemeindename) { // Gruppierung Gemeinde 
     351                        $gwgem = $gemeindename; 
     352                        $skey=$row["gemeinde"]; 
     353                        zeile_gemeinde($skey, $gemeindename); 
     354                } 
     355                $gnam=$row["gemarkungsname"]; 
     356                $gnr=$row["gemarkung"]; 
     357                zeile_gemarkung($gnr, $gnam, $gemeindename); 
     358                $cnt++; 
     359        } 
     360        // Foot 
     361        if($cnt == 0){  
     362                echo "\n<p class='anz'>Keine Gemarkung.</p>"; 
     363        } elseif($cnt >= $linelimit) { 
     364                echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Gemarkungen ... und weitere</p>"; 
     365        } elseif($cnt == 1) { // Eindeutig! 
     366                return $gnr;  
     367        } else { 
     368                echo "\n<p class='anz'>".$cnt." Gemarkungen</p>"; 
     369        } 
     370        return; 
     371} 
     372 
     373function gg_head($gkgnr) { 
     374        // Übergeordnete Zeilen (Head) fÃŒr Gemeinde und Gemarkung ausgeben 
     375        // Parameter = Gemarkungsnummer 
     376        $sqlh ="SELECT g.gemarkungsname, s.gemeinde, s.gemeindename FROM pp_gemarkung g "; 
     377        $sqlh.="JOIN pp_gemeinde s ON g.gemeinde=s.gemeinde AND g.land=s.land "; 
     378        $sqlh.="WHERE g.gemarkung = $1 ;"; 
     379        $v=array($gkgnr); 
     380        $resh=pg_prepare("", $sqlh); 
     381        $resh=pg_execute("", $v); 
     382        if (!$resh) {echo "\n<p class='err'>Fehler bei Gemeinde und Gemarkung.</p>";} 
     383        $rowh = pg_fetch_array($resh); 
     384        $gmkg=$rowh["gemarkungsname"]; 
     385        $skey=$rowh["gemeinde"]; 
     386        $snam=$rowh["gemeindename"]; 
     387        zeile_gemeinde($skey, $snam); 
     388        zeile_gemarkung($gkgnr, $gmkg); 
     389        return; 
    311390} 
    312391 
    313392function EineGemarkung($AuchGemkZeile) { 
    314 // Kennzeichen bestehend nur aus Gemarkung-SchlÃŒssel wurde eingegeben 
     393        // Kennzeichen bestehend nur aus Gemarkung-SchlÃŒssel wurde eingegeben 
     394        // Parameter = $zgemkg 
    315395        global $con, $gkz, $gemeinde, $epsg, $debug, $zgemkg; 
    316         $linelimit=120; // max. Fluren je Gemarkung 
    317         if ($AuchGemkZeile) { 
    318                 $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;"; // WHERE f.land= ? 
    319                 $v=array($zgemkg); 
    320                 $res=pg_prepare("", $sql); 
    321                 $res=pg_execute("", $v); 
    322                 if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkung.</p>";} 
    323                 $zgmk=0; 
    324                 while($row = pg_fetch_array($res)) {     
    325                         $gmkg=$row["bezeichnung"]; 
    326                         $zgmk++; 
    327                 } 
    328                 if ($zgmk == 0) { 
    329                         echo "\n<div class='gk' title='Gemarkung'>"; 
    330                                 echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 
    331                                         echo  " Gemarkung ".$zgemkg." ist unbekannt.</p>"; 
    332                         echo "\n</div>"; 
    333                         return; 
    334                 } 
    335                 // > 1 auch möglich? 
    336                 echo "\n<div class='gk' title='Gemarkung'>"; 
    337                         echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'> "; 
    338                         echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."'>";            
    339                         echo $gmkg."</a>  (".$zgemkg.")"; // in Gemeinde? 
    340                 echo "\n</div>"; 
    341         } 
     396        $linelimit=120; // max.Fluren/Gemkg 
     397 
     398        // Head 
     399        if ($AuchGemkZeile) {gg_head($zgemkg);} 
     400        // Body 
    342401        $sql ="SELECT gemarkungsteilflur AS flur FROM ax_gemarkungsteilflur f "; 
    343         $sql.="WHERE gemarkung= $1 ORDER BY gemarkungsteilflur LIMIT $2 ;";     // WHERE f.land= ? 
     402        $sql.="WHERE gemarkung= $1 ORDER BY gemarkungsteilflur LIMIT $2 ;"; //WHERE f.land=? 
    344403        $v=array($zgemkg, $linelimit); 
    345404        $res=pg_prepare("", $sql); 
     
    348407        $zfl=0; 
    349408        while($row = pg_fetch_array($res)) {     
    350                 $flur=$row["flur"]; 
    351                 echo "\n<div class='fl' title='Flur'>"; 
    352                         echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'>&nbsp;"; 
    353                         echo "Flur<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."-".$flur."'>&nbsp;".$flur."&nbsp;</a>"; 
    354                 echo "\n</div>"; 
     409                $zflur=$row["flur"]; 
     410                zeile_flur($zgemkg, $zflur, false); 
    355411                $zfl++; 
    356412        } 
     413        // Foot 
    357414        if($zfl == 0) {  
    358415                echo "\n<p class='anz'>Keine Flur.</p>"; 
     
    366423 
    367424function EineFlur() { 
    368 // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben, dazu aktuelle FlurstÃŒcke suchen 
    369         global $con, $gkz, $gemeinde, $epsg, $debug, $scalefs, $auskpath, $zgemkg, $zflur; 
     425        // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben, dazu aktuelle FlurstÃŒcke suchen 
     426        global $con, $gkz, $gemeinde, $epsg, $debug, $zgemkg, $zflur; 
    370427        $linelimit=600; // Wie groß kann eine Flur sein? 
    371         gemkg_zeile($zgemkg); 
    372         flur_zeile($zgemkg, $zflur); 
    373  
     428 
     429        // Head 
     430        gg_head($zgemkg); 
     431        zeile_flur($zgemkg, $zflur, true); 
     432 
     433        // Body 
    374434        $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 
    375435        if($epsg == "25832") { // Transform nicht notwendig 
     
    381441        } 
    382442   $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 "; 
    383         $sql.="ORDER BY f.zaehler, f.nenner LIMIT $3 ;"; // WHERE f.land= ? 
     443        $sql.="ORDER BY f.zaehler, f.nenner LIMIT $3 ;"; // WHERE f.land=? 
    384444        $v=array($zgemkg, $zflur, $linelimit); 
    385445        $res=pg_prepare("", $sql); 
     
    394454                $x=$row["x"]; 
    395455                $y=$row["y"]; 
    396                 echo "\n<div class='fs'>"; 
    397                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    398                                 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
    399                         echo "\n\t</a> ";                        
    400                         echo "\n\tFlst. <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    401                                         echo "javascript:"; 
    402                                         echo "transtitle(\"auf Flurst&uuml;ck positioniert\"); "; 
    403                                         echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    404                                         echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    405                                 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
    406                                 echo "onmouseout='parent.parent.hideHighlight()'>&nbsp;".$fskenn."&nbsp;</a>"; 
    407                 echo "\n</div>"; 
     456                zeile_flurstueck ($fs_gml, $fskenn, $x, $y, "", ""); 
    408457                $zfs++; 
    409458        } 
    410         if($zfs == 0) {  
     459        if($zfs == 0) { 
    411460                echo "\n<p class='anz'>Kein Flurst&uuml;ck.</p>"; 
    412461        } elseif($zfs >= $linelimit) { 
     
    419468 
    420469function HistFlur() { 
    421 // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben 
    422 // Die Flur nach historischen FlurstÃŒcken durchsuchen 
     470        // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben 
     471        // Die Flur nach historischen FlurstÃŒcken durchsuchen 
    423472        global $con, $gkz, $gemeinde, $epsg, $debug, $scalefs, $auskpath, $land, $zgemkg, $zflur; 
    424473        $linelimit=500; 
    425474 
    426         gemkg_zeile($zgemkg); 
    427         echo "\n<div class='fl' title='Flur'>"; 
    428                 echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur-Historie'> "; 
    429                 $url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."-".$zflur; 
    430                 echo "Historie: Flur<a title='Aktuelle Flurst&uuml;cke suchen' href='".$url."'> ".$zflur." </a>";  
    431         echo "\n</div>"; 
    432  
     475        // Head  
     476        gg_head($zgemkg); 
     477        zeile_flur($zgemkg, $zflur, true); 
     478 
     479        // Body 
    433480        $whcl.="WHERE flurstueckskennzeichen like $1 "; 
    434481        $sql ="SELECT 'h' AS ftyp, gml_id, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 
     
    441488        if (!$res) {echo "\n<p class='err'>Fehler bei Historie Flur.</p>";} 
    442489        $zfs=0; 
    443  
    444         // Konst. Teil d.URL (Flur), FS anhÀngen 
    445         $flurl=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;hist=j&amp;fskennz=".$zgemkg."-".$zflur."-"; 
    446  
    447490        while($row = pg_fetch_array($res)) {     
    448491                $ftyp=$row["ftyp"]; 
     
    450493                $fskenn=$row["zaehler"]; 
    451494                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 
    452                 if ($ftyp == "h") { 
    453                         $ico="Flurstueck_Historisch_Lnk.ico"; 
    454                         $titl="Historisches Flurst&uuml;ck";             
    455                 } else { 
    456                         $ico="Flurstueck_Historisch_oR_Lnk.ico"; 
    457                         $titl="Historisches Flurst&uuml;ck ohne Raumbezug"; 
    458                 }  // h: Karte Pos.? 
    459                 echo "\n<div class='hi' title='".$titl."'>"; // Zeile 
    460                         // Icon -> Bauchauskunft 
    461                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    462                                 echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='Hist'>"; 
    463                         echo "\n\t</a> ";                
    464                         // Kennzeichen -> weiter in die Historie hinein 
    465                         echo "\n\tFlst. <a href='".$flurl.$fskenn."'>".$fskenn."</a>";                                   
    466                 echo "\n</div>"; 
     495                zeile_hist_fs($fs_gml, $fskenn, $ftyp, $zgemkg, $zflur); 
    467496                $zfs++; 
    468497        } 
     498 
     499        // Foot 
    469500        if($zfs == 0) {  
    470501                echo "\n<p class='anz'>Kein historisches Flurst&uuml;ck.</p>"; 
     
    479510 
    480511function EinFlurstueck() { 
    481 // FlurstÃŒckskennzeichen wurde komplett bis zum Zaehler eingegeben 
    482 // Sonderfall: bei Bruchnummer, mehrere Nenner zum Zaehler 
    483         global $con, $gkz, $debug, $scalefs, $epsg, $auskpath, $fskennz, $zgemkg, $zflur, $zzaehler, $znenner; 
    484  
    485         gemkg_zeile($zgemkg); 
    486         flur_zeile($zgemkg, $zflur); 
    487  
     512        // FlurstÃŒckskennzeichen wurde komplett bis zum Zaehler eingegeben 
     513        // Sonderfall: bei Bruchnummer, mehrere Nenner zum Zaehler 
     514        global $con, $gkz, $debug, $epsg, $gemeinde, $fskennz, $zgemkg, $zflur, $zzaehler, $znenner; 
     515 
     516        // Head 
     517        gg_head($zgemkg); 
     518        zeile_flur($zgemkg, $zflur, true); 
     519 
     520        // Body 
    488521        $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; 
    489522        if($epsg == "25832") { // Transform nicht notwendig 
    490523                $sql.="x(st_Centroid(f.wkb_geometry)) AS x, "; 
    491524                $sql.="y(st_Centroid(f.wkb_geometry)) AS y "; 
    492         } 
    493         else {   
     525        } else {   
    494526                $sql.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 
    495527                $sql.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y ";                   
     
    508540                $flur=$row["flurnummer"]; 
    509541                $fskenn=$row["zaehler"]; 
    510                 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 
    511                 $x=$row["x"]; 
    512                 $y=$row["y"]; 
    513                 echo "\n<div class='fs'>"; 
    514                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    515                                 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
    516                         echo "\n\t</a> ";                
    517                         echo "\n\tFlst. <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    518                                         echo "javascript:"; 
    519                                         echo "transtitle(\"auf Flurst&uuml;ck positioniert\"); "; 
    520                                         echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    521                                         echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    522                                 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
    523                                 echo "onmouseout='parent.parent.hideHighlight()'>"; 
    524                         echo $fskenn."</a>"; 
    525                 echo "\n</div>"; 
     542                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} 
     543                zeile_flurstueck($fs_gml, $fskenn, $row["x"], $row["y"], "", ""); 
    526544                $zfs++; 
    527545        } 
     546        // Foot 
    528547        if($zfs == 0) { 
    529                 echo "\n<p class='err'>Kein aktuelles Flurst&uuml;ck.</p>"; 
    530                 // Soll in der Historie weiter gesucht werden? 
    531                 echo "\n<div class='hi' title='Historie'>"; 
     548                echo "\n<p class='anz'>Kein aktuelles Flurst&uuml;ck.</p>"; 
     549                echo "\n<div class='hi' title='in Historie suchen'>"; 
    532550                        echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Historisch.ico' width='16' height='16' alt='Historisches Flurst&uuml;ck'>&nbsp;"; 
    533                         echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$fskennz."&amp;hist=j'>in Historie suchen</a>"; 
     551                        echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$fskennz."&amp;hist=j'>"; 
     552                        echo $zgemkg."-".$zflur."-".$zzaehler; 
     553                        if ($znenner != "") {echo "/".$znenner;} 
     554                        echo " h - suchen</a>"; 
    534555                echo "\n</div>";                 
    535556        } 
     
    538559 
    539560function HistFlurstueck() { 
    540         // Ein Nachfolger-FS-Kennzeichen soll recherchiert werden. 
    541         // Es ist unbekannt, ob dies aktuell ist oder auch schon historisch. 
    542         global $con, $gkz, $debug, $scalefs, $epsg, $auskpath, $land, $zgemkg, $zflur, $zzaehler, $znenner; 
    543  
    544         gemkg_zeile($zgemkg); 
    545         flur_zeile($zgemkg, $zflur); 
    546  
    547         // Suche ueber das Flurstueckskennzeichen, gml ist meist unbekannt 
     561        // Die Nachfolger-FS-Kennzeichen sollen recherchiert werden. 
     562        global $debug, $land, $zgemkg, $zflur, $zzaehler, $znenner; 
     563 
     564        // Head 
     565        gg_head($zgemkg); 
     566        zeile_flur($zgemkg, $zflur, true); 
     567 
     568        // Body 
     569        // Suche ueber das Flurstueckskennzeichen, gml unbekannt 
     570        $fldlist=" AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, "; 
    548571        $whcl.="WHERE flurstueckskennzeichen= $1 "; 
    549         $sql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, null as nachf FROM ax_flurstueck ".$whcl; 
    550         $sql.="UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 
    551         $sql.="UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl; 
    552  
     572        $sql ="SELECT 'a'".$fldlist."null as nachf FROM ax_flurstueck ".$whcl; 
     573        $sql.="UNION SELECT 'h'".$fldlist."nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 
     574        $sql.="UNION SELECT 'o'".$fldlist."nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl; 
    553575        $fskzwhere =$land.$zgemkg; // Flurst-Kennz. f. Where 
    554576        $fskzwhere.=str_pad($zflur, 3, "0", $STR_PAD_LEFT); 
     
    556578        if ($znenner == "") {$fskzwhere.="______";} 
    557579        else {$fskzwhere.=str_pad($znenner, 4, "0", $STR_PAD_LEFT)."__";} 
    558  
    559580        $v=array($fskzwhere); 
     581 
    560582        $res=pg_prepare("", $sql); 
    561583        $res=pg_execute("", $v); 
    562584        if (!$res) {echo "\n<p class='err'>Fehler bei hist. Flurst&uuml;ck.</p>";} 
    563585        $zfs=0; 
     586 
    564587        while($row = pg_fetch_array($res)) { 
    565588                $ftyp=$row["ftyp"]; 
     
    569592                $fskenn=$row["zaehler"]; 
    570593                $nachf=$row["nachf"]; 
    571                 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 
    572  
    573                 if ($ftyp == "a") { // aktuelles FS gefunden, Koordinate holen 
    574  
    575                         // BEGINN +++ als function ? 
    576                         $sqlk ="SELECT "; 
    577                         if($epsg == "25832") { // Transform nicht notwendig 
    578                                 $sqlk.="x(st_Centroid(wkb_geometry)) AS x, "; 
    579                                 $sqlk.="y(st_Centroid(wkb_geometry)) AS y "; 
    580                         } else {   
    581                                 $sqlk.="x(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS x, "; 
    582                                 $sqlk.="y(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS y ";                    
    583                         } 
    584                    $sqlk.="FROM ax_flurstueck WHERE gml_id= $1 "; 
    585                         $v=array($fs_gml); 
    586                         $resk=pg_prepare("", $sqlk); 
    587                         $resk=pg_execute("", $v); 
    588                         if (!$resk) {echo "\n<p class='err'>Fehler bei Koordinate.</p>";} 
    589                         $zfsk=0; 
    590                         while($rowk = pg_fetch_array($resk)) {   
    591                                 $x=$rowk["x"]; 
    592                                 $y=$rowk["y"]; 
    593                                 $zfsk++; 
    594                         } 
    595                         if ($zfsk == 0) {echo "\n<p class='err'>Kein Treffer bei Koordinate.</p>";} 
    596                         // ENDE +++ als function ? 
    597  
    598                         echo "\n<p>aktueller Nachfolger:</p>";   
    599                         echo "\n<div class='fs' title='Aktuelles Nachfolger-Flurst&uuml;ck'>"; // Zeile 
    600  
    601                                 // Icon -> Nachweis FS-Hist. in Buchauskunft 
    602                                 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    603                                         echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
    604                                 echo "\n\t</a> ";        
    605  
    606                                 // Kennzeichen -> Karte positionieren 
    607                                 echo "\n\tFlst. <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    608                                                 echo "javascript:"; 
    609                                                 echo "transtitle(\"auf H-Flurst&uuml;ck positioniert\"); "; 
    610                                                 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    611                                                 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    612                                         echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
    613                                         echo "onmouseout='parent.parent.hideHighlight()'>"; 
    614                         //      echo $flur."-".$fskenn."</a>"; 
    615                                 echo $fskenn."</a>"; 
    616  
    617                         echo "\n</div>"; 
    618  
     594                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} 
     595                if ($ftyp == "a") { // als aktuelles FS gefunden, das "h" war also unnötig! 
     596                        $koor=flurstueckskoordinaten($fs_gml); 
     597                        echo "\n<p>Flurst&uuml;ck ".$fskenn." ist aktuell, nicht historisch</p>";        
     598                        zeile_flurstueck ($fs_gml, $fskenn, $koor["x"], $koor["y"], $gknr, $flur); 
    619599                } else { // Historisches FS gefunden (h oder o) 
    620                 //      echo "\n<p>Historisches Flurst&uuml;ck:</p>"; 
    621  
    622                         if ($ftyp == "h") { 
    623                                 $ico="Flurstueck_Historisch_Lnk.ico"; 
    624                                 $titl="Historisches Flurst&uuml;ck"; 
    625                         } else { 
    626                                 $ico="Flurstueck_Historisch_oR_Lnk.ico"; 
    627                                 $titl="Historisches Flurst&uuml;ck ohne Raumbezug"; 
    628                         }  // h: Karte Pos.? 
    629                         echo "\n<div class='hi' title='".$titl."'>"; 
    630                                 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    631                                         echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='Hist'>"; 
    632                                 echo "\n\t</a> Historisches Flst. ".$fskenn."</a>"; 
    633                         echo "\n</div>"; 
    634  
     600                        zeile_hist_fs($fs_gml, $fskenn, $ftyp, $gknr, $flur); 
    635601                        if ($nachf == "") { 
    636602                                echo "\n<p class='err'>keine Nachfolger</p>";    
    637603                        } else { 
    638604                                echo "\n<p>Nachfolger-Flurst&uuml;cke:</p>"; 
    639                                 // Die direkten Nachfolger ermitteln 
     605                                // Direkte Nachfolger ermitteln. In $nachf steht ein Array von FS-Kennzeichen. 
     606                                // Von den einzelnen Kennz. ist unbekannt, ob diese noch aktuell sind  
     607                                // oder auch schon wieder historisch. 
    640608                                // Nachfolger in DB suchen um den Status aktuell/historisch zu ermitteln 
    641609                                $stri=trim($nachf, "{}"); 
    642610                                $stri="'".str_replace(",", "','", $stri)."'"; 
    643                         //      $whcln.="WHERE flurstueckskennzeichen IN ( $1 ) "; 
    644611                                $whcln.="WHERE flurstueckskennzeichen IN ( ".$stri." ) "; 
    645                                 $sqln ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_flurstueck ".$whcln; 
    646                                 $sqln.="UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueck ".$whcln; 
    647                                 $sqln.="UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueckohneraumbezug ".$whcln; 
    648                 //              $v=array($stri); 
     612                                $nasql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_flurstueck ".$whcln; 
     613                                $nasql.="UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueck ".$whcln; 
     614                                $nasql.="UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueckohneraumbezug ".$whcln; 
    649615                                $v=array(); 
    650                                 $resn=pg_prepare("", $sqln); 
    651                                 $resn=pg_execute("", $v); 
    652                                 if (!$resn) {echo "\n<p class='err'>Fehler bei Nachfolger.</p>";} 
     616                                $nares=pg_prepare("", $nasql); 
     617                                $nares=pg_execute("", $v); 
     618                                if (!$nares) {echo "\n<p class='err'>Fehler bei Nachfolger.</p>";} 
    653619                                $zfsn=0; 
    654                                 while($rown = pg_fetch_array($resn)) { 
    655                                         $ftypn=$rown["ftyp"]; 
    656                                         $na_gml=$rown["gml_id"]; 
    657                                         $gknrn=$rown["gemarkungsnummer"]; 
    658                                         $flurn=$rown["flurnummer"]; 
    659                                         $fskennn=$rown["zaehler"]; 
    660                                         if ($rown["nenner"] != "") {$fskennn.="/".$rown["nenner"];} 
    661  
    662                                         switch ($ftypn) { 
    663                                         case "a": 
    664                                                 $ico="Flurstueck_Link.ico"; 
    665                                                 $titl="Aktuelles Flurst&uuml;ck"; 
    666                                                 $hisparm=""; 
    667                                                 $auskprog="alkisfsnw"; 
    668                                                 // ++ Koordinaten holen? siehe oben "als function" 
    669                                         break; 
    670                                         case "h": 
    671                                                 $ico="Flurstueck_Historisch_Lnk.ico"; 
    672                                                 $titl="Historisches Flurst&uuml;ck"; 
    673                                                 $hisparm="&amp;hist=j"; 
    674                                                 $auskprog="alkisfshist"; 
    675                                         break; 
    676                                         case "o": 
    677                                                 $ico="Flurstueck_Historisch_oR_Lnk.ico"; 
    678                                                 $titl="Historisches Flurst&uuml;ck ohne Raumbezug"; 
    679                                                 $hisparm="&amp;hist=j"; 
    680                                                 $auskprog="alkisfshist"; 
    681                                         break; 
    682                                         } 
    683                                         $fs=$gknrn."-".$flurn."-".$fskennn; 
    684                                         echo "\n<div class='hn' title='Nachfolger: ".$titl."'>";                         
    685                                                 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath.$auskprog.".php?gkz=".$gkz."&amp;gmlid=".$na_gml."\")'>"; 
    686                                                         echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='FS'>"; 
    687                                                 echo "\n\t</a> ";                
    688                                                 echo "Flst. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$fs.$hisparm."'>".$fskennn."</a>";                                     
    689                                         echo "\n</div>"; 
    690  
     620                                while($narow = pg_fetch_array($nares)) { 
     621                                        $naftyp=$narow["ftyp"]; 
     622                                        $nagml=$narow["gml_id"]; 
     623                                        $nagknr=$narow["gemarkungsnummer"]; 
     624                                        $naflur=$narow["flurnummer"]; 
     625                                        $nafskenn=$narow["zaehler"]; 
     626                                        if ($narow["nenner"] != "") {$nafskenn.="/".$narow["nenner"];} 
     627                                        zeile_nachf_fs ($nagml, $nagknr, $naflur, $nafskenn, $naftyp); 
    691628                                        $zfsn++; 
    692                                         // Kontrollieren: Wurden auch so viele FS in DB gefunden, wie im Array "Where in()" standen? 
    693629                                } 
    694630                                if ($zfsn == 0) { 
    695                                         echo "\n<p class='err'>keine Nachfolger gefunden</p>"; 
    696                                         if ($debug > 1) {echo "\n<p class='dbg'>SQL=<br>".$sqln."<br>Liste=<br> ".$stri."</p>";} 
    697                                 }                
     631                                        echo "\n<p class='anz'>keine Nachfolger gefunden</p>"; 
     632                                } else { // if($zfsn > 1) 
     633                                        echo "\n<p class='anz'>".$zfsn." Nachfolger-Flurst&uuml;cke</p>"; 
     634                                } 
    698635                        } 
    699636                } 
    700637                $zfs++; 
    701638        } 
     639        // Foot 
    702640        if($zfs == 0) { 
    703                 echo "\n<p class='err'>Kein historisches Flurst&uuml;ck.</p>"; 
    704                 #if ($debug > 2) {echo "\n<p class='dbg'>".$sql."</p>";} 
     641                echo "\n<p class='anz'>Kein historisches Flurst&uuml;ck.</p>"; 
     642                #if ($debug > 2) {echo  "\n<p class='dbg'> SQL= ".$sql."\n<br> $1 = FS-Kennz = '".$fskzwhere."'</p>";} 
    705643        } 
    706644        return; 
     
    711649// =========== 
    712650if(isset($epsg)) { 
    713         //if ($debug >= 2) {echo "<p class='dbg'>aktueller EPSG='".$epsg."'</p>";} // aus MB 
    714651        $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]);    
    715652} else { 
    716         if ($debug >= 1) {echo "\n<p class='dbg'>kein EPSG gesetzt</p>";}        
    717         $epsg=$gui_epsg; // aus Conf 
    718 } 
    719 //if ($debug >= 2) {echo "<p class='dbg'>Filter Gemeinde = ".$gemeinde."</p>";} 
     653        #if ($debug >= 1) {echo "\n<p class='dbg'>kein EPSG gesetzt</p>";}       
     654        $epsg=$gui_epsg; // Conf 
     655} 
    720656if ($gemeinde == "") { 
    721         $gfilter = 0; // ungefiltert 
     657        $gfilter = 0; 
    722658} elseif(strpos($gemeinde, ",") === false) { 
    723659        $gfilter = 1; // Einzelwert 
     
    727663if ($hist == "j") {$phist = true;} else {$phist = false;} 
    728664 
    729 if(isset($gm)) { // Self-Link aus Gemeinde-Liste 
     665if($gm != "") { // Self-Link aus Gemeinde-Liste 
    730666        $trans="Gemarkungen zur Gemeinde"; 
    731         $gnr=ListGmkgInGemeinde($gm); 
     667        $gnr=ListGmkgInGemeinde($gm, $bez); 
    732668        if ($gnr > 0) { 
    733669                $zgemkg=$gnr; 
     
    736672} else { // Die Formular-Eingabe interpretieren (kann auch ein Link sein) 
    737673        $retzer=ZerlegungFsKennz($fskennz); 
    738         #if ($debug > 1) {echo "<p class='dbg'>Return Zerlegung (case) = '".$retzer."'</p>";}    
    739674        switch ($retzer) { 
    740675        case 0: // leere Eingabe 
    741                 if ($gfilter == 1) { // Die GUI ist bereits auf eine Gemeinde gefiltert 
     676                if ($gfilter == 1) { // Die GUI ist bereits auf EINE Gemeinde gefiltert 
    742677                        $trans="Liste der Gemarkungen"; 
    743678                        SuchGmkgName(); 
     
    746681                        ListGemeinden(); 
    747682                } 
    748         break; 
     683                break; 
    749684        case 1: 
    750                 #if ($debug >= 2) {echo "<p class='dbg'>Gemarkungsname ".$zgemkg."</p>";} 
    751685                $trans="Suche Gemarkungsname"; 
    752686                $gnr=SuchGmkgName(); 
     
    756690                        EineGemarkung(false); 
    757691                } 
    758         break; 
     692                break; 
    759693        case 2: 
    760                 #if ($debug >= 2) {echo "<p class='dbg'>Gemarkungsnummer ".$zgemkg."</p>";} 
    761694                $trans="Fluren in Gemarkung"; 
    762695                EineGemarkung(true); 
    763         break; 
     696                break; 
    764697        case 3: 
    765                 #if ($debug >= 2) {echo "<p class='dbg'>Gemarkung ".$zgemkg." Flur ".$zflur."</p>";} 
    766698                if ($phist)     { 
    767699                        $trans="historische Flurst. in Flur"; 
     
    771703                        EineFlur(); 
    772704                } 
    773         break; 
     705                break; 
    774706        case 4: 
    775                 #if ($debug >= 2) {echo "<p class='dbg'>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."</p>";} 
    776707                if ($phist)     { 
    777708                        $trans="historisches Flurst&uuml;ck"; 
     
    781712                        EinFlurstueck(); 
    782713                } 
    783         break; 
     714                break; 
    784715        case 5: 
    785716                if ($phist) { 
     
    789720                        $trans="Flurst&uuml;ck"; 
    790721                        EinFlurstueck(); 
    791                 }                
    792         break; 
     722                }        
     723                break; 
    793724        case 9: 
    794725                $trans="falsche Eingabe"; 
    795726                echo "\n<p class='err'>Bitte ein Flurst&uuml;ckskennzeichen eingegeben, Format 'gggg-fff-zzzz/nnn</p>"; 
    796         break; 
    797         } 
    798 } 
     727                break; 
     728        } 
     729} 
     730 
    799731// Titel im Kopf anzeigen 
    800732echo "\n<script type='text/javascript'>\n\ttranstitle('".$trans."')\n</script>"; 
  • trunk/mapbender/http/nav/alkisnav_grd.php

    r280 r282  
    11<?php 
    22/* Version vom 
    3         2011-10-24      Nach Pos-Klick Highlight erneuern statt hideHighlight 
    4         2011-11-17      Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 
    5         2011-12-14      "window.open(..,width=680" 
    6         2012-01-16      Blattnummer in 2 Varianten suchen 
    7         2012-01-17      Blattnummer ohne Buchstabe in 3 Varianten suchen 
    83        2013-04-16      "import_request_variables" entfÀllt in PHP 5.4 
    94        2013-04-26      Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung" 
     
    127                                        ZurÃŒck-Link, Titel der Transaktion anzeigen. 
    138        2013-04-29      Test mit IE 
     9        2013-05-07  Strukturierung des Programms, redundanten Code in Functions zusammen fassen 
    1410*/ 
    1511$cntget = extract($_GET); 
    16  
    1712include("../../conf/alkisnav_conf.php"); // Konfigurations-Einstellungen 
    1813include("alkisnav_fkt.php"); // Funktionen 
     
    3833                        document.getElementById('transaktiontitle').innerHTML = trans; 
    3934                } 
     35                function formular_belegung(suchMich) { 
     36                        parent.GrdGazetteerFrame.gbkennz.value=suchMich; 
     37                } 
    4038        </script> 
    4139</head> 
    4240<body> 
    4341<a href='javascript:history.back()'> 
    44         <img src="ico/zurueck.ico" width="16" height="16" alt="&lt;&lt;" title="zur&uuml;ck" /> 
     42        <img src="ico/zurueck.ico" width="16" height="16" alt="&lt;&lt;" title="zur&uuml;ck"> 
    4543</a> 
    4644<dfn class='title' id='transaktiontitle'></dfn> 
    4745 
    4846END; 
     47 
     48function suchfeld($suchstring) {        // Suchstring Ausgeben UND das Eingabeformular damit belegen 
     49        $out="<a title='Dies als Suchbegriff setzen' href='javascript:formular_belegung(\"".$suchstring."-\")'>".$suchstring."</a>"; 
     50        return $out; 
     51} 
    4952 
    5053function is_ne_zahl($wert) { 
     
    6972                return 2; // Such Bezirk-NUMMER 
    7073        } else  { // Format von BlattNr pruefen 
    71         //'19'       linksbÃŒndig 
    72         //'000019 '  gefÃŒllt 6 + blank 
    73         //'000019A'  .. mit Zusatzbuchstabe 
    74         //'0300001'  gefÃŒllt 7, bei Blattart 5000 "fiktives Blatt" 
     74        //'19'      linksbÃŒndig 
     75        //'000019 ' gefÃŒllt 6 + blank 
     76        //'000019A' .. mit Zusatzbuchstabe 
     77        //'0300001' gefÃŒllt 7, bei Blattart 5000 "fiktives Blatt" 
    7578                $len=strlen($zblatt); 
    7679                if ($len > 0 AND $len < 8) {             
     
    106109 
    107110function ListAG($liste_ag) { 
    108         // Amtsgerichte (Grundbuch) auflisten, dazu als Filter eine AG-Liste aus conf 
     111        // Amtsgerichte (Grundbuch) auflisten, dazu als Filter eine AG-Liste 
    109112        global $con, $gkz, $gemeinde, $epsg, $debug, $gbkennz; 
    110113        $linelimit=40; 
     
    122125        while($row = pg_fetch_array($res)) { // Loop AG  
    123126                $anr=$row["stelle"]; 
    124                 $ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8");               
    125                 echo "\n<div class='ga' title='Amtsgricht'>"; 
    126                         echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Amtsgericht'> "; 
    127                         echo "AG <a href='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;ag=".$anr."'>";                
    128                                 echo $ag."</a> (".$anr.")"; 
    129                 echo "\n</div>"; 
     127                $ag=$row["ag"];          
     128                zeile_ag ($ag, $anr); 
    130129                $cnt++; 
    131130        } 
    132         if($cnt == 0){ // falsch configuriert! 
     131        // Foot 
     132        if($cnt == 0){ 
    133133                echo "\n<p class='anz'>Kein Amtsgericht aus Liste ".$$liste_ag.".</p>"; 
    134134        } elseif ($cnt >= $linelimit) { 
     
    140140} 
    141141 
    142 function ListGBBez($liste_ag, $mit_ag) { 
    143         // Grundbuch-Bezirke auflisten. 
    144         // +++ auch wenn BlÀtter da sind, kann es eine Sackgasse sein. 
    145         // +++ manchmal haben die BlÀtter keine FlurstÃŒcke. 
     142function ListGBBez($agkey) { 
     143        // Grundbuch-Bezirke zu einem Amtsgericht auflisten. 
     144        // Auch wenn BlÀtter da sind, kann es eine Sackgasse sein.  
     145        // Manchmal haben die BlÀtter keine FlurstÃŒcke im Filter-Bereich 
    146146        global $con, $gkz, $gemeinde, $epsg, $debug, $gbkennz; 
    147         $linelimit=90; 
    148         $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 
     147        $linelimit=100; // Bezirke/AG 
     148        // Head 
     149        ListAG( "'".$agkey."'" ); // hier nur fÃŒr 1 
     150        // Body 
     151        $sql ="SELECT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 
    149152        $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 
    150         $sql.="WHERE a.stelle IN (".$liste_ag.") AND a.stellenart = 1000 "; // Amtsgericht aus Liste 
    151         // Diese Subquery stellt sicher, dass nur Bezirke aufgelistett werden, die auch BlÀtter enthalten: 
     153        $sql.="WHERE a.stelle = $1 AND a.stellenart = 1000 "; 
     154        // Diese Subquery stellt sicher, dass nur Bezirke aufgelistet werden, die auch BlÀtter enthalten: 
    152155        $sql.="AND NOT (SELECT gml_id FROM ax_buchungsblatt b WHERE b.land=g.land and b.bezirk=g.bezirk LIMIT 1) IS NULL "; 
    153         $sql.="ORDER BY g.bezeichnung LIMIT $1 ;"; 
     156        $sql.="ORDER BY g.bezeichnung LIMIT $2 ;"; 
     157        $v = array($agkey, $linelimit); 
    154158        $res = pg_prepare("", $sql); 
    155         $res = pg_execute("", array($linelimit)); 
     159        $res = pg_execute("", $v); 
    156160        if (!$res) { 
    157161                echo "\n<p class='err'>Fehler bei Grundbuch-Bezirk</p>"; 
    158                 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
     162                #if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
    159163                return 0; 
    160164        } 
    161165        $cnt = 0; 
    162         while($row = pg_fetch_array($res)) { // Loop  B E Z I R K 
    163                 $gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 
     166        while($row = pg_fetch_array($res)) { // Loop BEZIRK 
     167                $gnam=$row["bezeichnung"]; 
    164168                $gnr=$row["bezirk"]; 
    165                 $ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8"); 
    166                 $anr=$row["stelle"]; 
    167                 echo "\n<div class='gk' title='GB-Bezirk'>"; 
    168                         echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Gemkg'> "; 
    169                         echo "Bezirk <a href='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$gnr."'>";               
    170                                 echo $gnam."</a> (".$gnr.")"; 
    171                                 if ($mit_ag) { 
    172                                         echo " AG <a href='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;ag=".$anr."'>".$ag."</a>"; 
    173                                 } 
    174                 echo "\n</div>"; 
     169                zeile_gbbez($gnam, $gnr); 
    175170                $cnt++; 
    176171        } 
     172        // Foot 
    177173        if($cnt == 0){ 
    178174                echo "\n<p class='anz'>Kein Bezirk mit Bl&auml;ttern.</p>"; 
    179175        } elseif ($cnt >= $linelimit) { 
    180                 echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Bezirke ... und weitere</p>"; 
     176                echo "\n<p class='anz' title='Bitte Name des Bezirks suchen lassen'>".$cnt." Bezirke ... und weitere</p>"; 
    181177        } elseif($cnt > 1) { 
    182178                echo "\n<p class='anz'>".$cnt." Bezirke</p>"; // im Limit        
    183179        } 
    184         return 0; 
     180        return; 
     181} 
     182 
     183function ag_bez_head($gbbez) { 
     184        // Zu einem Grundbuchbezirks-SchlÃŒssel die Zeilen AG und Bezirk ausgeben 
     185        // Parameter = SchlÃŒssel des Bezirks 
     186        $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g "; 
     187        $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle WHERE g.bezirk= $1 LIMIT 1;"; 
     188        $v=array($gbbez); 
     189        $res=pg_prepare("", $sql); 
     190        $res=pg_execute("", $v); 
     191        if (!$res) { 
     192                echo "\n<p class='err'>Fehler bei Amtsgericht und Grundbuchbezirk.</p>"; 
     193                #if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
     194        } 
     195        $row = pg_fetch_array($res); 
     196        if ($row) { 
     197                $gnam=$row["bezeichnung"]; // GB-Bezirk Bezeichnung 
     198                $ag=$row["ag"]; // AG Bezeichnung 
     199                $anr=$row["stelle"]; // AG Key 
     200                zeile_ag($ag, $anr); // Amtsgericht 
     201                zeile_gbbez($gnam, $gbbez); // Bezirk 
     202        } else { 
     203                echo "\n<div class='gk' title='Grundbuchbezirk'>"; 
     204                        echo "\n\t\t<p class='err'><img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'>"; 
     205                                echo  " Bezirk '".$gbbez."' ist unbekannt.</p>"; 
     206                echo "\n</div>"; 
     207                return; 
     208        } 
     209        return; 
    185210} 
    186211 
     
    188213        // Grundbuch-Bezirk suchen nach Name(-nsanfang) 
    189214        global $con, $gkz, $gemeinde, $debug, $gbkennz; 
    190         $linelimit=50; 
     215        $linelimit=80; 
    191216        $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 
    192217        $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 
    193218        $sql.="WHERE g.bezeichnung ILIKE $1 "; //       "AND a.stellenart=1000 " // Amtsgericht 
    194         $sql.="ORDER BY g.bezeichnung LIMIT $2 ;"; 
     219        $sql.="ORDER BY a.bezeichnung, g.bezeichnung LIMIT $2 ;"; 
    195220        if ( $gbkennz == "") { 
    196221                $match = "%"; 
     
    207232        if (!$res) { 
    208233                echo "\n<p class='err'>Fehler bei Grundbuch-Bezirk</p>"; 
    209                 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
    210                 return 0; 
    211         } 
    212         $cnt = 0; 
    213         // Loop  B E Z I R K 
    214         while($row = pg_fetch_array($res)) { 
    215                 $gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 
     234                return 1; 
     235        } 
     236        $cnt=0; 
     237        $gwag=""; 
     238        while($row = pg_fetch_array($res)) { // Loop BEZIRK 
     239                $anr=$row["stelle"]; // Gruppierung AG 
     240                if ($gwag != $anr) { 
     241                        $gwag = $anr; 
     242                        $ag=$row["ag"]; 
     243                        zeile_ag($ag, $anr); 
     244                } 
     245                $gnam=$row["bezeichnung"]; 
    216246                $gnr=$row["bezirk"]; 
    217                 $ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8");               
    218                 $anr=$row["stelle"]; 
    219                 echo "\n<div class='gk' title='Grundbuch-Bezirk'>"; 
    220                         echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Gemkg'> "; 
    221                         echo "Bezirk <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$gnr."'>";            
    222                                 echo $gnam."</a> (".$gnr.")"; 
    223                                 echo " AG <a href='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;ag=".$anr."'>".$ag."</a>"; 
    224                 echo "\n</div>"; 
     247                zeile_gbbez ($gnam, $gnr); 
    225248                $cnt++; 
    226249        } 
     250        // Foot 
    227251        if($cnt == 0){  
    228252                echo "\n<p class='anz'>Kein Grundbuchbezirk.</p>"; 
     
    234258                echo "\n<p class='anz'>".$cnt." Bezirke</p>"; // im Limit        
    235259        } 
    236         return 0; 
     260        return; 
    237261} 
    238262  
     
    240264        // Kennzeichen bestehend nur aus GB-Bezirk-SchlÃŒssel wurde eingegeben 
    241265        global $con, $gkz, $gemeinde, $epsg, $debug, $zgbbez, $auskpath; 
    242         $linelimit=250; // max. Blatt je Bezirk 
     266        $linelimit=300; // max. Blatt je Bezirk 
    243267        // Dies Limit ist nicht ausreichend fÃŒr alle BlÀtter eines Bezirks, aber ... 
    244268        // Wenn man die Blatt-Nr nicht kennt, kommt man hier sowieso nicht weiter. 
    245269        // Es nutzt also nichts, hier tausende Nummern aufzulisten. 
    246270        // +++ BlÀtter-Funktion einfÃŒhren analog Modul _eig 
     271 
     272        // Head 
    247273        if ($showParent) { 
    248                 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g "; 
    249                 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle WHERE g.bezirk= $1 ;"; 
    250                 $v=array($zgbbez); 
    251                 $res=pg_prepare("", $sql); 
    252                 $res=pg_execute("", $v); 
    253                 if (!$res) { 
    254                         echo "\n<p class='err'>Fehler bei Brundbuchbezirk.</p>"; 
    255                         if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
    256                 } 
    257                 $zgmk=0; 
    258                 while($row = pg_fetch_array($res)) {     
    259                         $gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 
    260                         $gnr=$row["bezirk"]; 
    261                         $ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8");       
    262                         $anr=$row["stelle"]; 
    263                         $zgmk++; 
    264                 } 
    265                 if ($zgmk == 0) { 
    266                         echo "\n<div class='gk' title='Grundbuchbezirk'>"; 
    267                                 echo "\n\t\t<p class='err'><img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'>"; 
    268                                         echo  " Bezirk ".$zgbbez." ist unbekannt.</p>"; 
    269                         echo "\n</div>"; 
    270                         return; 
    271                 } 
    272  
    273                 // AG-Knoten davor setzen 
    274                 echo "\n<div class='ga' title='Amtsgricht'>"; 
    275                         echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Amtsgericht'> "; 
    276                         echo "AG <a href='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;ag=".$anr."'>";                
    277                                 echo $ag."</a> (".$anr.")"; 
    278                 echo "\n</div>"; 
    279                 echo "\n<div class='gk' title='GB-Bezirk'>"; 
    280                         echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 
    281                         echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$zgbbez."'>";                
    282                         echo $gnam."</a> (".$zgbbez.")"; 
    283                         // alternativ AG-Link hinter dem Bezirk 
    284                 //      echo " des AG <a href='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;ag=".$anr."'>".$ag."</a>";                        
    285                 echo "\n</div>"; 
    286         } 
     274                ag_bez_head($zgbbez); // AG und BEZ ausgeben 
     275        } 
     276        // Body 
    287277        $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b "; 
    288278        $sql.="WHERE b.bezirk= $1 ORDER BY b.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;"; 
     
    292282        if (!$res) { 
    293283                echo "\n<p class='err'>Fehler bei Bezirk.</p>"; 
    294                 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
     284                #if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
    295285        } 
    296286        $cntbl=0; // Counter Blatt/Bezirk 
    297         // Loop  B L A T T       
    298         while($row = pg_fetch_array($res)) {     
     287        while($row = pg_fetch_array($res)) { // Loop BLATT       
    299288                $blatt=$row["blatt"]; 
    300                 $blattd=ltrim($blatt, "0"); 
    301                 $gml=$row["gml_id"]; 
    302                 echo "\n<div class='gb' title='GB-Blatt'>"; 
    303                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gml."\")'>"; 
    304                                 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 
    305                         echo "\n\t</a> "; 
    306                         echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;blattgml=".$gml."&amp;gbkennz=".$zgbbez."-".$blatt."'>&nbsp;".$blattd."&nbsp;</a>"; 
    307                 echo "\n</div>"; 
     289                $blattgml=$row["gml_id"]; 
     290                zeile_blatt($zgbbez, $gnam, $blattgml, $blatt, false, ""); 
    308291                $cntbl++; 
    309292        } 
     293        // Foot 
    310294        if($cntbl == 0) {  
    311295                echo "\n<p class='anz'>Kein Blatt im Bezirk.</p>"; 
     
    314298                // +++ Hier oft ÃŒberschritten! BlÀtter-Funktion einfÃŒhren 
    315299                echo "\n<p>Geben sie ein: '".$zgbbez."-999A'<br>wobei '999A' = gesuchtes GB-Blatt</p>"; 
     300 
     301                // Vorbelegen des Eingabefeldes fÃŒr neue Suche? 
     302                echo "<script type='text/javascript'>parent.GrdGazetteerFrame.gbkennz.value='".$zgbbez."-??';</script>"; 
     303                 
    316304        } elseif ($cntbl > 1) { 
    317305                echo "\n<p class='anz'>".$cntbl." Bl&auml;tter</p>"; // im Limit         
     
    352340} 
    353341 
    354 /* 
    355 function EinBlatt_ALT($showParent) { 
    356         // Kennzeichen Bezirk + Blatt wurde eingegeben 
    357         // UrsprÃŒngliche Version bis 2013-04-24 
    358         global $con, $gkz, $debug, $gemeinde, $epsg, $auskpath, $zgbbez, $zblatt, $zblattn, $zblattz, $blattgml, $zbvnr; 
    359  
     342function EinBlatt($showParent) { 
     343        // Kennzeichen Bezirk + Blatt wurde eingegeben oder verlinkt 
     344        global $con, $gkz, $debug, $gemeinde, $epsg, $zgbbez, $zblatt, $blattgml, $gbbeznam; 
     345        // Head 
    360346        if ($showParent) { 
    361         // +++ nur der Schluessel ist bekannt. Bezirks-Namen und Amtsgericht noch ermitteln ++++ 
    362                 echo "\n<div class='gk' title='Grundbuch-Bezirk'>"; 
    363                         echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 
    364                         echo "Bezirk <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$zgbbez."'>";                 
    365                         echo $zgbbez."</a>"; 
    366                 echo "\n</div>"; 
    367                 echo "\n<div class='gb' title='GB-Blatt'>"; 
    368                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$blattgml."\")'>"; 
    369                                 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 
    370                         echo "\n\t</a> "; 
    371                         echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;blattgml=".$blattgml."&amp;gbkennz=".$zgbbez."-".$zblatt."'>&nbsp;".$zblattn.$zblattz."&nbsp;</a>"; 
    372                 echo "\n</div>"; 
    373         } 
    374         // Blatt ->  B u c h u n g s s t e l l e 
    375         $sql ="SELECT s.gml_id, s.laufendenummer AS lfd FROM ax_buchungsstelle s "; 
    376         $sql.="JOIN alkis_beziehungen v ON s.gml_id=v.beziehung_von ";  
    377         $sql.="JOIN ax_buchungsblatt b ON v.beziehung_zu=b.gml_id "; 
    378         $sql.="WHERE v.beziehungsart='istBestandteilVon' AND b.gml_id= $1 ORDER BY s.laufendenummer;"; 
    379         // +++ Buchungen ohne FLST weglassen? 
    380         // +++ Counter FLST ausgeben, Buchungen mit 0 weglassen  
    381         $v=array($blattgml); 
    382         $res=pg_prepare("", $sql); 
    383         $res=pg_execute("", $v); 
    384         if (!$res) { 
    385                 echo "\n<p class='err'>Fehler bei Blatt.</p>"; 
    386                 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
    387         } 
    388         $cntbu=0; // Counter Buchung/Blatt 
    389         while($row = pg_fetch_array($res)) {     
    390                 $bs_gml=$row["gml_id"];          
    391                 $lfd=$row["lfd"]; 
    392                 echo "\n<div class='gs'>"; 
    393                         echo "\n\t\t<img class='nwlink' title='Grundst&uuml;ck' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 
    394                         echo "Buchung <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbuchung=".$bs_gml."&amp;gbkennz=".$zgbbez."-".$zblatt."-".$lfd."'>&nbsp;".$lfd."&nbsp;</a>"; 
    395                 echo "\n</div>"; 
    396                 $cntbu++; 
    397         } 
    398         if($cntbu == 0) {  
    399                 echo "\n<p class='anz'>Keine Buchung gefunden.</p>"; 
    400         } elseif($cntbu == 1) { 
    401                 $zbvnr=$lfd; // mit dieser BVNR gleich weiter machen 
    402                 // Blatt zerteilen (benoetigt in gml_buchungsstelle) 
    403                 if (trim($zblatt, "0..9") == "") { // Normalfall: nur Zahlen 
    404                         $zblattn= ltrim($zblatt, "0"); 
    405                         $zblattz=""; 
    406                 } else { // Sonderfall: Zusatz-Buchstabe am Ende 
    407                         $zblattn=ltrim(substr($zblatt,0,$len-1), "0"); // ohne fuehrende Nullen 
    408                         $zblattz=strtoupper(substr($zblatt,$len-1,1));  
    409                 } 
    410         } else { 
    411                 echo "\n<p class='anz'>".$cntbu."Buchungen.</p>"; 
    412         } 
    413         return $cntbu; 
    414 } 
    415 */ 
    416  
    417 function EinBlatt($showParent) { 
    418         // Kennzeichen Bezirk + Blatt wurde eingegeben 
    419         global $con, $gkz, $debug, $gemeinde, $epsg, $auskpath, $zgbbez, $zblatt, $zblattn, $zblattz, $blattgml, $zbvnr; 
    420  
    421         if ($showParent) { 
    422         // +++ nur der Schluessel ist bekannt. Bezirks-Namen und Amtsgericht noch ermitteln ++++ 
    423                 echo "\n<div class='gk' title='Grundbuch-Bezirk'>"; 
    424                         echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 
    425                         echo "Bezirk <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$zgbbez."'>";                 
    426                         echo $zgbbez."</a>"; 
    427                 echo "\n</div>"; 
    428                 echo "\n<div class='gb' title='GB-Blatt'>"; 
    429                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$blattgml."\")'>"; 
    430                                 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 
    431                         echo "\n\t</a> "; 
    432                         echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;blattgml=".$blattgml."&amp;gbkennz=".$zgbbez."-".$zblatt."'>&nbsp;".$zblattn.$zblattz."&nbsp;</a>"; 
    433                 echo "\n</div>"; 
    434         } 
    435  
    436         // Blatt -> Buchungsstelle -> Flurstueck 
    437         $linelimit = 200; // Max. Anzahl FS 
    438         GB_Buchung_FS($linelimit); // Externe Function 
    439  
    440         return 0;  
    441          
     347                ag_bez_head($zgbbez); // AG + BEZ 
     348                zeile_blatt ($zgbbez, $gbbeznam, $blattgml, $zblatt, false, ""); 
     349        } 
     350        // Body 
     351        GB_Buchung_FS(200); // Blatt -> Buchung -> Flurstueck (max. 200) 
     352        return;  
    442353} 
    443354 
    444355function gml_buchungsstelle() { 
    445         // Kennzeichen "Bezirk + Blatt + BVNR" eingegeben. Dazu die gml_id der Buchungsstelle ermitteln. 
     356        // Kennzeichen "Bezirk + Blatt + BVNR" wurde eingegeben. 
     357        // Dazu die gml_id der Buchungsstelle ermitteln, um "function EinGrundstueck" benutzen zu können. 
    446358        global $con, $gkz, $debug, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr; 
    447359        // Blatt ->  B u c h u n g s s t e l l e 
     
    474386                echo "\n<p class='err'>Buchung ".$zgbbez."-".$zblattn.$zblattz."-".$zbvnr." nicht gefunden.</p>"; 
    475387                return; 
    476         } elseif($zbs > 1) { // nur TEST 
    477                 echo "\n<p class='err'>Buchungsstelle mehrfach gefunden.</p>"; 
    478                 return; 
    479388        } else { 
    480389                return $bs_gml; 
     
    483392 
    484393function EinGrundstueck($showParent) { 
    485         // Die gml_id der Buchungsstelle ist bekannt. 
    486         global $con, $gkz, $debug, $gemeinde, $epsg, $scalefs, $epsg, $auskpath, $gbuchung, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr, $gfilter; 
     394        // Die gml_id der Buchungsstelle (BVNR, GrundstÃŒck) ist bekannt = $buchunggml 
     395        // Die gebuchten FlurstÃŒcke und dienende/herrschenden Buchungen werden ausgegeben. 
     396        global $con, $gkz, $debug, $gemeinde, $epsg, $scalefs, $epsg, $auskpath, $buchunggml, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr, $gfilter; 
    487397        // NoLimit? 
    488398        if ($showParent) { // wenn Kennzeichen bekannt ist, dann auch Blatt ausgeben 
    489  
    490399                if ($zgbbez.$zblatt != "") { 
    491                         // +++ SchlÃŒssel ist bekannt. Namen und Amtsgericht dazu ermitteln 
    492                         // +++ oder Namen als &bez= ÃŒbermitteln? 
    493                         echo "\n<div class='gk' title='GB-Bezirk'>"; 
    494                                 echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 
    495                                 echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$zgbbez."'>";                
    496                                 echo "Bezirk ".$zgbbez."</a>"; 
    497                         echo "\n</div>";                         
    498                         echo "\n<div class='gb' title='GB-Blatt'>"; 
    499                                 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt.ico' width='16' height='16' alt='Blatt'> "; 
    500                                 echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$zgbbez."-".$zblatt."'>&nbsp;".$zblattn.$zblattz."&nbsp;</a>"; 
    501                         echo "\n</div>"; 
     400                        ag_bez_head($zgbbez); // AG + BEZ 
     401                        zeile_blatt ($zgbbez, $gnam, "", $zblatt, false, ""); 
     402                        // $gnam leer lassen Knoten "Bezirk" steht drÃŒber 
    502403                } else { 
    503404                        echo "<p class='err'>Kennzeichen Bezirk und Blatt nicht gesetzt</p>"; 
    504                 } 
    505  
    506                 echo "\n<div class='gs'>"; 
    507                         echo "\n\t\t<img class='nwlink' title='Grundst&uuml;ck' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 
    508                         echo "Buchung <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbuchung=".$gbuchung."&amp;gbkennz=".$zgbbez."-".$zblattn.$zblattz."-".$zbvnr."'>&nbsp;".$zbvnr."&nbsp;</a>"; 
    509                 echo "\n</div>"; 
    510         } 
    511         // +++ Ermitteln anderer Buchungsstellen mit Rechten an dieser 
    512         // +++ Ermitteln anderer Buchungsstellen wo diese Rechte hat 
    513         // +++ Filter "Gemeinde" berÃŒcksichtigt!! Wenn gesetzt. 
    514  
    515         // SQL-Bausteine 
    516         $sql1 ="SELECT g.gemeinde, g.gemarkungsname, f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; 
     405                        // +++ Dann suche sie !!                         
     406                } 
     407                zeile_buchung ($buchunggml, $zbvnr, $zgbbez."-".$zblattn.$zblattz."-".$zbvnr, false); 
     408        } 
     409 
     410// SQL-Bausteine 
     411// dienend $1 gml_id von 
     412//         Buchungsstelle  <vs/an<  Buchungsstelle sh 
     413//         (dienend)                (herrschend) 
     414// 
     415// direkt  $1 gml_id von  
     416//         Buchungsstelle                              <vs/istGebucht< FlurstÃŒck > Gemarkung 
     417// 
     418// Recht   $1 gml_id von  
     419//         Buchungsstelle  >vs/an>  Buchungsstelle sd  <vf/istGebucht< FlurstÃŒck > Gemarkung 
     420//         (herrschend)             (dienend) 
     421//                                                 sd  >vd/istBestandteilVon> bd > gd 
     422 
     423        // Anfang gleich (Select-Liste) 
     424        $sqlanf ="SELECT g.gemeinde, g.gemarkungsname, f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; 
    517425        if($epsg == "25832") { // Transform nicht notwendig 
    518                 $sql1.="st_x(st_Centroid(f.wkb_geometry)) AS x, "; 
    519                 $sql1.="st_y(st_Centroid(f.wkb_geometry)) AS y "; 
     426                $sqlanf.="st_x(st_Centroid(f.wkb_geometry)) AS x, "; 
     427                $sqlanf.="st_y(st_Centroid(f.wkb_geometry)) AS y "; 
    520428        } else {   
    521                 $sql1.="st_x(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS x, "; 
    522                 $sql1.="st_y(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS y ";                        
    523         } 
    524         $sql1.="FROM "; 
    525  
    526         $sqla1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu "; 
    527         $sqla2 ="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu "; 
    528  
    529         // Zwischen-JOIN (zusÀtzlich nur bei zweiter Abfrage) 
    530         $sqlz ="JOIN alkis_beziehungen vss ON vss.beziehung_von = s1.gml_id "; 
    531         $sqlz.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id "; 
    532  
    533         $sql2 ="JOIN ax_flurstueck f ON ....  "; 
    534         $sql2.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 
    535         $sql2.="WHERE v.beziehungsart='istGebucht' AND v.beziehung_zu= $1 "; // id buchungsstelle 
     429                $sqlanf.="st_x(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS x, "; 
     430                $sqlanf.="st_y(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS y ";                      
     431        } 
     432        // Filter gleich 
    536433        switch ($gfilter) { // Filter Gemeinde 
    537434                case 1: // Einzelwert 
    538                         $sql2.="AND g.gemeinde=".$gemeinde." "; break; 
     435                        $sqlfitler="AND g.gemeinde=".$gemeinde." "; break; 
    539436                case 2: // Liste 
    540                         $sql2.="AND g.gemeinde in (".$gemeinde.") "; break; 
    541         } 
    542         $sql2.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
    543  
    544         $sql=$sql1.$sqla1.$sql2; // Direkte Buchungen 
    545         $v=array($gbuchung); 
     437                        $sqlfilter="AND g.gemeinde in (".$gemeinde.") "; break; 
     438        } 
     439 
     440        // Abfrage: Direkte Buchungen (FlurstÃŒcke) 
     441        $sql =$sqlanf."FROM alkis_beziehungen vs JOIN ax_flurstueck f ON vs.beziehung_von = f.gml_id "; 
     442        $sql.="JOIN pp_gemarkung  g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 
     443        $sql.="WHERE vs.beziehung_zu= $1 AND vs.beziehungsart='istGebucht' "; 
     444        $sql.=$sqlfilter."ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
     445 
     446        $v=array($buchunggml); 
    546447        $res=pg_prepare("", $sql); 
    547448        $res=pg_execute("", $v); 
    548449        if (!$res) { 
    549                 echo "\n<p class='err'>Fehler bei Buchungsstelle (gml).</p>"; 
    550                 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
    551         } 
    552         $zfs=0; 
     450                echo "\n<p class='err'>Fehler bei Buchungsstelle (gml, direkt).</p>"; 
     451                if ($debug >= 3) { 
     452                        echo "\n<p class='err'>'".$sql."'<br>\nmit $1 ='".$buchunggml."'</p>"; 
     453                } 
     454        } 
     455        $zfs1=0; 
    553456        while($row = pg_fetch_array($res)) {     
    554457                $fs_gml=$row["gml_id"]; 
     
    557460                $flur=$row["flurnummer"]; 
    558461                $fskenn=$row["zaehler"]; 
    559                 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 
    560                 $x=$row["x"]; 
    561                 $y=$row["y"]; 
    562  
    563                 // FILTER OBEN, IN SQL - nicht HIER 
    564                 if($gemeinde > 0 and $gemeinde != $gemei and $gfilter == 1) { // ex-territorial  
    565                         if ($debug >= 2) { 
    566                                 echo "<p class='dbg'>Gemkg ".$gmkg." liegt in Gemeinde '".$gemei."' nicht '".$gemeinde."'</p>"; 
    567                         } 
    568                         echo "\n<div class='fs' title='Kein Zugriff! Liegt au&szlig;erhalb des Gebietes.'>"; 
    569                                 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Leer.ico' width='16' height='16' alt='FS'> (".$gmkg." ".$flur."-".$fskenn." )"; 
    570                         echo "\n</div>";                         
    571                 } else { 
    572                         echo "\n<div class='fs'>"; 
    573                                 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    574                                         echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
    575                                 echo "\n\t</a> "; 
    576                                 echo "\n\t".$gmkg." <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    577                                                 echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    578                                                 echo "parent.parent.showHighlight(".$x.",".$y.")' "; 
    579                                         echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
    580                                         echo "onmouseout='parent.parent.hideHighlight()'>&nbsp;"; 
    581                                 echo $flur."-".$fskenn."&nbsp;</a>"; 
    582                         echo "\n</div>"; 
    583                 } 
    584                 $zfs++; 
    585         } 
    586         if($zfs == 0) { 
    587                 echo "\n<p class='anz'>Kein Flurst&uuml;ck.</p>"; 
    588         } elseif($zfs > 1) { 
    589                 echo "\n<p class='anz'>".$zfs." Flurst&uuml;ck.</p>"; 
     462                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // BruchNr 
     463                zeile_flurstueck ($fs_gml, $fskenn, $row["x"], $row["y"], $gmkg, $flur ); 
     464                $zfs1++; 
     465        } 
     466        if($zfs1 == 0) { 
     467                echo "\n<p class='anz'>Kein Flurst&uuml;ck direkt</p>"; 
     468        } elseif($zfs1 > 1) { 
     469                echo "\n<p class='anz'>".$zfs1." Flurst&uuml;cke</p>"; 
     470        } 
     471        if($zfs1 > 0) { // wenn's was zu trennen gibt 
     472                echo "<hr>"; // Trennen 
     473        } 
     474 
     475        // Abfrage: Rechte an (dienende Buchungen und ihre FlurstÃŒcke) 
     476        $sql =$sqlanf.", sd.gml_id AS diengml, sd.laufendenummer AS dienlfd, ";         // Stelle dienend 
     477        $sql.="bd.gml_id AS dienbltgml, bd.buchungsblattnummermitbuchstabenerweiterung AS dienblatt, "; // Blatt dienend 
     478        $sql.="gd.stelle, gd.gml_id AS dienbezgml, gd.bezirk, gd.bezeichnung AS diengbbez ";    // AG und Bezirk dazu 
     479        $sql.="FROM alkis_beziehungen vs "; 
     480        $sql.="JOIN ax_buchungsstelle sd ON vs.beziehung_zu=sd.gml_id "; 
     481        $sql.="JOIN alkis_beziehungen vf ON vf.beziehung_zu=sd.gml_id "; // sd=Stelle dienend 
     482        $sql.="JOIN ax_flurstueck f ON vf.beziehung_von = f.gml_id "; 
     483        $sql.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 
     484 
     485        // Blatt und Bezirk (dienend) 
     486        $sql.="JOIN alkis_beziehungen vd ON vd.beziehung_von=sd.gml_id "; 
     487        $sql.="JOIN ax_buchungsblatt bd ON vd.beziehung_zu=bd.gml_id "; // Blatt dienend 
     488        $sql.="JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk "; // GB-Bez. dienend 
     489        $sql.="WHERE vs.beziehung_von = $1 AND vs.beziehungsart='an' AND vf.beziehungsart='istGebucht' AND vd.beziehungsart='istBestandteilVon' "; 
     490        $sql.=$sqlfilter."ORDER BY gd.bezeichnung, bd.buchungsblattnummermitbuchstabenerweiterung, cast(sd.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
     491 
     492        $v=array($buchunggml); 
     493        $res=pg_prepare("", $sql); 
     494        $res=pg_execute("", $v); 
     495        if (!$res) { 
     496                echo "\n<p class='err'>Fehler bei Buchungsstelle (gml, Recht an).</p>"; 
     497                if ($debug >= 3) { 
     498                        echo "\n<p class='err'>'".$sql."'<br>\nmit $1 ='".$buchunggml."'</p>"; 
     499                } 
     500        } 
     501        $zfs2=0; 
     502        $gwblatt=""; 
     503        while($row = pg_fetch_array($res)) { 
     504                $dienstelle=$row["stelle"];             // Stelle (AG) des dienenden GrundstÃŒcks 
     505                $dienbezgml=$row["dienbezgml"]; // Bezirks des dien. GS: gml, Nr. und Bezeichnung 
     506                $diengbbez=$row["diengbbez"];   // Bezeichnung 
     507                $dienbezirk=$row["bezirk"];     // Key 
     508                $dienbltgml=$row["dienbltgml"]; // dienendes Blatt, gml und Nr 
     509                $dienblatt=$row["dienblatt"]; 
     510                $diengml=$row["diengml"];               // gml_id des dienenden GrundstÃŒcks 
     511                $dienlfd=$row["dienlfd"];               // BVNR (laufendNr) des dien. GS 
     512                if ($gwblatt != $dienblatt) { // Gruppierung Blatt - dienend 
     513                        $gwblatt = $dienblatt; // Steuerg GW Blatt 
     514                        zeile_blatt ($dienbezirk, $diengbbez, $dienbltgml, $dienblatt, true, ""); 
     515                        $gwbvnr=""; 
     516                } 
     517                if ($gwbvnr != $dienlfd) { // Gruppierung Buchung (BVNR) - dienend 
     518                        $gwbvnr = $dienlfd; // Steuerg GW BVNR 
     519                        zeile_buchung($diengml, $dienlfd, $dienbezirk."-".$dienblattlnk."-".$dienlfd, true); 
     520                } // ++ Buchungsart? Welches Recht? 
     521                $fs_gml=$row["gml_id"]; 
     522                $gemei=$row["gemeinde"]; 
     523                $gmkg=$row["gemarkungsname"]; 
     524                $flur=$row["flurnummer"]; 
     525                $fskenn=$row["zaehler"]; 
     526                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // BruchNr 
     527                zeile_flurstueck ($fs_gml, $fskenn, $row["x"],$row["y"], $gmkg, $flur ); 
     528                $zfs2++; 
     529        } 
     530        if($zfs2 == 0 AND $zfs1 == 0) { 
     531                echo "\n<p class='anz'>Kein Recht an Flst.</p>"; 
     532        } elseif($zfs2 > 1) { 
     533                echo "\n<p class='anz'>".$zfs2." Rechte an Flurst.</p>"; 
    590534        } 
    591535        return; 
     
    596540// =========== 
    597541if(isset($epsg)) { 
    598         #if ($debug >= 2) {echo "<p class='dbg'>aktueller EPSG='".$epsg."'</p>";} // aus MB 
    599542        $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]);    
    600543} else { 
    601         #if ($debug >= 1) {echo "<p class='err'>kein EPSG gesetzt</p>";}         
    602544        $epsg=$gui_epsg; // aus Conf 
    603545} 
     
    605547if ($gemeinde == "") { 
    606548        $gfilter = 0; // ungefiltert 
    607         #if ($debug >= 2) {echo "<p class='dbg'>Kein Filter Gemeinde</p>";} 
    608549} elseif(strpos($gemeinde, ",") === false) { 
    609550        $gfilter = 1; // Einzelwert 
    610         #if ($debug >= 2) {echo "<p class='dbg'>Filter Gemeinde Einzelwert = '".$gemeinde."'</p>";} 
    611551} else { 
    612552        $gfilter = 2; // Liste 
    613         #if ($debug >= 2) {echo "<p class='dbg'>Filter Gemeinde Liste = '".$gemeinde."'</p>";} 
    614553} 
    615554 
    616555// Auch wenn redundant: Das Kennzeichen fÃŒr Anzeige und weitere Links zerlegen 
    617556$kennztyp=ZerlegungGBKennz($gbkennz); 
    618 #if ($debug >= 2) {echo "<p class='dbg'>GB-Kennzeichen Typ=".$kennztyp."</p>";} 
    619557 
    620558// Wurde eine gml_id (internes Kennzeichen) aus einem Self-Link verwendet? 
    621559// Dann hat das Prioritaet, also *nicht* nach $gbkennz suchen. 
    622 if ($gbuchung != "") { // gml der Buchungsstelle 
    623         $trans="Buchungsstelle"; 
     560if ($buchunggml != "") { // gml der Buchungsstelle 
     561        $trans="Flurst. zur Buchungsstelle (Link)"; 
    624562        EinGrundstueck(true); 
    625563 
    626564} elseif($blattgml != "") { // gml des GB-Blattes 
    627  
    628         // neue Version -> function GB_Buchung_FS 
    629565        $trans="GB-Blatt mit Buchungen und Flst."; 
    630566        EinBlatt(true); 
    631567 
    632 /*      alte Version (ohne die Function)) 
    633         if (EinBlatt(true) == 1) { // darauf genau eine Buchung 
    634                 $gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen 
    635                 $trans="Grundbuch-Blatt und 1 Buchung"; 
    636                 EinGrundstueck(false); 
    637         } 
    638 */ 
    639  
    640 } elseif(isset($ag)) { // Key des Amtsgerichtes 
    641         #if ($debug >= 2) {echo "<p class='dbg'>Link Amtsgericht=".$ag."</p>";} 
     568} elseif($ag != "") { // Key des Amtsgerichtes 
    642569        $trans="GB-Bezirke zum Amtsgericht"; 
    643         ListAG( "'".$ag."'" ); // noch mal Kopfzeile 
    644         ListGBBez("'".$ag."'", false); 
    645  
    646 } else { // Kein Self-Link, Eingabe im Formular 
     570        ListGBBez($ag); 
     571 
     572} else { // Eingabe im Formular 
    647573 
    648574        switch ($kennztyp) { 
     
    652578                        break; 
    653579                case 1: // Eingabe Bezirk-Name (-Teil) -> gefilterte Liste der Bezirke 
    654                         $trans="Grundbuchbezirke gefiltert"; 
     580                        $trans="Bezirke suchen \"".$gbkennz."\""; 
    655581                        $beznr=SuchGBBezName(); 
    656582                        if ($beznr > 0) {  // eindeutig 
     
    670596                                if (EinBlatt(true) == 1) { // darauf genau eine Buchung 
    671597                                        $trans="GB-Blatt und 1 Buchung"; 
    672                                         $gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen 
     598                                        $buchunggml=gml_buchungsstelle(); // gml_id zum Kennzeichen 
    673599                                        EinGrundstueck(false); 
    674600                                } 
    675601                        } 
    676602                        break; 
    677                 case 4: // Eingabe Buchung (Grundstueck) -> Liste der Flurstuecke 
    678                         $trans="Flurst. zur Buchungsstelle"; 
    679                         $gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen 
    680                         if ($gbuchung != "") { // .. wurde geliefert  
    681                                 $trans="Buchungsstelle und 1 Flurst."; 
    682                                 EinGrundstueck(true); 
     603                case 4: // Eingabe Buchung (GrundstÃŒck) -> Liste der FlurstÃŒcke 
     604                        $buchunggml=gml_buchungsstelle(); // gml_id zum Kennzeichen 
     605                        if ($buchunggml != "") {                // .. wurde geliefert  
     606                                $trans="Flurst. zur Buchungsstelle (Eingabe)"; 
     607                                EinGrundstueck(true);   // mit Backlink 
     608                        } else{ 
     609                                $trans="Suche Buchungsstelle"; 
    683610                        } 
    684611                        break; 
Note: See TracChangeset for help on using the changeset viewer.