-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hallo Robert,
ich danke Dir vielmals für den Code. Habs ein bisschen auf meine Bedürfnisse
modifiziert und funktioniert (fast) perfekt. Mit einem Leerzeichen hab ich
noch ein Problem aber wenn ich den Code mal verstanden habe, kann ich auch das
lösen =)
Mein nächstes Problem kommt dann mit neuem Thread :/
glg,
fred
On 18.08.2015 20:51, Robert Großkopf wrote:
Hallo Fred,
ich habe da etwas liegen gehabt, das hier gepostet wurde - gleiches
Problem:
http://www.libreoffice-forum.de/viewtopic.php?f=10&t=14988&sid=e3879a86d8d8b78
1c054fddc6e5d362c#p35780
Daraus habe ich jetzt den Code so übernommen, dass er auch zu dem passt,
was ich im Handbuch hinterlegt habe. Hier jetzt einfach einmal der gesamte
Code zum Füllen der Textfelder mit Löschmöglichkeit, wenn ein Textfeld
keinen Inhalt hat: --------------- SUB Textfelder_Fuellen 'Zuerst muss im
Writer eine Vorlage mit Platzhaltern erstellt werden. 'Einfügen →
Feldbefehl → Funktionen → Platzhalter 'Den Platzhalter so nennen, wie die
entsprechende Spalte in der Tabelle / in der Abfrage heißt, deren Inhalt
der Platzhalter annehmen soll. 'Für einfache Zwecke einfach nur "Text" als
Typ wählen, mit den anderen Varianten, z.B. "Grafik" kann man dann
fortgeschrittenere Sachen umsetzen. 'In dem Makro Pfad zur Vorlage
hinterlegen und vom Makro die Platzhalter befüllen lassen. 'Es wird ein
neues Dokument gegründet, das direkt mit den Inhalten gefüllt wird. 'Das
Dokument wird geöffnet, ist noch nicht gespeichert. DIM oForm AS OBJECT DIM
oColumns AS OBJECT DIM oDB AS OBJECT DIM oNewDoc AS OBJECT DIM oTextfields
AS OBJECT DIM oTextfield AS OBJECT DIM oViewCursor AS OBJECT DIM
stColumnname AS STRING DIM stDir AS STRING DIM stContent AS STRING DIM
inIndex AS INTEGER oForm = thisComponent.Drawpage.Forms.MainForm 'Das
Hauptformular wird angesteuert. Hier könnte auch die Lage des auslösenden
Buttons das Formular selbst ermitteln. oColumns = oForm.Columns oDB =
ThisComponent.Parent ' Der Zugriff auf die URL ist nicht vom Formular aus
direkt möglich. Es muss auf den darüberliegenden Frame der Datenbank Bezug
genommen werden. stDir =
Left(oDB.Location,Len(oDB.Location)-Len(oDB.Title)) ' Der Titel der
Datenbank wird von der URL abgetrennt. stDir = stDir &
"Beispiel_Textfelder.ott" REM Vorlage öffnen DIM args(0) AS NEW
com.sun.star.beans.PropertyValue args(0).Name = "AsTemplate" args(0).Value
= True oNewDoc = StarDesktop.loadComponentFromURL(stDir,"_blank",0,args)
REM Textfelder holen oViewCursor =
oNewDoc.CurrentController.getviewCursor() oTextfields =
oNewDoc.Textfields.createEnumeration DO WHILE oTextfields.hasMoreElements
oTextfield = oTextfields.nextElement IF
oTextfield.supportsService("com.sun.star.text.TextField.JumpEdit") THEN
stColumnname = oTextfield.PlaceHolder 'Placeholder ist Benennung für das
Textfeld IF oColumns.hasByName(stColumnname) THEN 'Wenn der Name des
Textfeldes gleich dem Spaltennamen der Daten ist, die dem Formular zugrunde
liegen ... inIndex = oForm.findColumn(stColumnname) stContent =
oForm.getString(inIndex) oViewCursor.GotoRange(oTextfield.Anchor,false)
oViewCursor.String = stContent IF stContent = "" THEN oViewCursor.goRight
(1, true) 'Mit dieser und der folgenden Zeile wird der Platzhalter und das
anschließende Zeichen gelöscht oViewCursor.String = "" END IF END IF END
IF LOOP END SUB ---------------------------
Ist natürlich schlecht hier heraus zu kopieren. Schau Dir einfach einmal
alle Zeilen an, in der der ViewCursor vorkommt. Der Inhalt wird jetzt über
den Cursor in die Vorlage übertragen, nicht direkt in die Platzhalter
geschrieben.
Gruß
Robert
- --
_____________________________________________________
EDV-Systemberatung * Planung * Installation * Support
Manfred BERTL, D-83451 Piding, Wiesenweg 16
Homepage at http://www.edv-bertl.de
Tel.: +43-676-89692622 mailto:manfred@edv-bertl.de
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iEYEARECAAYFAlXU3/gACgkQmllPjIGnd+Ec3wCgyhifawIdlF4kEJNlGahlJqRy
u2oAn1BFcSWvCucedHFHsFW4VqK9d8GN
=HdCB
-----END PGP SIGNATURE-----
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.