Вызвать библиотеку Lotusscript из интерфейса

Тема в разделе "Lotus - Программирование", создана пользователем ABarmin, 30 дек 2010.

Статус темы:
Закрыта.
  1. ABarmin

    ABarmin Гость

    Добрый день.

    Гуглил, но ответа так и не нашел. Я создал библиотеку Script Library на Lotus script. Как мне ее теперь вызвать из обработчика кнопки?

    Предполагаю, что use "имя библиотеки", но что-то не прокатывает.

    В чем моя ошибка?
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    а что пишет когда так пробуешь?
     
  3. ABarmin

    ABarmin Гость

    В библиотеке описан класс Person:

    Код (LotusScript):
    Class Person
    Property Get FIO As String

    End Property

    Property Get SysName As String

    End Property

    Property Get ParentDepartment As Department

    End Property
    End Class
    В коде кнопки:

    Use "Class_Person" ' имя библиотеки Class_Person

    set a = new Person

    Выдает Class or type name not found PERSON

    Пробовал вызывать как dim a as new Person - выдает ту же самую ошибку.

    Библиотека на LS, кнопка тоже.
     
  4. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    В Options случайно нет Option Private?
    Объявите Public Class Person, да и конструктора Public Sub New что-то не наблюдается.
     
  5. ABarmin

    ABarmin Гость

    Точно, Public забыл! Спасибо.

    А можно как-то вызвать библиотеку из другого nsf?
     
  6. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    визов библиотеки
     
  7. ABarmin

    ABarmin Гость

    Спасибо)
     
  8. ABarmin

    ABarmin Гость

    У меня совершенно непонятный глюк при создании экземпляра класса

    Код класса:

    Код (LotusScript):
    Public Class Person
    ' свойства класса
    nfio As String
    nname As String
    npdep As Department

    ' конструктор
    Public Sub new

    End Sub

    Property Set FIO As String

    End Property

    Property Set SysName As String

    End Property

    Property Get FIO As String

    End Property

    Property Get SysName As String

    End Property

    Property Get ParentDepartment As Department

    End Property
    End Class
    Код обработчика:

    Код (LotusScript):
    Sub Click(Source As Button)
    Dim b As New Person
    Set b = New Person

    Delete b
    End Sub
    При выполнении пошагово в отладчике, то возникает ошибка Type mismatch on external name: PERSON. Что не так-то?
     
  9. ABarmin

    ABarmin Гость

    Вопрос снимается. Все решилось полной перекомпиляцией LotusScript-а)
    Целый день искал ошибку в своем коде))) ;)
     
  10. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    А где объявление класса Department? В классе Person должно быть что-то вроде
    Код (Text):
        Public Sub New
    Set npdep = Nothing
    End Sub

    Public Sub Delete
    If Not npdep Is Nothing Then
    Delete npdep
    Set npdep = Nothing
    End If
    End Sub
    И добавьте обработку ошибок, будет гораздо легче отлаживать
     
  11. ABarmin

    ABarmin Гость

    Класс Department объявлен и отлажен. Все равно спасибо)
     
  12. ABarmin

    ABarmin Гость

    Как можно проверить переменную типа Variant на пустоту, т.е.

    Код (LotusScript):
            Dim res As Variant
    Dim q As String

    q = {@dblookup("":"NoCache"; @dbname; "Сотрудники по OrgID"; "} + OrgID + {"; 2; [FAILSILENT])}
    res = Evaluate(q)
    как можно проверить, что res пустой?
     
  13. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
  14. ABarmin

    ABarmin Гость

    Как можно посчитать количество элементов в переменной типа Variant? Вариант Переменная.count() почему-то выдает ошибку постоянно.
     
  15. ABarmin

    ABarmin Гость

    Решилось проще, использовал forall
     
  16. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Ubound(var) - Lbound(var) + 1
    для Variant-переменной, считавшей значение итема из документа, Lbound всегда равно 0 (вне зависимости от option base), так что формула еще проще.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей