Gelöst: Macro Probleme mit 2.3?

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

Moderator: Moderatoren

agrupe
****
Beiträge: 108
Registriert: Do, 08.12.2005 17:23

Gelöst: Macro Probleme mit 2.3?

Beitrag von agrupe »

Hi,

habrt Ihr auch so viele Probleme nach der Umstellung wie ich?

Ich bin von 2.2.1 auf 2.3 (Suse 10.2) gewechselt, mittlerweile aber zurück gegangen.

a) Viele Macros werden sporadisch nicht mehr gefunden, d.h. es kommt eine Meldung "no macro" aber wenn man oo mehrfach öffnet, schießt usw geht es irgendwann
b) Der Currency Formatstring geht nicht mehr, das Ergebnis ist ein Leerstring

Ich hatte mir gewünscht, mit den neuen Reportingtools arbeiten zu können aber da warte ich lieber noch mal bis 2.3.1 ;-)

Grüße aus Hannover!

Andreas
Zuletzt geändert von agrupe am Mo, 15.10.2007 15:50, insgesamt 1-mal geändert.
OO 3.2 unter OpenSuse 11
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Macro Probleme mit 2.3?

Beitrag von komma4 »

agrupe hat geschrieben:habrt Ihr auch so viele Probleme nach der Umstellung wie ich?
Nein, noch keine festgestellt - aber auch noch keine "umfassenden" Tests gefahren, nur die Sachen, die ich für den Alltagsgebrauch täglich nutze getestet.
Auch auf der englischen Liste sind mir jetzt keine Nachrichten mit Tenor "Makros gehen nicht" präsent.

Du hast von der OOo-Seite (oder einem mirror) die "offiziellen" RPMs geladen und upgedated? Oder eine Neuinstallation ausgeführt? Dann: wie die Makros portiert? Oder Dein "altes" user-Verzeichnis auf die neue Installation kopiert?....
agrupe hat geschrieben:a) Viele Macros werden sporadisch nicht mehr gefunden, d.h. es kommt eine Meldung "no macro" aber wenn man oo mehrfach öffnet
Wie werden die Makros aufgerufen: über's Menü, aus anderen Makros, von Schaltflächen oder Tastenkombinationen?
agrupe hat geschrieben:b) Der Currency Formatstring geht nicht mehr, das Ergebnis ist ein Leerstring
Bitte ein Code-Beispiel, damit manN das nachvollziehen kann (configurationprovider? I18N?)

Du kannst natürlich auch direkt issues erfassen (wenn noch nicht von anderen passiert).
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)
agrupe
****
Beiträge: 108
Registriert: Do, 08.12.2005 17:23

Re: Macro Probleme mit 2.3?

Beitrag von agrupe »

Hi,

die betroffenen Macros werden z.B. über die Methode "beim Laden" ausgeführt. Hier wird einfach ein Macro, dass auf den letzten Datensatz positioniert ausgeführt. Dieses Macro habe ich mit dem Recorder aufgenommen. Habe auch versucht, das Macro neu in 2.3 aufzunehmen, der generierte Code ist aber völlig identisch.

Ein weiteres Macro wird aufgerufen, wenn ein Feld einer Tabelle verlassen wird (Methode "Nach dem Aktualisieren"). Ich habe auch gedacht, er findet die Macros halt einfach nicht und habe sie daher explizit in der Aufrufmethode gelöscht und neu erfasst aber leider ohne Erfolg.


Das Currency Problem ist wie folgt:

Vorher:
aTabInh(i,3)=Format(dPreis,"Currency") Ergebnis: Leerstring in 2.3 und z.B. 2,50 € in 2.2.1
Jetzt (workaround):
aTabInh(i,3)=Format(dPreis,"###0.00")&" €"

Wie gesagt - zurück zu 2.2.1 und alles läuft wieder einwandfrei. Installiert habe ich von der oo Website. In Yast dann alle alten Komponenten von oo löschen und gemäß Handbuch die neue Version installiert.

Leider habe ich nicht die Zeit, alle Funktionen meiner SW neu zu testen, bin halt nur etwas überrascht gewesen und gehe daher jetzt erst mal "auf Nummer sicher".
Ich werde demnächst mal ausführlichere Tests in meiner virtual box fahren.

Gruß

Andreas
OO 3.2 unter OpenSuse 11
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Macro Probleme mit 2.3?

Beitrag von komma4 »

Andreas,

onLoad-Makros funktionieren hier bei bei Dokumenten, die in 2.2.1 oder 2.3.0 erstellt wurden. Damit scheint es am verwendeten dispatcher-Code zu liegen: welche Aufgabe soll erfüllt werden?
Kannst Du ein, zwei Beispiele zeigen.
Oder es liegt an der Einstellung der Makrosicherheit: hier wurde bei 2.3.0 geändert, wie steht Dein Schalter?

