IF EMPTY(SET("Database")) RETURN .f. ENDIF LOCAL lnRetVal, laViews[1], lcView, lcParmString lnRetVal = ADBOBJECTS(laViews,"VIEW") FOR EACH lcView IN laViews lcParmString = DBGetProp(lcView, 'View', 'ParameterList') CreateParms(lcParmString) ENDFOR RETURN PROCEDURE CreateParms * LPARAMETERS tcString IF VARTYPE(tcString) <> "C" OR empty(tcString) RETURN ENDIF tcString = ALLTRIM(tcString) LOCAL lnKount, lcVarName, lcVarType lnKount = 0 DO WHILE LEN(tcString) > 0 lcVarName = SUBSTR(tcString, 1, AT(',', tcString) - 1) lcVarType = SUBSTR(tcString, AT(',', tcString) + 1) IF AT(';', lcVarType) > 0 lcVarType = SUBSTR(lcVarType, 1, AT(';', lcVarType) - 1) ENDIF lcVarType = CHRTRAN(lcVarType, "'", "") PUBLIC &lcVarName DO case CASE INLIST(lcVarType, "N", "I", "Y") &lcVarName = 0 CASE lcVarType = "C" &lcVarName = "" CASE lcVarType = "D" &lcVarName = {} CASE lcVarType = "T" &lcVarName = DTOT({}) ENDCASE IF AT(';', tcString) = 0 tcString = '' ELSE tcString = SUBSTR(tcString, AT(';', tcString) + 1) ENDIF ENDDO RETURNYou will only have a problem if two or more views use the same parameter name but are of different data types.