以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  求助  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=24033)

--  作者:lytings11
--  发布时间:2012/9/27 17:39:00
--  求助

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar

 

如附件,请问下在第一列日期早于8月31号时,刚第三列等于二列*0.056,否则等于第二列*0.06,怎么写啊

[此贴子已经被作者于2012-9-27 17:43:46编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/9/27 17:52:00
--  

1、第三列记得改为双精度小数型。

 

2、将表事件DataColChand事件代码设置为:

 

Select Case e.DataCol.name
    Case "第一列","第二列"
        If e.DataRow.IsNull("第一列") Then \'如果没有输入日期
            e.DataRow("第三列") = Nothing
        Else
            Dim dt As Date = e.DataRow("第一列") \'获得输入的日期
            If dt.Month > 8 Then
                e.DataRow("第三列") =  e.DataRow("第二列") * 0.06
            Else
                e.DataRow("第三列") =  e.DataRow("第二列") * 0.056
            End If
        End If
End Select


--  作者:lin_hailun
--  发布时间:2012/9/27 17:54:00
--  
 表达式就比较麻烦了,要嵌套,希望能看懂。

IIF(SubString(Convert([第一列],\'System.String\'),6,IIF(SubString(Convert([第一列],\'System.String\'),7,1) In (\'-\',\'/\'),1,2)) <= 8 And SubString(Convert([第一列],\'System.String\'),IIF(SubString(Convert([第一列],\'System.String\'),7,1) In (\'-\',\'/\'),8,9),2) <= 31, [第二列] * 0.056, [第二列] * 0.06)

--  作者:lytings11
--  发布时间:2012/9/27 18:05:00
--  
代码是直接贴在表达式函数那个框里面吗?代码我贴上去回应说:“代码错误,case运算符后缺少操作数”
--  作者:lytings11
--  发布时间:2012/9/27 18:08:00
--  
表达式贴上去了,成功了。图片点击可在新窗口打开查看