summaryrefslogtreecommitdiff
path: root/dbaccess/source/ui/misc/RtfReader.cxx
diff options
context:
space:
mode:
authorIvo Hinkelmann <ihi@openoffice.org>2007-11-21 15:06:36 +0000
committerIvo Hinkelmann <ihi@openoffice.org>2007-11-21 15:06:36 +0000
commit7408980c49bb025c6df35b844abff2e0cfb88c88 (patch)
treee7be605d53c9f56cf6384aa0b97dbe5e5797f9dd /dbaccess/source/ui/misc/RtfReader.cxx
parent774a6a78358c2a1e807ce326456dbcb300fc67ad (diff)
INTEGRATION: CWS dba24c (1.23.40); FILE MERGED
2007/11/12 15:48:17 oj 1.23.40.5: #i80917# reverse changes 2007/10/15 10:48:06 oj 1.23.40.4: #i80916# #i80917# special handling for table formats which doesn't have a header definition 2007/10/12 12:54:30 oj 1.23.40.3: #i80917# append first line as first data row 2007/10/12 12:31:12 oj 1.23.40.2: #i80917# append first line as first data row 2007/10/12 12:27:14 oj 1.23.40.1: #i80917# append first line as first data row
Diffstat (limited to 'dbaccess/source/ui/misc/RtfReader.cxx')
-rw-r--r--dbaccess/source/ui/misc/RtfReader.cxx42
1 files changed, 30 insertions, 12 deletions
diff --git a/dbaccess/source/ui/misc/RtfReader.cxx b/dbaccess/source/ui/misc/RtfReader.cxx
index 120969ad546a..bc782d1c5388 100644
--- a/dbaccess/source/ui/misc/RtfReader.cxx
+++ b/dbaccess/source/ui/misc/RtfReader.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: RtfReader.cxx,v $
*
- * $Revision: 1.23 $
+ * $Revision: 1.24 $
*
- * last change: $Author: rt $ $Date: 2007-07-06 08:33:29 $
+ * last change: $Author: ihi $ $Date: 2007-11-21 16:06:36 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -142,6 +142,7 @@ ORTFReader::ORTFReader( SvStream& rIn,
,ODatabaseExport(_rxConnection,_rxNumberF,_rM,pList,_pInfoMap)
{
DBG_CTOR(ORTFReader,NULL);
+ m_bAppendFirstLine = false;
}
// ---------------------------------------------------------------------------
ORTFReader::ORTFReader(SvStream& rIn,
@@ -156,6 +157,7 @@ ORTFReader::ORTFReader(SvStream& rIn,
,ODatabaseExport(nRows,_rColumnPositions,_rxNumberF,_rM,pList,_pInfoMap,_bAutoIncrementEnabled)
{
DBG_CTOR(ORTFReader,NULL);
+ m_bAppendFirstLine = false;
}
// ---------------------------------------------------------------------------
ORTFReader::~ORTFReader()
@@ -217,18 +219,30 @@ void ORTFReader::NextToken( int nToken )
m_nDefToken = (rtl_TextEncoding)nTokenValue;
break;
case RTF_TROWD:
- if(!m_xTable.is()) // erste Zeile als Header verwenden
- m_bError = !CreateTable(nToken);
- else
{
- try
+ sal_uInt32 nTell = rInput.Tell(); // verndert vielleicht die Position des Streams
+ bool bInsertRow = true;
+ if ( !m_xTable.is() ) // erste Zeile als Header verwenden
{
- m_pUpdateHelper->moveToInsertRow(); // sonst neue Zeile anh"angen
+ m_bError = !CreateTable(nToken);
+ bInsertRow = m_bAppendFirstLine;
+ if ( m_bAppendFirstLine )
+ {
+ rInput.Seek(nTell);
+ bInsertRow = true;
+ }
}
- catch(SQLException& e)
- // UpdateFehlerbehandlung
+ if ( bInsertRow && !m_bError)
{
- showErrorDialog(e);
+ try
+ {
+ m_pUpdateHelper->moveToInsertRow(); // sonst neue Zeile anh"angen
+ }
+ catch(SQLException& e)
+ // UpdateFehlerbehandlung
+ {
+ showErrorDialog(e);
+ }
}
}
break;
@@ -350,7 +364,7 @@ sal_Bool ORTFReader::CreateTable(int nToken)
{
aColumnName.EraseLeadingChars();
aColumnName.EraseTrailingChars();
- if (!aColumnName.Len())
+ if (!aColumnName.Len() || m_bAppendFirstLine )
aColumnName = String(ModuleRes(STR_COLUMN_NAME));
CreateDefaultColumn(aColumnName);
@@ -380,8 +394,12 @@ sal_Bool ORTFReader::CreateTable(int nToken)
sal_Bool bOk = !m_vDestVector.empty();
if(bOk)
{
- if(aColumnName.Len())
+ if ( aColumnName.Len() )
+ {
+ if ( m_bAppendFirstLine )
+ aColumnName = String(ModuleRes(STR_COLUMN_NAME));
CreateDefaultColumn(aColumnName);
+ }
m_bInTbl = sal_False;
m_bFoundTable = sal_True;