以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教窗口录入问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=119248) |
-- 作者:jinhetian -- 发布时间:2018/5/21 14:46:00 -- 请教窗口录入问题 老师您好! 我写了一段代码,本想是输入“b”后"焊接调试检验表"里输入代码里的相应字段后添加新的行。但是表里总是添加新的两行。这是这么回事?
static flag As Boolean = False If e.Form.controls("TextBox3").text = ("f") Then Tables("焊接调试检验表").Current("结果结论1") = ("√") Tables("焊接调试检验表").Current("结果结论2") = ("√") Tables("焊接调试检验表").Current("产品处理结果1") = ("转下一道") Tables("焊接调试检验表").Current("产品处理结果2") = ("转下一道") Tables("焊接调试检验表").Current("名称") = ("电脑中频治疗仪") Forms("焊接调试检验").panel.FindForm.Activate Forms("焊接调试检验").Controls("TextBox1").Select() Tables("焊接调试检验表").AddNew() End If If e.Form.controls("TextBox3").text = ("b") Then Forms("焊接调试检验").panel.FindForm.Activate Forms("焊接调试检验").Controls("DropBox1").Select() End If |
-- 作者:有点甜 -- 发布时间:2018/5/21 15:05:00 -- 1、你其它地方肯定也写有 addNew 的代码吧?输出代码看看
http://www.foxtable.com/webhelp/scr/1987.htm
2、不会做请上传具体实例说明。 |
-- 作者:jinhetian -- 发布时间:2018/5/21 15:37:00 -- 老师,确实是这样。 简单说明一下功能。检验结果:输入f增加一行,光标移到产品编码框,循环输入。检验结果:输入b光标移到人为故障:在性能检验:那里回车,增加一行,光标回到产品编码框 焊接调试检验_Button2_Click
Tables("焊接调试检验表").AddNew()
焊接调试检验_Button3_Click
If Tables("焊接调试检验表").Current IsNot Nothing Then Tables("焊接调试检验表").Current.Delete End If
焊接调试检验_DropBox1_Leave
Tables("焊接调试检验表").Current("名称") = ("电脑中频治疗仪") Tables("焊接调试检验表").Current("结果结论1")=e.Form.Controls("DropBox1").Text Forms("焊接调试检验").panel.FindForm.Activate Forms("焊接调试检验").Controls("DropBox2").Select()
焊接调试检验_DropBox2_Leave
Tables("焊接调试检验表").Current("名称") = ("电脑中频治疗仪") Tables("焊接调试检验表").Current("结果结论2")=e.Form.Controls("DropBox1").Text Tables("焊接调试检验表").Current("检验人")=e.Form.Controls("ComboBox1").Text Tables("焊接调试检验表").Current("产品处理结果1")=Nothing Tables("焊接调试检验表").Current("产品处理结果2")=Nothing Forms("焊接调试检验").panel.FindForm.Activate Forms("焊接调试检验").Controls("TextBox1").Select() Tables("焊接调试检验表").AddNew()
焊接调试检验_TextBox1_Enter
e.Form.controls("TextBox3").text =Nothing e.Form.controls("DropBox1").text =Nothing e.Form.controls("DropBox2").text =Nothing
焊接调试检验_TextBox1_Leave
Forms("焊接调试检验").panel.FindForm.Activate Forms("焊接调试检验").Controls("TextBox3").Select()
焊接调试检验_TextBox1_TextChanged
static flag As Boolean = False If e.sender.text.length > 3 AndAlso flag Then If e.sender.text(0) = "0" And e.sender.text(1)="1" Then e.Form.controls("TextBox2").text = "J18A1" e.Form.controls("TextBox2").WriteValue End If End If flag = True
焊接调试检验_TextBox3_Leave
static flag As Boolean = False
If e.Form.controls("TextBox3").text = ("f") Then
Tables("焊接调试检验表").Current("结果结论1") = ("√") Tables("焊接调试检验表").Current("结果结论2") = ("√") Tables("焊接调试检验表").Current("产品处理结果1") = ("转下一道") Tables("焊接调试检验表").Current("产品处理结果2") = ("转下一道") Tables("焊接调试检验表").Current("名称") = ("电脑中频治疗仪") Forms("焊接调试检验").panel.FindForm.Activate Forms("焊接调试检验").Controls("TextBox1").Select() Tables("焊接调试检验表").AddNew() End If If e.Form.controls("TextBox3").text = ("b") Then Forms("焊接调试检验").panel.FindForm.Activate Forms("焊接调试检验").Controls("DropBox1").Select() [此贴子已经被作者于2018/5/21 15:46:48编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/5/21 15:42:00 -- 你有几个地方有addnew的代码,请结合你的逻辑测试addnew是否编写正确。
不然,你上次具体例子说明你要做什么。 |
-- 作者:jinhetian -- 发布时间:2018/5/21 16:13:00 -- 此主题相关图片如下:11111.jpg 此主题相关图片如下:13.jpg 1.无故障时检验结果输入f,有故障时检验结果输入b。表格自动输入。输入完成后增加一行 |
-- 作者:有点甜 -- 发布时间:2018/5/21 16:16:00 -- dropbox2的leave事件有代码 Tables("焊接调试检验表").AddNew()
你下拉选择的时候,leave会被触发。 |
-- 作者:jinhetian -- 发布时间:2018/5/21 16:24:00 -- 老师代码中总共有3个Tables("焊接调试检验表").AddNew()指令。我把其余两个给删了,就留下一个还是曾两行。 |
-- 作者:有点甜 -- 发布时间:2018/5/21 16:31:00 -- 以下是引用jinhetian在2018/5/21 16:24:00的发言:
老师代码中总共有3个Tables("焊接调试检验表").AddNew()指令。我把其余两个给删了,就留下一个还是曾两行。
那就是你datacolchanged等表事件有影响代码。
如果自己不会调试,请上传具体实例测试。 |
-- 作者:jinhetian -- 发布时间:2018/5/21 16:57:00 -- 老师 此主题相关图片如下:14.jpg 三个控件时代码执行正常,增加一行。只要再增加一个控件(文本框或组合框)不做任何设置,执行代码后就增加两行。 [此贴子已经被作者于2018/5/21 17:01:16编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/5/21 17:10:00 -- 在你addnew代码前加入msgbox(123),看什么时候会导致弹出,是否重复弹出。
做一个实例发上来测试。 |