Foxtable(狐表)用户栏目专家坐堂 → 字符如何格式化成日期


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

主题:字符如何格式化成日期

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
字符如何格式化成日期  发帖心情 Post By:2023/12/15 11:35:00 [只看该作者]

TextBox文本框,在文本框中录入年度,如何在代码里将这个文本格式化成日期里的年度,并指定月和日和其他日期列作比较,excel里有这样的代码可以做到,狐表里有吗?帮助里都看过了,跟我说的情况不一样,有的话,请大神们给个可行的代码
[此贴子已经被作者于2023/12/15 11:36:05编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107159 积分:545044 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/12/15 11:47:00 [只看该作者]

意思是输入2023,就变成日期:2023-1-1?

dim d as date = cdate(e.form.controls("TextBox1").text & "-1-1")

 回到顶部
帅哥哟,离线,有人找我吗?
dhyskyworld
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/12/15 12:59:00 [只看该作者]

查询按钮代码:
Dim d1 As Date = CDate(e.Form.controls("TextBox1").text & "-1-1")
Dim d2 As Date = CDate(e.Form.controls("TextBox1").text & "-12-31")
Dim dt As DataTable
Dim b As New SQLGroupTableBuilder("统计表1", "EI")
b.Groups.AddDef("人员类别")
b.Groups.AddDef("人员状态")
b.Totals.AddDef("_Identify", AggregateEnum.Count, "人数") 
dt = b.Build()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "人员类别|人员状态")
trv.StopRedraw
For Each nd As WinForm.TreeNode In trv.AllNodes
    Dim lb1 As String = nd.DataRow("人员类别")
    Dim zt As String = nd.DataRow("人员状态")
    Select Case nd.Level
        Case 0
            nd.Text = nd.text & "(" & dt.Compute("Sum(人数)", "人员类别 = '" & lb1 & "'") & "人)"
        Case 1
            nd.Text = nd.text & "(" & dt.Compute("Sum(人数)", "人员类别 = '" & lb1 & "' And 人员状态 = '" & zt & "'") & "人)"
        Case 2
            nd.Text = nd.text & "(" & nd.DataRow("人数") & ")"
    End Select
Next
trv.Nodes.Insert("加载所有行", "加载所有行(" & dt.Compute("Sum(人数)") & "人)", 0)
trv.ResumeRedraw
如何把满足条件的人进行统计,条件怎么加进代码里,TextBox里输入年度,然后,根据人员状态、进入单位日期、离开单位日期来进行统计,因为不同状态的人需满足的条件不同,比如,在职或在聘的,只需要判断其进入单位日期大于等于d2即可,如果是退休、解聘、调出的,则要同时满足进入单位日期大于等于d2且离开单位日期小于等于d1。
输出的目录树结构还是以下这种结构
图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107159 积分:545044 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/12/15 13:48:00 [只看该作者]

http://www.foxtable.com/webhelp/topics/1626.htm

Dim b As New SQLGroupTableBuilder("统计表1", "EI")
b.Groups.AddDef("人员类别")
b.Groups.AddDef("人员状态")
b.Totals.AddDef("_Identify", AggregateEnum.Count, "人数") 
b.filter = "日期>=#" & d1 & "# and 日期<=#" & d2 & "#"
dt = b.Build(true)

 回到顶部
帅哥哟,离线,有人找我吗?
dhyskyworld
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/12/15 14:42:00 [只看该作者]

