以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  代码冲突2  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=138405)

--  作者:fubblyc
--  发布时间:2019/7/30 16:21:00
--  代码冲突2
老师,麻烦帮忙看下这个代码:



资金日报项目表 

DataColChanged代码


If e.DataCol.Name = "项目" Then
    If e.NewValue Is Nothing Then
        e.DataRow("A00") = Nothing
        e.DataRow("C00") = Nothing
        e.DataRow("合计") = Nothing
    Else
        e.DataRow("A00") = Nothing
        e.DataRow("C00") = Nothing
        e.DataRow("合计") = Nothing
        
        Dim dr As DataRow
        
        dr = DataTables("用友项目表").Find("[项目编码] = \'" & e.DataRow("A00项目编码") & "\' ")
        If dr IsNot Nothing And e.DataRow("A00项目编码").StartsWith("11")
            e.DataRow("A00") = dr("原币金额收入")
        End If
        
        dr = DataTables("用友项目表").Find("[项目编码] = \'" & e.DataRow("A00项目编码") & "\' ")
        If dr IsNot Nothing And e.DataRow("A00项目编码").StartsWith("12")
            e.DataRow("A00") = dr("原币金额支出")
        End If
        
        
        dr = DataTables("用友项目表").Find("[项目编码] = \'" & e.DataRow("C00项目编码") & "\' ")
        If dr IsNot Nothing And e.DataRow("C00项目编码").StartsWith("21")
            e.DataRow("C00") = dr("原币金额收入")
        End If
        
        dr = DataTables("用友项目表").Find("[项目编码] = \'" & e.DataRow("C00项目编码") & "\' ")
        If dr IsNot Nothing And e.DataRow("C00项目编码").StartsWith("22")
            e.DataRow("C00") = dr("原币金额支出")
        End If
    End If
End If

If e.DataCol.Name = "日期" Then
    
    \'收入
    If e.DataRow("A00项目编码") = "111" Then \'销售资金收入
        e.DataRow("A00") = e.DataTable.Compute("sum(A00)","A00项目编码 like \'1110%\' or A00项目编码 like \'1111%\' ")
        e.DataRow("C00") = e.DataTable.Compute("sum(C00)","A00项目编码 like \'1110%\' or A00项目编码 like \'1111%\' ")
    End If
    
    If e.DataRow("A00项目编码") = "112" Then \'1.2?其他资金收入
        e.DataRow("A00") = e.DataTable.Compute("sum(A00)","A00项目编码 like \'1120%\' or A00项目编码 like \'1121%\' ")
        e.DataRow("C00") = e.DataTable.Compute("sum(C00)","A00项目编码 like \'1120%\' or A00项目编码 like \'1121%\' ")
    End If
    
    If e.DataRow("A00项目编码") = "113" Then \'2?内部往来收入
        e.DataRow("A00") = e.DataTable.Compute("sum(A00)","A00项目编码 like \'1130%\' or A00项目编码 like \'1131%\' ")
        e.DataRow("C00") = e.DataTable.Compute("sum(C00)","A00项目编码 like \'1130%\' or A00项目编码 like \'1131%\' ")
    End If
    
    \'支出
    If e.DataRow("A00项目编码") = "121" Then \'1?货款支出
        e.DataRow("A00") = e.DataTable.Compute("sum(A00)","A00项目编码 like \'1210%\' or A00项目编码 like \'1211%\' ")
        e.DataRow("C00") = e.DataTable.Compute("sum(C00)","A00项目编码 like \'1210%\' or A00项目编码 like \'1211%\' ")
    End If
    
    If e.DataRow("A00项目编码") = "12201" Then \'2.1?自营费用支出
        e.DataRow("A00") = e.DataTable.Compute("sum(A00)","A00项目编码 like \'122010%\' or A00项目编码 like \'122011%\' ")
        e.DataRow("C00") = e.DataTable.Compute("sum(C00)","A00项目编码 like \'122010%\' or A00项目编码 like \'122011%\' ")
    End If
    
    If e.DataRow("A00项目编码") = "12202" Then \'2.2?联营费用支出
        e.DataRow("A00") = e.DataTable.Compute("sum(A00)","A00项目编码 like \'122020%\' or A00项目编码 like \'122021%\' ")
        e.DataRow("C00") = e.DataTable.Compute("sum(C00)","A00项目编码 like \'122020%\' or A00项目编码 like \'122021%\' ")
    End If
    
    
    If e.DataRow("A00项目编码") = "123" Then \'其他支出
        e.DataRow("A00") = e.DataTable.Compute("sum(A00)","A00项目编码 like \'1230%\' or A00项目编码 like \'1231%\' ")
        e.DataRow("C00") = e.DataTable.Compute("sum(C00)","A00项目编码 like \'1230%\' or A00项目编码 like \'1231%\' ")
    End If
    
    If e.DataRow("A00项目编码") = "124" Then \'内部往来支出
        e.DataRow("A00") = e.DataTable.Compute("sum(A00)","A00项目编码 like \'1240%\' or A00项目编码 like \'1241%\'")
        e.DataRow("C00") = e.DataTable.Compute("sum(C00)","A00项目编码 like \'1240%\' or A00项目编码 like \'1241%\'")
    End If    
End If

