以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  日期计算的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=19581)

--  作者:周子杰
--  发布时间:2012/5/15 11:18:00
--  日期计算的问题

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

狐爸,如果日期是这样:qsrq:2012-5-14,zzrq:2013-5-13,金额就错了。怎么办呢?请指教。

 

2.如果我在表中筛选时,想输入日期时:会变成如图下:请问如何解决呢?

 


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

--  作者:狐狸爸爸
--  发布时间:2012/5/15 11:32:00
--  

做个例子发上来吧。


--  作者:周子杰
--  发布时间:2012/5/15 18:12:00
--  

狐爸,还是那个例子。

 


--  作者:周子杰
--  发布时间:2012/5/15 18:26:00
--  

日期

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

日期输入时:qsrq:2012-4-1,zzrq:2012-12-31,金额就错了。怎么办呢?请指教。,Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "fens","danj"
        dr("zhongj") = dr("fens") * dr("danj")
    Case "qsrq","zzrq","baom"
        If e.DataRow.IsNull("qsrq") = False AndAlso e.DataRow.IsNull("zzrq") = False Then
            Dim dt1 As Date = e.DataRow("qsrq")
            Dim dt2 As Date = e.DataRow("zzrq")
            Dim m As Integer = (dt2.year - dt1.year) * 12 + (dt2.month- dt1.month+1)
            Dim yj As Double
            If e.DataRow("baom") = "大同日报" Then
                yj = 24
            Else If e.DataRow("baom") = "大同晚报" Then
                yj = 16.5
            End If
            e.DataRow("danj") = m * yj
        End If
End Select

 

就是这里,加了1,qsrq:2012-4-15,zzrq:2013-4-14的就不对了,多1个月的钱。


--  作者:周子杰
--  发布时间:2012/5/15 18:28:00
--  
还有就是:qsrq:2012-5-15,zzrq:2012-8-14,金额应该是49.5,但显示的是66元
--  作者:狐狸爸爸
--  发布时间:2012/5/15 22:09:00
--  

我看不懂你的问题,订报都是按月顶的,加1干什么?


--  作者:周子杰
--  发布时间:2012/5/16 10:15:00
--  

再问一下。

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "fens","danj"
        dr("zhongj") = dr("fens") * dr("danj")
    Case "qsrq","zzrq","baom"
        If e.DataRow.IsNull("qsrq") = False AndAlso e.DataRow.IsNull("zzrq") = False Then
            Dim dt1 As Date = e.DataRow("qsrq")
            Dim dt2 As Date = e.DataRow("zzrq")
            Dim m As Integer = (dt2.year - dt1.year) * 12 + (dt2.month- dt1.month)
            Dim yj As Double
            If e.DataRow("baom") = "大同日报" Then
                yj = 24
            Else If e.DataRow("baom") = "大同晚报" Then
                yj = 16.5
            End If
            e.DataRow("danj") = m * yj
        End If
End Select

 

代码是这样的话。

 

qsrq:2012-6-1,zzrq:2012-12-31时,这是7个月,金额应该为115.5元,但显示为99元。如何解决呀。

 

狐爸解决一下吧。谢谢


--  作者:狐狸爸爸
--  发布时间:2012/5/16 10:32:00
--  

你自己规范输入就行,截止日期输入不要输入最后一次给他发报纸的日期,而是输入第一个不给她发报纸的日期。

你不规范输入,谁也没有办法的。

 


--  作者:周子杰
--  发布时间:2012/5/16 10:59:00
--  

你说,我如果在表中,老操作筛选近钮,修改数据,切换按钮的话,对数据库有影响吗?


--  作者:周子杰
--  发布时间:2012/5/16 11:07:00
--  

 请指点:谢谢!


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

 

我新建立此查询窗口,户名:地址:等都用的是组合框,“列表项目”中数据表,设置为yonghu,取值列为hum,但我想要查询时,能在户名,地址中输入任何一个字符便开始查询,请代码怎么写呀。