User: ihi     
Date: 2007-11-21 16:06:04+0000
Modified:
   dba/dbaccess/source/ui/misc/DExport.cxx

Log:
 INTEGRATION: CWS dba24c (1.38.4); FILE MERGED
 2007/10/15 10:48:06 oj 1.38.4.4: #i80916# #i80917# special handling for table 
formats which doesn't have a header definition
 2007/10/12 12:27:14 oj 1.38.4.3: #i80917# append first line as first data row
 2007/10/10 09:40:34 oj 1.38.4.2: #i81879# correction of numberformat usage
 2007/10/02 08:09:18 oj 1.38.4.1: #i81879# correction of numberformat usage

File Changes:

Directory: /dba/dbaccess/source/ui/misc/
========================================

File [changed]: DExport.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/misc/DExport.cxx?r1=1.38&r2=1.39
Delta lines:  +46 -38
---------------------
--- DExport.cxx 2007-09-26 14:50:55+0000        1.38
+++ DExport.cxx 2007-11-21 16:06:02+0000        1.39
@@ -201,6 +201,7 @@
     ,m_bIsAutoIncrement(_bAutoIncrementEnabled)
        ,m_bFoundTable(sal_False)
        ,m_bCheckOnly(sal_False)
+    ,m_bAppendFirstLine(false)
 {
        DBG_CTOR(ODatabaseExport,NULL); 
 
@@ -211,11 +212,11 @@
                        ++nCount;
 
        m_vColumnSize.resize(nCount);
-       m_vFormatKey.resize(nCount);
+       m_vNumberFormat.resize(nCount);
        for(sal_Int32 i=0;i<nCount;++i)
        {
                m_vColumnSize[i] = 0;
-               m_vFormatKey[i] = 0;
+               m_vNumberFormat[i] = 0;
        }
 
        try
@@ -254,6 +255,7 @@
        ,m_bIsAutoIncrement(sal_False)
        ,m_bFoundTable(sal_False)
        ,m_bCheckOnly(sal_False)
+    ,m_bAppendFirstLine(false)
 {
        DBG_CTOR(ODatabaseExport,NULL); 
        try
@@ -483,11 +485,11 @@
     }
 }
 // 
