[gelöst] Dialog schließt nicht

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

Moderator: Moderatoren

junmod
**
Beiträge: 31
Registriert: Di, 07.02.2012 09:06

[gelöst] Dialog schließt nicht

Beitrag von junmod »

Hallo Forum,

ich habe mir für Oo calc einen Dialog mit 3 Schaltflächen gebastelt, Schaltfläche 1 "NEU", Schaltfläche 2 "Bearbeiten", Schaltfläche 3 "Kopieren", für Schaltfläche 1 und 3 habe ich "Standard" ausgewählt, für Schaltfläche 2 "Abbrechen". Beim Drücken von 1 und 2 wird eine Funktion gestartet (Ereignisse/Aktion ausführen), die den Wert in einer Zelle um 1 erhöht (bekannt von der Dannenhöfer Seite)

Code: Alles auswählen

function GetAndSetNumber as string

dim f as Integer
dim anummerdatei as string   
dim anummer as string

Dim document as Object
Dim dispatcher as Object
Dim StringName as String
Dim OrdnerPos as String

rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

myDoc = ThisComponent
     myView = myDoc.CurrentController
     mySheet = myDoc.Sheets.getByName("Kal")
     myView.setActiveSheet(mySheet) 
     
OrdnerPos = "X:/Auf/"
   
  anummerdatei=OrdnerPos & "A-Nummer" & ".txt"
   if FileExists("file:///"&anummerdatei) then
         f = FreeFile()
         Open "file:///"&anummerdatei for Input as #f
               Line Input #f, anummer
               close #f
               f = FreeFile()
               Open "file:///"&anummerdatei for output as #f
               Print #f, val(anummer)+1
               close #f
        else
            anummer=0
        endif
    GetAndSetNumber=anummer  

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$G$2"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = GetAndSetNumber

dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())

rem ----------------------------------------------------------------------
dim args10(0) as new com.sun.star.beans.PropertyValue
args10(0).Name = "ToPoint"
args10(0).Value = "$A$6"

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args10())

REM Messagebox
msgbox ("Es wurde eine neue A-Nummer angelegt!    ", 64, "Herzlichen Glückwunsch!")

rem end if

End function
Das funktioniert auch alles wunderbar, Schaltfläche 1 und 3 machen was ich will, aber der Dialog schließt nicht. Liegt das an einer Einstellung im Dialog? Wenn ich die 2 drücke schließt er sich.

Ich würde mich freuen wenn mir jemand helfen könnte.

Gruß
Dirk
Zuletzt geändert von junmod am Do, 23.06.2016 14:35, insgesamt 1-mal geändert.
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Dialog schließt nicht

Beitrag von F3K Total »

Hi,
wie sollen wir dir helfen? Vom Dialog hast du nichts gepostet. Am besten alle beteiligten Dokumente hier hochladen.
Gruß R
junmod
**
Beiträge: 31
Registriert: Di, 07.02.2012 09:06

Re: Dialog schließt nicht

Beitrag von junmod »

Hallo,

ja sorry, anbei das Beispiel.
Ich habe mal das ganze Drumherum rausgeschmissen und auf das Wesentliche reduziert.

Gruß
Dirk
Beispiel.ods
(21.44 KiB) 168-mal heruntergeladen
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Dialog schließt nicht

Beitrag von F3K Total »

Schau mal durch, habe keine Zeit für lange Erklärungen, der Dialog muss per Makro mit .endExecute beendet werden.
Gruß R
Dateianhänge
Beispiel.ods
(21.17 KiB) 150-mal heruntergeladen
junmod
**
Beiträge: 31
Registriert: Di, 07.02.2012 09:06

Re: Dialog schließt nicht

Beitrag von junmod »

Hallo ,

Prima.....danke.....jetzt funktioniert's. :-)

Das

Code: Alles auswählen

MyDlg.endexecute
hatte ich auch schonmal eingebaut (passierte nichts außer einer Fehlermeldung), aber erst damit

Code: Alles auswählen

global MyDlg as Object
funktioniert es.

Gruß
Dirk
Antworten