【发布时间】:2016-08-17 13:42:17
【问题描述】:
我有一些与FormatOptions 相关的问题。
我有一个销售屏幕,在迁移到 Firedac(以前是 IBO)后,完整值(例如:100.00、52.00)开始显示如下:
(国际文凭组织) 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 位。此外,我的整数字段在显示屏上显示小数位。
我尝试在 MapRules 中为 Integer 字段创建规则,但问题仍然存在。
遇到这种情况我该怎么办?
提前致谢!
【问题讨论】:
-
你用什么来显示这个?
TFDQuery是一个非可视组件。 -
@JerryDodge 我在
DBGrid和DBEdit中显示 -
通常显示应该在 UI 级别实现。意思是,如果您在
TDBGrid和TDBEdit中显示数据,那么显示格式应该在那里完成。基础数据不应受到影响。 -
我无法在 DBGrid 或 DBEdit 中格式化我的字段,我总是在
Query AfterOpen event上使用TNumericField(Query.FieldByName('Field')).DisplayFormat := ',0.00'应用格式。但我知道Firedac有另一个名为MapRules的系统。 -
@JerryDodge:我不确定我是否同意应该在哪里进行显示格式化,尤其是。如果相同的数据要由两个不同的控件显示。使用 TField OnGetText 事件有什么问题?当然,这种类型的东西是它的目的。
标签: delphi firedac displayformat