求一个解决思路

fleecat 2006-11-29 11:50:08
某数据库 若干文档 文档有时间/日期域来标明预定的处理时间

需要一个视图 列出所有超过4工作日未处理的文档



我的想法 在视图的 Initialize 里面写lotusscript

计算出各文档是否过期 (已经试验好了)

声称一个临时域 标明是否过期

然后视图选择里面 把这个临时域作为条件

大家看这样的顺序行么?
...全文
265 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fleecat 2007-03-30
  • 打赏
  • 举报
回复
我都说了是工作日啊 直接按照日历算怎么行?
wjzmy 2006-12-04
  • 打赏
  • 举报
回复
你可以拿当前时间减去创建时间再除以86400,小于或是等于4的即符合要求,一楼是正解
fleecat 2006-11-30
  • 打赏
  • 举报
回复
工作日 我想不出用公式怎么计算

公共假日是国家定的 我这里统统是手动添加

代码如下

Dim session As New notessession
Dim db As notesdatabase
Dim strFilePath As String


Dim i As Integer '循环变量
Dim Int_Days As Integer '总间隔天数
Dim Int_Workdays As Integer '间隔的工作日

Dim doc1 As notesdocument
Dim doc2 As notesdocument

Dim Date_Begin As NotesDateTime '起始日
Dim Date_End As NotesDateTime '结算日
Dim Date_Variant As NotesDateTime '临时日

Dim CalendarDb As notesdatabase '基本信息日
Dim view1 As notesview
Dim view2 As notesview
Dim Str_Date As String '日期字符串



Set db=session.currentdatabase
strFilePath="calendar.nsf"
Set CalendarDb = New notesdatabase(db.server,strFilePath)
Set view1=Calendardb.getview("holiday")
Set view2=Calendardb.getview("workday")

Set Date_Begin = New NotesDateTime( "Today" )
Set Date_End = New NotesDateTime( "27/09/2006" )

Int_Days = Date_Begin.TimeDifference(date_end)/86400 '计算间隔总天数
Set Date_Variant = New NotesDateTime(Date_Begin.DateOnly) '变量日期指向第一天
Int_Workdays = 0

For i = 1 To Int_Days
Call Date_Variant.AdjustDay(1,True) '日期向后移一天
If Weekday(date_Variant.DateOnly )=1 Or Weekday(Date_Variant.DateOnly )=7 Then '如果是周末
Set doc1=view2.GetFirstDocument
Do While Not(doc1 Is Nothing)
Str_Date = doc1.workday(0)
If Date_Variant.DateOnly = Format(Str_Date,"yyyy-mm-dd") Then
Int_Workdays = Int_Workdays + 1 '如果是工作日则加1天
Exit Do
End If
Set doc1=view2.GetNextDocument(doc1)
Loop
Else '如果不是周末
Set doc2=view1.getfirstdocument
Int_Workdays = Int_Workdays + 1 '不是 周末加1天
Do While Not(doc2 Is Nothing)
Str_Date = doc2.holiday(0)
If Date_Variant.DateOnly = Format(Str_Date,"yyyy-mm-dd") Then
Int_Workdays = Int_Workdays - 1 '如果是节假日则再减掉
Exit Do
End If
Set doc2=view1.GetNextDocument(doc2)
Loop
End If

Next

Print Int_Workdays
lonsh_yf 2006-11-29
  • 打赏
  • 举报
回复
select form=FormName & @date(@Adjust(@now;0;0;-4;0;0;0))>@date(@texttotime(文档中标明处理时间的域))
wangjinghui1981 2006-11-29
  • 打赏
  • 举报
回复
同意楼上的
tobyzhou 2006-11-29
  • 打赏
  • 举报
回复
select form=FormName & @date(@Adjust(@now;0;0;4;0;0;0))<@date(@texttotime(文档中标明处理时间的域))
把这个作为条件就可以了吧,不需要那么麻烦

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