以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]修改后台数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=80824)

--  作者:zcgmxf
--  发布时间:2016/2/2 21:21:00
--  [求助]修改后台数据

老师,我的这段代码如果要找的行存在的话,不能执行修改,不知错在哪里。请指点。谢谢!

代码写在表A的DataColChanged 中

If e.DataCol.Name = "确认缴费" Then
    If  e.DataRow("确认缴费") = True Then
        Dim nma() As String = {"收费部门","科室单号","开单人","缴费人","缴费方式","记账担保人","确认缴费"} 

        Dim nmb() As String = {"收费部门","科室单号","开单人","缴费人","缴费方式","记账担保人","确认缴费"}
        Dim dh As  DataRow = DataTables("收费登记表").SQLFind("[科室单号] = \'" & e.DataRow("科室单号") & "\'")
        If dh Is Nothing Then
            Dim dr As DataRow = DataTables("收费登记表").AddNew()
            For i As Integer = 0 To nma.Length - 1
                dr(nmb(i)) = e.DataRow(nma(i))
            Next
        Else
            For i As Integer = 0 To nma.Length - 1
                dh(nmb(i)) = e.DataRow(nma(i))
            Next
        End If
    End If
End If


--  作者:大红袍
--  发布时间:2016/2/2 21:22:00
--  
dh.Save 一下才行。
--  作者:zcgmxf
--  发布时间:2016/2/2 21:31:00
--  
红袍老师,保存了的,还是不行。
--  作者:大红袍
--  发布时间:2016/2/2 21:35:00
--  

If e.DataCol.Name = "确认缴费" Then
    If  e.DataRow("确认缴费") = True Then
        Dim nma() As String = {"收费部门","科室单号","开单人","缴费人","缴费方式","记账担保人","确认缴费"}
       
        Dim nmb() As String = {"收费部门","科室单号","开单人","缴费人","缴费方式","记账担保人","确认缴费"}
        Dim dh As  DataRow = DataTables("收费登记表").Find("[科室单号] = \'" & e.DataRow("科室单号") & "\'")
        If dh Is Nothing Then
            dh = DataTables("收费登记表").SQLFind("[科室单号] = \'" & e.DataRow("科室单号") & "\'")
            If dh Is Nothing Then
                dh = DataTables("收费登记表").AddNew()
            End If
        End If
        For i As Integer = 0 To nma.Length - 1
            dh(nmb(i)) = e.DataRow(nma(i))
        Next
        dh.save
    End If
End If


--  作者:zcgmxf
--  发布时间:2016/2/2 21:40:00
--  
谢谢!
--  作者:zcgmxf
--  发布时间:2016/2/3 9:55:00
--  

红袍老师,如果If  e.DataRow("确认缴费") = false Then 我要删除dh 代码该怎么写。谢谢!


If e.DataCol.Name = "确认缴费" Then
    If  e.DataRow("确认缴费") = True Then
        Dim nma() As String = {"收费部门","科室单号","开单人","缴费人","缴费方式","记账担保人","确认缴费"}
       
        Dim nmb() As String = {"收费部门","科室单号","开单人","缴费人","缴费方式","记账担保人","确认缴费"}
        Dim dh As  DataRow = DataTables("收费登记表").Find("[科室单号] = \'" & e.DataRow("科室单号") & "\'"

        If dh Is Nothing Then
           dh = DataTables("收费登记表").AddNew()
        End If
        For i As Integer = 0 To nma.Length - 1
           dh(nmb(i)) = e.DataRow(nma(i))
        Next
        dh.save

    Else
        Dim dd As  DataRow = DataTables("收费登记表").SQLFind("[科室单号] = \'" & e.DataRow("科室单号") & "\'")
        If dd IsNot Nothing Then
            dd.Delete
        End If
     End If

 End If
   

[此贴子已经被作者于2016/2/3 9:56:01编辑过]

--  作者:大红袍
--  发布时间:2016/2/3 9:56:00
--  

DataTables("收费登记表").DeleteFor("[科室单号] = \'" & e.DataRow("科室单号") & "\'")

DataTables("收费登记表").SqlDeleteFor("[科室单号] = \'" & e.DataRow("科室单号") & "\'")


--  作者:zcgmxf
--  发布时间:2016/2/3 15:15:00
--  

红袍老师,我的删除按钮的chick事件代码执行出错,不知错在哪里。请指点,谢谢!

Dim dr As Row = Tables("登记总表").Current
If dr IsNot Nothing Then
    Dim ts As DialogResult
    ts = messagebox.Show("您确认要删除该病例信息吗?","提示",MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If ts = DialogResult.Yes Then
        If dr("初审") = True Then
            MessageBox.Show("请先撤销初审,再删除!","提示")
            Return
        ElseIf dr("确认首次接种") = True Then
            MessageBox.Show("请先撤销确认首次接种,再删除!","提示")
            Return
        ElseIf dr("确认注射狂免") = True Then
            MessageBox.Show("请先撤销确认注射狂免,再删除!","提示")
            Return
        ElseIf dr("确认收费") = True Then
            MessageBox.Show("请先撤销确认收费,再删除!","提示")
            Return
        Else
            dr.Delete
        End If
    End If
Else
    MessageBox.Show("没有可以删除的行","提示")
End If


--  作者:大红袍
--  发布时间:2016/2/3 15:16:00
--  
报什么错?
--  作者:zcgmxf
--  发布时间:2016/2/3 15:52:00
--  
系统出现严重错误,提示:继续还是退出?继续后删除了,但是表没了,一把红叉叉。对了,如果用菜单删除没问题。
[此贴子已经被作者于2016/2/3 15:53:02编辑过]