Durch den partiellen Umstieg auf LO bei uns , bekomme ich gerade etwas Probleme mit meinen Makros.
Teilweise funktionieren gewisse Befehle anscheinend neuerdings anders.
Vieleicht kann mir einer Sagen warum ich jedesmal unter LO bei der oben genannten Zeile (im folgenden Code) eine Fehlermeldung bekomme.
Ich habe bereits versucht die Parameter als "variant"-Array zu übergeben oder als "String" aber grundsätzlich bekomme ich immer eine Fehlermeldung wenn ich versuche diese Funktion aufzurufen.
Unter AO läuft das Makro fehlerfrei.
Code: Alles auswählen
Global anfang as date
global ende as date
global bEU,bSU,bFK
global sGSU as string
dim temp as string
global MyDialog as object
Sub Main
'--------------------------------------------
' Variablen zuordnen
'--------------------------------------------
Dim Profil(0) as new com.sun.star.beans.PropertyValue
dim document as object
dim args(1) as double
dim argsL(1) as variant 'alternative Argumente für Libreoffice
dim tn as string 'Techniker Name
dim abt as string 'Abteilung
dim PerNo as integer 'Personalnummer
dim wt as integer 'Werktage
Dim ov as string 'Office Version
dim fil as object
document = ThisComponent
globalScope.BasicLibraries.LoadLibrary("Tools") ' einbinden der OOBasic Funktionen
DialogLibraries.LoadLibrary( "Standard" )
MyDialog = CreateUnoDialog(DialogLibraries.Standard.Eingabe)
'--------------------------------------------
' Variablen beschreiben
'--------------------------------------------
oFunctionAccess = createUnoService( "com.sun.star.sheet.FunctionAccess" )
xray oFunctionAccess'.callFunction( "NETTOARBEITSTAGE", args())
Benutzer = createUnoService("com.sun.star.configuration.ConfigurationProvider")
Profil(0).Name = "nodepath"
Profil(0).Value = "org.openoffice.UserProfile/Data"
Benutzerdaten = Benutzer.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", Profil())
ov = OfficeVersion() ' Aufruf der Funktion OfficeVersion
'--------------------------------------------
' Hinweistext erstellen
'--------------------------------------------
temp = "Bitte hier die notwendigen Daten eintragen und auswählen ." & chr(13) & chr(13)
temp = temp & ">> Das Formular wird automatisch ausgefüllt. <<" & chr(13)
temp = temp & chr(13)
MyDialog.getControl("iTitel").model.Label = temp
temp = ""
temp = temp & "Bitte wähle den Beginn und das Ende deines Urlaubs aus." & chr(13) &chr(13)
MyDialog.getControl("Mitte").model.Label = temp
MyDialog.getControl("Label5").visible = false
MyDialog.getControl("eSUG").visible = false
myDialog.execute
if anfang ="00:00:00" then goto fin
if instr(OV,"Foundation") then
argsL(0) = DateValue(anfang)
argsL(1) = DateValue(ende)
wt = oFunctionAccess.callFunction( "NETTOARBEITSTAGE",Array(anfang,Ende))
Else
args(0) = DateValue(anfang)
args(1) = DateValue(ende)
wt = oFunctionAccess.callFunction( "NETTOARBEITSTAGE", args())
end if
abt = Benutzerdaten.givenname
tn = Benutzerdaten.sn
PerNo = Benutzerdaten.initials
if args(0) = args(1) then
temp = "am " & anfang & " = 1 Tag"
else
temp = "vom " & anfang & " bis " & ende & " = " & str(wt) & " Tage"
end if
Es wäre schön wenn hier mal kurz jemand drüber blicken könnte und mir den Unterschied im Handling zwischen LO und AO erklärt.
Danke schonmal für Eure Zeit

PS. Bei Bedarf kann ich auch das ganze Dokument mal posten, weil hier fehlt natürlich noch einiges da ich nur den relevanten Code gepostet habe.