【问题标题】:Table (or CDS) Field DisplayFormat表(或 CDS)字段显示格式
【发布时间】:2018-05-14 17:43:22
【问题描述】:

使用字段编辑器添加数据集的持久字段时,字段名称以TableMyField 连接到数据集,然后我可以在我的代码中访问持久字段的DisplayFormat 属性:

TableMyField.DisplayFormat

但是,如果我不使用字段编辑器并且不使用持久字段,我如何在运行时访问 DisplayFormat 属性?

【问题讨论】:

  • 数据集的 TField 从其定义中继承 DisplayFormat,因此请根据您的情况正确设置该字段。
  • @Victoria 不确定这是否属实。 TField decedents 为每个降级类的目的实现 displayformat。 OP 需要强制转换,例如:TFloatFIeld(dataset.fieldbyname('Cost')).displayformat := '#,###.00' 等。
  • @John,对不起,我错过了 descendants 这个词。但是他们从定义中继承了它,还是我错了(没有手动德尔福)?我没有检查过,但这是我能想到的唯一合乎逻辑的来源。你所展示的方法有什么问题?

标签: delphi displayformat


【解决方案1】:

由于 DisplayFormat 属性包含在 TField 的降级类中,因此您需要在运行时进行强制转换。您可以通过几种不同的方式做到这一点。

TNumericField(Dataset.Fieldbyname('CostPrice')).DisplayFormat := '#,###.00';

(Dataset.fieldbyname('CostPrice') as TNumericField).DisplayFormat := '#,###.00';

TNumericField(Dataset.fields[0]).DisplayFormat := '#,###.00';

【讨论】:

  • 效果很好,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-14
  • 2012-07-29
  • 2023-03-13
  • 1970-01-01
  • 2021-05-02
  • 2011-08-26
  • 2014-04-26
相关资源
最近更新 更多