0 AND $len < 8) { if (trim($zblatt, "0..9 ") == "") { // Normalfall: nur Zahlen (und Blank)) $zblattn= rtrim(ltrim($zblatt, "0"), " "); $zblattz=""; } else { // Sonderfall: Zusatz-Buchstabe am Ende $zblattn=substr($zblatt,0,$len-1); $zblattz=strtoupper(substr($zblatt,$len-1,1)); if ((trim($zblattn, "0..9") == "") and (trim($zblattz, "A..Z") == "")) { $zblattn= ltrim($zblattn, "0"); // ohne fuehrende Nullen } else { echo "

"; return 9; } } if ($zbvnr == "") { return 3; // Such BLATT } elseif (is_ne_zahl($zbvnr)) { // $zbvnr=ltrim($zbvnr,"0"); // DB-Format ist integer // Vorsicht, Wert "0" ist moeglich und gueltig return 4; // Such Grundstueck } else { echo "

"; return 9; } } else { echo "

"; return 9; } } } function suchfeld($suchstring) { // Suchstring Ausgeben UND das Eingabeformular damit belegen $out="".$suchstring.""; return $out; } function zeile_ag ($ag, $anr, $aktuell) { // Zeile A m t s g e r i c h t global $gkz, $gemeinde, $epsg, $auskpath; if ($ag == "") { $agd=$anr; // Ersatz: Nummer statt Name. Besser: Name immer füllen } else { $agd=htmlentities($ag, ENT_QUOTES, "UTF-8"); } if ($aktuell) {$cls=" aktuell";} echo "\n

"; echo "\n\t\tAG "; echo "AG "; echo $agd." (".$anr.")"; echo "\n
"; return; } function zeile_gbbez ($gnam, $zgbbez, $aktuell) { // Zeile Grundbuch - B e z i r k // Parameter: aktuell = Bool für farbliche Markierung der Zeile als aktuell angeklicktes Obj. global $gkz, $gemeinde, $epsg, $person; $gnamd=htmlentities($gnam, ENT_QUOTES, "UTF-8"); if ($aktuell) {$cls=" aktuell";} echo "\n
"; echo "\n\t\tBez. "; echo ""; echo "Bezirk ".$gnamd." (".$zgbbez.")"; } else { // Grundbuch-Suche echo "'>"; echo "Bezirk ".$gnamd." (".suchfeld($zgbbez).")"; } echo "\n
"; return; } function zeile_blatt ($bezirk, $beznam, $blattgml, $blatt, $dienend, $person, $aktuell) { global $gkz, $gemeinde, $epsg, $auskpath; // Zeile Grundbuch - B l a t t $blattd=ltrim($blatt, "0"); // Display-Version ohne führende Nullen if ( $dienend) {$dientxt="dienendes ";} $blattlnk=urlencode($blatt); // trailing Blank if ($beznam != "") {$nam = $beznam." ";} if ($aktuell) {$cls=" aktuell";} echo "\n
"; // Icon / Nachweis if ($blattgml == "") { // Link zum Nachweis nur wenn GML bekannt echo "\n\tBlatt"; } else { echo "\n\t"; echo "\n\t\tBlatt"; echo "\n\t "; } // Text, Self-Link echo $nam." Blatt ".$blattd."\n
"; return; } function zeile_buchung($buchunggml, $bvnr, $blattkennz, $dienend, $aktuell) { // Zeile B u c h u n g s s t e l l e - Grundstück ausgeben global $gkz, $gemeinde, $epsg, $auskpath; if ($bvnr == 0) { $bvnra = "-"; } else { $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen } if ($diened) { $ti="dienendes "; $re="Recht an "; } else { $ti=""; $re=""; } if ($aktuell) {$cls=" aktuell";} echo "\n
"; echo "\n\tGS ".$re; if ($blattkennz == "") { // ohne Link echo "Buchung ".$bvnra; } else { $gbkennlnk=urlencode($blattkennz."-".$bvnr); // Trailing Blanks! echo "Buchung ".$bvnra.""; } echo "\n
"; return; } function zeile_gemeinde ($gmdnr, $gmdname, $aktuell) { // Eine Zeile zu Gemeinde ausgeben, Schlüssel und Name wird übergeben global $gkz, $gemeinde, $epsg; $stadt=htmlentities($gmdname, ENT_QUOTES, "UTF-8"); $bez=urlencode($gmdname); if ($aktuell) {$cls=" aktuell";} echo "\n
"; echo "\n\t\tStadt"; echo " Gem. "; echo " ".$stadt." (".$gmdnr.")"; echo "\n
"; return; } function zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur, $aktuell) { // Zeile mit Icon (Link zum Buch-Nachweis) und Text (Link zum Positionieren) global $gkz, $gemeinde, $epsg, $auskpath, $scalefs; if ($aktuell) {$cls=" aktuell";} echo "\n
"; echo "\n\t"; echo "\n\t\tFS"; echo "\n\t\n\t"; echo " "; if ($gmkg == "" ) { echo "Flst. "; // Im FS-Teil: Gem+Flur als Knoten darüber ($gmkg und $flur leer) } else { echo $gmkg." "; // Im GB-und Nam-Teil in der Zeile angezeigt } if ($flur != "" ) {echo $flur."-";} echo $fskenn."\n
"; return; } function zeile_person ($persongml, $nachname, $vorname) { global $gkz, $gemeinde, $epsg, $auskpath; // Zeile P e r s o n (oder Firma) $nnam=htmlentities($nachname, ENT_QUOTES, "UTF-8"); $namlnk=urlencode($nachname); $vnam=htmlentities($vorname, ENT_QUOTES, "UTF-8"); // Link zur Auskunft Person ++ Icon differenzieren nach Eigentuemerart? echo "
EIG ".$nnam.", ".$vnam."
"; return; } function GB_Buchung_FS ($linelimit, $blattgbkenn) { // Zu einem Grundbuch-Blatt (identifiziert über seine gml_id) suchen der // Buchungen (Gruppenwechsel) und Flurstücke (Links) global $gemeinde, $blattgml, $epsg, $gfilter, $debug; // SQL-Bausteine vorbereiten // SQL vorne gleich $sql1 ="SELECT s1.laufendenummer AS lfd, s1.gml_id AS bsgml, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; if($epsg == "25832") { // Transform nicht notwendig $sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, "; $sql1.="st_y(st_centroid(f.wkb_geometry)) AS y, "; } else { $sql1.="st_x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; $sql1.="st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, "; } $sql1.="g.gemarkung, g.gemarkungsname "; $sql1.="FROM alkis_beziehungen vbg "; $sql1.="JOIN ax_buchungsstelle s1 ON vbg.beziehung_von = s1.gml_id "; // Zwischen-JOIN verschieden $sqlz1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu "; $sqlz2 ="JOIN alkis_beziehungen vss ON vss.beziehung_von = s1.gml_id "; $sqlz2.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id "; $sqlz2.="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu "; // SQL hinten gleich $sql2 ="JOIN ax_flurstueck f ON vfb.beziehung_von = f.gml_id "; $sql2.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; $sql2.="WHERE vbg.beziehung_zu= $1 AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' "; switch ($gfilter) { case 1: // Einzelwert $sql2.="AND g.gemeinde=".$gemeinde." "; break; case 2: // Liste $sql2.="AND g.gemeinde in (".$gemeinde.") "; break; } $sql2.="ORDER BY cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; // Abfrage: d i r e k t e B u c h u n g e n // Blatt Fehler bei Buchung und Flurstück.

"; #if ($debug >= 3) {echo "\n

".$sql1.$sqlz1.$sql2."

";} return; } $zfs1=0; $gwbv=""; while($row = pg_fetch_array($res)) { $bvnr=$row["lfd"]; $bsgml=$row["bsgml"]; // Buchungsstelle gml_id if ($gwbv != $bvnr) { // Gruppierung Buchungs-Stelle (BVNR) $gwbv = $bvnr; zeile_buchung($bsgml, $bvnr, $blattgbkenn, false, false); } $fs_gml=$row["gml_id"]; $gmkg=$row["gemarkungsname"]; $flur=$row["flurnummer"]; $fskenn=$row["zaehler"]; if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // BruchNr $x=$row["x"]; $y=$row["y"]; zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur, false); $zfs1++; } // "nichts gefunden" erst melden, wenn auch Teil 2 (Rechte an) nichts findet if($zfs1 > 1) { // ab 2 echo "\n

".$zfs1." Flurstücke zum Grundbuch"; if($zfs1 >= $linelimit) { echo "... und weitere"; //++ Blättern einführen? } echo "

"; } if($zfs1 > 0) {echo "
";} // Trennen // 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 $v=array($blattgml, $linelimit); $res=pg_prepare("", $sql1.$sqlz2.$sql2); $res=pg_execute("", $v); if (!$res) { echo "\n

Fehler bei Recht an Buchung.

"; #if ($debug >= 3) {echo "\n

".$sql1.$sqlz2.$sql2."

";} return; } $zfs2=0; $gwbv=""; while($row = pg_fetch_array($res)) { $bvnr=$row["lfd"]; $bsgml=$row["bsgml"]; // Buchungsstelle gml_id if ($gwbv != $bvnr) { // Gruppierung Buchung (BVNR) - dienend $gwbv = $bvnr; zeile_buchung($bsgml, $bvnr, $blattgbkenn, true, false); } $fs_gml=$row["gml_id"]; $gmkg=$row["gemarkungsname"]; $flur=$row["flurnummer"]; $fskenn=$row["zaehler"]; if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer zeile_flurstueck ($fs_gml, $fskenn, $row["x"], $row["y"], $gmkg, $flur, false); $zfs2++; } // Foot if($zfs1 + $zfs2 == 0) { echo "\n

Kein Flurstück im berechtigten Bereich.

"; } elseif($zfs2 > 1) { // keine Meldung "nichts gefunden - Rechte an" wenn Treffer in Teil 1 echo "\n

".$zfs2." Rechte an Flurst."; if($zfs2 >= $linelimit) { echo "... und weitere"; // Blättern einführen? } echo "

"; } return; } ?>