Datenbankfelder in Text

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Datenbankfelder in Text

Danke

von moritz » Do, 21.10.2004 22:01

Na Hallo, danke. Ich habe nicht geglaubt, daß das Ganze so einfach ist:
sNummer = Found.String
Found.String = sNummer
Damit wird der Text des Feldes gelesen und anschließend das Feld mit diesem Text überschrieben. Und das wars, was ich wollte. Danke für Deinen Tip.
Zum übrigen Code: Es ist das alte Thema Serienbrief bzw. Fax. Ich schreibe alle Briefe / Faxe als Serienbrief mit Vorlage und Serienbrieffeldern. Die Felder haben bestimmte Druckformate, damit danach gesucht werden kann. Die Vorlage ist an eine MySQL oder Firebase- Datenbank gebunden. In OpenOffice gibt es dann dazu eine Tabelle "Abfrage". Über ein Makro wird eine SQL- Abfrage gestartet. Das Ergebnis steht dann in der Tabelle, diese wird automatisch angezeigt (analog F4). Der richtige Name (viele Namen gibt es in der Datenbank mehrfach) wird dann ausgewählt und der Text wird im Brief/ Fax angezeigt. Anschließend wird der Brief gedruckt oder das Fax versandt. Anschließend werden alle Felder in Text umgewandelt und die Datei unter dem Datum und dem Empfängernamen automatisch gespeichert. Mit Winword habe ich das ganze vor knapp 10 Jahren zusammengeschrieben und nun soll das Ganze auch unter OO funktionieren. Bin nun wieder einen Schritt weiter.
Danke

von Stephan » Do, 21.10.2004 20:14

SearchDesc.searchString=“NummerStyle“
SearchDesc.searchStyles = True
Found = oDocument.findfirst (SearchDesc)
sNummer = Found.String
Wie kann ich aber Found ausschneiden und als Daten einfügen? Hat jemand einen Tip dazu?
Ich verstehe jetzt den Code noch nicht, aber falls das hier geht:
sNummer = Found.String
dann geht doch zum "Ausschneiden" in jedem Fall:
Found.String = ""
und zum Einfügen:
Found.String = "Irgendetwas"

Da aber sNummer genau den zurückzuschreibenden Inhalt darstellen soll bist Du dann ja wieder am Anfang...

Also würde ich Dich zunächst mal fragen, funktioniert den dieser Code und wie sieht der komplett aus?
Meiner Meinung nach mußt Du einen TextCursor per Code erstellen und durch das Dokument interieren die Ausdrücke lesen und nur den inhalt zurückschreiben. Das ist aber zunächst davon abhängig wo sich die Ausdrücke befinden also z.B. Textfelder, Kopfzeile, Fließtext usw.
Du findest zu dieser Problematik eigentlich gute Informationen im "StarOffice-Programmierhandbuch", der Link steht hier im Programmierforum ganz oben unter 'Tips zur Starbasic-Programmierung'.

Gruß
Stephan

Ergänzung

von moritz » Do, 21.10.2004 17:22

Ich möchte meine Frage noch etwas näher erläutern. Mein Ziel ist es, alle Felder, also auch Datenbankfelder eines Dokumentes in Text umzuwandeln. Da die Felder unterschiedliche Formatierungen haben, ist Ausschneiden des Dokuments und Inhalte einfügen nicht möglich. Wie kann man über StarBasic von einem Feld zum nächsten gehen, dieses ausschneiden und als Inhalt wieder einfügen? Eine andere Variante (aber umständlicher) wäre das Suchen von Formatierungen, zB. so:
SearchDesc.searchString=“NummerStyle“
SearchDesc.searchStyles = True
Found = oDocument.findfirst (SearchDesc)
sNummer = Found.String
Wie kann ich aber Found ausschneiden und als Daten einfügen? Hat jemand einen Tip dazu?
Moritz

Datenbankfelder in Text

von moritz » Mi, 20.10.2004 22:03

Hallo,
ich habe Serienbrieffelder in einem Brief. Für die dauerhafte Speicherung möchte ich den 1. Datensatz im Brief speichern. Ich möchte aus dem Serienbrief einen ganz normalen Text ohne Felder machen und anstelle der Felder den Text aus dem 1. Datensatz speichern. In Word und VBA geht das ganz einfach, in dem der Brief in eine Datei gedruckt wird. Das neue Dokument hat keine Verbindung mehr zur Datenquelle, die Felder sind Text. In OO bleiben die Felder erhalten. Wie kann man das mit einem Makro ändern?
Moritz

Nach oben