Foxtable(狐表)用户栏目专家坐堂 → 每月25日为结算日期的处理


  共有3270人关注过本帖树形打印复制链接

主题:每月25日为结算日期的处理

帅哥哟,离线,有人找我吗?
lyfxybc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1290 积分:9826 威望:0 精华:0 注册:2012/9/19 21:13:00
  发帖心情 Post By: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编辑过]

 回到顶部