Brian,
first off... I have the feeling there is a couple different things wrong here, but I need to chew on it awhile to figure out correctly. But I know BOb and Rex have both commented on this thread, their usually both a little quicker on draw at nailing something on the head than me so maybe they'll jump in here...
>This.AddViewParameter('vp_iProductID','This.iProductID')
>This.AddViewParameter('vp_aProductID','This.aProductID')
While I'm chewing on your big picture here, let me start with this. I dont personally care for keeping both a singular ID values and a collection of ID values in same object. Come back to this class definition a year later and I bet you'll be asking yourself what the heck were you doing. Right here, this tells me I got 2 different business objects. One to handle my singular ID value property need, and the other to handle the collection of IDs functionality.
Note this is personal practice of mine & I'm not saying your wrong trying to both in one object. But I always opt for granularity up front, as opposed to having to squeeze it in later.
Roxanne M. Seibert
Independent Consultant, VFP MCP
Code Monkey Like Fritos