Ich brauche eine anleitung um in OO einen makro zu proggen
Moderator: Moderatoren
Hey totila,
geh mal ganz an den Anfang dieses Threads, dort hatte ich dir die "Rechnungsvorlage" von der AMT-Seite empfohlen. Das kann ich nur wiederholen. Die erfüllt genau deine Anforderungen.
1. ist diese recht gut dokumentiert
2. kannst du dir dort den Code ansehen und deine benötigten Teile herauslesen, kopieren, lernen etc.
Und wenn es dann noch Detailfragen gibt, so kannst du hier fragen. Das hilft dir sicher mehr, als so ein "Rundumschlag" "...wie geht das...".
Viele Grüße
Thomas
geh mal ganz an den Anfang dieses Threads, dort hatte ich dir die "Rechnungsvorlage" von der AMT-Seite empfohlen. Das kann ich nur wiederholen. Die erfüllt genau deine Anforderungen.
1. ist diese recht gut dokumentiert
2. kannst du dir dort den Code ansehen und deine benötigten Teile herauslesen, kopieren, lernen etc.
Und wenn es dann noch Detailfragen gibt, so kannst du hier fragen. Das hilft dir sicher mehr, als so ein "Rundumschlag" "...wie geht das...".
Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
ok ich schaff es nicht
Bitte um hilfe
/edit
das habe ich schon aber funkrioniert nicht.
Die variable im Dokument heißt "feldname" und im dialog das textfeld "Name". ich weiß einfach nicht mehr weiter.


