User: kz Date: 06/01/03 08:18:00 Modified: /dba/dbaccess/source/ui/misc/ TokenWriter.cxx
Log: INTEGRATION: CWS dba202c (1.27.48); FILE MERGED 2005/12/09 09:59:26 oj 1.27.48.1: #129042# if no columns use metadata File Changes: Directory: /dba/dbaccess/source/ui/misc/ ======================================== File [changed]: TokenWriter.cxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/misc/TokenWriter.cxx?r1=1.27&r2=1.28 Delta lines: +45 -18 --------------------- --- TokenWriter.cxx 23 Sep 2005 12:37:55 -0000 1.27 +++ TokenWriter.cxx 3 Jan 2006 16:17:57 -0000 1.28 @@ -514,10 +514,16 @@ Reference<XColumnsSupplier> xColSup(m_xObject,UNO_QUERY); Reference<XNameAccess> xColumns = xColSup->getColumns(); Sequence< ::rtl::OUString> aNames(xColumns->getElementNames()); - const ::rtl::OUString* pBegin = aNames.getConstArray(); - const ::rtl::OUString* pEnd = pBegin + aNames.getLength(); + const ::rtl::OUString* pIter = aNames.getConstArray(); + const ::rtl::OUString* pEnd = pIter + aNames.getLength(); sal_Int32 nCount = aNames.getLength(); + sal_Bool bUseResultMetaData = sal_False; + if ( !nCount ) + { + nCount = m_xResultSetMetaData->getColumnCount(); + bUseResultMetaData = sal_True; + } sal_Int32 i; for(i=1;i<=nCount;++i) @@ -534,12 +540,20 @@ ::rtl::OString* pHorzChar = new ::rtl::OString[nCount]; - for(i=1;pBegin != pEnd;++pBegin,++i) + for(i=1;i <= nCount;++i) { - Reference<XPropertySet> xColumn; - xColumns->getByName(*pBegin) >>= xColumn; sal_Int32 nAlign = 0; + ::rtl::OUString sColumnName; + if ( bUseResultMetaData ) + sColumnName = m_xResultSetMetaData->getColumnName(i); + else + { + sColumnName = *pIter; + Reference<XPropertySet> xColumn; + xColumns->getByName(sColumnName) >>= xColumn; xColumn->getPropertyValue(PROPERTY_ALIGN) >>= nAlign; + ++pIter; + } const char* pChar; switch( nAlign ) @@ -563,7 +577,7 @@ (*m_pStream) << aFS; (*m_pStream) << ' '; - RTFOutFuncs::Out_String(*m_pStream,*pBegin,eDestEnc); + RTFOutFuncs::Out_String(*m_pStream,sColumnName,eDestEnc); (*m_pStream) << sRTF_CELL; (*m_pStream) << '}'; @@ -794,11 +808,21 @@ Sequence< ::rtl::OUString> aNames; Reference<XNameAccess> xColumns; + sal_Bool bUseResultMetaData = sal_False; if(m_xObject.is()) { Reference<XColumnsSupplier> xColSup(m_xObject,UNO_QUERY); xColumns = xColSup->getColumns(); aNames = xColumns->getElementNames(); + sal_Bool bUseResultMetaData = sal_False; + if ( !aNames.getLength() ) + { + sal_Int32 nCount = m_xResultSetMetaData->getColumnCount(); + aNames.realloc(nCount); + for (sal_Int32 i= 0; i < nCount; ++i) + aNames[i] = m_xResultSetMetaData->getColumnName(i+1); + bUseResultMetaData = sal_True; + } } aStrOut = aStrOut + " "; @@ -852,18 +876,22 @@ m_xObject->getPropertyValue(PROPERTY_ROW_HEIGHT) >>= nHeight; // 1. die Spaltenbeschreibung rauspusten - const ::rtl::OUString* pBegin = aNames.getConstArray(); - const ::rtl::OUString* pEnd = pBegin + aNames.getLength(); + const ::rtl::OUString* pIter = aNames.getConstArray(); + const ::rtl::OUString* pEnd = pIter + aNames.getLength(); - for(sal_Int32 i=0;pBegin != pEnd;++pBegin,++i) + for(sal_Int32 i=0;pIter != pEnd;++pIter,++i) { - - Reference<XPropertySet> xColumn; - xColumns->getByName(*pBegin) >>= xColumn; sal_Int32 nAlign = 0; + pFormat[i] = 0; + pColWidth[i] = 100; + if ( !bUseResultMetaData ) + { + Reference<XPropertySet> xColumn; + xColumns->getByName(*pIter) >>= xColumn; xColumn->getPropertyValue(PROPERTY_ALIGN) >>= nAlign; - + pFormat[i] = ::comphelper::getINT32(xColumn->getPropertyValue(PROPERTY_FORMATKEY)); pColWidth[i] = ::comphelper::getINT32(xColumn->getPropertyValue(PROPERTY_WIDTH)); + } switch( nAlign ) { @@ -872,11 +900,10 @@ default: pHorJustify[i] = sHTML_AL_left; break; } - pFormat[i] = ::comphelper::getINT32(xColumn->getPropertyValue(PROPERTY_FORMATKEY)); if(i == aNames.getLength()-1) IncIndent(-1); - WriteCell(pFormat[i],pColWidth[i],nHeight,pHorJustify[i],*pBegin,sHTML_tableheader); + WriteCell(pFormat[i],pColWidth[i],nHeight,pHorJustify[i],*pIter,sHTML_tableheader); } IncIndent(-1); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
