home *** CD-ROM | disk | FTP | other *** search
- ******************************************************************************
- * PROGRAM NAME: REKN_REC.PRG
- * ACCOUNTS RECEIVABLE DATABASE SCREEN
- * SAMPLE BUSINESS APPLICATION PROGRAM
- * LAST CHANGED: 080692
- * WRITTEN BY: Borland International Inc.
- ******************************************************************************
- *
- * FILES USED:
- * Database file = Acct_rec.dbf (Accounts receivable file)
- * Index file = Acct_rec.mdx
- * TAGS: Invoice_no = invoice_no <= Master index
- * Oldbalance = oldbalance
- * Cust_id = cust_id
- * External procedure file = Library.prg
- ******************************************************************************
-
- * Main procedure
- PROCEDURE Rekn_rec
-
- * Link to external procedure file of "tool" procedures
- SET PROCEDURE TO Biblio
-
- * Set up database environment
- DO Set_env
-
- SET COLOR TO &c_standard.
-
- * Declare variables used:
- * Database memory variables
- STORE "" TO factuur_nr, klant_nr, commentaar, opmerking, factuur_nr, fact_oud
- STORE 0 TO huidg_bedr, bed_hui_bt, fact_bedrg, bed_lstrek
- STORE 0 TO bed_lstbet, vrg_saldo
- STORE {} TO fact_datum, dat_lstrek
-
- * Miscellaneous variables - used to pass parameters to Library
- dbf = "REKN_REC" && Standard report is available
- mlist = "NIET BESCHIKBAAR" && No mailing list available
- cust_rpt = "N/B" && No custom reports available
- STORE "m->factuur_nr" TO key, key1
- STORE "GEEN" TO key2, key3
- keyname1 = "Factuurnr.:"
- STORE "" TO keyname2, keyname3
- list_flds = "FACTUUR_NR, KLANT_NR, FACT_DATUM, FACT_BEDRG, VRG_SALDO"
- STORE 0 TO balance, age
-
- * Open database files and choose active indexes
- SELECT 1
- USE Rekn_rec ORDER Factuur_nr
- USE Klnt ORDER Klantnaam IN 2
- SET RELATION TO Klant_nr INTO Klnt
- GO TOP
-
- record_num = RECNO()
- * Load initial record from database into memory variables
- DO Load_fld
-
- * Show data screen
- CLEAR
- DO Dstatus
- DO Backgrnd
- DO Show_data
-
- * Define popup menus
- DO Bar_def
-
- * Activate main popup menu - execute user choices
- SET COLOR TO &c_popup.
- ACTIVATE POPUP main_mnu
- DO Sub_ret
- *
- RETURN
- *** END MAIN PROCEDURE ****************************************************
-
- * UTILITY PROCEDURES (Proprietary to Acct_rec.prg)
-
- PROCEDURE Indexer
- * Create/rebuild indexes
- INDEX ON vrg_saldo TAG Vrg_saldo
- INDEX ON klant_nr TAG Klant_nr
- INDEX ON factuur_nr TAG Factuur_nr
- GO TOP
- RETURN
-
- PROCEDURE Init_fld
- * Initialize memory variable values for data entry
- STORE SPACE(10) TO factuur_nr, fact_oud
- klant_nr = SPACE(6)
- STORE 0 TO huidg_bedr, fact_bedrg, bed_lstrek, bed_lstbet
- STORE SPACE(30) TO commentaar, opmerking
- STORE { - - } TO fact_datum, dat_lstrek
- RETURN
-
- PROCEDURE Load_fld
- * Load field values from Acct_rec database record into memory variables
- factuur_nr = factuur_nr
- klant_nr = klant_nr
- huidg_bedr = huidg_bedr
- bed_hui_bt = bed_hui_bt
- fact_datum = fact_datum
- fact_bedrg = fact_bedrg
- commentaar = commentaar
- opmerking = opmerking
- dat_lstrek = dat_lstrek
- bed_lstrek = bed_lstrek
- bed_lstbet = bed_lstbet
- vrg_saldo = vrg_saldo
- fact_oud = fact_oud
- RETURN
-
- PROCEDURE Repl_fld
- * Replace database fields with values of current memory variables
- REPLACE factuur_nr WITH m->factuur_nr, klant_nr WITH m->klant_nr,;
- huidg_bedr WITH m->huidg_bedr, fact_datum WITH m->fact_datum,;
- fact_bedrg WITH m->fact_bedrg, commentaar WITH m->commentaar
- REPLACE opmerking WITH m->opmerking, dat_lstrek WITH m->dat_lstrek,;
- bed_lstrek WITH m->bed_lstrek, bed_lstbet WITH m->bed_lstbet,;
- fact_oud WITH m->fact_oud, vrg_saldo WITH m->vrg_saldo,;
- bed_hui_bt WITH m->bed_hui_bt
- RETURN
-
- PROCEDURE Backgrnd
- * Show background screen
- * Draw and fill in boxes
- @ 1,18 TO 3,41 DOUBLE COLOR &c_blue.
- @ 5, 1 TO 7,56 DOUBLE COLOR &c_red.
- @ 2,19 FILL TO 2,40 COLOR &c_red.
- @ 6, 2 FILL TO 6,55 COLOR &c_red.
- @ 9, 2 FILL TO 20,55 COLOR &c_red.
- @ 10, 1 TO 10,56 COLOR &c_red.
- @ 18, 1 TO 18,56 COLOR &c_red.
- @ 8, 1 TO 21,56 COLOR &c_red.
- SET COLOR TO &c_data.
- @ 2,20 SAY "DATABASE REKN. REC."
- @ 6, 3 SAY "FACTUURNR.:"
- @ 6,28 SAY "FACTUURDATUM:"
- @ 9, 3 SAY "KLANTNR.:"
- @ 11, 3 SAY "- LAATSTE FACTUUR -"
- @ 12, 3 SAY "NUMMER:"
- @ 13, 3 SAY "DATUM:"
- @ 14, 3 SAY "LOOPTIJD:"
- @ 11,28 SAY "--------- BEDRAGEN ---------"
- @ 12,28 SAY "LAATSTE REK. ƒ"
- @ 14,17 SAY "dagen"
- @ 13,28 SAY "LAATST BETAALD ƒ"
- @ 14,28 SAY "VORIG SALDO ƒ"
- @ 15,28 SAY "LOPENDE ORDERS ƒ"
- @ 16,45 SAY "=========="
- @ 17, 3 SAY "LOPENDE BET. ƒ"
- @ 17,28 SAY "LOPENDE REK. ƒ"
- @ 19, 3 SAY "COMMENT.:"
- @ 20, 3 SAY "OPMERK.:"
- SET COLOR TO &c_standard.
- RETURN
-
- PROCEDURE Show_data
- * Show screen for data entry
- * Calculate temporary data
- * Old balance = amount last billed less amount last paid
- vrg_saldo = bed_lstrek - bed_lstbet
- * Amount of this bill is oldbalance plus amount of current purchases
- fact_bedrg = vrg_saldo + huidg_bedr
- * Aging if a balance is outstanding: today's date less date of last bill
- age = IIF(vrg_saldo > 0, DATE() - dat_lstrek, 0)
- *
- SET COLOR TO &c_fields.
- @ 6,16 SAY factuur_nr
- @ 6,42 SAY fact_datum
- @ 9,17 SAY klant_nr
- @ 9,24 SAY Klnt->klantnaam COLOR &c_yelowhit.
- @ 12,11 SAY fact_oud
- @ 13,11 SAY dat_lstrek
- * Set colors to show levels of aging of old balance
- age_color = "W" && Monochrome monitor
- IF ISCOLOR() && Color monitor
- DO CASE
- CASE m->age >= 60
- age_color = c_red && Red for danger
- CASE m->age >= 45
- age_color = c_yellow && Yellow for caution
- OTHERWISE
- age_color = c_green && Green - OK
- ENDCASE
- ENDIF
- @ 12,45 SAY bed_lstrek PICTURE "999999.99"
- @ 14,12 SAY m->age PICTURE "9999" COLOR &age_color.
- @ 13,45 SAY bed_lstbet PICTURE "999999.99"
- bal_color = "W" && Monochrome monitor
- IF ISCOLOR() && Color monitor
- DO CASE
- * Set color to show level of balance due from last bill
- CASE vrg_saldo >= 1000
- bal_color = c_red && Red for danger
- CASE vrg_saldo >= 100
- bal_color = c_yelowhit && Yellow for caution
- OTHERWISE
- bal_color = c_green && Green - OK
- ENDCASE
- ENDIF
- @ 14,45 SAY m->vrg_saldo PICTURE "999999.99" COLOR &bal_color.
- @ 15,45 SAY huidg_bedr PICTURE "999999.99"
- @ 17,17 SAY bed_hui_bt PICTURE "999999.99"
- @ 17,45 SAY m->fact_bedrg PICTURE "999999.99" COLOR &c_yelowhit.
- @ 19,12 SAY commentaar
- @ 20,12 SAY opmerking
- IF ISCOLOR()
- @ 22,1 SAY "Gele tekst/getallen uit verwante database/berekening. " ;
- COLOR &c_yelowhit.
- ELSE
- @ 22,1 SAY "Grijze tekst/getallen uit verwante database/berekening. " ;
- COLOR &c_red.
- ENDIF
- SET COLOR TO &c_standard.
- RETURN
-
- PROCEDURE Get_data
- SET COLOR TO &c_data.
- @ 6,16 GET m->factuur_nr ;
- VALID Duplicat(m->factuur_nr) ;
- ERROR "Factuurnummer bestaat al; voer opnieuw in" ;
- MESSAGE "Voer geldig factuurnummer in " + ;
- "(klantnummer + jaar + maand)"
- @ 6,42 GET m->fact_datum
- @ 9,17 GET m->klant_nr PICTURE "!XXXXX" ;
- VALID Lookupid((m->klant_nr), "Klnt", "Klantnaam", 2) ;
- ERROR "Ongeldig klantnummer; voer ander nummer in" ;
- MESSAGE "Voer een klantnummer in (beginnend met een " + ;
- "letter), of annuleer met Esc"
- IF .NOT. PROMPT() = " Toevoegen record"
- @ 9,24 SAY Klnt->klantnaam COLOR &c_yelowhit.
- ELSE
- @ 9,24 SAY SPACE(30) && Erase customer name when in Add mode
- ENDIF
- @ 12,11 GET m->fact_oud
- @ 13,11 GET m->dat_lstrek FUNCTION "D"
- @ 12,45 GET m->bed_lstrek PICTURE "999999.99"
- @ 13,45 GET m->bed_lstbet PICTURE "999999.99"
- @ 15,45 GET m->huidg_bedr PICTURE "999999.99"
- @ 17,17 GET m->bed_hui_bt PICTURE "999999.99"
- @ 19,12 GET m->commentaar FUNCTION "!"
- @ 20,12 GET m->opmerking FUNCTION "!"
- IF ISCOLOR()
- @ 22,1 SAY "Gele tekst/getallen uit verwante database/berekening. " ;
- COLOR &c_yelowhit.
- ELSE
- @ 22,1 SAY "Grijze tekst/getallen uit verwante database/berekening. " ;
- COLOR &c_red.
- ENDIF
- SET COLOR TO &c_standard.
- ON KEY LABEL F9 DO Findcust WITH m->klant_nr
- RETURN
-
- *** END REKN_REC.PRG *********************************************************
-