Web и Lotus

yerke

Well-known member
28.08.2007
392
0
#1
Привет, всем!
У меня вот такой вопрос.
Имеется база «Деканат», где содержатся вся успеваемость каждого студента. И в базе существует форма авторизации, где студент набрав свой логин и пароль, и потом нажав на кнопку, может получить транскрипт (данные об оценках) на Word-е. Все это я сделал на лотус скрипте и на лотус клиенте все работает.
Теперь мне надо, чтоб все это работало на браузере. Сказали что надо писать на Java. Посмотрел по хелпу: ту часть программы, где реализована импорт данных в ворд можно написать на Java. А как написать другую часть скрипта на Java, где происходить авторизация. Я так понял, что Java не имеет связи с Юзер Интерфейсом, тогда как мне получить данные c полей Юзер Интерфейса (с формы авторизации) и выдавать сообщение, если юзер не правильно ввел логин и(или) пароль.
P.S.
Версия лотуса 5.0.8
 
D

Dikobraz Grey

#2
А почему вы не хотете просто окрыть lotus документ в браузере? При спользовании Java скрипт это можно неплохо отрисовать... И зачем Вам java? Как я Вас понял, процедуру отбора данных можно оставить на лотусах...
 

yerke

Well-known member
28.08.2007
392
0
#4
<!--QuoteBegin-Dikobraz Grey+11:09:2007, 09:55 -->
<span class="vbquote">(Dikobraz Grey @ 11:09:2007, 09:55 )</span><!--QuoteEBegin-->А почему вы не хотете просто окрыть lotus документ в браузере
[snapback]77794" rel="nofollow" target="_blank[/snapback]​
[/quote]

документ не открывается
просто создается новый документ на основе формы авторизации при открытии базы
там юзер вводит логин и пароль
и нажимает на кнопку
а сам документ не сохраняется он служит только для ввода логина и пароля

а кнопка содержит скрипт где
проверятся логин и пароль
если они корректны то выводится трансрипт на ворд

все это надо перевести на java чтоб на браузере работало

<!--QuoteBegin-Mihal+11:09:2007, 10:06 -->
<span class="vbquote">(Mihal @ 11:09:2007, 10:06 )</span><!--QuoteEBegin-->А какая ОС на сервере? Linux, Windows?
[snapback]77800" rel="nofollow" target="_blank[/snapback]​
[/quote]

windows 2003
а что это меняет
 

alb

Well-known member
13.07.2005
212
0
#6
ух ты!!! из веб интерфейса в ворд!!! у кого это получилось по подробней плиз.
 
M

Mihal

#7
<!--QuoteBegin-yerke+11:09:2007, 11:08 -->
<span class="vbquote">(yerke @ 11:09:2007, 11:08 )</span><!--QuoteEBegin-->windows 2003
а что это меняет
[snapback]77802" rel="nofollow" target="_blank[/snapback]​
[/quote]

Ну, можно повесить агента на скриптах, который будет формировать файл оффисный. И файл этот можно:
1. Отправлять по почте.
2. Открывать в бройзере.

Почти ничего менять не надо. Форма и WebQuerySave агент.
 

yerke

Well-known member
28.08.2007
392
0
#9
<!--QuoteBegin-Mihal+11:09:2007, 23:57 -->
<span class="vbquote">(Mihal @ 11:09:2007, 23:57 )</span><!--QuoteEBegin-->Ну, можно повесить агента на скриптах, который будет формировать файл оффисный. И файл этот можно:
1. Отправлять по почте.
2. Открывать в бройзере.

Почти ничего менять не надо. Форма и WebQuerySave агент.

[snapback]77891" rel="nofollow" target="_blank[/snapback]​
[/quote]

допустим что агент останется на скриптах
его вызываем с помощью кнопки
который расположен на форме
@-командой

вторую часть скрипта который формирует офис файл можно оставит без изменения
или можно показать транскрипт с помощью HTML файла прямо на браузере, формировав его процедурой PRINT. Это понятно.

