Автор Тема: Маска в экране  (Прочитано 4068 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SKD1980

  • Newbie
  • *
  • Сообщений: 24
  • Репутация: +6/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Маска в экране
« : Август 26, 2010, 10:01:00 am »
Добрый день! Мне нужно, чтобы люди на экране вводил данные по определенной маске.  Если взять ту же дату, то надо, чтобы в окошечко давало вводить данные так: 28августа2010, а не так как захочется пользователям (не 282010августа или не 28082010). Предоставляет ли САП вводить данные по определенной маске?

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Маска в экране
« Ответ #1 : Август 26, 2010, 05:30:52 pm »
Ту маску, которая вам требуется, не получите в рамках одного экранного поля (затруднительно анализировать). Как выход (если очень хочется): создать 3 отд. поля "число", "месяц прописью", "год" (как в MS Excel, например) и обрабатывать/проверять введенные значения в PAI-модуле.

ИМХО, плохой подход к задаче. Лучше ставить дату традиционно, со стандартным SH (ср. поиска) и автопроверкой введенного значения на соответствие реальной календарной дате, а не изобретать велосипед заново.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 758
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Маска в экране
« Ответ #2 : Август 26, 2010, 11:26:51 pm »
Ну как вариант есть такой ФМ J_3G_CHECK_EDITMASK на вход подаем маску и строку на выходе получаем результат соответствия. Само собой месяц именно как месяц проверка не делается, как и год, так как маска задается в терминах системы вида:
Код: You are not allowed to view links. Register or Login
N - Число от 0 до 9
A - Буква
X - Число или буква
т.е. задаем маску вида NN-AAAAA-NNNN и тогда пользователь должен ввести что-то вида 28-ддддд-2100, что подходит под маску ввода, однако существует такая вещь как число букв в средине маски фиксировано, т.е. если ввести не пять букв "Д", то будет выдана ошибка, ну тут можно предложить следующее, количество букв делаем равным максимальному количеству букв в месяце, а месяцы короче максимального дополняем любой буквой.

PS: Но Дмитрий прав, смысла изобретать велосипед нет никакого, в системе есть четкие правила ввода даты и времени.