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]

Reply via email to