CftClub.ru
Клуб специалистов ЦФТ-Банк

Печать результатов фильтра (продолжение)
На страницу Пред.  1, 2, 3  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
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
вообщем, придумал и реализовал такое решение:
в клиенте операции вычисляется кол-во выделенных записей (из заголовка формы Smile), передается переменной, в теле операции заполняется таблица и если уже заполнено кол-во строк, соответствующее значению той самой переменной, выполняется обработка таблицы.
Чего скажите? понимаю, что идиотизм, но вроде другого решения нет
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
На страницу Пред.  1, 2, 3  След.
Страница 2 из 3

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru