以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何将从SQL取出的字符型日期转换成faxtable的日期格式,进行汇总统计  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68437)

--  作者:able88
--  发布时间:2015/5/18 9:19:00
--  如何将从SQL取出的字符型日期转换成faxtable的日期格式,进行汇总统计
我们ERP里SQL数据表的日期是用8位字符存储的。如SQL里的日期格式是这样的:20150518,字段类型是字符,怎样可以显示成faxtable的格式2015-05-18,然后按月去汇总统计数据。
--  作者:Bin
--  发布时间:2015/5/18 9:27:00
--  
Dim s  As String = "20150518"
MessageBox.show(s.Substring(0,4) & "-" & s.Substring(4,2) & "-" & s.Substring(6))


条件设置为 "Substring([日期], 4, 2) = \'5\'"  统计5月份

最好还是用日期格式列,否则很不方便.

--  作者:大红袍
--  发布时间:2015/5/18 9:28:00
--  

 那你的表结构就不对。

 

 多加一列日期列,把原本的字符转化成日期类型。

 

 Datacolchanged事件

 

 If e.DataCol.Name = "日期"
    If e.newvalue IsNot Nothing AndAlso e.NewValue.length >= 8 Then
        e.DataRow("真实日期") = new Date(e.NewValue.SubString(0,4), e.newValue.SubString(4,2), e.newValue.SubString(6,2))
    Else
        e.DataRow("真实日期") = Nothing
    End If
End If


--  作者:able88
--  发布时间:2015/5/18 9:56:00
--  

按你这样做了,新建的那一列数据没有把字符日期的那一列数据写过去,新建列”newdate“

 



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

--  作者:Bin
--  发布时间:2015/5/18 9:58:00
--  
不要用 isnot nothing 


if e.datarow.isnull(e.datacol.name)=false andalso .datarow.isnull(e.datacol.name).length>=8 then
end if

--  作者:大红袍
--  发布时间:2015/5/18 10:04:00
--  

重置列

 

http://www.foxtable.com/help/topics/1469.htm

 


--  作者:able88
--  发布时间:2015/5/18 10:10:00
--  

能不能写清楚点,按你说的那个做,代码出错了

 


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

--  作者:大红袍
--  发布时间:2015/5/18 10:11:00
--  
3楼代码,重置列
--  作者:able88
--  发布时间:2015/5/18 10:36:00
--  

这个只是说重置列,重新计算列值,但是还是不知道怎样把日期字符转为faxtable可用的日期格式进行月汇总统计。求详细的方法


--  作者:大红袍
--  发布时间:2015/5/18 10:38:00
--  

 你把 使用指南->统计数据 一章看一下

 

http://www.foxtable.com/help/topics/00143.htm

 

 如果是分组统计,参考 http://www.foxtable.com/help/topics/0161.htm