我的数据库某个表中有两个字段 money_kind(币种,字符型), amount,(金额,数值型),如果是整数 在数据显示控件里显示1000 20000等 但我想让他们显示成1000.00 20000.00(如果能显示成1,000.00 20,000.00更好)我知道有两个方法一是使用固定字段 定义固定字段的displayformat属性为0.00 二是 使用select money+cast(amount as varchar(10)) from dbtable 但是这两种方法都因为种种原因无法实行,有没有更好的办法 ????????

解决方案 »

  1.   

    推荐你使用dxDB的那套控件,里面有格式化的控件。
      

  2.   

    dxDBCurrencyEdit完全符合你的要求
      

  3.   

    使用displayformat比较好?为什么不能实现呢?就算动态生成地字段,也可以动态地设置。
      

  4.   

    yinzhiw(不懂OOP) 可以,也是最好的方法了
      

  5.   

    TO LOBBY
    我就是使用动态的字段,不向生成固定的字段,可是我不知道怎么动态的设置字段的DISPLAYFORMAT属性
    如 ADOQUERY1.SQL.ADD('SELECT * FROM TABLE1');
    ADOQUERY1.OPEN
    之后 我想使用ADOQUERY1.FieldByName('AMOUNT').DISPLAYFORMAT:='0.00'
    可是没法使用 
    因为我发现DISPLAYFORMAT是TFLOATFIELD的属性,而我动态生成的ADOQUERY1.FieldByName('AMOUNT')是一个TFIELD类型的对象
      

  6.   

    怎么用代码动态生成TFLOATFIELD类型的字段 只有TFLOATFIELD类型的字段才有DISPLAYFORMAT属性!!!!!!!!!!!
      

  7.   

    with adoquery1 do
     begin
     close;
     sql.clear;
     sql.add('select money_kind as pa from tab_name ');
     open;
    end;
    edit1.text:=formatfloat(',#0000.00',adoquery1.parameters.parambyname('pa').value);
    就可以了;
      

  8.   

    TO 爱然的女孩的连少华
    这样不行呀 我的DBEDIT1不仅要显示 还要编辑 用你的代码 可以显示 但是你一点文本框
    200.00又变成200了
      

  9.   

    编辑肯定是不行了呀,你换成edit来试试吧,对了,你怎么知道我真正的名字?晕了,
      

  10.   

    LIANSHAOHUA 肯定是连少华了 不过我的问题还没有解决
      

  11.   

    因为我用的是ADOQUERY控件 我的SQL 语句在程序里可能发生变化 一些字段可能没有了 所以我就像用动态的
      

  12.   

    双击adoquery控件,在fields editor...中选中你要显示的字段。在displqyformat属性上写
    ,.00  既可以了
      

  13.   

    哈,这样:TNumericField(ADOQUERY1.FieldByName('AMOUNT')).DisplayLabel := ...........
      

  14.   

    LOBBY说得对 不过我已经使用了EHLIB控件包里的DBNumberEditEh控件 这样就不用写代码了谢谢你 谢谢大家