以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]求助Excel函数 转换成 狐表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=94331)

--  作者:misamisali
--  发布时间:2016/12/21 11:52:00
--  [求助]求助Excel函数 转换成 狐表
月开始,应该是本月第一天
图片点击可在新窗口打开查看此主题相关图片如下:函数1.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:函数22.png
图片点击可在新窗口打开查看


--  作者:有点色
--  发布时间:2016/12/21 12:10:00
--  

 必须写代码处理。

 

http://www.foxtable.com/webhelp/scr/0681.htm

 

 具体问题上传foxtable实例。


--  作者:misamisali
--  发布时间:2016/12/21 14:35:00
--  
我写的代码是这样,但是不正确?
想实现的效果是:“入司日期”< "本月第一天" 且 "离职日期" 为空值 或 “离职日期”大于等于 “本月第一天” 则
“前月末在职” 填入 “1”

Dim dq As DataRow = e.DataRow
Dim FirstDay As Date = New Date (Date.Today.Year,Date.Today.Month,1)
Dim LastDay As Date = New Date (Date.Today.Year,Date.Today.Month,Date.DaysInMonth(Date.Today.Year,Date.Today.Month))
Dim dt As DataTable =DataTables("员工信息表")
If e.DataCol.Name = "前月末在职" And dq.IsNull("前月末在职") = False Then
   If dq("入司日期") <  FirstDay  And dq("离职日期") IsNothing Or dq("离职日期") >= FirstDay Then
   dq("前月末在职") = "1"
       
End If
End If


--  作者:有点色
--  发布时间:2016/12/21 15:00:00
--  

Dim dq As DataRow = e.DataRow

If e.DataCol.Name = "前月末在职" And dq.IsNull("前月末在职") = False Then
    Dim FirstDay As Date = New Date (Date.Today.Year,Date.Today.Month,1)
    Dim LastDay As Date = firstDay.AddMonths(1)
    If dq("入司日期") <  FirstDay  AndAlso (dq.isnull("离职日期") = False OrElse dq("离职日期") >= FirstDay) Then
        dq("前月末在职") = "1"      
    End If
End If


--  作者:misamisali
--  发布时间:2016/12/21 17:14:00
--  
这个代码是什么原因, 就是我想实现: 
如果当月底之前依然在职,则dr5("当月末在职") ="1",我感觉代码没问题啊,怎么执行效果不对。

Dim dr5 As DataRow = e.DataRow
Dim FirstDay As Date = New Date (Date.Today.Year,Date.Today.Month,1)
Dim LastDay As Date = New Date (Date.Today.Year,Date.Today.Month,Date.DaysInMonth(Date.Today.Year,Date.Today.Month))
Dim dt As DataTable =DataTables("员工信息表")

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

If ((dr5("入司日期") <= LastDay) AndAlso ((dr5.isnull("离职日期") =False) OrElse (dr5("离职日期") > LastDay ))) Then
    dr5("当月末在职") ="1"
Else
    dr5("当月末在职") ="0"
End If

--  作者:有点色
--  发布时间:2016/12/21 17:26:00
--  

写完代码以后,记得重置列。

 

Dim dr5 As DataRow = e.DataRow
Dim FirstDay As Date = New Date (Date.Today.Year,Date.Today.Month,1)
Dim LastDay As Date = firstday.AddMonths(1)
If ((dr5("入司日期") < LastDay) AndAlso ((dr5.isnull("离职日期") =False) OrElse (dr5("离职日期") > LastDay ))) Then
    dr5("当月末在职") ="1"
Else
    dr5("当月末在职") ="0"
End If


--  作者:misamisali
--  发布时间:2016/12/21 17:37:00
--  
代码不对,麻烦看下案例,
就是实现 如果在职“前月末在职”=1,否则 =0 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:代码不对案例.zip


--  作者:有点色
--  发布时间:2016/12/21 18:13:00
--  
Dim dr5 As DataRow = e.DataRow
Dim FirstDay As Date = New Date (Date.Today.Year,Date.Today.Month,1)
Dim LastDay As Date = firstday.AddMonths(1)
If ((dr5("入司日期") < LastDay) AndAlso (dr5.isnull("离职日期") OrElse dr5("离职日期") > LastDay )) Then
    dr5("当月末在职") ="1"
Else
    dr5("当月末在职") ="0"
End If