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

  • Автор темы ABarmin
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

ABarmin

#1
Добрый день.

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

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

В чем моя ошибка?
 
A

ABarmin

#3
В библиотеке описан класс 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, кнопка тоже.
 

nvyush

Lotus team
22.04.2009
2 317
0
#4
В Options случайно нет Option Private?
Объявите Public Class Person, да и конструктора Public Sub New что-то не наблюдается.
 
A

ABarmin

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

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

ABarmin

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

Код класса:

Код:
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. Что не так-то?
 
A

ABarmin

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

nvyush

Lotus team
22.04.2009
2 317
0
#9
А где объявление класса 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
И добавьте обработку ошибок, будет гораздо легче отлаживать
 
A

ABarmin

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

ABarmin

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

Код:
		Dim res As Variant
Dim q As String

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

ABarmin

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

hosm

* so what *
18.05.2009
2 442
6
#15
Как можно посчитать количество элементов в переменной типа Variant?
Ubound(var) - Lbound(var) + 1
для Variant-переменной, считавшей значение итема из документа, Lbound всегда равно 0 (вне зависимости от option base), так что формула еще проще.
 
Статус
Закрыто для дальнейших ответов.