Список форумов Форум Libreoffice

Форум Libreoffice

Добро пожаловать на Форум Libreoffice!
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

English French German Italian Portuguese Russian Spanish
Свойства пользователя, как получить?

 
Начать новую тему   Ответить на тему    Список форумов Форум Libreoffice -> Basic
Предыдущая тема :: Следующая тема  
Автор Сообщение
neft



Репутация: 0    

Зарегистрирован: 19.10.2011
Сообщения: 28

СообщениеДобавлено: Ср Май 30, 2012 3:16 pm    Заголовок сообщения: Свойства пользователя, как получить? Ответить с цитатой

При попытке получить Свойства пользователя документа возникают некоторые проблемы, связанные с Типом этих свойств. Способ доступа к этим свойствам зависит от типа этих свойств. Количество типов свойств предопределено и ограничено.



Макрос демонстрирует способ доступа к свойствам пользователя.
Некоторые свойства, в зависимости от типа, представляют собой структуры. Поэтому в макросе определяется Тип каждого свойства и выводятся соответствующие значения этого свойства (структуры).

Код:
Sub GetUserPropertiesValues
   
   oDocProps = ThisComponent.getDocumentProperties()
      oProps = oDocProps.UserDefinedProperties
      oPropsName=oProps.PropertySetInfo.Properties

      LP=LBound(oPropsName)
      UP=UBound(oPropsName)
   
For i=LP To UP
   opName= oPropsName(i).Name   
   opType=oPropsName(i).Type.Name

   If opType="com.sun.star.util.Date" Then

      opDay=oProps.getPropertyValue(opName).Day
      opMonth=oProps.getPropertyValue(opName).Month
      opYear=oProps.getPropertyValue(opName).Year

         MsgBox " i = " & i & Chr(10) & _
      "Name = " & opName & Chr(10) & _
      "Type = " & opType & Chr(10) & _
      "Day = " & opDay & Chr(10) & _
      "Month = " & opMonth & Chr(10) & _
      "Year = " & opYear

   ElseIf opType="com.sun.star.util.DateTime" Then

      opDay=oProps.getPropertyValue(opName).Day
      opMonth=oProps.getPropertyValue(opName).Month
      opYear=oProps.getPropertyValue(opName).Year
      opHours=oProps.getPropertyValue(opName).Hours
      opMinutes=oProps.getPropertyValue(opName).Minutes
      opSeconds=oProps.getPropertyValue(opName).Seconds
      opHundredthSeconds =oProps.getPropertyValue(opName).HundredthSeconds

         MsgBox " i = " & i & Chr(10) & _
      "Name = " & opName & Chr(10) & _
      "Type = " & opType & Chr(10) & _
      "Day = " & opDay & Chr(10) & _
      "Month = " & opMonth & Chr(10) & _
      "Year = " & opYear & Chr(10) & _
      "Hours = " & opHours & Chr(10) & _
      "Minutes = " & opMinutes & Chr(10) & _
      "Seconds = " & opSeconds & Chr(10) & _
      "HundredthSeconds  = " & opHundredthSeconds

   ElseIf opType="com.sun.star.util.Duration" Then

      opDays=oProps.getPropertyValue(opName).Days
      opMonths=oProps.getPropertyValue(opName).Months
      opYears=oProps.getPropertyValue(opName).Years
      opHours=oProps.getPropertyValue(opName).Hours
      opMinutes=oProps.getPropertyValue(opName).Minutes
      opSeconds=oProps.getPropertyValue(opName).Seconds
      opMilliSeconds =oProps.getPropertyValue(opName).MilliSeconds
      opNegative=oProps.getPropertyValue(opName).Negative

         MsgBox " i = " & i & Chr(10) & _
      "Name = " & opName & Chr(10) & _
      "Type = " & opType & Chr(10) & _
      "Days = " & opDays & Chr(10) & _
      "Months = " & opMonths & Chr(10) & _
      "Years = " & opYears & Chr(10) & _
      "Hours = " & opHours & Chr(10) & _
      "Minutes = " & opMinutes & Chr(10) & _
      "Seconds = " & opSeconds & Chr(10) & _
      "MilliSeconds = " & opMilliSeconds & Chr(10) & _
      "Negative  = " & opNegative
   
   Else

      opDATA=oProps.getPropertyValue(opName)

         MsgBox " i = " & i & Chr(10) & _
      "Name = " & opName & Chr(10) &_
      "DATA = " & opDATA

   End If

Next i

End Sub


Результат для свойства пользователя Тип: Продолжительность (Duration)

Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Форум Libreoffice -> Basic Часовой пояс: GMT
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Вы можете бесплатно создать форум на MyBB2.ru, RSS