но как получить значения полей логин и пассворд
ведь для того чтобы формировать HTML файл с транскриптом
сперва скрипт должен же проверить веденный пользователем логин и пароль

но как я знаю
NotesUIWorkspace не поддерживается в веб агентах написанные на лотус скрипте:

LotusScript and Java on the Web
A Web agent can be written in:

1)LotusScript. This is the only context in which a Web application can use LotusScript. Anything that runs in the browser, such as an action, hotspot, or event, cannot contain LotusScript.
LotusScript agents activated from the Web cannot use any of the classes NotesTimer, NotesUIDatabase, NotesUIDocument, NotesUIView, or NotesUIWorkspace.
 
M

Mihal

#10
<!--QuoteBegin-yerke+13:09:2007, 09:54 -->
<span class="vbquote">(yerke @ 13:09:2007, 09:54 )</span><!--QuoteEBegin-->но как получить значения полей логин и пассворд
ведь для того чтобы формировать HTML файл с транскриптом
сперва скрипт должен же проверить веденный пользователем логин и пароль
[snapback]78112" rel="nofollow" target="_blank[/snapback]​
[/quote]

Тю!
В WebQuerySave агенте пишете конструкцию

Set doc=session.DocumentContext
login=doc.login(0)
password=doc.password(0)

И дальше проверяйте себе наздоровье.
В общем, получите почти то же, что и при ws.CurrentDocument.Document. Вернее, получите даже больше ;).
 

yerke

Well-known member
28.08.2007
392
0
#11
Для: Mihal


спасибо огромное
оказывается все так просто
;) :D



можно еще вопрос
почему на веб агенте написанный на лотус скрипте

не работает msgbox

как решить это проблему?
 
M

Mihal

#12
<!--QuoteBegin-yerke+13:09:2007, 10:31 -->
<span class="vbquote">(yerke @ 13:09:2007, 10:31 )</span><!--QuoteEBegin-->не работает msgbox
[snapback]78129" rel="nofollow" target="_blank[/snapback]​
[/quote]

Ну, не работает. Но! Всё то, что вы выводите Print'ом идёт прямо в контекст броузера. То есть принтами можно агент вырисовывать.

Но я бы на вашем месте делал бы агентом документ. Из двух итемов. Верхнее - текстовое ("Дапашливы!" или "Вот ваши данные!"). Нижнее - ричтекстовое с файликом. И этот документ открывал бы в броузере (Print "[" & LinkToTheDocument & "]"). Заодно будете иметь лог кто чаво хотел.

И не забудьте агенту поставить 3-й уровень runtime security level (вторая закладка свойств агента).
 

alb

Well-known member
13.07.2005
212
0
#13
msgbox работает только в случае доступа через web сообщения выводиться на консольное окно сервера. и это не видно web пользователю
встречный вопрос каким образом ты формируешь файл Word-а. через com объекты или как то по другому. из клиента в ворд выгрузку я так делал. но когда клиент броузер это агент на сервере формирует? у меня это почемуто не получалось постоянно выходил ошибка приложении короче word отказывался работать на сервере.
сервер естественно MS2003
 
M

Mihal

#14
Для: alb
Посмотри какой у агента runtime security level (вторая закладка свойств агента). И кем агент подписан.
 

alb

Well-known member
13.07.2005
212
0
#15
агент подписан пользователем кому разрешено все ограниенные действия
а у агента секюрити левел снало поставил 2 потом поставил 3

объект ворда нормально создается только потом уже проиходить ошибка имменно ворда а не лотуса
пока грешу на уорд поробую на другой машине потом скажу

и на память тоже думаю, объем памяти роли играет? она там сервере только 512м
это какбы полигон(машина)
обычно там тестирую потом переношу все на рбочую машину

я правильно понимаю скррипт коорый работает на клиенте лотуса, выгружающий в ворд через cом объекты должен работать и на сервера
 
M

Mihal

