以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]对话框没有关闭  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=113982)

--  作者:天一生水
--  发布时间:2018/1/26 8:28:00
--  [求助]对话框没有关闭

问题描述:
遍历Tables("批量增加_table1")中复选框勾选的行,将勾选行的列值写入其他窗口,具体如下:
当没有勾选时,提示是否勾选。
问题出在有勾选时,仍然出现上述对话窗口提示,请老师帮助看看是哪里的问题?

增加一个问题:下面的代码,有几次如果目标窗口为空表时,新增不了行,是什么原因?
谢谢!

 

For Each r1 As Row In Tables("批量增加_table1")
    If r1.Checked = False Then
        Dim Result As DialogResult
        Result = MessageBox.Show("你没有选中数据,请勾选行头复选框!"& vbcrlf &"是---返回"& vbcrlf &"否---关闭", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If Result = DialogResult.Yes Then
            Return
        Else
            Forms("批量增加").close
        End If
    Else
        If Forms("送达回证编辑").Opened Then
            Dim t As Table = Forms("送达回证编辑").Controls("Table1").Table
            For Each r As Row In Tables("批量增加_table1").GetCheckedRows
                Dim r2 As Row  = t.AddNew
                r2("案号") = r("案号")
                r2("填发人") = r("承办人")
                r2("送达人") = r("书记员")
                Tables("送达回证编辑_Table1").Current("制作日期") = Date.Now
                Tables("送达回证编辑_table1").Sort = "制作日期,案号"
            Next
        ElseIf Forms("传票编辑").Opened Then
            Dim t As Table = Forms("传票编辑").Controls("Table1").Table
            For Each r As Row In Tables("批量增加_table1").GetCheckedRows
                Dim r2 As Row  = t.AddNew
                r2("案号") = r("案号")
                r2("审判员") = r("承办人")
                r2("书记员") = r("书记员")
                Tables("传票编辑_Table1").Current("制作日期") = Date.Now
                Tables("传票编辑_table1").Sort = "制作日期,案号"
            Next       
        Else
            Return
        End If
    End If
Next
Forms("批量增加").close

[此贴子已经被作者于2018/1/26 8:31:20编辑过]

--  作者:有点甜
--  发布时间:2018/1/26 8:45:00
--  


If Tables("批量增加_table1").GetCheckedRows.count = 0 Then
    Dim Result As DialogResult
    Result = MessageBox.Show("你没有选中数据,请勾选行头复选框!"& vbcrlf &"是---返回"& vbcrlf &"否---关闭", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        Return
    Else
        Forms("批量增加").close
        Return
    End If
End If
For Each r1 As Row In Tables("批量增加_table1")
    If Forms("送达回证编辑").Opened Then
        Dim t As Table = Forms("送达回证编辑").Controls("Table1").Table
        For Each r As Row In Tables("批量增加_table1").GetCheckedRows
            Dim r2 As Row  = t.AddNew
            r2("案号") = r("案号")
            r2("填发人") = r("承办人")
            r2("送达人") = r("书记员")
            Tables("送达回证编辑_Table1").Current("制作日期") = Date.Now
            Tables("送达回证编辑_table1").Sort = "制作日期,案号"
        Next
    ElseIf Forms("传票编辑").Opened Then
        Dim t As Table = Forms("传票编辑").Controls("Table1").Table
        For Each r As Row In Tables("批量增加_table1").GetCheckedRows
            Dim r2 As Row  = t.AddNew
            r2("案号") = r("案号")
            r2("审判员") = r("承办人")
            r2("书记员") = r("书记员")
            Tables("传票编辑_Table1").Current("制作日期") = Date.Now
            Tables("传票编辑_table1").Sort = "制作日期,案号"
        Next
    Else
        Return
    End If
Next
Forms("批量增加").close

 


--  作者:天一生水
--  发布时间:2018/1/26 10:45:00
--  

甜老师,出点问题,如果在Tables("批量增加_table1")勾选一行,会把这一行按照所有行的数目添加进目标窗口,麻烦老师再看一下。


--  作者:有点甜
--  发布时间:2018/1/26 10:49:00
--  

For Each r1 As Row In Tables("批量增加_table1")

 

改成

 

For Each r1 As Row In Tables("批量增加_table1").GetCheckedRows


--  作者:天一生水
--  发布时间:2018/1/26 11:52:00
--  

1、还是有问题:

选中一行,新增正确;

选中两行,每行新增两遍;

选中三行,............三遍...

老师再给看看,谢谢!

 

2、再问一个新问题:

上边的那个窗口,一点击“克隆行”按钮,就退出整个项目,克隆代码是用的系统代码,以前没出过问题。

于是,我把备份项目里的窗口导入,结果也出现这个问题。

但是在备份项目中点击窗口中的这个按钮却没有问题。

这种情况是什么原因!

 


--  作者:有点甜
--  发布时间:2018/1/26 12:00:00
--  

1、

 

If Tables("批量增加_table1").GetCheckedRows.count = 0 Then
    Dim Result As DialogResult
    Result = MessageBox.Show("你没有选中数据,请勾选行头复选框!"& vbcrlf &"是---返回"& vbcrlf &"否---关闭", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        Return
    Else
        Forms("批量增加").close
        Return
    End If
End If
If Forms("送达回证编辑").Opened Then
    Dim t As Table = Forms("送达回证编辑").Controls("Table1").Table
    For Each r As Row In Tables("批量增加_table1").GetCheckedRows
        Dim r2 As Row  = t.AddNew
        r2("案号") = r("案号")
        r2("填发人") = r("承办人")
        r2("送达人") = r("书记员")
        Tables("送达回证编辑_Table1").Current("制作日期") = Date.Now
        Tables("送达回证编辑_table1").Sort = "制作日期,案号"
    Next
ElseIf Forms("传票编辑").Opened Then
    Dim t As Table = Forms("传票编辑").Controls("Table1").Table
    For Each r As Row In Tables("批量增加_table1").GetCheckedRows
        Dim r2 As Row  = t.AddNew
        r2("案号") = r("案号")
        r2("审判员") = r("承办人")
        r2("书记员") = r("书记员")
        Tables("传票编辑_Table1").Current("制作日期") = Date.Now
        Tables("传票编辑_table1").Sort = "制作日期,案号"
    Next
Else
    Return
End If
Forms("批量增加").close


--  作者:有点甜
--  发布时间:2018/1/26 12:01:00
--  

2、datacolchanged事件死循环

 

http://www.foxtable.com/webhelp/scr/1522.htm