比如在tdbgrid 中显示10条记录.怎么用一个循环语句来判断  某一列值 的正负? 大哥们写的详细点!!

解决方案 »

  1.   

    DBGrid1.DataSource.DataSet.First;
      while not(DBGrid1.DataSource.DataSet.Eof)do
      begin
        if (DBGrid1.DataSource.DataSet.FieldByName('Field1').AsFloat > 0) then
          ShowMessage(' > 0 ')
        else
          if (DBGrid1.DataSource.DataSet.FieldByName('Field1').AsFloat < 0) then
          ShowMessage(' < 0 ')
        DBGrid1.DataSource.DataSet.Next;
      end;
      

  2.   

    这个能不能在report 中 用?
    我在report 中用的时候  fieldbyname  不能出现
      

  3.   

    report中也可以用
    fieldbyname  不能出现
    是因为类型不匹配,
    你重新开一行写就会出现
      

  4.   

    飞哥.怎么我在report中 不能显示fieldbyname  重新开一行也没用
    我的语句如下   qr2.QRLabel.caption:=dbgrid. 
    dbgrid  后面没有fieldbyname   
    这样的话 我就不能选择是那列的 名字了
      

  5.   

    你的dbgrid是和qr2在一个form上吗?
      

  6.   

    是啊   dbgrid  和 qr2 一个 form   一个按钮来 打印 
    procedure TForm1.Button2Click(Sender: TObject);
    begin 
    是不是我得qr2  没有设置好  还是 在report 中不能 用 dbgrid 中的 东西?
    不过 我在 form 中 另外一个按钮 用 可以 不过那不是report 中
    dbgrid.DataSource.DataSet.FieldByName('charge')
    会不会是  qr2.qrlabel.caption   不行?
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      DBGrid1.DataSource.DataSet.  1.  //此时FieldByName就可以出来了 
                                       //等写完后再移下去就可以了,           
      qr2.QRLabel.caption:= dbgrid.DataSource.DataSet. 
             2. //此时FieldByName不出来是因为类型不是String类型 跟caption的类型不一 致, 你可以直接手写把FieldByName加上去就可以了  最终的语句:
      qr2.QRLabel.caption:= dbgrid.DataSource.DataSet.FieldByName('charge').asString;
    end;
      

  8.   

    飞哥.不行啊 我要抓狂了  强制打字上去 运行出现错误.identifier expected but 'string'found
    这样吧 我把所有思路告诉你,你告诉我怎么办?
    我先通过查询 得到一组数据.出现在dbgrid 中 比如有10组  现在我要打印出来 
    但是不是打印grid 中的数据  是要打印 合计的  比如 charge 一列 中 正的 合计多少
    负的合计多少. 所以我想 用一个循环来 判断 然后在report 中用 QRLabel 来显示 合计的数目.这个思路 对的吧  可是写的时候有问题啊