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

Валидация объекта с тем же значением

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
Турист
Участник


Вступление в Клуб: 11.02.2014
СообщениеВт Фев 11, 2014 04:19   Валидация объекта с тем же значением Ответить с цитатой
Полезность: Нет оценки
Может кто сталкивался со следующей ситуацией? В операции есть параметр - "счет" с типом "внутренние реквизиты". При первоначальном вводе счета на экранной форме - выводится нужное сообщение, при выборе другого счета путем вбивания номера в поле - тоже все нормально. Но если забить тот же номер что уже есть - валидация не проходит - просто фокус переходит на следующий объет и тишина.
Поискал по форуму - нашел что-то подобное в http://cftclub.ru/viewtopic.php?t=1950&highlight=p_info (последний пост) :
"...В блок проверки не входит потому как машина считает, что запись не была изменена. Вы говорили, что клиент-скрипт видит, что производились действия с контролом, тогда из клиент скрипта необходимо дернуть серверную валидацию...."

Не могу сообразить каким образом должен выглядеть обработчик в клиент-скрипте для данного типа параметра.

модуль "проверка" содержит следующий текст
Код:

begin   
   if p_message='VALIDATE' then            
      if p_info = 'P_CL.2' then         
         if P_CL.[2] is not null and P_CL.[2].[MAIN_V_ID] like '408218100000000000__' then               
            stdio.put_line_buf('Внимание! Используется специальный счет');
         end if;            
      end if;
   end if;
end;
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеВт Фев 11, 2014 07:58   Re: Валидация объекта с тем же значением Ответить с цитатой
Полезность: Нет оценки
Турист пишет:
Может кто сталкивался со следующей ситуацией? В операции есть параметр - "счет" с типом "внутренние реквизиты". При первоначальном вводе счета на экранной форме - выводится нужное сообщение, при выборе другого счета путем вбивания номера в поле - тоже все нормально. Но если забить тот же номер что уже есть - валидация не проходит - просто фокус переходит на следующий объет и тишина.
Код:

begin   
if p_message='VALIDATE' then            
       if p_info = 'P_CL.2' then         
         if P_CL.[2] is not null and P_CL.[2].[MAIN_V_ID] like '408218100000000000__' then               
         stdio.put_line_buf('Внимание! Используется специальный счет');
      end if;   
end if;
end;


Я бы просто вывел эту проверну наружу. Т.е. сделал проверку для любой валидации, независимо от P_INFO
Код:

begin   

if p_message='VALIDATE' then            
         
         if P_CL.[2] is not null and P_CL.[2].[MAIN_V_ID] like '408218100000000000__' then               
            stdio.put_line_buf('Внимание! Используется специальный счет');
         end if;
end if;

end;
Турист
Участник


Вступление в Клуб: 11.02.2014
СообщениеВт Фев 11, 2014 08:30   Re: Валидация объекта с тем же значением Ответить с цитатой
Полезность: Нет оценки
[/quote]

Я бы просто вывел эту проверну наружу. Т.е. сделал проверку для любой валидации, независимо от P_INFO
Код:

begin   

if p_message='VALIDATE' then            
         
         if P_CL.[2] is not null and P_CL.[2].[MAIN_V_ID] like '408218100000000000__' then               
            stdio.put_line_buf('Внимание! Используется специальный счет');
         end if;
end if;

end;
[/quote]

тоже эту возможность продумывали, только не подходит этот вариант Sad Дело в том что сама операция-расширение "новый безналичный документ" содержит много объектов на форме. (я просто создал "обрезаную" операцию для того чтобы упростить процесс поиска решения). Бизнесу надо чтобы сообщение выходило 1 раз (именно при выборе счета), а если вынести "наверх", то после того как выберут счет и будут заполнять другие реквизиты - будет постоянно выскакивать сообщение.

Для полноты картины на всякий случай добавлю - вообще проблема возникла при "поточном вводе" безналиных документов. При первой итерации - выбрали счет, вышло сообщение, приняли это к сведению. Затем на втором документе, (счет не меняется) - нужно опять сообщение что счет особенный. В этом случае - решается просто валидацией p_info = NEXT. Но если во втором и следующем шаге цикла поменяют счет на тот же самый - тоже должно опять выйти сообщение. Т.к. данная проблема не является проблемой именно поточного ввода. а повторяется и в одиночном конструкторе, то можно поточный ввод во внимание не брать.
Турист
Участник


Вступление в Клуб: 11.02.2014
СообщениеВт Фев 11, 2014 10:01    Ответить с цитатой
Полезность: Нет оценки
вроде получилось. повесили в клиент-скрипте на идентификатор номера счета проверку по событию OnChange(Cancel), а на кнопку ссылки - OnAfterClick с вызовом серверной валидации.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

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