#

Cobukas  -  Eine verständliche, leicht bedienbare Buchführung

 
 

Dokumentationen

 
      Grundverständnis Rechnungswesen  ->Bildung->Fachwissen ->Hier aufrufen
 
      Grundverständnis Doppik im Rechnungswesen  ->Bildung->Fachwissen ->Hier aufrufen
 
Bedienungsanleitung ->Hier aufrufen
 
Dokumentationssstand ->Hier aufrufen
 
Hier finden Sie einen Überblick über den Dokumentationsstand und die Links auf die einzelnen Dokumentationen.
 
Leitdokument - Dieses Dokument
 

Leitdokument

 
Entwicklung abgeschlossen
 
Änderungen
 
Projektziel
 
Projektentwicklung
 
Projektüberlegungen und Designentscheidungen
 
Projektbeteiligung
 
Ansprechpartner

Entwicklung abgeschlossen

 
Das Programm ist fertig. Die aktuelle Versionnummer finden Sie im Titel.
 
Das Programm befindet sich im mehreren Jahren im Gebrauch. Das bedeutet aber nicht, dass alle Fehler beseitigt sind. Sollten Sie Fehler entdecken, mailen Sie diese bitte an 'Hans-Josef.Heck  (wo)  wissenschaffen-und-handeln.de'
 
Dieses Programm steht unter der GPL, der General Public Licence.
 
Es steht jedem frei, dieses Programm zu nutzen. Dies setzt aber voraus, dass der Nutzer auf  jegliche Ansprüche gegen die Entwickler und Portierer verzichtet. Diese übernehmen keinerlei Gewähr für irgendetwas.
 
Das Programm kann vom FTP-Server heruntergeladen werden. Einzelheiten dazu finden Sie in der Bedienungsanleitung.
 
Die Quellen haben wir ebenfalls auf unseren Server gestellt:  Sowohl die Originalversion als auch die portierte Version finden Sie dort.
 
In den neuen Quellen findet sich noch viel ursprüngliches Material, welches dann als Kommentar geklammert ist. Damit soll die Möglichkeit erhalten bleiben, das Programm weiterzuentwickeln.

