home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: InfoMgt / InfoMgt.zip / kim21.zip / BSP6.KIM < prev    next >
Text File  |  1995-07-01  |  8KB  |  253 lines

  1.  
  2.  
  3. rem Name            :    BSP6.KIM
  4. rem Datum           :    März 1994
  5. rem Version         :    1.0
  6. rem Programm       :    Terminverwaltung mit DBASE/FOXPRO Grundlage
  7. rem Programmierer   :    EDV-Kohlenbach
  8.  
  9.  
  10. rem Zunächst die Definition einiger Variablen und das Laden der Icondatei
  11. deffloat a,i,t,flag,taste
  12. defstring objekt
  13. load_dat "icon.dat",a
  14.  
  15. rem Die Module zur Datenbank- und zur Oberflächenerstellung  werden aufgerufen
  16. call db_oeffnen()
  17. call fenster_def("window", 2, 2, 65, 12,"Terminverwaltung")
  18. call fenster_inhalt("window")
  19. rem Das Hauptfenster wird nun auf dem Monitor ausgegeben
  20. win_paint "window"
  21.  
  22. rem Nun die Eventschleife zur Steuerung der Benutzeraktionen auf der OberflΣche
  23. while i<>1000
  24.     win_ev i
  25.     get_item_pos objekt,taste
  26.     if taste=13 then
  27.         call auswerten(objekt,i)
  28.     endif
  29. wend
  30.  
  31. rem Die Datenbank wird geschlossen und das Programm beendet
  32. iclose 1
  33. end
  34.  
  35.  
  36. rem ---------------------------------------------------------------------
  37. rem U N T E R P R O G R A M M E
  38. rem ---------------------------------------------------------------------
  39.  
  40. rem Modul zur Erstellung des Hauptfensters
  41. modul fenster_def(char id, float x, float y, float xr, float yr, char ueber)
  42.     def_window id,x,y,xr,yr
  43.     def_window id, x, y, xr, yr
  44.     def_system_button "system_button",0
  45.     def_max_button  "max_button"
  46.     def_min_button  "min_button"
  47.     def_border  "border"
  48.     def_titel "titel",ueber
  49.     rem Die definierten Objekte werden dem Fenster angefügt
  50.     add_item id,..
  51.                 "border",..
  52.                 "max_button",..
  53.                 "min_button",..
  54.                 "system_button",..
  55.                 "titel"
  56. endmod
  57.  
  58. rem Modul zur Definition der Eingabemaske und der Toolbar
  59. modul fenster_inhalt(char fenster_def_id)
  60.     def_prompt "aus1",1,1,"Name  "
  61.     def_prompt "aus2",1,0,"Zeit  "
  62.     def_prompt "aus3",18,0,"Datum  "
  63.     def_input_time "inp1",10,0, 7,soft1,""  ;"border"
  64.     def_input_date "inp2",27,0,12,soft2,""  ;"border"
  65.     def_string "inp3",10,1,40,soft3 ;"border"
  66.     def_text "inp4",1,2,55,10,10000,soft4 ;"border","wrap off"
  67.     def_toolbar "toolbar",0,0,80,5 ;"region off"
  68.     def_button "b0",0,0,10,""     ,"&Speichern"
  69.     def_button "b1",0,0,10,""     ,"&Loeschen "
  70.     def_button "b2",0,0,10,""     ,"&>>>      "
  71.     def_button "b3",0,0,10,""     ,"&<<<      "
  72.     def_button "b4",0,0,10,""     ,"&Quit     "
  73.     def_button "b5",0,0,10,""     ,"&Neu      "
  74.     def_button "b6",0,0,10,""     ,"&Finde    "
  75.  
  76.     rem Die Buttons werden der Toolbar angefⁿgt
  77.     add_item "toolbar","b0","b1","b5","b2","b3","b4","b6"
  78.     rem Scrollbars werden definiert und dem Kommentarfeld hinzugefⁿgt
  79.     def_scrollbar "scroll1",0,0,0,0,0
  80.     def_scrollbar "scroll2",1,0,0,0,0
  81.     add_item "inp4","scroll1","scroll2"
  82.     rem Zuletzt werden alle Objekte dem Hauptfenster angefⁿgt
  83.     add_item "window","toolbar","aus1","aus2","aus3","inp1","inp2","inp3","inp4"
  84. endmod
  85.  
  86. rem Modul zur Auswertung der Aktionen des Benutzers
  87. modul auswerten(char obj,float i)
  88.     deffloat a,flag
  89.     defstring expr
  90.     if obj="b0" then
  91.         rem Daten aus den Eingabefeldern werden gespeichert
  92.         call daten_schreiben()
  93.         imodrec 1,soft
  94.     endif
  95.     if obj="b1" then
  96.         rem Aktueller Datensatz wird gelöscht
  97.         idel 1
  98.         call daten_ausgeben()
  99.     endif
  100.     if obj="b2" then
  101.         rem Der nächste Datensatz wird herausgesucht und angezeigt
  102.         inext 1,a,soft
  103.         call daten_ausgeben()
  104.     endif
  105.     if obj="b3" then
  106.         rem Der vorhergehende Datensatz wird herausgesucht und angezeigt
  107.         iprev 1,a,soft
  108.         call daten_ausgeben()
  109.     endif
  110.     if obj="b4" then
  111.         rem Das Programm wird beendet
  112.         msgbox "Programm beenden",1,flag,"frage2"
  113.         if flag=1 then
  114.             i=1000
  115.         endif
  116.     endif
  117.     if obj="b5" then
  118.         rem Die Eingabefelder werden für eine Neueingabe geleert
  119.         clear soft,1,4
  120.         iadd 1,soft
  121.         call daten_ausgeben()
  122.     endif
  123.     if obj="b6" then
  124.         rem Die Suchfunktion wird aufgerufen
  125.         call fenster_suchen()
  126.         call daten_ausgeben()
  127.     endif
  128. endmod
  129.  
  130. rem Modul zur Auswertung von Aktionen im Suchfenster
  131. modul fenster_suchen()
  132.     deffloat i,flag,taste
  133.     defstring obj
  134.     rem Das Modul zur Suchfensterdefinition wird aufgerufen und angezeigt
  135.     call erstelle_suchfenster()
  136.     win_paint "suche"
  137.  
  138.     rem Eine Eventschleife zur Steuerung der Benutzeraktionen im Suchfenster
  139.     while i<>1000
  140.         win_ev i
  141.         get_item_pos obj, taste
  142.         If taste=13 then
  143.               If obj="bx1" then
  144.                   call such_auswerten()
  145.                   i=1000
  146.               endif
  147.               if obj="bx2" then
  148.                   i=1000
  149.               endif
  150.         endif
  151.     wend
  152.  
  153.     rem Das Suchfenster wird geschlossen
  154.     event_on_item "suche","end"
  155. endmod
  156.  
  157. rem Modul  zum Suchen von DatensΣtzen
  158. modul such_auswerten()
  159.     DEFSTRING expr
  160.     deffloat ok
  161.     get_item "kr1",soft1
  162.         if soft1<>"" then
  163.               iset 1, "Name_Tag", expr
  164.               iread 1, ok, soft1, soft
  165.               exitmod
  166.         endif
  167.     get_item "kr2", soft2
  168.         if soft2<>"" then
  169.               iset 1, "Datum_Tag",expr
  170.               iread 1, ok, soft2, soft
  171.         endif
  172. endmod
  173.  
  174. rem Modul zur Definition des Suchfensters
  175. modul erstelle_suchfenster()
  176.     rem Das Modul zur Definition eines Fensters wird aufgerufen
  177.     call fenster_def("suche", 3, 2, 50, 12, "Suchen")
  178.     rem Zusätzliche Objekte werden definiert und dem Fenster angefügt
  179.     def_prompt "such1",10,0,"Geben Sie einen Suchbegriff"
  180.     def_prompt "such2",10,1,"im entsprechenden Feld an"
  181.     def_prompt "such3",1,3,"Name"
  182.     def_prompt "such4",1,4,"Datum"
  183.     def_input_date "kr1",8,4,11,"  .  .  ",""  ;"border"
  184.     def_string "kr2",8,3,40,"";"border"
  185.     def_button "bx1",3,8,20,"","&Suchen beginnen"
  186.     def_button "bx2",25,8,20,"","&Abbruch"
  187.  
  188.     add_item "suche",..
  189.              "such1",..
  190.              "such2",..
  191.              "such3",..
  192.              "such4",..
  193.              "kr1",..
  194.              "kr2",..
  195.              "bx1",..
  196.              "bx2"
  197. endmod
  198.  
  199. rem Modul  zur Ausgabe von Daten auf dem Bildschirm
  200. modul daten_ausgeben()
  201.     set_item_array "inp",soft,1,4
  202. endmod
  203.  
  204. rem Modul zum Einlesen von Daten aus den Eingabefeldern in die Recordstruktur
  205. modul daten_schreiben()
  206.     get_item "inp1",soft1
  207.     get_item "inp2",soft2
  208.     get_item "inp3",soft3
  209.     get_item "inp4",soft4
  210. endmod
  211.  
  212. rem Modul zur Definition und Erstellung einer Datenbank mit Recordstruktur
  213. modul db_oeffnen()
  214.     rem Zunächst die Recordstruktur
  215.     DEFFLOAT a
  216.     DEFSTRING expr
  217.     DEFINE soft1, 10 AS Zeit
  218.     DEFINE soft2, 10 AS Datum
  219.     DEFINE soft3, 40 AS Name
  220.     DIMMEMO soft4, 10000
  221.  
  222.     rem Nun eine Abfrage, ob die Datenbank schon existiert; falls nicht: Neuerstellung
  223.     exist "termin.dbf",a
  224.     IF a<>1 THEN
  225.         dim feld,1,10
  226.         dim index,1,10
  227.         feld1=" TIME      ,   C  ,    10  ,   0"
  228.         feld2=" DATUM     ,   D  ,    10  ,   0"
  229.         feld3=" NAME      ,   C  ,    40  ,   0"
  230.         feld4=" MEMO      ,   M  ,    10  ,   0"
  231.         feld5=""
  232.  
  233.         index1=' NAME_TAG   ,  NAME  , DEL()<>"*"  ,   0,  0'
  234.         index2=' DATUM_TAG  ,  DATUM, DEL()<>"*"   ,   0,  0'
  235.         index3=""
  236.  
  237.         rem Eventuell bereits existierende Dateien werden gel÷scht
  238.         kill "termin.dbf"
  239.         kill "termin.cdx"
  240.         kill "termin.fpt"
  241.         rem Die Datenbank wird neu erstellt
  242.         icreate "termin",feld,index
  243.     ENDIF
  244.     rem Die Datenbank und die Indexdatei werden geöffnet
  245.     IOPEN  1,"termin"
  246.     IOPEN_INDEX 1,"termin"
  247.     rem Der aktuelle Index wird ausgewählt und der erste Datensatz geladen
  248.     iset 1,"DATUM_TAG",expr
  249.     istart 1,soft
  250. ENDMOD
  251.  
  252. rem ************** Ende des Programms *******************
  253.