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

Тема в разделе "Lotus - Программирование", создана пользователем Mitya, 4 июл 2013.

  1. Mitya

    Mitya Well-Known Member

    Регистрация:
    13 июн 2012
    Сообщения:
    111
    Симпатии:
    0
    Гуру, утро доброе!

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

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

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

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

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    Корректно ли показывать пользователю то, что он не должен видеть? Если "да", то единственный выход
     
  3. Mitya

    Mitya Well-Known Member

    Регистрация:
    13 июн 2012
    Сообщения:
    111
    Симпатии:
    0
    "описание документа" можно и не показывать, нужно только кол-во.

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

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Нет, запущенные на сервере агенты не интерактивны. Если ты откроешь Excel на экран, то он откроется на сервере.
    Можно сформировать xls на сервере, сохранить и выслать пользователю письмо с файлом.
    Но для этого нужен небольшой документик-запрос, в котором будут параметры поиска документов и LN имя получателя.

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

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    http://codeby.net/forum/threads/41201.html?vi...st&p=235766
    и никаких ограничений на место запуска, хоть из агента (см. форму экспорт - как запускать)
    может делать отчеты по "связанным" по ключу вьюшкам
    основное - это документ настроек
    не требует эхеля вовсе, либу ставить в каталог jvm/lib/ext (на клиенте есть агент, на сервере - руками)
     
  6. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    Данные из документа, который не видит пользователь, можно отобразить во view в категоризованной колонке.
     
  7. gpatron

    gpatron Active Member

    Регистрация:
    13 авг 2009
    Сообщения:
    26
    Симпатии:
    0
    укажите в свойствах агента от какого имени выполнять (имя пользователя у которого есть права на просмотр всех нужных документов) и будет Вам счастье
     
  8. Dragon108

    Dragon108 Well-Known Member

    Регистрация:
    19 янв 2010
    Сообщения:
    264
    Симпатии:
    0
    А разве эта опция не только для серверных агентов?

    Хелп:

    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"
     
  9. Dragon108

    Dragon108 Well-Known Member

    Регистрация:
    19 янв 2010
    Сообщения:
    264
    Симпатии:
    0
    Вот за такие вот требования "пользователь видит не все документы, но в отчет эти документы должны попасть" надо язык этим пользователям отрывать ИМХО.

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

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

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    Ещё можно сделать отчёт, доступный по HTTP. Пользователь вводит в броузере URL, на QueryOpen на сервере формируется отчёт и выплёвывается в окно браузера. Можно ту же фичу проделать и в UI Lotus Notes - зашить этот URL в какую-нибудь кнопку и открывать по @URLOpen. Да вообще много разных вариантов, ешё на ум приходит NotesAgent.RunWithDocumentContext, но в любом случае отчёт формируется на сервере, от имени пользователя которому "видно" все документы.
     
  11. gpatron

    gpatron Active Member

    Регистрация:
    13 авг 2009
    Сообщения:
    26
    Симпатии:
    0
    согласен...

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

    Baneslaer Well-Known Member

    Регистрация:
    25 янв 2011
    Сообщения:
    121
    Симпатии:
    0
    А в Компании есть отдел отчетности или нечто похожее?
    Возможно системы типа Информатики и обслуживающий их персонал?
    Можно было бы выгружать необходимые данные в реляционку и пусть бы пользователи получали отчет из соответствующих систем.
    Во-первых, если есть единый интерфейс для получения отчетов из любых систем, то это удобнее для пользователей.
    Во-вторых это более правильно с точки зрения реализации подобного рода вещей.
     
  13. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
  14. duchan

    duchan Well-Known Member

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

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
Загрузка...

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