Änderungen


    01.08.10 - Version 1.05 :

               Zwei kleine Unterschiede zwischen Linux und WinDOS machten bei
               der WinDOS Version Probleme:

               - Die Schrägstriche waren nicht alle umgestellt von / auf \.
                 um dies besser kontrollieren zu können, wurden alle / als
                 Trennung zwischen (Auf/Ab) zum Beispiel umgewandelt in
                 (Auf|Ab). Jetzt wird / nur noch fürs Teilen und in Linux für
                 die Pfadnamen benutzt.

               - Komma und Punkt sind bei Fließkommazahlen (Float) vertauscht!
                 Die Eingabe eines Punktes muss daher unter WinDOS in ein Komma
                 umgesetzt werden, bei Linux die Eingabe eines Kommas in einen
                 Punkt. 


    01.08.10 - Version 1.04 :
               
               Cobukas muss ab jetzt immer aus dem "Buchführungsverzeichnis"
               heraus aufgerufen werden, weil die Umgebungsvariable 'PWD' als
               'CBKDIR' übernommen wird.

               Die Module 41auswstg, 42auswjour, 43auswsal und 44auswapg wurden
               um die Kontrolle auf ein leeres Journal ergänzt.

               Die Portierung nach WinDOS ist abgeschlossen.

                 Cobukas läuft unter WinDOS (im Fenster "Eingabeaufforderung")
                 absolut identisch. Es muss unter WinDOS allerdings beim ersten
                 Aufruf über 'startcbk1' aufgerufen werden, weil es keine
                 Umgebungsvariable 'PWD' (Arbeitsverzeichnis) gibt. 'startcbk1'
                 setzt diese und ruft dann 'cbk.exe' auf. Danach kann das
                 Programm einfach durch 'cbk' aufgerufen werden.

               Im Programm musste 'textColor' ersetzt werden durch  'TextAttr',
               weil textColor unter WinDOS auch den Hintergrund verändert. Die
               Werte für 'TextAttr' sind unter Linux und WinDOS aber leider
               verschieden:  Die fpc-Compiler verhalten sich anders. Die
               Unterschiede herauszufinden, war mühsam. WinDOS kennt von jeder
               Farbe eine helle und eine dunkle Version. Linux nur eine
               mittlere.

                 Die hellen Farbwerte liegen bei WinDOS im Bereich von
                 '9'-'14'. Linux fängt bei diesen Werten an zu blinken (in der
                 entsprechenden Farbe). Man muss unter Linux daher die Werte
                 '1'-'7' verwenden. Diese Werte sind bei WinDOS als Hintergrund
                 so dunkel, dass man die Schrift nicht mehr lesen kann. 
                 Für einen farblichen Hintergrund muss man unter WinDOS daher
                 die helleren Werte nehmen.

                 Bei Linux ist der Wert für den weißen Hintergrund '0', bei
                 WinDOS '15'. Wenigstens sind die Werte für den schwarzen
                 Vordergrund (Textfarbe) bei beiden identisch, nämlich '0'.

               Die Quelltexte unterscheiden sich ferner natürlich in der
               Pfadangabe: '/' oder '\'. 

    18.07.10 - Version 1.03 :

               Die Umgebungsvariable CBKDIR durch PWD ersetzt. Dadurch erübrigt
               sich die Startupdatei 'startcbk1' unter Linux, wenn auch die Unter-
               verzeichnisse 'configSYS' und 'configPAR1' im Verzeichnis 'PWD'
               liegen. Starten nur noch durch Aufruf von 'cbk'. Vorher ins
               Buchführungsverzeichnis wechseln!

    07.07.10 - Version 1.02 :

               Masken und 'cobukas.par' in zwei unterschiedliche  Verzeichnisse
               gelegt. Dafür eine neue Umgebungsvariable 'CBKPARCONFIG'
               eingeführt.

               In einer Startupdatei (startcbk1) werden die Umgebungsvariablen
               gesetzt, in das Arbeitsverzeichnis gewechselt und das Programm
               aufgerufen.
               
               Dadurch wurde die Einrichtung und die Anpassung an
               unterschiedliche Situationen - und damit auch die
               Bedienungsanleitung vereinfacht.

    16.01.10 - Version 1.01 :

               Vergessene, eingesetzte Leerzeilen führen nicht mehr zu einem
               Zugriffsfehler. Leerzeilen werden nach Aufruf von
               'F12 - Abspeichern' automatisch entfernt.

    15.01.10 - Fehler bei der wiederholten Ausgabe eines Kontos beseitigt.
               Trat erst nach Compilieren mit neuer Compilerversion auf.

    12.12.09 - Version 1.00 :

               Alte bekannten Fehler sind beseitigt und die 

               Bedienungsanleitung und Dokumentation ergänzt.

               Der Zugriffsfehler bei der GUV-Aufstellung, wenn es noch keine
               Aufswands- oder Ertragsbuchungen gab, ist beseitigt und durch
               eine Warnmeldung ersetzt.

    05.12.09 - Die Übernahme von fertigen Belegen (=Belegvorlagen) eingebaut.
               Nach Eingabe von Belegnummer und Belegdatum erfolgt über
               Taste (F5) die Eingabe des Dateinamens. Die Belegvorlagen
               befinden sich im Verzeichnis 'vorlagen'. 

    03.12.09 - Neucompilieren zeigte fehlende Laufvariable und
               produzierte Fehler beim Tauschen von Belegzeilen. - Behoben

               Die TastenCodes wurden ersetzt durch Bezeichner,
               die in cbk01alle zentral definiert wurden, wie es sich gehört.

               Die Tastenzuordnung für die Bedienung von Listen und die Veränderung
               einer Belegnummer oder eines Datums wurden stringent definiert:

                   PfeilAuf/PfeilAb = ETZ = Einer     / Tag   / Zeile
                   SeiteAuf/SeiteAb = ZMS = Zehner    / Monat / Seite
                   Anfang/Ende      = HJL = Hunderter / Jahr  / Liste
               
               Die Bezeichner mit '...Bild' geändert in '...Seite'

    22.02.07 - Buchungsjahr fixieren (211):
               Übernimmt als Voreinstellung das Buchungsjahr wenn fixiert,
               bietet ansonsten '2000' als Ausgangspunkt für die Einstellung an.

    22.02.07 - Erzeugen neuen Benutzer (241):  
               Das Buchungsjahr wird voreingestellt mit aktuelles Jahr + 1
               Meldung, dass neuer Benutzer angelegt wurde.

    29.01.07 - Die Kontenparameter 'UstArt' (K,U,V) und 'UstKennziffer'
               können jetzt nachträglich geändert werden. Einzelheiten
               siehe Bedienungsanleitung: 'Konten und Kontenliste verwalten'
