Формат поля

Oksana

Lotus team
10.01.2006
329
0
#1
Подскажите, пожалуйста, можно ли и если да, то как задать формат поля.

Мне нужно поля для ввода и хранения ИП-адреса.

Соответвенно хочется чтобы вводили все одинаково и не ошибались, не было разброса в разделителях (точки), ну и соответственно стандартный формат ИП адреса 000.000.000.000, чтобы все разряды были заполнены.
 

morpheus

скриптописец
07.08.2006
3 915
1
#2
Для: Oksana
используйте секцию Input translation в поле для приведения к одному виду
и Input validation для проверки правильности ввода
 
R

Ronchik

#3
Подскажите, пожалуйста, можно ли и если да, то как задать формат поля.

Мне нужно поля для ввода и хранения ИП-адреса.

Соответвенно хочется чтобы вводили все одинаково и не ошибались, не было разброса в разделителях (точки), ну и соответственно стандартный формат ИП адреса 000.000.000.000, чтобы все разряды были заполнены.
Такие данные вобщето не должны вводиться пользователями
попробуй лучше вот такой вариант

Sub Initialize
Dim session As NotesSession
Set session = New NotesSession
Dim doc As NotesDocument
Set doc = session.DocumentContext
Print "<H2>IP address is " + _
doc.Remote_Addr(0) + "</H2>"
End Sub
 

Oksana

Lotus team
10.01.2006
329
0
#4
Такие данные вобщето не должны вводиться пользователями
попробуй лучше вот такой вариант
Спасибо, но мне не нужет текущий ИП, мне нужно текстовое поле, в которое будет вводится произвольный ИП-адрес, просто хотелось единообразия при вводе и просмотре.

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

morpheus

скриптописец
07.08.2006
3 915
1
#5
Oksana
Используйте Input translation - в нём вы сможете
1. проверить длинну, в Вашем случае это 15 символов
2. забить недостающие символы 0
3. ОБЯЗАТЕЛЬНО использовать текстовое поле
 

Oksana

Lotus team
10.01.2006
329
0
#6
Oksana
Используйте Input translation - в нём вы сможете
1. проверить длинну, в Вашем случае это 15 символов
2. забить недостающие символы 0
3. ОБЯЗАТЕЛЬНО использовать текстовое поле
Сделала @DialogBox, использующий форму для ввода значений, вводится в 4 поля, проверяется соответственно что бы длина была не более 3-х символов в каждом, точки вставляю потом.
как использовать Input translation не совсем поняла, к тому же перебор строки не простой получается, вариаций много
 

morpheus

скриптописец
07.08.2006
3 915
1
#7
<!--QuoteBegin-Oksana+27:04:2007, 09:36 -->
<span class="vbquote">(Oksana @ 27:04:2007, 09:36 )</span><!--QuoteEBegin-->к тому же перебор строки не простой получается, вариаций много
[snapback]63679" rel="nofollow" target="_blank[/snapback]​
[/quote]
зря Вы так, очень даже легко получаеться )))
щас просто нет времени накарлякать :)
 
30.05.2006
1 345
11
#9
Сделала @DialogBox, использующий форму для ввода значений, вводится в 4 поля, проверяется соответственно что бы длина была не более 3-х символов в каждом, точки вставляю потом.
как использовать Input translation не совсем поняла, к тому же перебор строки не простой получается, вариаций много
Что-то такое раз делал, в Validation-ф-ле. Сначала проверка на доп.сиволы (@Matches), перебор упростил преобразованием в Numeric-список:

Lip:=@Explode(@ThisValue;".");
@TextToNumber(Lip) etc..

Еще проще проверЯть по маске, но там ошибку не конкретизируешь
 

Oksana

Lotus team
10.01.2006
329
0
#10
Такие данные вобщето не должны вводиться пользователями
попробуй лучше вот такой вариант

Sub Initialize
Dim session As NotesSession
Set session = New NotesSession
Dim doc As NotesDocument
Set doc = session.DocumentContext
Print "<H2>IP address is " + _
doc.Remote_Addr(0) + "</H2>"
End Sub
Кстати, как получить IP, с которого подключился пользователь, с помощью LS, вышеприведенный пример не подходит.