-----------------------------------------------------------------------------
-sal_Int32 ODatabaseExport::CheckString(const String& aCheckToken, sal_Int32 
_nOldFormat)
+sal_Int16 ODatabaseExport::CheckString(const String& aCheckToken, sal_Int16 
_nOldNumberFormat)
 {
     DBG_CHKTHIS(ODatabaseExport,NULL);
     double fOutNumber = 0.0;
-    sal_Int32 nFormat = 0;
+    sal_Int16 nNumberFormat = 0;
 
     try
     {
@@ -501,69 +503,69 @@
             sal_uInt32 nNumberFormat2;
             fOutNumber = 
SfxHTMLParser::GetTableDataOptionsValNum(nNumberFormat2,eNumLang,m_sTextToken,m_sNumToken,*m_pFormatter);
             //double fOutNumber2 = 
SfxHTMLParser::GetTableDataOptionsValNum(nNumberFormat2,eNumLang,m_sValToken,m_sNumToken,*m_pFormatter);
-            nFormat = static_cast<sal_Int32>(nNumberFormat2);
+            nNumberFormat = static_cast<sal_Int16>(nNumberFormat2);
         }
         else
         {           
             Reference<XNumberFormatTypes> xNumType(xFormats,UNO_QUERY);
-            nFormat = 
m_xFormatter->detectNumberFormat(xNumType->getStandardFormat(NumberFormat::ALL,m_aLocale),aCheckToken);
-            fOutNumber = 
m_xFormatter->convertStringToNumber(nFormat,aCheckToken);
+            sal_Int32 nFormatKey = 
m_xFormatter->detectNumberFormat(xNumType->getStandardFormat(NumberFormat::ALL,m_aLocale),aCheckToken);
+            fOutNumber = 
m_xFormatter->convertStringToNumber(nFormatKey,aCheckToken);
 
-            Reference<XPropertySet> xProp = xFormats->getByKey(nFormat);
+            Reference<XPropertySet> xProp = xFormats->getByKey(nFormatKey);
             sal_Int16 nType = 0;
             xProp->getPropertyValue(PROPERTY_TYPE) >>= nType;
             
             switch(nType)
             {
                 case NumberFormat::ALL:
-                    nFormat = NumberFormat::ALL;
+                    nNumberFormat = NumberFormat::ALL;
                     break;
                 case NumberFormat::DEFINED:
-                    nFormat = NumberFormat::TEXT;
+                    nNumberFormat = NumberFormat::TEXT;
                     break;
                 case NumberFormat::DATE:
-                    switch(_nOldFormat)
+                    switch(_nOldNumberFormat)
                     {
                         case NumberFormat::DATETIME:
                         case NumberFormat::TEXT:
                         case NumberFormat::DATE:
                             break;
                         case NumberFormat::ALL:
-                            nFormat = NumberFormat::DATE;
+                            nNumberFormat = NumberFormat::DATE;
                             break;
                         default:
-                            nFormat = NumberFormat::TEXT;
+                            nNumberFormat = NumberFormat::TEXT;
 
                     }
                     break;
                 case NumberFormat::TIME:
-                    switch(_nOldFormat)
+                    switch(_nOldNumberFormat)
                     {
                         case NumberFormat::DATETIME:
                         case NumberFormat::TEXT:
                         case NumberFormat::TIME:
                             break;
                         case NumberFormat::ALL:
-                            nFormat = NumberFormat::TIME;
+                            nNumberFormat = NumberFormat::TIME;
                             break;
                         default:
-                            nFormat = NumberFormat::TEXT;
+                            nNumberFormat = NumberFormat::TEXT;
                             break;
                     }
                     break;
                 case NumberFormat::CURRENCY:
-                    switch(_nOldFormat)
+                    switch(_nOldNumberFormat)
                     {
                         case NumberFormat::NUMBER:
-                            nFormat = NumberFormat::CURRENCY;
+                            nNumberFormat = NumberFormat::CURRENCY;
                             break;
                         case NumberFormat::CURRENCY:
                             break;
                         case NumberFormat::ALL:
-                            nFormat = NumberFormat::CURRENCY;
+                            nNumberFormat = NumberFormat::CURRENCY;
                             break;
                         default:
-                            nFormat = NumberFormat::TEXT;
+                            nNumberFormat = NumberFormat::TEXT;
                             break;
                     }
                     break;
@@ -571,38 +573,38 @@
                 case NumberFormat::SCIENTIFIC:
                 case NumberFormat::FRACTION:
                 case NumberFormat::PERCENT:
-                    switch(_nOldFormat)
+                    switch(_nOldNumberFormat)
                     {
                         case NumberFormat::NUMBER:
                             break;
                         case NumberFormat::CURRENCY:
-                            nFormat = NumberFormat::CURRENCY;
+                            nNumberFormat = NumberFormat::CURRENCY;
                             break;
                         case NumberFormat::ALL:
-                            nFormat = nType;
+                            nNumberFormat = nType;
                             break;
                         default:
-                            nFormat = NumberFormat::TEXT;
+                            nNumberFormat = NumberFormat::TEXT;
                             break;
                     }
                     break;
                 case NumberFormat::TEXT:
                 case NumberFormat::UNDEFINED:
                 case NumberFormat::LOGICAL:
-                    nFormat = NumberFormat::TEXT; // Text "uberschreibt alles
+                    nNumberFormat = NumberFormat::TEXT; // Text "uberschreibt 
alles
                     break;
                 case NumberFormat::DATETIME:
-                    switch(_nOldFormat)
+                    switch(_nOldNumberFormat)
                     {
                         case NumberFormat::DATETIME:
                         case NumberFormat::TEXT:
                         case NumberFormat::TIME:
                             break;
                         case NumberFormat::ALL:
-                            nFormat = NumberFormat::DATETIME;
+                            nNumberFormat = NumberFormat::DATETIME;
                             break;
                         default:
-                            nFormat = NumberFormat::TEXT;
+                            nNumberFormat = NumberFormat::TEXT;
                             break;
                     }
                     break;
@@ -613,10 +615,10 @@
     }
     catch(Exception&)
     {
-        nFormat = NumberFormat::TEXT; // Text "uberschreibt alles
+        nNumberFormat = NumberFormat::TEXT; // Text "uberschreibt alles
     }
 
-    return nFormat;
+    return nNumberFormat;
 }
 // 
-----------------------------------------------------------------------------
 void ODatabaseExport::SetColumnTypes(const TColumnVector* _pList,const 
OTypeInfoMap* _pInfoMap)
@@ -632,11 +634,10 @@
                {
                        sal_Int32 nDataType;
                        sal_Int32 nLength(0),nScale(0);
-            OSL_ENSURE((i) < 
static_cast<sal_Int32>(m_vFormatKey.size()),"m_vFormatKey: Illegal index for 
vector");
+            OSL_ENSURE((i) < 
static_cast<sal_Int32>(m_vNumberFormat.size()),"m_vFormatKey: Illegal index for 
vector");
             OSL_ENSURE((i) < 
static_cast<sal_Int32>(m_vColumnSize.size()),"m_vColumnSize: Illegal index for 
vector");
-            Reference<XPropertySet> xProp = 
xFormats->getByKey(m_vFormatKey[i]);
-                   sal_Int16 nType = 0;
-                   xProp->getPropertyValue(PROPERTY_TYPE) >>= nType;
+                   sal_Int16 nType = m_vNumberFormat[i];
+                   
                        switch ( nType )
                        {
                                case NumberFormat::ALL:
@@ -680,8 +681,15 @@
                                (*aIter)->second->SetType(aFind->second);
                                
(*aIter)->second->SetPrecision(::std::min<sal_Int32>(aFind->second->nPrecision,nLength));
                                
(*aIter)->second->SetScale(::std::min<sal_Int32>(aFind->second->nMaximumScale,nScale));
+
+                sal_Int32 nFormatKey = ::dbtools::getDefaultNumberFormat( 
nDataType,
+                                               (*aIter)->second->GetScale(),
+                                               (*aIter)->second->IsCurrency(),
+                                               Reference< 
XNumberFormatTypes>(xFormats,UNO_QUERY),
+                                               m_aLocale);
+
+                           (*aIter)->second->SetFormatKey(nFormatKey);
                        }
-                       (*aIter)->second->SetFormatKey(m_vFormatKey[i]);
                }
        }
 }
@@ -891,9 +899,9 @@
                    if( nColPos != sal::static_int_cast< long 
>(CONTAINER_ENTRY_NOTFOUND))
                    {
                 --nColPos;
-                OSL_ENSURE((nColPos) < 
static_cast<sal_Int32>(m_vFormatKey.size()),"m_vFormatKey: Illegal index for 
vector");
+                OSL_ENSURE((nColPos) < 
static_cast<sal_Int32>(m_vNumberFormat.size()),"m_vFormatKey: Illegal index for 
vector");
                 OSL_ENSURE((nColPos) < 
static_cast<sal_Int32>(m_vColumnSize.size()),"m_vColumnSize: Illegal index for 
vector");
-                           m_vFormatKey[nColPos] = 
CheckString(m_sTextToken,m_vFormatKey[nColPos]);
+                           m_vNumberFormat[nColPos] = 
CheckString(m_sTextToken,m_vNumberFormat[nColPos]);
                            m_vColumnSize[nColPos] = 
::std::max<sal_Int32>((sal_Int32)m_vColumnSize[nColPos],(sal_Int32)m_sTextToken.Len());
                    }
         }




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to