xxx
    16.12.06 - Positionsauszüge möglich: 
               Auflistung aller Konten einer Aktiv/Passiv/GuV-Position

    16.12.06 - Inkonsistenzen im Layout beseitigt

    16.12.06 - Benutzerauswahl: Der Benutzer, dessen Journal zuletzt geändert
               wurde, steht an erster Stelle in der Benutzerauswahl.

    13.12.06 - Schönheitsreparaturen bei den Auswertungen

    13.12.06 - Ausgabe in Dateien: 
               Warnmeldung: Stichtag nicht das maximal mögliche Belegdatum

    12.12.06 - Ausgabe in Dateien: 
               Die Zahlen werden nur mit DezimalPunkt ausgegeben

    12.12.06 - Warnmeldung, wenn Stichtag nicht das maximal mögliche Belegdatum ist

    12.12.06 - Stichtag-Standard ist maximal mögliche Belegdatum

    11.11.06 - Buchen Belege (3) Absturz: 
               Dekrementieren von Datum '01.01.0001' wird abgefangen

    09.11.06 - Auswertung Journal (42) ergänzt: Ausgabe der Kontonummer 

    06.11.06 - Auswertung Journal (42) Fehler beseitigt:  
               Absturz, wenn noch keine Buchungen

    19.10.06 - Bedienungsanleitung vervollständigt

    19.10.06 - Dokumentation akualisiert

    16.10.06 - Platzhalter für letzte nicht implementierte Funktion beseitigt

    08.10.06 - Umgebungsvariable CBKSYSCONFIG eingebaut

    07.10.06 - Dokumentation aktualisiert -> fertig-zutun: alles auf 'f':  Glückauf!

    07.10.06 - Umsatzsteuerkonten zuordnen: implementiert

    05.10.06 - Ausgeben Kontenplan (339-F4) wird nicht implementiert - (F4) gelöscht

    05.10.06 - Ausdrucken Postionslisten (231/232/233-F4): implementiert

    05.10.06 - Ausdrucken Kontenplan (223-F4): implementiert

    03.10.06 - Bereich Hilfsprogramme (50):  entfällt

    30.09.06 - Neuen Benutzer anlegen (241): implementiert

    30.09.06 - Setzen Belegdatum (39):
               Unterschiedliche Monatsenden jetzt ohne Problem.

    29.09.06 - Diverse kleinere Änderungen an Code und Namensgebung

    26.09.06 - Setzen Stichtag (41):
               Unterschiedliche Monatsenden jetzt ohne Problem.
  

Projektziel

 
Cobukas ist ein (früher) an vielen Schulen eingesetztes Buchführungsprogramm. Es ist sehr klar und einfach strukturiert und nicht nur für Unterrichtszwecke sondern auch für kleinere Firmen oder Vereine gut geeignet.
 
