Foxtable(狐表)用户栏目专家坐堂 → 请教老师for ....Next 代码。。(已解决)


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

主题:请教老师for ....Next 代码。。(已解决)

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


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
请教老师for ....Next 代码。。(已解决)  发帖心情 Post By:2009/12/19 22:39: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
        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编辑过]

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


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/12/19 23:25:00 [显示全部帖子]

以下是引用czy在2009-12-19 23:09:00的发言:
放在Else下面

图片点击可在新窗口打开查看C版,您再看看清楚。假如前三个控件有内容,则会新增加3行咯。。。。


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


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/12/20 0:10:00 [显示全部帖子]

图片点击可在新窗口打开查看试试看


谢谢C版,没想到这么简单。。。图片点击可在新窗口打开查看
[此贴子已经被作者于2009-12-20 0:12:25编辑过]

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


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By: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就没有继续了,直接退出循环应该可以。

图片点击可在新窗口打开查看又学到一招。


 回到顶部