1

Тема: OOo Basic: определение типа документа

Функция возвращает "scalc", "swriter", "sdraw", "smath", "simpress" или "sbase" в зависимости от типа переданного документа. Удобно использовать в макросах OpenOffice.org для соответствующей проверки.

Function GetDocumentType(oDoc)
    Dim sImpress, sCalc, sDraw, sBase, sMath, sWrite
    sCalc    = "com.sun.star.sheet.SpreadsheetDocument"
    sImpress = "com.sun.star.presentation.PresentationDocument"
    sDraw    = "com.sun.star.drawing.DrawingDocument"
    sBase    = "com.sun.star.sdb.DatabaseDocument"
    sMath    = "com.sun.star.formula.FormulaProperties"
    sWrite   = "com.sun.star.text.TextDocument"

    On Local Error GoTo NODOCUMENTTYPE
    If oDoc.SupportsService(sCalc) Then
        GetDocumentType() = "scalc"
    ElseIf  oDoc.SupportsService(sWrite) Then
        GetDocumentType() = "swriter"
    ElseIf  oDoc.SupportsService(sDraw) Then
        GetDocumentType() = "sdraw"
    ElseIf  oDoc.SupportsService(sMath) Then
        GetDocumentType() = "smath"
    ElseIf  oDoc.SupportsService(sImpress) Then
        GetDocumentType() = "simpress"
    ElseIf  oDoc.SupportsService(sBase) Then
        GetDocumentType() = "sbase"
    End If
    NODOCUMENTTYPE:
    If Err <> 0 Then
        GetDocumentType = ""
        Resume GOON
        GOON:
    End If
End Function
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.