User Tools

Site Tools


haushaltsdaten

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
haushaltsdaten [2015/04/11 08:52] – [Spalten] christianhaushaltsdaten [2015/07/23 12:10] (current) – [Ergebnisrechnung] christian
Line 3: Line 3:
 Die Haushaltsvisualisierung von Lübeck habe ich als Prototyp heruntergeschrieben. Dabei habe ich mich von der Struktur der Daten leiten lassen und die simpelste Art des Einlesens genommen die funktioniert hat. Zum Beispiel habe ich den Feldtrenner, ein Komma, direkt ins Programm geschrieben und Werte mit konkreten Strings verglichen. Die Haushaltsvisualisierung von Lübeck habe ich als Prototyp heruntergeschrieben. Dabei habe ich mich von der Struktur der Daten leiten lassen und die simpelste Art des Einlesens genommen die funktioniert hat. Zum Beispiel habe ich den Feldtrenner, ein Komma, direkt ins Programm geschrieben und Werte mit konkreten Strings verglichen.
  
-Nun habe ich auch Daten aus Glückstadt bekommen und nun muss das etwas allgemeiner formuliert werden. Und die Struktur muss klar beschrieben werden, damit auch andere Gemeinden ihre Daten anpassen können. Diese Beschreibung will ich im Folgenden versuchen. Am Ende will ich mir auch Gedanken machen, wie ein ideales Format aussehen und wie man da hin kommen kann.+Nun habe ich auch Daten aus Glückstadt bekommen und nun muss das etwas allgemeiner formuliert werden. Und die Struktur muss klar beschrieben werden, damit auch andere Gemeinden ihre Daten anpassen können. Diese Beschreibung soll im Folgenden entstehen
  
 ===== CSV Format ===== ===== CSV Format =====
  
 Eine CSV-Datei enthält eine Tabelle mit Daten. Jede Zeile ist ein Datensatz, der eine feste Anzahl von Einträgen enhält, die durch ein Komma (oder ein [Tab] oder ein ;) getrennt sind. Eine CSV-Datei enthält eine Tabelle mit Daten. Jede Zeile ist ein Datensatz, der eine feste Anzahl von Einträgen enhält, die durch ein Komma (oder ein [Tab] oder ein ;) getrennt sind.
 +  Feld;2;Wert;3,50
 +
 +entspricht
 +
 +| Feld | 2 | Wert | 3,50 | 
  
 Ein Eintrag ist ein String, der ggf. auch als Zahl interpretiert werden kann. Die erste Zeile der Tabelle enthält die Spaltenüberschriften. Jede Spalte ist von einem einheitlichen Typ: Text oder Zahl. Ein Eintrag ist ein String, der ggf. auch als Zahl interpretiert werden kann. Die erste Zeile der Tabelle enthält die Spaltenüberschriften. Jede Spalte ist von einem einheitlichen Typ: Text oder Zahl.
 +  Name;Art;Text;Zahl
 +  Feld;2;Wert;3,50
  
 +entspricht
 +^ Name ^ Art ^ Text ^ Zahl ^ 
 +| Feld | 2 | Wert | 3,50 | 
 ==== Kodierung ==== ==== Kodierung ====
  
Line 19: Line 29:
 Der Separator kann Komma ",", Semikolon ";" oder ein Tab sein. Ein Feld kann mit Anführungszeichen >"< eingeschlossen sein, und muss wenn es den Separator enthält. Der Separator kann Komma ",", Semikolon ";" oder ein Tab sein. Ein Feld kann mit Anführungszeichen >"< eingeschlossen sein, und muss wenn es den Separator enthält.
  
-===== Spalten =====+  Name;"Name1";"Name1;3";3,
 + 
 +entspricht 
 + 
 +| Name | Name1 | Name1;3 | 3,5 |  
 +===== Tabelle ===== 
 + 
 +==== Spalten ====
  
 Die 19 Spalten der Tabelle teile ich in folgende Bereiche: Die 19 Spalten der Tabelle teile ich in folgende Bereiche:
Line 53: Line 70:
         Haushaltsansatz 2013         Haushaltsansatz 2013
         Haushaltsansatz 2014         Haushaltsansatz 2014
-        //Verpflichtungsermächtigungen//+        Verpflichtungsermächtigungen
         Mittelfristige Ergebnisplanung 2015         Mittelfristige Ergebnisplanung 2015
         Mittelfristige Ergebnisplanung 2016         Mittelfristige Ergebnisplanung 2016
