home *** CD-ROM | disk | FTP | other *** search
- * ┌─────────────────────────────────────────────────────────────────────┐ *
- * │ CUSTLIST.PRG: CUSTOMER LIST │ *
- * │ Copyright (c) 1989 Tech III, Inc. All rights reserved. │ *
- * │ Tech III of San Pedro, California (213) 547-2191. │ *
- * │ "The bridge connecting people and technology."(tm) │ *
- * └─────────────────────────────────────────────────────────────────────┘ *
- * FILE HANDLING
- @ 00,00 SAY WINTITLE(PROMPT())
-
- SELECT customer
-
- DEFINE POPUP company FROM 10,20 PROMPT FIELD company
- ON SELECTION POPUP company DEACTIVATE POPUP
-
- * INITIALIZE VARIABLES
- SET ORDER TO cus_com && Company-name order
- GO TOP
- STORE company TO start_co && Top company name
- GO BOTTOM
- STORE company TO end_co && Bottom company name
- STORE '' TO pagestr
- STORE 1 TO mpage
- STORE .t. TO _box, _wrap, printing
- * Boxes, and word-wrapping ON, Printing is a control variable to allow
- * user to cancel the job.
-
- STORE .f. TO done
- STORE SET('MEMOWIDTH') TO memocols && Save old setting
- SET MEMOWIDTH TO 40
-
- * DEFINITIONS
- ON ESCAPE STORE .f. TO printing
-
- STORE 60 TO _plength
-
- * USER INPUT: SELECT CUSTOMER RANGE TO PRINT
- STORE 'N' TO okay
- DO WHILE .NOT. okay $ 'YC'
- @ 03,02 SAY 'Start with company: '
- @ 03,25 GET start_co VALID GETFIRST(start_co)
- @ 05,02 SAY ' End with company: '
- @ 05,25 GET end_co VALID GETLAST(end_co) ;
- RANGE TRIM(start_co),
- @ 07,02 SAY 'Okay? Yes/No/Cancel: ' GET okay PICTURE '@M Y,N,C'
- READ
- ENDDO
- IF okay = 'C' && cancel
- RETURN
- ENDIF
-
- IF .NOT. YESNO("System is ready to print.")
- RETURN
- ELSE
- IF .NOT. READY2PR()
- STORE .f. TO printing
- ENDIF
- ENDIF
-
- IF .NOT. printing
- DO standby WITH 'You have canceled this report.'
- ELSE
- SEEK start_co
-
- * START PRINTING
- SET PRINT ON
- SET CONSOLE OFF
- ACTIVATE WINDOW pticker
-
- PRINTJOB
- ON PAGE
- DO prn_head
- SCAN REST WHILE printing .AND. company <= end_co
- IF PROW() > 52
- DO prn_foot
- ENDIF
- ?
- ?? PTICKER() + cust_id AT 2
- ?? PTICKER() + company AT 10
- IF taxrate # 0
- ?? PTICKER() + 'TAX RATE: ' + TRANSFORM(taxrate,'99.99') AT 50
- ENDIF
- ? PTICKER() + REPL('─',LEN(TRIM(company))) AT 10
- IF PROW() > 52
- DO prn_foot
- ENDIF
- IF .NOT. EMPTY(address1)
- ? PTICKER() + address1 AT 10
- IF PROW() > 52
- DO prn_foot
- ENDIF
- ENDIF
- IF .NOT. EMPTY(city + state + zip)
- ? PTICKER() + TRIM(city) + ', ' + state + ' ' + zip AT 10
- IF PROW() > 52
- DO prn_foot
- ENDIF
- ENDIF
- ?
- IF PROW() > 52
- DO prn_foot
- ENDIF
- IF MEMLINES(comments) # 0
- IF MIN(MEMLINES(comments),7) + PROW() > 52
- DO prn_foot
- ENDIF
- DEFINE BOX FROM 10 TO 53 HEIGHT MIN(MEMLINES(comments),7) + 2 SINGLE
- FOR x = 1 TO MIN(MEMLINES(comments),7)
- ? PTICKER() + MLINE(comments,x) AT 12
- ENDFOR
- ?
- ENDIF
- ? REPLICATE('─',80)
- ENDSCAN
- STORE .t. TO done
- ENDPRINTJOB
-
- SET PRINTER OFF
- SET CONSOLE ON
- DEACTIVATE WINDOW pticker
- DO standby WITH 'Your print request has been completed.'
- ENDIF
-
- SET MEMOWIDTH TO memocols
- RETURN
-
-
- PROCEDURE prn_head && HEADINGS
- STORE 0 TO _plineno, _pcolno
- DEFINE BOX FROM 00 TO 79 HEIGHT 3 AT LINE 0 DOUBLE
- STORE LTRIM(STR(mpage,3)) TO pagestr
- ? "CUSTOMER LIST This page begins with the " + UPPER(LEFT(company,1)) + "'s" + SPACE(14-LEN(pagestr)) + "PAGE: " + pagestr AT 3
- ?
- ?
- ? REPLICATE('─',80)
- ?
- RETURN
-
- PROCEDURE prn_foot && FOOTERS
- ?
- DEFINE BOX FROM 00 TO 79 HEIGHT 3 DOUBLE
- ? ' CUSTOMER LIST ' + DTOC(DATE()) + ' @ ' + LEFT(TIME(),5) + ' ' + SPACE(3-LEN(pagestr)) + 'PAGE: ' + pagestr AT 3
- ?
- ?
- EJECT
- STORE mpage+1 TO mpage
- STORE _pageno + 1 TO _pageno
- IF printing .AND. .NOT. done
- DO prn_head
- ENDIF
- RETURN
-
- FUNCTION getfirst
- PARAMETER a_coname
- SEEK a_coname
- DO WHILE .NOT. FOUND()
- keyboard LEFT(a_coname,1)
- ACTIVATE POPUP company
- IF EMPTY(PROMPT())
- LOOP
- ENDIF
- STORE PROMPT() TO start_co
- SEEK start_co
- ENDDO
- RETURN .t.
-
- FUNCTION getlast
- PARAMETER a_coname
- SEEK a_coname
- DO WHILE .NOT. FOUND()
- SET FILTER TO company >= start_co
- keyboard LEFT(a_coname,1)
- ACTIVATE POPUP company
- IF EMPTY(PROMPT())
- LOOP
- ENDIF
- STORE PROMPT() TO end_co
- SEEK end_co
- ENDDO
- SET FILTER TO
- RETURN .t.
-
- * EOF
-