以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教老师for ....Next 代码。。(已解决) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=5564) |
-- 作者:菜鸟foxtable -- 发布时间:2009/12/19 22:39:00 -- 请教老师for ....Next 代码。。(已解决) 某按钮代码,红色部分到底应该放哪才不会乱新增行?意思是在判断完成后发现信息不全时不会新增行,只有窗口录入信息完全才会新增一行? Tables("医嘱编辑_Table1").AddNew() Dim Multi As String = "期效|开始时间|开嘱医生|组号|医嘱内容|用法|频率|单量|总量" Dim Values() as String Values = Multi.split("|") For Index As Integer = 0 To Values.Length - 1 if e.Form.Controls(Values(Index)).Value = nothing MessageBox.Show("对不起,您输入的信息不全,请录入<" & Values(Index) & ">后再继续!", "提示") e.Form.Controls(Values(Index)).Select() Return else Tables("医嘱编辑_Table1").Current(Values(Index)) = e.Form.Controls(Values(Index)).Value end if Next [此贴子已经被作者于2009-12-20 0:13:24编辑过]
|
-- 作者:czy -- 发布时间:2009/12/19 23:09:00 -- 放在Else下面 |
-- 作者:菜鸟foxtable -- 发布时间:2009/12/19 23:25:00 -- 以下是引用czy在2009-12-19 23:09:00的发言:
放在Else下面 C版,您再看看清楚。假如前三个控件有内容,则会新增加3行咯。。。。 |
-- 作者:程兴刚 -- 发布时间:2009/12/19 23:56:00 -- 放在next下面一行,放在循环外,每次为下次添加新行,数据不全不继续增加!否则,要添加N行,形成阶梯式数据录入。 如果不愿意提前添加行,可以这样,增加一行代码: Tables("医嘱编辑_Table1").AddNew() Dim Multi As String = "期效|开始时间|开嘱医生|组号|医嘱内容|用法|频率|单量|总量" Dim Values() as String Values = Multi.split("|") For Index As Integer = 0 To Values.Length - 1 if e.Form.Controls(Values(Index)).Value = nothing Tables("医嘱编辑_Table1").Current.Delete() MessageBox.Show("对不起,您输入的信息不全,请录入<" & Values(Index) & ">后再继续!", "提示") e.Form.Controls(Values(Index)).Select() Return else Tables("医嘱编辑_Table1").Current(Values(Index)) = e.Form.Controls(Values(Index)).Value end if Next |
-- 作者:菜鸟foxtable -- 发布时间:2009/12/20 0:06:00 -- 以下是引用程兴刚在2009-12-19 23:56:00的发言:
放在next下面一行,放在循环外,每次为下次添加新行,数据不全不继续增加!否则,要添加N行,形成阶梯式数据录入。 如果不愿意提前添加行,可以这样,增加一行代码: Tables("医嘱编辑_Table1").AddNew() Dim Multi As String = "期效|开始时间|开嘱医生|组号|医嘱内容|用法|频率|单量|总量" Dim Values() as String Values = Multi.split("|") For Index As Integer = 0 To Values.Length - 1 if e.Form.Controls(Values(Index)).Value = nothing Tables("医嘱编辑_Table1").Current.Delete() MessageBox.Show("对不起,您输入的信息不全,请录入<" & Values(Index) & ">后再继续!", "提示") e.Form.Controls(Values(Index)).Select() Return else Tables("医嘱编辑_Table1").Current(Values(Index)) = e.Form.Controls(Values(Index)).Value end if Next 这样子也不行吧?不但把新增的行删除了,还会继续删除前面的行的。。。。 [此贴子已经被作者于2009-12-20 0:08:27编辑过]
|
-- 作者:czy -- 发布时间:2009/12/20 0:08:00 -- Dim Multi As String = "期效|开始时间|开嘱医生|组号|医嘱内容|用法|频率|单量|总量" Dim Values() as String Values = Multi.split("|") For Index As Integer = 0 To Values.Length - 1 if e.Form.Controls(Values(Index)).Value = nothing MessageBox.Show("对不起,您输入的信息不全,请录入<" & Values(Index) & ">后再继续!", "提示") e.Form.Controls(Values(Index)).Select() Return end if Next Tables("医嘱编辑_Table1").AddNew() For Index As Integer = 0 To Values.Length - 1 Tables("医嘱编辑_Table1").Current(Values(Index)) = e.Form.Controls(Values(Index)).Value Next |
-- 作者:菜鸟foxtable -- 发布时间:2009/12/20 0:10:00 -- 试试看 谢谢C版,没想到这么简单。。。 [此贴子已经被作者于2009-12-20 0:12:25编辑过]
|
-- 作者:程兴刚 -- 发布时间:2009/12/20 0:31:00 -- 哈哈,我居然也忘了循环问题! |
-- 作者:程兴刚 -- 发布时间:2009/12/20 0:35:00 -- 其实这样应该也可以: Tables("医嘱编辑_Table1").AddNew() Dim Multi As String = "期效|开始时间|开嘱医生|组号|医嘱内容|用法|频率|单量|总量" Dim Values() as String Values = Multi.split("|") For Index As Integer = 0 To Values.Length - 1 if e.Form.Controls(Values(Index)).Value = nothing Tables("医嘱编辑_Table1").Current.Delete() MessageBox.Show("对不起,您输入的信息不全,请录入<" & Values(Index) & ">后再继续!", "提示") e.Form.Controls(Values(Index)).Select() Exit For Return else Tables("医嘱编辑_Table1").Current(Values(Index)) = e.Form.Controls(Values(Index)).Value end if Next 原以为有Return就没有继续了,直接退出循环应该可以。 |
-- 作者:菜鸟foxtable -- 发布时间:2009/12/20 9:08:00 -- 以下是引用程兴刚在2009-12-20 0:35:00的发言:
其实这样应该也可以: Tables("医嘱编辑_Table1").AddNew() Dim Multi As String = "期效|开始时间|开嘱医生|组号|医嘱内容|用法|频率|单量|总量" Dim Values() as String Values = Multi.split("|") For Index As Integer = 0 To Values.Length - 1 if e.Form.Controls(Values(Index)).Value = nothing Tables("医嘱编辑_Table1").Current.Delete() MessageBox.Show("对不起,您输入的信息不全,请录入<" & Values(Index) & ">后再继续!", "提示") e.Form.Controls(Values(Index)).Select() Exit For Return else Tables("医嘱编辑_Table1").Current(Values(Index)) = e.Form.Controls(Values(Index)).Value end if Next 原以为有Return就没有继续了,直接退出循环应该可以。 又学到一招。 |