Changeset 420


Ignore:
Timestamp:
02/12/19 15:38:51 (5 years ago)
Author:
frank.jaeger
Message:

In der ALKIS-Navigation für Mapbender2 die Sortierung für Flurstücksnummer korrigiert. Mit Umstellung auf Full-Schema sind Zähler und Nenner Textfelder geworden. Sie wurden also nicht mehr "numerisch" sortiert.

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

Legend:

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

    r413 r420  
    1010        2018-04-24 Geburtsdatum formatieren 
    1111        2018-11-12 Full-Schema 
     12        2019-02-12 Sortierung FlurstÃŒcksnummer repariert 
    1213*/ 
    1314 
     
    437438        } 
    438439 
    439         $sql3 ="ORDER BY b.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 
     440        $sql3 ="ORDER BY b.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, cast(f.zaehler AS integer), cast(f.nenner AS integer) LIMIT $2 ;"; 
    440441        // Sortier-Problem: laufendenummer in varchar linksbÃŒndig 
    441442 
  • trunk/mapbender/http/nav/alkisnav_fkt.php

    r413 r420  
    1010        2018-11-02 Suche GB-Blatt mit Wildcard wenn Zusatzbuchstabe nicht angegeben. 
    1111        2018-11-09 Full-Schema 
     12        2019-02-12 Sortierung FlurstÃŒcksnummer repariert 
    1213*/ 
    1314 
     
    349350        $sqlw2=" AND s2.endet IS NULL "; 
    350351 
    351         $sqlord="ORDER BY cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 
     352        $sqlord="ORDER BY cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, cast(f.zaehler AS integer), cast(f.nenner AS integer) LIMIT $2 ;"; 
    352353 
    353354        // d i r e k t e  B u c h u n g e n 
  • trunk/mapbender/http/nav/alkisnav_fls.php

    r413 r420  
    99        2018-02-15 Strikte Input-Validation der Parameter 
    1010        2018-11-12 Full-Schema 
     11        2019-02-12 Sortierung FlurstÃŒcksnummer wieder hergestellt (kaputt gegangen bei Umstellung Full-Schema) 
    1112*/ 
    1213 
     
    524525        } 
    525526 
    526         $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND endet IS NULL ORDER BY f.zaehler, f.nenner LIMIT $3 ;"; 
     527        $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND endet IS NULL " 
     528        ."ORDER BY cast(f.zaehler AS integer), f.nenner LIMIT $3 ;"; 
    527529        $v=array($zgemkg4, $zflur, $linelimit); 
    528530        $res=pg_prepare("", $sql); 
     
    568570        $sql ="SELECT 'h' AS ftyp, gml_id, cast(zaehler AS integer) AS zaehler, cast(nenner AS integer) AS nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl 
    569571        ."UNION SELECT 'o' AS ftyp, gml_id, cast(zaehler AS integer) AS zaehler, cast(nenner AS integer) AS nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl 
    570         ."ORDER BY zaehler, nenner LIMIT $2 ;";  
    571         // "zaehler" und "nenner" sind in der Classic-Datenbank Integer-Werte aber in der Struktur  
    572         // des norGIS-ALKIS-Importers sind das Character-Strings, die linksbÃŒndig ohne fÃŒhrende Nullen gefÃŒllt sind. 
    573         // Der Anwender erwartet aber eine "numerische" Sortierung. 
     572        ."ORDER BY zaehler, nenner LIMIT $2 ;"; 
    574573 
    575574        $fskzwhere=$zgemkg6.str_pad($zflur, 3, "0", STR_PAD_LEFT)."%"; 
     
    606605 
    607606        // Head 
    608         if (gg_head($zgemkg6, false)) { // Kopfzeilen: Gemeinde, Gemerkung, .. 
     607        if (gg_head($zgemkg6, false)) { // Kopfzeilen: Gemeinde, Gemarkung, .. 
    609608                zeile_flur($zgemkg4, $zflur, true, false); // .., Flur 
    610609        } else { 
     
    623622        $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND f.zaehler= $3 "; 
    624623 
    625 //      If ($znenner != "") {$sql.="AND f.nenner=".$znenner." ";} 
    626  
    627         // norGIS: "zaehler" ist integer in der DB, aber "nenner" ist character, linksbÃŒndig ohne fÃŒhrende '0' 
    628624        If ($znenner != "") { 
    629625                $suchnenn = ltrim($znenner, '0'); 
     
    632628                } 
    633629        } 
    634         $sql.="AND endet IS NULL ORDER BY f.zaehler, cast(f.nenner AS integer);"; 
     630        $sql.="AND endet IS NULL ORDER BY cast(f.zaehler AS integer), cast(f.nenner AS integer);"; 
    635631        $v=array($zgemkg4, $zflur, $zzaehler); 
    636632        $res=pg_prepare("", $sql); 
     
    640636                if ($debug > 2) {echo "<p class='dbg'>SQL = '".$sql."'<br>Parameter $1='".$zgemkg4."' $2='".$zflur."' $3='".$zzaehler."'<p>";} 
    641637        } 
    642  
    643638 
    644639        $zfs=0; 
     
    735730                        $nawhcl="WHERE flurstueckskennzeichen IN ( ".$stri." ) AND endet IS NULL "; 
    736731 
    737                         // Pass auf! Spalte zaehler hat unterschiedliches Format in den 3 Tabellen 
    738                         $nasql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, cast(zaehler AS character varying), nenner FROM ax_flurstueck ".$nawhcl 
     732                        $nasql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_flurstueck ".$nawhcl 
    739733                        ."UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueck ".$nawhcl 
    740734                        ."UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueckohneraumbezug ".$nawhcl; 
  • trunk/mapbender/http/nav/alkisnav_grd.php

    r413 r420  
    99        2018-11-02 Einheitliches DB-Format der GB-Blatt-Nummer vorausgesetzt. Suche GB-Blatt in Function "gml_blatt" und "gml_buchungsstelle" mit Wildcard wenn Zusatzbuchstabe nicht angegeben. 
    1010        2018-11-12 Full-Schema 
     11        2019-02-12 Sortierung FlurstÃŒcksnummer repariert 
    1112*/ 
    1213 
     
    444445        // Direkte Buchungen (Flurst.) 
    445446        $sql =$sqlanf."FROM ax_flurstueck f JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    446         $sql.="WHERE f.istgebucht = $1 AND f.endet IS NULL ".$sqlfilter."ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
     447        $sql.="WHERE f.istgebucht = $1 AND f.endet IS NULL ".$sqlfilter."ORDER BY f.gemarkungsnummer, f.flurnummer, cast(f.zaehler AS integer), cast(f.nenner AS integer);"; 
    447448 
    448449        $v=array($buchunggml); 
     
    486487        ."WHERE sh.gml_id = $1 AND sh.endet IS NULL AND sd.endet IS NULL AND f.endet IS NULL AND bd.endet IS NULL AND gd.endet IS NULL " 
    487488 
    488         .$sqlfilter."ORDER BY gd.bezeichnung, bd.buchungsblattnummermitbuchstabenerweiterung, cast(sd.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
     489        .$sqlfilter."ORDER BY gd.bezeichnung, bd.buchungsblattnummermitbuchstabenerweiterung, cast(sd.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, cast(f.zaehler AS integer), cast(f.nenner AS integer);"; 
    489490 
    490491        $v=array($buchunggml); 
Note: See TracChangeset for help on using the changeset viewer.