Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Ср Авг 06, 2008 09:02   |
|
Полезность: 1
|
lexoos пишет: | зы - еще одно возможное решение - пользователь фильтрует представление, с помощью стандартной печати печатает результат в файл, затем запускает операцию формирования отчета, где указывает расположение сформированного файла печати, операция грузит данные и формирует отчет в соответствии с утвержденными формами.
Какие мнения? |
Можно сделать проще. Пользователь наложил фильтр, потом отметил все записи, запустил некую простую операцию у которой установлен признак "Допускает групповую обработку экземпляров". Эта операция записывает ссылку на this в табличку - т.о. формируется список отобранных экземпляров. Потом запускаем отчет, который формируется на основании данных таблички. |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Ср Авг 06, 2008 09:09   |
|
Полезность: Нет оценки
|
вся проблема в том, что в табличке пропадет сортировка указанная пользователем.. _________________ всегда есть как минимум 2 выхода |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Ср Авг 06, 2008 09:25   |
|
Полезность: Нет оценки
|
Alexsey пишет: | вся проблема в том, что в табличке пропадет сортировка указанная пользователем.. |
Так в таблицу ссылки будут записываться в том же порядке, что и на экране пользователя. Можно еще прикрутить порядковый номер при добавлении ссылки в таблицу. |
|
 |
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Ср Авг 06, 2008 15:24   |
|
Полезность: Нет оценки
|
dnk_dz пишет: | Эта операция записывает ссылку на this в табличку - т.о. формируется список отобранных экземпляров. Потом запускаем отчет, который формируется на основании данных таблички. |
А каким образом это сделать в одно действие пользователя, не подскажите? т.е. записали этой операцией временную таблицу ссылок, а по завершении записи чем и как ее обрабатывать и формировать отчет? непойму |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Чт Авг 07, 2008 05:35   |
|
Полезность: Нет оценки
|
lexoos пишет: | dnk_dz пишет: | Эта операция записывает ссылку на this в табличку - т.о. формируется список отобранных экземпляров. Потом запускаем отчет, который формируется на основании данных таблички. | А каким образом это сделать в одно действие пользователя, не подскажите? т.е. записали этой операцией временную таблицу ссылок, а по завершении записи чем и как ее обрабатывать и формировать отчет? непойму |
а затем вызываем списочную операцию и передаем в нее в качестве параметра временную таблицу _________________ всегда есть как минимум 2 выхода |
|
 |
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Чт Авг 07, 2008 05:42   |
|
Полезность: Нет оценки
|
Alexsey пишет: | а затем вызываем списочную операцию и передаем в нее в качестве параметра временную таблицу |
каким образом? проверки в простой операции с групповой обработкой выполняются 1 раз, тело соответственно кол-ву выделенных элементов, откуда запускать то? |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Чт Авг 07, 2008 05:50   |
|
Полезность: Нет оценки
|
проверка выполнилась, таблица заполнилась..
я обычно создаю процедуру и передаю в нее временные таблицы, а там уже делаем все остальное _________________ всегда есть как минимум 2 выхода |
|
 |
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Чт Авг 07, 2008 06:13   |
|
Полезность: Нет оценки
|
Alexsey пишет: | создаю процедуру и передаю в нее временные таблицы, а там уже делаем все остальное |
каким образом? или туплю чего то или не понимаю |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Чт Авг 07, 2008 06:20   |
|
Полезность: Нет оценки
|
например:
Код: | mdt ->type MAIN_DOC_TABLE is table of [MAIN_DOCUM];
begin
...
EXP(mdt);
end; |
а далее процедура
Код: | procedure EXP(list_docs MAIN_DOC_TABLE) is
...
begin
null;
end; |
таблица может быть любого типа _________________ всегда есть как минимум 2 выхода |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Чт Авг 07, 2008 06:23   |
|
Полезность: Нет оценки
|
lexoos пишет: | dnk_dz пишет: | Эта операция записывает ссылку на this в табличку - т.о. формируется список отобранных экземпляров. Потом запускаем отчет, который формируется на основании данных таблички. |
А каким образом это сделать в одно действие пользователя, не подскажите? т.е. записали этой операцией временную таблицу ссылок, а по завершении записи чем и как ее обрабатывать и формировать отчет? непойму |
Как сделать в одно действие, пока придумать не могу. Получается в три действия:
1. Пользователь фильтрует, сортирует, давит Ctrl-A
2. Запускает операцию, которая заполняет временную таблицу.
3. Запускает операцию формирования отчета.
Для удобства операции из пп. 2 и 3 можно привязать на горячие кнопки. |
|
 |
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Чт Авг 07, 2008 06:30   |
|
Полезность: Нет оценки
|
dnk_dz пишет: | 2. Запускает операцию, которая заполняет временную таблицу.
3. Запускает операцию формирования отчета. |
воот над объединенимем этого и бьюсь и по этому задаю вопрос, как и куда передавать заполненную таблицу на обработку, обработать то таблицу надо 1 раз.
Думал, уж совсем туплю.
А можно както обработать закрытие экранной формы операции?
А может такой вариант - при Ок на простой операции с групповухой вызывать plpcall другую подобного вида, которая заполняет табл (поймет ли вызываемая операция выделенные строик?), а по возвращении в исходную операцию уже обрабатывать табл? или вообще уже хрень в голову лезет... |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Чт Авг 07, 2008 06:34   |
|
Полезность: Нет оценки
|
lexoos пишет: | dnk_dz пишет: | 2. Запускает операцию, которая заполняет временную таблицу.
3. Запускает операцию формирования отчета. |
воот над объединенимем этого и бьюсь и по этому задаю вопрос, как и куда передавать заполненную таблицу на обработку, обработать то таблицу надо 1 раз.
Думал, уж совсем туплю.
А можно както обработать закрытие экранной формы операции?
А может такой вариант - при Ок на простой операции с групповухой вызывать plpcall другую подобного вида, которая заполняет табл (поймет ли вызываемая операция выделенные строик?), а по возвращении в исходную операцию уже обрабатывать табл? или вообще уже хрень в голову лезет... |
Попробуй на нажатие OK вызвать операцию через plpcall и посмотри в какой момент она запустится. Может прокатит. |
|
 |
lexus Профи
Вступление в Клуб: 28.09.2007
|
Чт Авг 07, 2008 06:35   |
|
Полезность: Нет оценки
|
Еще как вариант...
Может проще будет после пункта 1 запускать групповую, в которой пользователь на ЭФ повторно введет условия фильтра, как он сделал по Alt+3? Если этих условий не много... |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Чт Авг 07, 2008 06:41   |
|
Полезность: Нет оценки
|
Провел эксперимент. Валидатор на OK отрабатывает на первой записи из отмеченных. |
|
 |
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Чт Авг 07, 2008 09:19   |
|
Полезность: 4
|
вообщем, придумал и реализовал такое решение:
в клиенте операции вычисляется кол-во выделенных записей (из заголовка формы ), передается переменной, в теле операции заполняется таблица и если уже заполнено кол-во строк, соответствующее значению той самой переменной, выполняется обработка таблицы.
Чего скажите? понимаю, что идиотизм, но вроде другого решения нет |
|
 |
|