やること「日数を計算する」と、土日祝日、またはお盆休みや年末年始休暇などの非営業日を登録したマスタアプリを組み合わせることで実現可能です。
同様に、休日を指定した場合はエラーを表示する「非営業日はエラー、のような指定はできますか?」もご覧ください。
カスタマイズ例:ボタンを押すと受注日から発送日までの営業日をカウントする
非営業日の日付を登録したマスタアプリと、営業日カウントを利用するアプリを用意します。
なお、フィールド名とフィールドコードは同じに設定しています。
非営業日マスタアプリ
日付フィールドに非営業日、説明フィールドに「日曜日」「お盆休み」のような休みについての説明を入力しています。
このアプリに登録した日を非営業日とみなします。
土曜日、日曜日、祝日など、非営業日としたい日付をすべて登録しておきます。
営業日カウントアプリ
「開始日」、「終了日」は日付フィールド、営業日数は数値フィールドです。
ボタンを配置するためのスペースを「終了日」フィールドの右横に作成しました。
スペースの要素IDは「btn」です。
完成例
「開始日」、「終了日」を入力してから「営業日カウント」ボタンを押すと、営業日のみをカウントした日数が「営業日数」フィールドにセットされます。
カスタマイズ作成
営業日カウントアプリにカスタマイズを追加します。
スペースにボタンを配置する
やること
「ボタンをスペースに配置する」を選択します。
場所は「btn」、ラベルは「営業日計算」を指定しました。
条件
「追加画面・編集画面を表示した時」を選択します。
ボタンが押されたら、まずは営業日・非営業日関係なく日数を計算する
やること
まずは非営業日関係なく、開始日時から終了日時までの日数を計算したいので「日数を計算する」を選択します。
開始日は「開始日」、終了日は「終了日」フィールドを指定しました。
条件
ボタンを押した時に計算したいので「ボタンを押した時」を選択しました。
ボタンには「1」を指定します。
また、開始日、終了日フィールド両方に日付が入力されている時だけ計算したいので「複数フィールドが全て同じ条件を満たすならば」を選択します。
フィールドは「開始日」「終了日」、条件は「等しくない」、比較値には何も入力せずに置きます。
非営業日マスタから開始日と終了日の間にある非営業日を取得する
やること
「クエリで条件を指定してレコードを取得する」を選択します。
取得先アプリは「非営業日マスタ」を指定します。
検索条件に指定するのは、非営業日マスタの「日付」フィールドの値が、営業日カウントアプリの「開始日」以上、かつ「終了日」以下であることなので、下記のように指定します。
日付 >= "${開始日}" and 日付 <= "${終了日}"
最大取得件数には何も入力しません。
条件
日数の計算が終わってから処理を行いたいので「他のアクションの実行が完了した時」を選択します。
アクションには「2」を指定しました。
非営業日マスタから取得されたレコード数(つまり非営業日の数)を取得する
やること
非営業日マスタから取得したレコード数をカウントしたいので「レコード行数をカウントする」を選択します。
レコード選択アクションは「3」を指定しました。
条件
非営業日マスタからのレコード取得が完了してから処理を行いたいので「他のアクションの実行が完了した時」を選択します。
アクションには「3」を指定しました。
営業日の日数を計算する
やること
アクションNo.2で取得した日数からアクションNo.4で取得した非営業日数を引き、営業日数を計算します。
その結果を「営業日数」フィールドにセットしたいので「フィールドに値をセットする」を指定します。
値には「= $2 - $4」と指定しました。
条件
非営業日数の取得が完了してから計算したいので「他のアクションの実行が完了した時」を選択します。
アクションには「4」を指定しました。
以上でカスタマイズは完了です。
営業日カウントアプリの詳細画面で「営業日カウント」ボタンを押すと、非営業日を除いた日数が計算され、「営業日数」フィールドにセットされます。