以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  条件引用字符单引号出错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=139482)

--  作者:zhuxinhui
--  发布时间:2019/8/13 19:54:00
--  条件引用字符单引号出错
Dim ds As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "客户全称","送货日期","货料编码"
        If ds.IsNull(e.DataCol.Name) Then
            ds("结算单价") = Nothing
            ds("科目编码") = Nothing
            ds("往来编码") = Nothing
            ds("科目") = Nothing
            ds("业务员") = Nothing
        Else
            Dim fdr As DataRow = DataTables("报价单").find("往来单位=\'" & ds("客户全称") & "\' and 货物编码=\'" & ds("货料编码") & "\' and 终止日期>\'" & ds("送货日期") & "\'")
            If fdr IsNot Nothing And ds("会计年度") = Nothing And  ds("数量")=<499 And ds("客户全称") = "\'东莞市***安防科技有限公司\'" Or ds("客户全称") = "\'广州**科技股份有限公司\'" Then
                ds("结算单价") = fdr("单价")
                ds("结算金额") = ds("数量")*ds("结算单价")
                ds("业务员") = fdr("业务员")
            ElseIf  fdr IsNot Nothing And ds("会计年度") = Nothing And  500 < ds("数量") =< 4999 And ds("客户全称") = \'东莞市**安防科技有限公司\' Or ds("客户全称") =\'广州**科技股份有限公司\' Then
                ds("结算单价") = fdr("单价500至4999")
                ds("结算金额") = ds("数量")*ds("结算单价")
                ds("业务员") = fdr("业务员")
            ElseIf  fdr IsNot Nothing And ds("会计年度") = Nothing And  4999 < ds("数量") And ds("客户全称") =\'东莞市**安防科技有限公司\' Or ds("客户全称") =\'广州**科技股份有限公司\' Then
                ds("结算单价") = fdr("单价5000以上")
                ds("结算金额") = ds("数量")*ds("结算单价")
                ds("业务员") = fdr("业务员")
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20190813195341.png
图片点击可在新窗口打开查看

            Else  fdr IsNot Nothing And ds("会计年度") = Nothing
                ds("结算单价") = fdr("单价")
                ds("结算金额") = ds("数量")*ds("结算单价")
                ds("业务员") = fdr("业务员")
            End If
        End If
End Select

--  作者:zhuxinhui
--  发布时间:2019/8/13 19:56:00
--  
引用单价时有几个客户是分级引用的,其他客户就不是,是哪里出问题了
--  作者:有点蓝
--  发布时间:2019/8/13 20:29:00
--  
ds("数量")=<499

=<

改为

<=

--  作者:有点蓝
--  发布时间:2019/8/13 20:35:00
--  
再仔细看看,简直一塌糊涂

……
Else
    Dim fdr As DataRow = DataTables("报价单").find("往来单位=\'" & ds("客户全称") & "\' and 货物编码=\'" & ds("货料编码") & "\' and 终止日期>\'" & ds("送货日期") & "\'")
    If fdr IsNot Nothing AndAlso  ds.Isnull("会计年度")
        If  ds("数量")<=499 AndAlso  ds("客户全称") = "东莞市***安防科技有限公司" OrElse ds("客户全称") = "广州**科技股份有限公司" Then
            ds("结算单价") = fdr("单价")
            ds("结算金额") = ds("数量")*ds("结算单价")
            ds("业务员") = fdr("业务员")
        ElseIf ds("数量") >  500 AndAlso ds("数量") <= 4999 AndAlso  ds("客户全称") = "东莞市**安防科技有限公司" OrElse ds("客户全称") ="广州**科技股份有限公司" Then
            ds("结算单价") = fdr("单价500至4999")
            ds("结算金额") = ds("数量")*ds("结算单价")
            ds("业务员") = fdr("业务员")
        ElseIf   ds("数量") >  4999  AndAlso  ds("客户全称") ="东莞市**安防科技有限公司" OrElse ds("客户全称") ="广州**科技股份有限公司" Then
            ds("结算单价") = fdr("单价5000以上")
            ds("结算金额") = ds("数量")*ds("结算单价")
            ds("业务员") = fdr("业务员")
        Else
            ds("结算单价") = fdr("单价")
            ds("结算金额") = ds("数量")*ds("结算单价")
            ds("业务员") = fdr("业务员")
        End If
    End If
End If

--  作者:zhuxinhui
--  发布时间:2019/8/13 20:52:00
--  
谢多多指教


--  作者:zhuxinhui
--  发布时间:2019/8/13 21:33:00
--  
多谢蓝老师