Re: [de-users] Zeitschleife für Makroablauf

2020-10-31 Diskussionsfäden Robert Großkopf
Hallo Thomas,
> 
> wenn es nicht fürchterlich eilig ist, warte noch ein wenig mit der
> Umsetzung. Für die 7.1 kommt ne recht interessante, neue
> Makrobibliothek, die unter anderem einen Timer enthält.
> 
> Falls es für Dein Buch ist, wäre eine Einbindung darüber möglicherweise
> sinnvoll.

Den werde ich dann natürlich einbauen. Ist aber erst einmal für jemanden
im OpenOffice.info-Forum. Da bricht der Kontakt zum Datenbankserver von
der Datenbankdatei aus laufend zusammen.

Mit dem folgenden Makro scheine ich das jetzt zumindest beim direkten
Treiber lösen zu können:

-
GLOBAL boStop AS BOOLEAN

SUB Reconnect
DIM oDatasource AS OBJECT
DIM oConnection AS OBJECT
DIM oSQL_Command AS OBJECT
boStop = false
DO
WAIT 1 'Zeitangabe in Millisekunden
oDatasource = thisDatabaseDocument.CurrentController
IF NOT (oDatasource.isConnected()) THEN oDatasource.connect()
oConnection = oDatasource.ActiveConnection()
oSQL_Command = oConnection.createStatement()
oSQL_Command.executeQuery("SELECT NOW()")
LOOP WHILE boStop = false
END SUB

SUB StopConnect
boStop = true
END SUB
--

Die untere Prozedur ist nur der Abschalter. Die Zeile mit IF NOT ...
kann ich vermutlich raus nehmen. Geht ja sowieso nicht, weil Nutzername
und Passwort fehlen.

Inzwischen klappt der Kontakt über gut 15 Minuten tadellos.

JDBC hat ja hier den autoReconnect - aber der direkte Treiber ist doch
echt gewöhnungsbedürftig.

Gruß

Robert
-- 
Homepage: https://www.familiegrosskopf.de/robert


-- 
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy


Re: [de-users] Zeitschleife für Makroablauf

2020-10-31 Diskussionsfäden Thomas Krumbein

Hallo Robert,

wenn es nicht fürchterlich eilig ist, warte noch ein wenig mit der 
Umsetzung. Für die 7.1 kommt ne recht interessante, neue 
Makrobibliothek, die unter anderem einen Timer enthält.


Falls es für Dein Buch ist, wäre eine Einbindung darüber möglicherweise 
sinnvoll.


Schau mal hier ->

On GitLab: https://gitlab.com/LibreOfficiant/scriptforge

der passende mail-Tread lief die Tage auf der libreoffice.dev Liste.

Viele Grüße

Thomas


Am 31.10.2020 um 15:32 schrieb Robert Großkopf:

Hallo Bernd,

das Beispiel macht genau das, was ich eigentlich auch geplant hatte. Ich
war nur davon ausgegangen: Ein einmal laufendes Makro blockiert mir die
anderen Makros. Ist ja gar nicht so, denn das Makro kann über ein
zweites aus der Schleife rausgeholt werden.

So ist das, wenn wir viel über "Lerning by Doing" machen ...

Danke auch an Hans-Werner. Ich werde das jetzt5 so umsetzen, wie f3K das
auch gemacht hat.

Gruß

Robert


--
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy


Re: [de-users] Zeitschleife für Makroablauf

2020-10-31 Diskussionsfäden Robert Großkopf
Hallo Bernd,

das Beispiel macht genau das, was ich eigentlich auch geplant hatte. Ich
war nur davon ausgegangen: Ein einmal laufendes Makro blockiert mir die
anderen Makros. Ist ja gar nicht so, denn das Makro kann über ein
zweites aus der Schleife rausgeholt werden.

So ist das, wenn wir viel über "Lerning by Doing" machen ...

Danke auch an Hans-Werner. Ich werde das jetzt5 so umsetzen, wie f3K das
auch gemacht hat.

Gruß

Robert
-- 
Homepage: https://www.familiegrosskopf.de/robert


-- 
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy


Re: [de-users] Zeitschleife für Makroablauf

