以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  增加行生成日期  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=126020)

--  作者:18631154510
--  发布时间:2018/10/12 10:59:00
--  增加行生成日期
增加行事件里如何实现自动日期,包含日期,星期,上下午。比如:10月1日(星期一)上午,增加行后10月1日(星期一)下午,再增加行为10月2日(星期二)上午,再增加行为10月2日(星期二)下午
--  作者:有点甜
--  发布时间:2018/10/12 11:04:00
--  

datarowadded事件

 

e.DataRow("第一列") = Format(Date.now, "yyyy年MM月dd日(dddd)") & iif(Date.now.hour > 12, "下午", "上午")


--  作者:18631154510
--  发布时间:2018/10/12 11:28:00
--  

调用目标发生异常


--  作者:有点甜
--  发布时间:2018/10/12 11:31:00
--  
以下是引用18631154510在2018/10/12 11:28:00的发言:

调用目标发生异常

 

不可能的。请认真测试。


--  作者:18631154510
--  发布时间:2018/10/12 11:38:00
--  

Dim maxd As Date = e.DataTable.Compute("max(时间)")
If maxd = Nothing Then
    maxd = Date.Today
Else
        maxd = maxd.AddDays(1)
End If

e.DataRow("时间") = maxd

 

开始我用的这个代码,日期一行递增一天,但是分不了上下午


--  作者:有点甜
--  发布时间:2018/10/12 11:57:00
--  

1、必须另外用一列保存上午下午的值的。

 

2、具体上传实例,说明你要做什么功能。


--  作者:18631154510
--  发布时间:2018/10/12 12:18:00
--  

第一,我不需要引用当下日期时间,增加一行比上一行递增即可。

第二,上午下午也不需要根据时间判断,要在时间列实现的结果就是:

10月1日(星期一)上午

10月1日(星期一)下午

10月2日(星期二)上午

10月2日(星期二)下午

10月3日(星期三)上午

10月3日(星期三)下午

10月4日(星期四)上午

每增加一行自动连续递增即可


--  作者:有点甜
--  发布时间:2018/10/12 12:32:00
--  

Dim max = e.DataTable.Compute("max(第一列)")
If max = Nothing Then
    max = Format(Date.now, "MM月dd日(dddd)上午")
Else
    Dim d As Date = new Date(Date.today.year, max.Substring(0,2), max.Substring(3,2))
    If max.contains("上午") Then
        max = Format(d, "MM月dd日(dddd)下午")
    Else
        max = Format(d.adddays(1), "MM月dd日(dddd)上午")
    End If
End If

e.DataRow("第一列") = max


--  作者:18631154510
--  发布时间:2018/10/12 12:53:00
--  

调用的目标发生了异常

我讲列属性用字符,日期时间都试了


--  作者:有点甜
--  发布时间:2018/10/12 15:08:00
--  

我测试没问题。出错的实例发上来测试。