Оставлю пока свой вариант, а Ваш подожду :) все равно хочется посмотреть как иначе можно сделать
Убрала диалог, сделала трансляцию и проверку. Если данные введены корректно, то транслирует как мне надо, если нет, то выходит окно предупреждения, но документ все равно сохраняется, почему так?
 
30.05.2006
1 345
11
#11
Убрала диалог, сделала трансляцию и проверку. Если данные введены корректно, то транслирует как мне надо, если нет, то выходит окно предупреждения, но документ все равно сохраняется, почему так?
Сообщение как выводишь? @Prompt ? А validation f-la что системе возвращает? Должна:
либо @Yes (@True) - значит сохранять
либо "некий текст" (=@Failure("Text") ) - значит вывести его на экран и НЕ сохранять
 

Oksana

Lotus team
10.01.2006
329
0
#12
либо "некий текст" (=@Failure("Text") ) - значит вывести его на экран и НЕ сохранять
ОК, теперь использую @Failure, по кнопке "Сохранить и закрыть", выдает предупреждение, не сохраняет, но зкрывает, а мне бы так, что бы и выйти не дало, если значение не верное.
 
30.05.2006
1 345
11
#13
ОК, теперь использую @Failure, по кнопке "Сохранить и закрыть", выдает предупреждение, не сохраняет, но зкрывает, а мне бы так, что бы и выйти не дало, если значение не верное.
На кнопке "Сохранить и закрыть" что висит? 2 команды? ([FileSave] и [..Close])? Имей в виду, что 1-я возвращает результат!
Т.е. надо примерно так:
@If(@Command([FileSave]); @Command([FileClose]); @No)
 

morpheus

скриптописец
07.08.2006
3 915
1
#17
Для: Oksana
DocumentContext property
просто исходя из хэлпа это надо зделать как агент ))) так как
Read-only. The in-memory document when an agent starts.

вот потому этот код
Код:
Sub Initialize	
Dim session As NotesSession	
Set session = New NotesSession	
Dim doc As NotesDocument	
Set doc = session.DocumentContext	
Print "<H2>IP address is " + _	doc.Remote_Addr(0) + "</H2>" 
End Sub
Просто так с кнопки не срабатывает, пишите агентик :)

От блин, не совсем то
 
30.05.2006
1 345
11
#18
Тоже интересно.... как бы вычислить B)
По NRPC? Гы... Lotus - мультипротокольная среда. Что такое адрес юзера при соединении по NETBIOS? А по SPX? AppleTalk? X.25? Banian? X.PC? А в случае passThru соединения? Какой из адресов 6 промежуточных серверов?
IMHO нет в Notes API такого инструмента :(

Из наколеночных способов: почитать Log.nsf, там вроде что-то оседало (или это в DomLog??)
 

Oksana

Lotus team
10.01.2006
329
0
#19
По NRPC? Гы... Lotus - мультипротокольная среда. Что такое адрес юзера при соединении по NETBIOS? А по SPX? AppleTalk? X.25? Banian? X.PC? А в случае passThru соединения? Какой из адресов 6 промежуточных серверов?
IMHO нет в Notes API такого инструмента :p

Из наколеночных способов: почитать Log.nsf, там вроде что-то оседало (или это в DomLog??)
Вот есть задача billing, она прекрасно формирует документы в базу billing.nsf, в которые как раз и записывает пользователя, время его поключения и с какого ип, он был поключен. Вот как бы получить эту информацию.
Я протоколирую свою базу, в которой хотела бы заносить эту информацию:
Документ такой-то был прочитан(редактирован) таким-то юзером, подключенным с такого-то ип (вот этот ип и не могу ни как получить...). Доступ к базе предполагается только черз клиента лотус (веб доступа не будет), используем только TCPIP
 

morpheus

скриптописец
07.08.2006
3 915
1
#20
<!--QuoteBegin-Oksana+10:05:2007, 04:09 -->
<span class="vbquote">(Oksana @ 10:05:2007, 04:09 )</span><!--QuoteEBegin-->Доступ к базе предполагается только черз клиента лотус (веб доступа не будет), используем только TCPIP
[snapback]65341" rel="nofollow" target="_blank[/snapback]​
[/quote]
В таком случае могу предложить только разве что библиотеку dll ( писана кадато на делфях ) , работает только с NT win ( тоесть 98 и милениум и ниже отдыхают ) и только с TCP/IP

выкладывать?