diff options
Diffstat (limited to 'forms/source/component/ListBox.cxx')
-rw-r--r-- | forms/source/component/ListBox.cxx | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/forms/source/component/ListBox.cxx b/forms/source/component/ListBox.cxx index 0aa90d9919cf..88135c040d71 100644 --- a/forms/source/component/ListBox.cxx +++ b/forms/source/component/ListBox.cxx @@ -41,7 +41,6 @@ /** === begin UNO includes === **/ #include <com/sun/star/util/XNumberFormatTypes.hpp> #include <com/sun/star/sdbc/XRowSet.hpp> -#include <com/sun/star/sdbc/DataType.hpp> #include <com/sun/star/container/XIndexAccess.hpp> #include <com/sun/star/sdb/XSQLQueryComposerFactory.hpp> #include <com/sun/star/sdb/XQueriesSupplier.hpp> @@ -167,7 +166,7 @@ namespace frm ,OErrorBroadcaster( OComponentHelper::rBHelper ) ,m_aListRowSet( getContext() ) ,m_nNULLPos(-1) - ,m_bBoundComponent(sal_False) + ,m_nBoundColumnType( DataType::SQLNULL ) { DBG_CTOR(OListBoxModel,NULL); @@ -189,7 +188,7 @@ namespace frm ,m_aBoundValues( _pOriginal->m_aBoundValues ) ,m_aDefaultSelectSeq( _pOriginal->m_aDefaultSelectSeq ) ,m_nNULLPos(-1) - ,m_bBoundComponent(sal_False) + ,m_nBoundColumnType( DataType::SQLNULL ) { DBG_CTOR(OListBoxModel,NULL); } @@ -629,7 +628,7 @@ namespace frm DBG_ASSERT( !hasExternalListSource(), "OListBoxModel::loadData: cannot load from DB when I have an external list source!" ); m_nNULLPos = -1; - m_bBoundComponent = sal_False; + m_nBoundColumnType = DataType::SQLNULL; // pre-requisites: // PRE1: connection @@ -832,20 +831,19 @@ namespace frm ::dbtools::FormattedColumnValue aValueFormatter( getContext(), m_xCursor, xDataField ); // Feld der BoundColumn des ResultSets holen - sal_Int32 nBoundColumnType = DataType::SQLNULL; + m_nBoundColumnType = DataType::SQLNULL; if ( ( nBoundColumn > 0 ) && m_xColumn.is() ) { // don't look for a bound column if we're not connected to a field try { Reference< XPropertySet > xBoundField( xColumns->getByIndex( nBoundColumn ), UNO_QUERY_THROW ); - OSL_VERIFY( xBoundField->getPropertyValue( ::rtl::OUString::createFromAscii( "Type" ) ) >>= nBoundColumnType ); + OSL_VERIFY( xBoundField->getPropertyValue( ::rtl::OUString::createFromAscii( "Type" ) ) >>= m_nBoundColumnType ); } catch( const Exception& ) { DBG_UNHANDLED_EXCEPTION(); } } - m_bBoundComponent = ( nBoundColumnType != DataType::SQLNULL ); // Ist die LB an ein Feld gebunden und sind Leereintraege zulaessig // dann wird die Position fuer einen Leereintrag gemerkt @@ -860,9 +858,9 @@ namespace frm aStr = aValueFormatter.getFormattedValue(); aDisplayList.push_back( aStr ); - if ( m_bBoundComponent ) + if ( impl_hasBoundComponent() ) { - aBoundValue.fill( nBoundColumn + 1, nBoundColumnType, xCursorRow ); + aBoundValue.fill( nBoundColumn + 1, m_nBoundColumnType, xCursorRow ); aValueList.push_back( aBoundValue ); } @@ -907,7 +905,7 @@ namespace frm // NULL eintrag hinzufuegen if (bUseNULL && m_nNULLPos == -1) { - if ( m_bBoundComponent ) + if ( impl_hasBoundComponent() ) aValueList.insert( aValueList.begin(), ORowSetValue() ); aDisplayList.insert( aDisplayList.begin(), ORowSetValue( ::rtl::OUString() ) ); @@ -940,7 +938,7 @@ namespace frm { ValueList().swap(m_aBoundValues); m_nNULLPos = -1; - m_bBoundComponent = sal_False; + m_nBoundColumnType = DataType::SQLNULL; if ( !hasExternalListSource() ) setFastPropertyValue( PROPERTY_ID_STRINGITEMLIST, makeAny( StringSequence() ) ); @@ -1035,7 +1033,7 @@ namespace frm Sequence< sal_Int16 > aSelectionIndicies; ORowSetValue aCurrentValue; - aCurrentValue.fill( getFieldType(), m_xColumn ); + aCurrentValue.fill( impl_hasBoundComponent() ? m_nBoundColumnType : getFieldType(), m_xColumn ); // reset selection for NULL values if ( aCurrentValue.isNull() ) |