|
эмуляция editmask
|
|||
---|---|---|---|
#18+
Задача такая: в строковом поле datawindow программно сэмулировать ввод даты по маске (dd/mm/yyyy) пытаюсь сделать через событие editchanged если пользователь просто нажимает цифры в пустой строке то все получается просто: по мере ввода цифр проверяем их правильность и подставляем слэши в нужные позиции а вот если пользователь редактирует ужа заполненное поле или нажимает backspace или delete тут не получается может быть кто уже решал такую задачку, поделитесь опытом спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 17:26 |
|
эмуляция editmask
|
|||
---|---|---|---|
#18+
На первый взгляд все просто. Считаешь, в какой позиции изменение и делаешь что-то умное. Что должно получиться-то? Имеем: 01/12/2009. Юзверь поставил курсор между единицей и двойкой в месяце. Нажал на delete. Что должно произойти? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 17:54 |
|
эмуляция editmask
|
|||
---|---|---|---|
#18+
RiskaИмеем: 01/12/2009. Юзверь поставил курсор между единицей и двойкой в месяце. Нажал на delete. Что должно произойти? должно сработать как в Editmask: 01/10/2009 RiskaСчитаешь, в какой позиции изменение и делаешь что-то умное. опять же вопрос: как определить в какой позиции изменение? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2009, 09:50 |
|
эмуляция editmask
|
|||
---|---|---|---|
#18+
Я, наверное, чего то не понимаю, но... Скажите, а почему не использовать непосредственно EditMask вместо того, чтобы его эмулировать? ------------ С уважением, IKAR IkarHomeCenter ........ Детский Дворик ........ ГавГав.Инфо Портал русскоязычной группы пользователей Sybase ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2009, 11:10 |
|
эмуляция editmask
|
|||
---|---|---|---|
#18+
Ikar, хороший вопрос, я его ждал :) строки в таблице содержат текстовую информацию: "Грузоотправитель", "Грузополучатель" и т.д. есть одна строка, которая содержит "Дата отгрузки", которую пользователи вводят как попало если на это текстовое поле наложить маску, то все остальные текстовые значения пропадут ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2009, 11:19 |
|
эмуляция editmask
|
|||
---|---|---|---|
#18+
rhs, А база не чем? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2009, 11:41 |
|
эмуляция editmask
|
|||
---|---|---|---|
#18+
rhs, Ну попробуй так, не уверен, что все текстовые данные корректны для преобразования из string в date. В конструкторе DW в Data Source создай поле date(твое поле в базе строковое) as date_users. На нем делаешь EditMask примерно DD/MM/YYYY или как хочешь, родное скрываешь, а на его место созданное пусть туда юзер и вводит дату и при editchanged сбрасывает в поле кторое будет обновлять базу (скрытое). Примерно так. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2009, 12:32 |
|
эмуляция editmask
|
|||
---|---|---|---|
#18+
rhsстроки в таблице содержат текстовую информацию: "Грузоотправитель", "Грузополучатель" и т.д. есть одна строка, которая содержит "Дата отгрузки", которую пользователи вводят как попало если на это текстовое поле наложить маску, то все остальные текстовые значения пропадутдобавить EditMask поле в ДВ и играться с visible соответственно подставлять при Update/Retrieve ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2009, 12:39 |
|
эмуляция editmask
|
|||
---|---|---|---|
#18+
maxATC, zuzu zuzu спасибо за совет, этот метод я знаю проблема в том что ДВ типа GRID, а там добавить поле и менять visible не так просто, точнее я вообще не знаю как хотелось бы не менять интерфейс проблема №2 в том что уже ранее введено в эти текстовые поля все что не соответствует формату даты при конвертации из string в date будет потеряно ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2009, 12:51 |
|
эмуляция editmask
|
|||
---|---|---|---|
#18+
rhs, Напиши функцию преобразования строкового вида даты в корректное представление строкового вида и сделай UPDATE таблицы по данному полю=функция_преобразования(поле). А проблемы с GRID по вставке нового поля ни какой нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2009, 12:58 |
|
эмуляция editmask
|
|||
---|---|---|---|
#18+
maxATCА проблемы с GRID по вставке нового поля ни какой нет. с этого места помедленней, пожалуйста, я записываю :) ДВ содержит одновременно строки и с текстовыми данными и с данными в формате даты в одном столбце если делать это в формате freeform, то я могу наложить 2 столбца один на другой и отображать только один из них если я добавляю поле в GRID, оно займет у меня еще один столбец, т.е будет 2 столбца: <текст>, <дата> а надо чтобы и текст и дата были в одном столбце (визуально) может я чегото не понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2009, 13:10 |
|
эмуляция editmask
|
|||
---|---|---|---|
#18+
rhs проблема в том что ДВ типа GRID, а там добавить поле и менять visible не так просто, точнее я вообще не знаю как хотелось бы не менять интерфейсдля нового поля меняешь свойство Band, позицию берешь у соответствующего поля, после играться с BringToFront ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2009, 13:11 |
|
эмуляция editmask
|
|||
---|---|---|---|
#18+
rhs, Так у вас желание играться с Visible, а я предлагал поле скрыть, а на его место юзерское с едитмаск поле. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2009, 13:23 |
|
эмуляция editmask
|
|||
---|---|---|---|
#18+
zuzu zuzuдля нового поля меняешь свойство Band, а на что меняю свойство Band? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2009, 14:01 |
|
эмуляция editmask
|
|||
---|---|---|---|
#18+
maxATCТак у вас желание играться с Visible, а я предлагал поле скрыть, а на его место юзерское с едитмаск поле. пользователь должен видеть и исходное поле если там не дата и то, которое с Editmask ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2009, 14:12 |
|
эмуляция editmask
|
|||
---|---|---|---|
#18+
rhszuzu zuzuдля нового поля меняешь свойство Band, а на что меняю свойство Band?net pod rukoy PB, na liuboe drugoe ne default, eto pozvolit postaviti pole vne band ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2009, 15:25 |
|
|
start [/forum/topic.php?fid=15&msg=35828136&tid=1336380]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 337ms |
total: | 479ms |
0 / 0 |