Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / эмуляция editmask / 18 сообщений из 18, страница 1 из 1
19.02.2009, 17:26
    #35828031
rhs
rhs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
Задача такая:

в строковом поле datawindow программно сэмулировать ввод даты по маске (dd/mm/yyyy)

пытаюсь сделать через событие editchanged

если пользователь просто нажимает цифры в пустой строке то все получается просто:
по мере ввода цифр проверяем их правильность и подставляем слэши в нужные позиции

а вот если пользователь редактирует ужа заполненное поле или нажимает backspace или delete
тут не получается

может быть кто уже решал такую задачку, поделитесь опытом

спасибо
...
Рейтинг: 0 / 0
19.02.2009, 17:54
    #35828136
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
На первый взгляд все просто. Считаешь, в какой позиции изменение и делаешь что-то умное.
Что должно получиться-то? Имеем: 01/12/2009.
Юзверь поставил курсор между единицей и двойкой в месяце. Нажал на delete. Что должно произойти?
...
Рейтинг: 0 / 0
20.02.2009, 09:50
    #35828948
rhs
rhs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
RiskaИмеем: 01/12/2009.
Юзверь поставил курсор между единицей и двойкой в месяце. Нажал на delete. Что должно произойти?
должно сработать как в Editmask: 01/10/2009

RiskaСчитаешь, в какой позиции изменение и делаешь что-то умное.

опять же вопрос: как определить в какой позиции изменение?
...
Рейтинг: 0 / 0
20.02.2009, 11:10
    #35829178
Ikar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
Я, наверное, чего то не понимаю, но... Скажите, а почему не использовать непосредственно EditMask вместо того, чтобы его эмулировать?
------------
С уважением, IKAR

IkarHomeCenter ........ Детский Дворик ........ ГавГав.Инфо
Портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
20.02.2009, 11:19
    #35829209
rhs
rhs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
Ikar,

хороший вопрос, я его ждал :)

строки в таблице содержат текстовую информацию: "Грузоотправитель", "Грузополучатель" и т.д.

есть одна строка, которая содержит "Дата отгрузки", которую пользователи вводят как попало

если на это текстовое поле наложить маску, то все остальные текстовые значения пропадут
...
Рейтинг: 0 / 0
20.02.2009, 11:41
    #35829284
maxATC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
rhs,

А база не чем?
...
Рейтинг: 0 / 0
20.02.2009, 11:46
    #35829299
rhs
rhs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
maxATC,

MS SQL
...
Рейтинг: 0 / 0
20.02.2009, 12:32
    #35829473
maxATC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
rhs,

Ну попробуй так, не уверен, что все текстовые данные корректны для преобразования из string в date.
В конструкторе DW в Data Source создай поле date(твое поле в базе строковое) as date_users. На нем делаешь EditMask примерно DD/MM/YYYY или как хочешь, родное скрываешь, а на его место созданное пусть туда юзер и вводит дату и при editchanged сбрасывает в поле кторое будет обновлять базу (скрытое).
Примерно так.
...
Рейтинг: 0 / 0
20.02.2009, 12:39
    #35829504
zuzu zuzu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
rhsстроки в таблице содержат текстовую информацию: "Грузоотправитель", "Грузополучатель" и т.д.

есть одна строка, которая содержит "Дата отгрузки", которую пользователи вводят как попало

если на это текстовое поле наложить маску, то все остальные текстовые значения пропадутдобавить EditMask поле в ДВ и играться с visible
соответственно подставлять при Update/Retrieve
...
Рейтинг: 0 / 0
20.02.2009, 12:51
    #35829547
rhs
rhs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
maxATC,
zuzu zuzu

спасибо за совет, этот метод я знаю

проблема в том что ДВ типа GRID, а там добавить поле и менять visible не так просто,
точнее я вообще не знаю как
хотелось бы не менять интерфейс

проблема №2 в том что уже ранее введено в эти текстовые поля
все что не соответствует формату даты при конвертации из string в date будет потеряно
...
Рейтинг: 0 / 0
20.02.2009, 12:58
    #35829571
maxATC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
rhs,

Напиши функцию преобразования строкового вида даты в корректное представление строкового вида и сделай UPDATE таблицы по данному полю=функция_преобразования(поле). А проблемы с GRID по вставке нового поля ни какой нет.
...
Рейтинг: 0 / 0
20.02.2009, 13:10
    #35829633
rhs
rhs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
maxATCА проблемы с GRID по вставке нового поля ни какой нет.

с этого места помедленней, пожалуйста, я записываю :)

ДВ содержит одновременно строки и с текстовыми данными и с данными в формате даты в одном столбце

если делать это в формате freeform, то я могу наложить 2 столбца один на другой и отображать только один из них

если я добавляю поле в GRID, оно займет у меня еще один столбец,
т.е будет 2 столбца: <текст>, <дата>
а надо чтобы и текст и дата были в одном столбце (визуально)

может я чегото не понимаю?
...
Рейтинг: 0 / 0
20.02.2009, 13:11
    #35829635
zuzu zuzu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
rhs
проблема в том что ДВ типа GRID, а там добавить поле и менять visible не так просто,
точнее я вообще не знаю как
хотелось бы не менять интерфейсдля нового поля меняешь свойство Band,
позицию берешь у соответствующего поля,
после играться с BringToFront
...
Рейтинг: 0 / 0
20.02.2009, 13:23
    #35829676
maxATC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
rhs,
Так у вас желание играться с Visible, а я предлагал поле скрыть, а на его место юзерское с едитмаск поле.
...
Рейтинг: 0 / 0
20.02.2009, 14:01
    #35829765
rhs
rhs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
zuzu zuzuдля нового поля меняешь свойство Band,
а на что меняю свойство Band?
...
Рейтинг: 0 / 0
20.02.2009, 14:12
    #35829795
rhs
rhs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
maxATCТак у вас желание играться с Visible, а я предлагал поле скрыть, а на его место юзерское с едитмаск поле.

пользователь должен видеть и исходное поле если там не дата и то, которое с Editmask
...
Рейтинг: 0 / 0
20.02.2009, 15:25
    #35830014
zuzu zuzu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
rhszuzu zuzuдля нового поля меняешь свойство Band,
а на что меняю свойство Band?net pod rukoy PB, na liuboe drugoe ne default, eto pozvolit postaviti pole vne band
...
Рейтинг: 0 / 0
20.02.2009, 18:29
    #35830462
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
эмуляция editmask
Таблицу надо по человечески сделать, а не голову тут нам морочить :-)
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / эмуляция editmask / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]