Tag: cws_src680_codecleanup01 User: mt Date: 06/04/10 03:22:17 Modified: /dba/dbaccess/source/ui/misc/ TokenWriter.cxx
Log: RESYNC: (1.27-1.28); FILE MERGED 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.25.48.2&r2=1.25.48.3 Delta lines: +45 -18 --------------------- --- TokenWriter.cxx 8 Oct 2005 02:11:41 -0000 1.25.48.2 +++ TokenWriter.cxx 10 Apr 2006 10:22:15 -0000 1.25.48.3 @@ -507,10 +507,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) @@ -527,12 +533,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 ) @@ -556,7 +570,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) << '}'; @@ -787,11 +801,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 + " "; @@ -845,18 +869,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 ) { @@ -865,11 +893,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]
