Open Source

  • Автор темы oshmianski
  • Дата начала
O

oshmianski

вот тестовый вариант бд, в которой можно выбрать до 3-х форм.
пока не добавлены доработки fedotxxl.
особенности:
1. пока реализован сброс данных только в Excel
2. для того, чтобы все источники попали в строку запроса, они должны присутствовать в Условии отбора (можно даже без полей).

жду пожеланий
 

Вложения

  • Reports_mutl_temp.zip
    210,3 КБ · Просмотры: 289
F

fedotxxl

Для: oshmianski
Если все источники должны находится на одном серевере и в одной базе, то, мне кажется, основоной смысл отчетов по нескольким источникам теряется...
 
O

oshmianski

Для: oshmianski
Если все источники должны находится на одном серевере и в одной базе, то, мне кажется, основоной смысл отчетов по нескольким источникам теряется...
в данном случае под разными источниками понимается разные формы из одной бд.
ребята, я ни на чем не настаиваю. просто предлагаю такой вариант. дело в том, что проект расчитан на неопытного пользователя, и не особо хочется его усложнять. я видел похожие проекты, в которых сам еле разбирался (может даже не на все 100%), или просто отбрасывал, как слишком сложные.

это предоложение эмулирует (ну или почти) стандартную лотусовую вьюху в дизайнере. все источники должны находится в одной бд, т.к. FTSearch идет по одной бд. FTSearch = Form Formula. вот, в принципе такая идея.

зы: проект вообще задумывался как эмулятор дизайнера вьюхи для пользователя с возможностью выгрузки в сторонние приложения, как то IE, Excel, XML.
 
F

fedotxxl

Думаю нужно вот что сделать твердо, а дальше натягивать дизайн
1. Возможность отбора данных в ячейку по полю и по формуле
2. Возможность отображения на один документ нескольких строк
3. Отбор документов из нескольких баз
4. Прием извне DocCollection (например из какого-нить вьюка UnprocessedDocuments), соотв. проверка и обработка

Я что-то не смог придумать ситуацию, когда нужно использовать отбор документов когда поле содержит что-то, что вычисляется по формуле...
 
A

allex

Я что-то не смог придумать ситуацию, когда нужно использовать отбор документов когда поле содержит что-то

Ну например, мы имеем документооборот---> срок исполнения и фактическую дату исполнения.

Как отобрать документы в которых фактическая дата исполнения пустая.
 
O

oshmianski

...
Уже лет Х% прошло с тех пор,
Сменились обстоятельства, места и время,
И видимся теперь всего У% раза в год,
Случайно или в дни рождения.
...

Здравствуйте, все!


Ну, что сказать.
Выкладываемая версия не Open Sorce. Много коммерческого кода.
Тем не менее, проект продвинулся.

Описание .

Будет интерес - пишите, будем развиваться.
 

Вложения

  • Reports_Public.rar
    909,9 КБ · Просмотры: 219
P

phantom76

