Basic .CallFunktion("Nettoarbeitstage"...) verursacht Fehlermeldung in LO 5.1

Hallo Leute,

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 5.1 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.


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" )
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

und ich weiß nicht wie ich herrausbekommen kann woran das liegt …
bei deinem Code erscheint

BASIC-Laufzeitfehler.
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.container.NoSuchElementException
Message: .

Wenn ich die Argumente in einen Datevalue oder Datum direkt verwandle bekomme ich

BASIC-Laufzeitfehler.
Objektvariable nicht belegt.

Mir gehen gerade etwas die Ideen aus … Haben die Programmierer hier vieleicht eine entsprechende Funktion in den Basic Code direkt implementiert ?
Nen Changelog wäre bei sowas echt mega hilfreich :(.

Ich hoffe hier kann mir einer dabei helfen …

Du musst die englischen Funktionsnamen benutzen. Eine Übersicht englisch-deutsch findest du auf DeutschEnglischCalcFunktionen - Archiv des LibreOffice- und OpenOffice.org-Wiki (Suchfunktion des Browsers benutzen). Es sind zwar inzwischen einige Funktionen hinzugekommen, aber die meisten sind in der Übersicht drin. Ansonsten machst du dir ein Dokument, das die Funktion benutzt, stellst die Benutzeroberfläche auf Englisch, öffnest das Dokument und guckst wie die Funktion dort heißt.

Ah, Ok - Danke für den Tip … damit gehts tatsächlich :slight_smile:

Danke