Changeset 305 for trunk/info


Ignore:
Timestamp:
01/21/14 17:14:52 (10 years ago)
Author:
frank.jaeger
Message:

Verbesserung CSV-Export: Rechtsgemeinschaft in Namenszeile.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/info/info/alkis/alkisexport.php

    r304 r305  
    1010        2014-01-17 krz f.j. 
    1111        2014-01-20 weitere Spalten und verbesserte Formatierung 
     12        2014-01-21 Der View liefert "Rechtsgemeinschaft" nun als Feld in allen Personen-Sätzen  
     13                        eines GB-Blattes statt als eigenen "Satz ohne Person". 
    1214*/ 
    1315 
     
    5153 
    5254// CSV-Ausgabe: Kopfzeile mit Feldnamen 
    53 echo "FS-Kennzeichen;GmkgNr;Gemarkung;Flur;Flurstueck;Flaeche;Adressen;GB-BezNr;GB-Bezirk;GB-Blatt;BVNR;Anteil_am_FS;Buchungsart;Namensnummer;AnteilDerPerson;RechtsGemeinschaft;Person;GebDatum;Anschrift"; 
     55echo "FS-Kennzeichen;GmkgNr;Gemarkung;Flur;Flurstueck;Flaeche;Adressen;GB-BezNr;GB-Bezirk;GB-Blatt;BVNR;Anteil_am_FS;Buchungsart;Namensnummer;AnteilDerPerson;RechtsGemeinschaft;Person;GebDatum;Anschrift;Anteil(berechnet)"; 
    5456 
    5557// Datenbank-Verbindung 
     
    6062pg_set_client_encoding($con, LATIN1); // Für Excel kein UTF8 ausgeben 
    6163 
    62 // Der Parameter "Tabellentyp" bestimmt den Namen des Filter-Feldes aus dem View 
    63 switch ($tabtyp) { // zulaessige Erte fuer &tabtyp= 
     64// Der Parameter "Tabellentyp" bestimmt den Namen des Filter-Feldes aus dem View "exp_csv". 
     65switch ($tabtyp) { // zulaessige Werte fuer &tabtyp= 
    6466        case 'flurstueck': $filter = "fsgml"; break; 
    6567        case 'grundbuch':  $filter = "gbgml"; break; 
     
    7375$res = pg_prepare("", $sql); 
    7476$res = pg_execute("", $v); 
    75 if (!$res) { 
    76         exit("Fehler bei Datenbankabfrage"); 
    77 } 
    78 $i=0; 
     77if (!$res) {exit("Fehler bei Datenbankabfrage");} 
     78$i=1; // Kopfzeile zählt mit 
    7979$fsalt=''; 
    8080 
    8181// Datenfelder auslesen 
    8282while($row = pg_fetch_array($res)) { 
     83        $i++; // Zeile der Tabelle 
     84        $rechnen=true; // Formel in letzte Spalte? 
    8385 
    8486        // Flurstueck 
     
    100102        // Buchungsstelle (Grundstueck) 
    101103        $bu_lfd=$row["bu_lfd"]; // BVNR 
    102         $bu_ant=$row["bu_ant"]; // '=zaehler/nenner' oder NULL wenn zaehler oder nenner NULL sind 
    103         $bu_key=$row["buchungsart"]; // Sxhlüssel 
     104        $bu_ant=$row["bu_ant"]; // '=zaehler/nenner' oder NULL 
     105        $bu_key=$row["buchungsart"]; // Schlüssel 
    104106        $bu_art=$row["bu_art"]; // entschlüsselt (Umlaute in ANSI!) 
    105  
    106         // Für Berechnungen in der exportierten Tabelle wäre es nützlich, wenn "voller Anteil" als Faktor 1  
    107         // statt eines leeren Feldes ausgegeben würde  - Ausnahmen? 
    108         if(($bu_ant == '') and ($bu_key == 1100)) { // Grundstück 
    109                 $bu_ant = '1'; 
     107        if($bu_ant == '') { // Keine Bruch-Zahl 
     108                $bu_ant = '1'; // "voller Anteil" (Faktor 1) 
     109        } else { 
     110                $bu_ant=str_replace(".", ",", $bu_ant); // Dezimalkomma statt -punkt.            
    110111        } 
    111112 
    112113        // Namensnummer 
    113         $nam_lfd="'".kurz_namnr($row["nam_lfd"])."'"; // In Hochkomma. Wird sonst als Datum dargestellt. 
     114        $nam_lfd="'".kurz_namnr($row["nam_lfd"])."'"; // In Hochkomma, sonst wie Datum dargestellt. 
    114115        $nam_ant=$row["nam_ant"]; 
    115         if ($nam_ant == '') {$nam_ant=1;} // Wann darf als Anteil "1" statt leer gesetzt werden? 
    116     // Das ist falsch, wenn z.B. eine Rechtsgemeinschaft verbal beschrieben ist (in anderem Datensatz). 
    117116        $nam_adr=$row["nam_adr"]; // Art der Rechtsgemeischaft (Schlüssel) 
    118         $nam_bes=$row["nam_bes"]; // Beschrieb der Rechtsgemeinschaft 
    119  
    120         // Rechtsgemeinschaft (in einer eigene Zeile ohne Namen) 
    121         if ($nam_adr == 9999) { // sonstiges 
    122                 $rechtsg=$nam_bes; // Beschreibung verwenden 
     117        if ($nam_adr == '') {     // keine Rechtsgemeinsachft 
     118                if ($nam_ant == '') { // und kein Bruch-Anteil 
     119                        $nam_ant=1; // dann ganzer Anteil 
     120                } 
    123121        } else { 
    124                 $rechtsg=rechtsgemeinschaft($nam_adr); // Entschlüsseln 
     122                $rechnen=false; // bei Rechtsgemeinschaft manuell interpretieren 
     123                if ($nam_adr == 9999) { // sonstiges 
     124                        $rechtsg=$row["nam_bes"]; // Beschrieb der Rechtsgemeinschaft 
     125                } else { 
     126                        $rechtsg=rechtsgemeinschaft($nam_adr); // Entschlüsseln 
     127                } 
    125128        } 
    126129 
     
    162165 
    163166        // Den Ausgabe-Satz montieren aus Flurstücks-, Grundbuch- und Namens-Teil 
     167        //      A             B           C             D               E               F            G 
    164168        $fsteil=$fs_kennz.";".$gmkgnr.";".$gemkname.";".$flurnummer.";".$flstnummer.";".$fs_flae.";".$lage.";"; 
     169        //      H              I              J             K           L           M 
    165170        $gbteil=$gb_bezirk.";".$gb_beznam.";".$gb_blatt.";".$bu_lfd.";".$bu_ant.";".$bu_art.";"; 
     171        //       N            O            P            Q         R           S 
    166172        $namteil=$nam_lfd.";".$nam_ant.";".$rechtsg.";".$name.";".$gebdat.";".$adresse; 
    167173 
     174        // Anteile "GB am FS" und "Pers am GB" verrechnen 
     175        if ($rechnen) { // beide Anteile verwertbar 
     176                $formelteil=";=L".$i."*O".$i; // Spalte T 
     177        } else { 
     178                $formelteil=';'; 
     179        } 
     180 
    168181        // Ausgabe in CSV-Datei 
    169         echo "\n".$fsteil.$gbteil.$namteil; 
    170         $i++; 
     182        echo "\n".$fsteil.$gbteil.$namteil.$formelteil; 
    171183} 
    172184pg_free_result($res); 
    173 if ($i == 0) {exit ("Kein Treffer fuer gml_id=".$gmlid);} 
     185if ($i == 1) {exit ("Kein Treffer fuer gml_id=".$gmlid);} // nur Kopfzeile 
    174186pg_close($con); 
    175187exit(0); 
Note: See TracChangeset for help on using the changeset viewer.