home *** CD-ROM | disk | FTP | other *** search
/ DOS Wares / doswares.zip / doswares / DATABASE / DBASE4NL / SAMPLES.ZIP / BIJMUIS.PRG < prev    next >
Encoding:
Text File  |  1993-05-18  |  5.3 KB  |  148 lines

  1. PROCEDURE BijMuis
  2. *--------------------------------------------------------------------
  3. * OMSCHRIJVING
  4. *   BijMuis toont een mogelijk gebruik van het nieuwe ON MOUSE-
  5. *   commando in een programmalus om twee Browse-vensters te activeren.
  6. *   BijMuis gebruikt twee DBF-bestanden, TRANSACT en MAGAZIJN. Ieder TRANSACT
  7. *   record kan gekoppeld zijn met één of meer Magazijn-records, met een
  8. *   koppeling op het OrderID-veld. Ook toont BijMuis hoe de F3 en F4
  9. *   toetsen kunnen worden gebruikt om tussen de twee Browse-vensters
  10. *   te schakelen
  11. *--------------------------------------------------------------------
  12.  
  13.   SET TALK OFF
  14.   SET COLOR TO W+/B
  15.   SET STATUS OFF
  16.   USE Transact IN 1
  17.   USE Magazijn ORDER Bestel_nr IN 2
  18.   DEFINE WINDOW Transact FROM 2,2 TO 10,77     && Venster voor Transact en
  19.   DEFINE WINDOW Magazijn FROM 12,2 TO 19,77    && Magazijn bestanden
  20.  
  21.   @ 22, 36 SAY "  Stop  " COLOR w+/g    && Toon de Stop-knop
  22.   @ 22, 38 SAY "S" COLOR gr+/g          && Geef de S aan voor Alt+S
  23.  
  24.   @ 1, 2 SAY "Transact: Klik onderste venster om gerelateerde Magazijn-info te zien"
  25.   @ 20, 2 SAY "Magazijn: Klik bovenste venster om nieuw Transact-record te zien"
  26.   @ 24, 18 SAY "Klik op de Stop-knop of gebruik Alt-S om te stoppen."
  27.  
  28.   KEYBOARD "{27}"                       && Verlaat browse na weergave
  29.   DO ShowTran                           && Toon het Transact browse-venster
  30.   KEYBOARD "{27}"            
  31.   DO ShowMagazijn                       && Toon het Magazijn browse-venster
  32.   ON MOUSE DO MouseHand WITH MROW(), MCOL()
  33.   ON KEY LABEL Alt-S DO KeyHand WITH "S"
  34.   ON KEY LABEL F3    DO KeyHand WITH "F3"
  35.   ON KEY LABEL F4    DO KeyHand WITH "F4"
  36.   nCurrent = 1                          && 1 = Transact, 2 = Magazijn
  37.   lQuit = .F.
  38.   *-- Voer de lus uit totdat Stop is gekozen
  39.   DO WHILE .NOT. lQuit                  && lQuit wordt .T. in MouseHand
  40.     DO CASE
  41.       CASE nCurrent = 1                 && Browse Transact-bestand bij 1
  42.         DO ShowTran
  43.       CASE nCurrent = 2                 && Browse Magazijn-bestand bij 2
  44.         DO ShowMagazijn
  45.     ENDCASE
  46.   ENDDO
  47.   ON MOUSE                              && Geef de ON MOUSE-
  48.   ON KEY LABEL F3                       && en ON KEY-instellingen vrij
  49.   ON KEY LABEL F4
  50.   ON KEY LABEL Alt-S
  51.  
  52.   RELEASE WINDOW Transact
  53.   RELEASE WINDOW Magazijn
  54.   USE IN 2
  55.   USE IN 1
  56.   SET STATUS ON
  57. RETURN
  58.  
  59. PROCEDURE MouseHand
  60. PARAMETERS pn_MRow, pn_MCol
  61. *--------------------------------------------------------------------
  62. * OMSCHRIJVING
  63. *   MouseHand is de event-afhandelingsroutine voor de programmalus.
  64. *   MouseHand reageert op de volgende akties::
  65. *
  66. *     Klik stop-knop   :    lQuit-vlag wordt .T. om te stoppen
  67. *     Klik in Transact :    nCurrent wordt 1 indien in Magazijn-venster
  68. *     Klik in Magazijn :    nCurrent wordt 2 indien in Transact-venster
  69. *
  70. *   MouseHand simuleert dan een Esc om het actieve browse-venster te 
  71. *   verlaten en terug te keren naar de programmalus.
  72. *--------------------------------------------------------------------
  73.  
  74.   DO CASE
  75.     CASE pn_MRow = 22 .AND. pn_MCol >= 36 .AND. pn_MCol <= 43
  76.       lQuit = .T.
  77.     CASE pn_MRow >= 2 .AND. pn_MRow <= 10 .AND. ;
  78.          pn_MCol >= 2 .AND. pn_MCol <= 77
  79.       nCurrent = 1
  80.     CASE pn_MRow >= 12 .AND. pn_MRow <= 19 .AND. ;
  81.          pn_MCol >= 2 .AND. pn_MCol <= 77
  82.       nCurrent = 2
  83.   ENDCASE
  84.   KEYBOARD "{27}"                       && Escape uit huidige browse
  85.  
  86. RETURN
  87. *-- EOP: MouseHand
  88.  
  89.  
  90. PROCEDURE KeyHand
  91. PARAMETERS pc_KeyCode
  92. *--------------------------------------------------------------------
  93. * OMSCHRIJVING
  94. *   KeyHand is de toetsenbord-afhandelingsroutine voor de programmalus.
  95. *   KeyHand reageert op de volgende akties:
  96. *
  97. *     Bij F3:    Zet nCurrent op 1 bij 2 of 2 bij 1
  98. *     Bij F4:    Zet nCurrent op 1 bij 2 of 2 bij 1
  99. *     Bij Alt-S: Zet lQuit-vlag op .T. om te stoppen
  100. *
  101. *   KeyHand simuleert dan een Esc om het actieve browse-venster te
  102. *   verlaten en terug te keren naar de programmalus.
  103. *--------------------------------------------------------------------
  104.  
  105.   DO CASE
  106.     CASE pc_KeyCode = "S"
  107.       lQuit = .T.
  108.     CASE pc_KeyCode = "F4"
  109.       nCurrent = IIF( nCurrent = 1, 2, 1 )
  110.     CASE pc_KeyCode = "F3"
  111.       nCurrent = IIF( nCurrent = 1, 2, 1 )
  112.   ENDCASE
  113.   KEYBOARD "{27}"                       && Escape uit huidige browse
  114.  
  115. RETURN
  116. *-- EOP: KeyHand
  117.  
  118.  
  119. PROCEDURE ShowTran
  120. *--------------------------------------------------------------------
  121. * OMSCHRIJVING
  122. *   Browse-venster voor het Transact-bestand
  123. *--------------------------------------------------------------------
  124.   SELECT Transact
  125.   BROWSE WINDOW Transact NOCLEAR COMPRESS NOINIT
  126. RETURN
  127. *-- EOP: ShowTran
  128.  
  129.  
  130. PROCEDURE ShowMagazijn
  131. *--------------------------------------------------------------------
  132. * OMSCHRIJVING
  133. *   Browse-venster van de Magazijn-records die zijn gekoppeld met het
  134. *   Transact-bestand. Toon alle Magazijn-records als er geen direct
  135. *   gerelateerde records bestaan.
  136. *--------------------------------------------------------------------
  137.   SELECT Magazijn
  138.   SET KEY TO Transact->Bestel_nr      && Toon gekoppelde records
  139.   IF EOF()                           && Toon alle records uit Magazijn als
  140.     SET KEY TO                       && er geen gekoppelde records zijn
  141.     GO TOP
  142.   ENDIF
  143.   BROWSE WINDOW Magazijn NOCLEAR COMPRESS NOINIT
  144. RETURN
  145. *-- EOP: ShowMagazijn
  146.  
  147.  
  148.