Absoluter Neuling braucht etwas Hilfe :-)

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

OkidokiB
*
Beiträge: 11
Registriert: So, 09.04.2023 00:33

Absoluter Neuling braucht etwas Hilfe :-)

Beitrag von OkidokiB »

Halli Hallo,

und vielen Dank vorab, dass Ihr meinen Post anschaut.

Ich möchte ein Textdokument mit Feldern versehen, die abgerufen werden, wenn man das Dokument aufruft.
Soweit bin ich schon recht weit gekommen, nur ruft mein Makro den Namen, aber auch die Bezeichnung der Felder nicht ab.
Mir wird also immer nur Textfeld 1, Textfeld2 etc. angezeigt.
Ich bin leider trotz einiger Stunden mit Versuchen keinen Schritt weiter gekommen, habe aber eben auch echt keine Ahnung :-)
Kann mir jemand sagen, wo der Fehler in dem Skript unten liegt?

Was ich auch gerne noch wüsste, wie ich dem Makro einen "Stempel" geben kann, um es auch bei hoher Sicherheitseinstellung ausführen zu können :-)

Danke euch!
OkidokiB

Sub AutoOpen()
Dim doc As Object
Dim form As Object
Dim field As Object
Dim sName As String
Dim sValue As String
Dim oCursor As Object

doc = ThisComponent
form = doc.DrawPage.Forms(0)
oCursor = doc.CurrentController.getViewCursor()

For Each field In form
If field.SupportsService("com.sun.star.form.component.TextField") Then
sName = field.Model.Name
sValue = InputBox("Bitte geben Sie den Wert für das Feld '" & sName & "' ein:")
If sValue <> "" Then
field.Text = sValue
End If
End If
Next

doc.CurrentController.getViewCursor().gotoStartOfDoc(True)
End Sub
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Absoluter Neuling braucht etwas Hilfe :-)

Beitrag von mikeleb »

Hallo,
ich musste zwei Zeilen abändern, um das Makro zum Laufen zu bringen:
aus:

Code: Alles auswählen

sName = field.Model.Name
machte ich

Code: Alles auswählen

sName = field.Name
und aus

Code: Alles auswählen

doc.CurrentController.getViewCursor().gotoStartOfDoc(True)
machte ich

Code: Alles auswählen

doc.CurrentController.getViewCursor().gotoStart(True)
dann machte es was es soll.
Mir wird also immer nur Textfeld 1, Textfeld2 etc. angezeigt.
Das verstehe ich nicht wirklich ... (Heißen deine Textfelder so?)
Was ich auch gerne noch wüsste, wie ich dem Makro einen "Stempel" geben kann, um es auch bei hoher Sicherheitseinstellung ausführen zu können?
Da bin ich überfragt wüsste es aber auch gern :) )
edit: (gerade gelesen viewtopic.php?p=299794#p299794) Bei den Einstellungen der Makrosicherheit, gibt es auch noch "Vertrauenswürdige Quellen" ...
Dateianhänge
makro_felder_füllen.odt
(11.43 KiB) 62-mal heruntergeladen
Gruß,
mikeleb
OkidokiB
*
Beiträge: 11
Registriert: So, 09.04.2023 00:33

Re: Absoluter Neuling braucht etwas Hilfe :-)

Beitrag von OkidokiB »

Hallo,

erst mal vielen Dank, jetzt läuft es bei mir auch!

Zu dem Punkt Textfeld 1 usw.
Ich wollte mit dem Makro erreichen, dass das jeweilige Textfeld mit Namen abgefragt wird.

Jetzt öffnet sich das Abfragefeld mit "Bitte geben Sie den Wert für das Feld `Textfeld 1`ein:"
und ich hatte gerne, dass es den Namen des Feldes, also z.B. "Vorname" in diese Abfrage integriert,
sprich sie aus dem jeweiligen Feld ausliest. Vergeben habe ich Name und auch Bezeichnung des Feldes,
aber es funzt nicht :-)

Das Dokument, welches mit den Textfeldern versehen wird, ist recht lang und hat viele Variablen und wenn ich
dann immer schauen muss, welches Textfeld welche Nummer hat ... :-)

Vielen Dank im Voraus!
OkidokiB
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Absoluter Neuling braucht etwas Hilfe :-)

Beitrag von mikeleb »

Hallo,
wie du an meiner Beispiedatei siehst, funktioniert es mit dem Namen.
Wenn bei dir "Textfeld 1" erscheint, dann heißt dein Textfeld offensichtlich so.
Was ist für dich der Name des Textfeldes?
Gruß,
mikeleb
OkidokiB
*
Beiträge: 11
Registriert: So, 09.04.2023 00:33

Re: Absoluter Neuling braucht etwas Hilfe :-)

Beitrag von OkidokiB »

Hallo,

wenn ich ein Textfeld erstelle, dann kann ich ja mit Rechtsklick einen Namen vergeben und auch eine Bezeichnung.
Dort habe ich z.B. bei beidem "Name" eingegeben und dachte, mit dem Makro würde ich das so abfragen.
Aber scheinbar mache ich da einen Denkfehler? :shock:
Textfeld heißt es ja vermutlich standardmäßig, weil es ja in der Auswahl des Menüs (ob ich ein Textfeld erstelle, ein Formular oder etc.)
auch so bezeichnet wird.

Grüße!
OkdidokiB
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Absoluter Neuling braucht etwas Hilfe :-)

