Я пытаюсь получить числовое значение моего sql-запроса firebird.
В IBExpert типы данных правильные "Числовые (18,2)", но когда дело доходит до FastReport, он отображает мне не тип данных Numeric18,2. Это сокращает ,00 прочь.
Кто-нибудь, кто может мне помочь?
SELECT AVG(CAST (PQ AS NUMERIC(18,2))) FROM PROC ORDERED BY..
это мой "псевдокод", чтобы мои наборы данных работали с FastReport. В ibexpert получаю результат 50,00. В FastReport я получаю 50 в качестве вывода в заметке/форматированном тексте. Думаю, FastReport всегда отсекает последние 0. Если в ibexpert я получаю результат типа 41,20, то в FastReport я получаю 41,2.
Не указывайте соответствующую информацию в комментариях, вы должны отредактировать свой вопрос, но это не минимальный воспроизводимый пример. В любом случае, не зная быстрого отчета вообще, это предполагает, что он либо извлекает, либо отображает его как двойную точность, или вы можете использовать базу данных диалекта 1 вместо диалекта 3.
Возможно, вы перепутали две разные вещи - числовые данные, которые Firebird передает вашей программе, и текстовые данные, которые FastReport создает из этих числовых данных и передает вам. Вам нужно прочитать руководства FR о форматировании данных. Например, в обычных библиотеках Delphi db есть TField
, который имеет свойства OnGetText
и DisplayFormat
: stackoverflow.com/questions/21399729 В FastReport должны быть подобные свойства, возможно, в его объектах столбцов таблицы
Ваши данные извлекаются правильно, вам нужно просто отобразить их в правильном формате.
Установите формат отображения текстового поля, как описано в документация.
Если текстовое поле содержит разные форматы для нескольких значений, вам необходимо использовать встроенное форматирование для каждого значения.
Спасибо, это все.
Укажите минимальный воспроизводимый пример.