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


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

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

帅哥,在线噢!
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望: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编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望: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编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/9/23 8:58:00 [显示全部帖子]

看8楼

 回到顶部