CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

请教一下dbgrid列的显示和隐藏问题!

楼主delphichuxue(delphi)2002-11-21 16:03:12 在 Delphi / 数据库相关 提问

大家好,我有两个表,A表  
  biao         ziduan         visible  
  进货单         yjmc             true  
  进货单         yjxh             true  
  进货单         danwei         false  
  销售单         yjmc             false  
  ...  
  B表在dbgrid中显示,  
  biao         yjmc     yjxh     danwei     。。  
  进货单       啤酒     5             斤  
  进货单       酒类     6             斤    
         
  请问一下,A表字段visible为true的时候,怎么把B表中的yjmc,yjxh这两列在dbgrid中隐藏!谢谢拉! 问题点数:50、回复次数:10Top

1 楼scu96124678(冰河)回复于 2002-11-21 16:12:08 得分 0

dbgrid1.Columns[i].VisibleTop

2 楼delphichuxue(delphi)回复于 2002-11-21 16:14:03 得分 0

谢谢!能不能说详细点呀,我也知道是dbgrid.columns[i].visble呀!Top

3 楼mrfanghansheng(☆☆☆木鱼☆☆☆)回复于 2002-11-21 17:06:04 得分 25

加一个Tadoquery组件,窗体show的时候加入下面的代码  
   
    adoquery1.close;  
      adoquery1.SQL.clear;  
      adoquery1.SQL.add('select   *   from   a');  
      adoquery1.open;  
   
      for   i:=0   to   dbgrid1.Columns.Count-1  
      begin  
          adoquery1.Locate('ziduan',dbgrid1.Columns[i].Field.Name,[loPartialKey]);  
          if   adoquery1.FieldByName('visible').value   then  
              dbgrid1.Columns[i].Visible:=true  
          else  
              dbgrid1.Columns[i].Visible:=false;  
      end;  
   
  Top

4 楼delphichuxue(delphi)回复于 2002-11-21 17:29:04 得分 0

mrfanghansheng你好呀,没有反映呀!这样不行的。能不能在帮我看看!Top

5 楼mc43(火猴)回复于 2002-11-21 17:44:10 得分 0

dbgrid.Columns[i].Visible:=False;  
  或者动态生成SQL语句  
  Top

6 楼xml1123(明)回复于 2002-11-21 17:56:41 得分 25

procedure   SetDataSetFieldVisible(CurDataSet:   TDataSet;   sField:   String;   Visible:   Boolean);  
  Var  
      j:   Integer;  
  begin  
      try  
          for   j:=0   to   CurDataSet.FieldCount-1   do  
              if   UpperCase(CurDataSet.Fields[j].FieldName)=   UpperCase(sField)   then  
              begin  
                  CurDataSet.FieldByName(sField).Visible:=   Visible;  
                  break;  
              end;  
      except  
      end;  
  end;Top

7 楼fongming()回复于 2002-11-21 20:59:14 得分 0

upTop

8 楼delphichuxue(delphi)回复于 2002-11-22 15:34:54 得分 0

up!大家好呀!不行呀!我这样写为什么不行,因为我A表中包含有程序中全部的字段!  
   
  var  
  i   :integer;  
  begin  
  for   i:=0   to     dbgrid.Columns.Count-1   do  
  begin  
    with   adoquery2   do  
      begin  
          close;  
          sql.Clear;  
          sql.Add('select   *   from   visible   where   biao=''jhmx''');  
          open;  
              with   adoquery2   do  
                begin  
                    close;  
                    sql.clear;  
                    sql.add('select   *   from   jhmx')        
                    open  
                end;                  
  //先从表visible中找出ttt这个字段,在看看ziduan这个字段的数据是否和dbgrid的字段一样。如果是就隐藏,可这样为什么没有显示?        
            if   adoquery1.fieldbyname('ttt').AsBoolean=true       then  
            and   (adoquery1.fieldbyname('ziduan').AsString=dbgrid1.Columns[i].FieldName)   then  
            begin  
              dbgrid1.Columns[i].Visible:=false;  
              with   adoquery1   do  
                  begin  
                    close;  
                    sql.Clear;  
                    sql.Add('select   *   from   jhmx');  
                    open;  
            end;  
            end;  
  这样为什么没有隐藏?快来帮忙呀,各位,这个问题没有解决,自定义报表没有办法做呀!Top

9 楼zhangweibase(小马的拳)回复于 2002-11-22 17:15:01 得分 0

大哥,不要慌,小弟来也。  
  设计程序时,双击DBGrid组件,出现对话框,填加要显示的单元,并将每个单元与数据库的字段连接,用时,将对应的单元dbgrid1.Columns[i].Visible设置为真或假就可以了。希望给我5分。Top

10 楼delphichuxue(delphi)回复于 2002-11-22 23:07:17 得分 0

不是5分的问题呀,如果这个问题帮我解决了,我可用分全送都可以呀!可是上面所说的,都没有点到骨子里面,或者小弟太笨!看不懂!帮帮忙呀各位!Top

相关问题

  • 我用的是Table和DBGrid,请问如何隐藏一列数据,使其不在DBGrid中显示出来?再请问如何隐藏DBGrid中横向的滚动条?
  • DataGrid数据列显示/隐藏问题!!!
  • DataGrid数据列显示 / 隐藏问题!!!
  • 我在ADOTABLE+DBGRID中用ADOTABLE.FIELD[0].VISIBLE:=FALSE;来隐藏第一列,但是我现在要恢复显示第一列.怎么做呢?
  • 如何隐藏DBGrid中的几个列(不是删除)?
  • 请问怎么样隐藏dbgrid的一列?
  • INFORPOWER中的WWDBGRID如何动态隐藏和显示某一列
  • 如何用程序隐藏和显示DataGrid中的一列
  • 显示、隐藏DATAGRIDE的COLUMN列的小问题。
  • 如何隐藏/显示StringGrid中的某一列

关键词

  • 字段
  • sql
  • dbgrid
  • adoquery
  • curdataset
  • yjmc
  • visible
  • ziduan
  • 隐藏
  • jhmx

得分解答快速导航

  • 帖主:delphichuxue
  • mrfanghansheng
  • xml1123

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo