home *** CD-ROM | disk | FTP | other *** search
- *****************************************************************************************
- * PROGRAM NAME: PERSONEL.PRG
- * EMPLOYEE DATABASE SCREEN
- * SAMPLE BUSINESS APPLICATION PROGRAM
- * LAST CHANGED: 080692
- * WRITTEN BY: Borland International
- *****************************************************************************************
- *
- * FILES USED:
- * Database = Personel.dbf (Employee personnel file)
- * Index file = Personel.mdx
- * TAG: Namen = achternaam+voornaam+invoeg <= Master index
- * TAG: Afdel = afdeling+achternaam+voornaam+invoeg
- * TAG: Status = afdeling+STR(salaris,8,2)
- * TAG: Jaren = STR(dienstjr,4,1)
- * TAG: Pers_nr= pers_nr
- * External procedure file used = Biblio.prg
- *****************************************************************************************
- * Main procedure
- PROCEDURE Personel
-
- * Link to external procedure file of "tool" procedures
- SET PROCEDURE TO Biblio
- * Do not overwrite C_SAVE if it already exists
- IF TYPE("C_SAVE")="U"
- public c_save
- set console off
- c_save=SET("ATTRIBUTES")
- set console on
- ENDIF
- * Set up database environment
- DO Set_env
-
- SET COLOR TO &c_standard.
-
- * Declare variables used:
- * Database memory variables
- STORE "" TO achternaam, voornaam, invoeg, adres1, adres2, woonplaats, provincie, postcode, telefoon
- STORE "" TO pers_nr, branche, titel, bonus, info, afdeling, functie
- STORE 0 TO schaal, dienstjr, salaris, toeslag
- STORE .F. TO spaarfonds, deeltijd
- in_dienst = { - - }
-
- * Miscellaneous variables - used to pass parameters to Library
- STORE "PERSONEL" TO dbf,mlist && Standard report and mailing list are available
- STORE "" TO cust_rpt && Custom report(s) are available
- key = "m->achternaam+m->voornaam"
- key1 = "m->achternaam"
- key2 = "m->voornaam"
- key3 = "GEEN"
- keyname1 = "Achternaam:"
- keyname2 = "Voornaam:"
- keyname3 = ""
- list_flds = "ACHTERNAAM, VOORNAAM, AFDELING, TELEFOON"
-
- * Open database files and choose active indexes
- SELECT 1
- USE Personel ORDER Namen
- GO TOP
- * Used for area code lookup
- USE Netnum ORDER Woonplaats IN 2
-
- * Load initial record from database into memory variables
- record_num = RECNO()
- 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 of main procedure ===================================
-
- * UTILITY PROCEDURES (Proprietary to Employee.prg)
-
- PROCEDURE Filter
- * Filter (group) data into subset
- * Select subset to set up filter condition (J=turn on,N=abort selection,U=turn off)
- * If filter is already on, set default choice to U, show window
- * If filter is not on, set default choice to J, show window
- choice = IIF(filters_on,"U","J")
- DO Filt_ans
- IF choice = "J"
- * Start process of choosing filter condition
- STORE SPACE(15) TO afdeling, functie
- STORE SPACE(11) TO branche
- STORE SPACE(3) TO titel
- ACTIVATE WINDOW alert
- @ 0,0 SAY "-------- FILTERVOORWAARDE OPGEVEN -------"
- @ 1,1 SAY "AFDELING: " GET m->afdeling FUNCTION "!"
- @ 2,1 SAY "FUNCTIE: " GET m->functie FUNCTION "!"
- @ 3,1 SAY "BRANCHE: " GET m->branche FUNCTION "!"
- @ 4,1 SAY "TITEL: " GET m->titel FUNCTION "!"
- @ 5,1 SAY "Geef één of meer voorwaarden op"
- READ
- DEACTIVATE WINDOW alert
- * Initialize filter variable to null (empty)
- subset = ""
- * Process user's entries to build filter condition
- subset = subset + IIF("" <> TRIM(m->afdeling), ;
- [afdeling = TRIM("&afdeling.") .AND.], "")
- subset = subset + IIF("" <> TRIM(m->functie), ;
- [functie = TRIM("&functie.") .AND.], "")
- subset = subset + IIF("" <> TRIM(m->branche), ;
- [branche = TRIM("&branche.") .AND.], "")
- subset = subset + IIF("" <> TRIM(m->titel), ;
- [titel = TRIM("&titel.") .AND.], "")
- *
- * Check whether data entered into subset string
- IF "" = TRIM(subset)
- DO Warnbell
- filters_on = .F.
- ELSE
- * If string is not empty, truncate the .AND. from end of subset string
- subset = SUBSTR(subset,1,LEN(subset)-6)
- * Filter on entered filter string condition
- SET FILTER TO &subset.
- * Activate filter by moving record pointer
- GO TOP
- * Check whether filter condition matches any records (none matching=EOF)
- filters_on = .NOT. EOF()
- IF .NOT. filters_on
- * Turn off filter if no matching records found
- DO Warnbell
- DO Show_msg WITH "0 records voldoen aan filtervoorwaarde"
- SET FILTER TO
- GO record_num
- ENDIF
- ENDIF
- ELSE
- * If user selects "U", turn off filter
- SET FILTER TO
- filters_on = .F.
- ENDIF
- RETURN
-
- PROCEDURE Indexer
- * Create/rebuild indexes
- INDEX ON afdeling+achternaam+voornaam+invoeg TAG Afdel
- INDEX ON afdeling+STR(salaris,8,2) TAG Status
- INDEX ON STR(dienstjr,4,1) TAG Jaren
- INDEX ON pers_nr TAG Pers_nr
- INDEX ON achternaam+voornaam+invoeg TAG Namen
- GO TOP
- RETURN
-
- PROCEDURE Init_fld
- * Initialize memory variable values for data entry
- initial = " "
- STORE SPACE(20) TO adres1, adres2
- STORE SPACE(10) TO voornaam, postcode
- STORE SPACE(15) TO achternaam, afdeling, functie, bonus
- STORE SPACE(11) TO pers_nr, branche
- STORE 0 TO schaal, dienstjr, salaris, toeslag
- STORE .T. TO spaarfonds, deeltijd
- woonplaats = SPACE(14)
- provincie = SPACE(2)
- telefoon = SPACE(13)
- titel = SPACE(3)
- info = SPACE(40)
- in_dienst = { - - }
- RETURN
-
- PROCEDURE Load_fld
- * Load field values from Employee database record into memory variables
- achternaam = achternaam
- voornaam = voornaam
- invoeg = invoeg
- pers_nr = pers_nr
- adres1 = adres1
- adres2 = adres2
- woonplaats = woonplaats
- provincie = provincie
- postcode = postcode
- telefoon = telefoon
- afdeling = afdeling
- functie = functie
- schaal = schaal
- spaarfonds = spaarfonds
- deeltijd = deeltijd
- in_dienst = in_dienst
- branche = branche
- dienstjr = dienstjr
- titel = titel
- salaris = salaris
- toeslag = toeslag
- bonus = bonus
- info = info
- RETURN
-
-
- PROCEDURE Repl_fld
- * Replace database fields with values of current memory variables
- REPLACE pers_nr WITH m->pers_nr, achternaam WITH m->achternaam, ;
- voornaam WITH m->voornaam, invoeg WITH m->invoeg, ;
- adres1 WITH m->adres1, adres2 WITH m->adres2, ;
- woonplaats WITH m->woonplaats, provincie WITH m->provincie, postcode WITH m->postcode, ;
- telefoon WITH m->telefoon, afdeling WITH m->afdeling
- REPLACE functie WITH m->functie, schaal WITH m->schaal, ;
- spaarfonds WITH m->spaarfonds, deeltijd WITH m->deeltijd, ;
- in_dienst WITH m->in_dienst, branche WITH m->branche, ;
- dienstjr WITH m->dienstjr, titel WITH m->titel, ;
- salaris WITH m->salaris, toeslag WITH m->toeslag, ;
- bonus WITH m->bonus, info WITH m->info
- RETURN
-
- PROCEDURE Backgrnd
- * Display screen for data entry and viewing
- * Draw and fill in boxes
- @ 1,18 TO 3,41 DOUBLE COLOR &c_blue.
- @ 4, 1 TO 6,56 DOUBLE COLOR &c_red.
- @ 2,19 FILL TO 2,40 COLOR &c_blue.
- @ 4, 2 FILL TO 21,55 COLOR &c_red.
- @ 11, 1 TO 11,56 COLOR &c_red.
- @ 7, 1 TO 22,56 COLOR &c_red.
- * Show data
- SET COLOR TO &c_data.
- @ 2,20 SAY "DATABASE PERSONEEL"
- @ 5, 3 SAY "NAAM:"
- @ 5,26 SAY "VOORNAAM:"
- @ 5,49 SAY "."
- @ 8, 3 SAY "ADRES:"
- @ 9, 3 SAY "PLAATS: "
- @ 9,32 SAY "PROVINCIE:"
- @ 10, 3 SAY "POSTCODE:"
- @ 10,32 SAY "TELEFOON:"
- @ 12, 3 SAY "AFDELING: "
- @ 12,32 SAY "FUNCTIE:"
- @ 13,32 SAY "BRANCHE:"
- @ 14, 3 SAY "PERSONEELNR:"
- @ 14,32 SAY "IN DIENST:"
- @ 15,32 SAY "DEELTIJD:"
- @ 16,32 SAY "SPAARFONDS:"
- @ 17,32 SAY "SCHAAL:"
- @ 18, 3 SAY "SALARIS: ƒ "
- @ 18,32 SAY "TOESLAG: "
- @ 18,54 SAY "%"
- @ 19, 3 SAY "TITEL: "
- @ 19,32 SAY "DIENSTJAREN: "
- @ 20, 3 SAY "BONUS: "
- @ 21, 3 SAY "COMMENTAAR:"
- SET COLOR TO &c_standard.
- RETURN
-
- PROCEDURE Show_data
- SET COLOR TO &c_fields.
- @ 5, 9 SAY achternaam
- @ 5,36 SAY voornaam
- @ 5,48 SAY invoeg
- @ 8,12 SAY adres1
- @ 8,36 SAY adres2
- @ 9,12 SAY woonplaats
- @ 9,43 SAY provincie
- @ 10,12 SAY postcode
- @ 10,43 SAY telefoon
- @ 12,16 SAY afdeling
- @ 12,40 SAY functie
- @ 13,40 SAY branche
- @ 14,16 SAY pers_nr
- @ 14,43 SAY in_dienst
- @ 15,43 SAY deeltijd PICTURE "Y"
- @ 16,43 SAY spaarfonds PICTURE "Y"
- @ 17,43 SAY schaal PICTURE "9"
- @ 18,14 SAY salaris PICTURE "999,999.99"
- @ 18,50 SAY toeslag PICTURE "99.9"
- @ 19,14 SAY titel
- @ 19,50 SAY dienstjr PICTURE "99.9"
- @ 20,14 SAY bonus
- @ 21,14 SAY info
- SET COLOR TO &c_standard.
-
- PROCEDURE Get_data
- SET COLOR TO &c_data.
- @ 5, 9 GET m->achternaam PICTURE "!XXXXXXXXXXXXXX" ;
- MESSAGE "Typ de achternaam van de werknemer"
- @ 5,36 GET m->voornaam PICTURE "!XXXXXXXXX"
- @ 5,48 GET m->invoeg PICTURE "!"
- @ 8,12 GET m->adres1
- @ 8,36 GET m->adres2
- @ 9,12 GET m->woonplaats PICTURE "!XXXXXXXXXXXXX"
- @ 9,43 GET m->provincie PICTURE "!!"
- @ 10,12 GET m->postcode
- @ 10,43 GET m->telefoon PICTURE "999X9X9999999"
- @ 12,16 GET m->afdeling PICTURE "@M VERKOOP,DIRECTIE" ;
- MESSAGE "Druk op spatiebalk voor andere afdeling"
- @ 12,40 GET m->functie FUNCTION "!"
- @ 13,40 GET m->branche FUNCTION "!"
- @ 14,16 GET m->pers_nr PICTURE "999-99-9999"
- @ 14,43 GET m->in_dienst FUNCTION "D"
- @ 15,43 GET m->deeltijd PICTURE "Y" ;
- WHEN TRIM(m->afdeling) <> "DIRECTIE"
- @ 16,43 GET m->spaarfonds PICTURE "Y" ;
- WHEN TRIM(m->afdeling) <> "DIRECTIE"
- @ 17,43 GET m->schaal PICTURE "9"
- @ 18,14 GET m->salaris PICTURE "999,999.99"
- @ 18,50 GET m->toeslag PICTURE "99.9" ;
- WHEN TRIM(m->afdeling) <> "DIRECTIE"
- @ 19,14 GET m->titel PICTURE "!!!"
- @ 19,50 GET m->dienstjr PICTURE "99.9"
- @ 20,14 GET m->bonus FUNCTION "!"
- @ 21,14 GET m->info
- SET COLOR TO &c_standard.
- ON KEY LABEL F9 DO Findcode WITH m->woonplaats
- RETURN
-
-
-
-
-
- ********************************** END OF EMPLOYEE.PRG ********************************