首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

DBGridEh展示列

2012-08-07 
DBGridEh显示列如下代码表a有200个字段:通过DBGridEh1显示出来,然后把第10列以后的隐藏(必须要有),如果一

DBGridEh显示列
如下代码表a有200个字段:通过DBGridEh1显示出来,然后把第10列以后的隐藏(必须要有),如果一下代码循环隐藏的话,会影响速度,可不可以用一句话把第10列以后的列隐藏?
  qy1.Close;
  qy1.SQL.Clear;
  qy1.SQL.Add('select * from a');
  qy1.Open;

  for i:=0 to dbgrideh1.columns.count-1 do
  begin
  if i>10 then
  begin
  dbgrideh1.Columns[i].visible:=false;
  end;
  end;

[解决办法]
你的这条更影响速度,用多少取多少列。

qy1.SQL.Add('select * from a');

[解决办法]

探讨

你的这条更影响速度,用多少取多少列。

qy1.SQL.Add('select * from a');

[解决办法]
如果非要这样做的话,
1、就在设计时将dbgrideh加入所有字段,
2、然后将代码顺序改一下
Delphi(Pascal) code
  qy1.Close;//关掉数据表或用qy1.DisableControls;  for i:=0 to dbgrideh1.columns.count-1 do  begin  if i>10 then  begin  dbgrideh1.Columns[i].visible:=false;  end;  end;   qy1.SQL.Clear;  qy1.SQL.Add('select * from a');  qy1.Open;//如果前面用和qy1.DisableControls;这里要用qy1.EnableControls;
[解决办法]
在设计时将dbgrideh加入所有字段,打开qy1,双击dbgrideh ,上方有一个按纽,add all fields
[解决办法]
这个也改一下

for i:=11 to dbgrideh1.columns.count-1 do

[解决办法]
你也可以在数据库中先建立VIEW啊
[解决办法]
双击qy1加入要显示的字段就OK了
[解决办法]
什么意思,a 表结构未定?
你在设计期的qy1就加上'select * from a',qy1就可以打开了么,可以打开就可以填写字段了。
[解决办法]
其实我是不明白LZ的特殊情况是什么
[解决办法]
这样啊,其实不难,想达到完全的自定义,下面思路可以参考一下:
1.做一个保存此角色dbgrideh状态的东西了,可以是一个表或者一个txt文件(ini文件)
2.先建立一份默认的保存起来
3.再做个右键菜单,可以打勾的,关联dbgrideh,菜单上列出所有的列名,勾中就显示,反之隐藏
4.打开时读取加载
5.退出时若有修改过就更新
[解决办法]
是的,包括颜色,宽度,顺序...都可以

[解决办法]
dbgrideh 带有选择显示列、保存grid信息的功能
Delphi(Pascal) code
//存储Grid格式inifunction SaveGridIni(ADBGridEhNameStr: string;ADBGridEh:TDBGridEh): Boolean;var  IniFileNameStr:string;begin    IniFileNameStr := ExtractFileDir(ParamStr(0)) + '\' + 'DBGirdConfig.ini';    ADBGridEh.SaveGridLayoutIni(IniFileNameStr,ADBGridEhNameStr,False);end;//加载读取Grid格式inifunction RestoreGridIni(ADBGridEhNameStr: string;ADBGridEh:TDBGridEh): Boolean;var  IniFileNameStr:string;  RestoreParams: TDBGridEhRestoreParams;begin    IniFileNameStr := ExtractFileDir(ParamStr(0)) + '\' + 'DBGirdConfig.ini';    ADBGridEh.RestoreGridLayoutIni(IniFileNameStr,ADBGridEhNameStr,RestoreParams);end;
[解决办法]
读取数据,不用修改数据集,
dbgrideh根据需要动态创建数据列,10列以后的不要创建就可以了.

[解决办法]
先静态加上200个列,全部设置为不显示。必要时候循环10次改为可显示。

热点排行