diff options
-rw-r--r-- | forms/source/component/FormComponent.cxx | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/forms/source/component/FormComponent.cxx b/forms/source/component/FormComponent.cxx index 97bea91aa8b9..db71eba8e285 100644 --- a/forms/source/component/FormComponent.cxx +++ b/forms/source/component/FormComponent.cxx @@ -1980,7 +1980,17 @@ void OBoundControlModel::initFromField( const Reference< XRowSet >& _rxRowSet ) // but only if the rowset is positioned on a valid record if ( hasField() && _rxRowSet.is() ) { - if ( !_rxRowSet->isBeforeFirst() && !_rxRowSet->isAfterLast() ) + bool shouldTransfer(!_rxRowSet->isBeforeFirst() && !_rxRowSet->isAfterLast()); + if (!shouldTransfer) + { + const Reference< XPropertySet > xPS(_rxRowSet, UNO_QUERY); + if (xPS.is()) + { + assert(shouldTransfer == false); + xPS->getPropertyValue("IsNew") >>= shouldTransfer; + } + } + if ( shouldTransfer ) transferDbValueToControl(); else // reset the field if the row set is empty |