ja:
aTabInh(i,3)=Format(dPreis,"Currency") liefert ein fehlerhaftes Ergebnis. Was geht ist das Verwenden der Calc-Zellformatierung durch Setzen des gewünschten Nummernformats:

Code: Alles auswählen

Sub calc_FormatCurreny

' holen Zahlenformat: Currency
oFormate = ThisComponent.getNumberFormats()
oLocale = createUnoStruct( "com.sun.star.lang.Locale" )
nCurrencyKey = _
 oFormate.getStandardFormat( _
  com.sun.star.util.NumberFormat.CURRENCY, oLocale )

' holen Zelle D2
oZelle = _
 ThisComponent.Sheets.getByName( _
  "Tabelle1" ).getCellByPosition( 3,1 ) 'D2
oZelle.setPropertyValue( "NumberFormat" , nCurrencyKey )
Tipp: Die Eigenschaft lässt sich auch bei einem Range setzen, sodass Du keine Schleife über Zeilen programmieren muss; das ist auch schneller.

Hilft das weiter?
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)
agrupe
****
Beiträge: 108
Registriert: Do, 08.12.2005 17:23

Re: Macro Probleme mit 2.3?

Beitrag von agrupe »

Hi,

das Problem mit dem Currency Formatbezeichner hatte ich ja schon umgangen.
Hier mal ein screenshot des Fehlers (hoffentlich klappts). Er tritt sowohl unter Win XP als auch unter Linux Suse 10.2 auf:

Bild

Das Script ist wie gesagt mit dem Macrorecorder aufgenommen worden, sieht unter 2.2. und 2.3 absolut identisch aus.

Wenn ich danach das Formular beende (nicht die Datenbank) und sofort danach erneut aufrufe, klappt es ohne jedes Problem. Für mich sieht das nach einem Timing-Problem in oo aus.

Gruß

Andreas
OO 3.2 unter OpenSuse 11
agrupe
****
Beiträge: 108
Registriert: Do, 08.12.2005 17:23

Re: Macro Probleme mit 2.3?

Beitrag von agrupe »

Hi,

ich habe es noch weiter ausprobiert und komme jetzt zu dem Verhalten:

1) Aufruf der Datenbank
2) Formular in Bearbeiten-Mode öffnen
3) z.B. auf einen Button klicken und ein anderes Macro versuchen zuzuweisen
==> Huch, es werden nur noch die Standardmacros angezeigt, nicht jedoch die, die im Dokument gespeichert sind

Nun
1) wie oben
2) Formular ausführen ==> Ok, die beschriebene Fehlermeldung taucht auf, da das Macro nicht gefunden wird
3) Formular schliessen
4) Formular erneut aufrufen
==> Hurra, alles klappt.

Hat jemand eine Idee, wann OO ein im Dokument befindliches Macro nicht anzeigt?
Meine Einstellungen für Macrosicherheit sind z.Zt. "Immer ohne Nachfragen öffnen" aber auch mit "Nachfragen" taucht der gleiche Fehler auf.

Gruß

Andeas
OO 3.2 unter OpenSuse 11
ghostwriter
**
Beiträge: 35
Registriert: Mo, 17.09.2007 14:48

Re: Macro Probleme mit 2.3?

Beitrag von ghostwriter »

Hallo Zusammen,

das hat die Welt noch nicht erlebt. Bei mir zickt OO.o 2.3 unter XP auch total rum.
Selbst bei einem einfachen Makro ohne Schnick-Schnack gibt es Probleme.

Code: Alles auswählen

sub Farbtabelle_Neu1
myDoc = thisComponent
mySheet = myDoc.Sheets(2)
	z = 0
	for i = 0 to 9
	ozell1 =mysheet.getcellbyposition(1,z)
	myColor1=ozell1.String
	ozell2 =mysheet.getcellbyposition(2,z)
	ozell2.cellbackcolor = myColor1
	z = z + 1
	next i
end sub
Hier wird gemeckert: Variable nicht definiert

Code: Alles auswählen

myDoc = thisComponent
Definiere ich die Variable dann kommt der nächste Meckerer bei:

Code: Alles auswählen

z = 0
mit: Variable nicht definiert
usw. ...................


Das kuriose an der Sache ist, wenn ich genau das selbe Makro in ein anderes Modul reinpacke dann läuft es.

Jakob
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Macro Probleme mit 2.3?

Beitrag von komma4 »

agrupe hat geschrieben:nur noch die Standardmacros angezeigt, nicht jedoch die, die im Dokument gespeichert sind
Das liegt wohl daran, dass in/an einem BASE-Dokument keine Makros gespeichert werden....
agrupe hat geschrieben:4) Formular erneut aufrufen
==> Hurra, alles klappt.
? Ist das Makro vielleicht doch vorhanden? In der Standard-Bibliothek.
Dann liegt's vielleicht daran, dass bspw. ThisComponent durch ein BASE-Dokument nicht gesetzt wird, bei einem Formular aber schon...

