Avatar

building a cost control system with Basic-256 (New Features)

by DickStomp2 @, NL- SASSENHEIM, Saturday, February 21, 2015, 22:34 (1029 days ago) @ DickStomp2

The next step is sorting 1) Budget and 2) Date!
Ordinary step in BASH...
Then follows building the report per Budget...
This is a nice one! I like it! Old fashioned COBOL programming like in the 70ties!!
RapKostBouwen.kbs:

# Kosten Rapport opbouwen
#1 Start
#2 lees record
#3 noteer Groep
#4 schrijf record
#5 Lees record
#6 Zelfde groep?
# nee: schrijf totaal
# noteer groep
#7 eind bestand?
# nee: ga naar 4
#8 schrijf eind
#9 sluit

gosub init
print currentdir
if exists(uitvoer$) then kill uitvoer$

open (invoer, invoer$)
open (uitvoer, uitvoer$)
write (uitvoer, " "+Koptekst$+chr(13)+chr(10)+chr(10))
regel = 2
gosub LeesInvoer
telin = telin + 1
groep$ = kosten$
telgroep = telgroep + 1
buf = 1

while not eof (invoer)
while groep$ = kosten$ and not eof (invoer)
telin = telin + 1
gosub VulBuffer
gosub LeesInvoer
end while
gosub EindGroep
end while

getal = totaal2
call editnum(ref(getal),ref(getal$))
writeline (uitvoer," " + getal$ +" Totaal Totaal")

close (invoer)
close (uitvoer)
print "In: "+telin+" + Groepen: "+telgroep+" = Uit: "+teluit
print "Klaar"
end

init: #
Koptekst$ = "Grootboek "+day+"-"+(month+1)+"-"+year
regel = 2
invoer = 0
uitvoer = 1
invoer$ = "RapKostS.csv"
uitvoer$ = "RapKostText.rtf"
kosten$ = ""
telin = 0
teluit = 0
telgroep = 0
totaal = 0
totaal2 = 0
dim buffer$(90)
buffermax = 40
buf = 0
regel = 0
regelmax = 63
return

LeesInvoer: #
indata$ = readline (invoer)
if length(indata$)<10 then
return
end if
veld$ = explode(indata$, ",")
kosten$ = left(veld$[0]+" ",5)
datum$ = veld$[1]
bedrag$ = veld$[2]
bedrag = float(bedrag$)
oms$ = left(veld$[5], 50)
if right(oms$,1) = chr(10) then
oms$=left(oms$,length(oms$)-1)
end if
return

EindGroep: #
getal = totaal
call editnum(ref(getal),ref(getal$))
buffer$[buf] = left(groep$ +" ",6)+ getal$+" "+" Totaal"
buf = buf + 1
MaandBedrag = getal / 12
call editnum(ref(MaandBedrag),ref(getal$))
buffer$[buf] = left(groep$ +" ",6)+ getal$+" "+" /Maand"
buf = buf + 1
buffer$ [buf] = " "
bufmax = buf
gosub SchrijfBuffer
groep$ = kosten$
telgroep = telgroep + 1
return

VulBuffer: #
getal = float(bedrag$)
call editnum(ref(getal),ref(getal$))
buffer$[buf] = left(kosten$+" ",6)+getal$+" "+datum$+" "+oms$
buf = buf + 1
totaal = totaal + bedrag
totaal2 = totaal2 + bedrag
return

SchrijfBuffer: #
if regel + bufmax > regelmax then
gosub NieuwBlad
end if
for buf = 1 to bufmax
writeline (uitvoer, buffer$[buf])
teluit = teluit + 1
regel = regel + 1
if regel > regelmax then
gosub NieuwBlad
end if
next buf
totaal = 0
buf = 1
return

NieuwBlad: #
write (uitvoer, chr(12) + " " + Koptekst$ + chr(13) + chr(10) + chr(10)) # FormFeed
regel = 2
return

include "editnum.kbs"


Complete thread:

 RSS Feed of thread

powered by my little forum