Cobukas ist den kommerziellen, 'professionellen' Varianten deshalb überlegen, weil es keine Elemente besitzt, die in Ausbildung und einfachen Anwendungen überflüssig sind.
 
Die drei Entwickler, Jürgen Plaga (beso software), Gregor Kuhlmann und Dr. Wehmeier (beides Schulleiter an berufsbildenden Schulen) haben die bisherige Entwicklung (die Quellen) an die OpenSource-Gemeinde gegeben, damit diese Software in eine plattformunabhängige Form gegossen werden kann. Das hat diese Software auch verdient.
 
Den Entwicklern sprechen wir im Namen der OpenSource-Gemeinde an dieser Stelle unseren Dank aus.
 
Das Programm lief ursprünglich unter DOS. Es besaß daher keine graphische Oberfläche. Dies kann auch so bleiben:
 
Die Anwendung selbst ist rein textorientiert und benötigt zur Bedienung keinerlei Knöpfe/Taster.
 
Cobukas wurde in TurboPascal 6.0 geschrieben. Für die Portierung wurde der TurboPascal-kompatible Compiler 'Free Pascal' (fpc) gewählt. Er ist sehr leistungsfähig, auch und besonders aufgrund seiner umfangreichen Laufzeitbibliothek.
 
Projektziel war es nicht, den gesamten Umfang der ursprünglichen Version zu portieren, sondern nur die Doppelte Buchführung in ihrer prinzipiellen Form. Nicht portiert wurden bisher zum Beispiel
 
die Einnahmen-Ausgaben-Rechnung, die Kosten- und Leistungsrechnung, die Offene-Posten-Buchhaltung, die Hilfsroutinen zum Verteilen und Einsammeln von Aufgaben.
 
Die Quellen dafür stehen zur Verfügung - sollte sich jemand am weiteren Ausbau von Cobukas interessiert zeigen.

Projektentwicklung

 
Der alte Quellcode hatte mit den DOS-Beschränkungen zu kämpfen. Die gesamten Daten und die umfangreichen Arbeitsmöglichkeiten sollten in den Arbeitsspeicher passen. Von diesen Beschränkungen sind wir heute befreit. Das heißt, wir brauchen im Quellcode nicht auf Arbeitsspeicherplatz Rücksicht zu nehmen. Der im Prinzip gleiche oder ähnliche Quellcode kann an Ort und Stelle verwendet werden und muss nicht in ein Unterprogramm ausgelagert werden. Der gesamte Quellcode wird viel leichter verständlich.
 
Um die Verständlichkeit zu heben, wurden alle Dateinamen, Prozedur- und Funktionsbezeichner, sowie alle Bezeicher für die Daten -auch für die Laufvariablen - 'sprechend' gemacht: Sie bezeichnen jetzt das, wofür sie da sind.
 
Verschwunden sind so allgemeine Bezeichner wie 'name' 'text', 'nr', 'para', 'saldo', ...
 
Verschwunden sind Laufzeitvariable wie 'i, j, k, l, n, ...'. Man soll verstehen, worüber iteriert wird.
 
Die Änderungen haben wir dokumentiert, damit man weiß, wonach im alten Quellcode zu suchen ist.
 
Cobukas erzeugte Fenster über Fenster. Auch dies trug dazu bei, dass der Quellcode schwierig zu durchschauen war. Da Cobukas ein rein textorientiertes Programm geblieben ist, läuft es problemlos in einem Terminalfenster (Konsole). Das DOS-Fenster kannte nur 25 Zeilen. Eine Beschränkung, die es nicht mehr gibt. Die Zeilenbreite von 80 Zeilen wurde aber beibehalten.
 
