1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

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

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

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

    ABarmin Гость

    Репутация:
    0
    Добрый день.

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

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

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

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

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

    ABarmin Гость

    Репутация:
    0
    В библиотеке описан класс Person:

    Код:
    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 Well-Known Member
    Lotus team

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

    ABarmin Гость

    Репутация:
    0
    Точно, Public забыл! Спасибо.

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

    nvyush Well-Known Member
    Lotus team

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

    ABarmin Гость

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

    Код класса:

    Код:
    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
    Код обработчика:

    Код:
    Sub Click(Source As Button)	
    Dim b As New Person
    Set b = New Person
    
    Delete b
    End Sub
    При выполнении пошагово в отладчике, то возникает ошибка Type mismatch on external name: PERSON. Что не так-то?
     
  8. ABarmin

    ABarmin Гость

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

    nvyush Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    А где объявление класса Department? В классе Person должно быть что-то вроде
    Код:
    	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
    И добавьте обработку ошибок, будет гораздо легче отлаживать
     
  10. ABarmin

    ABarmin Гость

    Репутация:
    0
    Класс Department объявлен и отлажен. Все равно спасибо)
     
  11. ABarmin

    ABarmin Гость

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

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

    lmike нет, пердело совершенство
    Lotus team

    Репутация:
    3
    Регистрация:
    27 авг 2008
    Сообщения:
    6.406
    Симпатии:
    346
  13. ABarmin

    ABarmin Гость

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

    ABarmin Гость

    Репутация:
    0
    Решилось проще, использовал forall
     
  15. hosm

    hosm * so what *

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

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