Topic: Маска для ввода телефонного номера в отчет

Как задать маску для вывода  текстового поля телефонного номера по шаблону типа (916)567-1111 в отчете? При вводе на форме есть возможность указать маску ввода, но в таблице телефон запоминается просто как последовательность цифр.

Re: Маска для ввода телефонного номера в отчет

При необходимости, вы можете сохранять номер телефона именно в таком виде, в каком он вводится в компонент,


например сейчас у вас маска
!\(999\)000-0000;0;_


замените ее на
!\(999\)000-0000;1;_

Dmitry.

Re: Маска для ввода телефонного номера в отчет

еще вопрос про маску ввод. скажем так в проекте в одном меню используется маска ввода в результате которой  в поле имеется следующая информация 1531510____ (4 последних значения цифры которые мы добиваем вручную). возможно ли ее как либо менять без перекомпиляции проекта.
и сразу еще 1 вопрос - реально ли сделать так чтобы при сохранении записи фокус в гриде переходил сразу на нее, т.е. на последнюю запись?

Re: Маска для ввода телефонного номера в отчет

wertyby wrote:

еще вопрос про маску ввод. скажем так в проекте в одном меню используется маска ввода в результате которой  в поле имеется следующая информация 1531510____ (4 последних значения цифры которые мы добиваем вручную). возможно ли ее как либо менять без перекомпиляции проекта.

Можно, например

Form1.Edit1.EditMask := '!\(999\)000-0000;1;_';
wertyby wrote:

и сразу еще 1 вопрос - реально ли сделать так чтобы при сохранении записи фокус в гриде переходил сразу на нее, т.е. на последнюю запись?

В текущей версии именно так и происходит, возможно у вас старая версия? если да, то думаю поможет этот скрипт

procedure Form2_bSave_OnAfterClick (Sender: string);
begin
    Form1.TableGrid1.dbItemID := Form2.bSave.dbGeneralTableId;
end;
Dmitry.

5 (edited by wertyby 2015-03-13 16:33:24)

Re: Маска для ввода телефонного номера в отчет

Можно, например
Form1.Edit1.EditMask := '!\(999\)000-0000;1;_'

Ничего не понимаю в скриптах поэтому понаглею еще раз :-) указанный выше код просто добавляем к скрипту либо нужно как то через операторы begin и end поместить? ах еще Edit1. это имя поля где прописана маска?

В текущей версии именно так и происходит, возможно у вас старая версия? если да, то думаю поможет этот скрипт
procedure Form2_bSave_OnAfterClick (Sender: string);
begin
    Form1.TableGrid1.dbItemID := Form2.bSave.dbGeneralTableId;
end;

Да версия последняя бесплатная, организация покупать однозначно не захочет (государственная), а небольшая база данные реально упростила несколько задач, я бы даже сказал колоссально. Так как разработка только для организации (даже бы сказал для подразделения из 3 человек с хреновой кучей обязанностей) то самому извините за прямоту тоже надобности в приобретении нет, хотя и очень бы хотелось. А вообще спасибо за программу и супер поддержку..
Ах да Ваш ответ из faq помог, реально достаточно прописать сетевой путь перед backup/backup спс.

Re: Маска для ввода телефонного номера в отчет

wertyby wrote:

Ничего не понимаю в скриптах поэтому понаглею еще раз :-) указанный выше код просто добавляем к скрипту либо нужно как то через операторы begin и end поместить? ах еще Edit1. это имя поля где прописана маска?
.

можете отправить ваш проект на support@drive-software.com
с подробным описанием, что именно нужно, постараюсь помочь.

Dmitry.

Re: Маска для ввода телефонного номера в отчет

Спасибо завтра пойду на работу буду пробовать.

Re: Маска для ввода телефонного номера в отчет

