source: trunk/mapbender/http/nav/alkisnav_fkt.php @ 413

Revision 413, 16.9 KB checked in by frank.jaeger, 5 years ago (diff)

Umstellung Suche (nav) auf Full-Schema, Nachkorrektur Auskunft.

Line 
1<?php
2/*      Navigation mit ALKIS-Daten im Mapbender 2 - Teil "Funktionen"
3        (Wird nicht direkt aufgerufen sonden in den anderen Modulen eingebunden).
4        Datenbank-Struktur aus dem norGIS-ALKIS-Importer.
5Version vom
6        2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet.
7        2016-11-28 Gemeinsam genutzte Datenbanken ermöglichen
8        2018-02-15 Überarbeitung des Code
9        2018-05-02 Link "Buchung" zum neuen GrundstÃŒcks-Nachweis
10        2018-11-02 Suche GB-Blatt mit Wildcard wenn Zusatzbuchstabe nicht angegeben.
11        2018-11-09 Full-Schema
12*/
13
14function is_ne_zahl($wert) {
15        // PrÃŒft, ob ein Wert ausschließlich aus den Zahlen 0 bis 9 besteht
16        if (trim($wert, "0..9") == "") {return true;} else {return false;}
17}
18
19function ZerlegungGBKennz($gbkennz) {
20        // Das EINGEGEBENE Grundbuch-Kennzeichen auseinander nehmen (gggg-999999z-BVNR)
21        // Return: 9=Fehler, 0=Listen alle Bezirke 1=Such Bezirk-Name
22        //  2=Such Bezirk-Nummer, 3=Such Blatt, 4=Such Buchung BVNR
23        global $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr;
24        $arr=explode("-", $gbkennz, 3);
25        $zgbbez=trim($arr[0]);
26        if (count($arr) > 1) {
27                $zblatt=trim($arr[1]);
28                if (count($arr) > 2) {
29                        $zbvnr=trim($arr[2]);
30                } else {
31                        $zbvnr="";
32                }
33        } else {
34                $zblatt="";
35                $zbvnr="";
36        }
37        if ($zgbbez == "") { // keine Eingabe
38                return 0; // Amtsgerichte oder Bezirke listen
39        } elseif ( ! is_ne_zahl($zgbbez)) { // Alphabetische Eingabe
40                return 1; // Such Bezirk-NAME
41        } elseif ($zblatt == "") {
42                return 2; // Such Bezirk-NUMMER
43        } else { // Format von BlattNr pruefen
44        //'19'      linksbÃŒndig
45        //'000019 ' gefÃŒllt 6 + blank
46        //'000019A' .. mit Zusatzbuchstabe
47        //'0300001' gefÃŒllt 7, bei Blattart 5000 "fiktives Blatt"
48                $len=strlen($zblatt);
49                if ($len > 0 AND $len < 8) { // Eingabe LÀnge 1 bis 7
50                //      if (trim($zblatt, "0..9 ") == "") {
51                        if (preg_match('#^[0-9]{1,6}[ ]{0,1}$#', $zblatt)) { // Normalfall: nur Zahlen (und Blank am Ende))
52                                $zblattn= rtrim(ltrim($zblatt, "0"), " ");
53                                $zblattz="";
54                        } else { // Sonderfall: Zusatz-Buchstabe am Ende
55                                $zblattn=substr($zblatt,0,$len-1);
56                                $zblattz=strtoupper(substr($zblatt,$len-1,1));
57                        //      if ((trim($zblattn, "0..9") == "") and (trim($zblattz, "A..Z") == "")) {
58                                if (preg_match('#^[0-9]{1,6}$#', $zblattn) and preg_match('#^[A-Z]{1}$#', $zblattz)) {
59                                        $zblattn= ltrim($zblattn, "0"); // ohne fuehrende Nullen
60                                } else {
61                                        echo "<p class='err>Format 'Blatt': bis zu 6 Zahlen und ggf. ein Buchstabe</p>";       
62                                        return 9;
63                                }
64                        }
65                        if ($zbvnr == "") {
66                                return 3; // Such BLATT
67                        } elseif (is_ne_zahl($zbvnr)) {         
68                                // $zbvnr=ltrim($zbvnr,"0"); // DB-Format ist integer
69                                // Vorsicht, Wert "0" ist moeglich und gueltig
70                                return 4; // Such Grundstueck
71                        } else {
72                                echo "<p class='err>Die Buchungsstelle (BVNR) '".$zbvnr."' ist nicht numerisch</p>";
73                                return 9;
74                        }
75                } else {
76                        echo "<p class='err>Das Grundbuch-Blatt '".$zblatt."' ist ung&uuml;ltig.</p>";
77                        return 9;
78                }
79        }
80}
81
82function suchfeld($suchstring) {        // Suchstring Ausgeben UND das Eingabeformular damit belegen
83        $out="<a title='Dies als Suchbegriff setzen' href='javascript:formular_belegung(\"".$suchstring."-\")'>".$suchstring."</a>";
84        return $out;
85}
86
87// function Typ "zeile_**"  = Ausgabe eines Knotens
88// - Icon,  ggf. mit Link zur Buchauskunft
89// - Zeile, ggf. mit Link zur weiteren Auflösung untergeordneter Knoten
90// Hierin die Encodierung fÃŒr url und HTML.
91
92function zeile_ag ($ag, $anr, $aktuell) {
93        // Zeile  A m t s g e r i c h t
94        global $gkz, $gemeinde, $epsg, $auskpath;
95        if ($ag == "") {
96                $agd=$anr; // Ersatz: Nummer statt Name. Besser: Name immer fÃŒllen
97        } else {
98                $agd=htmlentities($ag, ENT_QUOTES, "UTF-8");
99        }
100        if ($aktuell) {$cls=" aktuell";} else {$cls="";}
101        echo "\n<div class='ga".$cls."' title='Amtsgericht'>"
102                ."\n\t\t<img class='nwlink' src='ico/Gericht.png' width='16' height='16' alt='AG' title='Amtsgericht'> "
103                ."AG <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;ag=".$anr."'>"
104                .$agd."</a> (".$anr.")"
105        ."\n</div>";
106        return;
107}
108
109function zeile_gbbez ($gnam, $zgbbez, $aktuell) {
110        // Zeile Grundbuch - B e z i r k
111        // Parameter: aktuell = Bool fÃŒr farbliche Markierung der Zeile als aktuell angeklicktes Obj.
112        global $gkz, $gemeinde, $epsg, $person;
113        $gnamd=htmlentities($gnam, ENT_QUOTES, "UTF-8");
114        if ($aktuell) {$cls=" aktuell";} else {$cls="";}
115        echo "\n<div class='gk".$cls."' title='GB-Bezirk'>"
116                ."\n\t\t<img class='nwlink' src='ico/GB-Bezirk.png' width='16' height='16' alt='Bez.' title='GB-Bezirk'> "
117                ."<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$zgbbez
118                ."&amp;gbbeznam=".urlencode($gnam);
119                if ($person != "") { // EigentÃŒmer-Suche
120                        echo "&amp;person=".$person."'>"
121                        ."Bezirk ".$gnamd."</a> (".$zgbbez.")";         
122                } else {  // Grundbuch-Suche
123                        echo "'>"
124                        ."Bezirk ".$gnamd."</a> (".suchfeld($zgbbez).")";               
125                }
126        echo "\n</div>";
127        return;
128}
129
130function zeile_blatt ($bezirk, $beznam, $blattgml, $blatt, $dienend, $person, $aktuell) {
131        // Zeile Grundbuch - B l a t t
132        // Aufruf aus Teil "Grundbuch" und Teil "EigentÃŒmer"
133        // Parameter $beznam = Name des GB-Bezirks. Sollte nur gefÃŒllt sein, bei dienendem Blatt ("Recht an"). Wird vor die Zeile gesetzt.
134        // Normalerweise steht der Bezirk als Header-Zeile darÃŒber.
135        global $gkz, $gemeinde, $epsg, $auskpath;
136
137        $blattd=ltrim($blatt, "0"); // Display-Version ohne fÃŒhrende Nullen
138        if ($dienend) {$dientxt="dienendes ";} else {$dientxt="";}
139        $blattlnk=urlencode($blatt); // trailing Blank
140        if ($beznam != "") {$nam = $beznam." ";} else {$nam="";}
141        if ($aktuell) {$cls=" aktuell";} else {$cls="";}
142
143        echo "\n<div class='gb".$cls."' title='".$dientxt."GB-Blatt'>";
144
145        // Icon / Nachweis
146        if ($blattgml == "") { // Link zum Nachweis nur wenn GML bekannt
147                echo "\n\t<img class='nwlink' src='ico/GBBlatt.png' width='16' height='16' alt='Blatt' title='".$dientxt."GB-Blatt'>";
148        } else {
149                echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$blattgml."\")'>"
150                        ."\n\t\t<img class='nwlink' src='ico/GBBlatt_link.png' width='16' height='16' alt='Blatt' title='Nachweis'>"
151                ."\n\t</a> ";
152        }
153
154        // Text, Self-Link
155        echo $nam." <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg
156        ."&amp;blattgml=".$blattgml."&amp;gbkennz=".$bezirk."-".$blattlnk;
157
158        if ($beznam != "") {echo "&amp;gbbeznam=".urlencode($beznam);}
159        if ($person != "") {echo "&amp;person=".$person;} // nur fÃŒr EigentÃŒmer-Suche
160        echo "'>Blatt&nbsp;".$blattd."</a>\n</div>";
161        return;
162}
163
164function zeile_buchung($buchunggml, $bvnr, $blattkennz, $dienend, $aktuell) {
165        // Zeile  B u c h u n g s s t e l l e  -  GrundstÃŒck ausgeben
166        global $gkz, $gemeinde, $epsg, $auskpath, $debug;
167        //if ($debug > 1) {echo "<p class='dbg'>function zeile_buchung()<p>";} // Ablauf-Verfolgung
168
169        if ($bvnr == 0) { // Keine echten BVNR vergeben (z.B. Lippe)
170                $bvnra = "-"; // Fehlanzeige
171        } else {
172                $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen
173        }
174        if ($dienend) {
175                $ti="dienendes&nbsp;";
176                $re="Recht an ";
177        } else {
178                $ti="";
179                $re="";
180        }
181        if ($aktuell) {$cls=" aktuell";} else {$cls="";}
182        echo "\n<div class='gs".$cls."' title='".$ti."Grundst&uuml;ck'>";
183
184        // Icon / Nachweis
185        if ($buchunggml == "") { // Link zum Nachweis nur wenn GML bekannt
186                echo "\n\t<img class='nwlink' src='ico/Grundstueck.png' width='16' height='16' alt='GS'  title='".$ti."Grundst&uuml;ck'> ".$re;
187        } else {
188                echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisgsnw.php?gkz=".$gkz."&amp;gmlid=".$buchunggml."\")'>"
189                        ."\n\t\t<img class='nwlink' src='ico/Grundstueck_Link.png' width='16' height='16' alt='Buchung' title='".$ti."Grundst&uuml;ck'> ".$re
190                ."\n\t</a> ";
191        }
192
193        if ($blattkennz == "") { // ohne Link
194                echo "Buchung ".$bvnra;
195        } else {
196                $gbkennlnk=urlencode($blattkennz."-".$bvnr); // Trailing Blanks!
197                echo "<a href='".$_SERVER['SCRIPT_NAME']. "?gkz=". $gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;buchunggml=".$buchunggml
198                ."&amp;gbkennz=".$gbkennlnk."'>Buchung ".$bvnra."</a>";
199        }
200        echo "\n</div>";
201        return;
202}
203
204function zeile_gemeinde ($gmdnr, $gmdname, $aktuell) {
205        // Eine Kopf-Zeile zu Gemeinde ausgeben
206        global $gkz, $gemeinde, $epsg;
207        $stadt=htmlentities($gmdname, ENT_QUOTES, "UTF-8");
208        $bez=urlencode($gmdname);
209        if ($aktuell) {$cls=" aktuell";} else {$cls="";}
210        echo "\n<div class='gm".$cls."' title='Gemeinde'>"
211                ."\n\t\t<img class='nwlink' src='ico/Gemeinde.png' width='16' height='16' alt='Stadt'>"
212                ." Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gm=".$gmdnr."&amp;bez=".$bez."'>"
213                ." ".$stadt."</a> (".substr($gmdnr, 5).")"
214        ."\n</div>";
215        return;
216}
217
218function zeile_gemarkung($gkgnr, $gkgname, $aktuell) {
219        // Eine Kopf-Zeile zur Gemarkung ausgeben
220        global $con, $gkz, $gemeinde, $epsg, $gfilter;
221
222        if ($gkgname == "") { // Falls Gem.-Name fehlt, in DB nachschlagen
223                $sql ="SELECT bezeichnung FROM ax_gemarkung WHERE gemarkungsnummer = $1 LIMIT 1;";
224                $v=array($gnr);
225                $res=pg_prepare("", $sql);
226                $res=pg_execute("", $v);
227                if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkungsname.</p>";}
228                $row = pg_fetch_array($res);
229                $gkgname=$row["bezeichnung"];
230        }
231
232        if ($gkgname == "") {$gkgname = "(unbekannt)";}
233        $gnam=htmlentities($gkgname, ENT_QUOTES, "UTF-8");
234        if ($aktuell) {$cls=" aktuell";} else {$cls="";}
235
236        echo "\n<div class='gk".$cls."' title='Gemarkung'>"
237                ."\n\t\t<img class='nwlink' src='ico/Gemarkung.png' width='16' height='16' alt='GKG' title='Gemarkung'>"
238                ." OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$gkgnr."'>"
239                ." ".$gnam."</a> (".substr($gkgnr, 2).")"
240        ."\n</div>";
241        return;
242}
243
244function zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur, $aktuell) {
245        // Zeile mit Icon (Link zum Buch-Nachweis) und Text (Link zum Positionieren)
246        global $gkz, $gemeinde, $epsg, $auskpath, $scalefs;
247
248        if ($aktuell) {$cls=" aktuell";} else {$cls="";}
249        echo "\n<div class='fs".$cls."'>"
250        ."\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"
251                ."\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.png' width='16' height='16' alt='FS' title='Nachweis'>"
252        ."\n\t</a>\n\t";               
253
254        echo "&nbsp;<a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"
255        ."javascript:transtitle(\"auf Flurst&uuml;ck positioniert\"); "
256                ."parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "
257                ."parent.parent.showHighlight(".$x.",".$y.");' "
258        ."onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "
259        ."onmouseout='parent.parent.hideHighlight()'>";
260
261        if ($gmkg == "" ) {
262                echo "Flst. "; // Im FS-Teil: Gem+Flur als Knoten darÃŒber ($gmkg und $flur leer)
263        } else {
264                echo $gmkg." "; // Im GB-und Nam-Teil in der Zeile angezeigt
265        }
266        if ($flur != "" ) {echo $flur."-";}
267        echo $fskenn."</a>\n</div>";
268        return;
269}
270
271function zeile_person ($persongml, $nachname, $vorname) {
272        // Zeile  P e r s o n (oder Firma)
273        global $gkz, $gemeinde, $epsg, $auskpath;
274
275        $nnam=htmlentities($nachname, ENT_QUOTES, "UTF-8");
276        $namlnk=urlencode(substr($nachname,0,50));
277        $vnam=htmlentities($vorname, ENT_QUOTES, "UTF-8");
278        // Link zur Auskunft Person, Icon differenzieren nach Eigentuemerart?
279        echo "<div class='pe'>"
280                ."\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$persongml."\")'>"
281                        ."\n\t\t<img class='nwlink' src='ico/Eigentuemer.png' width='16' height='16' alt='EIG' title='Nachweis'>"
282                ."\n\t</a>"             
283                ."\n\t<a title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$persongml."&amp;name=".$namlnk."'>".$nnam.", ".$vnam."</a>"
284        ."</div>";
285return;
286}
287
288function zeile_strasse ($gkey, $skey, $sname, $kgml, $gemname) {
289        // Listen-Zeile (nicht Kopfzeile) fÃŒr eine gefundenen Straße ausgeben.
290        // Die Kopfzeile ÃŒber den Hausnummern hat einen zusÀtzlichen Koordinaten-Map-Link, das ist in der Liste zu aufwÀndig?
291        global $gkz, $gemeinde, $epsg, $auskpath, $gfilter, $debug;
292
293        echo "\n\t<div class='stl' title='Stra&szlig;enschl&uuml;ssel ".$skey."'>";
294
295        // Icon -> Buchnachweis
296        echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$kgml."\")'>"
297                ."\n\t\t<img class='nwlink' src='ico/Lage_mit_Haus.png' width='16' height='16' alt='STR' title='Auskunft Stra&szlig;e'>"
298        ."\n\t</a>";
299        // Zeile -> Suche HsNr
300        echo " <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;str_schl=".$gkey."' title='in ".$gemname."'>".$sname
301        ."</a> (".$skey.")";
302
303        // Die Gemeinde dahinter falls mehrere möglich
304        switch ($gfilter) {
305                case 0: // Kein Filter
306                        echo " in ".$gemname; break;
307                case 2: // Liste
308                        echo " in ".$gemname; break;
309        }
310        echo "</div>";
311        return;
312}
313
314function GB_Buchung_FS ($linelimit, $blattgbkenn) {
315        // Zu einem Grundbuch-Blatt (identifiziert ÃŒber seine gml_id) suchen der
316        // Buchungen (Gruppenwechsel) und FlurstÃŒcke (Links)
317        global $gemeinde, $blattgml, $epsg, $gfilter, $debug;
318
319        // SQL-Bausteine
320        // vorne gleich
321        $sql1 ="SELECT s1.laufendenummer AS lfd, s1.gml_id AS bsgml, f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; // f.gemeindezugehoerigkeit_gemeinde, ?
322        if($epsg == "25832") { // Transform nicht notwendig
323                $sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, st_y(st_centroid(f.wkb_geometry)) AS y, ";
324        } else { 
325                $sql1.="st_x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "
326                        ."st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, ";                   
327        }
328        $sql1.="g.bezeichnung FROM ax_buchungsstelle s1 ";
329
330        // zwischen, Variante 1.
331    $sqlz1="JOIN ax_flurstueck f ON f.istgebucht=s1.gml_id ";
332
333        // zwischen, Variante 2. Nur an oder "an" und "zu"?
334        $sqlz2 ="JOIN ax_buchungsstelle s2 ON s2.gml_id=ANY(s1.an) "
335                ."JOIN ax_flurstueck f ON f.istgebucht=s2.gml_id ";
336
337        // hinten gleich
338        $sql2="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "
339                ."WHERE s1.istbestandteilvon = $1 AND f.endet IS NULL AND s1.endet IS NULL ";
340
341        switch ($gfilter) {
342                case 1: // Einzelwert
343                        $sql2.="AND f.gemeindezugehoerigkeit_gemeinde='".$gemeinde."' "; break;
344                case 2: // Liste
345                        $sql2.="AND f.gemeindezugehoerigkeit_gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break;
346        }
347
348        // WHERE-Zusatz bei 2
349        $sqlw2=" AND s2.endet IS NULL ";
350
351        $sqlord="ORDER BY cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;";
352
353        // d i r e k t e  B u c h u n g e n
354        // Blatt <istBestandteilVon<  Buchungsstelle <istGebucht< FlurstÃŒck
355        $v=array($blattgml, $linelimit); // Rel. istBestandteilVon
356        $res=pg_prepare("", $sql1.$sqlz1.$sql2.$sqlord);
357        $res=pg_execute("", $v);
358        if (!$res) {
359                echo "\n<p class='err'>Fehler bei Buchung und Flurst&uuml;ck.</p>";
360                if ($debug >= 3) {echo "\n<p class='err'>SQL='".$sql1.$sqlz1.$sql2.$sqlord."'<br>$1 = '".$blattgml."'</p>";}
361                return;
362        }
363        $zfs1=0;
364        $gwbv="";
365        while($row = pg_fetch_array($res)) {   
366                $bvnr=$row["lfd"];
367                $bsgml=$row["bsgml"]; // Buchungsstelle gml_id
368                if ($gwbv != $bvnr) { // Gruppierung Buchungs-Stelle (BVNR)
369                        $gwbv = $bvnr;
370                        zeile_buchung($bsgml, $bvnr, $blattgbkenn, false, false);
371                }
372                $fs_gml=$row["gml_id"];
373                $gmkg=$row["bezeichnung"];
374                $flur=$row["flurnummer"];
375                $fskenn=$row["zaehler"];
376                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // BruchNr
377                $x=$row["x"];
378                $y=$row["y"];
379                zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur, false);
380                $zfs1++;
381        }
382        // "nichts gefunden" erst melden, wenn auch Teil 2 (Rechte an) nichts findet
383        if($zfs1 > 1) { // ab 2
384                echo "\n<p class='anz'>".$zfs1." Flurst&uuml;cke zum Grundbuch";
385                if($zfs1 >= $linelimit) {
386                        echo "... und weitere"; //++ BlÀttern einfÃŒhren?
387                }
388                echo "</p>";
389        }
390        if($zfs1 > 0) {echo "<hr>";} // Trennen
391
392        // Rechte "an"  (dienende  Buchungen)
393        $v=array($blattgml, $linelimit);
394        $res=pg_prepare("", $sql1.$sqlz2.$sql2.$sqlw2.$sqlord);
395        $res=pg_execute("", $v);
396        if (!$res) {
397                echo "\n<p class='err'>Fehler bei Recht an Buchung.</p>";
398                #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql1.$sqlz2.$sql2.$sqlw2.$sqlord."</p>";}
399                return;
400        }
401        $zfs2=0;
402        $gwbv="";
403        while($row = pg_fetch_array($res)) {   
404                $bvnr=$row["lfd"];
405                $bsgml=$row["bsgml"]; // Buchungsstelle gml_id
406                if ($gwbv != $bvnr) { // Gruppierung Buchung (BVNR) - dienend
407                        $gwbv = $bvnr;
408                        zeile_buchung($bsgml, $bvnr, $blattgbkenn, true, false);
409                }
410                $fs_gml=$row["gml_id"];
411                $gmkg=$row["bezeichnung"];
412                $flur=$row["flurnummer"];
413                $fskenn=$row["zaehler"];
414                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer
415                zeile_flurstueck ($fs_gml, $fskenn, $row["x"], $row["y"], $gmkg, $flur, false);
416                $zfs2++;
417        }
418        // Foot
419        if($zfs1 + $zfs2 == 0) {
420                echo "\n<p class='anz'>Kein Flurst&uuml;ck im berechtigten Bereich.</p>";
421        } elseif($zfs2 > 1) { // keine Meldung "nichts gefunden - Rechte an" wenn Treffer in Teil 1
422                echo "\n<p class='anz'>".$zfs2." Rechte an Flurst.";
423                if($zfs2 >= $linelimit) {
424                        echo "... und weitere"; // BlÀttern einfÃŒhren?
425                }
426                echo "</p>";
427        }
428        return;
429}
430
431?>
Note: See TracBrowser for help on using the repository browser.