************************************************** * Program I MBINPUT.PRG * Author I {your name) * Date {date) * purpose Membership Data entry. * Part 2 - Melb PC Xbase Programming Tutorial. * 1. set up environment SET talk off SET bell off SET safety OFF SET date british SET status OFF CLEAR SET PROCEDURE TO MBINPUT DO main SET color TO SET status ON close databases RETURN PROCEDURE MAIN ************** goback = .F. * 1. Check the main file hasn't been deleted if .NOT. file("members.dbf") @ 10, 10 SAY "Main datafile is MISSING!" goback = .T. endif ** repeat this for MEMBERS.DBT (see text) if goback clear typeahead wait space (9)+"Please recreate MEMBERS.DBF"' RETURN endif * 2. Open file and create required indexes. SELECT 1 USE members ** check index files recreate if missing if .NOT. file("memberdx.ndx") INDEX ON member TO memberdx endif ** repeat for surnamdx.ndx fullname.ndx pcode.ndx * make empty date variable for convenience blnkdate = CTOD(' / / ') spce10 = space(10) && column width (see text) PUBLIC m_init2,m_init3,m_floor,m_state,m bldg name PUBLIC rn_title,m_unit_flat,tri- str_rio,r«duty,m_fee PUBLIC m_phcode_ah,m_phcode_bh,ni mernber,m_assist PUBLIC m_phone ari,m_phone bh,m_fax_ah,m_fax bh, PUBLIC m_str_type,m_post_zip,m_mail_area,m_married PUBLIC m_first,m_pref_name,m_country,m_surname PUBLIC m_street,m_city sub,m_donation PUBLIC m_d_birth,m_joined,m_valid_to DO BLNKVARS * blank variables created - now paint input screen SET COLOR TO rg/n @ 1, 20 SAY "(club name) Membership Data Entry" @ 3, 2 SAY "Member Number:" @ 3, 29 SAY "Name:" @ 3, 49 SAY "Surname:" @ 4, 2 SAY "Preferred name:" @ 4, 33 SAY "Initials:" @ 4, 49 SAY "Title:" @ 7, 2 SAY "Unit/Flat:" @ 7, 19 SAY "Floor/Level:" @ 7, 36 SAY "Building Name:" @ 8, 2 SAY "Street No:" @ 8, 19 SAY "Street Name:" @ 8, 54 SAY "Street Type:" @ 9, 2 SAY "City:" @ 9, 36 SAY "State:" @ 10, 2 SAY "Post Code:" @ 10, 26 SAY "Mail Area:" @ 10, 53 SAY "Country:" @ 13, 5 SAY "Contact Business: Area Code:" @ 13, 47 SAY "Phone:" @ 13, 64 SAY "Fax:" @ 14, 1 SAY "Information After Hours:" @ 17, 2 SAY "Date/Birth:" @ 17, 27 SAY "Date Joined:" @ 17, 50 SAY "Membership Valid to" @ 18, 2 SAY "Married Y/N:" @ 18, 27 SAY "Membership Fee:" @ 18, 57 SAY "Donations ?" @ 19, 2 SAY "Duty:" @ 19, 37 SAY "Name Assistant:" @ 21, 2 SAY "Main Interest:" @ 21, 27 SAY "Comments:" @ 21, 47 SAY "Notes:" @ 23, 2 SAY "Ctrl-PgDn Save EXIT I (esc); discard entry I Ctrl-PgUp - Save ADD MORE" SET COLOR TO g/n @ 2, 0 to 5, 79 @ 6, 0 to 11, 79 @ 12, 15 to 15, 79 @ 16, 0 to 22, 79 SET COLOR TO w+/b addmore = .T. do while addmore @ 3, 18 GET M_MEMBER picture "@!" @ 3, 35 GET M_FIRST @ 3, 58 GET M_SURNAME picture "@!" @ 4, 18 GET M_PREF_NAME @ 4, 43 GET M_INIT2 picture "@!" @ 4, 46 GET M_INIT3 picture "@!" @ 4, 58 GET M_TITLE @ 7, 13 GET M_UNIT_FLAT @ 7, 32 GET M_FLOOR @ 7, 52 GET M_BLDG_NAME @ 8, 13 GET M_STR_NO @ 8, 32 GET M_STREET @ 8, 67 GET M_STR_TYPE @ 9 13 GET M_CITY_SUB picture "@!" @ 9, 45 GET M_STATE picture "@!" @ 10, 13 GET M_POST_ZIP picture "9999" @ 10, 38 GET M_MAIL_AREA @ 10, 62 GET M_COUNTRY @ 13, 40 GET M_PHCODE_AH @ 13, 54 GET M_PHONE_BH @ 13, 70 GET M_FAX_BH @ 14, 40 GET M_PHCODE_BH @ 14, 54 GET M_PHONE_AH @ 14, 70 GET M_FAX_AH @ 17, 16 GET M_D_BIRTH @ 17, 40 GET M_JOINED @ 17, 70 GET M_VALID_TO @ 18, 16 GET M_MARRIED picture "Y" @ 18, 44 GET M_FEE picture "999999.99" @ 18, 70 GET M_DONATION picture "Y" @ 19, 16 GET M_DUTY @ 19, 53 GET M_ASSIST READ DO CASE case readkey() = 12 .OR. readkey() = 268 RETURN case readkey () = 14 .OR. readkey () = 270 RETURN case readkey() = 290 DO PUTITIN DO BLNKVARS case readkey() = 34 LOOP case readkey() = 291 DO PUTITIN addmore = .F. case readkey() = 35 addmore = .F. OTHERWISE loop ENDCASE ENDDO RETURN PROCEDURE PUTITIN APPEND BLANK REPLACE MEMBERS->MEMBER WITH m_member REPLACE MEMBERS->FIRST WITH m_first REPLACE MEMBERS->SURNAME WITH m_surname REPLACE MEMBERS->PREF NAME WITH m_pref_name REPLACE MEMBERS->INIT2 WITH m_init2 REPLACE MEMBERS->INIT3 WITH m_init3 REPLACE MEMBERS->TITLE WITH m_title REPLACE MEMBERS->UNIT FLAT WITH m_unit_flat REPLACE MEMBERS->FLOOR WITH m_floor REPLACE MEMBERS->BLDG NAME WITH m_bldg _ame REPLACE MEMBERS->STR NO WITH m_str_no REPLACE MEMBERS->STREET WITH m_street REPLACE MEMBERS->STR TYPE WITH m_str_type REPLACE MEMBERS->CITY SUB WITH m_city_sub REPLACE MEMBERS->STAT WITH m_state REPLACE MEMBERS->POST ZIP WITH m_post_zip REPLACE MEMBERS->MAIL AREA WITH m_mail_area REPLACE MEMBERS->COUNTRY WITH m_country REPLACE MEMBERS->PHCODE AH WITH m_phcode_ah REPLACE MEMBERS->PHONE BH WITH m_phone_bh REPLACE MEMBERS->FAX BH WITH m_fax_bh REPLACE MEMBERS->PHCODE BH WITH m_phcode_bh REPLACE MEMBERS->PHONE AH WITH m_phone_ah REPLACE MEMBERS->FAX AH WITH m_fax_ah REPLACE MEMBERS->D-BIRTH WITH m_d_birth REPLACE MEMBERS->JOINED WITH m_joined REPLACE MEMBERS->VALID TO WITH m_valid_to REPLACE MEMBERS->MARRIED WITH m_married REPLACE MEMBERS->FEE WITH m_fee REPLACE MEMBERS->DONATION WITH m_donation REPLACE MEMBERS->DUTY WITH m_duty REPLACE MEMBERS->ASSIST WITH m_assist RETURN PROCEDURE BLNKVARS STORE space(1) TO m_init2,m_init3 STORE space(2) TO m_floor STORE space(3) TO m_state STORE space(4) TO m_title,m_unit_flat STORE space(4) TO m_phcode ah,m_phcode bh STORE space(5) TO m_str_no STORE space(7) TO m_phone_ah,m-phone bh STORE space(7) TO m_fax_ah,m_fax bh STORE space(8) TO m_member STORE spce10 TO m_str_type,m_post_zip STORE spce10 TO m_mail_area STORE space(12) TO m_first,m_pref name STORE space(15) TO m_country STORE space(20) TO m_surname,m_street STORE space(20) TO m_city sub,m_duty STORE space(25) TO m_bldg name,m_assist STORE .F. to m_married,m_donation STORE blnkdate to m_d_birth,m_joined STORE blnkdate to m_valid_to STORE 0 to m_fee RETURN