СРочно нужна помошь!

Тема в разделе "Lotus - Программирование", создана пользователем Abbi, 15 апр 2009.

  1. Abbi

    Abbi Гость

    Не могу найти ошибку. Проверка на происходит.


    [codebox]Function check_kod(a As Variant) As Variant
    Dim ses As New Notessession
    Dim view As NotesView
    Dim docum As NotesDocument
    Dim result As String
    Dim arr (0 To 1) As String

    Dim spravdb As New NotesDatabase("","")

    sServer=ses.GetEnvironmentString("SpravInfServer")
    sDb = "testOTiTB.nsf"

    If Not spravdb.OpenWithFailover(sServer,sDb) Then
    Msgbox "База данных ""Тестирование"" не найден.", 16,"Ошибка..."

    End If

    Set view = spravdb.GetView("(testir)")

    result = Inputbox ("Введите код для прохождения тестирования","Тестирование","")
    arr(0) = result
    arr(1) = a(0)

    Set docum=view.GetDocumentByKey(arr) !!!!! НЕ ПРИСВАИВАЕТ DOCUM !!!

    If Not(docum Is Nothing) Then
    check_kod =True
    End If

    End Function[/codebox]
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    в какой строке ошибка

    з.ы. в след. раз более понятно называйте тему
     
  3. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Значит не может найти документ по такому ключу, или колонки не отсортированы.
     
  4. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    зачем 2 ключика одинаковых всегда?
     
  5. Abbi

    Abbi Гость

    документ существует и колонки отсортированные



    они не одинаковые


    Set docum=view.GetDocumentByKey(arr)

    у меня docum почему то пустой.
     
  6. alb

    alb Well-Known Member

    Регистрация:
    13 июл 2005
    Сообщения:
    212
    Симпатии:
    0
    GetDocumentByKey(arr)
    я думал принимает в качестве аргумента только строковый тип, нужно уточнить в хелпе
    а тут массив
    может так пойдет GetDocumentByKey(arr(0)) или GetDocumentByKey(result) или GetDocumentByKey(Cstr(result))
     
  7. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Abbi
    Что значит пустой?
     
  8. alb

    alb Well-Known Member

    Регистрация:
    13 июл 2005
    Сообщения:
    212
    Симпатии:
    0
    еще стоить проверить тип столбца на вьюхе
    и в запросе использовать такой тип
     
  9. azat20

    azat20 Well-Known Member

    Регистрация:
    22 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    так делай Set docum=view.GetDocumentByKey(arr(0))
     
  10. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Почему?
     
  11. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Резюмируем :ph34r:
    1. Нет документа с такими данными в столбцах
    2. Столбцы не отсортированы
    3. Столбцы отображают не string

    Если так уверен в первых 2-х вариантах, то остаёются третий.
    Ну и судя по тому, что ищется нечто суровое, можно вторым параметром к GetDocumentByKey сдеать true.
     
  12. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    как это?

    result = "test"

    a(0) = result
    a(1) = a(0)

    => a(0) = (1) = result = "test"
     
  13. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Murtas
    Не a, а arr. :ph34r:
     
  14. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    прасцице :ph34r:
     
  15. Abbi

    Abbi Гость

    если так то он будет искать по одному полю а мне надо по двум.
     
  16. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    а вот - начни индекс не с 0 с 1

    arr(1) = result
    arr(2) = a(0)
     
  17. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Замечание Medevic как раз к тому, что надо нормально переменные называть.
    Мне тоже показалось, что одной и той же фигней оба элемента аррая заполняются.
     
  18. Abbi

    Abbi Гость

    И еще аналогичная ситуация только что заметил это другая функция похожая.
    Если данные вводит Администратор то все нормально отрабатывает а если данные вводит пользователь то аналогичная ситуация

    Set docum=view.GetDocumentByKey(arr)
    так же не работает


    [codebox]Function check_sotr(a,b As Variant) As Variant
    Dim ses As New Notessession
    Dim ws As New NotesUIWorkspace
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim docum As NotesDocument
    Dim doc As NotesDocument
    Set doc=ws.CurrentDocument.Document
    Set db=ses.CurrentDatabase
    Set view = db.GetView("(sotr)")
    Dim arr(0 To 1) As String

    arr(0) = a(0)
    arr(1) = b(0)

    Set docum=view.GetDocumentByKey(arr)

    If Not(docum Is Nothing) Then
    check_sotr =True
    End If

    End Function[/codebox]
     
  19. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Не видит документа по ридерам.
     
  20. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    - забей на это если конечно выше option base 1 не стоит

    точно похоже на проблему доступа
     
Загрузка...
Похожие Темы - СРочно нужна помошь
  1. paNDa
    Ответов:
    3
    Просмотров:
    1.300
  2. Scrum
    Ответов:
    0
    Просмотров:
    1.186
  3. XserX
    Ответов:
    0
    Просмотров:
    977
  4. Marazm
    Ответов:
    0
    Просмотров:
    1.292
  5. GimmyGee
    Ответов:
    1
    Просмотров:
    1.336

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