2020-10-31 Diskussionsfäden Bernd Obermayr
Robert Großkopf schrieb am 31.10.20 um 10:57:
> Hallo *,
> 
> ich stehe vor dem Problem, dass der Kontakt zu einer Datenbank im Netz
> abhängig ist von der wait_timeout-Einstellung des Servers. Wird eine
> Zeit lang nichts mehr an Daten angefordert, so verliert z.B. MySQL mit
> dem direkten Treiber den Kontakt und die Datenbankdatei muss geschlossen
> und neu gestartet werden. Unter JDBC lässt sich so etwas mit
> autoReconnect=true vermeiden, erfordert aber auch erst einmal einen
> vorübergehenden Verbindungsabbruch.
> 
> Da habe ich mir gedacht: Schickst Du doch einfach in bestimmten
> Zeitabständen automatisch eine kleine Abfrage wie SELECT NOW() zum
> Server und die Verbindung bleibt bestehen. Nur: Wie mache ich so eine
> Zeitschleife auf, ohne mir den Ablauf weiterer Makros unmöglich zu machen?
> 
> Gruß
> 
> Robert
> 
Hi Robert,
ich würde da an einen Timer-event denken. Weiss nicht obs bei LO / UNO / ..
sowas gibt. Ich glaube bei VBA gabs sowas. Eventuell hilft Dir aber

Schau Dir dort mal Countdown.ods an

-- 
Gruss
  Bernd


-- 
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy


Re: [de-users] Zeitschleife für Makroablauf

2020-10-31 Diskussionsfäden OoOHWHOoO

Hallo Robert,

eine letzte Möglichkeit, die mir einfällt:

Externer Makro-Aufruf (wie in meiner ersten Mail beschrieben) gesteuert 
über CronTab, gibt es sowohl in LINUX als auch in WINDOWS.


Das Passwort kann man auch notfalls mit einem kleinen Makro im Makro 
"versteckt erzeugen". Ist zwar nicht der "Königsweg", aber besser als es 
direkt anzugeben.


Viele Grüße
Hans-Werner :-))

-- Originalnachricht --
Von: "OoOHWHOoO" 
An: "users@de.libreoffice.org" 
Gesendet: 31.10.2020 12:52:12
Betreff: Re: [de-users] Zeitschleife für Makroablauf


Hallo Robert,

aus Deiner ersten Beschreibung war der Kontext nicht umfassend ersichtlich.

Wo man noch schauen könnte:

https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1system_1_1SystemShellExecute.html

oder

10.12. UNO-Listeners und Handlers
http://www.uni-due.de/~abi070/count.php?id=OOME_3_0_deutsch.odt
http://www.uni-due.de/~abi070/count.php?id=OOME_3_0_deutsch.pdf

Aber zu beiden Möglichkeiten (s.o.) habe ich leider keinerlei Erfahrungswerte 
...

Viele Grüße
Hans-Werner :-))

-- Originalnachricht --
Von: "Robert Großkopf" 
An: users@de.libreoffice.org
Gesendet: 31.10.2020 12:10:54
Betreff: Re: [de-users] Zeitschleife für Makroablauf


Hallo Hans-Werner,


 eine Möglichkeit wäre mit einem externen Programm in bestimmten
 Zeitabständen ein Makro extern aufzurufen. Wenn ich mich recht erinnere,
 arbeitest Du ja mit LINUX, so könnte man mit einem kleinen BASH-Skript
 so eine Schleife programmieren und in der Schleife extern ein Makro
 aufrufen. Und wenn Du das mit einem parallel installierten LO machst,
 dann ist Dein Standard-LO völlig unbeteiligt.


Natürlich ginge so etwas. Nur ist das dann nichts für Normaluser und
systemübergreifend. Außerdem gäbe das dann zusätzlich das Problem, dass
die Verbindung ja nicht die gleiche ist. Und da das dann noch verdeckt
erfolgen soll müsste ich sogar das Benutzerpasswort in Reinschrift im
Makro stehen haben.

Ich bin bisher überhaupt nicht in die Verlegenheit gekommen, Base für
solche Zwecke zu nutzen. Da baue ich mir lieber mit PHP-Scripten ein
Formular zusammen. Aber es gibt eben Leute, die das mit den Scripten
nicht hin bekommen und gerade zur Vereinfachung hier Base nutzen wollen.
Und da ist es ja blöd, wenn die Treiber das zwar lokal gut hin bekommen,
für den Webgebrauch aber nur bedingt geeignet sind.

