請問如何讓顯示在dbgrid里面的某些數據隱藏起來﹖或者是假象的刪除(不從數據庫中刪除)

解决方案 »

  1.   

    双击dbgrid,会出现字段列表,你把不想在dbgrid显示出来的字段删除就可以啦。
      

  2.   

    补充
    设置字段的属性bvisible为false
      

  3.   

    謝謝大家地關注﹐可能是我沒有講清楚﹕
        我的意思 是說。我現在根據條件統計出的信息全部顯示在dbgrid里面。線在由于用戶要求﹐不想讓某些統計出來的記錄顯示在里面(當然是多條記錄﹐但是也沒有什么規律可以找到。)﹐我現在的意思是看用什么方法使這些不讓顯示出來的記錄隱藏起來或者從dbgrid中刪除掉(不要把數據庫中的記錄刪除)﹖﹖﹖﹖﹖ 
      

  4.   

    利用事务处理!
    在全部察看完毕,选择是否更新数据库。或者直接不更新,退出。这样就不怕用户删除dbgrid中的内容了吧?
    也许可以!看看高手怎么说吧!
      

  5.   

    我还是不明白用 cnsolonet(鹰)和rust(铁锈)的方法怎么解决不了?
      

  6.   

    我說的就是rust(铁锈)的意思 ﹐沒有錯。使隱藏整條記錄。不是dbgrid中的某一字段。
        
         你們說我這樣作行嗎﹕當我右鍵點擊'刪除'時實現每一個字段的隱藏﹐代碼如下﹕
          procedure TForm1.N1Click(Sender: TObject);
          begin
          DBGrid1.Fields[0].visible:=false;
          DBGrid1.Fields[1].visible:=false;
          DBGrid1.Fields[2].visible:=false;
          DBGrid1.Fields[3].visible:=false;
          DBGrid1.Fields[4].visible:=false;
          DBGrid1.Fields[5].visible:=false;
          DBGrid1.Fields[6].visible:=false;
          DBGrid1.Fields[7].visible:=false;
          end;
          end.//該dbgrid中右8個字段。   為什么運行抱錯如下呢﹖
         access violation in module project1.exe.
        
      

  7.   

    这样会把所有字段都隐藏了吧?
    字段的visible是隐藏字段的!
    应该有隐藏记录的方法呀!
    你想得应该行得通!
      

  8.   

    to:  rust(铁锈)  
         我是這么想的﹐我只要扑捉到要隱藏的記錄﹐用上面的代碼完全可以的﹐現在就是扑捉要記錄時遇到困難﹐我上面的代碼是加在dbgrid上PopupMenu中的事件下﹐難道這樣不時扑捉到記錄了嗎﹖    你們有沒有更好的扑捉記錄的方法﹖
      

  9.   

    你的方法好像把所有的记录的字段都给不显示了!
    这么做得到记录也不行的。
    除非是直接隐藏行,也就是记录。
    可惜我也不太熟悉delphi。呵呵!
      

  10.   

    铁锈哥﹕非常感謝你的支持。我的msn:   [email protected]   又空聯系喔。
         哪位高手可以幫幫我呀....!
      

  11.   

    比较麻烦吧
    先用个临时表存放数据,显示的时候显示该临时表,把dbgrid的mutiselect属性选中,然后选中要隐藏的记录,当执行隐藏事件时
    Dateset.first;
    While not DateSet.eof do
    begin
     if Self.DBGrid1.IsSelected then
        DateSet.delete;
      ............
    end;
    如果要恢复,把临时表清空,在从实际表导入好了,不知道是不是和你所想的一样
    没想到更好的方法
      

  12.   

    临时表最好使用ClientDataSet,因为它支持公文包模型,在本地可以任意修改数据。
      

  13.   

    只能从ADOQuery中想办法。设置Filter值。比如,ADO主键为Key,,该行为3,则设Key<>3,如Filter<>'' 则前加 'and ...'。你可以弹出对话框设置要隐藏的数据行。
      

  14.   

    是不是说将某些符合一定规则的数据不显示,比如统计数据,大于xxxx的数据等,
    只要你能将不显示的数据找到规则,就可以这样DBGrid1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
       if   (你自己的规则判断)  then
        begin
          DBGrid1.Canvas.Brush.color:=clLime;
          DBGrid1.Canvas.Font.Color:=clRed;
        end
        else
        begin
          DBGrid1.Canvas.Brush.color:=clWhite;
          DBGrid1.Canvas.Font.Color:=clBlack;
        end;
        DBGrid1.defaultdrawcolumncell(rect,datacol,column,state);
    end;
     不想显示的 将单元格的前景色和背景色设置一样,要求显示的设置不用改变,这样就达到了隐藏一些单元格数据的目的。
      

  15.   

    要是隐藏列的话,上面的方法就可以了,
    要是行的话,就是SQL语句了
      

  16.   

    直接用sql语句不好吗?你想要什么条件就什么条件