以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求整数与余数  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=41135)

--  作者:tj-pacer
--  发布时间:2013/10/12 8:45:00
--  求整数与余数

用表达式,两列的值相除,得出含小数的值,如何实现整数与小数分开,各占一列。


--  作者:Bin
--  发布时间:2013/10/12 9:15:00
--  
使用代码吧,表达式不好办.


在DataColChanged事件中

if e.datacol.name="第一列" orElse e.datacol.name="第二列" then
     if e.datarow.isnull("第一列")=false andAlso e.datarow.isnull("第二列")=false then
         dim s as string = e.datarow("第一列")/e.datarow("第二列")
         dim ss as string() = s.split(".")
         if ss.length=2 then
             e.datarow("第三列")=ss(0)
             e.datarow("第四列")=ss(1)
         else
            e.datarow("第三列")=s
         end if
     end if
end if

--  作者:程兴刚
--  发布时间:2013/10/12 9:23:00
--  

试试 n mod 1 和 n \\1 ,n为您的双精度小数


--  作者:tj-pacer
--  发布时间:2013/10/12 9:58:00
--  
以下是引用Bin在2013-10-12 9:15:00的发言:
使用代码吧,表达式不好办.


在DataColChanged事件中

if e.datacol.name="第一列" orElse e.datacol.name="第二列" then
     if e.datarow.isnull("第一列")=false andAlso e.datarow.isnull("第二列")=false then
         dim s as string = e.datarow("第一列")/e.datarow("第二列")
         dim ss as string() = s.split(".")
         if ss.length=2 then
             e.datarow("第三列")=ss(0)
             e.datarow("第四列")=ss(1)
         else
            e.datarow("第三列")=s
         end if
     end if
end if

谢谢!用代码可行,整数部分完全可用,小数列出现位数不同的余数,希望将第四列的值生成"0.XXXX"(保留小数点后4位), 而不是现在的"XXXX"


--  作者:Bin
--  发布时间:2013/10/12 10:04:00
--  
e.datarow("第四列")=ss(1) 改为

e.datarow("第四列")="0." & ss(1).SubString(0,IIF(ss(1).length>=4,4,ss(1).length))

--  作者:tj-pacer
--  发布时间:2013/10/12 13:46:00
--  
搞定了,再次感谢!
--  作者:程兴刚
--  发布时间:2013/10/12 13:56:00
--  
其实,第四列属性小数设为4位,固定小数位数设为True即可!