单击后如何隐藏链接热点?

时间:2012-01-14 06:00:22

标签: lotus lotus-formula

我有一个莲花应用程序,并且有一个页面上有两个链接:

  1. 登记
  2. 检查-退出
  3. 这两个链接都会打开一张每日登记入住和退房的出勤表格。

    一旦用户登记,我想隐藏登记链接,只显示结账链接......

    我在考勤表格中有一个字段“ 状态 ”,表示员工是否已登记或结帐。 如何在页面隐藏时使用该字段 - 何时公式隐藏我的链接一旦被点击?

1 个答案:

答案 0 :(得分:1)

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

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

第三,您有三种情况:当天用户的出勤文件不存在,确实存在且状态为“已签入”,或者确实存在状态为“已检出”。可能存在第四种情况,其中文档存在,但状态既不是“已签入”也不是“已签出”,但您的逻辑可能应该尝试避免这种情况,并且在任何情况下我都要编写hide-when公式这样在这种情况下两个链接都将被隐藏。

现在,在大多数情况下,根据See-When而不是Hide来实际上更容易思考 - 当我这样做时,我将重新陈述您的要求,如See-Whens。您的See-WHen规则是:

  1. 当当前用户和当天的每日考勤文件不存在时,请参阅“登记热点”。
  2. 当当前用户和当天存在每日考勤文档时,请查看签出热点,并且文档中的状态字段为“已签入”。
  3. 要在hide-when公式中使用see-when逻辑,只需根据see-when规则编写公式,然后为最终结果放置一个逻辑而不是它。

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

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

    大多数专家Notes程序员会将其浓缩为更短的公式。我已经逐步将其保留下来,以使其尽可能明显。

    包含“Check-Out”热点的段落的隐藏时间如下所示:

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