\'If e.DataCol.Name = "分销商" Then
    \'If e.DataRow("A00项目编码") = "10" Then \'1?资金总收入
        \'e.DataRow("A00") = e.DataTable.Compute("sum(A00)","A00项目编码 = \'111\' or A00项目编码 = \'112\' ")
        \'e.DataRow("C00") = e.DataTable.Compute("sum(C00)","A00项目编码 = \'111\' or A00项目编码 = \'112\' ")
    \'End If
    \'
    \'If e.DataRow("项目") = "收入项目金额合计" Then \'1?资金总收入
        \'e.DataRow("A00") = e.DataTable.Compute("sum(A00)","A00项目编码 = \'111\' or A00项目编码 = \'112\' or A00项目编码 = \'113\' ")
        \'e.DataRow("C00") = e.DataTable.Compute("sum(C00)","A00项目编码 = \'111\' or A00项目编码 = \'112\' or A00项目编码 = \'113\' ")
        \'forms("资金日报填写").Controls("textbox2").value  = Nothing
        \'forms("资金日报填写").Controls("textbox6").value  = Nothing
        \'forms("资金日报填写").Controls("textbox2").value  = e.DataRow("A00")
        \'forms("资金日报填写").Controls("textbox6").value  = e.DataRow("C00")
    \'End If
    \'
    \'If e.DataRow("A00项目编码") = "122" Then \'费用支出
        \'e.DataRow("A00") = e.DataTable.Compute("sum(A00)","A00项目编码 = \'12201\' or A00项目编码 = \'12202\' ")
        \'e.DataRow("C00") = e.DataTable.Compute("sum(C00)","A00项目编码 = \'12201\' or A00项目编码 = \'12202\' ")
    \'End If
    \'
    \'If e.DataRow("项目") = "支出项目金额合计" Then \'1?资金总收入
        \'e.DataRow("A00") = e.DataTable.Compute("sum(A00)","A00项目编码 = \'121\' or A00项目编码 = \'12201\' or A00项目编码 = \'12202\' or A00项目编码 = \'123\' or A00项目编码 = \'124\' ")
        \'e.DataRow("C00") = e.DataTable.Compute("sum(C00)","A00项目编码 = \'121\' or A00项目编码 = \'12201\' or A00项目编码 = \'12202\' or A00项目编码 = \'123\' or A00项目编码 = \'124\' ")
        \'forms("资金日报填写").Controls("textbox4").value  = Nothing
        \'forms("资金日报填写").Controls("textbox8").value  = Nothing
        \'forms("资金日报填写").Controls("textbox4").value  = e.DataRow("A00")
        \'forms("资金日报填写").Controls("textbox8").value  = e.DataRow("C00")
    \'End If
    \'
    \'e.DataRow("合计") = e.DataRow("A00") + e.DataRow("C00")
\'
    \'If e.DataRow("合计") = 0 Then
        \'e.DataRow("合计") = Nothing
    \'End If
\'End If

只要把这部分注释掉,就没有问题,一旦加上这段代码,就出现这样的情况

以下内容是专门发给有点蓝浏览



图片点击可在新窗口打开查看此主题相关图片如下:gif.gif
图片点击可在新窗口打开查看


[此贴子已经被作者于2019/7/30 16:22:26编辑过]

--  作者:有点蓝
--  发布时间:2019/7/30 20:48:00
--  
看不懂这个代码逻辑。

A00的计算只看到和A00项目编码有关系,没看到和项目,分销商,日期列有什么关系,为什么要判断这些列?

项目开发者密码是多少?

--  作者:fubblyc
--  发布时间:2019/8/2 11:55:00
--  
老师,我重新上传一下项目:


以下内容是专门发给有点蓝浏览



--  作者:fubblyc
--  发布时间:2019/8/2 12:50:00
--  
这是导入的表格


以下内容是专门发给有点蓝浏览




--  作者:有点蓝
--  发布时间:2019/8/2 14:13:00
--  
web服务端连接的是什么数据库?access?
--  作者:有点蓝
--  发布时间:2019/8/2 14:21:00
--  
    \'dr("项目") = dr("项目").trim()  & chr(11)
    \'dr("项目") = dr("项目").trim(chr(11))

这2句代码的原因。话说这2句是干嘛用的?

--  作者:fubblyc
--  发布时间:2019/8/2 17:55:00
--  
蓝老师,是,用的三层架构,sql server 


    \'dr("项目") = dr("项目").trim()  & chr(11)
    \'dr("项目") = dr("项目").trim(chr(11))

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=136795



此主题相关图片如下:微信截图_20190802175547.png
按此在新窗口浏览图片




[此贴子已经被作者于2019/8/2 17:55:16编辑过]

--  作者:fubblyc
--  发布时间:2019/8/2 17:59:00
--  
好像是跟这个代码有关:

DataColChanged代码




--  作者:有点蓝
--  发布时间:2019/8/2 20:27:00
--  
就是chr(11)的问题,和web数据源的保存模式有关,算是一个bug,试试改为其他方式

dim s as string = dr("项目")
s = dr("项目").trim()  & "|"
dr("项目") = s
dr("项目") = s.Substring(0,s.length-1)

--  作者:fubblyc
--  发布时间:2019/8/4 15:23:00
--  
蓝老师,我百度了chr(11)  没有找到相关的内容,这个是什么意思呢?