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

  • Автор темы Mitya
  • Дата начала
M

Mitya

#1
Гуру, утро доброе!

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

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

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

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

garrick

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

Mitya

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

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

savl

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

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

lmike

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

gpatron

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

Dragon108

Well-known member
19.01.2010
265
0
#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
#9
Гуру, утро доброе!

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

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

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

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

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

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

garrick

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

gpatron

Active member
13.08.2009
26
0
#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
#12
А в Компании есть отдел отчетности или нечто похожее?
Возможно системы типа Информатики и обслуживающий их персонал?
Можно было бы выгружать необходимые данные в реляционку и пусть бы пользователи получали отчет из соответствующих систем.
Во-первых, если есть единый интерфейс для получения отчетов из любых систем, то это удобнее для пользователей.
Во-вторых это более правильно с точки зрения реализации подобного рода вещей.
 

duchan

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