• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

маска ввода

  • Автор темы Sereja
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

Sereja

нужно что бы при вводе номера , номер записывался через тире...т.е. вводишь в форме 1234567, а записывается 123-45-67
в аксесе есть реализация масок ввода, в лотусе или найти не могу или нет их(подскажи где искать и как делать?


с лотусом месяц только-(
 
A

allex

Посмотри использование like или работу с регудярными выражениями

Ну или парси строку :whoareyou?:
 
A

amigolinx

См. хелп "Format function". Работает по принципу:
Код:
ss = {1234567}
ss = Format(ss, {000-00-00})
 

Eugen

Green Team
22.03.2012
210
1
BIT
1
спрошу тут.

Есть текстовое поле INN с маской для ввода инн. На onchange висит

Код:
	Dim w As New NotesUIWorkspace
Dim doc As NotesDocument

Set doc=w.CurrentDocument.Document
doc.INN = Format(doc.INN(0), {000-000-000 00})

Есть скрытое поле innEQ. Нужно, чтобы в нем хранилось значение из поля INN но без пробелов и тире. Пробовал trim, но я так понимаю, он убирает только пробелы и только до и после. А как выкинуть все, что отлично от цифр?
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
179
А так?
Код:
Dim w As New NotesUIWorkspace
Dim doc As NotesDocument

Set doc=w.CurrentDocument.Document
doc.innEQ = doc.INN(0)
doc.INN = Format(doc.INN(0), {000-000-000 00})
 

Eugen

Green Team
22.03.2012
210
1
BIT
1
Так я попробовал сделать с самого начала, когда начал разбираться, но там есть нюанс: если человек что то не так вбил в самом ИНН, он лезет туда править, может где то не там поставить пробел или тире и в итоге эти символы попадут в innEQ. А там должны быть только цифры...
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
179
что-то не в себе совсем сегодня я ...
Если я еще не окончательно заболел, то:

ИНН это только цифры, можно проверить правильность ввода, если там не только цифры то слать сообщение "Введите цифры"
затем записать эти цифры в innEQ
и только потом сделать преобразование для INN
 

Eugen

Green Team
22.03.2012
210
1
BIT
1
Поле INN - это поле куда пользователь вводит значение, и вся приблуда с Format function только для красоты отображения. Поле innEQ - это для скоринга, оно будет отправляться вместе с другими данными в виде xml на веб сервис и в нем допустимы только цифры, без всяких красот.

Добавлено: Сейчас попробовал на Input Validation добавить проверку @IsNumber - получается замкнутый круг: ввожу цифры, потом Format function наводит "красоту" и Input Validation ругается(
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
179
Ох... изменение введенных данных ради отображения...
Проще было бы сделать поле computed for display и отображать его в режиме чтения со всем форматированием, а в режиме редактирования реальную информацию... И проблем бы не было.
А теперь... Хм...

Либо поле Computed и код
res:=@ReplaceSubstring(INN;"-";" ");
res:=@implode(@trim(@explode(res;" "));"");
res

либо в LS
Код:
 dim macro as variant
macro = Evaluate({@implode(@trim(@explode(@ReplaceSubstring(INN;"-";" ");" "));"")},doc)
doc.InnEq = macro(0)

Вариант с полем проверил.
 

Eugen

Green Team
22.03.2012
210
1
BIT
1
Ох... изменение введенных данных ради отображения...
Проще было бы сделать поле computed for display и отображать его в режиме чтения со всем форматированием, а в режиме редактирования реальную информацию... И проблем бы не было.
А теперь... Хм...

Либо поле Computed и код
res:=@ReplaceSubstring(INN;"-";" ");
res:=@implode(@trim(@explode(res;" "));"");
res

либо в LS
Код:
 dim macro as variant
macro = Evaluate({@implode(@trim(@explode(@ReplaceSubstring(INN;"-";" ");" "));"")},doc)
doc.InnEq = macro(0)

Вариант с полем проверил.

Спасибо, все получилось.
 
Y

yerke

На валидешне поля поставь ругань

@if(
@Matches(@ThisValue; "{0-9}{0-9}{0-9}{-}{0-9}{0-9}{-}{0-9}{0-9}");
@Succes;
@Failure("Ввидите ИНН в формате '000-00-00'!")
)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!