Как мне создать маску для числового поля? |
Здравствуйте, гость ( Вход | Регистрация )
Как мне создать маску для числового поля? |
mva |
13.9.2009, 16:42
Сообщение
#1
|
Участник Группа: Участник Сообщений: 104 Регистрация: 15.3.2009 Из: Киров Пользователь №: 615 Спасибо сказали: 3 раз(а) Репутация: 0 |
Доброго времени суток всем! Поздравляю всех с Днем Программиста!
В моей БД на PostgreSQL в некоторых таблицах есть числовые поля типа NUMERIC(10, 3). Ну или NUMERIC(12, 2), например. При использовании QTableView они нормально отображаются, с тремя или двумя знаками после запятой. Но при редактировании этих полей не работает маска ввода, т.е. в поле можно вводить все что угодно. Хотелось бы, чтобы пользователь сразу видел маску ввода чисел. Проблема в том, что я не знаю, где эту маску можно получить. Фунция QSqlField::precision(), на которую я рассчитывал, возвращает -1. Кто-нибудь может помочь? |
|
|
mva |
14.9.2009, 16:42
Сообщение
#2
|
Участник Группа: Участник Сообщений: 104 Регистрация: 15.3.2009 Из: Киров Пользователь №: 615 Спасибо сказали: 3 раз(а) Репутация: 0 |
Нашел вот такую функцию, с помощью которой можно было бы сгенерить маску:
QString QSqlDriver::formatValue ( const QSqlField & field, bool trimStrings = false ) const [virtual] Но она работает только с непустыми записями. Решил при открытии таблицы делать запрос на сервер о дополнительной информации по столбцам. Для PostgreSQL это будет примерно так: SELECT column_name, data_type, numeric_precision, numeric_scale FROM information_schema.columns WHERE table_name LIKE '...' Сообщение отредактировал mva - 14.9.2009, 16:44 |
|
|
Текстовая версия | Сейчас: 15.1.2025, 2:53 |