Формат поля

Тема в разделе "Lotus - Программирование", создана пользователем Oksana, 26 апр 2007.

  1. Oksana

    Oksana Lotus team
    Lotus team

    Регистрация:
    10 янв 2006
    Сообщения:
    330
    Симпатии:
    0
    Подскажите, пожалуйста, можно ли и если да, то как задать формат поля.

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

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Oksana
    используйте секцию Input translation в поле для приведения к одному виду
    и Input validation для проверки правильности ввода
     
  3. Ronchik

    Ronchik Гость

    Такие данные вобщето не должны вводиться пользователями
    попробуй лучше вот такой вариант

    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
     
  4. Oksana

    Oksana Lotus team
    Lotus team

    Регистрация:
    10 янв 2006
    Сообщения:
    330
    Симпатии:
    0
    Спасибо, но мне не нужет текущий ИП, мне нужно текстовое поле, в которое будет вводится произвольный ИП-адрес, просто хотелось единообразия при вводе и просмотре.

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Oksana
    Используйте Input translation - в нём вы сможете
    1. проверить длинну, в Вашем случае это 15 символов
    2. забить недостающие символы 0
    3. ОБЯЗАТЕЛЬНО использовать текстовое поле
     
  6. Oksana

    Oksana Lotus team
    Lotus team

    Регистрация:
    10 янв 2006
    Сообщения:
    330
    Симпатии:
    0
    Сделала @DialogBox, использующий форму для ввода значений, вводится в 4 поля, проверяется соответственно что бы длина была не более 3-х символов в каждом, точки вставляю потом.
    как использовать Input translation не совсем поняла, к тому же перебор строки не простой получается, вариаций много
     
  7. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--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]
    зря Вы так, очень даже легко получаеться )))
    щас просто нет времени накарлякать :)
     
  8. Oksana

    Oksana Lotus team
    Lotus team

    Регистрация:
    10 янв 2006
    Сообщения:
    330
    Симпатии:
    0
    Оставлю пока свой вариант, а Ваш подожду :( все равно хочется посмотреть как иначе можно сделать
     
  9. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.291
    Симпатии:
    0
    Что-то такое раз делал, в Validation-ф-ле. Сначала проверка на доп.сиволы (@Matches), перебор упростил преобразованием в Numeric-список:

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

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

    Oksana Lotus team
    Lotus team

    Регистрация:
    10 янв 2006
    Сообщения:
    330
    Симпатии:
    0
    Кстати, как получить IP, с которого подключился пользователь, с помощью LS, вышеприведенный пример не подходит.

    Убрала диалог, сделала трансляцию и проверку. Если данные введены корректно, то транслирует как мне надо, если нет, то выходит окно предупреждения, но документ все равно сохраняется, почему так?
     
  11. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.291
    Симпатии:
    0
    Сообщение как выводишь? @Prompt ? А validation f-la что системе возвращает? Должна:
    либо @Yes (@True) - значит сохранять
    либо "некий текст" (=@Failure("Text") ) - значит вывести его на экран и НЕ сохранять
     
  12. Oksana

    Oksana Lotus team
    Lotus team

    Регистрация:
    10 янв 2006
    Сообщения:
    330
    Симпатии:
    0
    ОК, теперь использую @Failure, по кнопке "Сохранить и закрыть", выдает предупреждение, не сохраняет, но зкрывает, а мне бы так, что бы и выйти не дало, если значение не верное.
     
  13. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.291
    Симпатии:
    0
    На кнопке "Сохранить и закрыть" что висит? 2 команды? ([FileSave] и [..Close])? Имей в виду, что 1-я возвращает результат!
    Т.е. надо примерно так:
    @If(@Command([FileSave]); @Command([FileClose]); @No)
     
  14. Oksana

    Oksana Lotus team
    Lotus team

    Регистрация:
    10 янв 2006
    Сообщения:
    330
    Симпатии:
    0
    Спасибо, получилось :)
     
  15. Oksana

    Oksana Lotus team
    Lotus team

    Регистрация:
    10 янв 2006
    Сообщения:
    330
    Симпатии:
    0
    Возвращаюсь еще раз к этому вопросу:
     
  16. LIGHT

    LIGHT Гость

    Тоже интересно.... как бы вычислить :)
     
  17. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Oksana
    DocumentContext property
    просто исходя из хэлпа это надо зделать как агент ))) так как
    Read-only. The in-memory document when an agent starts.

    вот потому этот код
    Код (Text):
    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
    Просто так с кнопки не срабатывает, пишите агентик :)

    От блин, не совсем то
     
  18. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.291
    Симпатии:
    0
    По NRPC? Гы... Lotus - мультипротокольная среда. Что такое адрес юзера при соединении по NETBIOS? А по SPX? AppleTalk? X.25? Banian? X.PC? А в случае passThru соединения? Какой из адресов 6 промежуточных серверов?
    IMHO нет в Notes API такого инструмента :(

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

    Oksana Lotus team
    Lotus team

    Регистрация:
    10 янв 2006
    Сообщения:
    330
    Симпатии:
    0
    Вот есть задача billing, она прекрасно формирует документы в базу billing.nsf, в которые как раз и записывает пользователя, время его поключения и с какого ип, он был поключен. Вот как бы получить эту информацию.
    Я протоколирую свою базу, в которой хотела бы заносить эту информацию:
    Документ такой-то был прочитан(редактирован) таким-то юзером, подключенным с такого-то ип (вот этот ип и не могу ни как получить...). Доступ к базе предполагается только черз клиента лотус (веб доступа не будет), используем только TCPIP
     
  20. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--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

    выкладывать?
     
Загрузка...

Поделиться этой страницей