勤怠入力システムを作成してみた(2)
Office365PowerApps&Flow
Office365(Powerapps & Flow)で勤怠入力システムを作成してみた(2)
今月の勤怠照会画面
「今月の勤怠」画面
当月の勤怠状況を一覧で表示します。ここでは照会のみを行います。入力間違い等のための修正機能がほしいところですが、当面は作成しないこととします。入力間違いをした場合は、正しいものを再度入力し、間違った勤怠情報を管理者にsharepointで削除してもらう運用とします。

当月の勤怠のコントロールを配置すると、以下の画面となる

各コントロールの設定
| 名称 | コントロール | 説明 | 詳細設定 | |
| LBL_NowListTTL | ラベル | 画面タイトル | Size=24 Align =Align.Center |
|
| ICON_NowListEnd | アイコン | 当月の勤怠の終了 | OnSelect=Back() | |
| GAL_NowList | ギャラリー | 「勤怠」リスト | レイアウト=空白 表示するデータ(※1) Item= Sort( Filter(勤怠, Author.Email=User().Email, Value(TMC_Month)=G_ToMonth), TMC_WorkIn,Descending) |
|
| NowWorkIn1 | ラベル | 「勤怠」リストの「出勤時間」項目 | Text= Text(ThisItem.TMC_WorkIn,”[$-ja-JP]yyyy/mm/dd hh:mm”) | |
| NowWorkOut1 | ラベル | 「勤怠」リストの「退勤時間」項目 | Text(ThisItem.TMC_WorkOut,”[$-ja-JP]yyyy/mm/dd hh:mm”) | |
| NowTime1 | ラベル | 「勤怠」リストの「時間」項目 | Text=ThisItem.TMC_WorkTime | |
| NowSep1 | 四角形 | 行ごとのセパレート線 | ||
※1 当月の勤怠一覧を表示するデータの条件は、「勤怠」リストの登録者がログインユーザーと同一のデータで当月の項目が本日の月と同じデータとする。表示順は出勤日時の降順。その設定は、ギャラリー(GAL_NowList)のitemプロパティに以下の設定を行う。
Sort(Filter(勤怠,Author.Email=User().Email,Value(TMC_Month)=G_ToMonth),
TMC_WorkIn,Descending)
メニュー画面の「当月の勤怠」ボタンクリック時の設定
「当月の勤怠」画面へ遷移(Navigate)
変数G_ToMonthに現在の年月を設定、(set)
| 名称 | コントロール | 説明 | 詳細設定 |
| BTN_Month | ボタン | 当月の勤怠へ | OnSelect= Navigate(SCR_NowList,ScreenTransition.None); Set(G_ToMonth,Year(Today())*100+Month(Today())) |
前月の勤怠照会画面
「前月の勤怠」画面
前月の勤怠状況を一覧で表示します。ここでは照会のみを行います。
当月と前月の照会しか用意していないのは、要件として不要と判断したためです。

前月の勤怠のコントロールを配置すると、以下の画面となる

