home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: InfoMgt
/
InfoMgt.zip
/
kim21.zip
/
TERMIN.KIM
< prev
next >
Wrap
Text File
|
1994-08-31
|
9KB
|
324 lines
rem Datum : März 1995
rem Version : 1.0
rem Programm : Terminverwaltung mit DBASE-Datenbank
rem Datei : TERMIN.KIM
rem Programmierer : EDV-Kohlenbach
rem Zunächst die Definition einiger Variablen und das Laden der Icondatei
deffloat a,_i
rem Definition der Felder 1-4 für die Datenbank
dim _felder,1,3
DIMMEMO _felder4, 10000
rem Hilfetaste definieren
SET_KEYMAP "F12",10001,1
call db_oeffnen()
call fenster()
win_paint "window"
while _i<>1000
win_ev _i
wend
iclose 1
end
rem ---------------------------------------------------------------------
rem U N T E R P R O G R A M M E
rem ---------------------------------------------------------------------
rem Modul zur Definition und Erstellung einer Datenbank mit Recordstruktur
modul db_oeffnen()
DEFFLOAT a
DEFSTRING expr
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=""
rem In Variable <feld5> kein Leerzeichen !!!
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"
kill "termin.dpt"
rem Die Datenbank wird neu erstellt
icreate "termin",feld,index
rem Mindestens ein Leersatz
iopen 1,"termin"
iopen_index 1,"termin"
iadd 1,_felder
iclose 1
ENDIF
rem Die Datenbank und die Indexdatei werden geöffnet
IOPEN 1,"termin"
IOPEN_INDEX 1,"termin"
rem Felder können über Namen aus der DBASE-DB angesprochen werden
dbfields 1,_felder
rem Der aktuelle Index wird ausgewählt und der erste Datensatz geladen
iset 1,"DATUM_TAG",expr
istart 1,_felder
ENDMOD
rem Definition des Hauptfensters
MODUL fenster()
def_window_st "window",1,1,62,15,"Testfenster"
def_toolbar "toolbar", 0, 0, 60, 5;"region off"
def_button "b0", 0, 0, 10, " ", "&Speichern"
def_button "b1", 0, 0, 10, " ", "&Löschen"
def_button "b2", 0, 0, 10, " ", ">>>"
def_button "b3", 0, 0, 10, " ", "<<<"
def_button "b4", 0, 0, 10, " ", "&Beenden"
def_button "b5", 0, 0, 10, " ", "&Neu"
def_button "b6", 0, 0, 10, " ", "S&uchen"
add_item "toolbar",..
"b0",..
"b1",..
"b2",..
"b3",..
"b4",..
"b5",..
"b6"
add_item "window", "toolbar"
DEF_PROMPT "aus1", 1, 0, "Zeit "
DEF_PROMPT "aus2", 1, 1, "Datum "
DEF_PROMPT "aus3", 1, 2, "Name "
DEF_PROMPT "aus4", 1, 3, "Kommentar "
DEF_INPUT_TIME "inp1", 10, 0, 10, "",""; "border"
DEF_INPUT_DATE "inp2",10,1,14," . . ","" ;"border"
DEF_STRING "inp3", 10, 2, 40, ""; "border"
DEF_TEXT "inp4", 1, 4, 49, 5, 10000, ""; "border", "wrap off"
DEF_SCROLLBAR "scroll1", 0, 0, 0, 0, 0
DEF_SCROLLBAR "scroll2", 1, 0, 0, 0, 0
ADD_ITEM "inp4",..
"scroll1",..
"scroll2"
ADD_ITEM_ARRAY "window", "aus",1,4
ADD_ITEM_ARRAY "window", "inp",1,4
rem Statuszeile am unteren Fensterrand
DEF_STATUSBAR "status",1
DEF_PROMPT "statustext",1,0,"F12=Hilfe ";"color on"
DEF_PALETTE 1,0,7
COLOR_ITEM "statustext",1
ADD_ITEM "status","statustext"
ADD_ITEM "window","status"
ENDMOD
rem Daten aus den Eingabefeldern werden gespeichert
modul b0_select()
call daten_schreiben()
imodrec 1,_felder
endmod
rem Aktueller Datensatz wird gelöscht
modul b1_select()
idel 1
igetrec 1,_felder
call daten_ausgeben()
endmod
rem Der nächste Datensatz wird herausgesucht und angezeigt
modul b2_select()
deffloat a
inext 1,a,_felder
call daten_ausgeben()
endmod
rem Der vorhergehende Datensatz wird herausgesucht und angezeigt
modul b3_select()
deffloat a
iprev 1,a,_felder
call daten_ausgeben()
endmod
rem Programm beenden
MODUL b4_select()
DEFFLOAT flag
MSGBOX "Programm beenden ?", 1, flag, " "
IF flag=1 THEN
_i=1000
ENDIF
ENDMOD
rem Die Eingabefelder werden für eine Neueingabe geleert
modul b5_select()
clear _felder,1,4
iadd 1,_felder
call daten_ausgeben()
setfocus "inp1"
endmod
rem Die Suchfunktion wird aufgerufen
modul b6_select()
call fenster_suchen()
igetrec 1,_felder
call daten_ausgeben()
endmod
rem Ausgabe von Daten auf dem Bildschirm
modul daten_ausgeben()
set_item_array "inp",_felder,1,4
endmod
rem Einlesen von Daten aus den Eingabefeldern in die Recordstruktur
modul daten_schreiben()
get_item_array "inp",_felder,1,4
endmod
rem Suchfunktion
MODUL fenster_suchen()
defstring obj
deffloat ii,taste
call erstelle_suchfenster()
win_paint "suche"
while ii<>1000
win_ev ii
get_item_pos obj,taste
if taste=13 then
if obj="bx1" then
call such_auswerten()
ii=1000
endif
if obj="bx2" then
ii=1000
endif
endif
wend
event_on_item "suche","end"
endmod
rem Suchen von Datensätzen
MODUL such_auswerten()
DEFSTRING expr
deffloat ok
DIM dat,1,3
get_item "kr2",_felder.name
compress _felder.name
if _felder.name<>"" then
iset 1, "Name_Tag", expr
iread 1, ok, _felder.name, soft
exitmod
endif
get_item "kr1", _felder.datum
if _felder.datum<>"" then
iset 1, "Datum_Tag",expr
select _felder.datum,46,dat,1,3
_felder.datum=dat3+dat2+dat1
iread 1, ok, _felder.datum, _felder
endif
endmod
rem Definition des Suchfensters
MODUL erstelle_suchfenster()
def_window_st "suche", 3, 2, 50, 12, "Suchen";"modal","move off"
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",10,4,14," . . ","" ;"border"
def_string "kr2",10,3,20,"";"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 Prüfen ob Datumkorrekt eingegeben
modul inp2_validate()
deffloat flag
msgbox "Datum muß in der Form TT.MM.YYYY eingegeben werden",0,flag,""
setfocus "inp2"
endmod
modul inp2_lostfocus()
defstring date
deffloat flag
get_item "inp2",date
if date=""
msgbox "Datum muß in der Form TT.MM.YYYY eingegeben werden",0,flag,""
setfocus "inp2"
endif
endmod
rem Auf Taste F1 reagieren
modul system_keypress()
if system.keypress=10001 then
call hilfe(system.object)
endif
endmod
rem Hilfefenster
modul hilfe(char o)
deffloat flag
if o="inp1" then
msgbox "Hilfe für Feld INP1",0,flag,""
else
msgbox "Hier könnte eine allgemeine Hilfe stehen !",0,flag,""
endif
endmod
rem ************** Ende des Programms *******************