home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: InfoMgt
/
InfoMgt.zip
/
kim21.zip
/
TABLE.KIM
< prev
next >
Wrap
Text File
|
1995-08-02
|
6KB
|
213 lines
rem ------------------------------------------------------------
rem Programm : TABLE.KIM
rem Bezeichnung : Demo von Tabellenfunktionen
rem Programmierer : Kohle
rem Datum : 01.08.95
rem ------------------------------------------------------------
rem WICHTIG !!!
rem Bei Positionierungen and so one müssen Sie immer von der
rem Basis 0 ausgehen.
rem Beispiel : Gehe zu Datensatz 4 heißt positioniere auf 3
rem (0,1,2,3)
rem ------------------------------------------------------------
rem Definition von Variablen
deffloat _i,ok
deffloat _anzahl_rec
rem ------------------------------------------------------------
rem Definiton eines Arrays für die Tabelle
dim _arr,0,100
rem ------------------------------------------------------------
rem Laden von Datensätze in das Array
exist "table.txt",ok
if ok=1 then
loadarray "table.txt",_arr,0,100,_anzahl_rec
else
rem Bilden eines kleines Arrays, Trennzeichen "-"
_anzahl_rec=5
rem ----------------------------------------------------------
rem Vorname Name Geburt Checkbox-Button -
rem ----------------------------------------------------------
_arr0 = "Franz -Huber -30.01.1930 - 0"
_arr1 = "Willy -Meier -12.01.1965 - 1"
_arr2 = "Timo -Schmidt -01.10.1971 - 0"
_arr3 = "Thomas -Keller -04.03.1933 - 0"
_arr4 = "Fritz -Hochmeier-03.03.1956 - 0"
endif
rem ------------------------------------------------------------
rem Font und Farbpalette definieren
loadfont "c10","Courier",10
rem Farbpalette 9 ist für alle DEF_PROMPTS !
def_palette 9,0,7
rem ------------------------------------------------------------
rem Fenster und Menü definieren
call fenster_inhalt()
call def_menu()
rem ------------------------------------------------------------
rem Darstellen am Bildschirm
win_paint "window"
rem ------------------------------------------------------------
rem Event-Routine
while _i<>1000
win_ev _i
wend
end
rem ------------------------------------------------------------
rem Event-Funktionen
rem ------------------------------------------------------------
rem ------------------------------------------------------------
rem Neuen Datensatz anfügen
modul ma1_select()
deffloat anzahl,ok
get_table_count "t1",anzahl
if anzahl<100 then
set_mouse_status 1
add_table_rec "t1"
get_table_count "t1",anzahl
set_table_recnr "t1",anzahl-1
set_mouse_status 0
else
msgbox "Es können keine weiteren Elemente addiert werden",0,ok,""
endif
endmod
rem ------------------------------------------------------------
rem Positioniere auf Datensatz 4 (Basis 0 !)
modul ma2_select()
set_table_recnr "t1",3
endmod
rem ------------------------------------------------------------
rem Bist du auf DS 3 dann ändere DS 4
modul ma3_select()
deffloat pos
get_table_recnr "t1",pos
rem pos=2 da Zählung 0,1,2 !!! Basis 0
if pos=2 then
_arr3="xx - xx - xx - 0 "
event_on_item "t1","redisplay"
endif
endmod
rem ------------------------------------------------------------
rem Ändere DS 4
modul ma4_select()
_arr3="xx - xx - xx - 0"
event_on_item "t1","redisplay"
endmod
rem ------------------------------------------------------------
rem Programm beenden und Felder speichern
modul ma5_select()
deffloat x,anzahl
_i=1000
get_table_count "t1",anzahl
rem -----------------------------------------------------------------------
rem Wichtig !!!!
rem Damit die letzte Änderung in der Tabelle gespeichert wird, müssen
rem Sie mit <SET_TABLE_RECNR> den letzten Tabellensatz als aktiven
rem Satz setzen.
rem Hiermit wird die letzte Änderung in das Array gespeichert,
rem ansonst erfolgt Speicherung der letzten Änderung nur beim verlassen
rem des geänderten Records mit den Pfeiltasten oder der Maus.
rem -----------------------------------------------------------------------
set_table_recnr "t1",anzahl
savearray "table.txt",_arr,0,anzahl
endmod
MODUL fenster_inhalt()
defstring _buffer
DEF_WINDOW_ST "window",2.000000,2.000000,75.000000,15.000000,"Test"
rem --------------------------------------------------------------------
rem Anzahl der Überschriften muß mit Anzahl der Felder übereinstimmen !!
rem --------------------------------------------------------------------
DEF_PROMPT "p1",1,0,"Vorname "
DEF_PROMPT "p2",12,0,"Name "
DEF_PROMPT "p3",33,0,"Datum "
DEF_PROMPT "p4",45,0,"Auswahl "
DEF_STRING "s1",1,0,10,"";"border"
DEF_STRING "s2",12,0,20,"";"border"
DEF_STRING "s3",33,0,10,"";"border"
DEF_BUTTON "s4",45,0,1,"","";"checkbox"
def_scrollbar "scroll",1,0,0,0,0
def_scrollbar "scroll2",0,0,0,0,0
def_table "t1",0,0,0,0,4,45,_anzahl_rec,_arr,45 ;"region off"
def_header "h1";"column header"
def_table_rec "r1",100,1
def_table_rec "r2",100,1
add_item "r1","p1","p2","p3","p4"
add_item "r2","s1","s2","s3","s4"
add_item "h1","r1"
add_item "t1","scroll","scroll2"
add_item "t1","h1"
add_item "t1","r2"
ADD_ITEM "window","t1"
ENDMOD
MODUL def_menu()
def_pulldown_item "ma","&Datei ",1
def_popup_item "ma1","&Neuer Datensatz "
def_popup_item "ma2","&Gehe zu Datensatz 4"
def_popup_item "ma3","&Bist du auf DS 3 dann ändere DS 4"
def_popup_item "ma4","&Ändere Werte in DS 4"
def_popup_item "ma5","&Ende und Speichern"
add_item "ma","ma1","ma2","ma3","ma4","ma5"
def_pulldown_menu "Menu",1
ADD_ITEM "Menu","ma"
ADD_ITEM "window","Menu"
ENDMOD