Ошибка No Resume (№19)

Тема в разделе "Lotus - Программирование", создана пользователем allex, 19 фев 2007.

  1. allex

    allex Гость

    Вот наконец то я доделал свой скритпт для создания таблиц в RT поле.
    Но возникла проблемка...дебагер показыват что место ошибки End Sub, там он выдает NO RESUME, но код отрабатывается, документ создается, таблица рисуется и документ сохраняется.
    Что не так у меня...подскажите ???
    В последствии код можно в CodeBase выложить.
    Код (Text):
    Sub Click(Source As Button)

    Dim val_List( 1 To 200 ) As Variant
    Dim current_val As Variant
    counter% = 1
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Set db = session.CurrentDatabase
    REM Создание документа
    Dim doc As New NotesDocument(db)
    Dim view_doc As NotesDocument
    Call doc.ReplaceItemValue("Form", "body_rt_f2")
    Dim body As New NotesRichTextItem(doc, "body_rt")
    Set view = db.GetView("body_f2")

    REM Создание таблицы в RT поле
    rowCount% = 16
    columnCount% = 7
    a = view.EntryCount ' число документов в представлении (строки)
    b = Fix(a/rowCount%)  ' вычисление
    b1 = Fix(a/rowCount%) ' числа
    b2 = a/rowCount%        ' вкладок
    If b1< b2 Then b=b1 +1

    Dim tabs() As String
    If Messagebox("Продолжить создание таблицы?", _
    MB_YESNO + MB_ICONQUESTION, "Tabbed?") = IDNO Then
    Call body.AppendTable(b, 1)
    Else
    Redim tabs(1 To b)
    For i = 1 To b
    tabs(i) = "Стр № " & i
    Next
    Call body.AppendTable(b, 1, tabs) 'создание таблицы с вкладками

    End If
    Dim rtnav As NotesRichTextNavigator
    Set rtnav = body.CreateNavigator
    Call rtnav.FindFirstElement(RTELEM_TYPE_TABLE)'
    Set view_doc = view.GetFirstDocument
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL) 'поиск ячейки в 1 вкладке
    ' вставка таблицы 7х15
    '****************************************** стиль оформления
    Dim columnStyles1(0 To 6) As NotesRichTextParagraphStyle
    For i = 0 To 6
    Set columnStyles1(i) = session.CreateRichTextParagraphStyle
    columnStyles1(i).LeftMargin = 0 ' position relative to cell border.
    columnStyles1(i).FirstLineLeftMargin = 0
    Next
    columnStyles1(0).RightMargin = 4.5 * RULER_ONE_CENTIMETER
    columnStyles1(0).Alignment = ALIGN_CENTER
    columnStyles1(1).RightMargin = 17. * RULER_ONE_CENTIMETER
    columnStyles1(1).Alignment = ALIGN_LEFT
    columnStyles1(2).RightMargin = 2. * RULER_ONE_CENTIMETER
    columnStyles1(2).Alignment = ALIGN_CENTER
    columnStyles1(3).RightMargin = 1.5 * RULER_ONE_CENTIMETER
    columnStyles1(3).Alignment = ALIGN_CENTER
    columnStyles1(4).RightMargin = 1.5 * RULER_ONE_CENTIMETER
    columnStyles1(4).Alignment = ALIGN_CENTER
    columnStyles1(5).RightMargin = 1.5 * RULER_ONE_CENTIMETER
    columnStyles1(5).Alignment = ALIGN_CENTER
    columnStyles1(6).RightMargin = 1.5 * RULER_ONE_CENTIMETER
    columnStyles1(6).Alignment = ALIGN_CENTER
    '*********************************************
    For ib = 1 To b Step 1
    Call body.BeginInsert(rtnav)                                                           
    Call body.AppendTable(rowCount%, columnCount%,,,columnStyles1)
    'Call body.AppendTable(16, 7,,,columnStyles1)
    Call body.EndInsert
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL) 'поиск ячейки во вложенной таблице 1 вкладки

    For iRow% = 1 To rowCount% Step 1
    If view_doc.Size = 0 Goto savedoc
    On Error Goto savedoc

    Call body.BeginInsert(rtnav)
    Call body.AppendText(view_doc.ColumnValues( 0 ))
    Call body.EndInsert
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
    Call body.BeginInsert(rtnav)
    Call body.AppendText(view_doc.ColumnValues( 1 ))
    Call body.EndInsert
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
    Call body.BeginInsert(rtnav)
    Call body.AppendText(view_doc.ColumnValues( 2 ))
    'On Error=19 Goto savedoc
    Call body.EndInsert
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
    Call body.BeginInsert(rtnav)
    Call body.AppendText(view_doc.ColumnValues( 3 ))
    Call body.EndInsert
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
    Call body.BeginInsert(rtnav)
    Call body.AppendText(view_doc.ColumnValues( 4 ))
    Call body.EndInsert
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
    Call body.BeginInsert(rtnav)
    Call body.AppendText(view_doc.ColumnValues( 5 ))
    Call body.EndInsert
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
    Call body.BeginInsert(rtnav)
    Dim v6 As String
    v6$ = Left$(view_doc.ColumnValues( 6 ), 6)
    Call body.AppendText(v6$)
    val_List( counter% ) = current_val
    Set view_doc = view.GetNextDocument( view_doc )
    counter% = counter% + 1        

    Call body.EndInsert
    If current_val > a Goto savedoc
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
    Next
    Next
    savedoc:
    REM Save document and refresh view
    Call doc.Save(True, False)
    Dim ws As New NotesUIWorkspace
    Call ws.ViewRefresh
    'выскакивает ошибка 19 (No Resume) ????
    End Sub
     
  2. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    если после If view_doc.Size = 0 Goto savedoc должен быть выход из процедуры, тогда
    после последнего Next должна идти строка exit sub и после строки Call ws.ViewRefresh тоже можно написать exit sub,
    иначе, если подразумевается что после If view_doc.Size = 0 Goto savedoc должен выполняться ниже следующий код, то после после Call ws.ViewRefresh пишется строка Next resume.. exit sub тоже должны быть (перед savedoc: exit sub обязателен, в savedoc: не обязятелен, но для логичности можно и написать)
     
  3. allex

    allex Гость

    Огромный пасибKee_Keekkenen

    Код (Text):
     REM Save document and refresh view
    Call doc.Save(True, False)
    Dim ws As New NotesUIWorkspace
    Call ws.ViewRefresh
    Exit Sub ' вот так все номалем

    End Sub
     
Загрузка...

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