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

  1. * Programma..........:  VERKOPER.FRG
  2. * Datum..............:  22-04-93
  3. * Versies............: dBASE IV 2.0
  4. *
  5. * Notities:
  6. * ------
  7. * Voordat u deze procedure met het DO-commando gaat uitvoeren
  8. * moet u LOCATE gebruiken, omdat de CONTINUE-
  9. * opdracht zich in de hoofdlus bevindt.
  10. *
  11. *-- Parameters
  12. PARAMETERS gl_noeject, gl_plain, gl_summary, gc_heading, gc_extra
  13. ** De eerste drie parameters zijn van het type Logisch.
  14. ** De vierde parameter is een tekenreeks en de vijfde is een extra parameter.
  15. PRIVATE _peject, _wrap, ll_heading
  16. ll_heading=.F.
  17.  
  18. *-- Testen op de aanwezigheid van records
  19. IF EOF() .OR. .NOT. FOUND()
  20.    RETURN
  21. ENDIF
  22.  
  23. *-- regelovergang uitschakelen
  24. _wrap=.F.
  25.  
  26. IF _plength < (_pspacing * 3 + 1) + (_pspacing + 1) + 2
  27.    SET DEVICE TO SCREEN
  28.    DEFINE WINDOW gw_report FROM 7,17 TO 11,62 DOUBLE
  29.    ACTIVATE WINDOW gw_report
  30.    @ 0,1 SAY "Verhoog de paginalengte voor dit rapport."
  31.    @ 2,1 SAY "Druk op een toets ..."
  32.    x=INKEY(0)
  33.    DEACTIVATE WINDOW gw_report
  34.    RELEASE WINDOW gw_report
  35.    RETURN
  36. ENDIF
  37.  
  38. _plineno=0          && regels instellen op nul
  39. *-- NOEJECT-parameter
  40. IF gl_noeject
  41.    IF _peject="BEFORE"
  42.       _peject="NONE"
  43.    ENDIF
  44.    IF _peject="BOTH"
  45.       _peject="AFTER"
  46.    ENDIF
  47. ENDIF
  48.  
  49. *-- Instellingsomgeving
  50. ON ESCAPE DO Prnabort
  51. IF SET("TALK")="ON"
  52.    SET TALK OFF
  53.    gc_talk="ON"
  54. ELSE
  55.    gc_talk="OFF"
  56. ENDIF
  57. gc_space=SET("SPACE")
  58. SET SPACE OFF
  59. gc_time=TIME()      && systeemtijd opgegeven veld
  60. gd_date=DATE()      &&&& systeemdatum  "    "    "     "
  61. gl_fandl=.F.        && vlag voor eerste en laatste pagina
  62. gl_prntflg=.T.      &&Doorgaan met het afdrukken van vlag
  63. gl_widow=.T.        &&vlag voor het controleren van weduwezones
  64. gn_length=LEN(gc_heading)  && lengte van kopregel opslaan
  65. gn_level=2          &&verwerking van actieve zone
  66. gn_page=_pageno     &&nummer van actieve pagina vastleggen
  67. gn_pspace=_pspacing &&actieve regelafstand voor afdruk bepalen
  68.  
  69.  
  70. *-- Instellen van pagina-onderbrekingen
  71. gn_atline=_plength - (_pspacing + 1)
  72. ON PAGE AT LINE gn_atline EJECT PAGE
  73.  
  74. *-- Afdrukken rapport
  75.  
  76. PRINTJOB
  77.  
  78. *-- Initiatie van samenvattingsvelden.
  79. r_msum1=0
  80.  
  81. IF gl_plain
  82.    ON PAGE AT LINE gn_atline DO Pgplain
  83. ELSE
  84.    ON PAGE AT LINE gn_atline DO Pgfoot
  85. ENDIF
  86.  
  87. DO Pghead
  88.  
  89. gl_fandl=.T.        && eerste pagina gestart
  90.  
  91. DO Rintro
  92.  
  93. *-- Bestandslus
  94. DO WHILE FOUND() .AND. .NOT. EOF() .AND. gl_prntflg
  95.    gn_level=0
  96.    *-- Detailregels
  97.    IF gl_summary
  98.       DO Upd_Vars
  99.    ELSE
  100.       DO __Detail
  101.    ENDIF
  102.    gl_widow=.T.         && weduwecontrole inschakelen
  103.    CONTINUE
  104. ENDDO
  105.  
  106. IF gl_prntflg
  107.    DO Rsumm
  108.    IF _plineno <= gn_atline
  109.       EJECT PAGE
  110.    ENDIF
  111. ELSE
  112.    DO Rsumm
  113.    DO Reset
  114.    RETURN
  115. ENDIF
  116.  
  117. ON PAGE
  118.  
  119. ENDPRINTJOB
  120.  
  121. DO Reset
  122. RETURN
  123. * EOP: C:\NL_15\DATA\VERKOPER.FRG
  124.  
  125. *Bijwerken van samenvattingsvelden en/of rekenvelden.
  126. PROCEDURE Upd_Vars
  127. *telling
  128. r_msum1=r_msum1+1
  129. RETURN
  130. * EOP: Upd_Vars
  131.  
  132. *-- Vlag instellen zodat met ESC de DO WHILE-lus wordt verlaten
  133. PROCEDURE Prnabort
  134. gl_prntflg=.F.
  135. RETURN
  136. * EOP: Prnabort
  137.  
  138. PROCEDURE Pghead
  139. ?? IIF(gl_plain,'',gd_date) AT 0,;
  140.  "Pag. " AT 72,;
  141.  IIF(gl_plain,'',_pageno) PICTURE "999" 
  142. ?
  143. ?
  144. ?
  145. RETURN
  146. * EOP: Pghead
  147.  
  148. PROCEDURE Rintro
  149. ?
  150. DEFINE BOX FROM 31 TO 63 HEIGHT 4 SINGLE
  151. ?
  152. ?? "A&T MEUBELINDUSTRIE" AT 38
  153. ?
  154. ?? "RAPPORT VERKOPERS" AT 39
  155. ?
  156. ?
  157. ?
  158. ?? ;
  159. "══════════════════════════════════════════════════════════════════════";
  160. + "══════════";
  161. AT 0
  162. ?
  163. RETURN
  164. * EOP: Rintro
  165.  
  166. PROCEDURE __Detail
  167. IF 8 * gn_pspace < gn_atline - (_pspacing * 3 + 1)
  168.    IF gl_widow .AND. _plineno+8 * gn_pspace > gn_atline + 1
  169.       EJECT PAGE
  170.    ENDIF
  171. ENDIF
  172. DO Upd_Vars
  173. ?
  174. ?? "VERKOOPNR.: " STYLE "BU" AT 0,;
  175.  Verkoop_nr FUNCTION "T" STYLE "BU" 
  176. ?
  177. ?? Verkoper FUNCTION "T" AT 0
  178. ?
  179. ?? Adres1 FUNCTION "T" AT 0,;
  180.  "  " ,;
  181.  Adres2 FUNCTION "T" 
  182. ?
  183. ?? Postcode FUNCTION "T" PICTURE "9999 AA" AT 0,;
  184.  "  " ,;
  185.  Woonplaats FUNCTION "T" PICTURE "!!!!!!!!!!!!!!!!!!!!" ,;
  186.  " (" ,;
  187.  Provincie FUNCTION "T" ,;
  188.  ")" 
  189. ?
  190. ?? "CONTACT:  " AT 0,;
  191.  Contact FUNCTION "T" ,;
  192.  Telefoon FUNCTION "T" PICTURE "XXX#X#XXXXX" AT 52,;
  193.  "TOESTEL: " AT 64,;
  194.  Intern FUNCTION "T" 
  195. ?
  196. ?? "CONDITIES:  " AT 0,;
  197.  Condities FUNCTION "T" ,;
  198.  "KORTING: " AT 28,;
  199.  Korting PICTURE "99" ,;
  200.  "%" 
  201. ?
  202. ?? ;
  203. "──────────────────────────────────────────────────────────────────────";
  204. + "──────────";
  205. AT 0
  206. ?
  207. RETURN
  208. * EOP: __Detail
  209.  
  210. PROCEDURE Rsumm
  211. ?
  212. ?? ;
  213. "══════════════════════════════════════════════════════════════════════";
  214. + "══════════";
  215. AT 0
  216. ?
  217. ?? "TOTAAL AANTAL VERKOPERS: " AT 0,;
  218.  r_msum1 PICTURE "999" 
  219. ?
  220. ?? ;
  221. "══════════════════════════════════════════════════════════════════════";
  222. + "══════════";
  223. AT 0
  224. gl_fandl=.F.        && laatste pagina gereed
  225. ?
  226. RETURN
  227. * EOP: Rsumm
  228.  
  229. PROCEDURE Pgfoot
  230. PRIVATE _box, _pspacing
  231. gl_widow=.F.         && weduwecontrole uitschakelen
  232. _pspacing=1
  233. ?
  234. IF .NOT. gl_plain
  235.    _pspacing=gn_pspace
  236.    ?? "SAMENGESTELD DOOR AFDELING VERKOOP" AT 32
  237. ENDIF
  238. EJECT PAGE
  239. *is het paginanummer hoger dan die van de laatste pagina
  240. IF _pageno > _pepage
  241.    GOTO BOTTOM
  242.    SKIP
  243.    gn_level=0
  244. ENDIF
  245. IF .NOT. gl_plain .AND. gl_fandl
  246.    _pspacing=gn_pspace
  247.    DO Pghead
  248. ENDIF
  249. RETURN
  250. * EOP: Pgfoot
  251.  
  252. *-- Pagina-onderbreking bij gebruik van PLAIN-optie.
  253. PROCEDURE Pgplain
  254. PRIVATE _box
  255. EJECT PAGE
  256. RETURN
  257. * EOP: Pgplain
  258.  
  259. *-- dBASE-omgeving opnieuw instellen voordat rapport wordt aangeroepen
  260. PROCEDURE Reset
  261. SET SPACE &gc_space.
  262. SET TALK &gc_talk.
  263. ON ESCAPE
  264. ON PAGE
  265. RETURN
  266. * EOP: Reset
  267.  
  268.