-----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:manf...@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+unsubscr...@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