Beitrag von mikeleb »

Hallo,
was zeigt meine Datei bei dir an?
Gruß,
mikeleb
OkidokiB
*
Beiträge: 11
Registriert: So, 09.04.2023 00:33

Re: Absoluter Neuling braucht etwas Hilfe :-)

Beitrag von OkidokiB »

Hallo,

sie zeigt ein Eingabefeld an eben mit dem Text, den ich oben schrieb und statt "Name" eben "Textfeld 1" beim ersten Feld, beim zweiten Feld statt "Vorname" eben dann "Textfeld 2".

Sorry, dass ich da nicht mehr erklären kann, ich bin sowohl in Openoffice vollkommen neu als auch in OpenOffice Basic.

:-)
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Absoluter Neuling braucht etwas Hilfe :-)

Beitrag von mikeleb »

Hallo,
Sorry, dass ich da nicht mehr erklären kann, ich bin sowohl in Openoffice vollkommen neu als auch in OpenOffice Basic.
Dafür ist keine Entschuldigung nötig.
Es ist nur seltsam, da bei mir sowohl mit OpenOffice als als mit LibreOffice die Anzeige:
Bitte geben Sie den Wert für das Feld 'Name' ein:
erscheint.
txtfeld2.jpg
txtfeld2.jpg (15.04 KiB) 1649 mal betrachtet
txtfeld1.jpg
txtfeld1.jpg (36.36 KiB) 1649 mal betrachtet
Welche Programmversion und welches Betriebssystem benutzt du?
Gruß,
mikeleb
OkidokiB
*
Beiträge: 11
Registriert: So, 09.04.2023 00:33

Re: Absoluter Neuling braucht etwas Hilfe :-)

Beitrag von OkidokiB »

Hallo,

ja, das ist wirklich seltsam.
Also ich nutze MAC OS 13.3.1 und OpenOffice 4.1.14

Eigentlich bin ich kein Fan der neusten Versionen, aber musste es
wegen einer Software machen, die sonst auch nicht richtig funktioniert.
Wäre jetzt doof, wenn ich mir dadurch den Weg versperrt habe, diese Sache
hier richtig zum Laufen zu bringen.

Das Auswahlmenü, welches ich nutzen kann, für das jeweilige Feld, ist auch deutlich
eingeschränkter aus bei deinem Screenshot, der Name des Feldes ist aber auswählbar und von
mir auch vergeben, daher sollte es eigentlich auch gleichermaßen funktionieren!?

Danke für die Hilfe!

OkidokiB
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Absoluter Neuling braucht etwas Hilfe :-)

Beitrag von mikeleb »

Hallo,
mach' mal bitte einen Screenshot zum Vergleich.
Gruß,
mikeleb
OkidokiB
*
Beiträge: 11
Registriert: So, 09.04.2023 00:33

Re: Absoluter Neuling braucht etwas Hilfe :-)

Beitrag von OkidokiB »

Hallo,

anbei einmal die gesammelten Screenshots, ich hoffe, das hilft :-)

Grüße!
OkdokiB
Dateianhänge
Bildschirmfoto 2023-04-10 um 23.17.18.jpg
Bildschirmfoto 2023-04-10 um 23.17.18.jpg (128.85 KiB) 1612 mal betrachtet
Bildschirmfoto 2023-04-10 um 23.18.26.png
Bildschirmfoto 2023-04-10 um 23.18.26.png (242.94 KiB) 1612 mal betrachtet
Bildschirmfoto 2023-04-10 um 23.19.30.png
Bildschirmfoto 2023-04-10 um 23.19.30.png (253.85 KiB) 1612 mal betrachtet
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Absoluter Neuling braucht etwas Hilfe :-)

Beitrag von mikeleb »

Hallo,
klick mal im Kontextmenü auf "Kontrollfeld" ...
Gruß,
mikeleb
OkidokiB
*
Beiträge: 11
Registriert: So, 09.04.2023 00:33

Re: Absoluter Neuling braucht etwas Hilfe :-)

Beitrag von OkidokiB »

YUHUUUUU!!!

Ach wie toll, super dicken Dank!

:-)

Dann bastel ich hier mal weiter und hoffe nicht noch weitere doofe Fragen stellen zu müssen!

Echt Klasse! DANKE!

Grüße
OkidokiB
OkidokiB
*
Beiträge: 11
Registriert: So, 09.04.2023 00:33

Re: Absoluter Neuling braucht etwas Hilfe :-)

Beitrag von OkidokiB »

Hallo,

ich habe leider noch mal ein Problem, ich versuche gerade ein vorhandenes Dokument mit befüllbaren Feldern zu versehen, dabei tritt folgender Fehler nach Ausführen des Makros aus und ich weiß nicht warum:

Basic-Laufzeitfehler. Es ist eine Exception aufgetreten
Type: com.sun.star.container.NoSuchElemntMessage:.

mit Hinweis auf folgende Zeile:

For Each field In form.getByName("MainForm")

Komischerweise funktioniert es aber in meinem Testdokument nach wie vor.

Hast Du evt. noch eine Lösung dafür, müsste das eigentlich heute Nacht fertig bekommen :-)

Liebe Grüße
OkidokiB.
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Absoluter Neuling braucht etwas Hilfe :-)

Beitrag von mikeleb »

Hallo,
das Dokument hat vielleicht kein Formular namens "MainForm" oder es enthält keine Elemente oder ...
Gruß,
mikeleb
Antworten