Jeff,
The problem is the call to SetCurrentDataSet(). When you set the current DataSet of the business object, it causes all controls to rebind back to the business object’s original data, which resets all user interface controls to the previous value. In order to safely call SetCurrentDataSet() in the Save() handler, you can call it this way:
this.oOrder.SetCurrentDataSet(dsOrder, this.oOrder.TableName, false, false);
The last parameter passed to this method tells the business object to not raise events when setting the current DataSet.
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