dxDBGrid单元格的值如何按需显示(100分)

  • 主题发起人 主题发起人 凌晨
  • 开始时间 开始时间

凌晨

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用ADOQuery+ACCESS+TdxDBGrid,数据库中的表Dates记录日期信息,
查询:
select ...,day,(day mod 7) as week from ...,dates
结果:
... day week
2001年08月15日 4
2001年04月06日 6
2001年08月25日 0
2001年04月13日 6
2001年07月28日 0
2001年03月29日 5
2001年05月18日 6
2001年07月20日 6
2001年07月10日 3
2001年07月21日 0
2001年07月16日 2
2001年07月29日 1
2001年08月15日 4
2001年04月06日 6
2001年08月25日 0
2001年04月13日 6
...
其中 0是星期六、1是星期日....6是星期五

问题:如何做到在dxDBGrid中的week列按“星期几”显示,以便阅读、排序和分组?
 
week的FieldType是ftInteger,因此不能用
TDateField(ADOQuery.Fields).DisplayFormat:='ddd'
的办法显示
 
可以对 Table 的 Field 编程。有一个事件是: OnGetText,你可以在利用这个事件中实现。
 
感谢Boat!
我的代码:
procedure TMainForm.colWeekGetText(Sender: TObject;
ANode: TdxTreeListNode; var AText: String);
var
Week:Integer;
begin
if Sender=colWeek then
begin
Week:=StrToInt(AText);
case Week of
0:AText:='星期六';
1:AText:='星期日';
2:AText:='星期一';
3:AText:='星期二';
4:AText:='星期三';
5:AText:='星期四';
6:AText:='星期五';
end;
end;
end;
可以显示、排序,但分组出现类型异常,
提示如:'星期六'is not a valid interger value。
 

Similar threads

I
回复
0
查看
894
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部