Eekboek stuurtaal: verschil tussen versies

Uit EekBoek
Naar navigatie springenNaar zoeken springen
(Toevoeging syntax Bakker)
kGeen bewerkingssamenvatting
 
(3 tussenliggende versies door 2 gebruikers niet weergegeven)
Regel 6: Regel 6:


== Syntax ==
== Syntax ==
 
=== Conventies ===
(Het is nog even zoeken naar de juiste vorm maar ik probeer een compact overzicht te creeren)
* ? = optioneel
* ? = optioneel
* * = nul of meer
* * = nul of meer
* + = een of meer
* + = een of meer
* | = alternatieven
* | = alternatieven
* ( ... ) = groepering
* '''''regel''''' = referentie naar een andere syntaxregel (vet-cursief)
* '''woord''' = letterlijke tekst (vet)
Voorbeeld: <b><i>regel</i></b>+ is een of meer regels, optioneel gescheiden door een backslash ('\').


=== Boekingen ===
=== Boekingen ===
<div style="font-family: Monospace">
<div style="font-family: Monospace">
{|
{|
Regel 24: Regel 27:
|-
|-
| [http://www.eekboek.nl/docs/bookings/bank.html Bankafschrift]:
| [http://www.eekboek.nl/docs/bookings/bank.html Bankafschrift]:
| bank(:nr)? datum omschrijving (<b><i>crd_regel</i></b> <nowiki>|</nowiki> <b><i>deb_regel</i></b> <nowiki>|</nowiki> <b><i>std_regel</i></b>)+
| bank(:nr)? datum omschrijving (--totaal=bedrag <nowiki>|</nowiki> --saldo=bedrag)* (<b><i>crd_regel</i></b> <nowiki>|</nowiki> <b><i>deb_regel</i></b> <nowiki>|</nowiki> <b><i>std_regel</i></b>)+
|-
|-
| [http://www.eekboek.nl/docs/bookings/cash.html Kas]:
| [http://www.eekboek.nl/docs/bookings/cash.html Kas]:
| kas(:nr)? datum omschrijving (<b><i>crd_regel</i></b> <nowiki>|</nowiki> <b><i>deb_regel</i></b> <nowiki>|</nowiki> <b><i>std_regel</i></b>)+
| kas(:nr)? datum omschrijving (--totaal=bedrag <nowiki>|</nowiki> --saldo=bedrag)* (<b><i>crd_regel</i></b> <nowiki>|</nowiki> <b><i>deb_regel</i></b> <nowiki>|</nowiki> <b><i>std_regel</i></b>)+
|-
|-
| [http://www.eekboek.nl/docs/bookings/memorial.html Memoriaal]:
| [http://www.eekboek.nl/docs/bookings/memorial.html Memoriaal]:
Regel 33: Regel 36:
|-
|-
| <b><i>crd_regel</i></b>:
| <b><i>crd_regel</i></b>:
| crd datum? crediteur bedrag
| <b>crd</b> datum? crediteur bedrag
|-
|-
| <b><i>deb_regel</i></b>:
| <b><i>deb_regel</i></b>:
| deb datum? debiteur bedrag
| <b>deb</b> datum? debiteur bedrag
|-
|-
| <b><i>std_regel</i></b>:
| <b><i>std_regel</i></b>:
| std datum? <b><i>regel</i></b>
| <b>std</b> datum? <b><i>regel</i></b>
|-
|-
| <b><i>regel</i></b>:
| <b><i>regel</i></b>:
Regel 45: Regel 48:
|}
|}
</div>
</div>
== Rekeningschema Bakker ==
In de opzet van meneer Bakker bestaat een rekeningsschema op twee niveaus. Een niveau is de manier van indelen, het tweede niveau is de indeling zelf.
De manier van indelen betreft de hoofdverdichtingen.
1  Vaste Activa
2  Vlottende activa
3  Eigen vermogen
enzovoorts. Bakker heeft daar een vaste indeling voor.
Het tweede niveau is de nummering van (hoofd)verdichtingen:
2  Vlottende activa
    21  Handelsvoorraden
        2100  Voorraad
    22  Vorderingen
        2200  Debiteuren
    23  Liquide middelen
        2300  Kas
Hier bepaalt in elk rekeningnummer het eerste cijfer de hoofdverdichting en de eerste twee cijfers de verdichting. Dat kan natuurlijk alleen maar als je minder dan 10 (hoofd)verdichtingen hebt, of je moet het erg ruim gaan aanpakken:
02  Vlottende activa
    0201  Handelsvoorraden
          020100  Voorraad
    0202  Vorderingen
          020200  Debiteuren
    0203  Liquide middelen
          020300  Kas

Huidige versie van 17 mrt 2011 om 18:39

EekBoek is een mooi voorbeeld van een 'Domain Specific Language' (DSL) (Zie de uitgebreide verhandelingen over DSL's van Martin Fowler).

Doordat het een 'taal' is, is EekBoek goed toegankelijk voor programmeurs en andere IT-specialisten die gewend zijn aan het werken met zelfgeschreven scripts en programma's.

De commando's kunnen interactief ingevoerd worden binnen de 'ebshell' maar ook ingevoerd in afzonderlijke bestanden die vervolgens als 'batch' verwerkt kunnen worden. Dit opent de mogelijkheid tot het automatiseren van (delen van) de boekhouding aan de hand van bijvoorbeeld geexporteerde bankafschriften. Met een programma of script kunnen de bankafschriften omgezet worden naar EekBoek commando's die vervolgens automatisch verwerkt kunnen worden.

Syntax

Conventies

  • ? = optioneel
  • * = nul of meer
  • + = een of meer
  • | = alternatieven
  • ( ... ) = groepering
  • regel = referentie naar een andere syntaxregel (vet-cursief)
  • woord = letterlijke tekst (vet)

Voorbeeld: regel+ is een of meer regels, optioneel gescheiden door een backslash ('\').

Boekingen

Inkoopfactuur: inkoop(:nr)? datum omschrijving crediteur (--totaal=bedrag)? regel+
Verkoopfactuur: verkoop(:nr)? datum omschrijving debiteur (--totaal=bedrag)? regel+
Bankafschrift: bank(:nr)? datum omschrijving (--totaal=bedrag | --saldo=bedrag)* (crd_regel | deb_regel | std_regel)+
Kas: kas(:nr)? datum omschrijving (--totaal=bedrag | --saldo=bedrag)* (crd_regel | deb_regel | std_regel)+
Memoriaal: memoriaal(:nr)? datum omschrijving (crd_regel | deb_regel | std_regel)+
crd_regel: crd datum? crediteur bedrag
deb_regel: deb datum? debiteur bedrag
std_regel: std datum? regel
regel: omschrijving bedrag rekening