crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Как мне создать маску для числового поля?
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.
Кто-нибудь может помочь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
trdm
  опции профиля:
сообщение 14.9.2009, 13:14
Сообщение #2


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


Маску не извлекают, а вычисляют...

приблизительно так:
//==============================================================================
// вычислитьМаску( псЦел, псДробн) © trdm 2009
Функция вычислитьМаску( псЦел, псДробн)
    ЗначВозврата = "";
    
    СЦ = 0;
    Для СЦ = 1 По псЦел Цикл
        ЗначВозврата = ЗначВозврата + "9";
    КонецЦикла;
    Если псДробн > 0 Тогда
        ЗначВозврата = ЗначВозврата + ",";
        Для СЦ = 1 По псДробн Цикл
            ЗначВозврата = ЗначВозврата + "9";
        КонецЦикла;
    КонецЕсли;     
    
    Возврат ЗначВозврата;
КонецФункции // вычислитьМаску()

это если там нумерик.
Для других типов тот же метод.

Сообщение отредактировал trdm - 14.9.2009, 13:16
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mva
  опции профиля:
сообщение 14.9.2009, 15:04
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 104
Регистрация: 15.3.2009
Из: Киров
Пользователь №: 615

Спасибо сказали: 3 раз(а)




Репутация:   0  


Цитата(trdm @ 14.9.2009, 14:14) *
Маску не извлекают, а вычисляют...


Если бы я знал, где взять "псЦел" и "псДробн" для данного поля в Qt4 то я бы вычислил.


Цитата(abra @ 14.9.2009, 12:23) *
P.S так же можешь попробовать сделать так же,как делает Постгря.Получать типы полей(по запросу.У тебя выведутся все поля,примерно в таком в форме скажем 5,2;3,1; ну короче нумерики),и ты тогда автоматом ставишь запятую там,где это надо.Получаешь первый символ,отступаешь в поле данное кол-во символов,ставишь запятую(отделение целой от дробной).
Затем складываешь два числа(целой и дробной части,и +1(запятая),и получаешь размерность поля.
setLength(и устанавливаешь).
И вот твоя маска готова.Алгоритм один,а использовать можно для всех полей...


Не совсем понял. А если записей в таблице нет?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- mva   Как мне создать маску для числового поля?   13.9.2009, 16:42
- - abra   Укажи 9999999999,999 в inputMask   13.9.2009, 21:16
- - mva   Можно конечно и так, но хотелось бы, чтобы маска н...   14.9.2009, 8:11
|- - abra   Цитата(mva @ 14.9.2009, 9:11) Можно конеч...   14.9.2009, 10:24
- - Litkevich Yuriy   mva, попробуй подключится к БД с помощью демки sql...   14.9.2009, 9:08
|- - mva   Цитата(Litkevich Yuriy @ 14.9.2009, 10:08...   14.9.2009, 13:09
- - abra   P.S так же можешь попробовать сделать так же,как д...   14.9.2009, 11:23
- - trdm   Маску не извлекают, а вычисляют... приблизительно...   14.9.2009, 13:14
|- - mva   Цитата(trdm @ 14.9.2009, 14:14) Маску не ...   14.9.2009, 15:04
- - SABROG   Цитата(mva @ 14.9.2009, 16:04) Не совсем ...   14.9.2009, 15:15
- - Litkevich Yuriy   Цитата(SABROG @ 14.9.2009, 19:15) - типу ...   14.9.2009, 15:22
|- - mva   Мне нужно генерировать маску для любого поля типа ...   14.9.2009, 15:30
|- - SABROG   Цитата(Litkevich Yuriy @ 14.9.2009, 16:22...   14.9.2009, 15:31
|- - mva   Цитата(SABROG @ 14.9.2009, 16:31) Не прок...   14.9.2009, 15:53
- - mva   Нашел вот такую функцию, с помощью которой можно б...   14.9.2009, 16:42
- - Litkevich Yuriy   mva, Я думаю, троли для начала PostgreSQL поддержа...   14.9.2009, 18:33
- - abra   Слушай.А не понимаю тебя человек....Я же написал т...   14.9.2009, 22:19
- - mva   Цитата(abra @ 14.9.2009, 23:19) Слушай.А ...   15.9.2009, 9:48


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.1.2025, 2:39