! ----- GET_ACCT.FUN ----- ! ! ----- SUBROUTINE TO GET ACCOUNT NAME (DEPT NUMBER) ----- ! ! ---------- PASSED: ---------- ! ! ----- BACKWARDS = TRUE if we're moving backwards thru prompts ! ----- DEBUG_MODE = TRUE if Debug Mode was enabled ! ----- DIV = User-entered division for this new user ! ----- HELD_DIVS_CTR = Count of held MASTER_div identifiers ! ----- PRIVILEGED = TRUE if user has SETPRV privilege ! ----- PLEASE_TRY_AGAIN = "Please Try Again" error message ! ! ---------- RETURNED: ---------- ! ! ----- ACTION_SEQ = Next User Input Sequence routine ! ----- BACKWARDS = TRUE if we're moving backwards thru prompts ! ----- ENTERED_ACCT = User-entered Account Name (Dept) ! ! ----- Last Change 07/20/93 by Brian Lomasky ----- ! SUB GET_ACCT(STRING ENTERED_ACCT) %INCLUDE "NUSER.INC" DECLARE WORD RECORD_FOUND ! TRUE IF MATCHING RECORD FOUND DECLARE WORD VALID_ENTRY ! TRUE IF VALID ENTRY EXTERNAL WORD FUNCTION NUMERIC( & STRING) ! CHECK FOR NUMERIC STRING BACKWARDS = FALSE ! NOT MOVING BACK THRU PROMPTS VALID_ENTRY = FALSE WHILE NOT VALID_ENTRY RECORD_FOUND = TRUE PRINT "Enter the user's " + TRM$(ACCOUNT_DESC) + ": "; WHEN ERROR IN LINPUT #98%, ENTERED_ACCT USE RECORD_FOUND = FALSE CONTINUE END WHEN IF NOT RECORD_FOUND THEN BACKWARDS = TRUE! MOVING BACK THRU PROMPTS ACTION_SEQ = ACTION_SEQ - 1% EXIT SUB END IF ! ----- UPPERCASE AND DISCARD ANY GARBAGE CHARS ----- ENTERED_ACCT = EDIT$(ENTERED_ACCT, 38%) IF ENTERED_ACCT = "B" THEN BACKWARDS = TRUE! MOVING BACK THRU PROMPTS ACTION_SEQ = ACTION_SEQ - 1% EXIT SUB END IF IF ACCOUNT_LEN_MIN = ACCOUNT_LEN_MAX THEN IF LEN(ENTERED_ACCT) <> ACCOUNT_LEN_MIN THEN PRINT PRINT "Error - You must" + & " enter a " + & NUM1$(ACCOUNT_LEN_MIN) & + "-digit " + & TRM$(ACCOUNT_DESC) + & TRM$(PLEASE_TRY_AGAIN) PRINT ITERATE END IF ELSE IF LEN(ENTERED_ACCT) < ACCOUNT_LEN_MIN THEN PRINT PRINT "Error - " + & TRM$(ACCOUNT_DESC) + & " is too short " + & TRM$(PLEASE_TRY_AGAIN) PRINT ITERATE END IF IF LEN(ENTERED_ACCT) > ACCOUNT_LEN_MAX THEN PRINT PRINT "Error - " + & TRM$(ACCOUNT_DESC) + & " is too long " + & TRM$(PLEASE_TRY_AGAIN) PRINT ITERATE END IF END IF ! ----- SEE IF FIELD MUST BE A NUMERIC ----- IF ACCOUNT_NUMERIC THEN IF NOT NUMERIC(ENTERED_ACCT) THEN PRINT PRINT "Error - Non-Numeric " + & TRM$(ACCOUNT_DESC) + & TRM$(PLEASE_TRY_AGAIN) PRINT ITERATE END IF END IF VALID_ENTRY = TRUE NEXT ! ----- CONTINUE WITH DESIRED PROMPT ----- ACTION_SEQ = ACTION_SEQ + 1% END SUB