起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 388|回复: 16

【结贴】数据类型转换问题**

[复制链接]
发表于 2008-9-17 08:28:58 | 显示全部楼层 |阅读模式
我在数据集的DataChange事件上想实现 几个字段的比较功能


即 (2个时间日期型字段作差 ,取天数差) +一个字符型字段(一个天数) ≥另一个字符型字段(又一个天数)

   请问这个用代码怎么转化实现
回复

使用道具 举报

发表于 2008-9-17 08:54:28 | 显示全部楼层
试试这个
  if ((d2.Date-d1.Date) - StrToInt(eJ.Text)) > StrToInt(eB.Text) then
    showmessage(FloatToStr(((d2.Date-d1.Date) - StrToInt(eJ.Text))));
回复 支持 反对

使用道具 举报

发表于 2008-9-17 08:56:37 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2008-9-17 09:04:24 | 显示全部楼层
(2个时间日期型字段作差 ,取天数差) 这是一个数字或者整数型的,跟 一个字符型字段(一个天数)不能直接相加,需要把字符型转换成整数,用函数sysUtils.strtoint,
当然后面的另一个字符型字段(又一个天数) 也需要转换成整数,然后再进行比较
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-17 09:05:27 | 显示全部楼层
if  ((( Field.FieldName = 'jssj' )-( Field.FieldName = 'kssj' )) + StrToInt( Field.FieldName = 'ljxjts' )) > StrToInt( Field.FieldName = 'nxjts' )        then
平台上这么写吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-17 09:35:43 | 显示全部楼层
SysUtils.IntToStr(Business.System.DateUtils.DaysBetween(DataSetBroker1.DataSet.FieldByName('kssj').AsDateTime , DataSetBroker1.DataSet.FieldByName('jssj').AsDateTime)) + sysUtils.strtoint( DataSetBroker1.DataSet.FieldByName('lxxjts').AsString  )) > sysUtils.strtoint( DataSetBroker1.DataSet.FieldByName('nxjts').AsString )     

这样写吗 给详细指点下吧
回复 支持 反对

使用道具 举报

发表于 2008-9-17 09:42:41 | 显示全部楼层
楼主的困惑是什么?测试有什么问题么?
回复 支持 反对

使用道具 举报

发表于 2008-9-17 09:45:06 | 显示全部楼层
6楼的代码能编译通过吗?
字符串+整型 > 整型?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-17 09:56:27 | 显示全部楼层
[警告] 循环引用: "Biz:\YWKJ_GY\QJ\NJ\NJSQGN.FUNC"-->"Biz:\YWKJ_GY\QJ\NJ\NJSQ1.Info"-->"Biz:\YWKJ_GY\QJ\NJ\NJSQ1.Info"
[错误]Biz:\YWKJ_GY\QJ\NJ\NJSQGN.FUNC.DIR\NJSQ.Form.pas(410, 261): "String" 和 "Int32" 类型不能进行 ">" 操作
编译出这个错误
回复 支持 反对

使用道具 举报

发表于 2008-9-17 09:58:53 | 显示全部楼层
警告暂时可以不管他
错误你就看提示,应该说的很清楚了。
"String" 和 "Int32" 类型不能进行 ">" 操作
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-22 08:44 , Processed in 0.040580 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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