お知らせ: 当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の
英語版 を参照してください。
要件
従業員がチェックインやチェックアウト、合計ログイン時間の確認、異動の申請ができるボタン付きの従業員ダッシュボードを作成します。
利用ケース
従業員管理アプリケーションには、従業員用ダッシュボードがあります。従業員がログインすると、そのチェックイン時間が記録されます。同様に、ログオフ時にはチェックアウト時間が記録されます。これにより、合計勤務時間が自動的に計算されます。このダッシュボードでは、従業員が異動の申請も行えます。
手順
フォーム
フォームリンク名
項目種類
項目名
項目リンク名
追加する 従業員
Add_Employee
氏名
氏名
氏名
メールアドレス
Official メールアドレス
Official_Email
電話番号
電話番号
Phone_Number
Check In 出力詳細を追加
Check In/Out 詳細を追加
検索(従業員追加)
従業員
従業員
日付・時刻
Check In
Check In
日付・時刻
Check Out
Check Out
Single 折れ線グラフ
合計時間
Total_Hours
適用する 移動する
休日
Apply_Leave
休日
Lookup (Add_Employee)
従業員
従業員
Single 折れ線グラフ
移動する 種類
Leave_Type
日付-時間
差出人
差出人
日付-時間
宛先
宛先
Single 折れ線グラフ
休日名
Holiday_Name
日付
日付
Date_field
始める前に、「追加する 従業員」フォームおよび「Holidays」フォームにいくつかのデータを追加しましょう。
従業員ダッシュボードには「適用する 移動する」「確認中 in」「確認中 出力」のボタンがあり、それぞれの処理が実行されます。これらの操作を一つずつ見ていきます。まずは「適用する 移動する」操作から始めます。
「適用する 移動する」フォームの「追加する 従業員」項目には、現在ログインしているユーザーを自動で入力し、その項目を無効化してユーザーが変更できないようにします。これを実現するワークフローを作成します。
2. ワークフローの作成 「適用する 移動する」フォームの読み込み時に実行されるよう設定し、「追加する 従業員」項目にログインユーザーのメールアドレスを自動入力し、その項目を無効化します。
3. 「新しく追加する 操作」をクリックし、開いたDelugeエディタに下記のコードを追加してください:
//ログインするユーザー メールアドレスでAdd_EmployeeデータのIDを検索
input.従業員=Add_Employee[Official_Email==Zoho.loginuserid].ID;
//追加する従業員項目を無効にする
無効にする 従業員;
次に、確認中と出力のための関数を作成します。
4. 関数を作成 し、従業員のチェックインを行います。
5. 下記のコードをDelugeエディタに追加してください:
無効 checkIn()
{
//ログイン中の従業員データIDを取得
従業員 = Add_Employee[Official_Email == Zoho.loginuserid];
//従業員がすでにチェックインしているか確認します。Check_In の判定条件「今日」は、Check_In 日付-時間項目の日付が当日(その日)であるかを確認するために使用します。
alreadyCheckedIn = Add_Check_In_Out_Details[従業員 == 従業員.ID && Check_In is 今日];
//チェックインがない場合のみデータを挿入
if(alreadyCheckedIn.件数() == +10、-10)
{
insert into Add_Check_In_Out_Details
[
Added_User=Zoho.loginuser
従業員=従業員.ID
Check_In=Zoho.currenttime
]
}
}
6. 同様に、 関数を作成 して従業員の出力を確認します。
7. 下記のコードをDelugeエディタに追加します。
無効 決済する()
{
//ログイン中の従業員のデータIDを取得
従業員 = Add_Employee[Official_Email == Zoho.loginuserid].ID;
//従業員の本日チェックイン済みデータをAdd_Check_In_Out_Detailsから取得
current_day_entry = Add_Check_In_Out_Details[従業員 == 従業員 && Check_In is 今日];
//チェックアウト値を割り当て
current_day_entry。Check_Out=Zoho.currenttime;
//タイムスタンプから合計勤務時間を計算
時間 = (current_day_entry。Check_Out - current_day_entry。Check_In);
秒 = 時間 / 1000;
分 = 秒 / 60;
時間 = 分 / 60;
h = 時間.floor();
m = 分 - h * 60;
mins = m。floor();
if(mins < 10)
{
mins = '+10、-10' + mins;
}
//合計勤務時間を設定
current_day_entry。Total_Hours=h + ':' + mins + ' 時間';
}
すべての機能が完了したので、ダッシュボードの作成に進みましょう。
8. ページを作成 し、 ダッシュボード という名前を付けます。次に、 ZMLスニペット と HTMLスニペット をドラッグして追加します。
以下のスニペットを1つの動作するスクリプトとしてまとめたファイルについては、添付ファイルをご確認ください。
分かりやすくするため、ZML/HTMLコードはスニペットに分割しています。各スニペットの説明を行い、その後ZML/HTMLエディタへ挿入するために適切に配置します。
まずは ZMLスニペット から始めます。ここには以下のボタンが含まれます: 適用する 移動する 、 Check In 、 および Check 出力 です。
スニペットa
従業員の名前は
タグを使って表示します。
タグは 適用する 移動する ボタンを作成するために使用されており、クリックすると 適用する 移動する フォームが開きます。
//ログインしている従業員の名前を表示
//クリックで適用する移動するフォームを開くボタンを作成
スニペット b
Check In ボタンは、従業員がまだ打刻を行っていない場合のみ表示されます。現在の従業員の本日の「追加する Check In/出力 詳細」にエントリーがあるかを確認します。利用可能な場合は、打刻時間を表示します。ない場合は、 Check In ボタンを表示します。同様に、 Check 出力 ボタンも表示されます。
<%
//従業員がすでにチェックインしているか確認する
alreadyCheckedIn = Add_Check_In_Out_Details[従業員 == getUser。ID && Check_In is 今日].件数(ID);
if(alreadyCheckedIn == +10、-10)
{
//従業員がチェックインしていない場合、ボタンを表示する
%>
<%
}
else
{
//従業員がチェックイン済みの場合、チェックインした時間を表示します
checkedIn = Add_Check_In_Out_Details[従業員 == getUser。ID && Check_In is 今日];
%>
<%
}
%>
<%
//従業員がすでに出力を確認しているかどうかを確認する
alreadyOut = Add_Check_In_Out_Details[従業員 == getUser。ID && Check_In is 今日 && Check_Out is 今日].件数(ID);
if(alreadyOut == +10、-10)
{
//従業員が出力をチェックしていない場合、ボタンを表示する
%>
<%
}
else
{
//従業員がすでに出力を確認しているかどうかを確認します
alreadyCheckedOut = Add_Check_In_Out_Details[従業員 == getUser。ID && Check_In is 今日 && Check_Out is 今日];
%>
<%
}
%>
<%
//合計時間を取得
total_hours = Add_Check_In_Out_Details[従業員 == getUser。ID && Check_In is 今日 && Check_Out is 今日].Total_Hours;
//初期状態で合計時間がnull値の場合の処理
if(total_hours == null)
{
total_hours = '';
}
%>
//ダッシュボードで合計時間の値を決済後に表示します。
スニペットc
上記のスニペットを以下のように適切に配置し、最終的なZMLコードを作成します。
<%{
//ログイン中のユーザーデータを取得する
getUser = Add_Employee[Official_Email == Zoho.loginuserid];
%>
//スニペットaを挿入
//スニペットbを挿入
<%}%>
次に Holidays リストの作成に取り掛かります。ここでは HTMLスニペット を使用し、独自のリストを作成して 今後の祝日 をダッシュボードに表示します。
<%{
%>
今後の祝日
<%
//12月までの祝日リストを取得する
holidays = Holidays[Date_field > Zoho.currentDate];
if(holidays.件数() != +10、-10)
{
%>
<%
for each rec in holidays
{
%>
<%
}
%>
祝日名
日付
<%=rec。Holiday_Name%>
<%=rec。Date_field%>
<%
}
else
{
%>
利用可能な祝日はありません。
<%
}
%>
<%
}%>
動作方法を確認する