09.03.2008, 14:39 | #1 |
Участник
|
Добрый день, коллеги. Столкнулся с такой проблемой, которая наверняка уже была кем-то решена в свое время...
Выполняю отчет, который изменяет данные одной формы на основании данных, имеющихся на другой форме. Обработка этого отчета заканчивается успешно. После чего происходит возврат на главную форму, где данные уже успешно изменены. Но сортировка данных осталась прежняя. Мне же необходимо отсортировать данные по определенному полю, которое изменяется в результате всей этой обработки. Вопрос: как это сделать. Тупое SETCURRENTKEY в репорте не помогает. Уже сделал эту сортировку в триггере OnOpenForm формы, но это неправильно - все-таки изменять системный объект ради одной лишь сортировки - большая глупость... Может быть есть какие-т размышления на этот счет? Буду благодарен за любую помощь. |
|
10.03.2008, 13:16 | #2 |
Участник
|
А, вы не пробовали выполнить setcurrentkey после вызова из формы отчета выполняющего обработку ?
|
|
11.03.2008, 09:11 | #3 |
Участник
|
Цитата:
Если более подробно, то речь идет о форме 50 (Покупка Заказ). Необходимо было делать обновления ее сабформы 54. Вот, собственно, через контрол сабформы я и вызывал свою процедурку, которая и производила сортировку. Спасибо за желание помочь. Своими силами обошелся... |
|
11.03.2008, 11:37 | #4 |
Участник
|
Все хорошо, только не ясно зачем использовать отчет (все таки они 5 копеек штука)? Почему не написать просто функцию на таблице?
|
|
11.03.2008, 12:45 | #5 |
Участник
|
Цитата:
А вот это уже - пожелание клиента. Ну хочет клиент видеть, что у него обновится и как, прежде чем эти изменения можно будет лицезреть "вживую" на формочке. Для того и производится вся обработка в отчете... |
|
11.03.2008, 16:25 | #6 |
Участник
|
Цитата:
Или вывести в отдельную форму с подтверждением |
|
11.03.2008, 22:42 | #7 |
Участник
|
Странно, прекрасно обычно работает. Вы уверены, что нужную переменную прописали для SETCURRENTKEY?
Цитата:
Решение нашлось. Сделал в этой самой форме процедурку с одним единственным оператором - SETCURRENTKEY() по нужным мне полям. Затем вызвал через контрол этой формы (если быть точнее - сабформы) эту функцию и сортировка произошла успешно.
Если более подробно, то речь идет о форме 50 (Покупка Заказ). Необходимо было делать обновления ее сабформы 54. Вот, собственно, через контрол сабформы я и вызывал свою процедурку, которая и производила сортировку. Спасибо за желание помочь. Своими силами обошелся... |
|
12.03.2008, 11:05 | #8 |
Участник
|
Разумное замечание. Оно тоже учтено. На RequestForm отчета есть один единственный крыжик, который отвечает за тестовое/реальное выполнение отчета (т.е. пользователь видит, ЧТО будет, ЕСЛИ отчет запустить в не тестовом режиме). Если крыжик поставлен - изменения в базу не вносятся и, следовательно, сабформа остается в прежнем состоянии. Если крыжик снят - отчет производит обработку "по настоящему" (с MODIFY и INSERT). Вот, собственно, и все.
|
|