Foxtable(狐表)用户栏目专家坐堂 → [求助]如何在窗口中修改表格中的选定行


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

主题:[求助]如何在窗口中修改表格中的选定行

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


加好友 发短信
等级:婴狐 帖子:37 积分:327 威望:0 精华:0 注册:2015/5/13 10:00:00
[求助]如何在窗口中修改表格中的选定行  发帖心情 Post By:2015/6/22 12:00:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:foxtable项目.rar


大神好,现在遇到一个问题无从下手,就是如何在窗口中修改具体table中的某一行,不知道怎么样去定位需要修改的行。


图片点击可在新窗口打开查看此主题相关图片如下:主窗口.jpg
图片点击可在新窗口打开查看

我的主窗口在第一个表“产品信息汇总”的“导航窗口”中的制造信息页面中,添加按钮已经做的很完美,如果有各种冲突(比如有相同编号,有位置空白没有填写)都会弹出提示。现在关于修改具体某一行不知道应该怎么做。点击修改按钮,能弹出相应的修改窗口,但是保存以后是生成一行新的。我估计应该有一个定位的功能,知道鼠标位置或者当前准备修改的位置在哪儿,以确定应该将修改后的数据填入那一行。同样删除按钮应该也是这样,需要去定位应该操作的是那一行。

谢谢!





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


加好友 发短信
等级:婴狐 帖子:37 积分:327 威望:0 精华:0 注册:2015/5/13 10:00:00
  发帖心情 Post By:2015/6/22 21:05:00 [只看该作者]

我在制造信息里“修改按钮”AfterLoad设置代码,成功读取了当前选定行的内容到相应的弹出窗口里。
AfterLoad里的代码是
Dim dt As DataTable
Dim dst As Table = Tables("制造信息")
Dim dr As Row = dst.Current '获得选定行
e.form.controls("ComboBox1").text=dr("填表人")
e.form.controls("ComboBox2").text=dr("产品基本信息_机型")
e.form.controls("TextBox2").text=dr("产品基本信息_制造编号")
e.form.controls("TextBox3").text=dr("产品基本信息_发动机号")
e.form.controls("TextBox4").text=dr("产品基本信息_液压阀号")
e.form.controls("DateTimePicker1").text=dr("产品基本信息_生产日期")

但是有个新问题来了,由于我之前设置过有相同编号的行不能保存,假如我在这个修改的地方保存的时候,系统认为需要保存的内容和保存前的内容有重复。
之前的代码是这样的:
Dim dr = DataTables("制造信息").Find("产品基本信息_制造编号 = '" & e.form.controls("TextBox2").text & "'")
Dim dr2 = DataTables("制造信息").Find("产品基本信息_发动机号 = '" & e.form.controls("TextBox3").text & "'")
Dim dr3 = DataTables("制造信息").Find("产品基本信息_液压阀号 = '" & e.form.controls("TextBox4").text & "'")
If e.form.Controls("ComboBox1").Value Is Nothing Then
    MsgBox("填表人未填 , 不能保存!",64,"提示")
Else If e.form.Controls("ComboBox2").Value Is Nothing Then
    MsgBox("机型未选择 , 不能保存!",64,"提示")
Else If e.form.Controls("TextBox2").Value Is Nothing Then
    MsgBox("制造编号未填 , 不能保存!",64,"提示")
Else If e.Form.Controls("TextBox3").Value Is Nothing Then
    MsgBox("发动机号未填 , 不能保存!",64,"提示")
Else If e.Form.Controls("TextBox4").Value Is Nothing Then
    MsgBox("液压阀号未填 , 不能保存!",64,"提示")
Else If e.Form.Controls("DateTimePicker1").Value Is Nothing Then
    MsgBox("生产日期未选择 , 不能保存!",64,"提示")
Else If dr IsNot Nothing Then
    MsgBox("制造编号重复 , 不能保存",64,"提示")
Else If dr2 IsNot Nothing Then
    MsgBox("发动机号重复 , 不能保存",64,"提示")
Else If dr3 IsNot Nothing Then
    MsgBox("液压阀号重复 , 不能保存",64,"提示")
Else
    Tables("制造信息").AddNew()
    Tables("制造信息").current("产品基本信息_机型")=e.form.controls("ComboBox2").text
    Tables("制造信息").current("产品基本信息_制造编号")=e.form.controls("TextBox2").text
    Tables("制造信息").current("产品基本信息_发动机号")=e.form.controls("TextBox3").text
    Tables("制造信息").current("产品基本信息_液压阀号")=e.form.controls("TextBox4").text
    Tables("制造信息").current("产品基本信息_生产日期")=e.form.controls("DateTimePicker1").text
    Tables("制造信息").current("填表人")=e.Form.Controls("ComboBox1").text
End If
e.form.Close()


通过前三行
Dim dr = DataTables("制造信息").Find("产品基本信息_制造编号 = '" & e.form.controls("TextBox2").text & "'")
Dim dr2 = DataTables("制造信息").Find("产品基本信息_发动机号 = '" & e.form.controls("TextBox3").text & "'")
Dim dr3 = DataTables("制造信息").Find("产品基本信息_液压阀号 = '" & e.form.controls("TextBox4").text & "'")
代码会去寻找表(制造信息)里面有没有相同的制造编号、发动机号和液压阀号,如果有相同的就会提示。我应该怎么样去修改一下,让系统自动略过我正在修改的这一行,只搜索其他的?
谢谢!

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


加好友 发短信
等级:婴狐 帖子:37 积分:327 威望:0 精华:0 注册:2015/5/13 10:00:00
  发帖心情 Post By:2015/6/23 8:14:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:foxtable项目.rar


上传现在新修改的
制造信息(修改)里的保存按钮只实现了保存功能,没有办法提示有相同编号。

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


加好友 发短信
等级:婴狐 帖子:37 积分:327 威望:0 精华:0 注册:2015/5/13 10:00:00
  发帖心情 Post By:2015/6/23 11:12:00 [只看该作者]

专家们都上班了,顶一顶

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/23 12:00:00 [只看该作者]

Dim dr = DataTables("制造信息").Find("产品基本信息_制造编号 = '" & e.form.controls("TextBox2").text & "' and _Identify <> " & Tables("制造信息").Current("_Identify"))
Dim dr2 = DataTables("制造信息").Find("产品基本信息_发动机号 = '" & e.form.controls("TextBox3").text & "'  and _Identify <> " & Tables("制造信息").Current("_Identify"))
Dim dr3 = DataTables("制造信息").Find("产品基本信息_液压阀号 = '" & e.form.controls("TextBox4").text & "'  and _Identify <> " & Tables("制造信息").Current("_Identify"))

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


加好友 发短信
等级:婴狐 帖子:37 积分:327 威望:0 精华:0 注册:2015/5/13 10:00:00
  发帖心情 Post By:2015/6/23 12:36:00 [只看该作者]

搞定,谢谢!
其实就是不知道find里面怎么去写and语句

 回到顶部