* MIKE LEWIS -BUILD ADD, CHANGE, DELETE ARRAY- CGW0200 4-08-93 PROCEDURE BUILDACD(MALIAS, SCR_NUM) LOCAL ACDARR := {} LOCAL SCRNUM LOCAL FILELIST := {} LOCAL PREPROC := {} LOCAL POSTPROC := '' LOCAL OFFSET := 0 LOCAL EDITPROC := '' LOCAL COMPLETEKEY := NIL LOCAL CONVERT_KEY := '' LOCAL RELATED_DBF := '' LOCAL DOPROC LOCAL XTRA_HEADING LOCAL XTRA_CARGO IF SELECT('IMPCUST') = 0 IC_PARMS = DBOPEN('IMPCUST') ENDIF //**** ACDARR LAYOUT ****\\ // 1 = FILE ALIAS // 2 = SCREEN NUMBER // 3 = ARRAY OF FILES THAT NEED TO BE OPEN // 4 = PROC TO EXECUTE BEFORE THE SAYS AND GETS // ie TO PAINT ADDITIONAL INFO ON SCREEN, etc..... // 5 = PROC TO EXECUTE AFTER THE GETS // ie TO UPDATE ANY NON RELATED VARIABLES ...... // 6 = HORIZONTAL OFFSET FOR SCREEN GETS // 7 = PROC TO EDIT THE GET FIELDS // 8 = ARRAY OF PARTIAL KEYS WHICH MAKE RECORD UNIQUE. // IF ARRAY IS EMPTY, THEN ONLY ONE COMPONENT OF THE KEY // 9 = KEY CONVERSION PROC - IE PAD WITH LEADING ZEROS, ETC. // 10 = LIST OF DBF'S THAT SHOULD BE CONSIDERED WHEN DELETING INFO // 1 ARRAY FOR EACH DBF. ELEMENT 1 = DBF ALIAS NAME, ELEM 2 = INDEX SEEK ORDER // 11 = OPTIONAL TOP HEADING FOR ACD_BROWSE // 12 = OPTIONAL ACD CARGO FOR HOT KEYS USED IN ACD_BROWSE DO CASE // DATA DICTIONARY CASE MALIAS = 'DATADICT' SCRNUM = '0950' AADD(ACDARR, {MALIAS, SCRNUM, FILELIST, PREPROC, ; // 1-4 POSTPROC, OFFSET, EDITPROC, COMPLETEKEY, ; // 5-8 CONVERT_KEY, RELATED_DBF}) // 9-10 // CUSTOMER MASTER CASE MALIAS = 'CUST_MAST' SCRNUM := '1170' RELATED_DBF := { {'CUST_PRICE',1} } PREPROC := { {'ORD_PAINT(9,14,9,47, "LNOR")','P'} } // paint bill to/ship to AADD(ACDARR, {MALIAS, SCRNUM, FILELIST, PREPROC, ; // 1-4 POSTPROC, OFFSET, EDITPROC, COMPLETEKEY, ; // 5-8 CONVERT_KEY, RELATED_DBF}) // 9-10 // PASSWORDS CASE MALIAS = 'PASSWORD' SCRNUM = '6100' PREPROC = { {'XXXPASSP()','P'} } // PAINTS INSTRUCTION BOX ON SCREEN POSTPROC = 'XXXPASSS()' // UPDATE PASSWORD AND AUTHORIZATION VARIABLES // IF THE CURRENT USER CHANGES HIS OPTIONS OFFSET = -5 AADD(ACDARR, {MALIAS, SCRNUM, FILELIST, PREPROC, ; // 1-4 POSTPROC, OFFSET, EDITPROC, COMPLETEKEY, ; // 5-8 CONVERT_KEY, RELATED_DBF}) // 9-10 ENDCASE RETURN ACDARR CLOSE DATABASES RETURN ACDARR ********************************************************************* ********************************************************************* ********************************************************************* ********************************************************************* ********************************************************************* ********************************************************************* FUNCTION COPYSTD() LOCAL SAVESEL := SELECT(), SAVEFILT LOCAL COPYFROM := ALLTRIM( ATTRIBUTES ) SELECT ATTRIBUTES USE SELECT USERFILE2 // APPEND ALL FROM &ATTRIBUTES FOR ATT_TYPE = 'S' APPEND ALL FROM ©FROM FOR ATT_TYPE = 'S' DBOPEN('ATTRIBUTES') SELECT (SAVESEL) RETURN .T. ********************************************** FUNCTION KEY_CONV(ENTERED_KEY, PTYPE) // PUT LEADING SPACES IN ORDER_NUM LOCAL MSPACES, RETVAL := .T., REPVAR, REPVARNAME LOCAL MLEN IF EMPTY(ENTERED_KEY) RETURN '' ENDIF IF AT('?', ENTERED_KEY) > 0 DO CASE CASE PTYPE = NIL RETURN ENTERED_KEY CASE PTYPE = 'RM' // R = REPLACE DATABASE / M = SET MEMORY VARIABLE RETURN .T. ENDCASE ENDIF MLEN = LEN(ENTERED_KEY) MSPACES = SPACE(MLEN) IF EMPTY(ENTERED_KEY) // AND RETURN THE RESULT RETURN '' ELSE ENTERED_KEY = ALLTRIM(ENTERED_KEY) RETVAL = RIGHT(MSPACES+ENTERED_KEY, MLEN) ENDIF RETURN RETVAL