FMX下,Grid控件,decimal(18,4) 的字段,显示为BCD怎么处理

mmfeng 2018-03-10 02:18:25
在FMX下,Grid控件,decimal(18,4) 的字段,为什么显示为BCD,该怎么弄才能显示正确的值?
...全文
719 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingmingjian333 2019-06-12
  • 打赏
  • 举报
回复
要修改数据就完了
bjwujs 2018-03-15
  • 打赏
  • 举报
回复
受教了,以后碰到也知道如何处理了!!!
mmfeng 2018-03-11
  • 打赏
  • 举报
回复
在10.22的版本中,如果点ClientDataSet的 绑定,-》新控件-》选Grid的话,就会显示为(BCD),如果选String Grid 的话,可以显示出正常数据,但如果移动ClientDataSet 指针,移到的那一行就不正常,如ClientDataSet ->First 的话,第一行小数仍然出现(BCD)。 现在只找到用查询的方式解决,要查询为另一种类型,如字符类型的格式,让表格可以认得出才行。开始时我以为查询为截取二位小数不是BCD格式就行了,但还是不行,要查询为Grid 认识的字符格式才行,如这样:
select "cb_rl", "cl_TH_M_ARTNO", "price_cw",
cast( Round(price_cw,2) as varchar(50)) AS 财务单价,
cast( Round(price_HM,0,1) as varchar(50)) AS 生产报价
 from "DB_Price"
mmfeng 2018-03-11
  • 打赏
  • 举报
回复
在盒子上看到提示,一个方法是修攺查询的方式为Grid可认识的类型。 在delphi 中,另一个方法是修改那个 Fmx.Bind.Grid.pas 中第 515 行中的 mtBCD Fmx.Bind.Grid.pas 中第 515 行中的 mtBCD function TLinkGridToDataSourceControlManager.UnsupportedMemberTypes: TScopeMemberTypes; begin // Result := [mtUnknown, mtBCD, mtObject]; Result := [mtUnknown, mtObject]; end; 我用查询的方式搞好了,但如何修改那个文件不知怎么做,因我找不到这个文件,即使新建一个delphi 程序来试,也是找不到这个文件和里面的语句,请问在哪儿修改这个地方?
mmfeng 2018-03-11
  • 打赏
  • 举报
回复
楼上的,我用datasnap连接 mssql 的数据库,这个字段的类型不好改了,能有其他方法吗?
bjwujs 2018-03-10
  • 打赏
  • 举报
回复
如果是Sqlite数据库,浮点数选择Double类型,不要选择numeric等类型,后者是BCD类型,在网格控件上显示为(BCD),以前版本能正确显示数字。其他数据库类似,不要选择BCD类型的字段属性。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