Foxtable(狐表)用户栏目专家坐堂 → [求助]所设置的条件不起作用,老师可以帮看一下错在哪吗?


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

主题:[求助]所设置的条件不起作用,老师可以帮看一下错在哪吗?

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


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
[求助]所设置的条件不起作用,老师可以帮看一下错在哪吗?  发帖心情 Post By:2018/11/29 23:52:00 [只看该作者]

本来设置了,判断列

“收发” = “收” 就会执行加法

“收发” = “发”  则执行减法。

但如我的代码——

 

却是第一行是加,则后边的全部是加,若是减,则全部是减。


此主题相关图片如下:1.png
按此在新窗口浏览图片

此主题相关图片如下:2.png
按此在新窗口浏览图片

此主题相关图片如下:3.png
按此在新窗口浏览图片

代码如下:

 

 

  Dim dr As DataRow
        Dim mr As DataRow = e.DataRow
        Dim drs As List(of DataRow)
       
        dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [s_Category] = '" & mr("s_Category") & "'", "[_SortKey] Desc")
        If dr Is Nothing Then
            If mr("s_SendReceive") = "收" Then
                mr("s_surplus") = 0 + mr("s_SR_total")
            ElseIf mr("s_SendReceive") = "发" Then
                mr("s_surplus") = 0 - mr("s_SR_total")
            End If
            dr = mr
        End If
        '如果当前行为第一行
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [s_category] = '" & dr("s_category") & "'", "[_SortKey]")
        For i As Integer = 1 To drs.Count - 1
            If mr("s_SendReceive") = "收" Then
                drs(i)("s_surplus") = drs(i-1)("s_surplus") + drs(i)("s_sr_total")
            ElseIf mr("s_SendReceive") = "发" Then
                drs(i)("s_surplus") = drs(i-1)("s_surplus") - drs(i)("s_sr_total")
            End If
        Next

[此贴子已经被作者于2018/11/29 23:53:06编辑过]

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


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

If mr("s_SendReceive") = "收" Then

 

改成

 

If drs(i)("s_SendReceive") = "收" Then

 


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


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
  发帖心情 Post By:2018/11/30 9:42:00 [只看该作者]

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2018.10.9.1
错误所在事件:表,a123,DataColChanged
详细错误信息:
调用的目标发生了异常。
无法将类型为“System.Double”的对象强制转换为类型“Foxtable.DataRow”。

接下来出现这个错误?

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


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
回复:(ls93005).NET Framework 版本:2.0.50727.36...  发帖心情 Post By:2018/11/30 9:47:00 [只看该作者]


.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2018.10.9.1
错误所在事件:表,a123,DataColChanged
详细错误信息:
调用的目标发生了异常。
无法将类型为“System.Double”的对象强制转换为类型“Foxtable.DataRow”。

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


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

贴出所写全部代码。

 

要学会自己调试 http://www.foxtable.com/webhelp/scr/1485.htm

 


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


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
回复:(有点甜)贴出所写全部代码。 要学会...  发帖心情 Post By:2018/11/30 10:18:00 [只看该作者]

已经在努力学了 老师


Select Case e.DataCol.Name
    Case "收发料数据_数量","收发料数据_单价","收发料数据_小计","收发","材料种类"
        '-----------------------------------
        Dim CurrentRow As DataRow = e.DataRow
        Dim VariableRow As DataRow
        Dim VariableRowList As List(of DataRow)
        Dim FindLastRow As String = "[_SortKey] < " & CurrentRow("_SortKey") & " And [材料种类] = '" & CurrentRow("材料种类") & "'"        
        Dim FindMax As String = "[_SortKey] Desc"
        '-------------------
        
        VariableRow = e.DataTable.Find(FindLastRow, FindMax)
        If VariableRow Is Nothing Then
            If CurrentRow("收发") = "收" Then
                CurrentRow("结余_金额") = 0 + CurrentRow("收发料数据_小计")
            ElseIf CurrentRow("收发") = "发" Then
                CurrentRow("结余_金额") = 0 - CurrentRow("收发料数据_小计")
            End If
            VariableRow = CurrentRow
        End If
        VariableRowList = e.DataTable.Select("[_SortKey] >= " & VariableRow("_SortKey") & " And [材料种类] = '" & VariableRow("材料种类") & "'", "[_SortKey]")
        For Rank As Integer = 1 To VariableRowList.Count - 1
            If VariableRowList(Rank)("收发") = "收" Then
                VariableRowList(Rank) = VariableRowList(Rank - 1)("结余_金额") + VariableRowList(Rank)("收发料数据_小计")
            ElseIf VariableRowList(Rank)("收发") = "发" Then
                VariableRowList(Rank) = VariableRowList(Rank - 1)("结余_金额") - VariableRowList(Rank)("收发料数据_小计")
            End If
        Next
        '------------------------------------
End Select



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


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
  发帖心情 Post By:2018/11/30 10:26:00 [只看该作者]

找到了 老师


 回到顶部