起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 437|回复: 15

【搞定】天于临时字段的问题(在线等)**

[复制链接]
发表于 2007-1-11 15:51:10 | 显示全部楼层 |阅读模式
数据集里面有个临时字段(字符串),
在DataGrid里面为什么不能以这个临时字段进行排序和分组呀?
回复

使用道具 举报

 楼主| 发表于 2007-1-11 16:28:11 | 显示全部楼层
急呀!!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-11 17:23:40 | 显示全部楼层
好歹给个反应!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-12 09:47:32 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2007-1-12 09:50:21 | 显示全部楼层
我这里测试是好的啊,版本2611。
楼主能说下你是怎么做的吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-12 10:02:57 | 显示全部楼层
先是在字段编辑器里面添加了一个"计算字段"(等于两个时间的差),发现不能用于排序和分组。

后来又在字段编辑器里面添加了一个“临时字段”类型为字符串(等于前面的计算字段的值取整后转为字符型)
,结果还是不行。代码如下 csfw是临时字段 )
procedure TCOUNTINFO.FIELD_RWB_RWXXB_SJJ_HSCalcField(Field: TBizField; var Value: Variant);
begin
  if (DataSetRWB_RWXXB_SJJ.FieldByName('FSTATE').AsString='tsStarted') or
     (DataSetRWB_RWXXB_SJJ.FieldByName('FSTATE').AsString='tsProcessing') then   
   value:=(business.Data.SysSrv.SysService.Time-DataSetRWB_RWXXB_SJJ.FieldByName('FCREATETIME').AsDateTime)*24
  else      
    value:=(DataSetRWB_RWXXB_SJJ.FieldByName('FFINISHTIME').AsDateTime-DataSetRWB_RWXXB_SJJ.FieldByName('FCREATETIME').AsDateTime)*24;
  DataSetRWB_RWXXB_SJJ.FieldByName('csfw').AsString:=SysUtils.IntToStr(Business.System.Math.floor(Variants.VarToDateTime(Value)));

end;
回复 支持 反对

使用道具 举报

发表于 2007-1-12 10:05:05 | 显示全部楼层
你是怎么排序的?点GRID中的列头么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-12 10:05:42 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-12 10:08:40 | 显示全部楼层
如图

grid.jpg

199.04 KB, 下载次数: 234

回复 支持 反对

使用道具 举报

发表于 2007-1-12 10:11:24 | 显示全部楼层
楼主,这是我测试的结果。

sort1.jpg

5.64 KB, 下载次数: 247

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-28 02:29 , Processed in 0.040489 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表