Bitte um hilfe
/edit
Code: Alles auswählen
Dim oDialog1 as Object
Sub StartDialog
BasicLibraries.LoadLibrary("Tools")
oDialog1 = LoadDialog("Standard", "Dialog1")
oDialog1.Execute()
end sub
Sub endeDialog
oDoc = thisComponent
oDialog1.getControl("Name").text = getVariable(oDoc, "feldname")
sEintrag = oDlg.getControl("Name").text
oDialog1.EndExecute()
End Sub
Die variable im Dokument heißt "feldname" und im dialog das textfeld "Name". ich weiß einfach nicht mehr weiter.
-
- *
- Beiträge: 15
- Registriert: Di, 31.10.2006 12:59
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
..doch, das wissen einige.
Suche doch mal in den Beispielen, die das Thema hier schon mehrfach besprochen haben.
Dein Code verrät uns ausserdem nicht, wie die Funktion getVariable() gestrickt ist....
Suche doch mal in den Beispielen, die das Thema hier schon mehrfach besprochen haben.
Dein Code verrät uns ausserdem nicht, wie die Funktion getVariable() gestrickt ist....
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
ich habe einiges (alles) aus mehrereen büchern.
ok sagen wir wir arbeiten ab jetzt mit dem code
der nur einfach das dialog auffruft und dan auf ein klick auf ok wieder schliesst. Wie kann ich jetzt den Text aus den Textfelder aus dem Dialog in das dokumnet einfügen?????
ok sagen wir wir arbeiten ab jetzt mit dem code
Code: Alles auswählen
Dim oDialog1 as Object
Sub StartDialog
BasicLibraries.LoadLibrary("Tools")
oDialog1 = LoadDialog("Standard", "Dialog1")
oDialog1.Execute()
end sub
Sub endeDialog
oDialog1.EndExecute()
End Sub
-
- Beiträge: 8
- Registriert: Mo, 20.09.2004 21:10
Auch auf die Gefahr, dass ich mich wiederhole: ich würde das nicht mit Makros machen, sondern einfach die Feldfunktionen nutzen. Das ist einfacher und muss nicht programmiert werden. Zur Verdeutlichung mal ein Beispiel:
Angeommen, du brauchst für einen Brief die Anrede (Herrn/Frau), den Vornamen und den Nachnamen. Alle Daten sollen über ein Eingabefenster eingegeben und dann im Text benutzt werden. Du gehst wie folgt vor:
Im Menu "Einfügen" den Eintrag "Feldbefehl" aufrufen, dort "Andere". In dem sich öffnenden Fenster klickst du auf den Reiter "Variablen" und wählst dort die Funktion "Variable setzen (linkes Fenster). Unten im Feld "Name" weist du der Variable einen Namen zu (Beispiel: NAME), im Feld "Wert" gibst du einen Wert ein (den kannst du später wieder löschen, wird zunächst zum Anlegen der Variable benötigt - Beispiel: MEIER). Im Fenster rechts wählst du ein Format (Beispiel: TEXT). Dann klickst du auf "Einfügen". Anschließend verlässt du das Menu und gehst mit dem Cursor an die Stelle im Text, an der die Variable NAME eingefügt werden soll. Dort rufst du wieder Einfügen/Feldbefehl/Andere/Variablen auf und wählst die Funktion "Eingabefeld". Im mittleren Bereich (Auswahl) wird dir nun deinen Variable angezeigt, die markiert sein sollte. Du richtest also für diese Variable ein Eingabefeld ein. Dazu gibst du unten bei "Hinweis" einen Hinweistext für den Nutzer ein (Beispiel: "Bitte Nachnamen eingeben:"). Mit "Einfügen" schließt du die Aktion ab. Das Gleiche wiederholst du dann für die übrigen Variablen. Wenn du das Dokument jetzt als Textdokumentvorlage (.ott) speicherst , wird beim nächsten Aufruf ein Eingabefenster eingeblendet, in dem die einzelnen Variablen in der Reihenfolge, in der sie im Text vorkommen, abgearbeitet werden.
Ist IMO wesentlich einfacher als eine Lösung über Makros.
Angeommen, du brauchst für einen Brief die Anrede (Herrn/Frau), den Vornamen und den Nachnamen. Alle Daten sollen über ein Eingabefenster eingegeben und dann im Text benutzt werden. Du gehst wie folgt vor:
Im Menu "Einfügen" den Eintrag "Feldbefehl" aufrufen, dort "Andere". In dem sich öffnenden Fenster klickst du auf den Reiter "Variablen" und wählst dort die Funktion "Variable setzen (linkes Fenster). Unten im Feld "Name" weist du der Variable einen Namen zu (Beispiel: NAME), im Feld "Wert" gibst du einen Wert ein (den kannst du später wieder löschen, wird zunächst zum Anlegen der Variable benötigt - Beispiel: MEIER). Im Fenster rechts wählst du ein Format (Beispiel: TEXT). Dann klickst du auf "Einfügen". Anschließend verlässt du das Menu und gehst mit dem Cursor an die Stelle im Text, an der die Variable NAME eingefügt werden soll. Dort rufst du wieder Einfügen/Feldbefehl/Andere/Variablen auf und wählst die Funktion "Eingabefeld". Im mittleren Bereich (Auswahl) wird dir nun deinen Variable angezeigt, die markiert sein sollte. Du richtest also für diese Variable ein Eingabefeld ein. Dazu gibst du unten bei "Hinweis" einen Hinweistext für den Nutzer ein (Beispiel: "Bitte Nachnamen eingeben:"). Mit "Einfügen" schließt du die Aktion ab. Das Gleiche wiederholst du dann für die übrigen Variablen. Wenn du das Dokument jetzt als Textdokumentvorlage (.ott) speicherst , wird beim nächsten Aufruf ein Eingabefenster eingeblendet, in dem die einzelnen Variablen in der Reihenfolge, in der sie im Text vorkommen, abgearbeitet werden.
Ist IMO wesentlich einfacher als eine Lösung über Makros.

