Date: prev next · Thread: first prev next last
2015 Archives by date, by thread · List index


-----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.