各コントロールの設定
| 名称 | コントロール | 説明 | 詳細設定 | |
| LBL_BeforeListTTL | ラベル | 画面タイトル | Size=24 Align =Align.Center |
|
| ICON_BeforeListEnd | アイコン | 前月の勤怠の終了 | OnSelect=Back() | |
| GAL_BeforeList | ギャラリー | 「勤怠」リスト | レイアウト=空白 表示するデータ(※1) Item= Sort( Filter(勤怠, Author.Email=User().Email, Value(TMC_NMonth)=G_ToMonth), TMC_WorkIn,Descending) |
|
| BeforeWorkIn1 | ラベル | 「勤怠」リストの「出勤時間」項目 | ext= Text(ThisItem.TMC_WorkIn,”[$-ja-JP]yyyy/mm/dd hh:mm”) | |
| BeforeWorkOut1 | ラベル | 「勤怠」リストの「退勤時間」項目 | Text(ThisItem.TMC_WorkOut,”[$-ja-JP]yyyy/mm/dd hh:mm”) | |
| BeforeTime1 | ラベル | 「勤怠」リストの「時間」項目 | Text=ThisItem.TMC_WorkTime | |
| BeforeSep1 | 四角形 | 行ごとのセパレート線 | ||
※1 前月の勤怠一覧を表示するデータの条件は、「勤怠」リストの登録者がログインユーザーと同一のデータで次月の項目が本日の月と同じデータとする。表示順は出勤日時の降順。
その設定は、ギャラリー(GAL_BeforeList)のitemプロパティに以下の設定を行う
Sort( Filter(勤怠,Author.Email=User().Email,Value(TMC_NMonth)=G_ToMonth),
TMC_WorkIn,Descending)
メニュー画面の「前月の勤怠」ボタンクリック時の設定
「前月の勤怠」画面へ遷移(Navigate)
変数G_ToMonthに現在の年月を設定、(set)
| 名称 | コントロール | 説明 | 詳細設定 |
| BTN_NMonth | ボタン | 前月の勤怠へ | OnSelect= Navigate(SCR_BeforeList,ScreenTransition.None); Set(G_ToMonth,Year(Today())*100+Month(Today())) |
休暇申請の入力画面
「休暇申請」画面
休暇申請の入力を行います。
入力項目は、
承認ルート:「承認ルート」リストに登録された承認ルートを選択
休暇区分 :sharepointリストで設定した選択肢から選択
期間(自):日時を入力
期間(至):日時を入力
休暇事由 :休暇申請の申請内容を入力
「登録」ボタンで、sharepointに登録される。以降承認フローに廻るが、PowerAppsからのFlowではなく、sharepointに登録されたらフローを開始するように構成します。

休暇申請のコントロールを配置すると、以下の画面となる

各コントロール設定
| 名称 | コントロール | 説明 | 詳細設定 | |
| LBL_VacReqTTL | ラベル | 画面タイトル | Size=24 Align =Align.Center |
|
| ICON_VacReqEnd | アイコン | 出勤入力の終了 | OnSelect=Back() | |
| BTN_VacReqEntry | ボタン | 休暇申請の登録 | SubmitForm(FRM_VacReq); Back(); |
|
| FRM_VacReq | フォーム | 「休暇申請」リスト | 縦で1列表示レイアウト | |
| Titile_DataCard3 | データカード | 「休暇申請」リストの「休暇申請」項目 | 表示専用: DisplayMode=DisplayMode.View |
|
| HOL_Aroot_DataCard1 | データカード | 「休暇申請」リストの「承認ルート」項目 | ||
| HOL_Kubun_DataCard1 | データカード | 「休暇申請」リストの「期間(自)」項目 | ||
| HOL_StartDate_DataCard1 | データカード | 「休暇申請」リストの「期間(至)」項目 | ||
| HOL_EndDate_DataCard1 | データカード | 「休暇申請」リストの「休暇事由」項目 | ||
| HOL_Comment_DataCard1 | データカード | 「休暇申請」リストの「休暇区分」項目 | ||
メニュー画面の「休暇申請」ボタンクリック時の設定
休暇申請入力画面のフォームをリセット(ResetForm)
休暇申請入力画面のフォームを追加モードに設定(NewForm)
休暇申請入力画面へ遷移(Navigate)
| 名称 | コントロール | 説明 | 詳細設定 |
| BTN_Holiday | ボタン | 休暇申請入力へ | OnSelect= ResetForm(FRM_VacReq); NewForm(FRM_VacReq); Navigate(SCR_VacReq, creenTransition.None) |
上記設定後の画面

休暇申請を入力する

各入力項目を入力し、「登録」ボタンをクリックする
以下の通り、Sharepointの「休暇申請」リストに登録される

以上で、PowerAppsでの勤怠入力の制作は終了です、次は、休暇申請の入力後の承認ワークフローについて説明します。
