Проблема с форматом по умолчанию при заполнении таблицы

Автор oxida, 26 июня 2013, 09:37

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

oxida

Суть проблемы: с целью экономии времени хочу указать формат номера телефона, чтобы не вставлять скобки и тире. В настройках таблицы выбрал тип поля - Число (Numeric) для поля "номер телефона". Т.к. это поле не всегда заполняется, то выбрал Обязательное - нет. Длина - 100. Знаков после запятой - 0. Значение по умолчанию пробовал и указывать и оставлять пустым. Пример формата забил (000)000-00-00.
Все это мероприятие сохранил.
При заполнении таблицы через форму указываю номер телефона, 1111111111, при переходе к следующей графе он меняет запись на (111)111-11-11, при переходе к следующей записи и возвращению на заполненную он показывает (000)000-00-00.
Что я сделал неправильно? Как исправить этот косяк?

Helen

тестовый пример БД можете приложить к сообщению? Какая версия офиса используется?

oxida

Использую LibreOffice 4.0.4.2.
Тестовую базу вложил.


[вложение удалено Администратором]

Hasim

Вы указали для этого поля в Пример формата телефонный формат, ну программа его честно и показывает.
Она права, надо было указать простой числовой (или текстовый).

oxida

Цитата: Hasim от 26 июня 2013, 12:51надо было указать простой числовой (или текстовый)
А как правильно сделать, чтоб она сама добавляла скобки и тире при заполнении таблицы через форму?

Hasim

В таблице для поля Номер телефона установить числовой формат: "("000")"000"-"00"-"00", может стать таким:  (000")"000"-"00"-"00  - это нормально.
Текстовое поле Номер телефона заменить на Форматированное поле Номер телефона.
Пример приложен.
На Apache все работает.

[вложение удалено Администратором]

oxida

Цитата: Hasim от 26 июня 2013, 14:48На Apache все работает.
К сожалению, при открытии приложенного Вами примера и заполнении номера телефона через форму он опять превратился в (000)000-00-00. :(

Hasim

#7
У меня работает и на AOO 3.4.1 и на LO 4.0.1.2 (Windows XP).
Вот картинки и сами файлы.
В выложенную ранее базу добавлены через форму новые записи, номер телефона вводился в форме как ряд цифр (например, 7777777777), после перехода к другому полю превращался в (777)777-77-77.
Как и требовалось, и в (000)000-00-00 не превращался.

(для АОО на картинке не добавленная запись, а имевшаяся изменена для примера)

У вас, как я понял, LibreOffice 4.0.4.2
Linux/Windows?

Может кто-нибудь проверить на LibreOffice 4.0.4.2 ?
Для Linux и для Windows.



[вложение удалено Администратором]

DixiX57

#8
Тоже попробовал. LO 4.1.0.1 Oracle Java 1.7.0_25 Win XP. При попытке изменить запись и потом перейти к другой записи или при попытке создать новую запись получаю java.lang.NumberFormatException.
oxida
Попробуйте перейти к другой записи после изменения номера телефона и превращения в (000)000-00-00, что будет у Вас?

oxida

Да, у меня LibreOffice 4.0.4.2 Windows.

Видимо мне очень везет:
1. Приложена картинка сразу после заполнения графы номера
2. Приложена картинка после нажатия Enter/Tab.
3. Приложена картинка - результат попытки сохранения записи.

По непонятным мне причинам при нажатии Enter/Tab после "Контактного лица" перескакивает в "Номер папки" минуя "Номер телефона". К "Номеру телефона" переходит после "Примечания". После заполнения "Номера телефона" не сохраняет запись, а переходит к "Району" и так циклично скачет, не переходя на следующую запись.

[вложение удалено Администратором]

DixiX57

Я бы вообще сделал вот так. Данные в поле номера телефона - текстовые. Использую в форме поле с маской ввода. Есть у этого поля некоторые ограничения , но...

[вложение удалено Администратором]

oxida

#11
Цитата: DixiX57 от 27 июня 2013, 11:48Данные в поле номера телефона - текстовые. Использую в форме поле с маской ввода.
Подскажите, пожалуйста, как вы добились такой маски ввода?
Я изменил в существующей базе данных тип поля на "Текст VARCHAR" тыкнул по ... справа от примера формата, набрал в Коде формата нулики, тыкнул на галку, ОК. А там как висела @ так и висит.
Потыкался, добился, чтобы в примере формата появились нулики, но при заполнении графы в форме оно не меняется на вид, указанный в примере формата.
Нужно что-то еще сделать?

Hasim

Цитата: oxida от 27 июня 2013, 11:16при нажатии Enter/Tab
Попробуйте Свойства формы - Цикл - Активная запись
(и вообще поиграться с Циклом)

Я то переходил мышью к полям формы.

DixiX57

#13
Цитата: oxida от 27 июня 2013, 12:14Подскажите, пожалуйста, как вы добились такой маски ввода?
В таблице - просто Тип Текст VARCHAR, Длина 14, Код формата @. А вот в форме я использовал поле с маской ввода (Дополнительные элементы управления -> Поле с маской ввода). В свойствах поля указал: Маска ввода LNNNLNNNLNNLNN, Маска знаков (000)000-00-00, Максимальная длина текста 14

oxida

Цитата: DixiX57 от 27 июня 2013, 15:21(Дополнительные элементы управления -> Поле с маской ввода)
Спасибо огромное. Все заработало. Цель достигнута, не совсем так, как планировалось изначально, но и так замечательно.