Kevin,
>Is there any way to get a list/array of the names of objects in a form or report's Data Environment?
The DE has a Objects property which is just that in that it allows you to access its members cursors, CAs, relation etc...
You can try it out by putting a commandbutton in your form (which has tables in its DE of course) to call the code below:
LOCAL loObject
FOR EACH loObject IN ThisForm.DataEnvironment.Objects
ACTIVATE SCREEN
? loObject.Name, loObject.Class, loObject.BaseClass
ENDFOR
HTH,
Dennis