Тема: 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
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.