我想用StringGrid来显示数据并且对数据进行操作后返回数据库,最后再次在StringGrid中显示(通过一个Button实现最后的显示的功能)。
  另外我想对数据库中的某几个字段进行计算后生成一个新的字段(该字段可以存在另一张表中),在StringGrid中也显示出来。 比如说我有一张进货资料表,包括‘货物名称’、‘货物单价’、‘进货数量’、‘进货日期’、‘进货人’这几个字段,我要让它的数据显示在StringGrid中,并且要对‘货物单价’和‘进货数量’进行计算得到‘货物总价’这个值存在另一张表中,但是要求当我按下‘计算’Button后‘货物总价’也能在StringGrid中显示出来。我不要用DBGrid显示,请问各位大侠有没有办法,最好能写出简单的代码谢谢!!

解决方案 »

  1.   

    StringGrid数据一个一个格子自己填进去的,
     StringGrid1.Cells[1,1]:= FieldByName('').asstring;
      

  2.   

    其实使用ehlib不是挺好吗,干吗要这么费事。
      

  3.   

    czzw(山水)
    ehlib 是什么东东啊?我没有接触过吗
    能不能讲详细一点啊?
      

  4.   

    ehlib是一组第三方组件,其中的dbgrideh功能强大,自带demo可供研究。
      

  5.   

    你可以用DevExpress的cxGrid和它的MemData(内存表)进行配合
      

  6.   

    從資料庫裡面讀出來,讀出多少行多少列,指定stringgrid的行列,用個循環一個一個填到stringgrid裡面就ok了
      

  7.   

    那么字段的计算呢?
    好象Stringgrid里面没有Calculate这个字段啊?
    能不能写些代码啊/
    帮帮我啊
      

  8.   

    怎么没有哪位大侠愿意出手吗?
    我只要把循环写一下就好了啊,能让Stringgrid显示出来
      

  9.   

    procedure TForm1.ADOQuery1AfterOpen(DataSet: TDataSet);
    var row,col:integer;
    beginrow:=0;
    while not adoquery1.Eof do
    begin
    stringgrid1.rowcount :=stringgrid1.rowcount+1;
    row:=row+1;
    stringgrid1.Cells[1,row]:=adoquery1.fieldbyname('job_id').asstring;
    stringgrid1.Cells[2,row]:=adoquery1.fieldbyname('job_desc').asstring;
    stringgrid1.Cells[3,row]:=adoquery1.fieldbyname('min_lvl').asstring;
    adoquery1.Next;
    end;
    end;
    这是一个完整的程序,不知道是不是你要的,至于相加要组合的字段,你可以根据stringgrid1.Cells[col,row]相加得到!对吗?
      

  10.   

    to hdjking(永昊) 
    非常感谢!!
    问题已经搞定。原来我col、row、fieldbyname同时在改变所以始终不能循环结束。
    再次谢谢!