home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
T.C. 1,001 Programme der Spitzenklasse
/
T._C._1001_Programme_der_Spitzenklasse.iso
/
richter
/
8607
/
8607.mhs
/
RICHTER.DTP
/
FBASIC
/
DEMO.BAS
< prev
next >
Wrap
BASIC Source File
|
1989-11-19
|
7KB
|
274 lines
Rectype Artrec
Recvar Artnummer$ 16
Recvar Bez1$ 30, Bez2$ 30
Recvar Lieferant$ 20
Recvar Preis 8:2
Recvar Bestand%
Endrec
Rectype WEinrec
Recvar Artnummer$ 16
Recvar Bez$ 30
Recvar Zugang%
Endrec
Rectype Kunden
Recvar Kundennr$ 4
Recvar Vorname$ 20, Name$ 20
Recvar Strasse$ 20, Ort$ 20
Recvar Rabatt%
Endrec
Dim HMenu$(5)
Dim anz$(20), arti$(20), Epreis(20)
Record Artrec Artikelsatz
Record WEinrec WEsatz
Record Kunden Kusatz, kuinit
Subroutine Info(s$)
Colour 7,0
Leer$ = " "
Locate 1,25 : Print Leer$;Leer$;
Locate 40-len%(s$)/2,25
Colour 7,1 : Print s$;
Colour 7,0
Locate 1,1
Endsub
Subroutine Hauptmenu%
HMenu$(1) = " Fakturieren Lagerverwaltung Kundenverwaltung "
HMenu$(2) = " Rechnungen erstellen "
HMenu$(3) = " Artikelstamm, Wareneingang, Warenausgang "
HMenu$(4) = " Kundendaten bearbeiten"
HMenu$(5) = ""
Colour 7,0 : cls 176
Menu HMenu$,15,3 'Menu anzeigen
cls
Return lastkey%() 'und gedrueckte Taste zurueckgeben
Endsub
Subroutine Gesamtpreis()
Local i%, G
G = 0.0
For i% = 1 To 20
G = G + Epreis(i%)
Endfor
Return G
Endsub
Subroutine Ersetze(var z$, alt$, neu$)
Local i%, G
i% = Instr%(z$,alt$)
if i% Then
Delete$ z$,i%,len%(alt$)
Insert$ z$,i%,neu$
Endif
Endsub
Subroutine Faktdrucken
Local i%
Line Input #1,Zeile$
While Left$(zeile$,1) <> "#"
Gosub Ersetze(Zeile$,"&Date&",TimeDate$(3))
Gosub Ersetze(Zeile$,"&Name&",Kusatz.name$)
Gosub Ersetze(Zeile$,"&Vorname&",Kusatz.vorname$)
Gosub Ersetze(Zeile$,"&Strasse&",Kusatz.strasse$)
Gosub Ersetze(Zeile$,"&Ort&",Kusatz.ort$)
LPrint Zeile$
Line Input #1,Zeile$
Wend
For i% = 1 To 20
If anz$(i%) = "" Then Break
Dbget #1,arti$(i%),Artikelsatz
LPrint anz$(i%);" ";arti$(i%),Artikelsatz.bez1$;
LPrint Using " ##,###.##";Artikelsatz.Preis;Epreis(i%)
Endfor
G = Gesamtpreis()
LPrint
LPrint "Gesamtpreis ";Using "##,###.##";G
LPrint "Ihr Rabatt ",Kusatz.Rabatt%;"%"
G = G * (100-Kusatz.Rabatt%) / 100
LPrint "Zu zahlen ";Using"##,###.##";G
Line Input #1,Zeile$
While Left$(zeile$,1) <> "#"
LPrint Zeile$
Line Input #1,Zeile$
Wend
LPrint Chr$(12)
Endsub
Subroutine Fakturierung()
Local i%, y%, ext$, file$
i% = 1 : y% = 1
Gosub Info("Formular auswählen")
ext$ = "txt" : file$="fakt"
Files "",ext$,file$
If lastkey%() = 27 Then Return 0.0
Open "I",#1,file$+"."+ext$
Dbopen #2, "kunden"
A:
while 1
Gosub Info("? Übersicht")
Dialog "Kundennummer ",kunr$,4
If lastkey%() = 27 Then Goto End
If Left$(kunr$,1) <> "?" Then Break
Gosub Info("ESC=Ende PgUp PgDn")
Dbbrowse #2,"","4,16,16,16"
wend
Dbget #2,kunr$,kusatz
If error%() Then
Gosub Info(" Kunden-Nr. unbekannt [Taste]") : Input taste%
Goto a
Endif
Colour 3,0
Print "KUNDE: ";Kusatz.Kundennr$;" ";Kusatz.vorname$;" ";Kusatz.name$
Print : Print "Anz. Artikel"
Colour 7,0
Gosub Info("ESC=Ende TAB")
Dbopen #1, "artikel"
While 1
If i% = 1 Then
Dialog "",anz$(y%),3,1,y%+3
Locate 1,y%+3 : Print anz$(y%)
Else
Dialog "",arti$(y%),16,5,y%+3
Locate 5,y%+3 : Print arti$(y%)
Dbget #1,arti$(y%),Artikelsatz
If error%() = 0 Then
EPreis(y%) = Artikelsatz.Preis * Val%(anz$(y%))
Locate 25,y%+3
Print Artikelsatz.bez1$;
Print Using " ##,###.##";Artikelsatz.Preis;Epreis(y%)
Else
Epreis(y%) = 0.0
Endif
Endif
c% = lastkey%()
If c% = 27 Then Break
If c% = 13 Then
If i% = 2 Then y% = y%+1
i% = 3-i%
Elseif c% = 200 Then
y% = y%-1
Elseif c% = 208 Then
y% = y%+1
Elseif c% = 9 Then
i% = 3-i%
Endif
If i% < 1 Then i% = 1
If i% > 2 Then i% = 2
If y% < 1 Then y% = 1
If y% > 20 Then y% = 20
Wend
Gosub Faktdrucken()
Goto A
End:
Close #1
Dbclose #1
Dbclose #2
Endsub
Subroutine WEin()
s$ = "Wareneingang;(Artikelnummer);(Bezeichnung);Zugang;"
Dbopen #1,"artikel"
art$ = " "
while 1
Dialog "Artikelnummer: ",art$,16,24,2
If (lastkey%()) = 27 Or (art$ = "") Then Break
Dbget #1,Art$,Artikelsatz
If error%() <> 0 Then
Message "Datensatz existiert nicht| OK"
Else
WEsatz.artnummer$ = Artikelsatz.artnummer$
WEsatz.bez$ = Artikelsatz.bez1$
WEsatz.zugang% = 0
Form WEsatz, s$
Artikelsatz.bestand% = Artikelsatz.bestand% + WEsatz.zugang%
Dbput #1, Artikelsatz
Endif
Wend
Dbclose #1
Endsub
Subroutine Astamm()
s$ = "Artikelstamm;(Artikelnummer) ;Bezeichnung;;Lieferant;Preis;Bestand;"
Dbopen #1,"artikel"
Repeat
Locate 34,5 : Print "(+ - ESC)"
Dialog "Artikelnummer: ",art$,16,24,2
If lastkey%() = 27 Then Break
Dbget #1,Art$,Artikelsatz
Form Artikelsatz, s$
Dbput #1,Artikelsatz
Until art$ = ""
Dbclose #1
Endsub
Subroutine Lager
HMenu$(1) = " Artikelstamm Wareneingang "
HMenu$(2) = ""
cls 176
Menu HMenu$,20,3 'Menu anzeigen
cls 176
if lastkey%() = 1 Then Gosub Astamm()
if lastkey%() = 2 Then Gosub WEin()
Endsub
Subroutine Kunden()
s$ = "Kundenstamm;(Kundennummer) ;Name;;Strasse;Ort;Rabatt %;"
Dbopen #1,"kunden"
Repeat
Locate 30,5 : Print "(+ - nn* nn? ESC)"
While 1
Dialog "Kundennr.: ",key$,4,30,2
If lastkey%() = 27 Then Goto End
If Right$(key$,1) <> "?" Then Break
Locate 35,2
Print "Kundenstamm"
Dbbrowse #1,Left$(key$,len%(key$)-1),"4,16,16,16"
Cls
Wend
Dbget #1,key$,kusatz
err% = error%()
If Right$(key$,1) = "*" Then err% = 0
If err% = 0 Then
Form kusatz, s$
Dbput #1,kusatz
Else
Kusatz = NIL
Kusatz.kundennr$ = key$
Form kusatz, s$
mess$ = "Neuen Datensatz anlegen| Ja Nein"
Message Mess$
If lastkey%() = 1 Then Dbput #1,kusatz
Endif
Until key$ = ""
End:
Dbclose #1
Endsub
' *** Hauptprogramm ***
Anfang:
Auswahl% = Hauptmenu%() 'Subroutine als Funktionsaufruf
'gibt ausgew. Menupunkt zurueck
If Auswahl% = 0 Then
colour 7,0 : cls : Stop
Elseif auswahl% = 1 Then
Gosub Fakturierung()
Elseif auswahl% = 2 Then
Gosub Lager()
Elseif auswahl% = 3 Then
Gosub Kunden()
Endif
Goto anfang