Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/179: Рейтинг темы: голосов - 179, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 03.02.2007
Сообщений: 821

Получить текущий документ в Web

21.02.2008, 12:28. Показов 32851. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть форма, на ней есть Кнопка...
При нажатии на нее - запускается агент

Code
1
<a href=\"/"+@WebDbName +"\\имя_агента?OpenAgent\">
Подскажите, пожалуйста, как получить в агенте текущий документ????, при условии что этот документ не сохранен и его не нужно сохранять...

Я уже как-то пробывал передавать параметры... типа (не знаю правильно или не правильно)

Code
1
<a href=\"/"+@WebDbName +"\\имя_агента?OpenAgent&param="+@Text(@DocumentUniqueID)+"\"
Там я получаю этот @Text(@DocumentUniqueID), а куда там его впихнуть, типа getdocumentByUnid, или как правильно?
Вообщем помогите, плз....
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.02.2008, 12:28
Ответы с готовыми решениями:

Ссылка на текущий документ (web)
Необходимо при сохранении документа отправлять сообщение на определённый адрес с ссылкой на текущий документ. Подскажите как получить эту...

Закрыть текущий документ в Web
Закрываю документ следующим образом: window.close(); Подскажите, пожалуйста,как сделать, чтобы перед закрытием документа не...

Встроенное представление и текущий документ
Привет всем. Есть форма со встроенным представлением. Можно ли как-нибудь выделить в этом представлении текущий документ (цветом) из...

23
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
21.02.2008, 12:40
Попробуй использовать свойство notesSession.DocumentContext.
0
0 / 0 / 0
Регистрация: 19.07.2007
Сообщений: 1,098
21.02.2008, 13:24
Если агент вызывается через урл, то notesSession.DocumentContext не вернет текущий документ. ДЖля того, что бы получить определенный дкоумент в агенте, который вызывается по урлу, необходимо передать унид документа в параметре урла.
например


Code
1
<a href=\"/"+@WebDbName +"\\имя_агента?OpenAgent&param="+@Text(@DocumentUniqueID)+"\">
А в самом кгенте зачитать этот парам из Query_String

Code
1
2
3
4
5
6
 dym s as new notesSession
Set db = s.CurrentDatabase
Set wdc = s.DocumentContext
 
