home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: InfoMgt
/
InfoMgt.zip
/
kim21.zip
/
BSP6.KIM
< prev
next >
Wrap
Text File
|
1995-07-01
|
8KB
|
253 lines
rem Name : BSP6.KIM
rem Datum : März 1994
rem Version : 1.0
rem Programm : Terminverwaltung mit DBASE/FOXPRO Grundlage
rem Programmierer : EDV-Kohlenbach
rem Zunächst die Definition einiger Variablen und das Laden der Icondatei
deffloat a,i,t,flag,taste
defstring objekt
load_dat "icon.dat",a
rem Die Module zur Datenbank- und zur Oberflächenerstellung werden aufgerufen
call db_oeffnen()
call fenster_def("window", 2, 2, 65, 12,"Terminverwaltung")
call fenster_inhalt("window")
rem Das Hauptfenster wird nun auf dem Monitor ausgegeben
win_paint "window"
rem Nun die Eventschleife zur Steuerung der Benutzeraktionen auf der OberflΣche
while i<>1000
win_ev i
get_item_pos objekt,taste
if taste=13 then
call auswerten(objekt,i)
endif
wend
rem Die Datenbank wird geschlossen und das Programm beendet
iclose 1
end
rem ---------------------------------------------------------------------
rem U N T E R P R O G R A M M E
rem ---------------------------------------------------------------------
rem Modul zur Erstellung des Hauptfensters
modul fenster_def(char id, float x, float y, float xr, float yr, char ueber)
def_window id,x,y,xr,yr
def_window id, x, y, xr, yr
def_system_button "system_button",0
def_max_button "max_button"
def_min_button "min_button"
def_border "border"
def_titel "titel",ueber
rem Die definierten Objekte werden dem Fenster angefügt
add_item id,..
"border",..
"max_button",..
"min_button",..
"system_button",..
"titel"
endmod
rem Modul zur Definition der Eingabemaske und der Toolbar
modul fenster_inhalt(char fenster_def_id)
def_prompt "aus1",1,1,"Name "
def_prompt "aus2",1,0,"Zeit "
def_prompt "aus3",18,0,"Datum "
def_input_time "inp1",10,0, 7,soft1,"" ;"border"
def_input_date "inp2",27,0,12,soft2,"" ;"border"
def_string "inp3",10,1,40,soft3 ;"border"
def_text "inp4",1,2,55,10,10000,soft4 ;"border","wrap off"
def_toolbar "toolbar",0,0,80,5 ;"region off"
def_button "b0",0,0,10,"" ,"&Speichern"
def_button "b1",0,0,10,"" ,"&Loeschen "
def_button "b2",0,0,10,"" ,"&>>> "
def_button "b3",0,0,10,"" ,"&<<< "
def_button "b4",0,0,10,"" ,"&Quit "
def_button "b5",0,0,10,"" ,"&Neu "
def_button "b6",0,0,10,"" ,"&Finde "
rem Die Buttons werden der Toolbar angefⁿgt
add_item "toolbar","b0","b1","b5","b2","b3","b4","b6"
rem Scrollbars werden definiert und dem Kommentarfeld hinzugefⁿgt
def_scrollbar "scroll1",0,0,0,0,0
def_scrollbar "scroll2",1,0,0,0,0
add_item "inp4","scroll1","scroll2"
rem Zuletzt werden alle Objekte dem Hauptfenster angefⁿgt
add_item "window","toolbar","aus1","aus2","aus3","inp1","inp2","inp3","inp4"
endmod
rem Modul zur Auswertung der Aktionen des Benutzers
modul auswerten(char obj,float i)
deffloat a,flag
defstring expr
if obj="b0" then
rem Daten aus den Eingabefeldern werden gespeichert
call daten_schreiben()
imodrec 1,soft
endif
if obj="b1" then
rem Aktueller Datensatz wird gelöscht
idel 1
call daten_ausgeben()
endif
if obj="b2" then
rem Der nächste Datensatz wird herausgesucht und angezeigt
inext 1,a,soft
call daten_ausgeben()
endif
if obj="b3" then
rem Der vorhergehende Datensatz wird herausgesucht und angezeigt
iprev 1,a,soft
call daten_ausgeben()
endif
if obj="b4" then
rem Das Programm wird beendet
msgbox "Programm beenden",1,flag,"frage2"
if flag=1 then
i=1000
endif
endif
if obj="b5" then
rem Die Eingabefelder werden für eine Neueingabe geleert
clear soft,1,4
iadd 1,soft
call daten_ausgeben()
endif
if obj="b6" then
rem Die Suchfunktion wird aufgerufen
call fenster_suchen()
call daten_ausgeben()
endif
endmod
rem Modul zur Auswertung von Aktionen im Suchfenster
modul fenster_suchen()
deffloat i,flag,taste
defstring obj
rem Das Modul zur Suchfensterdefinition wird aufgerufen und angezeigt
call erstelle_suchfenster()
win_paint "suche"
rem Eine Eventschleife zur Steuerung der Benutzeraktionen im Suchfenster
while i<>1000
win_ev i
get_item_pos obj, taste
If taste=13 then
If obj="bx1" then
call such_auswerten()
i=1000
endif
if obj="bx2" then
i=1000
endif
endif
wend
rem Das Suchfenster wird geschlossen
event_on_item "suche","end"
endmod
rem Modul zum Suchen von DatensΣtzen
modul such_auswerten()
DEFSTRING expr
deffloat ok
get_item "kr1",soft1
if soft1<>"" then
iset 1, "Name_Tag", expr
iread 1, ok, soft1, soft
exitmod
endif
get_item "kr2", soft2
if soft2<>"" then
iset 1, "Datum_Tag",expr
iread 1, ok, soft2, soft
endif
endmod
rem Modul zur Definition des Suchfensters
modul erstelle_suchfenster()
rem Das Modul zur Definition eines Fensters wird aufgerufen
call fenster_def("suche", 3, 2, 50, 12, "Suchen")
rem Zusätzliche Objekte werden definiert und dem Fenster angefügt
def_prompt "such1",10,0,"Geben Sie einen Suchbegriff"
def_prompt "such2",10,1,"im entsprechenden Feld an"
def_prompt "such3",1,3,"Name"
def_prompt "such4",1,4,"Datum"
def_input_date "kr1",8,4,11," . . ","" ;"border"
def_string "kr2",8,3,40,"";"border"
def_button "bx1",3,8,20,"","&Suchen beginnen"
def_button "bx2",25,8,20,"","&Abbruch"
add_item "suche",..
"such1",..
"such2",..
"such3",..
"such4",..
"kr1",..
"kr2",..
"bx1",..
"bx2"
endmod
rem Modul zur Ausgabe von Daten auf dem Bildschirm
modul daten_ausgeben()
set_item_array "inp",soft,1,4
endmod
rem Modul zum Einlesen von Daten aus den Eingabefeldern in die Recordstruktur
modul daten_schreiben()
get_item "inp1",soft1
get_item "inp2",soft2
get_item "inp3",soft3
get_item "inp4",soft4
endmod
rem Modul zur Definition und Erstellung einer Datenbank mit Recordstruktur
modul db_oeffnen()
rem Zunächst die Recordstruktur
DEFFLOAT a
DEFSTRING expr
DEFINE soft1, 10 AS Zeit
DEFINE soft2, 10 AS Datum
DEFINE soft3, 40 AS Name
DIMMEMO soft4, 10000
rem Nun eine Abfrage, ob die Datenbank schon existiert; falls nicht: Neuerstellung
exist "termin.dbf",a
IF a<>1 THEN
dim feld,1,10
dim index,1,10
feld1=" TIME , C , 10 , 0"
feld2=" DATUM , D , 10 , 0"
feld3=" NAME , C , 40 , 0"
feld4=" MEMO , M , 10 , 0"
feld5=""
index1=' NAME_TAG , NAME , DEL()<>"*" , 0, 0'
index2=' DATUM_TAG , DATUM, DEL()<>"*" , 0, 0'
index3=""
rem Eventuell bereits existierende Dateien werden gel÷scht
kill "termin.dbf"
kill "termin.cdx"
kill "termin.fpt"
rem Die Datenbank wird neu erstellt
icreate "termin",feld,index
ENDIF
rem Die Datenbank und die Indexdatei werden geöffnet
IOPEN 1,"termin"
IOPEN_INDEX 1,"termin"
rem Der aktuelle Index wird ausgewählt und der erste Datensatz geladen
iset 1,"DATUM_TAG",expr
istart 1,soft
ENDMOD
rem ************** Ende des Programms *******************