以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]窗口问题,为什么开发者进入窗口统计数据是正确的,普通使用者就是错的?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=133552)

--  作者:youngerlsy123456
--  发布时间:2019/4/16 13:31:00
--  [求助]窗口问题,为什么开发者进入窗口统计数据是正确的,普通使用者就是错的?
窗口中table1 绑定 当日销售统计表, 增加一个button控件(数据统计),代码如下:
For Each wst As DataRow In DataTables("当日销售统计").DataRows  \'每次点击控件都将当日销售统计表的每一行删除
wst.delete
Next
Dim rq As Date = Date.Today
\'一号销售表
For Each dr As DataRow In DataTables("一号销售表").DataRows
    If dr("日期") = rq Then
        Dim st As DataRow = DataTables("当日销售统计").Find("编号 = \'" & dr("编号") & "\'")
        If st Is Nothing Then
            Dim r As Row = Tables("当日销售统计").AddNew()
            r("编号") = dr("编号")
            r("销售") = dr("销售")
            For Each sxf As DataRow In DataTables("进出表").DataRows
                If sxf("日期") = rq And sxf("编号") = r("编号") Then
                    r("进项") = r("进项") + sxf("进项")
                    r("出项") = r("出项") + sxf("出项")
                    r("返红") = r("返红") + sxf("返红") 
                End If
            Next            
            r("盈亏") = dr("当笔进出项")
            r("抽成") = dr("抽成")
        Else            
            st("盈亏") = st("盈亏") + dr("当笔进出项") 
            st("抽成") = st("抽成") + dr("抽成") 
        End If 
    End If 
Next 
\'二号销售表
For Each dr2 As DataRow In DataTables("二号销售表").DataRows 
    If dr2("日期") = rq Then 
        Dim st2 As DataRow = DataTables("当日销售统计").Find("编号 = \'" & dr2("编号") & "\'") 
        If st2 Is Nothing Then 
            Dim r2 As Row = Tables("当日销售统计").AddNew() 
            r2("编号") = dr2("编号") 
            r2("销售") = dr2("销售") 
            For Each sxf2 As DataRow In DataTables("进出表").DataRows 
                If sxf2("日期") = rq And sxf2("编号") = r2("编号") Then 
                    r2("进项") = r2("进项") + sxf2("进项")
                    r2("出项") = r2("出项") + sxf2("出项")
                    r2("返红") = r2("返红") + sxf2("返红") 
                End If 
            Next 
           
            r2("盈亏") = dr2("当笔进出项") 
            r2("抽成") = dr2("抽成") 
        Else 
            
            st2("盈亏") = st2("盈亏") + dr2("当笔进出项") 
            st2("抽成") = st2("抽成") + dr2("抽成") 
        End If 
    End If 
Next

经试验,用开发者进入窗口,每次点击数据统计控件,table1中经统计的数是正确的,不会累加;
但是我以其它用户名进入,第一次点击是正确的,但第二次点击控件,table1里面的数据是和第一次点击出现的数累加的.
为什么呢?难不成还能搞区别对待的?
老师们,帮忙看看代码哪里出错了?
[此贴子已经被作者于2019/4/16 13:32:06编辑过]

--  作者:youngerlsy123456
--  发布时间:2019/4/16 14:07:00
--  
非常抱歉,各位老师,各位看官,是我自己搞错了图片点击可在新窗口打开查看,我之前在BeforeDeletedataRow表事件中写了这个代码:
If User.Name <> "开发者1号" Then
e.Cancel = True
End If
还忘记了.图片点击可在新窗口打开查看,非常非常抱歉,浪费大家时间.