起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 214|回复: 11

【结贴】字段能不能表现为两种类型**

[复制链接]
发表于 2008-6-26 08:39:47 | 显示全部楼层 |阅读模式
需求是这样的,我从Excel导入数据到数据集展现,其中我把日期格式的数据表现为日期类型,这样修改数据的时候可以通过日期控件进行选择,但是导入的数据包含特殊的字符"----" 一个横杠表示该格数据不存在,由于字段无法把这个字符展现为日期类型,所以导入不成功,有没有解决方案可以实现这种效果,一个字段既可以展现为日期又可以展现为字符串?
回复

使用道具 举报

发表于 2008-6-26 08:47:27 | 显示全部楼层
楼主,字段不能表现为两种类型。
建议楼主专门作个导入用的数据集,表现成字符串。
导入完成后,修改这些“----”的字段值,
然后单独作个表现用的数据集来表现最终数据
回复 支持 反对

使用道具 举报

发表于 2008-6-26 08:47:38 | 显示全部楼层
不支持一个字段即表现成日期,又展现成字符串的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-26 08:53:41 | 显示全部楼层
那单独做表现的数据集 这些横杠怎么处理呢 还是表现不出来啊
回复 支持 反对

使用道具 举报

发表于 2008-6-26 08:55:20 | 显示全部楼层
需要在表现前,先把这些横杠从数据库里去掉。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-26 09:01:46 | 显示全部楼层
这和数据库没有关系 还没有保存呢 现在是导入的数据要展现给用户看 然后再提交保存 就是展现不出来 客户如何再界面既可以看到"-----" 又可以修改日期的时候不用输入 通过展现为日期的控件进行选择
回复 支持 反对

使用道具 举报

发表于 2008-6-26 09:48:37 | 显示全部楼层
这个就无法做到了。
回复 支持 反对

使用道具 举报

发表于 2008-6-26 10:53:13 | 显示全部楼层
楼主的这个问题,如果是用[B]TEdit[/B] 来表现该字段的话,可以这样:
该字段类型为字符串,然后放一个DateTimePicker控件(visable属性为false),然后用下面的代码来处理就可以了。

procedure TMAINFORM.edtEnter(Sender: TObject);
begin
  //可以给dtp一个初始值
  dtp.Date := Business.System.SysUtils.Date;
  dtp.Visible := True;
  dtp.SetFocus;
  dtp.Left := edt.Left;
  dtp.Top := edt.Top;
end;

procedure TMAINFORM.dtpChange(Sender: TObject);
begin
  edt.Text := SysUtils.DateToStr(dtp.Date);
  dtp.Visible := False;
end;

procedure TMAINFORM.dtpExit(Sender: TObject);
begin
  dtp.Visible := False;
end;

效果图:

snap3.png

4 KB, 下载次数: 102

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-26 14:51:18 | 显示全部楼层
如果我想在DataGrid中实现这样的效果 能实现吗 可以获取当前焦点所在单元格的坐标吗 以及当前这个单元格的宽度能不能得到
回复 支持 反对

使用道具 举报

发表于 2008-6-26 15:01:29 | 显示全部楼层
可以,具体你可以查一下你同事曾经提过的关于datagrid的问题(那个帖子里就有类似的)
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-19 20:05 , Processed in 0.038786 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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