Отчетность В Lotus-e

Mitya

Well-Known Member
13.06.2012
111
0
#1
Гуру, утро доброе!

Необходимо сделать отчет в .xls

Проблем состоит в том, что пользователь видит не все документы, но в отчет эти документы должны попасть.

Думал запускать агент (отчет) на сервере, но правильно ли это?

Подскажите вкратце, как реализовать. Спасибо.
 

garrick

Well-Known Member
Lotus team
26.10.2009
865
68
Москва
#2
Проблем состоит в том, что пользователь видит не все документы, но в отчет эти документы должны попасть.
Корректно ли показывать пользователю то, что он не должен видеть? Если "да", то единственный выход
Думал запускать агент (отчет) на сервере, ...
 

Mitya

Well-Known Member
13.06.2012
111
0
#3
Корректно ли показывать пользователю то, что он не должен видеть?
"описание документа" можно и не показывать, нужно только кол-во.

и если запускать агент на сервере, то смогу ли я вернуть коллекцию документов пользователю, чтобы на PC пользователя формировался xls ?
 

savl

Well-Known Member
Lotus team
28.10.2011
2 116
157
32
#4
Нет, запущенные на сервере агенты не интерактивны. Если ты откроешь Excel на экран, то он откроется на сервере.
Можно сформировать xls на сервере, сохранить и выслать пользователю письмо с файлом.
Но для этого нужен небольшой документик-запрос, в котором будут параметры поиска документов и LN имя получателя.

Но еще раз, точно ли надо показывать то, что пользователь не имеет права видеть?
Если ему нужно строить такие отчеты по служебной необходимости, то дайте ему права видеть(читать, но не править) эти документы и пусть на клиенте строит отчеты.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 429
351
homepage.mac.com
#5
http://codeby.net/forum/threads/41201.html?vi...st&p=235766
и никаких ограничений на место запуска, хоть из агента (см. форму экспорт - как запускать)
может делать отчеты по "связанным" по ключу вьюшкам
основное - это документ настроек
не требует эхеля вовсе, либу ставить в каталог jvm/lib/ext (на клиенте есть агент, на сервере - руками)
 

gpatron

Active Member
13.08.2009
26
0
36
Тирасполь
#7
укажите в свойствах агента от какого имени выполнять (имя пользователя у которого есть права на просмотр всех нужных документов) и будет Вам счастье
 

Dragon108

Well-Known Member
19.01.2010
265
0
30
Россия
#8
укажите в свойствах агента от какого имени выполнять (имя пользователя у которого есть права на просмотр всех нужных документов) и будет Вам счастье
А разве эта опция не только для серверных агентов?

Хелп:

When a user runs an agent from the Notes client, the agent runs with the rights of the effective user, which is the current User ID.

"Run on behalf of" only applies to web - and scheduled agents.

Т.е. также можно запустить на сервере, но права у агента будут не те, чьей учеткой он подписан, а те, кто указан "Run on behalf of"
 

Dragon108

Well-Known Member
19.01.2010
265
0
30
Россия
#9
Гуру, утро доброе!

Необходимо сделать отчет в .xls

Проблем состоит в том, что пользователь видит не все документы, но в отчет эти документы должны попасть.

Думал запускать агент (отчет) на сервере, но правильно ли это?

Подскажите вкратце, как реализовать. Спасибо.
Вот за такие вот требования "пользователь видит не все документы, но в отчет эти документы должны попасть" надо язык этим пользователям отрывать ИМХО.

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

Ну либо еще, как говорил susinmn, вьюху с тоталами
 

garrick

Well-Known Member
Lotus team
26.10.2009
865
68
Москва
#10
Ещё можно сделать отчёт, доступный по HTTP. Пользователь вводит в броузере URL, на QueryOpen на сервере формируется отчёт и выплёвывается в окно браузера. Можно ту же фичу проделать и в UI Lotus Notes - зашить этот URL в какую-нибудь кнопку и открывать по @URLOpen. Да вообще много разных вариантов, ешё на ум приходит NotesAgent.RunWithDocumentContext, но в любом случае отчёт формируется на сервере, от имени пользователя которому "видно" все документы.
 

gpatron

Active Member
13.08.2009
26
0
36
Тирасполь
#11
А разве эта опция не только для серверных агентов?

Хелп:

When a user runs an agent from the Notes client, the agent runs with the rights of the effective user, which is the current User ID.

"Run on behalf of" only applies to web - and scheduled agents.

Т.е. также можно запустить на сервере, но права у агента будут не те, чьей учеткой он подписан, а те, кто указан "Run on behalf of"
согласен...

если нужно только посчитать кол-во документов то этого я думаю вполне достаточно...
сначала создаем документ, потом передаем этот документ в качестве параметра агента (запускаем его на сервере от имени пользователя с нужными правами), затем вытаскиваем из БД нужные данные, заполняем документ, а после уже пользователь сможет из этого документа вытащить нужные данные для своего отчета
как-то так
 

Baneslaer

Well-Known Member
25.01.2011
123
0
37
Киев
#12
А в Компании есть отдел отчетности или нечто похожее?
Возможно системы типа Информатики и обслуживающий их персонал?
Можно было бы выгружать необходимые данные в реляционку и пусть бы пользователи получали отчет из соответствующих систем.
Во-первых, если есть единый интерфейс для получения отчетов из любых систем, то это удобнее для пользователей.
Во-вторых это более правильно с точки зрения реализации подобного рода вещей.
 

duchan

Well-Known Member
20.09.2006
108
3
45
Красноярск
#14
@Dragon108 - Статистические данные и доступ к информации это разные вещи.
@Mitya, вопрос в том на сколько объемный получается отчет, если это небольшая статистическая таблица, то как писал выше @gpatron, создаем временный док-т (возможно в какой-то temp-овой базе), сохраняем его, в агент передаем параметром его NoteID, на сервере в серверном агенте получаем его (док-т) и заполняем поле списком с полученными параметрами. Я писал в поле примерно так
Код:
Иванов И.И.|123|234|456|987
Петров П.П.|222|333|444|555
Сидоров С.С.|321|543|765|999
Каждый элемент списка это строка таблицы. Далее сохранял этот док-т на сервере и возвращал управление клиенту. На клиенте переполучал документ, и строил таблицу в Ворде\Экселе перебирая элементы списка поля, Split'ом дробя строку по "|" и выводя в таблицу полученный массив.
Помните только об ограничениях простых полей на объем хранимой информации ... ;)