• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

ABarmin

Добрый день.

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

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

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

ABarmin

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

nvyush

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

ABarmin

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

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

ABarmin

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

Код класса:

Код:
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

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

nvyush

А где объявление класса 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

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

ABarmin

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

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

q = {@dblookup("":"NoCache"; @dbname; "Сотрудники по OrgID"; "} + OrgID + {"; 2; [FAILSILENT])}
res = Evaluate(q)

как можно проверить, что res пустой?
 
A

ABarmin

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

hosm

Как можно посчитать количество элементов в переменной типа Variant?
Ubound(var) - Lbound(var) + 1
для Variant-переменной, считавшей значение итема из документа, Lbound всегда равно 0 (вне зависимости от option base), так что формула еще проще.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!