Line 64: Line 81:
 Die Spalte "Ertrags- und Aufwandsarten - Gliederung 1" enthält die Kontenart der Buchungen als 2- oder 3-stellige Zahl. Da die Kontonummer aber immer mit dieser Zahl beginnen, kann die Spalte ignoriert werden. Das erleichtert die Verarbeitung, da eine Position Schwierigkeiten macht: Zeile 5 "privatrechtliche Leistungsentgelte" hat 3 Kontenarten zugeordnet: 441, 442 und 446. Lübeck schreibt das in einzelne Zeilen (die für 441 und 442 sind leer) und Glückstadt schreibt die Zahlen in eine Zeile "441, 442, 446". Beide Varianten sind unbefriedigend. Da die Spalte aber redundant ist, wird sie ignoriert. Die Spalte "Ertrags- und Aufwandsarten - Gliederung 1" enthält die Kontenart der Buchungen als 2- oder 3-stellige Zahl. Da die Kontonummer aber immer mit dieser Zahl beginnen, kann die Spalte ignoriert werden. Das erleichtert die Verarbeitung, da eine Position Schwierigkeiten macht: Zeile 5 "privatrechtliche Leistungsentgelte" hat 3 Kontenarten zugeordnet: 441, 442 und 446. Lübeck schreibt das in einzelne Zeilen (die für 441 und 442 sind leer) und Glückstadt schreibt die Zahlen in eine Zeile "441, 442, 446". Beide Varianten sind unbefriedigend. Da die Spalte aber redundant ist, wird sie ignoriert.
  
 +Die Gliederung der Ergebnis und Finanzrechnungen sind in [[http://www.schleswig-holstein.de/DE/Fachinhalte/K/kommunales/kommunalefinanzen/Downloads/Gemeindehaushaltsreform/doppelteBuchfuehrung/gemhvoDoppik.pdf|dieser Landesverordnung]] detailliert beschrieben.
 ==== Leerzeilen ==== ==== Leerzeilen ====
  
 Am Ende stehen die eigentlichen Zahlen: 2 Vorjahre, das aktuelle Jahr (beim Finanzplan noch die Ermächtigungen) und 3 Folgejahre. Alle Zeilen, die in allen Spalten keine Werte oder nur Nullen hat, wird ignoriert, da sie keine Bedeutung haben und sich die Struktur auf andere Weise ergibt. Am Ende stehen die eigentlichen Zahlen: 2 Vorjahre, das aktuelle Jahr (beim Finanzplan noch die Ermächtigungen) und 3 Folgejahre. Alle Zeilen, die in allen Spalten keine Werte oder nur Nullen hat, wird ignoriert, da sie keine Bedeutung haben und sich die Struktur auf andere Weise ergibt.
 +
 +==== Negative Werte ====
 +
 +Bei Aufwänden oder Ausgaben gibt es 2 Möglichkeiten: man notiert eine positive Zahl als die Höhe des Aufwandes und weiss, dass diese Zahl bei Verrechnung mit anderen Beträgen negativ interpretiert werden muss. Oder, man schreibt solche Zahlen als negative Zahl, wodurch alle Berechnungen mit simplen Additionen durchgeführt werden können.
 +
 +Als Programmierer ist mir das letztere lieber, da einfacher, aber auch die andere Sichtweise, wie in den Daten von Glückstadt, ist genauso legitim. Auch solche Daten werden richtig eingelesen, aber nur durch eine konkrete Annahme: die Interpretation richtet sich nach der ersten Zahl bei einem Aufwand. Ist die Zahl negativ, wird "negativ" als Standard übernommen und umgekehrt. Ist diese erste Zahl eine Erstattung, werden die nachfolgenden Daten nicht richtig interpretiert. Da diese erste Zahl aber immer Personalaufwendungen für die interne Verwaltung enthält, kann diese Zahl niemals eine Erstattung sein :-).
 +==== Buchungen ====
 +
 +{{:wiki:buchungen.png|Buchungen für Ergebnisposten}}
 +
 +Im gedruckten Haushalt wird jeder Posten der Ergebnisrechnung in einer Zeile dargestellt. Im Beispiel ist das für der Posten 11:Personalaufwendungen die erste Zeile der Posten. Diese Zeile ist die Summe der nachfolgenden Buchungen. Diese haben jeweils ein Konto (mit Nummer und Name) und die Zeitreihe. Die Buchungen sind der echte Mehrwert der maschienenlesbaren Daten: sie können viel detaillierter sein als eine gedruckte Version.
 +
 +Beim Einlesen der Daten werden nur die Daten mit Konto gespeichert. Die Summenzeilen werden aber genutzt, um die interne Konsistenz der Daten zu überprüfen. Beider Datensätze von Lübeck und Glückstadt sind sauber und geben keine Fehler: 
 +
 +  75625 Zeilen (3207 Buchungen, 914 checks) in 14.084774 seconds
 +  3094 Zeilen (823 Buchungen, 384 checks) in 835.174 milliseconds
 +==== (noch ein Thema) ====
 +
 +(schreib was)
/var/www/virtual/code4hl/html/dokuwiki/data/pages/haushaltsdaten.txt · Last modified: 2015/07/23 12:10 by christian