0

i have a lotus application and have a page which has two links on it:

  1. Check-In
  2. Check-Out

both links open a attendance form for daily check-in and check-out..

once the user checks-in i want to hide the check-in link and only show up check-out link...

i have a field "Status" in attendance form which tells whether employee has checked in or checked out. How do i use that field in page hide-when formula to hide my link once its clicked?

4

1 回答 1

1

首先,链接必须在单独的段落中,以便可以单独控制。

其次,您必须有一个视图,其中第一列已排序并包含用户名,然后是日常考勤文件中字段的日期。例如,它应该采用类似“Joe User/Org-01-01-12”的格式。视图中的第二列应该包含文档中的状态。为了得到这个答案,我们称该视图为“DailyAttendance”。

第三,你有三种情况:用户当天的考勤凭证不存在,存在且状态为“签到”,或存在且状态为“签出”。可能还有第四种情况,文档存在但状态既不是“签入”也不是“签出”,但您的逻辑可能应该尽量避免这种情况,无论如何我将编写隐藏时公式这样在这种情况下,两个链接都将被隐藏。

现在,在大多数情况下,用 See-When 而不是 Hide-When 来思考实际上更容易一些,所以我将把你的需求重新表述为 See-Whens。您的 See-WHen 规则是:

  1. 当当前用户和当天的每日考勤文档不存在时,查看签到热点。
  2. 当当前用户和当天存在每日考勤文档时,查看签出热点,文档中的状态字段为“签到”。

要在 hide-when 公式中使用 see-when 逻辑,您只需根据 see-when 规则编写公式,然后在其周围放置一个逻辑 not 以获得最终结果。

包含“签入”热点的段落的隐藏时间将如下所示:

key := @Name([CN];@Username) + "-" + @Text(@Today);
status := @DbLookup("Notes":"NoCache";"":"";"DailyAttendance";key;2);
notFound := @IsError(status);
seeWhen = notFound;
!(seeWHen);

大多数专业的 Notes 程序员会将其浓缩为更短的公式。我已经把它留在了一步一步的格式中,以使其尽可能明显。

包含“签出”热点的段落的隐藏时间将如下所示:

key := @Name([CN];@Username) + "-" + @Text(@Today);
status := @DbLookup("Notes":"NoCache";"":"";"DailyAttendance";key;2);
found := !(@IsError(status));
seeWhen = found & (status = "Checked In");
!(seeWhen)
于 2012-01-16T04:54:52.900 回答