1.可以在DBGrid的DrawColumnCell事件里面自己画~~判断你的那个控制字段~~然后在画出不同显示
解决方案 »
- 如何将vfp语言转换在delphi语言?
- 即时通讯问题
- 有关image控件的大问题
- 请问Variant 在Delphi中是个什么数据类型?望详细点....谢过...!
- 日期格式问题?
- 各位大虾,用DELPHI或BCB中如何在WINDOWS中删除一个文件夹。
- 在调用datetime函数取系统当前时间,如何把其年、月、日分割开来?
- 急急急各位,为什么编译完的可执行文件拿到没有delphi的机器上就不能运行了???????
- delphi中是否有类似VB中的LIKE函数?
- delphi xe7 怎么更新SDK来支持安卓6.0
- 怎么解决动态生成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