#16
<!--QuoteBegin-alb+13:09:2007, 13:27 -->
<span class="vbquote">(alb @ 13:09:2007, 13:27 )</span><!--QuoteEBegin-->я правильно понимаю скррипт коорый работает на клиенте лотуса, выгружающий в ворд через cом объекты должен работать и на сервера
[snapback]78195" rel="nofollow" target="_blank[/snapback]​
[/quote]

Ну, я мутил через OLE. На серваке должОн стоять ворд (эксель). Код я переносил втупую. Всё работало как дети в школу. Единственное напоролся на секурити левел. Да, когда-то при работе с ОЛЕ мне по лбу больно стукнул касперский. Отключаешь - работает. Включаешь - тишина.
 

yerke

Well-known member
28.08.2007
392
0
#17
Для: Mihal
с авторизацией разобрался
но возник проблемы с выгрузкой на ворд
после авторизации запускается следующая процедура которая выгружает данные на ворд
раньше на лотус клиенте это процедура выгружала данные в локальный компьютер
а через веб браузер данные выгружается в сервер
то есть папка C:\Temp5 и файл Transcript.doc создается на сервере
и после завершения работы агента файл открывается на сервере
Set wdApp=CreateObject("Word.Application")
wdApp.Documents.Open(wdPath)
wdApp.Visible=True

а мне надо чтоб файл создавался и открывался в компьютере клиента
как решить эту проблему?

Для: alb
Код:
Sub wdOut
If Dir("C:\Temp5",16)="" Then Mkdir "C:\Temp5"
wdPath="C:\Temp5\Transcript.doc"	
Open wdPath For Output As #1
Print #1, {<html>}+_
+{<head>}+_
+{<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>}+_
+{<title></title>}+_
+{</head>}+_
+{<body> Бла бла бла өлә жарайсың}+_
+{</body>}+_
+{</html>}
Close #1	
'=
Set wdApp=CreateObject("Word.Application")
wdApp.Documents.Open(wdPath)
wdApp.Visible=True		
End Sub
 
S

Sandr

#18
Для: Mihal
с авторизацией разобрался
но возник проблемы с выгрузкой на ворд
после авторизации запускается следующая процедура которая выгружает данные на ворд
раньше на лотус клиенте это процедура выгружала данные в локальный компьютер
а через веб браузер данные выгружается в сервер
то есть папка C:\Temp5 и файл Transcript.doc создается на сервере
и после завершения работы агента файл открывается на сервере
Set wdApp=CreateObject("Word.Application")
wdApp.Documents.Open(wdPath)
wdApp.Visible=True

а мне надо чтоб файл создавался и открывался в компьютере клиента
как решить эту проблему?
Ятут вижу 2 выхода:

1. Документ формировать с помосчью ActiveX, все методы хорошо описаны в МСДНе...
2. Документ ворд создавать на сервере, там же его сохранять, а потом атачить к документу, который открывается ользователем через браузер..

2-й вариант мне нравится больше.. так как у пользователя моет быть и не установен ворд...
 

yerke

Well-known member
28.08.2007
392
0
#19
<!--QuoteBegin-Sandr+14:09:2007, 07:55 -->
<span class="vbquote">(Sandr @ 14:09:2007, 07:55 )</span><!--QuoteEBegin-->Документ ворд создавать на сервере, там же его сохранять, а потом атачить к документу, который открывается ользователем через браузер..
[snapback]78266" rel="nofollow" target="_blank[/snapback]​
[/quote]

я тоже думал об этом
формировать файл на сервере и создать страницу принтом и там поставить линк на файл
и юзер будет скчивать этот файл с сервера

но мне этот вариант не очень нравится по той простой причине
что не хочу забивать сервак офисными файлами юзеров

<!--QuoteBegin-Sandr+14:09:2007, 07:55 -->
<span class="vbquote">(Sandr @ 14:09:2007, 07:55 )</span><!--QuoteEBegin-->1. Документ формировать с помосчью ActiveX, все методы хорошо описаны в МСДНе...
[snapback]78266" rel="nofollow" target="_blank[/snapback]​
[/quote]
а что насчет 1-го варианта подробнее можно