Помогите разобраться с ошибкой!

AvasKvas

Well-Known Member
03.06.2009
78
0
#1
Всем доброго времени суток.
Помогите разобраться, по какой причине возникает ошибка:
У одного из клиентов агент выполняющийся по расписанию вываливается с ошибкой под номером 4399 (Value is out of range).
при чем при запуске этого агента на локалке отрабатывает нормально, при запуске на сервере - ошибка. Сервер винда 2008 64 бита.

Все что нашел в хелпе, только это: NOTES_ERR_RTPSTYLE_OUTOFRANGE = 4399;
Таким образом я определил,что ошибка в этой функции:
Код:
Function CreateTable(Body As NotesRichTextItem, stroki As Integer, stolbci As Integer,v As Variant)
Dim s As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim item As NotesItem
Dim j As Integer, iRow As Single, iColumn As Single


Set db = s.CurrentDatabase


'AgentStep="[09] Создаем стиль таблицы"
'стиль таблицы
Dim styles() As NotesRichTextParagraphStyle
For i% = 0 To stolbci-1 Step 1
ReDim Preserve styles(i%)
Set styles(i%) = s.CreateRichTextParagraphStyle
styles(i%).LeftMargin = 0
styles(i%).FirstLineLeftMargin = 0
styles(i%).RightMargin = RULER_ONE_INCH*v(i%)
Next
'	AgentStep="[10] Создаем таблицу"
Call body.AppendTable _
((stroki+1), stolbci,, RULER_ONE_INCH *0.39, styles)
Set CreateTable = body
End Function
А конкретно при использовании NotesRichTextParagraphStyle. Количество итераций в цикле равно 12 (в других агентах использовал эту функцию и больше быо и ничего, работет).

Но почему ошибка именно здесь, не понятно!И у себя повторить я не могу! Подскажите, в чем может быть проблема?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#2
Стоит полностью указывать границы - ReDim Preserve styles(0 to i%)
И посмотреть не стоит ли Option Base 1.
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#3
Таким образом я определил,что ошибка в этой функции
Стоит добавлять нормальный обработчик ошибок в процедуры/функции, чтобы можно было легко локализовать не только функцию, но и строку ошибки. Примеров в сети и на форуме достаточно. Ключевые слова в справке дизайнера: On Error, Error, Err, Erl, GetThreadInfo
 

AvasKvas

Well-Known Member
03.06.2009
78
0
#4
К сожалению у меня в организации политика обработки ошибок именно такая!
И я же написал, что выдал обработчик ошибок: 4399 (Value is out of range) И в справке дизайнера рылся и написал что нашел!
 
13.03.2009
625
2
#6
К сожалению у меня в организации политика обработки ошибок именно такая!
обработчика у вас нет. соответственно и политики тоже нет.
добавьте в начало функции что-то типа
Код:
'(c) - если не ошибаюсь, TIA
On Error Goto ErrH
If False Then
ErrH: Error Err, Error$ & Chr(10) & Getthreadinfo(1) & " (" & Erl & ")"
End If end
так получите номер строки, в которой ошибка.
Ставлю банку гинеса, что проблема в
Код:
styles(i%).RightMargin = RULER_ONE_INCH*v(i%)
что лежит в v As Variant, какова размерность?
 

AvasKvas

Well-Known Member
03.06.2009
78
0
#7
Согласен! Если получится у клиента поработать, то уточню!
А так, если по теории, что может быть не так?!
 

AvasKvas

Well-Known Member
03.06.2009
78
0
#9
Так и сделаю, но уже не сегодня!До клиента не достучаться!