Delphi FireDAC TFDQuery DisplayFormat

У меня есть некоторые проблемы, связанные с FormatOptions, У меня есть экран продаж и после перехода на Firedac(Предыдущая была IBO), полные значения (напр.: 100,00, 52,00) начали появляться так:

(IBO) 100,00 52,00

(FireDAC) 100 52

Я пытался использовать MapRules используя следующую конфигурацию:

SourceDataType dtBCD
TagetDataType dtBCD
PrecMax 18
PrecMin 1
ScaleMax 5
ScaleMin 0

Я активировал OwnMapRules вариант, но дисплей остается прежним. Поэтому я попытался использовать fmtDisplayNumeric property, Информирование "0,00" решает мою проблему по частям, зачем ограничивать отображение двумя десятичными разрядами, но есть поля, которые имеют более 2 десятичных разрядов. Кроме того, мои поля Integer показывают десятичные разряды на дисплее.

Я пытался создать правило в MapRules для полей Integer, но проблема остается.

Что мне делать в таких случаях?

Заранее спасибо!

1 ответ

Решение

MapRules не имеет ничего общего с форматированием отображения. Он переводит тип данных драйвера в тип данных, который вы хотите использовать в приложении, и наоборот.

Компоненты IBO имеют специфическое поведение для числовых полей. Они рассматривают это как поле валюты, в зависимости от числовой шкалы. Смотрите документацию IBO.

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

Другие вопросы по тегам