我的计算字段是放在onCalcFields中的,而Tquery是放在DataM中,在Form1中的DBGrid只显示数据库里面的字段,而计算字段出不来,为什么?

解决方案 »

  1.   

    你将query双击,随后加入字段.再在getvalues事件中写代码
      

  2.   

    我用的是D5,怎么没有getvalues这个事件啊!
      

  3.   

    我觉得你首先应该试试你的onCalcFields手动添加一列能不能显示,
      

  4.   

    这很简单
    你双击TQuery
    在字段列表中选择ADD ALLfields
    之后再选add new field
    输入你要加的计算字段(把类型记着设成calc的在加时)
    数据类型什么的设好
    然后在tquery.oncalcfields直接给这个字段值就行了
      

  5.   

    写好计算字段后,双击query,右击选择new fields ,加入你要家的计算字段,field type 是
    calculated
      

  6.   

    >>> fordcot(佛德) :我添加的字段是可以出来,只是数据出不来。
    >>> Focus(老鱼) ,Afrit()  :我本来也是像你那样做的,就是出不来数据很奇怪.而用showmessage('计算的数据却是存在的').百思不得其解。
      

  7.   

    其中计算程序如下:var  MonthDays:integer;//获得一个月的天数
    begin
        MonthDays := GetMonthDays(StrtoInt(FormatDateTime('m',now)));
        with YctjQuery do
        begin
           FieldbyName('出勤(天)').AsFloat :=
                  MonthDays - FieldByName('请假').AsFloat //此字段由sum(请假)得到
                            - FieldByName('轮休').AsFloat;//此字段由sum(轮休)得到       Open;
        end;
        showmessage(InttoStr(YctjQuery.FieldbyName('出勤(天)').AsInteger));//显示正确结果
    end;