supportsService nicht gefunden

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: supportsService nicht gefunden

Re: supportsService nicht gefunden

von riesentrolli » Fr, 17.06.2011 19:31

DPunch hat geschrieben:Aloha
Karolus hat geschrieben:Hol dir das Modification_Date nicht per Calcfunktion, sondern schreibe das Änderungsdatum per Sub zB. beim/vorm Schliessen des Dokuments in die gewünschte Zelle.
Entweder das, oder Du packst die Funktion in das Dokument selber - dann kann das Evaluieren erst erfolgen, wenn das Dokument schon geladen ist, das dürfte auch keine Fehlermeldung mehr produzieren.
Hat funktioniert. Tausend Dank!
*tanz*

Re: supportsService nicht gefunden

von Karolus » Fr, 17.06.2011 19:23

Hallo
...oder Du packst die Funktion in das Dokument selber - dann kann das Evaluieren erst erfolgen, wenn das Dokument schon geladen ist, das dürfte auch keine Fehlermeldung mehr produzieren.
Klar, natürlich - genau das hab ich beim Testen gerade "instinktiv" auch gemacht.

Gruß Karo

Re: supportsService nicht gefunden

von DPunch » Fr, 17.06.2011 19:11

Aloha
Karolus hat geschrieben:Hol dir das Modification_Date nicht per Calcfunktion, sondern schreibe das Änderungsdatum per Sub zB. beim/vorm Schliessen des Dokuments in die gewünschte Zelle.
Entweder das, oder Du packst die Funktion in das Dokument selber - dann kann das Evaluieren erst erfolgen, wenn das Dokument schon geladen ist, das dürfte auch keine Fehlermeldung mehr produzieren.

Re: supportsService nicht gefunden

von Karolus » Fr, 17.06.2011 19:06

Hallo
Das Dokumentobjekt ist noch nicht "vollständig" zu dem Zeitpunkt wenn die Funktion evaluiert wird. → Hol dir das Modification_Date nicht per Calcfunktion, sondern schreibe das Änderungsdatum per Sub zB. beim/vorm Schliessen des Dokuments in die gewünschte Zelle.

Nachtrag: in LO 3.3 und 3.2 gibts bei der Benutzung als Funktion keine Fehlermeldung beim Öffnen.
Nachtrag2: ...wenn die Funktion im Dokument "aufbewahrt" wird.

Gruß Karo

Re: supportsService nicht gefunden

von F3K Total » Fr, 17.06.2011 19:02

Hallo,
wie startest Du das Makro? von Hand?
Bei mir funktioniert:

Code: Alles auswählen

Sub Main
oDoc=thiscomponent
If oDoc.supportsService("com.sun.star.sheet.SpreadsheetDocument" ) Then msgbox "gefunden"
End Sub
auch beim erneuten Öffnen.
W7 OOo3.3

Gruß R

supportsService nicht gefunden

von riesentrolli » Fr, 17.06.2011 18:37

Ahoi,

ich habe unter Calc folgendes Makro eingebaut:

Code: Alles auswählen

    Function CalcDoc_Modification_Date()
    sTemp = "n/a"

    oDoc = thisComponent
    If IsNull( oDoc ) THEN
       CalcDoc_Modification_Date() = sTemp
       msgbox "oDoc null"
       Exit Function
    End If

    If IsEmpty( oDoc ) THEN
       CalcDoc_Modification_Date() = sTemp
       msgbox "oDoc empty"
       Exit Function
    End If

    ' da hier als Calc-Funktion ("cf_")genutzt:
    ' Abfrage des Dokumententyps
    If oDoc.supportsService("com.sun.star.sheet.SpreadsheetDocument" ) Then
    ' neue Eigenschaft ab OOo 3.0.0
    cf_oDAT = oDoc.DocumentProperties.ModificationDate
    ' work with DocInfo
    If IsEmpty( cf_oDAT ) Then
      sTemp = "n/a"
       else
          With cf_oDAT
          ' set return format
          ' force month and day to two digits
          sTemp = _
           Format( .Day, "0#" ) & "." & _
           Format( .Month, "0#" ) & "." & _
           .Year
          End With
       End If   'gefülltes Objekt

    ' assign func return value
    CalcDoc_Modification_Date = sTemp

    End If  ' check DOK
    End Function
Damit soll das Datum der letzten Änderung angezeigt werden. Was auch passiert. Zumindest bis ich das Dokument wieder öffne. Dann bekomme ich folgende Fehlermeldung:

Code: Alles auswählen

BASIC-Laufzeitfehler Eigenschaft oder Methode nicht gefunden: supportsService.
Das Ersetzen von

Code: Alles auswählen

oDoc = thisComponent
durch

Code: Alles auswählen

oDoc = StarDesktop.CurrentComponent
hat nichts gebracht. OpenOffice gab die Meldung aus, dass oDoc null und ich hatte nur ein formschönes n/a statt des Datums.

Hat hier jemand eine Ahnung was da schief läuft?

Nach oben