Rätselnd, was Du da tust...
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)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Macro Probleme mit 2.3?

Beitrag von komma4 »

ghostwriter hat geschrieben:Das kuriose an der Sache ist, wenn ich genau das selbe Makro in ein anderes Modul reinpacke dann läuft es.
Jakob,
das hört sich nach der Beschreibung aber so an, als ob Du in der ersten Bibliothek ein Modul mit der Anweisung Option Explicit hast. Damit müssen alle Variablen in den Makros deklariert werden.
Verschiebst Du das Modul in ein eine andere Bibliothek, dann ist die Deklaration nicht nötig - die Fehlermeldungen erscheinen nicht mehr.
HTH


Edited: night time typos extinguished
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)
agrupe
****
Beiträge: 108
Registriert: Do, 08.12.2005 17:23

Re: Macro Probleme mit 2.3?

Beitrag von agrupe »

Hi Winfried,

wie geschrieben, sind meine Macros im Formular innerhalb der DB. Dort werden Sie nach der Fehlermeldung (s.o.) ja auch beim 2. Versuch anstandslos gefunden. Und nachdem ich heute wieder mal auf 2.2 zurück bin, läuft wieder alles. Die Applikation ist seit 6 Monaten unter 2.2 stabil.

Ich wundere mich auch ...

Gruß

Andreas
OO 3.2 unter OpenSuse 11
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Macro Probleme mit 2.3?

Beitrag von komma4 »

agrupe hat geschrieben:wie geschrieben, sind meine Macros im Formular innerhalb der DB
Du meinst die Fehlermeldung mit dem screenshot vom 25.09.?
Von dort werden die Makros aufgerufen, befinden sich aber in der STANDARD-Bibliothek der Installation --- ein BASE-Dokument kann (aktuell?!) keine Makros beinhalten.

Kannst Du das Makro hier posten? (Oder mir als PM schicken?)

Ich vermute auch ein timing-Problem -Verwendung der Variablen von ThisComponent- die beim ersten Laden (noch) nicht gesetzt ist. Vielleicht finden wir einen workaround...

Andererseits:
* wenn Deine Anwendung unter 2.2.1 läuft,
* ich hier teilweise (mit PostgreSQL als DB) und 2.3.0 auch seltsame Fehlermeldungen habe, wenn ich bestehende Formulare aufrufe ("Tabelle xyz ist nicht vorhanden")
* ich Base-(Formulare!) auch nicht (produktiv) einsetze

...vergessen wir das Ganze vorerst vielleicht besser mal.

Komme ich zeitlich dazu die issues zu sichten und finde keine entsprechenden Meldungen: erfasse ich sie und wir warten auf den Fix. Natürlich kannst auch Du aktiv werden und einen issue erfassen.

Verfahren:
OOo-Projekt Benutzerkennung wird vorausgesetzt
Das Issue Handling ist hier beschrieben.
Fehlerbeschreibung wg. des englischsprachig geführten Projekts in Englisch, bitte; tnx.
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)
ghostwriter
**
Beiträge: 35
Registriert: Mo, 17.09.2007 14:48

Re: Macro Probleme mit 2.3?

Beitrag von ghostwriter »

Hallo Winfried,
komma4 hat geschrieben:das hört sich nach der Beschreibung aber so an, als ob Du in der ersten Bibliothek ein Modul mit der Anweisung Option Explicit hast.
Genau das war es.

Vielen Dank.

Jakob
agrupe
****
Beiträge: 108
Registriert: Do, 08.12.2005 17:23

Re: Macro Probleme mit 2.3?

Beitrag von agrupe »

Hallo Winfried,

ich werde mal eine Meldung aufmachen. Bin ja gespannt, was passiert.

Unter XP konnte ich den Bug fixen:
1) Macrosicherheit auf niedrigste Stufe
2) Macrosicherheit eine Stufe höher
3) Programm ausführen, dann braucht es zu Beginn etwas, da nach der Akzeptanz der Macros gefragt wird, dann läuft das Programm
4) Macrosicherheit wieder eine Stufe runter
5) Und nun läufts. Komisch

Unter Suse 10.3 ging der "Trick" leider nicht. Das ist für mich aber kriegsentscheidend. Und so bleibt's bis auf weiteres halt erst mal bei OO 2.2.1

Melde mich hier im Thread wieder, sobald etwas neues passiert.

Gruß Und Danke für deine Mühe

Andreas
OO 3.2 unter OpenSuse 11
agrupe
****
Beiträge: 108
Registriert: Do, 08.12.2005 17:23

Gelöst: Macro Probleme mit 2.3?

Beitrag von agrupe »

This is reported as issue 81217, and has recently been fixed in the developer
builds (the fix is in m233 and later).

... ok, warten wir mal auf die neue Version.

Andreas
OO 3.2 unter OpenSuse 11
Antworten