蓝老师,代码运行没有出错,但是筛选不出想要的结果,目录树显示也不正确,具体问题如下:
1、点击查询的结果和点击加载所有行,ListView还是显示所有的人员。
2、人员类别有三类,但是目录树只有一类在职人员。确定当年不止在职这一类人员存在。如下图:
图片点击可在新窗口打开查看
3、点击职员节点,ListView列出的是所有的职员,而不是只列出符合条件的职员。
职员节点下的显示倒是正常的。点击后,ListView的结果也正常
还请蓝老师再指导一下,下面是我现在的代码:
Dim d1 As Date = CDate(e.Form.controls("TextBox1").text & "-1-1")
Dim d2 As Date = CDate(e.Form.controls("TextBox1").text & "-12-31")
Dim dt As DataTable
Dim b As New SQLGroupTableBuilder("统计表1", "EI")
b.Groups.AddDef("人员类别")
b.Groups.AddDef("人员状态")
b.Totals.AddDef("_Identify", AggregateEnum.Count, "人数") 
b.filter = "离开单位日期>=#" & d1 & "# and 进入单位日期<=#" & d2 & "#"
dt = b.Build()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "人员类别|人员状态")
trv.StopRedraw
For Each nd As WinForm.TreeNode In trv.AllNodes
    Dim lb1 As String = nd.DataRow("人员类别")
    Dim zt As String = nd.DataRow("人员状态")
    Select Case nd.Level
        Case 0
            nd.Text = nd.text & "(" & dt.Compute("Sum(人数)", "人员类别 = '" & lb1 & "'") & "人)"
        Case 1
            nd.Text = nd.text & "(" & dt.Compute("Sum(人数)", "人员类别 = '" & lb1 & "' And 人员状态 = '" & zt & "'") & "人)"
        Case 2
            nd.Text = nd.text & "(" & nd.DataRow("人数") & ")"
    End Select
Next
trv.Nodes.Insert("加载所有行", "加载所有行(" & dt.Compute("Sum(人数)") & "人)", 0)
trv.ResumeRedraw
Dim lvw As WinForm.ListView
lvw = e.Form.CreateControl("ListView1", ControlTypeEnum.ListView)
lvw.StopRedraw()
lvw.Groups.Clear()
lvw.Columns.Clear()
lvw.Rows.Clear()
lvw.Images.Clear()
lvw.Dock = System.Windows.Forms.DockStyle.Fill
lvw.View = ViewMode.Details
lvw.TitleSize = New Size(130, 80)
lvw.GridLines = True
lvw.AllowDrag = True
lvw.Images.AddImage("Man", "Man.ico", "Man48.ico")
lvw.Images.AddImage("Woman", "Woman.ico", "Woman48.ico")
e.Form.Controls("SplitContainer1").Panel2.AddControl(lvw)
Dim cls() As String = {"姓名", "人员类别", "进入单位日期", "离开单位日期", "人员状态"}
For i As Integer = 0 To cls.Length - 1 
    Dim c As WinForm.ListViewColumn = lvw.Columns.Add() 
    c.Name = cls(i) 
    c.Text = cls(i)
    c.TextAlign = HorizontalAlignment.Center
Next
For Each lb As String In DataTables("EI").GetValues("人员类别")
    Dim grp As WinForm.ListViewGroup = lvw.Groups.Add()
    grp.Name = lb
    grp.Text = lb
Next
For Each dr As DataRow In DataTables("EI").DataRows
    Dim r As WinForm.ListViewRow = lvw.Rows.Add() 
    r.Group = dr("人员类别")
    For Each cl As String In cls
        r(cl) = dr(cl) 
    Next
    If dr("性别") = "男" Then
        r.ImageKey = "Man"
    Else
        r.ImageKey = "Woman"
    End If
    r.Tag = dr
Next
For Each c As WinForm.ListViewColumn In lvw.Columns
    c.AutoResize
Next 
lvw.ShowGroups = False
lvw.ResumeRedraw()
[此贴子已经被作者于2023/12/15 14:44:33编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107159 积分:545044 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/12/15 15:05:00 [只看该作者]

请上传实例说明

 回到顶部
帅哥哟,离线,有人找我吗?
dhyskyworld
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/12/15 15:29:00 [只看该作者]

已上传,点击查询后退休节点的数据也不对
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目.rar

[此贴子已经被作者于2023/12/15 15:39:07编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107159 积分:545044 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/12/15 15:45:00 [只看该作者]

怎么测试?哪个数据有问题?

 回到顶部
帅哥哟,离线,有人找我吗?
dhyskyworld
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/12/15 15:56:00 [只看该作者]

人员管理窗口,左下那个人员查询图片点击可在新窗口打开查看图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107159 积分:545044 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/12/15 16:12:00 [只看该作者]

符合这个条件的数据确实有7条呀,什么地方不对?那么正确的应该是哪几行数据?


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


 回到顶部
总数 21 1 2 3 下一页