Foxtable(狐表)用户栏目专家坐堂 → 移动或删除(新增未保存的行)弹出。


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

主题:移动或删除(新增未保存的行)弹出。

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
移动或删除(新增未保存的行)弹出。  发帖心情 Post By:2017/7/23 11:02:00 [只看该作者]

BeforeClose窗口事件:


  For Each dr As Row In Tables("凭证.凭证明细").Rows

                If dr.IsNull("摘要") And dr.IsNull("科目代码") Then

                    If dr.IsNull("借方金额") And dr.IsNull("贷方金额") Then

       msgbox(0)

                        dr.Remove(改造dele 删除也一样)

                    Else

                        MessageBox.show("请输入摘要及会计科目!")

                        e.Cancel = True

                        Return

                    End If



弹出:       msgbox(0)   后,就弹错:如下
此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据 

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/23 11:05:00 [只看该作者]


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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2017/7/23 11:14:00 [只看该作者]

不理解 ,好像情况不一样   全部代码如下:
If DataTables("凭证明细").HasChanges Or DataTables("凭证").HasChanges Then
    'msgbox(0)
    Dim Result As DialogResult
    Result =MessageBox.Show("[凭证明细]或[凭证]数据已经修改,是否保存?","提示",MessageBoxButtons.YesNoCancel)
    If Result = DialogResult.Yes Then
        Dim r As Row = Tables("凭证").Current
 SystemReady = False
        If r IsNot Nothing Then
            'If r.IsNull("附件张数") Then
            'MessageBox.Show("附件张数不允许为空!")
            'e.Cancel = True
            'End If
            If r.Isnull("日期") Or r.Isnull("凭证类别")   Then
                MessageBox.Show("日期或凭证类别不允许为空!")
                e.Cancel = True
            ElseIf r("借方金额") <> r("贷方金额") Then
                MessageBox.Show("借贷不平衡!")
                e.Cancel = True
            ElseIf Tables("凭证.凭证明细").Rows(0)("借方金额") = 0 Then
                MessageBox.Show("请录入借贷金额!")
                e.Cancel = True
            End If

            For Each dr As Row In Tables("凭证.凭证明细").Rows
                If dr.IsNull("摘要") And dr.IsNull("科目代码") Then
                    If dr.IsNull("借方金额") And dr.IsNull("贷方金额") Then

                        Tables("凭证.凭证明细").Current.Delete

                    Else
                        MessageBox.show("请输入摘要及会计科目!")
                        e.Cancel = True
                        Return
                    End If
                ElseIf dr.IsNull("借方金额") And dr.IsNull("贷方金额") Then
                    MessageBox.show("请输入完整会计科目及借贷金额!")
                    e.Cancel = True
                    Return
                End If
                'Next
                'For Each dr As DataRow In r.DataRow.GetChildRows("凭证明细")
                Dim str() As String = {"员工核算","客户核算","项目核算","合同核算","供应商核算"}
                Dim str1() As String = {"员工编号","客户编号","项目编号","合同编号","供应商编号"}
                Dim dr1 As DataRow = DataTables("会计科目").SQLFind("[科目代码] = '" & dr("科目代码") & "'")
                If dr1 IsNot Nothing Then
                    For i As Integer = 0 To str.Length -1
                        If dr1.IsNull(str(i)) = False AndAlso dr.IsNull(str1(i)) Then
                            MessageBox.show("请输入[" & str1(i) & " ]!")
                            e.Cancel = True
                            Return
                        End If
                    Next
                End If
            Next
SystemReady = True
            Tables("凭证").save
            Tables("凭证明细").save
            'End If
        End If
    ElseIf Result = DialogResult.Cancel Then
        ' Return
        e.Cancel = True
    Else
        Tables("凭证").DataTable.RejectChanges
        Tables("凭证明细").DataTable.RejectChanges
        Tables("凭证").save
        Tables("凭证明细").save
    End If
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/23 11:17:00 [只看该作者]

Dim t As Table = Tables("凭证.凭证明细")
For i As Integer = t.rows.count To 0 Step -1
    Dim dr As Row = t.rows(i)
    If dr.IsNull("摘要") And dr.IsNull("科目代码") Then
       
        If dr.IsNull("借方金额") And dr.IsNull("贷方金额") Then
           
            msgbox(0)
           
            dr.Remove
           
        Else
           
            MessageBox.show("请输入摘要及会计科目!")
           
            e.Cancel = True
           
            Return
           
           
        End If
    End If
Next

 回到顶部