Foxtable(狐表)用户栏目专家坐堂 → [求助]选择数据问题


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

主题:[求助]选择数据问题

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


加好友 发短信
等级:幼狐 帖子:112 积分:908 威望:0 精华:0 注册:2011/10/4 20:00:00
[求助]选择数据问题  发帖心情 Post By:2016/9/22 16:26:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
如果数据库中存在两个同名的简称,无论怎样选择,能只能添加第一条数据,第二条添加不上
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:需要解决问题2 - 副本.rar


[此贴子已经被作者于2016/9/22 16:26:48编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109447 积分:556891 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/22 16:43:00 [只看该作者]

测试没有问题

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


加好友 发短信
等级:幼狐 帖子:112 积分:908 威望:0 精华:0 注册:2011/10/4 20:00:00
  发帖心情 Post By:2016/9/22 16:47:00 [只看该作者]

按照我的例子来讲,我选择添加不了第二个444厂,也就是河南分厂那条数据

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


加好友 发短信
等级:幼狐 帖子:112 积分:908 威望:0 精华:0 注册:2011/10/4 20:00:00
  发帖心情 Post By:2016/9/22 17:04:00 [只看该作者]

这个在我这边测试,如果下拉列表中有两条简称一样的,就是添加不了第二条的数据,双击添加的都是第一条数据

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109447 积分:556891 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/22 17:20:00 [只看该作者]

测试没有问题,项目1的值是有变化的

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


加好友 发短信
等级:幼狐 帖子:112 积分:908 威望:0 精华:0 注册:2011/10/4 20:00:00
  发帖心情 Post By:2016/9/23 1:46:00 [只看该作者]

我再试试 我测试好多次 项目1值无变化 都是第一条数据

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


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/9/23 8:23:00 [只看该作者]

确实选择的是第一条,原因很简单,你看看你的代码:

 

If e.DataCol.name = "简称"
    If e.DataRow.isnull("简称") = False
        Dim s As String = e.DataRow("简称")
        Dim dr As DataRow = DataTables("工厂信息表").find("简称 = '" & s & "'")
        If dr IsNot Nothing
            e.DataRow("项目1")= dr("项目1")
            e.DataRow("项目2")= dr("项目2")
            e.DataRow("项目3")= dr("项目3")
        End If
    Else
        e.DataRow("项目1")= Nothing
        e.DataRow("项目2")= Nothing
        e.DataRow("项目3")= Nothing
    End If
End If

 

你用的是工厂简称,简称会重名,你应该用不重复的列,例如工厂ID列来区分不同的行。
我们区分一个人,不会用姓名区分,因为重名的太多,只能用身份证号码。

别人给你写的代码,你要去理解,否则给你写再多,你也没有办法进步,学会了1+1,换成1+2就不知道怎么算了。

 

还有你这样设计系统,以后能用吗?
逻辑都没有搞清楚,自己取的分厂名称,会出现重名? 你这不是和自己过不去吗?

如果不会重名,你在这里折腾什么?

如果会重名,为什么要根据名称来设计,为什么不改用ID?

如果会重名,凭证表不增加一个工厂ID列,那么用户看到444厂,怎么知道是那个444厂?

 

先理清楚自己的业务逻辑,再来设计,你自己对于需求都稀里糊涂,别人对你的帮助意义又何在?

 

 

[此贴子已经被作者于2016/9/23 8:53:35编辑过]

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


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/9/23 8:45:00 [只看该作者]

我帮你改了一下:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:需要解决问题2 - 副本.rar

1、凭证表增加一个"工厂ID"列,整数型

 

2、凭证表的DataColchanged事件改为:

 

If e.DataCol.name = "工厂ID"
    If e.DataRow.isnull("工厂ID") = False
        Dim s As String = e.DataRow("工厂ID")
        Dim dr As DataRow = DataTables("工厂信息表").find("ID = " & s )
        If dr IsNot Nothing
            e.DataRow("简称")= dr("简称")
            e.DataRow("项目1")= dr("项目1")
            e.DataRow("项目2")= dr("项目2")
            e.DataRow("项目3")= dr("项目3")
        End If
    Else
        e.DataRow("简称")= Nothing
        e.DataRow("项目1")= Nothing
        e.DataRow("项目2")= Nothing
        e.DataRow("项目3")= Nothing
    End If
End If

 

3、下拉窗口的DropDownClosed事件代码改为:

If e.Selected Then '如果选择了值
    Dim tbl As Table = Tables("窗口1_Table1")
    If tbl.Current IsNot Nothing Then
        e.Form.DropDownBox.Value = tbl.Current("简称")
        Tables("凭证表").Current("工厂ID") = tbl.Current("ID")
        Tables("凭证表").Current("项目1") = tbl.Current("项目1")
    End If
End If

 

 

建议先看视频教程:
http://pan.baidu.com/s/1cmPmnc


将开发指南视频下的《编程基础》《Foxtable编程》《事件编程》这三部分看完,这是重点。

[此贴子已经被作者于2016/9/23 8:59:58编辑过]

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


加好友 发短信
等级:幼狐 帖子:112 积分:908 威望:0 精华:0 注册:2011/10/4 20:00:00
  发帖心情 Post By:2016/9/23 8:57:00 [只看该作者]

这个附件是我单独做出来需要解决问题的,当时没有考虑会有重名情况,在原有系统中,项目1代表银行开 户 名称,项目2代表开户账号,项目3代表开 户 银 行,实际操作中,工厂有几百家,今年开始有部门厂家新增了其它银 行的信息,比如444厂,既有农 行 开 户的,又有中行开 户的,就会出现两条一样简称的,操作员录入的时候没有把简称区别开,就会造成这种。
[此贴子已经被作者于2016/9/23 8:57:50编辑过]

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


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/9/23 8:58:00 [只看该作者]

看8楼

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