что-то у меня репорт валит клиента 7.0.1 , пока попробывал по 1бд с количеством документов 50 тыс , при нажатии кнопки поиск клиент умирает... :(

для теста поиск делал всего по 1 полю, таких документов в бд несколько штук..
 
O

oshmianski

phantom76
спасибо, потестирую на досуге.
 
O

oshmianski

phantom76

создал тестовую бд с 100 001 документами.
на форме 4 поля.
поиск работает без проблем.
советую попробовать на 7.0.2 или 6.5. в 7.0.1 я не тестировал.

вот часть кода на кнопке "Поиск"

Код:
If Not NotFTCombineSearchString (doc4Process, searchString, "") Then Exit Function

Call doc4Process.ReplaceItemValue ("NotFTSearchString", searchString)

If Not FormulaCheckSyntax (doc4Process, "NotFTSearchString") Then Exit Function

Set col = db.Search (doc4Process.GetItemValue ("NotFTSearchString")(0), Nothing, 0)
вроде ничего криминального нету.
поле NotFTSearchString - это "Строка запроса" на закладке "Эксперт".
попробуйте собрать строку запроса (кнопка "Собрать" на закладке "Эксперт") и выполнить ее где-нить (db.Search).
интересен результат.

в функции FormulaCheckSyntax используется Evaluate(|@CheckFormulaSyntax(| & fName & |)|, doc4Process),
где fName = "NotFTSearchString".
опять же советую собрать строку и использовать описанную выше конструкцию валидации формулы.
что 7.0.1 скажет?
 
P

PaKo

oshmianski
А как работают связки? Пытаюсь связать документы созданные по 2-м формам и ничего не находит. можно ли вывести поля как из первого д-та так и второго сразу в один отчет?
 
O

oshmianski

PaKo
Я предполагал что будет связка UNID (родитель) -> UNIDParent (ребенок).
Например, UNID (Компания) -> UNIDConpany (Сотрудник). Поля могут называть как угодно, главное, чтобы смысл сохранялся.
Схема связывания разрисована в приложенных картинках (1-3). И, кстати, лучше связывать в документе источника, а не в самом фильтре, тогда система должна сама собрать связь и заморачиваться не нужно.
Закладку "Эксперт" фильтра для обратной связи см. на рис 4.

Может быть ситуация с прямой связью.
Т.е. нужно отобрать по каким-то критериям сотрудников, а уже по ним вывести в отчет связанные с ними компании.
Связка и тут должна нормально работать, но нужно указать только ссылку для дочернего объекта на родительский (см. рис. 5).
При этом в отчет дубли не выводятся.

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

В отчет выводятся поля документов только одного типа. Да и настройка для отображаемых в отчете полей есть только для одного (возвращаемого) типа документов. Если есть потребность в данной доработке, то пиши - попробуем реализовать.
 

Вложения

  • link1.gif
    link1.gif
    51,6 КБ · Просмотры: 456
  • link2.gif
    link2.gif
    58,5 КБ · Просмотры: 653
  • link3.gif
    link3.gif
    41 КБ · Просмотры: 365
  • link4.gif
    link4.gif
    44,2 КБ · Просмотры: 461
  • link5.gif
    link5.gif
    44,8 КБ · Просмотры: 570
P

PaKo

В отчет выводятся поля документов только одного типа. Да и настройка для отображаемых в отчете полей есть только для одного (возвращаемого) типа документов. Если есть потребность в данной доработке, то пиши - попробуем реализовать
у меня есть такая потребность. Внутренний заказчик желает видеть в одном отчете всю информацию из 2-х форм. Пока я смог всетаки связать формы в запросе и вывести данные одной из них в отчет, но надо данные как из "источника" так и из "возвращаемого объекта". На данный момент с помощью твоей базы частично решил одну проблему (фильтр по источнику и затем вывод всех подчиненных документов через возвращенный объект).
 
O

oshmianski

PaKo
Хорошо, попробую реализовать.
 
O

oshmianski

Версия 1.1 (14.04.2009)
[+] в источник (диалог формирования связи) добавлена возможность указания представления, по которому будет производиться поиск связанных документов
[+] механизм фильтрации доработан с учетом возможности поиска связанных документов в указанном представлении
[+] добавлена опция - отображать родителя (видна для возвращаемого объекта, для обратной связи)
[+] механизм отображения информации доработан с учетом опции - отображать родителя (работает для MS Excel и HTML, для обратной связи)
[+] состав выводимых в отчет полей отображается и настраивается и для источника и для возвращаемого объекта
[*] изменен механизм применения фильтра для возвращаемых документов
[*] убрана возможность настройки взаимосвязи в самом фильтре на закладке "эксперт"
[*] мелкие косметические изменения дизайна
[-] после добавления связи в источник, ее нельзя было больше изменить (выдавалось сообщение <Связь с этим источником уже существует>)

Настоятельно рекомендую для больших объемов указывать представления для поиска связанных документов!
Тестировалось на Notes 7.0.2, Domino 7.0.3FP1.

БД 1 БД 2
Объек 1 (~30 000) ---> |
|| } Объект 3 (~35 000)
\/ }
Объект 2 (~36 000) ---> |
Для обновления переименовать базу в *.ntf и заменить дизайн из нее.
 

Вложения

  • Reports_Public.rar
    930,3 КБ · Просмотры: 205
P

PaKo

