Index: xmloff/inc/xmloff/xmltoken.hxx
===================================================================
RCS file: /cvs/xml/xmloff/inc/xmloff/xmltoken.hxx,v
retrieving revision 1.6
diff -u -p -r1.6 xmltoken.hxx
--- xmloff/inc/xmloff/xmltoken.hxx	6 Jul 2007 12:20:12 -0000	1.6
+++ xmloff/inc/xmloff/xmltoken.hxx	9 Aug 2007 18:29:21 -0000
@@ -283,6 +283,7 @@ namespace xmloff { namespace token {
         XML_BASE_CELL_ADDRESS,
         XML_BASELINE,
         XML_BEFORE_DATE_TIME,
+        XML_BEGINS,
         XML_BELOW,
         XML_BETWEEN_DATE_TIMES,
         XML_BEVEL,
@@ -447,6 +448,7 @@ namespace xmloff { namespace token {
         XML_CONSECUTIVE_NUMBERING,
         XML_CONSOLIDATION,
         XML_CONSTANT,
+        XML_CONTAINS,
         XML_CONTAINS_ERROR,
         XML_CONTAINS_HEADER,
         XML_CONTENT,
@@ -666,6 +668,7 @@ namespace xmloff { namespace token {
         XML_ENDNOTE_CITATION,
         XML_ENDNOTE_REF,
         XML_ENDNOTES_CONFIGURATION,
+        XML_ENDS,
         XML_ENGRAVED,
         XML_EQ,
         XML_EQUAL_AUTHOR,
@@ -1229,6 +1232,7 @@ namespace xmloff { namespace token {
         XML_NORMALS_DIRECTION,
         XML_NORMALS_KIND,
         XML_NOT,
+        XML_NOT_CONTAINS,
         XML_NOT_EQUAL_DATE,
         XML_NOTE,
         XML_NOTES,
Index: xmloff/source/core/xmltoken.cxx
===================================================================
RCS file: /cvs/xml/xmloff/source/core/xmltoken.cxx,v
retrieving revision 1.109
diff -u -p -r1.109 xmltoken.cxx
--- xmloff/source/core/xmltoken.cxx	6 Jul 2007 12:21:09 -0000	1.109
+++ xmloff/source/core/xmltoken.cxx	9 Aug 2007 18:29:22 -0000
@@ -291,6 +291,7 @@ namespace xmloff { namespace token {
         TOKEN( "base-cell-address",               XML_BASE_CELL_ADDRESS ),
         TOKEN( "baseline",                        XML_BASELINE ),
         TOKEN( "before-date-time",                XML_BEFORE_DATE_TIME ),
+        TOKEN( "begins",                          XML_BEGINS),
         TOKEN( "below",                           XML_BELOW ),
         TOKEN( "between-date-times",              XML_BETWEEN_DATE_TIMES ),
         TOKEN( "bevel",                           XML_BEVEL ),
@@ -455,6 +456,7 @@ namespace xmloff { namespace token {
         TOKEN( "consecutive-numbering",           XML_CONSECUTIVE_NUMBERING ),
         TOKEN( "consolidation",                   XML_CONSOLIDATION ),
         TOKEN( "constant",                        XML_CONSTANT ),
+        TOKEN( "contains",                        XML_CONTAINS ),
         TOKEN( "contains-error",                  XML_CONTAINS_ERROR ),
         TOKEN( "contains-header",                 XML_CONTAINS_HEADER ),
         TOKEN( "content",                         XML_CONTENT ),
@@ -674,6 +676,7 @@ namespace xmloff { namespace token {
         TOKEN( "endnote-citation",                XML_ENDNOTE_CITATION ),
         TOKEN( "endnote-ref",                     XML_ENDNOTE_REF ),
         TOKEN( "endnotes-configuration",          XML_ENDNOTES_CONFIGURATION ),
+        TOKEN( "ends",                            XML_ENDS ),
         TOKEN( "engraved",                        XML_ENGRAVED ),
         TOKEN( "eq",                              XML_EQ ),
         TOKEN( "equal-author",                    XML_EQUAL_AUTHOR ),
@@ -1237,6 +1240,7 @@ namespace xmloff { namespace token {
         TOKEN( "normals-direction",               XML_NORMALS_DIRECTION ),
         TOKEN( "normals-kind",                    XML_NORMALS_KIND ),
         TOKEN( "not",                             XML_NOT ),
+        TOKEN( "!contains",                       XML_NOT_CONTAINS ),
         TOKEN( "not-equal-date",                  XML_NOT_EQUAL_DATE ),
         TOKEN( "note",                            XML_NOTE ),
         TOKEN( "notes",                           XML_NOTES ),
Index: sc/source/filter/xml/XMLExportDataPilot.cxx
===================================================================
RCS file: /cvs/sc/sc/source/filter/xml/XMLExportDataPilot.cxx,v
retrieving revision 1.27
diff -u -p -r1.27 XMLExportDataPilot.cxx
--- sc/source/filter/xml/XMLExportDataPilot.cxx	6 Jul 2007 12:40:04 -0000	1.27
+++ sc/source/filter/xml/XMLExportDataPilot.cxx	9 Aug 2007 18:29:25 -0000
@@ -196,6 +196,14 @@ rtl::OUString ScXMLExportDataPilot::getD
 			return GetXMLToken(XML_TOP_PERCENT);
 		case SC_TOPVAL :
 			return GetXMLToken(XML_TOP_VALUES);
+		case SC_BEGINS_WITH:
+			return GetXMLToken(XML_BEGINS);
+		case SC_ENDS_WITH:
+			return GetXMLToken(XML_ENDS);
+		case SC_CONTAINS:
+			return GetXMLToken(XML_CONTAINS);
+		case SC_DOES_NOT_CONTAIN:
+			return GetXMLToken(XML_NOT_CONTAINS);
 		default:
             DBG_ERROR("This FilterOperator is not supported.");
 	}
Index: sc/source/filter/xml/XMLExportDatabaseRanges.cxx
===================================================================
RCS file: /cvs/sc/sc/source/filter/xml/XMLExportDatabaseRanges.cxx,v
retrieving revision 1.22
diff -u -p -r1.22 XMLExportDatabaseRanges.cxx
--- sc/source/filter/xml/XMLExportDatabaseRanges.cxx	22 May 2007 20:02:49 -0000	1.22
+++ sc/source/filter/xml/XMLExportDatabaseRanges.cxx	9 Aug 2007 18:29:26 -0000
@@ -301,6 +301,14 @@ rtl::OUString ScXMLExportDatabaseRanges:
         {
             // added to avoid warnings
         }
+		case 100+SC_BEGINS_WITH:
+			return GetXMLToken(XML_BEGINS);
+		case 100+SC_ENDS_WITH:
+			return GetXMLToken(XML_ENDS);
+		case 100+SC_CONTAINS:
+			return GetXMLToken(XML_CONTAINS);
+		case 100+SC_DOES_NOT_CONTAIN:
+			return GetXMLToken(XML_NOT_CONTAINS);
 	}
 	return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("="));
 }
Index: sc/source/filter/xml/xmlfilti.cxx
===================================================================
RCS file: /cvs/sc/sc/source/filter/xml/xmlfilti.cxx,v
retrieving revision 1.16
diff -u -p -r1.16 xmlfilti.cxx
--- sc/source/filter/xml/xmlfilti.cxx	22 May 2007 20:04:07 -0000	1.16
+++ sc/source/filter/xml/xmlfilti.cxx	9 Aug 2007 18:29:26 -0000
@@ -386,6 +386,14 @@ void ScXMLConditionContext::getOperatorX
 		aFilterOperator = sheet::FilterOperator_TOP_PERCENT;
 	else if (IsXMLToken(sTempOperator, XML_TOP_VALUES))
 		aFilterOperator = sheet::FilterOperator_TOP_VALUES;
+	else if (IsXMLToken(sTempOperator, XML_BEGINS))
+		aFilterOperator = (sheet::FilterOperator) (100+SC_BEGINS_WITH);
+	else if (IsXMLToken(sTempOperator, XML_ENDS))
+		aFilterOperator = (sheet::FilterOperator) (100+SC_ENDS_WITH);
+	else if (IsXMLToken(sTempOperator, XML_CONTAINS))
+		aFilterOperator = (sheet::FilterOperator) (100+SC_CONTAINS);
+	else if (IsXMLToken(sTempOperator, XML_NOT_CONTAINS))
+		aFilterOperator = (sheet::FilterOperator) (100+SC_DOES_NOT_CONTAIN);
 }
 
 void ScXMLConditionContext::EndElement()
@@ -751,6 +759,14 @@ void ScXMLDPConditionContext::getOperato
 		aFilterOperator = SC_TOPPERC;
 	else if (IsXMLToken(sTempOperator, XML_TOP_VALUES))
 		aFilterOperator = SC_TOPVAL;
+	else if (IsXMLToken(sTempOperator, XML_BEGINS))
+		aFilterOperator = SC_BEGINS_WITH;
+	else if (IsXMLToken(sTempOperator, XML_ENDS))
+		aFilterOperator = SC_ENDS_WITH;
+	else if (IsXMLToken(sTempOperator, XML_CONTAINS))
+		aFilterOperator = SC_CONTAINS;
+	else if (IsXMLToken(sTempOperator, XML_NOT_CONTAINS))
+		aFilterOperator = SC_DOES_NOT_CONTAIN;
 }
 
 void ScXMLDPConditionContext::EndElement()
Index: sc/source/ui/unoobj/datauno.cxx
===================================================================
RCS file: /cvs/sc/sc/source/ui/unoobj/datauno.cxx,v
retrieving revision 1.28
diff -u -p -r1.28 datauno.cxx
--- sc/source/ui/unoobj/datauno.cxx	5 Mar 2007 14:45:54 -0000	1.28
+++ sc/source/ui/unoobj/datauno.cxx	9 Aug 2007 18:29:27 -0000
@@ -1180,6 +1180,10 @@ uno::Sequence<sheet::TableFilterField> S
 			case SC_BOTVAL:			aField.Operator = sheet::FilterOperator_BOTTOM_VALUES;  break;
 			case SC_TOPPERC:		aField.Operator = sheet::FilterOperator_TOP_PERCENT;	  break;
 			case SC_BOTPERC:		aField.Operator = sheet::FilterOperator_BOTTOM_PERCENT; break;
+			case SC_BEGINS_WITH: aField.Operator = (sheet::FilterOperator) (100+SC_BEGINS_WITH); break;
+			case SC_ENDS_WITH: aField.Operator = (sheet::FilterOperator) (100+SC_ENDS_WITH); break;
+			case SC_CONTAINS: aField.Operator = (sheet::FilterOperator) (100+SC_CONTAINS); break;
+			case SC_DOES_NOT_CONTAIN: aField.Operator = (sheet::FilterOperator) (100+SC_DOES_NOT_CONTAIN); break;
 			default:
 				DBG_ERROR("Falscher Filter-enum");
 				aField.Operator = sheet::FilterOperator_EMPTY;
@@ -1234,6 +1238,10 @@ void SAL_CALL ScFilterDescriptorBase::se
 			case sheet::FilterOperator_BOTTOM_VALUES:	rEntry.eOp = SC_BOTVAL;		 break;
 			case sheet::FilterOperator_TOP_PERCENT:		rEntry.eOp = SC_TOPPERC;		 break;
 			case sheet::FilterOperator_BOTTOM_PERCENT:	rEntry.eOp = SC_BOTPERC;		 break;
+			case 100+SC_BEGINS_WITH: rEntry.eOp = SC_BEGINS_WITH; break;
+			case 100+SC_ENDS_WITH: rEntry.eOp = SC_ENDS_WITH; break;
+			case 100+SC_CONTAINS: rEntry.eOp = SC_CONTAINS; break;
+			case 100+SC_DOES_NOT_CONTAIN: rEntry.eOp = SC_DOES_NOT_CONTAIN; break;
 			case sheet::FilterOperator_EMPTY:
                 {
                     rEntry.eOp = SC_EQUAL;
