Foxtable(狐表)用户栏目专家坐堂 → 请教多值字段问题


  共有10402人关注过本帖树形打印复制链接

主题:请教多值字段问题

帅哥哟,离线,有人找我吗?
老有所乐
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:746 积分:6673 威望:0 精华:1 注册:2008/9/1 11:46:00
请教多值字段问题  发帖心情 Post By:2012/4/13 5:57:00 [只看该作者]

表A设有姓名列,为多值字段,从Excel导入姓名数据后,表A姓名列中的“,”成了中文的全角,如何使表A姓名列中的“,”自动成为“,”英文的逗号。谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/4/13 7:01:00 [只看该作者]

1、如果excel表是英文的“,”复制excel表新名列的原始数据,粘贴到导入后的表A的姓名列覆盖即可!

2、如果ecxel表也为中文全角,则可以一次性从根本上解决该问题,在导入前,在表A的DataColChanged事件写入如下代码:

     if e.datacol.name = "姓名"

         e.datarow("姓名") = e.datarow("姓名").Replace(chr(-23636),",")

     end if

     注:写好代码后重新导入或者按照第一条重新粘贴覆盖一下即可,覆盖前一定要记住先删除姓名列的所有内容为空,否则,姓名列的值没有变化,上述代码应该不会执行。


 回到顶部
帅哥哟,离线,有人找我吗?
老有所乐
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:746 积分:6673 威望:0 精华:1 注册:2008/9/1 11:46:00
  发帖心情 Post By:2012/4/13 7:04:00 [只看该作者]

程版主您早,谢谢!我来试试。

 回到顶部
帅哥哟,离线,有人找我吗?
老有所乐
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:746 积分:6673 威望:0 精华:1 注册:2008/9/1 11:46:00
  发帖心情 Post By:2012/4/13 7:43:00 [只看该作者]

有效,非常谢谢程版主!

另外,还请教一个问题,我用Syscmd.Project.QuickImport() 导入Excel 中“数量”列(为字符型 如其中有的值是 120+66 格式)的值到狐表的 表A“数量”列(字符型列,就成了数值空,我要求导入后也是 120+66 不变),有没有什么办法,谢谢!!


 回到顶部
帅哥哟,离线,有人找我吗?
老有所乐
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:746 积分:6673 威望:0 精华:1 注册:2008/9/1 11:46:00
  发帖心情 Post By:2012/4/13 8:36:00 [只看该作者]

再顶一下,4搂的问题如何解决

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/4/13 8:41:00 [只看该作者]

没办法

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/4/13 9:05:00 [只看该作者]

这个问题可能是微软的bug,我测试过,因为当excel表的前三行(好像是三行,记不太准了)为包含字母或中文时,导入时会自动将狐表的对应字段设置为字符型,当excel表的前三行内容是纯数值型数据时,导入时会自动将狐表的对应字段设置为双精度小数型,如果excel表的那一列两者情况皆有时,属前者现象,导入后属于数值的那个单元格为空,属于后者时,导入后属于字符的单元格为空,因为在狐表中,双精度小数型列也是禁止输入包含字母、中文的字符型数据,关键要看看贺老师能否改进,在Syscmd.Project.QuickImport() 导入Excel 时弹出对话框,在选择excel文件时,通过鼠标选择excel的某一行或多行作为狐表的表头(字段名时)将这一行或多行提取或生成到狐表的某一窗口,此时在对应的位置让用户来指定各字段的数据类型(像新添加表那样),设置完成从该界面进行导入并强制转换导数的数据为符合用户要求的单一类型,也就是将Syscmd.Project.QuickImport() 分解成多步骤,中间给用户一个设置的机会以绕过这个bug。


 回到顶部
帅哥哟,离线,有人找我吗?
老有所乐
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:746 积分:6673 威望:0 精华:1 注册:2008/9/1 11:46:00
  发帖心情 Post By:2012/4/13 10:11:00 [只看该作者]

程版,您说到问题的实质,忙活了几天(对我来说)三个大问题(一是在用按钮如何删除导入表,二是将多值字段中的“,”自动改为半角,三就是导入后改变了字段的类型)解决了两个,这个解决不了还是做不成功,不知道贺老师有没有什么办法。

 回到顶部
帅哥哟,离线,有人找我吗?
老有所乐
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:746 积分:6673 威望:0 精华:1 注册:2008/9/1 11:46:00
  发帖心情 Post By:2012/4/13 15:05:00 [只看该作者]

下面这个可以解决4搂的问题,但是为什么可以,我看不懂。

http://www.datasoft.com.cn/dispbbs.asp?boardid=2&id=17564&authorid=0&page=0&star=1


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/4/13 16:06:00 [只看该作者]

导入之后,用代码将,替换为,

 回到顶部
总数 12 1 2 下一页