以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如何在窗口中修改表格中的选定行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=70449) |
||||
-- 作者:guigui117 -- 发布时间:2015/6/22 12:00:00 -- [求助]如何在窗口中修改表格中的选定行
大神好,现在遇到一个问题无从下手,就是如何在窗口中修改具体table中的某一行,不知道怎么样去定位需要修改的行。 我的主窗口在第一个表“产品信息汇总”的“导航窗口”中的制造信息页面中,添加按钮已经做的很完美,如果有各种冲突(比如有相同编号,有位置空白没有填写)都会弹出提示。现在关于修改具体某一行不知道应该怎么做。点击修改按钮,能弹出相应的修改窗口,但是保存以后是生成一行新的。我估计应该有一个定位的功能,知道鼠标位置或者当前准备修改的位置在哪儿,以确定应该将修改后的数据填入那一行。同样删除按钮应该也是这样,需要去定位应该操作的是那一行。 谢谢! |
||||
-- 作者:guigui117 -- 发布时间: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 -- 发布时间:2015/6/23 8:14:00 --
上传现在新修改的 制造信息(修改)里的保存按钮只实现了保存功能,没有办法提示有相同编号。
|
||||
-- 作者:guigui117 -- 发布时间:2015/6/23 11:12:00 -- 专家们都上班了,顶一顶 |
||||
-- 作者:大红袍 -- 发布时间: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 -- 发布时间:2015/6/23 12:36:00 -- 搞定,谢谢! 其实就是不知道find里面怎么去写and语句
|