webdbname = Replace(db.FilePath, "\", "/")
unid = Evaluate({@trim(@Right(@explode(Query_String_Decoded; "&"); "param="))} ,wdc)
0
0 / 0 / 0
Регистрация: 03.02.2007
Сообщений: 821
21.02.2008, 14:40
Не совсем понимаю , unid я получал сам,... но так и не смог я с ним получить документ
А также зачем webdbname???
Для того чтобы использовать GetDocumentByURL ????????? Вообщем можно немного поподробнее?
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
21.02.2008, 14:53
С вебом работал мало, но, чувствую, сложно будет получить документ, которого нет (т.е. не сохранен) в базе.
0
0 / 0 / 0
Регистрация: 19.07.2007
Сообщений: 1,098
21.02.2008, 14:55
@WebDbName возвращает веб ссылку на базу данных (хотя я использую @Subset(@DBName; -1).
Унид Вам нужно передать в агент, что бы в нем получить документ используя db.getDocumentByUNID.

Что в моем примере не понятно?
0
0 / 0 / 0
Регистрация: 03.02.2007
Сообщений: 821
21.02.2008, 14:57
но unid какой-то длинный находит
0
0 / 0 / 0
Регистрация: 19.07.2007
Сообщений: 1,098
21.02.2008, 14:59
Цитата Сообщение от Medevic
С вебом работал мало, но, чувствую, сложно будет получить документ, которого нет (т.е. не сохранен) в базе.
Это точно сказано, в агенте, который вызывается по урлу несохраненный документ не получишь.
Я стараюсь использовать тулзранмакро для вызова агента в ВЕБе - во первых данные постятся на сервер, во вторых документ получить проще (notessession.documentcontext)...
0
0 / 0 / 0
Регистрация: 03.02.2007
Сообщений: 821
21.02.2008, 14:59
Вот это зачем мне в агенте? : webdbname = Replace(db.FilePath, "\", "/")
0
0 / 0 / 0
Регистрация: 19.07.2007
Сообщений: 1,098
21.02.2008, 15:01
Для: wowa
в смысле длинный? 32 символа B). Что передали - то и нашлось... Вы же наверняка знаете, что Evaluate возвращает variant...
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
21.02.2008, 15:09
Возможно, еще несохраненный документ можно будет получить используя свойство notesSession.DocumentContext и событие WebQuerySave. Т.е. испольуя кнопку Submit. В самом агенте документ не сохранять.

<!--QuoteBegin-wowa+22:02:2008, 15:44 -->
<span class="vbquote">(wowa @ 22:02:2008, 15:44 )</span><!--QuoteEBegin-->но unid какой-то длинный находит
[snapback]99248" rel="nofollow" target="_blank[/snapback]?[/quote]
Наличие unid еще не значит, что документ сохранен в базе. B)
0
0 / 0 / 0
Регистрация: 03.02.2007
Сообщений: 821
21.02.2008, 15:17
Для: Sandr
Что я не правильно делаю? , давай заново
на кнопке прописано

Code
1
......<a href=\"/"+@WebDbName +"\\имя_агента?OpenAgent&param="+@Text(@DocumentUniqueID)+"\">......
В агенте


Code
1
2
3
4
5
6
7
8
9
10
Dim s As New NotesSession
Set db = s.CurrentDatabase
 
Dim wdc As NotesDocument
Dim doc As NotesDocument
 
Set wdc = s.DocumentContext
 
unid = Evaluate({@trim(@Right(@explode(Query_String_Decoded; "&"); "param="))} ,wdc)
Set doc = db.GetDocumentByUNID(unid(0))
0
21.02.2008, 16:30
Кнопка Submit и событие WebQuerySave тебя точно спасет, как и упоминал уважаемый Medevic.
Это намного быстрее и проще, чем разгребаться с унидами.
0 / 0 / 0
Регистрация: 03.02.2007
Сообщений: 821
21.02.2008, 16:46
Что за кнопка и как ее использовать ? (((
0
21.02.2008, 17:32
<form action=здесь можно указать что угодно>
[FIELD] лотусное поле
<input type="submit" name="button" value="Нажми меня нежно" >
</form>

Короче, по клику кнопки submit происходит событие WebQuerySave для твоей формы, по нему нужно запускать агент, который через notessession.contextdocument перехватит документ запроса и все его содержимое соответственно
21.02.2008, 17:57
Забыл добавить, что всю эта прелесть лучше просто нарисовать на форме и веб-юзверю преподносить именно формой, а не документом, только тогда ему откроется возможность заполнять поля и отсылать данные на сервер (насколько я понял, задача стоит именно так)

А чтобы совсем исчезли неясности: в атрибуте action тега form обычно приводится адрес программы-обработчика запроса, то бишь cgi-скрипта, однако в данном случае agent вызывается через WebQuerySave, поэтому можешь просто вписать параметром урл страницы, на которую хочешь перевести юзера, либо же вообще его опустить, а перевести уже исполяющимся агентом
0 / 0 / 0
Регистрация: 19.07.2007
Сообщений: 1,098
21.02.2008, 22:42
Для: Программер

Не путайте человека сабмитом... Не всегда документ нужно сохранять при вызове агента.. даже чаще его сохранять не надо...А сабмит его сохранит...

Для: wowa

Я же написал выше



Я стараюсь использовать тулзранмакро для вызова агента в ВЕБе - во первых данные постятся на сервер, во вторых документ получить проще (notessession.documentcontext)...
Тоесть, лепите кнопку на форму, код кнопки @Command([ToolzRunMakro];"Имя агента")

В этом агенте текущий окумент notessession.documentcontext

Кнопку можете кликать так, как вам угодно, в том числе и яваскриптом.

Code
1
document.getElementById("ID княпки").click();
Если не хотите, чт обы кнопка светилась, на последней закладке в свойстве кнопке в параметре style напишите display:none.

Что еще сказать? Лотус в ВЕБе очень гибкий.. выходов из люьой ситуации можно найти море...

ЗЫ: чистый сабмит использую о-о-очень редко...
0
0 / 0 / 0
Регистрация: 03.02.2007
Сообщений: 821
24.02.2008, 12:00
Sandr
Большое Спасибо! +1... Сработало как надо!
0
0 / 0 / 0
Регистрация: 03.02.2007
Сообщений: 821
25.02.2008, 16:37
Sandr , может ты знаешь, почему не работает


Code
1
2
    Set doc = s.DocumentContext
Call doc.ReplaceItemValue( "LEA_SD_StringSearch_TX", "бла-бла-бла")
Т.е. у меня не получается при нажатии на кнопку занести значение в поле.... Тут какие-то особенности?
0
25.02.2008, 17:06
Может быть, ты просто не сохраняешь документ ?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.02.2008, 17:06
Помогаю со студенческими работами здесь

Подсветить текущий документ в Embedded View
Приветствую Всех!!! Нужна Ваша помощь. Есть документ в котором есть встроенный вид, в это виде в отображаются документы подобный тому в...

Могу ли из Swinga редактировать текущий документ?
Здоровечка! Скажите, пожалуйста, как лучше решать такую задачу: есть java агент который что-то делает и надо результат запостить в...

Как передать значение из Dialogbox в текущий документ?
Я на формы и view по «Shared Action» вызываю диалог «Рейтинг отзыва» . На форме диалога у меня есть кнопка «Применить» (Hotspot). Мне...

Документ настроек (профайл) в Web
Вот есть БД под Лотус, перевожу ее под Веб Мне нужно перевести профайл... Ну вот создам я форму под Веб, а как сделать чтобы все...

Как сохранить документ в Web и при этом не перезагрузить страницу.
Когда я сохраняю документ на формулах у меня происходит перезагрузка страницу, в результате чего значение в полях типа диалог лист...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru