Bob,
As it turns out, there was something happening in mmBusinessObjectGeneric.DeleteRow() that was preventing the delete from happening. We have uploaded a hot-fixed version to our web site which is now ready for download (note that we sent out new download credentials today).
Even after you install the new version, it’s still not going to work exactly as you envision—but it’s easy to make it work the way you want. If you take a look at mmBusinessObject.StateChangeHandler() you will see that when a child business object handles the Deleting event from a parent business object, it does a DeleteAll(). This works well in the most usual case where a child business object only contains records that relate to a single object in the parent (such as with Order/OrderDetail). To get this to work the way you want, all you have to do is override your ReportReturnHeader business object’s StateChangeHandler() method and check for the Deleting event…if Deleting, call a method in your ReportReturnHeader object that will delete all records for the primary key of the ReportReturnSum being deleted. You can retrieve this information from the event args passed to StateChangeHandler—either the PrimaryKeyValue or PrimaryKeyValues property.
Best Regards,
Kevin McNeish
Eight-Time .NET MVP
VFP and iOS Author, Speaker & Trainer
Oak Leaf Enterprises, Inc.
Chief Architect, MM Framework
http://www.oakleafsd.com