Версия 1.1 (14.04.2009)
[+] в источник (диалог формирования связи) добавлена возможность указания представления, по которому будет производиться поиск связанных документов
[+] механизм фильтрации доработан с учетом возможности поиска связанных документов в указанном представлении
[+] добавлена опция - отображать родителя (видна для возвращаемого объекта, для обратной связи)
[+] механизм отображения информации доработан с учетом опции - отображать родителя (работает для MS Excel и HTML, для обратной связи)
[+] состав выводимых в отчет полей отображается и настраивается и для источника и для возвращаемого объекта
[*] изменен механизм применения фильтра для возвращаемых документов
[*] убрана возможность настройки взаимосвязи в самом фильтре на закладке "эксперт"
[*] мелкие косметические изменения дизайна
[-] после добавления связи в источник, ее нельзя было больше изменить (выдавалось сообщение <Связь с этим источником уже существует>)

Настоятельно рекомендую для больших объемов указывать представления для поиска связанных документов!
Тестировалось на Notes 7.0.2, Domino 7.0.3FP1.

БД 1 БД 2
Объек 1 (~30 000) ---> |
|| } Объект 3 (~35 000)
\/ }
Объект 2 (~36 000) ---> |
Для обновления переименовать базу в *.ntf и заменить дизайн из нее.

При выгрузке в Ёксель -
---------------------------
Ошибка
---------------------------
Библиотека libUIMapping.
Функция DOREPORTEXCEL called by CLICK.
Ошибка № 182: Instance member THEMECOLOR does not exist (line: 206).
---------------------------
ОК
---------------------------
 
O

oshmianski

сорри, это свойство добавлено в 2007 офисе, на котором и тестил.
поправил, перевыложил в своем предыдущем посте. протестировано для MS Office 2003 и 2007.
 
P

PaKo

сорри, это свойство добавлено в 2007 офисе, на котором и тестил.
поправил, перевыложил в своем предыдущем посте. протестировано для MS Office 2003 и 2007.
Помогло. Но появилось еще одно но - при выгрузке полей из Источника и возвращаемого объекта в Экселе "каша". В столбцах вместо значения одного поля отображаются данные разных полей. Например в моем случае столбец называется "Имя клиента", и в нем в одной строке "Беларусь" (поле "Регион"), а на след. строчке уже имя.

P.S.

Как только что заметил - получается что в строке X отображаются необходимые поля из источника, а в строке (X+1)...(X+N) поля связанных документов (N - документов). Итого хотелось бы все же если надо 3 поля из источника и 4 из возвр. объекта, то чтоб в Экселе было 7 столбцов, а поля источника дублировались бы в каждой строке. Сейчас у меня получается 4 столбца, и по первым 3-м путаница.
 
O

oshmianski

PaKo
это не каша, это так и задумывалось.
должно было получиться что-то типа респонзной иерархии или группированного списка (родитель специально подсвечивается другим цветом).
что касается вашей задачки. может группированного списка достаточно? ведь зачем дублировать в 10 записях 3 поля из родителя.
если же нет, то мы подходим к необходимости создания некоего конструктора. думать надо.
 
P

PaKo

PaKo
это не каша, это так и задумывалось.
должно было получиться что-то типа респонзной иерархии или группированного списка (родитель специально подсвечивается другим цветом).
что касается вашей задачки. может группированного списка достаточно? ведь зачем дублировать в 10 записях 3 поля из родителя.
если же нет, то мы подходим к необходимости создания некоего конструктора. думать надо.
В принципе сойдет за неимением лучшего. Как вариант предлагаю след. реализацию - строка родителя со столбцами -значениями из него (например столбцов N), а данные детей заносятся ниже, со смещением, т.е. в N+1 столбец и т.д. Неудобство в том что в одном столбце разные поля, а наименование столбца одно, и приходится держать в голове, а иногда вообще догадываться значения каких пролей в столбец выведены (точнее значение какого поля родителя, столбцы д-в детей подписаны).
 
R

Randoom

Подскажите, пожалуйста, какое разрешение необходимо дать юзеру, чтобы у него корректно отрабатывал экшн с оператором отбора данных SELECT?
Иначе ошибка You aren't autthorized to perform that operation: SELECT...
Куда копать, а то самостоятельно пока безуспешно?..

P.S. Возможно, вопрос не совсем в тему open source, тем не менее близок по существу. Спасибо.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!