Пример интерфейса для отладки шаблонов ввода |
Для отладки шаблонов строк ввода можно воспользоваться следующим интерфейсом:
Рис. 10 Интерфейс отладки шаблонов ввода
В первом поле ввода рассматриваемого интерфейса можно задавать разнообразные шаблоны ввода для второго поля.
Во втором поле можно набирать символы в соответствии с шаблоном, введенном в первой строке.
Последнее поле ввода задает имя файла, в которое будет записываться процесс разбора строки в соответствии с заданным шаблоном.
Кнопка "Вычислить" упаковывает содержимое поля, для которого используется шаблон ввода и показывает его в соответствующей строке.
Кнопка "Проверить" выполняет синтаксическую проверку шаблона и выводит результат в строку, подписанную как "Результат проверки".
Кнопка "Установить" устанавливает имя лог-файла для записи процесса разбора строки.
//============================================================================ interface InputPatterns 'Шаблоны ввода значений по маске'; show at (1,1,79,20); //---------------------------------------------------------------------------- create view var pattern : string; syntaxR : string; targetS : string; resultS : string; logName : string; title0 : string [23]; title1 : string [23]; title2 : string [23]; title3 : string [23]; title4 : string [23]; as select * from x$files ; //---------------------------------------------------------------------------- screen a1 'a1'; fields title0 : protect, skip, { font = { bold = true } }; pattern : noProtect; title2 : protect, skip, { font = { bold = true } }; targetS : noProtect, { inputmask = Pattern }; title3 : protect, skip, { font = { bold = true } }; resultS : protect, skip; title1 : protect, skip, { font = { bold = true } }; syntaxR : protect, skip, { font = { italic = true } }; title4 : protect, skip; logName : noProtect; buttons cmXXXX; cmCheckSyntax; cmSetLogName; << .@@@@@@@@@@@@@@@ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ .@@@@@@@@@@@@@@@ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ .@@@@@@@@@@@@@@@@@@@@ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ .@@@@@@@@@@@@@@@@@@@@ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ <. Вычислить .> <. Проверить .> .@@@@@@@@@ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ <. Установить.> >> end; //---------------------------------------------------------------------------- handleEvent cmInit: { set title0 := 'Шаблон:'; set title1 := 'Результат проверки:'; set title2 := 'Ввод по шаблону:'; set title3 := 'Результат ввода:'; set title4 := 'Лог-файл:'; set logName := 'InFormat.Dbg'; set pattern := 'R-%>ББ 999999'; } cmCheckSyntax: { if DefineFormat('', pattern) then set syntaxR := 'ok' else set syntaxR := GetFormatError; SelectField(#pattern); } cmXXXX: { set resultS := targetS; SelectField(#targetS); } cmSetLogName: SetFormatLogFileName(logName); end; end.