关于Query,Table的使用和DBGridEh(50分)

  • 主题发起人 xuejinlong
  • 开始时间
X

xuejinlong

Unregistered / Unconfirmed
GUEST, unregistred user!
1)频繁的要查找一个表中的数据,我想在启动时用Query或Table将整个表选出来(不是很大不到100条纪录)
然后在查找数据时在这两个控件中用其中的两个字段定位,不知道那个好用,应该调用那个方法?
2)在DBGridEh中显示的结果,对于同一条纪录由很多相邻字段值相同(如:从字段2~10的值都是“正常”),我想
将这些合并成一个值显示,不显示字段之间的竖线。

例如
1 2 3 4 5
a 正常 正常 正常 正常
b 正常 可异 正常 正常
c 可异 正常 正常 正常

改成如下显示效果
1 2 3 4 5
a 正常
b 正常 可异 正常
c 可异 正常

没有格格很难看懂吧,我想聪明人应该知道我的意思。
 
//第一个问题:
procedure TForm1.FormCreate(Sender: TObject);
begin
with Query1 do
begin
Close;
SQL.Text := 'select aaa,bbb,ccc,ddd from table1 order by aaa';
Open;
end;
end;

//字位数据,bbb,ccc 为字段名,Edit1,Edit2为查询的依据
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Locate('bbb,ccc', VarArrayOf([Edit1.Text, Edit2.Text]), []);
end;

第二个问题实现起来较难,如果你将数据进行处理,然后用其它控件倒是可以实现的,
用DbGrid好象不行,用EhDbGrid,将数据处理后放在Title里可以
但我觉得这样做完全没有必要
 
第二个问题: 建立只有两个字段的临时表#table(field1,field2),field1用于项目(a,b,c..), field2用于状态内容(正常 可异... ) 。
通过程序判断状态的具体内容,再写到field2里面
 
顶部