Seite 1 von 2

Sprungfunktion erstellen

Verfasst: Do 3. Aug 2017, 15:07
von paola93
Hallo Liebe Leute,

Ich beschäftige mich mit LibreOffice und eine Fragebogen zur Programmiren durch Datenbank. Es ist mir sehr wichtig eine Sprungfunktion zu erstellen aber es klappt irgendwie nicht. Vlt. weiß ich nicht so genau alle Steps für eine Sprungfunktion zu erstellen?
Das ist das Script aber ich verstehe nicht wo meine Fehler ist:

SUB JumpToNext(oEvent AS OBJECT)
DIM oField AS OBJECT
DIM oForm AS OBJECT
DIM oDoc AS OBJECT
DIM oController AS OBJECT
DIM oView AS OBJECT
oField = oEvent.Source.Model
IF oField.State = 1 THEN
oForm = oField.Parent
oDoc = thisComponent
oController = oDoc.getCurrentController()
oView = oController.getControl(oForm.getByName(oField.Tag))
oView.setFocus
END IF
END SUB

Ich habe Erfahrung mit Matlab und Javascript aber wenn ich Javascript in LibreOffice zu benutzen versuche, geht es irgendwie nicht. Kann ich script von MatLab in LibreOffice exportieren?! Ich bin leider Anfängerin bei Macrosache ;)

Kann mir jemanden helfen?!

Vielen lieben Dank

Gruß
Paola

Re: Sprungfunktion erstellen

Verfasst: Do 3. Aug 2017, 15:33
von RobertG
Hallo Paola,

die Prozedur geht davon aus, dass sie über ein Markierfeld oder über ein Optionsfeld (rundes Feld, mehrere Optionen alternativ wählbar) ausgelöst wird. Der Status dieses Feldes wird über

Code: Alles auswählen

oField.State = 1
abgefragt. Nur wenn das Feld aktiviert wurde (true/1), dann wird dort der Sprung vollzogen. Ansonsten passiert beim Anklicken des Markierfeldes oder Optionsfeldes nichts.
In den Zusatzinformationen des Markierfeldes ist verzeichnet, nach wohin der Sprung gehen soll.

Code: Alles auswählen

oForm.getByName(oField.Tag)
oField.Tag = Zusatzinformationen des Feldes.
oForm.getByName = Feld, das in dem gleichen Formular liegt. Hier ist der Name des Feldes einzutragen. Den kannst Du über die Feldeigenschaften > Allgemein > Name raus bekommen.

Welche Fehler tauchen denn bei der Prozedur auf, wenn Du sie starten lässt? Wo bleibt die Prozedur stehen?

Gruß

Robert

Re: Sprungfunktion erstellen

Verfasst: Do 3. Aug 2017, 16:32
von paola93
Lieber Robert,

Vielen Dank, das ist sehr hilfsreich!

Es steht dass die Fehler ist hier:

Basic Laufzeitfehler. Das argument ist nicht optional:

oField = oEvent.Source.Model

Gruß

Paola

Re: Sprungfunktion erstellen

Verfasst: Do 3. Aug 2017, 16:49
von RobertG
Hallo Paola,

es sieht so aus, als wolltest Du das Makro über Extras > Makros > Makro ausführen starten. Das Makro versucht aber, über das auslösende Ereignis das Formularelement zu ermitteln. Du musst das Makro also an eins der Ereignisse des Formularelementes binden und dann auf das Element klicken (Ja/Nein-Felder). Schau Dir einmal in dem Dir vorliegenden Beispiel an, an welcher Stelle über das Formularelement das Makro ausgelöst wird.

Gruß

Robert

Re: Sprungfunktion erstellen

Verfasst: Fr 4. Aug 2017, 09:15
von paola93
Hallo Robert,

Vielen Dank. Doch hat jetzt ab sofort geklappt!!!! Dankeschön :)))) Ich habe jetzt das Mechanismus verstanden!

Ich habe noch eine Frage über die Tabelle in Excel und eventuell später in SPSS zu transportieren oder exportieren. Geht es auch über Macro auch? Ich möchte nicht immer Copy Paste machen weil ich viel Daten habe. Ich vermute dass ich auch eine Script programmieren muss. Hast du zufällig eine Beispiel Script oder Tipps und Hinweiese wie funkzuniert es?

Herzlichen Dank!!!

Beste Grüße

Paola

Re: Sprungfunktion erstellen

Verfasst: Fr 4. Aug 2017, 19:31
von RobertG
Hallo Paola,

wenn Du nur eine Möglichkeit suchst, die Daten in eine noch nicht bestehende Tabellenkalkulationsdatei zu bekommen, dann würde ich Dir raten, einen Bericht zu erstellen. Beim Erstellen musst Du darauf achten, dass das Ausgabeformat kein Textdokument, sondern ein Tabellendokument wird.

So einen Bericht kannst Du auch von einem Formular aus über einen Button starten, gegebenenfalls auch direkt mit einem entsprechend zu vergebenden Namen abspeichern.

... oder geht es darum, die Daten für eine Weiterverarbeitung in eine Tabellenkalkulationsdatei zu befördern?

Gruß

Robert

Re: Sprungfunktion erstellen

Verfasst: Mo 7. Aug 2017, 09:20
von paola93
Hallo Robert,

ja, es geht darum, die Daten in einen Tabellenkalkulationsdatei zu befördern. Um genau zu sein, geht es darum, von fünf bis zehn Laptops die Daten am Ende in einer Tabelle zu haben. Da wir in diesem Fall offline arbeiten, müssen wir einen manuellen Weg finden.

Vielen Dank!

Gruß

Paola

Re: Sprungfunktion erstellen

Verfasst: Mo 7. Aug 2017, 10:38
von RobertG
Hallo Paola,

wenn Du das nur zum Schluss einmal brauchst, dann kannst Du auch die jeweiligen Tabellen kopieren (Kontextmenü, wenn Du eine Tabelle markiert hast) und dann in einer Calc-Datei einfügen.

Gruß

Robert

Re: Sprungfunktion erstellen

Verfasst: Mo 7. Aug 2017, 11:05
von paola93
Hallo Robert,

es geht darum, dass wir am Ende jedes Tages von allen 10 Rechnern die Daten exportieren, da sie auf den Endgeräten selber aus Datenschutzgründen gelöscht werden müssen. Aus diesem Grund suchen wir nach einer automatisierten Lösung, auch um Flüchtigkeitsfehler zu vermeiden.

Ich bin Dankbar für alle Ideen oder Denkanstöße,

Liebe Grüße,

Paola

Re: Sprungfunktion erstellen

Verfasst: Mo 7. Aug 2017, 15:16
von RobertG
Hallo Paola,

ich hatte so etwas einmal für die Kopie von einer Datenbank in eine andere hergestellt. Das könnte gegebenenfalls abgewandelt werden. Ich hänge einmal die Beispieldateien an.

In der QuellDB befindet sich ein Makro. Das Makro kopiert die Inhalte der Tabelle der Quelldatenbank in die Tabelle der Zieldatenbank. Gestartet wird das aus dem Formular der Quelldatenbank.

In der Zieldatenbank sollte der Primärschlüssel am besten automatisch geschrieben werden. Das ist bei dem Beispiel nicht der Fall. Auch könnte anschließend die Tabelle in der Quelldatenbank geleert werden, so dass dem Datenschutz genüge getan wird.

Gruß

Robert