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

Ограничение вводимых значений

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


Вступление в Клуб: 19.11.2012
СообщениеПт Апр 26, 2013 09:24   Ограничение вводимых значений Ответить с цитатой
Полезность: Нет оценки
Добрый день.
Необходимо ограничить поле ввода 'Интернациональное наименование'
в Организациях, при заведении новых.
Делаю в расширении операции Добавить (в проверке) след.образом:

gcn_LENGTH varchar (5);

begin
&BASE$SETVARS;
&BASE$VALIDATE;
&BASE$GETVARS;
-- просто вставляет команду на VBS
if P_INFO = 'P#I_NAME' then
[CSMD].Command(V_VB, 'Text21.MaxLength = ' || [PAYER_NAME].[LIB].gcn_LENGTH);
elsif length(gcn_LENGTH) > ::[PAYER_NAME].[LIB].gcn_Length then
stdio.put_line_buf('Сформированное наименование превышает '||::[PAYER_NAME].[LIB].gcn_Length||' символов.');
end if;

end;


При компиляции ошибок не происходит, но при добавлении новой организации никакого ограничения для поля "Интернациональное наименование" нет. (МАКСИМУМ 28 СИМВОЛОВ ДОЛЖНО БЫТЬ).
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПт Апр 26, 2013 09:54    Ответить с цитатой
Полезность: Нет оценки
Вот такой строчки в расширении более чем достаточно:

Код:

begin
   &BASE$SETVARS;
   &BASE$EXECUTE;
   
if length(P#I_NAME)   > 5 then pragma error('Иностр. наимен. не может быть больше 5'); end if;

end;
Alkov
Профи


Вступление в Клуб: 23.09.2010
СообщениеПт Апр 26, 2013 09:56    Ответить с цитатой
Полезность: Нет оценки
На P#I_NAME на форме стоит CheckValidate=True ?
Сервер -Клиент ?
Зачем вообще в Проверке писать, почему не в Клиент-скрипте ?
MsgBox покрасивше stdio.put_line_buf будет...
Graffity666
Участник


Вступление в Клуб: 13.11.2012
СообщениеПт Апр 26, 2013 09:58   Re: Ограничение вводимых значений Ответить с цитатой
Полезность: Нет оценки
spbetta пишет:
Добрый день.
Необходимо ограничить поле ввода 'Интернациональное наименование'
в Организациях, при заведении новых.
Делаю в расширении операции Добавить (в проверке) след.образом:

gcn_LENGTH varchar (5);

begin
&BASE$SETVARS;
&BASE$VALIDATE;
&BASE$GETVARS;
-- просто вставляет команду на VBS
if P_INFO = 'P#I_NAME' then
[CSMD].Command(V_VB, 'Text21.MaxLength = ' || [PAYER_NAME].[LIB].gcn_LENGTH);
elsif length(gcn_LENGTH) > ::[PAYER_NAME].[LIB].gcn_Length then
stdio.put_line_buf('Сформированное наименование превышает '||::[PAYER_NAME].[LIB].gcn_Length||' символов.');
end if;

end;


При компиляции ошибок не происходит, но при добавлении новой организации никакого ограничения для поля "Интернациональное наименование" нет. (МАКСИМУМ 28 СИМВОЛОВ ДОЛЖНО БЫТЬ).


Как-то слишком сложно, для такой простой задачи.
Чем не устраивает

Код:
if length(P#I_NAME) > ::[PAYER_NAME].[LIB].gcn_Length then
   pragma error(''Сформированное наименование превышает '||::[PAYER_NAME].[LIB].gcn_Length||' символов.');
end if;


в конце блока
Код:
if P_MASSAGE = 'VALIDATE' then...
?
spbetta
Участник со стажем


Вступление в Клуб: 19.11.2012
СообщениеПт Апр 26, 2013 10:24   спасибо Ответить с цитатой
Полезность: Нет оценки
Спасибо большое всем. Строчка
if length(P#I_NAME) > 5 then pragma error('Иностр. наимен. не может быть больше 5'); end if;

очень помогла.
А каким образом можно исключить внесение кавычек в поле Интер.наименование?
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПт Апр 26, 2013 11:18   Re: спасибо Ответить с цитатой
Полезность: Нет оценки
spbetta пишет:
Спасибо большое всем. Строчка
if length(P#I_NAME) > 5 then pragma error('Иностр. наимен. не может быть больше 5'); end if;

очень помогла.
А каким образом можно исключить внесение кавычек в поле Интер.наименование?


при сохранении вырезайте, а при подсчете длинны наименования не учитывайте.
Пример:
Код:
if length(replace(P#I_NAME, '"'))   > 5 then
   pragma error('Иностр. наимен. не может быть больше 5');
end if;

_________________
всегда есть как минимум 2 выхода
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

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