CommandButton funktioniert nicht mehr unter Vers. 2.0

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: CommandButton funktioniert nicht mehr unter Vers. 2.0

von Toxitom » Mi, 11.01.2006 13:15

Hey filmore,
wird nach der Umstellung auf 2.0 der große Aufschrei kommen, dass die Dokumente dann nochmals mit der neuen Version angelegt werden müssen.
Nicht neuanlegen! Du kannst die alten doch weiterverwenden. In 2.0 öffnen, als *.odx abspeichern und anschliessend die Dialoge anpassen. Daten gehen keine verloren, die Dateien auch nicht...

Was ich noch gar nicht ausprobiert haben: OOo kommt ja mit einem Dokumentenkonverter - teste doch mal, ob der nicht sogar automatisch die Datei anpasst? (Datei - Assistenten - Dokumentenkonverter...)

Gruss
Thomas

von filmore » Mi, 11.01.2006 12:39

In selbst definierten Dialog-Modellen musst du das leider "per Hand" erledigen.
Das habe ich mir schon gedacht. Nun ist es wohl Gewissheit :(
Das Problem ist, dass wir in der Firma noch vorerst mit der Version 1.1.5 arbeiten müssen bevor auf Vers. 2 umgestellt wird.
Da das Programm in einem Tabellendokument eingebunden ist, welches mit Werten versehen und abgespeichert, zukünftig für Fortschreibungen wieder verwendet wird, wird nach der Umstellung auf 2.0 der große Aufschrei kommen, dass die Dokumente dann nochmals mit der neuen Version angelegt werden müssen.

Mal sehen, was ich mache ...

Ich danke Dir für Deine Unterstützung, Toxitom !

von Toxitom » Mi, 11.01.2006 12:20

Hey filmore,

irgend etwas verheimlichst du mir :wink:

Hab deinen Code gerade mal rüberkopiert und ausprobiert - funktioniert einwandfrei. Konnte auch keinen Fehler entdecken.

Also - wann passiert nichts? Beim Aufruf in der IDE?
Das wäre normal, da die Aufruf-Sub als zweite Routine drinsteht - und in der IDE immer nur die erste ausgeführt wird.

Andererseits - richtig ist natürlich, dass du die Zuweisungen der Buttun in Dialoge der Dialogmodule zu den Ereignissen tatsächlich "anpassen" musst, also am einfachsten bestehende Zuweisungen löschen und neu zuweisen. Die alten funktionieren da nicht mehr.

Das hatte ich beim ersten Post so wohl nicht richtig verstanden und ging von einem Formualr-Button im Dokument aus. Das sollte nämlich auch nach der Konvertierung zu 2.0 funktionieren. In selbst definierten Dialog-Modellen musst du das leider "per Hand" erledigen.

Gruss
Thomas

von filmore » Mi, 11.01.2006 11:46

Hallo Toxitom,

es ist eigentlich ein ganz simples Projekt. In einem Dialog gibt es eine Schaltfläche, die beim Auslösen eine Routine ablaufen lassen soll.
Ich habe also dem CommandButton in den Eigenschaften bei 'Maustaste losgelassen" sie gewünschte Sub-Routine zugewiesen.
Unter 1.1.5 wird der Code auch ausgeführt, unter 2.0 passiert gar nichts.

Es ist mein allererstes Projekt unter OpenOffice. Wahrscheinlich stimmt was in dem Code nicht.

Die Sub-Routine sieht folgendermaßen aus:

Code: Alles auswählen

Public TB3 as Object'Bezirksnummer
Public TB4 as Object'Unterscheidungsnummer
Public TB5 as Object'Veranlagungszeitraum
Public Dlg as Object'Dialog

Sub Init_Dialog
'*****************************************
' Dialog und Steuerelemente initialisieren
DialogLibraries.LoadLibrary("Standard")
Dlg=CreateUnoDialog(DialogLibraries.Standard.DlgSpeichern) 'Dialog anlegen

TB3=Dlg.GetControl("tb3")
TB4=Dlg.GetControl("tb4")
TB5=Dlg.GetControl("tb5")

End Sub

Sub DlgSpeichern_anzeigen
'*****************************************
' Dialog anzeigen
Init_Dialog 'Initialisierungs-Sub aufrufen

Dlg.Execute()
Dlg.Dispose()

end sub

sub Speichern
'*****************************************
' Tabelle unter Steuernummer speichern
dim document   as Object
dim dispatcher as Object

'*****************************************
' Textfeld "tb3", "tb4" und "tb5" auslesen
Dim sText1 as String 
Dim sText2 as String 
dim sText3 as string 
dim sFH as String    

sText1=TB3.GetText()
sText2=TB4.GetText()
sText3=TB5.GetText()

If sText1="" or sText2="" or len(sText1) < 4 or len(sText2) < 2 or sText3="" or len(sText3) = 3 then

      ...	

end sub

Aufgerufen wird die Routine "Sub Speichern" durch den CommandButton.
Wie gesagt, erstellt ist das Projekt unter Version 1.1.5.
Es wird auch keine Vorlage verwendet und auch keine Makros beim Stadt des Dokumentes geladen.

von Toxitom » Mi, 11.01.2006 08:36

Hey filmore,
Ist es tatsächlich so, dass die beiden Versionen in dieser Hinsicht nicht kompatibel sind? Die Zuweisung unter OO 2.0 läuft nicht unter OO 1.1.5, und umgekehrt ebenfalls nicht.
Hmm, ja, es gab Änderungen, zum Beispiel die Zuweisung. Das sollte aber dennoch funktionieren - zumindest von 1.1.5 auf 2.0, da ist wohl etwas anderes "faul".

Kannst du mehr Informationen geben? Den Code? Werden Makros direkt beim Start des Dokumentes "geladen"? Arbeitest du mit Vorlagen?

Vielleicht kann ich dann mehr sagen.

Gruss
Thomas

CommandButton funktioniert nicht mehr unter Vers. 2.0

von filmore » Mi, 11.01.2006 07:09

Hallo,
ich habe folgendes Problem:
Es läuft ein unter OpenOffice 1.1.5 erstelltes Programm einwandfrei.
Wird dieses Programm aber unter OO 2.0 ausgeführt, funktioniert es nicht mehr

In einem Dialog ist einem CommandButton eine Programmroutine zugewiesen worden. Lasse ich dieses unter Version 1.1.5 erstellte Programm laufen, wird bei Klick auf diesen Button der zugewiesene Code ausgeführt. Unter der Version 2.0 passiert gar nichts. Der zugewiesene Code wird offensichtlich gar nicht angesprungen. :(

Folgendes ist mir aufgefallen.

Unter OO 1.1.5 sieht der Code der Zuweisung (unter Eigenschaften - Ereignisse des CommandButton) wie folgt aus:

"document:Standard.DlgCode.Speichern"

Erstelle ich diese Zuweisung unter OO 2.0 neu, sieht sie so aus:

"vnd.sun.star.scriptStandard.DlgCode.Speichern?language=Basic&location=document"

Anmerkung: 'DlgCode' ist der Name des Dialog (Formulars)
'Speichern' ist der Name der Routine, die aufgerufen werden soll

Ist es tatsächlich so, dass die beiden Versionen in dieser Hinsicht nicht kompatibel sind? Die Zuweisung unter OO 2.0 läuft nicht unter OO 1.1.5, und umgekehrt ebenfalls nicht.
Gibt es evtl. ein Lösung?

Nach oben