Deswegen müsste der Timer irgendwo in LO selbst schlummern und zu
bestimmten Zeiten aufwachen und die kurze Prozedur starten, nachdem der
Kontakt hergestellt wurde. Und dazu fehlt mir der zündende möglichst
einfache Gedanke.

Gruß

Robert
--
Homepage: https://www.familiegrosskopf.de/robert


--
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

-- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

--
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy


Re: [de-users] Zeitschleife für Makroablauf

2020-10-31 Diskussionsfäden OoOHWHOoO

Hallo Robert,

aus Deiner ersten Beschreibung war der Kontext nicht umfassend 
ersichtlich.


Wo man noch schauen könnte:

https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1system_1_1SystemShellExecute.html

oder

10.12. UNO-Listeners und Handlers
http://www.uni-due.de/~abi070/count.php?id=OOME_3_0_deutsch.odt
http://www.uni-due.de/~abi070/count.php?id=OOME_3_0_deutsch.pdf

Aber zu beiden Möglichkeiten (s.o.) habe ich leider keinerlei 
Erfahrungswerte ...


Viele Grüße
Hans-Werner :-))

-- Originalnachricht --
Von: "Robert Großkopf" 
An: users@de.libreoffice.org
Gesendet: 31.10.2020 12:10:54
Betreff: Re: [de-users] Zeitschleife für Makroablauf


Hallo Hans-Werner,


 eine Möglichkeit wäre mit einem externen Programm in bestimmten
 Zeitabständen ein Makro extern aufzurufen. Wenn ich mich recht erinnere,
 arbeitest Du ja mit LINUX, so könnte man mit einem kleinen BASH-Skript
 so eine Schleife programmieren und in der Schleife extern ein Makro
 aufrufen. Und wenn Du das mit einem parallel installierten LO machst,
 dann ist Dein Standard-LO völlig unbeteiligt.


Natürlich ginge so etwas. Nur ist das dann nichts für Normaluser und
systemübergreifend. Außerdem gäbe das dann zusätzlich das Problem, dass
die Verbindung ja nicht die gleiche ist. Und da das dann noch verdeckt
erfolgen soll müsste ich sogar das Benutzerpasswort in Reinschrift im
Makro stehen haben.

Ich bin bisher überhaupt nicht in die Verlegenheit gekommen, Base für
solche Zwecke zu nutzen. Da baue ich mir lieber mit PHP-Scripten ein
Formular zusammen. Aber es gibt eben Leute, die das mit den Scripten
nicht hin bekommen und gerade zur Vereinfachung hier Base nutzen wollen.
Und da ist es ja blöd, wenn die Treiber das zwar lokal gut hin bekommen,
für den Webgebrauch aber nur bedingt geeignet sind.

Deswegen müsste der Timer irgendwo in LO selbst schlummern und zu
bestimmten Zeiten aufwachen und die kurze Prozedur starten, nachdem der
Kontakt hergestellt wurde. Und dazu fehlt mir der zündende möglichst
einfache Gedanke.

Gruß

Robert
--
Homepage: https://www.familiegrosskopf.de/robert


--
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

--
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy


Re: [de-users] Zeitschleife für Makroablauf

2020-10-31 Diskussionsfäden Robert Großkopf
Hallo Hans-Werner,

> eine Möglichkeit wäre mit einem externen Programm in bestimmten
> Zeitabständen ein Makro extern aufzurufen. Wenn ich mich recht erinnere,
> arbeitest Du ja mit LINUX, so könnte man mit einem kleinen BASH-Skript
> so eine Schleife programmieren und in der Schleife extern ein Makro
> aufrufen. Und wenn Du das mit einem parallel installierten LO machst,
> dann ist Dein Standard-LO völlig unbeteiligt.

Natürlich ginge so etwas. Nur ist das dann nichts für Normaluser und
systemübergreifend. Außerdem gäbe das dann zusätzlich das Problem, dass
die Verbindung ja nicht die gleiche ist. Und da das dann noch verdeckt
erfolgen soll müsste ich sogar das Benutzerpasswort in Reinschrift im
Makro stehen haben.

