以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  每月25日为结算日期的处理  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=63403)

--  作者:ruanziming
--  发布时间:2015/1/20 12:07:00
--  每月25日为结算日期的处理
请教每月25日为结算日期的处理方式,谢谢
--  作者:有点甜
--  发布时间:2015/1/20 14:02:00
--  

 如果要统计什么的,控制好日期条件即可

 

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

 


--  作者:ruanziming
--  发布时间:2015/1/20 14:19:00
--  
从每月1日到次月1日的统计会处理,但是我们会计要求统计从每月26日至次月25日的数据为1个月。我想是否可以做几个年、月、日的表达式列,通过【日期】列计算后获得。这样筛选或统计就方便些。
--  作者:blackzhu
--  发布时间:2015/1/20 14:23:00
--  
用条件处理呀 


Dim y As Integer = 2011 \'指定年份
Dim 
m As Integer = date.today.month
Dim 
dt1 As New Date(ym-126) 上月26号
Dim 
dt2 As New Date(ym25\'本月25号
Dim 
Filter As String
Filter
 = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#" 

--  作者:有点甜
--  发布时间:2015/1/20 14:32:00
--  
以下是引用ruanziming在2015-1-20 14:19:00的发言:
从每月1日到次月1日的统计会处理,但是我们会计要求统计从每月26日至次月25日的数据为1个月。我想是否可以做几个年、月、日的表达式列,通过【日期】列计算后获得。这样筛选或统计就方便些。

 

看4楼,类似那样写代码。

 

具体问题,请上传例子


--  作者:ruanziming
--  发布时间:2015/1/20 15:04:00
--  
谢谢。我其实是想把加载树按日期加载处理成每个月加载的数据是上月26日至本月25日的数据。不知道说清没有。
--  作者:有点甜
--  发布时间:2015/1/20 15:09:00
--  

 自己设计加载树,控制加载代码即可啊。

 

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

 


--  作者:lyfxybc
--  发布时间:2015/1/20 18:27:00
--  

下面是我用的代码参考一下,代码也是在各位老师的帮助下完成的

 

参考:有日期、年、月、日、季五列,日期为时间,年月日季为字符

 

For Each dr As DataRow In DataTables("公司信息").DataRows  
    Dim qs As Integer = dr("每月第一天")
    Dim js As Integer = dr("每月最后一天")

If e.DataCol.Name = "日期" Then
    If e.DataRow.IsNull("日期") Then
        e.DataRow("年") = Nothing
        e.DataRow("月") = Nothing
        e.DataRow("季") = Nothing
        e.DataRow("日") = Nothing
    Else
        Dim d As Date = e.NewValue
        If d.Month = 12 And d.day >= qs Then
            e.DataRow("年") = d.Year +1
        Else
           e.DataRow("年") = d.Year
        End If
        If d.Day < qs Then
            e.DataRow("月") = d.Month
        Else If d.Month = 11 Then
            e.DataRow("月") = 12
        Else
            e.DataRow("月") = (d.Month + 1) Mod 12
        End If
        If d.day > js Then
            e.DataRow("季") = DatePart("q",d.AddDays(10))
        Else
            e.DataRow("季") = DatePart("q",d)
        End If
        e.DataRow("日") = d.Day
End If
End If
next

 

 

DataRowAdding


e.DataRow("日期") = Date.today()

 

 

 

 

 

‘加载树代码 放在按钮或afterload

 

 

\'首先生成统计表
Dim dt As DataTable
Dim b As New SQLGroupTableBuilder("统计表1","坯布输入")
b.C
\'Dim dt1 As fxDataSource
b.Groups.AddDef("年","年1")
b.Groups.AddDef("月","月1")
b.Groups.AddDef("日","日1")

b.Totals.AddDef("_Identify",AggregateEnum.Count,"") \'根据主键列来统计记录数,也就是订单数
dt = b.Build() \'参数设置为False,生成一个临时表,不在主界面显示
\'然后根据统计表生成目录树

With DataTables("统计表1").DataCols  \'用表达式列计算库存数据
    .Add("年",Gettype(Integer))
    .Add("月",Gettype(Integer))
    .Add("日",Gettype(Integer))
End With
    \'Next
    For Each r7 As Row In Tables("统计表1").rows
          r7("年") = r7("年1")
          r7("月") = r7("月1")
          r7("日") = r7("日1")
    Next

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "年|月|日")

 

 

 

’‘’NodeMouseClick

 

Dim Filter As String
If e.Node.Text = "请点击选择" Then
    Filter = ""
Else
    Dim Value() As String
    Value = e.Node.FullPath.Split("\\")
    Select Case e.Node.Level
        Case 0
            Filter ="[年] = \'" & Value(0) & "\'"
        Case 1
            Filter ="[年] = \'" & Value(0) & "\' And [月] = \'" & Value(1) & "\'"
        Case 2
            Filter ="[年] = \'" & Value(0) & "\' And [月] = \'" & Value(1) & "\'And [日] = \'" & Value(2) & "\'"
    End Select
End If
DataTables("坯布Table1").LoadFilter = Filter
DataTables("坯布Table1").Load()

[此贴子已经被作者于2015-1-20 18:52:44编辑过]