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

  1. ********************************************************************************
  2. *-- Name.......: FACTUUR2.PRG
  3. *-- Date.......: 080692
  4. *-- Version....: dBASE IV, Format 1.0
  5. *-- Notes......: Format files use "" as delimiters!
  6. *-- Written by.: Borland International Inc.
  7. ********************************************************************************
  8.  
  9. CLEAR WIND
  10. CLOSE DATABASE
  11. SAVE SCREEN TO Invoice2
  12. CLEAR
  13.  
  14. DEFINE WINDOW Pause FROM 15,00 TO 19,79 DOUBLE
  15. DEFINE WINDOW Invo_hlp FROM 3,00 TO 21,79 DOUBLE
  16. ON ERROR DO Pause WITH "Regelnr. in programma "+Program()+": "+LTRIM(STR(LINE()))
  17.  
  18. IF EOF()
  19.   SKIP -1
  20. ENDIF
  21.  
  22. IF SET("TALK")="ON"
  23.    SET TALK OFF
  24.    lc_talk = "ON"
  25. ELSE
  26.    lc_talk = "OFF"
  27. ENDIF
  28. lc_escape = SET("ESCAPE")
  29. lc_cursor = SET("CURSOR")
  30. SET CURSOR OFF
  31.  
  32. *-- Imported code from D:\US\GENOBJPL\NOVA\EXE\SAMPLES\INVOICE2.QBE
  33. * DBASE IV .QBE FILE 
  34. SELECT 1
  35. USE TRANSACT.DBF 
  36. USE AFNEMERS.DBF IN 2 ORDER KLANT_NR
  37. SET RELATION TO TRIM(KLANT_NR) INTO B
  38. SET FIELDS TO A->KLANT_NR,A->BESTEL_NR,A->DAT_TRANS,A->FACTUUR,A->;
  39. TOTAAL_REK,B->KLANTNAAM,B->ACHTERNAAM,B->VOORNAAM,B->ADRES,B->WOONPLAATS,B->;
  40. PROVINCIE,B->POSTCODE,B->TELEFOON,B->OVERZICHT
  41. *-------------------------------------------------------------------------------
  42. GO TOP
  43.  
  44.  
  45. lc_status = SET("STATUS")
  46. *-- SET STATUS was OFF when you went into the Forms Designer.
  47. IF lc_status = "ON"
  48.    SET STATUS OFF
  49. ENDIF
  50.  
  51. gc_messg = "F9:Regelopties| PgDn:Vlgnd | PgUp:Vorig | Ctrl-PgDn:Einde | Ctrl-PgUp:Begin"
  52.  
  53. *-- Window for memo field Clien_hist.
  54. DEFINE WINDOW wndow1 FROM 7,26 TO 20,78 
  55.  
  56. DEFINE WINDOW Table FROM 9,1 TO 20,78 DOUBLE
  57.  
  58. ON KEY LABEL F1 DO Invo_hlp
  59. ON KEY LABEL F9  KEYBOARD CHR(23)+"L" && Send Ctrl-W + L for lineitem
  60. ON KEY LABEL F10 KEYBOARD CHR(23)+"M" && SEND CTRL-W + M FOR MENU
  61.  
  62. DO Defnmenu
  63.  
  64. gc_mdx = MDX(1)
  65. gc_alias = ALIAS()
  66.  
  67. *-- Set up lineitem (BROWSE) workarea-----------------------------------------
  68.  
  69. gn_sele = IIF(SELE()=10, SELE()-1, SELE())
  70. SELE (gn_sele)
  71. USE MAGAZIJN ORDER TAG BESTEL_NR
  72. SET FIELDS TO BESTEL_NR, ONDRDL_NR, ARTIKEL, OMSCHRIJV, AANTAL, STUKPRIJS, ;
  73.               EXTENDED=AANTAL*STUKPRIJS
  74. SET CARRY TO MAGAZIJN->BESTEL_NR
  75.  
  76. *------------------------------------------------------------------------------
  77.  
  78. SELE &gc_alias.
  79. gn_gorec = 0                           && Var for goto record option
  80. gc_search = SPACE(200)                 && Var for forward and backward search
  81. gc_seek = SPACE( LEN( BESTEL_NR))       && Var for seeking records
  82. gl_newrec = .f.                        && Var for appended record
  83. gl_chgrec = .t.                        && Var for testing if record position changed
  84. gl_extloop = .f.
  85. gl_rollbck = .f.
  86. @ 23,0
  87. @ 23,CENTER(gc_messg,80) SAY gc_messg
  88.  
  89. DO WHILE .NOT. gl_extloop
  90.    gn_recno = RECNO()
  91.    gl_lineitm = .T.
  92.    BEGIN TRANSACTION
  93.  
  94.    DO WHILE gl_lineitm
  95.        IF gl_chgrec
  96.           *-- Paint Say's & Get's on screen
  97.           DO Show_get
  98.        ENDIF
  99.  
  100.        *-- Show matching Browse Table data
  101.        DO Showbrow
  102.        *-- Back to suddo edit
  103.  
  104.        *-- Edit Get's
  105.        DO Edit_get
  106.  
  107.        SET CURSOR ON
  108.        READ
  109.        SET CURSOR OFF
  110.  
  111.        gn_inkey = INKEY()
  112.        gn_readkey = READKEY()
  113.        gc_readvar = VARREAD()
  114.        gl_lineitm = .F.
  115.  
  116.        ACTIVATE SCREEN
  117.        DO CASE
  118.          CASE gn_inkey = 76 
  119.            *-- KEYBOARDed IN "L"
  120.            DO Lineitem
  121.            gl_lineitm = .T.
  122.          CASE gn_inkey = 77  
  123.            *-- KEYBOARDed IN "M"
  124.            ACTIVATE MENU Editmenu
  125.          CASE gn_readkey = 6 .OR. gn_readkey = 262 .OR. gn_readkey = 260 ;
  126.               .OR. gn_readkey = 4 
  127.            *--  Pgup or Up arrow
  128.            IF .NOT. BOF()
  129.              SKIP -1
  130.            ENDIF
  131.          CASE gn_readkey = 7 .OR. gn_readkey = 263 .OR. gn_readkey = 5 ;
  132.               .OR. gn_readkey = 261
  133.            *-- PgDn or Dwn arrow
  134.            SKIP
  135.            IF EOF() .AND. .NOT. gl_newrec
  136.               CLEAR GETS
  137.               SET DELI OFF
  138.               @ 23,0
  139.               @ 23,25 SAY "===> Records toevoegen (J/N)?" GET gl_newrec PICT "Y" 
  140.               READ
  141.               SET DELI ON
  142.               CLEAR GETS
  143.               @ 23,0
  144.               @ 23,CENTER( gc_messg, 80) SAY gc_messg
  145.            ENDIF
  146.            IF gl_newrec
  147.               DO Recappnd
  148.            ELSE
  149.               IF EOF()
  150.                  SKIP -1
  151.               ENDIF
  152.            ENDIF
  153.          CASE gn_readkey = 34 .OR. gn_readkey = 290 
  154.            *-- Ctrl-PgUp
  155.            GO TOP
  156.          CASE gn_readkey = 35 .OR. gn_readkey = 291 
  157.            *-- Ctrl-PgDn
  158.            GO BOTTOM
  159.          CASE gn_readkey = 12  .or. gn_readkey = 270
  160.            *-- Esc
  161.            gl_extloop = .T.
  162.            EXIT
  163.        ENDCASE
  164.        *
  165.        gl_chgrec = IIF(gn_recno = RECNO(), .F., .T.)  && See if record # changed
  166.        *
  167.        IF gl_rollbck              && If user picked ROLLBACK option from menu
  168.           gl_rollbck = .F.        && Reset rollback variable
  169.           ROLLBACK
  170.        ENDIF
  171.    ENDDO
  172.    *
  173.    END TRANSACTION
  174.    *
  175.    IF .NOT. ROLLBACK()
  176.       DO Pause WITH "Terugzetten mislukt"
  177.       ACTIVATE SCREEN
  178.    ENDIF
  179.    DO Chkdele
  180. ENDDO
  181.  
  182. *-- Clean-up exit
  183. *-- SET STATUS was OFF when you went into the Forms Designer.
  184. IF lc_status = "ON"   && Entered form with status on
  185.    SET STATUS ON      && Turn STATUS "ON" on the way out
  186. ENDIF
  187. SET CURSOR &lc_cursor.
  188. SET TALK &lc_talk.
  189.  
  190. ON KEY
  191. ON ERROR
  192.  
  193. SELE 1
  194. CLOSE DATABASE
  195.  
  196. RELEASE MENU Editmenu
  197. RELEASE POPUPS records, go_to, exit
  198. RELEASE WINDOWS table,pause,seek,search,bsearch,Invo_hlp,wndow1
  199. RESTORE SCREEN FROM factuur2
  200. RELEASE lc_talk,lc_fields,lc_status,lc_escape
  201. RELEASE SCREEN factuur2
  202. RETURN
  203.  
  204. PROCEDURE Show_get
  205.    @ 1,0 TO 21,79 COLOR gr+/b 
  206.    @ 1,28 SAY "   Overzicht facturen   " COLOR r+/b  
  207.    @ 3,2 SAY "Afnemer:"  
  208.    @ 3,11 GET Afnemers->Klantnaam PICTURE "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 
  209.    @ 3,56 SAY "Klantnr.:"  
  210.    @ 3,69 GET Transact->Klant_nr PICTURE "!XXXXX" 
  211.    @ 4,2 SAY "Naam:"  
  212.    @ 4,11 GET Afnemers->Achternaam PICTURE "XXXXXXXXXXXXXXX" 
  213.    @ 4,28 GET Afnemers->Voornaam PICTURE "XXXXXXXXXXXXXXX" 
  214.    @ 4,56 SAY "Bestelnr.:"  
  215.    @ 4,69 GET Transact->Bestel_nr PICTURE "XX-XXX" 
  216.    @ 5,2 SAY "Adres:"  
  217.    @ 5,11 GET Afnemers->Adres PICTURE "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 
  218.    @ 5,56 SAY "Datum trans:"  
  219.    @ 5,69 GET Transact->Dat_trans 
  220.    @ 6,2 SAY "Plaats:"  
  221.    @ 6,11 GET Afnemers->Woonplaats PICTURE "XXXXXXXXXXXXXXXXXXXX" 
  222.    @ 6,32 SAY "Prov.:"  
  223.    @ 6,39 GET Afnemers->Provincie PICTURE "!!" 
  224.    @ 6,42 SAY "Postcode:"  
  225.    @ 6,52 GET Afnemers->Postcode PICTURE "XXXXXXXXXX" 
  226.    @ 7,2 SAY "Tel.:"  
  227.    @ 7,11 GET Afnemers->Telefoon PICTURE "999X9X999999" 
  228.    @ 7,26 SAY "Overzicht"  
  229.    @ 7,41 GET Afnemers->Overzicht WINDOW Wndow1 
  230.    CLEAR GETS
  231. RETURN
  232.  
  233. PROCEDURE Edit_get
  234.    @ 3,11 GET Afnemers->Klantnaam PICTURE "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 
  235.    @ 3,69 GET Transact->Klant_nr PICTURE "!XXXXX" ;
  236.       VALID klant_nr <> space(6) ;
  237.       ERROR "U hebt geen klantnr. ingevoerd" ;
  238.       WHEN klant_nr = space(6) ;
  239.       MESSAGE "Voer een klantnr. in" 
  240.    @ 4,11 GET Afnemers->Achternaam PICTURE "XXXXXXXXXXXXXXX" 
  241.    @ 4,28 GET Afnemers->Voornaam PICTURE "XXXXXXXXXXXXXXX" 
  242.    @ 4,69 GET Transact->Bestel_nr PICTURE "XX-XXX" ;
  243.       VALID bestel_nr <> space(6) ;
  244.       ERROR "U hebt geen bestelnr. ingevoerd" ;
  245.       WHEN bestel_nr =SPACE(6) ;
  246.       MESSAGE "Voer nieuw bestelnr. in" 
  247.    @ 5,11 GET Afnemers->Adres PICTURE "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 
  248.    @ 5,69 GET Transact->Dat_trans ;
  249.       DEFAULT date() 
  250.    @ 6,11 GET Afnemers->Woonplaats PICTURE "XXXXXXXXXXXXXXXXXXXX" 
  251.    @ 6,39 GET Afnemers->Provincie PICTURE "!!" 
  252.    @ 6,52 GET Afnemers->Postcode PICTURE "XXXXXXXXXX" 
  253.    @ 7,11 GET Afnemers->Telefoon PICTURE "999X9X999999" 
  254.    @ 7,41 GET Afnemers->Overzicht WINDOW Wndow1 
  255. RETURN
  256.  
  257. PROCEDURE Showbrow
  258.    SELE MAGAZIJN
  259.    SET FILTER TO
  260.    SEEK &GC_ALIAS.->BESTEL_NR
  261.    IF EOF()
  262.       APPEND BLANK
  263.       REPLACE MAGAZIJN->BESTEL_NR WITH &GC_ALIAS.->BESTEL_NR
  264.    ENDIF
  265.    SET FILTER TO &GC_ALIAS.->BESTEL_NR = MAGAZIJN->BESTEL_NR
  266.    GO TOP
  267.    KEYBOARD CHR(27)
  268.    DO Browseit
  269.    SELE &gc_alias.
  270.    ACTIVATE SCREEN
  271. RETURN
  272.  
  273. PROCEDURE Lineitem
  274.    ln_key = INKEY()
  275.    DO Keykill
  276.    SELE MAGAZIJN
  277.    APPEND BLANK
  278.    REPLACE MAGAZIJN->BESTEL_NR WITH &GC_ALIAS.->BESTEL_NR
  279.    GO TOP
  280.    DO Browseit
  281.    ACTIVATE SCREEN
  282.    DO Keyset
  283.    *----------------------------------------------------------------------------
  284.    *-- Could put code here to SUM the order balance and replace in a total field
  285.    *-- Example:
  286.    *-- SUM ALL extended TO m->extended
  287.    *-- REPLACE &gc_alias.->Total_bill WITH m->extended
  288.    *----------------------------------------------------------------------------
  289.    SELE &gc_alias.
  290. RETURN
  291.  
  292. PROCEDURE Browseit
  293. SET CURSOR ON
  294. BROWSE;
  295.   FIELDS ONDRDL_NR, ARTIKEL/12, OMSCHRIJV/20, AANTAL, STUKPRIJS, ;
  296.          EXTENDED=AANTAL*STUKPRIJS,MAGAZIJN->BESTEL_NR /R;
  297.   WINDOW table COMPRESS NOMENU NOCLEAR
  298. SET CURSOR OFF
  299. RETURN
  300.  
  301. PROCEDURE Keyset
  302.    ON KEY LABEL F1 DO Invo_hlp
  303.    ON KEY LABEL F9  KEYBOARD CHR(23)+"L" 
  304.    ON KEY LABEL F10 KEYBOARD CHR(23)+"M"
  305. RETURN
  306.  
  307. PROCEDURE Keykill
  308.    ON KEY LABEL F1 DO Nothing
  309.    ON KEY LABEL F9 DO Nothing
  310.    ON KEY LABEL F10 DO Nothing
  311. RETURN
  312.  
  313. PROCEDURE Nothing
  314.    ln_key=INKEY()
  315. RETURN
  316.  
  317. PROCEDURE Chkdele
  318.   IF DELETED()
  319.      DEFINE BAR 4 OF records PROMPT "Wismarkering verwijderen  ";
  320.      MESSAGE "Wismarkering bij record plaatsen/verwijderen"
  321.   ELSE
  322.      DEFINE BAR 4 OF records PROMPT "   Wismarkering aanbrengen";
  323.      MESSAGE "Een wismarkering bij dit record plaatsen"
  324.   ENDIF
  325. RETURN
  326.  
  327. PROCEDURE Recappnd
  328.    *------------------------------------------------------------------------
  329.    *-- Could put code here to advance the invoice number, etc.
  330.    GO BOTT
  331.    morder = BESTEL_NR
  332.    APPEND BLANK
  333.    REPLACE bestel_nr WITH SUBSTR(morder,1,3) + LTRIM(STR(VAL(SUBSTR(morder,4))+1))
  334.    *------------------------------------------------------------------------
  335. RETURN
  336.  
  337. *-- The following procedures handle the selections of the edit menu ---------
  338. PROCEDURE Get_recs
  339.    *-- Get the user selection & store BAR into variable
  340.    gn_pick = BAR()  && Variable for bar testing
  341.    DO CASE
  342.       CASE gn_pick = 1
  343.          *-- Prepare variable for rollback operation on return
  344.          gl_rollbck = .T.
  345.       CASE gn_pick = 3
  346.           DO Recappnd
  347.       CASE gn_pick = 4
  348.          *-- Delete/recall record
  349.          IF DELETE()
  350.             RECALL 
  351.             SELE MAGAZIJN
  352.             RECALL ALL
  353.          ELSE
  354.             DELETE
  355.             SELE MAGAZIJN
  356.             DELETE ALL
  357.          ENDIF
  358.          SELE (gc_alias)
  359.       CASE gn_pick = 5
  360.          *-- Blank record
  361.    ENDCASE
  362.    DO Chkdele
  363.    DEACTIVATE MENU
  364. RETURN
  365.  
  366. PROCEDURE Get_goto
  367.    *-- Get the user selection & store BAR into variable
  368.    gn_pick = BAR()  && Variable for bar testing
  369.    mpict = REPLICATE("9", LEN( LTRIM( STR( RECCOUNT()))))
  370.    gc_search = gc_search + SPACE( 200 - LEN(gc_search))
  371.    gc_seek = gc_seek + SPACE(LEN( BESTEL_NR) - LEN(gc_seek))
  372.    DO CASE
  373.       CASE gn_pick = 1
  374.          *-- Go to top of file
  375.          GO TOP
  376.       CASE gn_pick = 2
  377.          *-- Go to bottom of file
  378.          GO BOTTOM
  379.       CASE gn_pick = 3
  380.          *-- Go to a specfic record
  381.          @ 4,39 GET gn_gorec RANGE 1, RECCOUNT() PICTURE mpict
  382.          READ
  383.          gn_gorec = IIF( gn_gorec=0, RECNO(), gn_gorec)
  384.          GO gn_gorec
  385.       CASE gn_pick = 4
  386.          *-- Skip a certain number of records
  387.          skiprec = IIF( RECCOUNT() > 9, 10, 5)
  388.          SET DELI OFF
  389.          @ 5,39 GET skiprec PICTURE mpict
  390.          READ
  391.          SET DELI ON
  392.          SKIP skiprec
  393.          IF EOF()
  394.            SKIP -1
  395.          ENDIF
  396.       CASE gn_pick = 6
  397.          ACTIVATE WINDOW seek
  398.          *-- Seek on key field
  399.          IF "" = ORDER()
  400.             tempmdx = TAG(1)
  401.             SET ORDER TO TAG &tempmdx.
  402.          ENDIF
  403.          @ 0,1 SAY "Geef zoekreeks op voor"
  404.          @ 1,1 SAY TAG(1)+":" GET gc_seek PICT "@S20";
  405.            MESSAGE "Annuleren: Esc";
  406.            VALID LEN( TRIM( gc_seek)) > 0;
  407.            ERROR "Geen zoekvoorwaarde opgegeven"
  408.          READ
  409.          IF READKEY() <> 12
  410.             gc_seek = LTRIM( TRIM(gc_seek))
  411.             mrec = RECNO()
  412.             SEEK gc_seek
  413.             IF .NOT. FOUND()
  414.                GO mrec
  415.             ENDIF
  416.          ENDIF
  417.          DEACTIVATE WINDOW seek
  418.          ACTIVATE SCREEN
  419.       CASE gn_pick = 7
  420.          *-- Forward search
  421.          ACTIVATE WINDOW search
  422.          @ 0,1 SAY "Geef zoekreeks op:" GET gc_search PICT "@S21";
  423.            MESSAGE "Annuleren: Esc";
  424.            VALID LEN( TRIM( gc_search)) > 0;
  425.            ERROR "Geen zoekvoorwaarde opgegeven"
  426.          READ
  427.          DEACTIVATE WINDOW search
  428.          ACTIVATE SCREEN
  429.          IF READKEY() <> 12
  430.             gc_search = LTRIM( RTRIM( gc_search))
  431.             mrec = RECNO()
  432.             LOCATE REST FOR &gc_search.
  433.             IF .NOT. FOUND()
  434.                GO mrec
  435.             ENDIF
  436.          ENDIF
  437.       CASE gn_pick = 8
  438.          *-- Backward search
  439.          ACTIVATE WINDOW bsearch
  440.          @ 0,1 SAY "Geef zoekreeks op:" GET gc_search PICT "@S21";
  441.            MESSAGE "Annuleren: Esc";
  442.            VALID len(trim(gc_search)) > 0;
  443.            ERROR "Geen zoekvoorwaarde opgegeven"
  444.          READ
  445.          DEACTIVATE WINDOW bsearch
  446.          ACTIVATE SCREEN
  447.          IF READKEY() <> 12
  448.             gc_search = LTRIM( RTRIM( gc_search))
  449.             mrec = RECNO()
  450.             DO WHILE .NOT. (BOF() .OR. &gc_search.)
  451.                SKIP -1
  452.             ENDDO
  453.             IF BOF()
  454.                GO mrec
  455.             ENDIF
  456.          ENDIF
  457.   ENDCASE
  458.   DEACTIVATE MENU
  459. RETURN
  460.  
  461. PROCEDURE Get_exit
  462.    CLEAR GETS
  463.    *-- Prepare variable to exit loop
  464.    gl_extloop = .T.
  465.    DEACTIVATE MENU
  466. RETURN
  467.  
  468. PROCEDURE Pause
  469. PARAMETER lc_msg
  470. *-- Parameters : lc_msg = message line
  471. IF TYPE("lc_message")="U"
  472.    gn_error=ERROR()
  473. ENDIF
  474. lc_msg = lc_msg
  475. lc_option='0'
  476. ACTIVATE WINDOW Pause
  477. IF gn_error > 0
  478.    IF TYPE("lc_message")="U"
  479.       @ 0,1 SAY [Fout opgetreden !! - Foutmelding: ]+MESSAGE()
  480.    ELSE
  481.       @ 0,1 SAY [Fout nr. ]+lc_message
  482.    ENDIF
  483. ENDIF
  484. @ 1,1 SAY lc_msg
  485. WAIT " Druk op een toets voor vervolg..."
  486. DEACTIVATE WINDOW Pause
  487. RETURN
  488.  
  489.  
  490. *-- UDF library ----------------------------------------------------------------
  491. FUNCTION Center
  492. *-- UDF to center a string.
  493. *-- lc_string = String to center
  494. *-- ln_width = Width of screen to center in
  495. *--
  496. *-- Ex. @ 15,center(string,80) say string
  497. *-- Will center the <string> withing 80 columns
  498. PARAMETER lc_string, ln_width
  499. RETURN ((ln_width/2)-(LEN(lc_string)/2))
  500. *-- End UDF library ------------------------------------------------------------
  501.  
  502. PROCEDURE Invo_hlp
  503. gc_readvar = VARREAD()                  && Could do context sensitive help
  504. ACTIVATE WINDOW Invo_hlp
  505. CLEAR
  506. TEXT
  507.     HULP-functies:
  508.     --------------
  509.     F1: Deze hulptekst op het scherm brengen
  510.     F9: Vanuit het menusysteem van de factuur naar de regelopties
  511.     F10: Naar het menusysteem boven aan de factuur
  512.  
  513.     PgDn: Volgende factuur              
  514.     PgUp: Vorige factuur 
  515.     Ctrl-PgDn: Naar de laatste factuur in de database    
  516.     Ctrl-PgUp: Naar de eerste factuur in de dabase
  517.     Esc: De factuur verlaten
  518. ENDTEXT
  519. @ 16,5 say "Druk op een toets.."
  520. x = INKEY(0)
  521. CLEAR
  522. TEXT
  523.     HULP voor regelopties:
  524.     ----------------------
  525.     F1: Deze hulptekst op het scherm brengen
  526.  
  527.     PgDn: Naar het volgende scherm met regelopties
  528.     PgUp: Naar het vorige scherm met regelopties
  529.     Ctrl-PgDn: Naar het laatste scherm met regelopties
  530.     Ctrl-PgUp: Naar het eerste scherm met regelopties
  531.     Esc: Naar bovenste gedeelte van de factuur
  532. ENDTEXT
  533. @ 16,5 say "Druk op een toets..."
  534. x = INKEY(0)
  535. DEACTIVATE WINDOW Invo_hlp
  536. ACTIVATE SCREEN
  537. RETURN
  538.  
  539. PROCEDURE Defnmenu
  540.    *-- This menu simulates the F10 menu for edit for this edit program
  541.    *-- Not all of the actions will be able to be duplicated though.
  542.  
  543.    SET BORDER TO DOUBLE
  544.  
  545.    DEFINE MENU editmenu
  546.      DEFINE PAD records OF editmenu PROMPT "Records" AT 0,2
  547.        ON PAD records OF editmenu ACTIVATE POPUP records
  548.      DEFINE PAD go_to OF editmenu PROMPT "Ga naar" AT 0,14
  549.         ON PAD go_to OF editmenu ACTIVATE POPUP go_to
  550.      DEFINE PAD exit OF editmenu PROMPT "Einde" AT 0,24
  551.        ON PAD exit OF editmenu ACTIVATE POPUP exit
  552.  
  553.    * -- Define popup menu
  554.    DEFINE POPUP records FROM 1,0
  555.      DEFINE BAR 1 OF records PROMPT "   Wijziging annuleren";
  556.      MESSAGE "Wijziging in huidig record ongedaan maken"
  557.      DEFINE BAR 2 OF records PROMPT "──────────────────────────────────────" SKIP
  558.      DEFINE BAR 3 OF records PROMPT "   Toevoegen records";
  559.      MESSAGE "Records aan einde van database-bestand toevoegen"
  560.      *-- Bar 4 is determined on the record being deleted or not
  561.      DO Chkdele  && Define bar 4 done in procedure
  562.      DEFINE BAR 5 OF records PROMPT "   Leeg record" SKIP ;
  563.      MESSAGE "De inhoud van alle velden in dit record leegmaken"  
  564.      DEFINE BAR 6 OF records PROMPT "   Vergrendelen record";
  565.      MESSAGE " " SKIP
  566.      DEFINE BAR 7 OF records PROMPT "   Naar nieuwe positie van record  JA" SKIP
  567.      DEFINE POPUP go_to FROM 1,12
  568.      DEFINE BAR 1 OF go_to PROMPT "   Eerste record";
  569.      MESSAGE "Naar eerste record in dit database-bestand gaan"
  570.      DEFINE BAR 2 OF go_to PROMPT "   Laatste record";
  571.      MESSAGE "Naar laatste record in dit database-bestand gaan"
  572.      DEFINE BAR 3 OF go_to PROMPT "   Recordnummer";
  573.      MESSAGE "Naar record met opgegeven nummer gaan"
  574.      DEFINE BAR 4 OF go_to PROMPT "   Overslaan";
  575.      MESSAGE "Telkens het opgegeven aantal records overslaan (minteken: terug)"
  576.      DEFINE BAR 5 OF go_to PROMPT "──────────────────────────────────" SKIP
  577.      DEFINE BAR 6 OF go_to PROMPT "   Indexsleutel zoeken"  SKIP FOR "" = gc_mdx;
  578.      MESSAGE "Zoeken naar tekenreeks op basis van indexbestand"
  579.      DEFINE BAR 7 OF go_to PROMPT "   Zoeken                ";
  580.      MESSAGE "Voorwaarts zoeken naar tekenreeks in veld (vanaf huidig record)"
  581.      DEFINE BAR 8 OF go_to PROMPT "   Achterwaarts zoeken   ";
  582.      MESSAGE "Terugzoeken naar tekenreeks in veld (vanaf huidig record)"
  583.      DEFINE BAR 9 OF go_to PROMPT "   Hoofdletters/kleine letters  NEE" SKIP
  584.  
  585.    DEFINE POPUP exit FROM 1,22
  586.      DEFINE BAR 1 OF exit PROMPT "   Einde";
  587.      MESSAGE "Wijzigingen in huidig record opslaan en stoppen"
  588.      DEFINE BAR 2 OF exit PROMPT "   Over naar query-ontwerp   " SKIP
  589.  
  590.    ON SELECTION POPUP records DO Get_recs
  591.    ON SELECTION POPUP go_to DO Get_goto
  592.    ON SELECTION POPUP exit DO Get_exit
  593.  
  594.    DEFINE WINDOW seek FROM 8,15 TO 11,44
  595.    DEFINE WINDOW search FROM 9,15 TO 11,60
  596.    DEFINE WINDOW bsearch FROM 10,15 TO 12,60
  597.  
  598.    SHOW MENU Editmenu
  599. RETURN
  600. *---------------------------------------------------------------------------
  601. *-- EOP: INVOICE2.PRG
  602.