Ich bin bisher überhaupt nicht in die Verlegenheit gekommen, Base für
solche Zwecke zu nutzen. Da baue ich mir lieber mit PHP-Scripten ein
Formular zusammen. Aber es gibt eben Leute, die das mit den Scripten
nicht hin bekommen und gerade zur Vereinfachung hier Base nutzen wollen.
Und da ist es ja blöd, wenn die Treiber das zwar lokal gut hin bekommen,
für den Webgebrauch aber nur bedingt geeignet sind.

Deswegen müsste der Timer irgendwo in LO selbst schlummern und zu
bestimmten Zeiten aufwachen und die kurze Prozedur starten, nachdem der
Kontakt hergestellt wurde. Und dazu fehlt mir der zündende möglichst
einfache Gedanke.

Gruß

Robert
-- 
Homepage: https://www.familiegrosskopf.de/robert


-- 
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy


Re: [de-users] Zeitschleife für Makroablauf

2020-10-31 Diskussionsfäden OoOHWHOoO

Hallo Robert,

eine Möglichkeit wäre mit einem externen Programm in bestimmten 
Zeitabständen ein Makro extern aufzurufen. Wenn ich mich recht erinnere, 
arbeitest Du ja mit LINUX, so könnte man mit einem kleinen BASH-Skript 
so eine Schleife programmieren und in der Schleife extern ein Makro 
aufrufen. Und wenn Du das mit einem parallel installierten LO machst, 
dann ist Dein Standard-LO völlig unbeteiligt.


Das Nachfolgende ist eine WINDOWS-Batch mit den LO-Aufrufen. 
"CoronaNews" ist das Makro-Modul und "Main" ist das aufzurufende Makro, 
der Rest ist selbsterklärend:


@ECHO OFF

REM »LibreOffice« Standard-Installation:
REM SET L="C:\Program Files\LibreOffice\program/soffice.exe"

REM »LibreOffice« Parallel-Installation:
SET L="E:\LOP\LibreOffice 6.4.7.2\program\soffice.exe"

SET M="macro:///Standard.CoronaNews.Main"
%L% --nologo %M%

Vielleicht hilft Dir das weiter.

Viele Grüße
Hans-Werner


-- Originalnachricht --
Von: "Robert Großkopf" 
An: users@de.libreoffice.org
Gesendet: 31.10.2020 10:57:23
Betreff: [de-users] Zeitschleife für Makroablauf


Hallo *,

ich stehe vor dem Problem, dass der Kontakt zu einer Datenbank im Netz
abhängig ist von der wait_timeout-Einstellung des Servers. Wird eine
Zeit lang nichts mehr an Daten angefordert, so verliert z.B. MySQL mit
dem direkten Treiber den Kontakt und die Datenbankdatei muss geschlossen
und neu gestartet werden. Unter JDBC lässt sich so etwas mit
autoReconnect=true vermeiden, erfordert aber auch erst einmal einen
vorübergehenden Verbindungsabbruch.

Da habe ich mir gedacht: Schickst Du doch einfach in bestimmten
Zeitabständen automatisch eine kleine Abfrage wie SELECT NOW() zum
Server und die Verbindung bleibt bestehen. Nur: Wie mache ich so eine
Zeitschleife auf, ohne mir den Ablauf weiterer Makros unmöglich zu machen?

Gruß

Robert
--
Homepage: https://www.familiegrosskopf.de/robert


--
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

--
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy


[de-users] Zeitschleife für Makroablauf

2020-10-31 Diskussionsfäden Robert Großkopf
Hallo *,

ich stehe vor dem Problem, dass der Kontakt zu einer Datenbank im Netz
abhängig ist von der wait_timeout-Einstellung des Servers. Wird eine
Zeit lang nichts mehr an Daten angefordert, so verliert z.B. MySQL mit
dem direkten Treiber den Kontakt und die Datenbankdatei muss geschlossen
und neu gestartet werden. Unter JDBC lässt sich so etwas mit
autoReconnect=true vermeiden, erfordert aber auch erst einmal einen
vorübergehenden Verbindungsabbruch.

Da habe ich mir gedacht: Schickst Du doch einfach in bestimmten
Zeitabständen automatisch eine kleine Abfrage wie SELECT NOW() zum
Server und die Verbindung bleibt bestehen. Nur: Wie mache ich so eine
Zeitschleife auf, ohne mir den Ablauf weiterer Makros unmöglich zu machen?

Gruß

Robert
-- 
Homepage: https://www.familiegrosskopf.de/robert


-- 
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy