0

私は蓮のアプリケーションを持っていて、それに2つのリンクがあるページがあります:

  1. チェックイン
  2. チェックアウト

どちらのリンクも、毎日のチェックインとチェックアウトのための出席フォームを開きます。

ユーザーがチェックインしたら、チェックインリンクを非表示にして、チェックアウトリンクのみを表示したい...

出席フォームに「ステータス」フィールドがあり、従業員がチェックインしたかチェックアウトしたかがわかります。ページ非表示でそのフィールドを使用するにはどうすればよいですか?クリックするとリンクを非表示にする数式はいつですか?

4

1 に答える 1

1

まず、リンクを個別に制御できるように、リンクは個別の段落に含める必要があります。

次に、最初の列がソートされ、ユーザー名の後に毎日の出席文書のフィールドの日付が続くビューが必要です。たとえば、「JoeUser/Org-01-01-12」のような形式にする必要があります。ビューの2番目の列には、ドキュメントのステータスが含まれている必要があります。この答えのために、そのビューを「DailyAttendance」と呼びましょう。

第3に、この日のユーザーの出席文書が存在しないか、存在してステータスが「チェックイン」であるか、存在してステータスが「チェックアウト」であるかの3つのケースがあります。ドキュメントは存在するが、ステータスが「チェックイン」でも「チェックアウト」でもない4番目のケースがあるかもしれませんが、ロジックはおそらくそれを回避しようとする必要があります。いずれの場合も、非表示の数式を記述します。その場合、両方のリンクが非表示になります。

さて、ほとんどの場合、Hide-WhenではなくSee-Whenの観点から考える方が実際には少し簡単です。そのため、要件をSee-Whenとして言い換えます。See-WHenルールは次のとおりです。

  1. 現在のユーザーと現在の日の毎日の出席文書が存在しない場合は、チェックインホットスポットを参照してください。
  2. 現在のユーザーと現在の日の毎日の出席ドキュメントが存在し、ドキュメントの[ステータス]フィールドが[チェックイン]の場合は、チェックアウトホットスポットを参照してください。

非表示の数式でsee-whenロジックを使用するには、see-whenルールに基づいて数式を記述し、その周りに論理を配置して最終結果を得るだけです。

「チェックイン」ホットスポットを含む段落の非表示は次のようになります。

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 に答える