1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Агенты и обновление полей

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

  1. Idea

    Idea Гость

    Репутация:
    0
    Есть серверный агент на Лотус скрипт. Пишется для работе в вебе.
    Суть - после неких операций нужно в зависимости от условия - или вывести что-то типа messagebox-а с фразой - "извини, не выйдет" или запихать некое значение в некое поле текущего дока.
    Проверяю под клиентом. Все проходит без ошибок, в переменной типа variant (mem) есть всё, что надо, но
    Код:
     ...
    doc.Members= mem
    Exit Sub
    и собственно ничего в этом самом поле мемберс не видать. Я так подразумеваю, что не хватает ему рефреша. А как его сделать, учитывая, что это все должно корректно в вебе отработать в итоге?
    На сколько я понимаю, рефреш под вебом - это фактически сохранение дока. Однако строка
    Call doc.Save(True, True, True) ровным счетом ничего не меняет. Как все-таки переписать это самое значение?

    з.ы. заодно подскажите плиз аналог MessageBox для веба, если можно как-нибудь без джава скриптов. Скрещивание джава скрипт с лотус скрипт - это задача мне ещё на пару месяцев.
     
  2. Hedg

    Hedg Гость

    Репутация:
    0
    Поле какого типа???
     
  3. Idea

    Idea Гость

    Репутация:
    0
    текст, влючена опция множество значений, редактируемое
     
  4. Ogion7

    Ogion7 Гость

    Репутация:
    0
    агент запускаеш в броузере?
     
  5. Idea

    Idea Гость

    Репутация:
    0
    и в браузере, и в клиенте запускала - одинаково
     
  6. Hedg

    Hedg Гость

    Репутация:
    0
    Не делал в Лоту се ничё под веб, но поробую посоветовать

    В свойстве поля OnChange втулить что-то типа этого

    Код:
    window.location.reload()
    window.location.href=window.location.href
     
  7. Ogion7

    Ogion7 Гость

    Репутация:
    0
    В хелпе на "web agent" выдает ответ, в котором есть такое
     
  8. Idea

    Idea Гость

    Репутация:
    0
    Браузер - невозможно отобразить страницу
    В клиенте ничего не изменилось

    то есть типа по кнопочке агент не сработает, надо только в эти события их писать? Что-то не верится мне в это.
     
  9. Medevic

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

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Idea
    Как ты агента вызываешь?

    <!--QuoteBegin-Idea+18:04:2007, 16:28 -->
    <span class="vbquote">(Idea @ 18:04:2007, 16:28 )</span><!--QuoteEBegin-->з.ы. заодно подскажите плиз аналог MessageBox для веба, если можно как-нибудь без джава скриптов.
    [snapback]62748" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Жаваскрипт - Alert.
     
  10. Idea

    Idea Гость

    Репутация:
    0
    @Command([ToolsRunMacro]; "ChooseTeam")

    Вообще вот вставляю строку Call doc.Save(True, True, True), закрываю, открываю, всё есть. Вывод - точно рефреша не хватает.
     
  11. Medevic

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

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Откуда получаешь doc в агенте?
     
  12. Idea

    Idea Гость

    Репутация:
    0
    Код:
     
    Dim session As NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim nav As NotesViewNavigator
    Dim entry As NotesViewEntry
    
    Dim doc As NotesDocument
    Dim cldoc As NotesDocument
    Dim prid As Variant
    Dim mem As Variant
    
    Set session= New NotesSession
    Set doc=session.documentcontext
    prid= doc.GetItemValue( "Team" )
    
    Set db = session.CurrentDatabase
    Set view = db.GetView("PeopleByTeam")
    Set nav = view.CreateViewNavFromCategory(prid (0))
    Set entry = nav.GetFirstDocument
    
    If Not(entry Is Nothing) Then	
    Set cldoc = entry.Document
    mem = cldoc.Members
    doc.Members= mem
    'Call doc.Save(True, True, True)
    Else
    Print("No Team with such Leader")
    End If 	
    Exit Sub
     
  13. Medevic

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

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-Idea+19:04:2007, 13:56 -->
    <span class="vbquote">(Idea @ 19:04:2007, 13:56 )</span><!--QuoteEBegin-->'Call doc.Save(True, True, True)
    [snapback]62837" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Всё таки нужно сохранять.
    Если агента вызываешь в WebQuerySave, то не нужно.
    Тогда непонятно чего не работает. Значение не пишется?
     
  14. Idea

    Idea Гость

    Репутация:
    0
    да, хотелось бы, чтоб когда тыкаешь кнопку, было все-таки видно, что в поле что-то изменилось.

    и сразу про Alert:
    что нужно, чтобы вот это
    Код:
     Print "<script LANGUAGE=JavaScript>"
    Print "alert(""No Team with such Leader"")"
    Print "</SCRIPT>"
    заработало?
    в том же самом агенте. пока ничего не всплывает:)
     
  15. Idea

    Idea Гость

    Репутация:
    0
    и ещё, в клиенте-то ещё хоть как-то пашет. а в браузере пишет внутреннюю ошибку сервера.
     
  16. Idea

    Idea Гость

    Репутация:
    0
    Для тех, у кого возникнут аналогичные проблемы (моя счастливо разрешилась):
    1) юзайте где можно @DBLookup
    2) проверяйте триггеры агентов (что б их... )
    3) вешайте на WebQuerySave код
    Код:
    	Set session= New NotesSession
    Call session.documentcontext.compwithform()
    Call session.documentcontext.save(True,False)
    для пересчета лукапов и прочих формул.

    Спасибо всем откликнувшимся
     
Загрузка...

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