Im Gegensatz zu DOS können Sie heute mehrere Fenster auf dem Bildschirm öffnen. Ein Kontenliste muss daher nicht in der aktuell laufenden Anwendung gezeigt werden. Entweder lassen Sie sich eine Kontenliste ausdrucken, oder öffnen diese in einer zweiten, parallel laufenden Cobukas-Anwendung.

Projektüberlegungen und Designentscheidungen

 
Der OriginalQuellcode ist schwer zu verstehen. Aufgrund der DOS-Beschränkungen hat man sich damals wohl bemüht, nichts doppelt zu programmieren. Dies hat zu vielen kleinen Funktionen und Prozeduren geführt, die zig-fach in einander verschachtelt, das Verständnis für die Funktionsweise des Codes nicht gerade befördern.
 
Die Struktur der Units war funktional aufgebaut, aber äußerlich nicht so gut erkennbar. Durch entsprechende Nummerierungen wird dies jetzt deutlicher.
 
In der Tendenz ist im neuen Code alles - soweit wie möglich - an Ort und Stelle erledigt worden, damit man lesen kann, was auf dem Bildschirm und in der Verarbeitung passiert.
 
Für die Darstellung der Listen, von denen es ja viele gibt, ist jetzt eine grundsätzliche - leicht verständliche - Verarbeitungsstruktur vorhanden, die sich immer wiederholt, mit den gebotenen örtlichen Änderungen.
 
Die Datenstruktur ist die gleiche geblieben. Nur das Format des Datums wurde verändert: Die Laufzeitbibliothek des fpc-Compilers bringt dieses nebst passenden Verarbeitungsroutinen mit. Das spart.
 
Die Datei mit den Geschäftsvorfällen muss daher umgesetzt werden auf das neue Datumsformat, was aber durch die Lese-Schreib-Routine 'rbwj' (read-buch-write-jour ) erledigt wird.
 
Um die Datenstruktur besser vor Augen zu haben, sind in der Unit "cbk02satz.pas" jetzt als Kommentare die vollständigen Namen aller Variablen der in eineinander verschachtelten Records aufgelistet. Man kann sich dann eine bessere Vorstellung machen, mit welcher Größe man eigentlich umgeht.
 
Die Bezeichner von Daten, Dateien und Prozeduren/Funktionen wurden so geändert, dass man sofort erkennt (wenn man in der Materie steht), welche Funktion gemeint ist.
 
Auf eine ganz Reihe von Funktionen und Prozeduren konnte verzichtet werden. Die mit Free Pascal mitgelieferte Laufzeitbibliothek (RTL) enthält diese inzwischen.
 
Die Anzahl der Units sollte und konnte reduziert, die Codestruktur klarer gestaltet werden:
 
Diese Portierung verzichtet auf die Einnahmen-Überschuss-Rechnung.
 
Zur Auswahl eines neuen Benutzers muss das Programm neu gestartet werden. Hier hatte das alte Programm sowieso Schwierigkeiten, wenn zwei größere Anwendungen nacheinander geladen wurden.
 
Ein Funktion kann immer nur von einer Stelle her aufgerufen werden (keine "Querverbindungen"), zum Beispiel das Einrichten eines neuen Kontos.
 
Ertragskonto und Umsatzsteuerkonto sind über die Umsatzsteuerkennung fest miteinander gekoppelt, damit eine Verprobung der Ertragskonten möglich wird.
 
Die Vorsteuerkennung ist im Kontenplan zwar auch voreingestellt, kann man aber während des Buchens ändern: Die möglichen Optionen werden angeboten und die Auswahl kontrolliert.
 
Diese Änderungsmöglichkeit der Voreinstellung kann man aber auch unterbinden:  Dafür ist ein "V" an beliebiger Stelle in der ersten Zeile der Datei 'cobukas.par' einzusetzen.

Projektbeteiligung

Thomas Rohde
 
Hans-Josef Heck

Ansprechpartner

CC-logo  Hans-Josef.Heck  (wo)  wissenschaffen-und-handeln.de