Hi Jacqueline,
>> gibt es eine M�glichkeit in Writer nach vorhandenen Feldinhalten zu
>> suchen? Ich habe ein Dokument, welches �ber die Serienbrieffunktion
>> mit einer ganzen Reihe von Artikel- und Kundennummern aus einer
>> Datenbank gef�llt wird. Um schnell an die gew�nschte Stelle im
Das folgende BASIC-Makro kann Dir (und anderen) hierbei vielleicht
helfen.
Die Routine unter �bergabe des gesuchten Inhalts aufrufen:
Sub SucheNr
SuchenInKundenNummer("4711")
End Sub
Damit wird die Einf�gemarke vor die *erste* Textmarke gesetzt, die
*genau* den Suchbegriff enth�lt.
Anmerkungen:
Im Code muss in der Zeile mit "DataColumnName" der Name der
Datenbankspalte angepasst werden, dessen Textfeldinhalt gesucht wird.
Keine Fehlerpr�fung! Das Makro muss von einem WRITER-Dokument (unter
Mitgabe des Suchbegriffs als Parameter) aufgerufen werden, um nicht
gleich am Anfang eine Exception zu schmeissen.
"erste": OOo nummeriert die Textfelder wohl nach der Reihenfolge ihres
Einf�gens in das Dokument durch (wenn sie mehrfach verwendet werden).
Somit ist es m�glich, dass die Fundstelle NICHT die oberste Stelle im
Dokument ist.
"genau": bedeutet, dass nach dem kompletten Inhalt gesucht werden muss,
ein Suchen nach "471" bei einem Inhalt von "4711" ergibt KEINEN
Treffer.
(noch was: die Ausf�hrung aus der Basic-IDE positioniert zwar den
Cursor, wechselt aber nicht die Anzeige der Seite ;-)
Have fun
Winfried
======> schnipp <======
Sub SuchenInKundenNummer(gesuchteNr as String)
' OpenOfficeBasic
' Suchen nach Feldinhalten von Serienbrief-Datenbankfelder
' hoffentlich ist ein Writer-Dokument geladen
oDok = ThisComponent
' Textfelder des Dokuments
oFelder = oDok.getTextFields()
' Aufz�hlung erstellen
enumFelder = oFelder.createEnumeration
' alle Textfelder des Dokuments bearbeiten
While enumFelder.hasMoreElements()
' einzelnes Textfeld
oFeld = enumFelder.nextElement()
' isses Datenbankfeld?
if oFeld.supportsService("com.sun.star.text.TextField.Database") Then
' isses aus Spalte Kundennummer?
if oFeld.TextFieldMaster.DataColumnName = "KD-NR" then
' isses mit gesuchtem Inhalt?
if oFeld.Content = gesuchteNr THEN
' sichtbaren Cursor des Dokuments holen
oViewCursor = oDok.getCurrentController().getViewCursor()
' diesen vor das Textfeld positionieren
oViewCursor.gotoRange( oFeld.getAnchor().getStart() ,FALSE )
' verlassen
Exit Sub
end if
end if
end if
Wend
End Sub
======> schnipp <======
Cheers
Winfried
--
re-Solutions.de Software Test Engineering Mainz Germany Europe
OOo stuff (macros, templates, icons): http://www.winnirohr.de/ooo/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]