diff options
author | Kurt Zenker <kz@openoffice.org> | 2006-01-06 12:02:14 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2006-01-06 12:02:14 +0000 |
commit | c7a4c3d359ff3cd4e6d174e4f86e866bb9820f03 (patch) | |
tree | 853d1438fd0220aa513823116a505422796f6d26 /sw/source/ui/dbui/mmconfigitem.cxx | |
parent | c6fccb11e16a5e6c601b77e0fb20cdbde2b2b5b7 (diff) |
INTEGRATION: CWS os67 (1.4.86); FILE MERGED
2005/12/14 13:02:45 os 1.4.86.3: RESYNC: (1.5-1.8); FILE MERGED
2005/09/28 08:23:53 os 1.4.86.2: RESYNC: (1.4-1.5); FILE MERGED
2005/09/26 11:56:15 os 1.4.86.1: #i36696# MailMerge: hide empty Address lines; #ii51947# work flow in address page changed
Diffstat (limited to 'sw/source/ui/dbui/mmconfigitem.cxx')
-rw-r--r-- | sw/source/ui/dbui/mmconfigitem.cxx | 140 |
1 files changed, 136 insertions, 4 deletions
diff --git a/sw/source/ui/dbui/mmconfigitem.cxx b/sw/source/ui/dbui/mmconfigitem.cxx index 083e69d1eb5f..864ebc4a070e 100644 --- a/sw/source/ui/dbui/mmconfigitem.cxx +++ b/sw/source/ui/dbui/mmconfigitem.cxx @@ -4,9 +4,9 @@ * * $RCSfile: mmconfigitem.cxx,v $ * - * $Revision: 1.8 $ + * $Revision: 1.9 $ * - * last change: $Author: hr $ $Date: 2005-10-24 15:31:07 $ + * last change: $Author: kz $ $Date: 2006-01-06 13:02:14 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -172,6 +172,7 @@ class SwMailMergeConfigItem_Impl : public utl::ConfigItem ::std::vector<DBAddressDataAssignment> aAddressDataAssignments; ::std::vector< ::rtl::OUString> aAddressBlocks; sal_Bool bIsAddressBlock; + sal_Bool bIsHideEmptyParagraphs; sal_Bool bIsOutputToLetter; sal_Bool bIncludeCountry; @@ -260,6 +261,7 @@ SwMailMergeConfigItem_Impl::SwMailMergeConfigItem_Impl() : m_AddressHeaderSA( SW_RES( SA_ADDRESS_HEADER )), bIsOutputToLetter(sal_True), bIsAddressBlock(sal_True), + bIsHideEmptyParagraphs(sal_False), bIsGreetingLine(sal_True), bIncludeCountry(sal_False), nResultSetCursorPos(-1), @@ -354,6 +356,7 @@ SwMailMergeConfigItem_Impl::SwMailMergeConfigItem_Impl() : case 35: pValues[nProp] >>= bInServerPOP; break; case 36: pValues[nProp] >>= sInServerUserName; break; case 37: pValues[nProp] >>= sInServerPassword; break; + case 38: pValues[nProp] >>= bIsHideEmptyParagraphs; break; } } } @@ -552,7 +555,8 @@ const Sequence<OUString>& SwMailMergeConfigItem_Impl::GetPropertyNames() "InServerPort", //34 "InServerIsPOP", //35 "InServerUserName", //36 - "InServerPassword" //37 + "InServerPassword", //37 + "IsHideEmptyParagraphs" //38 }; const int nCount = sizeof(aPropNames)/sizeof(const char*); @@ -641,6 +645,7 @@ void SwMailMergeConfigItem_Impl::Commit() case 35: pValues[nProp] <<= bInServerPOP; break; case 36: pValues[nProp] <<= sInServerUserName; break; case 37: pValues[nProp] <<= sInServerPassword; break; + case 38: pValues[nProp] <<= bIsHideEmptyParagraphs; break; } } PutProperties(aNames, aValues); @@ -887,6 +892,25 @@ void SwMailMergeConfigItem::SetAddressBlock(sal_Bool bSet) m_pImpl->SetModified(); } } + +/*-- 30.08.2005 15:09:46--------------------------------------------------- + + -----------------------------------------------------------------------*/ +sal_Bool SwMailMergeConfigItem::IsHideEmptyParagraphs() const +{ + return m_pImpl->bIsHideEmptyParagraphs; +} +/*-- 30.08.2005 15:09:47--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void SwMailMergeConfigItem::SetHideEmptyParagraphs(sal_Bool bSet) +{ + if(m_pImpl->bIsHideEmptyParagraphs != bSet) + { + m_pImpl->bIsHideEmptyParagraphs = bSet; + m_pImpl->SetModified(); + } +} /*-- 28.04.2004 13:00:02--------------------------------------------------- -----------------------------------------------------------------------*/ @@ -985,7 +1009,7 @@ void SwMailMergeConfigItem::SetCurrentDBData( const SwDBData& rDBData) /*-- 29.04.2004 11:34:36--------------------------------------------------- -----------------------------------------------------------------------*/ -Reference< XResultSet> SwMailMergeConfigItem::GetResultSet() +Reference< XResultSet> SwMailMergeConfigItem::GetResultSet() const { if(!m_pImpl->xConnection.is() && m_pImpl->aDBData.sDataSource.getLength()) { @@ -1442,6 +1466,114 @@ void SwMailMergeConfigItem::SetColumnAssignment( const SwDBData& rDBData, } m_pImpl->SetModified(); } + +/*-- 07.09.2005 11:50:27--------------------------------------------------- + + -----------------------------------------------------------------------*/ +bool SwMailMergeConfigItem::IsAddressFieldsAssigned() const +{ + bool bResult = true; + Reference< XResultSet> xResultSet = GetResultSet(); + uno::Reference< XColumnsSupplier > xColsSupp( xResultSet, UNO_QUERY ); + if(!xColsSupp.is()) + return false; + uno::Reference<container::XNameAccess> xCols = xColsSupp->getColumns(); + + const ResStringArray& rHeaders = GetDefaultAddressHeaders(); + Sequence< ::rtl::OUString> aAssignment = + GetColumnAssignment( GetCurrentDBData() ); + const ::rtl::OUString* pAssignment = aAssignment.getConstArray(); + const Sequence< ::rtl::OUString> aBlocks = GetAddressBlocks(); + + SwAddressIterator aIter(aBlocks[0]); + while(aIter.HasMore()) + { + SwMergeAddressItem aItem = aIter.Next(); + if(aItem.bIsColumn) + { + String sConvertedColumn = aItem.sText; + for(USHORT nColumn = 0; + nColumn < rHeaders.Count() && nColumn < aAssignment.getLength(); + ++nColumn) + { + if(rHeaders.GetString(nColumn) == aItem.sText && + pAssignment[nColumn].getLength()) + { + sConvertedColumn = pAssignment[nColumn]; + break; + } + } + //find out if the column exists in the data base + if(!xCols->hasByName(sConvertedColumn)) + { + bResult = false; + break; + } + } + } + return bResult; +} +/*-- 07.09.2005 11:50:27--------------------------------------------------- + + -----------------------------------------------------------------------*/ +bool SwMailMergeConfigItem::IsGreetingFieldsAssigned() const +{ + bool bResult = true; + + if(!IsIndividualGreeting(sal_False)) + return true; + + Reference< XResultSet> xResultSet = GetResultSet(); + uno::Reference< XColumnsSupplier > xColsSupp( xResultSet, UNO_QUERY ); + if(!xColsSupp.is()) + return false; + const ResStringArray& rHeaders = GetDefaultAddressHeaders(); + uno::Reference<container::XNameAccess> xCols = xColsSupp->getColumns(); + + Sequence< ::rtl::OUString> aAssignment = + GetColumnAssignment( GetCurrentDBData() ); + const ::rtl::OUString* pAssignment = aAssignment.getConstArray(); + + const Sequence< ::rtl::OUString> rFemaleEntries = GetGreetings(SwMailMergeConfigItem::FEMALE); + sal_Int32 nCurrentFemale = GetCurrentGreeting(SwMailMergeConfigItem::FEMALE); + const Sequence< ::rtl::OUString> rMaleEntries = GetGreetings(SwMailMergeConfigItem::MALE); + sal_Int32 nCurrentMale = GetCurrentGreeting(SwMailMergeConfigItem::MALE); + ::rtl::OUString sMale, sFemale; + if(rFemaleEntries.getLength() > nCurrentFemale) + sFemale = rFemaleEntries[nCurrentFemale]; + if(rMaleEntries.getLength() > nCurrentMale) + sMale = rMaleEntries[nCurrentMale]; + + ::rtl::OUString sAddress( sFemale ); + sAddress += sMale; + SwAddressIterator aIter(sAddress); + while(aIter.HasMore()) + { + SwMergeAddressItem aItem = aIter.Next(); + if(aItem.bIsColumn) + { + String sConvertedColumn = aItem.sText; + for(USHORT nColumn = 0; + nColumn < rHeaders.Count() && nColumn < aAssignment.getLength(); + ++nColumn) + { + if(rHeaders.GetString(nColumn) == aItem.sText && + pAssignment[nColumn].getLength()) + { + sConvertedColumn = pAssignment[nColumn]; + break; + } + } + //find out if the column exists in the data base + if(!xCols->hasByName(sConvertedColumn)) + { + bResult = false; + break; + } + } + } + return bResult; +} /*-- 05.05.2004 16:10:07--------------------------------------------------- -----------------------------------------------------------------------*/ |