2012-01-14 215 views
0

我有一個蓮花應用和具有上有兩個鏈接的頁面:如何隱藏點擊鏈接熱點?

  1. 辦理
  2. 退房

兩個鏈接打開每日入住和退房的出席表格..

一旦用戶登記我想隱藏入住鏈接,只顯示了退房的鏈接...

我有一個字段「狀態」出席形式告知員工是否有簽入或簽出。 如何在頁面隱藏時使用該字段 - 當公式一旦點擊時隱藏我的鏈接?

回答

1

首先,鏈接必須在單獨的段落中,以便它們可以分開控制。

其次,您必須有一個視圖,其中第一列是排序的,並且包含用戶名,然後是日常出勤文檔中字段的日期。例如,它應該是像「Joe User/Org-01-01-12」這樣的格式。視圖中的第二列應具有來自文檔的狀態。爲了這個答案,我們稱之爲「DailyAttendance」。

第三,你有三種情況:用戶在當天的出勤文件不存在,它確實存在,狀態是「簽入」,或者它確實存在,狀態是「簽出」。可能有第四種情況,文檔存在但狀態既不是「簽入」也不是「簽出」,但是你的邏輯應該儘量避免這種情況,無論如何我會寫隱藏時公式因此在這種情況下兩個鏈接都將隱藏起來。

現在,在大多數情況下,用See-When而不是Hide來思考它實際上更容易一些。因此,我將重新聲明您的需求爲See-Whens。您的See-WHen規則如下:

  1. 噹噹前用戶和當天的日常出勤文檔不存在時,請參閱簽入熱點。
  2. 噹噹前用戶和當天的日常出勤文檔存在並且文檔中的狀態字段爲「簽入」時,請參閱退出熱點。

要在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); 

大多數專家指出程序員會凝結到這一個較短的公式。我已經將它留在一步一步的格式中,使其儘可能地顯而易見。

你捉迷藏時爲包含「退房」熱點看起來像這樣的段落:

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

謝謝!它很好! – Bebo 2012-01-16 07:08:19

+0

但我怎麼刷新頁面???只有在我刷新頁面時纔會更改鏈接...是否有刷新頁面的方法?我試圖呼叫gUIDoc.RefreshHideFormulas但頁面上沒有得到文件... – Bebo 2012-01-17 06:14:54

+0

嗯....我會說,你應該使用操作熱點和調用的urlopen然後命令([RefreshHideFormulas]),但如果UIDoc.RefreshHideFormulas方法是不行的,我的猜測是,該命令將不能工作。你可以在這種情況下使用表單而不是頁面嗎? (注意省略的跡象,因爲StackOverflow上不評論喜歡他們。) – 2012-01-18 05:04:15