Показать сообщение отдельно
Старый 17.03.2011, 17:34   #9  
Fly is offline
Fly
Участник
Аватар для Fly
 
102 / 10 (1) +
Регистрация: 05.10.2007
Цитата:
Сообщение от nikshev Посмотреть сообщение
Я наверное не досказал. В общем открываем новый заказ. Есть клиент по умолчанию "Розница". Все создается и валидэйтится.
Но например нужно для другого клиента заказ сварганить. Мы делаем новый заказ. В этот заказ вставляется клиент по умолчанию, а
когда мы его меняем, то наш заказ (в связи с фильтром) перестает отображаться. Вот.
Не беда. Делаем в форме функцию fn_SetFilter(p_blIsFilter:: Boolean).
В ней пишем:
Код:
IF p_blIsFilter THEN
  SETRANGE("Sell-to Customer No.", g_recSalesRecSetup."Default Customer No.")
ELSE
  SETRANGE("Sell-to Customer No.");
Делаем на форме галочку, называем его "Только Розница", присваиваем ей какую-нибудь глобальную переменную, предварительно ее заведя (например, g_blOnlyDefault).

На триггер этой галочки OnAfterValidate пишем:
Код:
fn_SetFilter(g_blOnlyDefault);
CurrForm.UPDATE(FALSE)
На OnOpenForm вместо SETRANGE пишем:
Код:
g_blOnlyDefault := TRUE;
fn_SetFilter(TRUE)
Таким образом форма у нас будет открываться все время с фильтром по рознице. Как только пользователь захочет завести нового клиента, он может снять признак "Только Розница" и спокойно завести клиента.

Вариант № 2.
Просто создайте новую форму без фильтров. Таким образом у Вас будет одна форма только для клиента "Розница", а вторая - для остальных. И никаких заморочек с признаками. Минус только в том, что придется покупать новую форму