-
- Beiträge: 8
- Registriert: Mo, 20.09.2004 21:10
das klapptnicht
ok ich habe ein variable gemacht und die heißt Name und zum einfügen muss amn der ja einen wert geben. Bei mir heißt die Max. wenn ich dannauf hinzufügen klicke kommt ein text im dokument mit dem Namen Max. Dan mache ich ein eigabefehld. Komentar ist Vorname und klcike hinzufügen dann kommt ein fenster da schreibe ich nciht rein und clicke ok. speicher es as OTT und öffne es.
dan kommt ein fenster und ich tippe dan Totila ein und im Dokument steht dann MaxTotila
aber ich will das gar nicht so machen
totila
ok ich habe ein variable gemacht und die heißt Name und zum einfügen muss amn der ja einen wert geben. Bei mir heißt die Max. wenn ich dannauf hinzufügen klicke kommt ein text im dokument mit dem Namen Max. Dan mache ich ein eigabefehld. Komentar ist Vorname und klcike hinzufügen dann kommt ein fenster da schreibe ich nciht rein und clicke ok. speicher es as OTT und öffne es.
dan kommt ein fenster und ich tippe dan Totila ein und im Dokument steht dann MaxTotila
aber ich will das gar nicht so machen
totila
-
- Beiträge: 8
- Registriert: Mo, 20.09.2004 21:10
Wenn du mit [STRG]+F9 die Feldnamen einblendest, müsste er in deinem Fall Folgendes anzeigen:
Variable setzen Name = Max Eingabefeld (Variable) Name =
Die erste Eingabe (das Setzen der Variable) kannst du wieder löschen. Um eine neue Variable zu definieren, musst du ihr zuerst einen Wert zuweisen. Der wird dann mit der Funktion "Variable setzen" ins Dokument geschrieben. Das brauchst du danach aber nicht mehr. Im Prinzip kannst du zuerst alle Variablen definieren und anschließend im Text den ganzen Kram wieder löschen. Und dann die Eingabefelder machen, die Variablen hast du ja jetzt. Natürlich kannst du auch erst die Eingabefelder machen und dann das Setzen der Variablen wieder löschen. Ist egal welche Reihenfolge, wichtig ist nur: die "Variable setzen"-Befehle löschen, die "Eingabefeld"-Befehle stehenlassen.
BTW kannst du über die Funktion "Variable anzeigen" den Inhalt einer per Eingabefeld (oder Definition) belegten Variable auch später im Dokument anzeigen. Z. B. gibst du über ein Eingabefeld den Nachnamen ein und zeigst ihn oben bei der Anschrift an. Für die Anrede weiter unten brauchst du ihn dann wieder. Hier machst du natürlich kein neues Eingabefeld sondern fügst den Befehl "Variable anzeigen" für die betr. Variable ein. Du kannst auch die Eingabefelder alle in einen gesonderten Bereich (Definition über Einfügen/Bereich) bringen, diesen dann ausblenden und anschließend nur noch mit "Variable anzeigen" arbeiten. Das hätte den Vorteil, dass du die Reihenfolge der Eingabefelder beliebig festlegen kannst (nicht zwangsläufig in der Reihenfolge, in der sie im Brief vorkommen). Der Anwender kriegt davon nichts mit, wenn du diesen Bereich anschließend ausblendest (über Format/Bereiche).
Variable setzen Name = Max Eingabefeld (Variable) Name =
Die erste Eingabe (das Setzen der Variable) kannst du wieder löschen. Um eine neue Variable zu definieren, musst du ihr zuerst einen Wert zuweisen. Der wird dann mit der Funktion "Variable setzen" ins Dokument geschrieben. Das brauchst du danach aber nicht mehr. Im Prinzip kannst du zuerst alle Variablen definieren und anschließend im Text den ganzen Kram wieder löschen. Und dann die Eingabefelder machen, die Variablen hast du ja jetzt. Natürlich kannst du auch erst die Eingabefelder machen und dann das Setzen der Variablen wieder löschen. Ist egal welche Reihenfolge, wichtig ist nur: die "Variable setzen"-Befehle löschen, die "Eingabefeld"-Befehle stehenlassen.

BTW kannst du über die Funktion "Variable anzeigen" den Inhalt einer per Eingabefeld (oder Definition) belegten Variable auch später im Dokument anzeigen. Z. B. gibst du über ein Eingabefeld den Nachnamen ein und zeigst ihn oben bei der Anschrift an. Für die Anrede weiter unten brauchst du ihn dann wieder. Hier machst du natürlich kein neues Eingabefeld sondern fügst den Befehl "Variable anzeigen" für die betr. Variable ein. Du kannst auch die Eingabefelder alle in einen gesonderten Bereich (Definition über Einfügen/Bereich) bringen, diesen dann ausblenden und anschließend nur noch mit "Variable anzeigen" arbeiten. Das hätte den Vorteil, dass du die Reihenfolge der Eingabefelder beliebig festlegen kannst (nicht zwangsläufig in der Reihenfolge, in der sie im Brief vorkommen). Der Anwender kriegt davon nichts mit, wenn du diesen Bereich anschließend ausblendest (über Format/Bereiche).
danke für deine hilfe
aber ich möchte es doh etwas "profihafter" machen
es soll sich ein Dialog(Fenster) öffnen und dann kann man da alles eintragen und dann fügt er es an der richtigen stelle im Dokument ein.
Ich habe schon das dialog gezeichnet und den code geschrieben der es öffnet und schlisst aber ich muss halt die texte in das dokument kriegen
aber ich möchte es doh etwas "profihafter" machen
es soll sich ein Dialog(Fenster) öffnen und dann kann man da alles eintragen und dann fügt er es an der richtigen stelle im Dokument ein.
Ich habe schon das dialog gezeichnet und den code geschrieben der es öffnet und schlisst aber ich muss halt die texte in das dokument kriegen