Уважаемый разработчик :-) понимаю что уже достал но ничего с собой поделать не могу, давлю клавиши эксперементирую и пытаюсь разобраться. Так вот я к чему - спасибо за помощь, но опять посмею обратиться с вопросом по маске ввода:
Как я понял то что я хочу реализовать невозможно, тогда может быть есть возможность единовременной смены маски ввода через скрипт. Т.е. имею готовый проект, год им пользуюсь для ввода данных после чего редактирую  маску ввода через скрипт  и пользуюсь следующий год. (Т.е. на пк где работает программа пользователь сам открыл скрипт, от корректировал номер и дальше продолжает заниматься помещением информации. Поиск между годами после раздумий не критичен сам себе я маску смогу и с помощью так сказать компилятора поменять в случае необходимости. Во блин текста набрал с телефона то. Заранее спасибо.

Re: Маска для ввода телефонного номера в отчет

wertyby
Можно сделать отдельное окно с настройками, где можно будет сменить маску ввода, также данную маску можно сохранить в реестре, чтобы при выходе из программы она запоминалась.

Dmitry.

10 (edited by wertyby 2015-04-02 17:57:51)

Re: Маска для ввода телефонного номера в отчет

Дмитрий я опять по вышестоящему посту. Искал, читал материалы, даже понаприкручивал себе некоторых скриптов с форума но с данным вопросом никак не продвинулся. Буду премного благодарен если сможете создать самый простой пример предложенного проекта, выложить его в готовых решениях. Дальше уже  думаю я смогу разобраться и сам. Просто уже мозги кипят. Информация может будет полезна еще кому либо. Заранее спасибо!!!!
А еще вопросик - как я понял для понятия синтаксиса скрипта можно почитать руководство по фастрепорт? Синтаксис отттуда будет правильный?

Re: Маска для ввода телефонного номера в отчет

wertyby
К сожалению если вы смените маску ввода для компонента, предыдущие записи, которые имели другую маску ввода, перестанут корректно отображаться в этом компоненте, думаю тут придется реализовать нестандартную маску с помощью скриптов, пожалуйста, пришлите ваш проект на support@drive-software.com
попробую что нибудь придумать.


Синтаксис скриптов практически идентичен языку программирования Delphi (Object Pascal)
поэтому можете взять любую книгу по данному языку программирования

Dmitry.

Re: Маска для ввода телефонного номера в отчет

Дмитрий огромное спасибо за помощь. Тестирую. Маска работает отлично.  Но есть еще один вопрос по данной теме, можно ли в данном случае реализовать помещение курсора сразу в конец маски для ввода последних 4 цифр, а то получается что необходимо либо мышью переместить курсор, либо с помощью клавиатуры.  Попой чую, что наглею, но ничего с собой поделать не могу. :-) СПС.

Re: Маска для ввода телефонного номера в отчет

Скачайте последнюю версию снова
http://myvisualdatabase.com/thank_you_f … ading.html


добавил такую возможность.


в вашем примере, к строчке

         vvod.nomer_materiala.Text := sGlobalMask;

добавьте вторую,  в итоге получится

         vvod.nomer_materiala.Text := sGlobalMask;
         vvod.nomer_materiala.SelStart := Length(sGlobalMask);
Dmitry.

14 (edited by wertyby 2015-04-03 20:39:50)

Re: Маска для ввода телефонного номера в отчет

DriveSoft wrote:

Скачайте последнюю версию снова
http://myvisualdatabase.com/thank_you_f … ading.html


добавил такую возможность.


в вашем примере, к строчке

         vvod.nomer_materiala.Text := sGlobalMask;

добавьте вторую,  в итоге получится

         vvod.nomer_materiala.Text := sGlobalMask;
         vvod.nomer_materiala.SelStart := Length(sGlobalMask);

ПОПРОБОВАЛ - ПРИ ВВОДЕ КУРСОР ПРЫГАЕТ НА КОНЕЦ МАСКИ НО НИЧЕГО НЕ ВВОДИТ. ПРИ  УДАЛЕНИИ СТРОКИ СТОЯЩЕЙ НИЖЕ "Key := #0; " НАЧИНАЕТ МЕНЯТЬ ПРИ ВВОДЕ ОДИН СИМВОЛ. КАКОЙ НАЖМЕШЬ ТАКОЙ И ПОКАЖЕТ ЦИКЛИЧЕСКИ.

?????????????????? ГДЕ ТО ТУТ ЕЩЕ ЧЕГОЙ-ТО НАВЕРНОЕ. ПЕЧАЛЬКА.

ИЗМЕНИЛ СВОЙСТВО "Key := #0; " НА "Key := #0000; " ВВОДИТ КАК НАДО ПОСЛЕ МАСКИ 4 ЦИФРЫ НО НУЖНО НАЖАТЬ КЛВИШУ ДЛЯ ПЕРЕХОДА С НАЧАЛА МАСКИ НА НУЖНУЮ ПОЗИЦИЮ  2 РАЗА ПОСЛЕ ЧЕГО НАЧИНАЕТСЯ ВВОД???

Re: Маска для ввода телефонного номера в отчет

Это необходимо сделать только в процедуре vvod_OnShow

Dmitry.

Re: Маска для ввода телефонного номера в отчет

Ёшкин ты КОТ млин. Мозгов не хватило изучить код ниже. Все работает  - Дмитрий Вы Гений, с самой лучшей поддержкой что я пока встречал. Ждем от Вас новых идей в развитии проекта. С уважением wertyby. Огромное спасибо.
Проект доработаю и пришлю наверное для дополнения раздела  с примерами.