проблемы с библиотекой

medin84

Well-known member
27.06.2007
106
0
#1
собственно библиотеку пишу первый раз
не понимаю в чем проблема
при первом нажатии на кнопку не отвечает
 

medin84

Well-known member
27.06.2007
106
0
#3
Actions под кнопкой
Use "CSUIViewClass"

Sub Click(Source As Button)
Call ProcessViewCommand(ERRAND_SEND)
End Sub

и далее по событию
 
A

Archi2001

#4
CSUIViewClass библиотека класса? - то перед использованием методов класса неплохо бы объект создать ;) (в смысле если rocessViewCommand это метод какого-либо класса)
а вообще тогда еще и не плохо листинг библиотеки, не всей, хотяб небольшую часть ...
 

medin84

Well-known member
27.06.2007
106
0
#5
нет это не класс
класс идет потом
Код:
Use "CSEventNotes" 'библиотека класса ErrandObj здесь

Sub ProcessViewCommand(LAction As Long)
Dim collection As NotesDocumentCollection
Dim note As NotesDocument
Dim session As New notessession

Dim csErrandObj As New ErrandObj

Dim vContinue As Integer
vContinue=False

Set collection = session.currentdatabase.unprocesseddocuments

If(LAction<>ERRAND_CREATE) Then
If (collection.count = 0) Then
Exit Sub
Else
Set note = collection.getfirstdocument()
End If
End If

If CanProcessCommand(LAction, note) Then vContinue=True

If ( vContinue ) Then
Select Case LAction
Case ERRAND_CREATE
Call csErrandObj.create

Case ERRAND_SEND
Call csErrandObj.send( note )

Case ERRAND_DECLINE
Call csErrandObj.decline( note )

Case ERRAND_CHANGE_EXECUTOR
Call csErrandObj.change_executor( note )

Case ERRAND_CHANGE_TODATE
Call csErrandObj.change_todate( note )

Case Else
Goto done
End Select
End If

If Not(vContinue) Then Goto Done

note.save True,False
Done:
If(Not(csErrandObj Is Nothing)) Then Delete csErrandObj
Dim ws As New NotesUIWorkspace
Call ws.ViewRefresh
End Sub
 
K

K-Fire

#7
Стандартная лотусовая бага, когда используете метод session.currentdatabase.unprocesseddocuments, если документ во вьюшке не выделен галочкой - то коллекция будет пустая.
Добавьте после строчки
Set collection = session.currentdatabase.unprocesseddocuments
проверку: если collection.count = 0 тогда получаете объект NotesUIView и используете свойство CaretNoteID. Из него потом достать NotesDocument нет никаких проблем.

А вообще по хорошему эту функцию надо нормально переписывать чтобы не было всяких Goto, и она умела обрабатывать не только 1 документ, а все выделенные (если пользователь выделит больше одного)
 
A

Archi2001

#8
... на счёт листинга погорячился - но пригодится ;)
а дебагер чего говорит? он начинает выполнять ProcessViewCommand?
 

medin84

Well-known member
27.06.2007
106
0
#9
хотя если подключать библиотеку с вьюшки то все нормально
но все равно не понятно почему с кнопки работает со второго нажатия

в дебаггере видно что все проходит строчка в строчку
 
K

K-Fire

#10

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#11
Если дебаггер нормально проходит, то какой результат должен быть?
Сохранение документа?
 

medin84

Well-known member
27.06.2007
106
0
#12
здесь что-то непонятное сейчас работает. ;)
после всей обработки да сохранение
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#13
Сохранение происходит и ошибка не выдается?
Значит смотрим библиотеку CSEventNotes.
 

medin84

Well-known member
27.06.2007
106
0
#14
да сохраняется и ни каких еррор
да с библиотекой вроде все норма
ну вроде вопрос отпадает сейчас работает нормально ;)
у меня вопрос может не в тему но не большой
откуда лучше подключать библиотеку с вью или с кнопки
 

medin84

Well-known member
27.06.2007
106
0
#16
Спасибо всем за помощь и замечания!
;) будем исправляться!
А вообще по хорошему эту функцию надо нормально переписывать чтобы не было всяких Goto, и она умела обрабатывать не только 1 документ, а все выделенные (если пользователь выделит больше одного)
 

Omh

Lotus team
04.07.2007
2 210
1
#17
меняется только ее "область видимости"
Правда твоя, но есть добавление.
При подключении к объекту (view, form) initialize библиотеки будет выполняться в любом случае, а при подключении на кнопку, только при нажатии. И только 1 раз.
 
S

Sandr

#18
Я тоже с такой багой сталкивался... в клиенте 6.5.3... в других клиентах бага отсутвовала...:)