1.可以在DBGrid的DrawColumnCell事件里面自己画~~判断你的那个控制字段~~然后在画出不同显示
解决方案 »
- 求翻译C++代码为Delphi(保存文件100分)
- 进来看看,给你一次献爱心的机会
- 怎么取adoquery当前记录的某字段
- windowsNT的密码!!??装系统的时候为登录不用密码!!装上以后设置为要密码登录??可是不知道密码!!??
- 请问我如何能在一个表里面随机调出30条记录,然后,再存入另外一个表中
- delphi的面象对象和c++的怎末差这么多啊?
- 一个关于打印很菜的问题
- 有谁知道DBRadioGroup和adotable配合使用时,为什么不会选中字段中的值?
- 请问:如何让鼠标移到ListBox上的某个Item时让Hint显示,并显示该Item的值(String)?
- 那位大哥救小妹!! 关于f1book
- 怎么解决动态生成PANEL时的闪烁问题?
- 在Delphi中如何在x,y处画点(用canvas),有没有这种函数呀?
判断你的那个控制字段~~
GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
设置那个Text就是最终显示出来的~~
第二个方法对我不合适,因为,这个字段要在DBGRID上显示了两次,只能在DBGRID上控制。
if fieldbyname('控制字段').asstring<>'2' then
begin
//可在此设定一些CANVAS如字体大小等内容
dbgrid1.canvas.textout('--');
end;
在Query的OnCalcField 实践中写入
if DataSet.控制字段 = 2 then
DataSet.计算字段 := IntToStr(DataSet.控制字段)
else
DataSet.计算字段 := '--'
DbGrid1.Canvas.TextOut(rect.left,rect.top,'--'); DBGrid1.DefaultDrawDataCell(Rect, Field, State);
数据库为:
姓名 职位 类型
张某 软件工程师 1 (代表应聘者)
刘二 企划部经理 2 (代表职位调整者)在DBGRID中显示时姓名 应聘职位 调整职位
张某 软件工程师 --
刘二 -- 企划部经理
3.添加以下的过程:(Query自已的OnCalcFields事件)procedure TForm1.Query1CalcFields(DataSet: TDataSet);
var
str:string;
begin
if dataset.FieldByName('类型').asstring='1' then
dataset.FieldByName('计算字段').asstring:=' ------';
if dataset.FieldByName('类型').asstring='2' then
begin
str:=dataset.FieldByName('职位').asstring;
dataset.FieldByName('计算字段').asstring:=str;
dataset.FieldByName('职位').asstring:=' ------';
end;
end;
我已测试通过了,你不妨试一下,如果可以的话就来QQ上找我,QQ:86895156