やること「ランダムな文字列を生成する」を使用して、抽選アプリを作成する方法をご紹介します。
この記事では下記の2パターンについてご紹介します。
パターンA:抽選対象をレコードで管理
パターンB:抽選対象をテーブルで管理
パターンA:抽選対象をレコードで管理
kintoneアプリの設定
kintoneアプリのフィールドは、下記のように設定しました。
抽選対象1件につき1レコードを作成します。
フィールドタイプや初期値は下記の通りで、フィールドコードはフィールド名と同じです。
抽選用の一覧を作成しておきます。
「抽選対象」フィールドが「対象」のレコードだけに絞って表示しています。
実行結果
一覧画面「抽選用」で「抽選開始」ボタンを押すとランダム文字列を作成し、その文字列の順番に並べた5件を当選にします。
ランダム文字列は実行するたびに変わるため、何度も「抽選開始」ボタンを押すと、その都度当選対象は変わります。
カスタマイズ
まず、やること「ボタンをメニュー位置に配置する」で、抽選用の一覧画面にボタンを配置します。
やること「一覧の条件でレコードを全件取得する」で、一覧の条件でレコードを取得し、やること「読み込み中画面を表示する」で抽選中は画面の操作ができないようにします。
一覧にレコードがなかった場合は、やること「情報ダイアログを表示する」でその旨表示します。
一覧のレコードを取得できたら、やること「レコードを書き出す」で一旦すべてのレコードを「落選」にしておきます。
やること「リストから要素を取り出す」で、アクション145で取得したレコードを「リスト」に指定します。
そして、やること「ランダムな文字列を生成する」で生成した文字列を、やること「レコードを更新または追加する(キーの値を直接指定)」でリストから取り出したレコードの「ランダム文字列」フィールドにセットします。
アクション147~149を、アクション145で取得したレコードの件数ぶん繰り返します。
やること「リストから要素を取り出す」の繰り返しが終了した時の条件「リストからの取り出しが終了した時」に、ランダム文字列をセット後のレコードを改めて取得します。
やること「条件を組み立ててレコードを取得する」で下記のように指定します。
検索条件
レコード番号が、アクション145で取得したレコードのレコード番号と等しい(アクション145と同じレコードを取得する)
並び順
ランダム文字列フィールドの値の昇順(ボタンをクリックするたびに毎回ランダム文字列が変わるため、取得されるレコードの順番も毎回変わる)
最大取得件数
当選にしたいレコード数を指定する(今回は5件)
そして、取得したレコードを やること「レコードを書き出す」で、当選結果に「当選」とセットすれば、ランダムなレコードに「当選」がセットできます。
最後に「画面をリロードする」で、当選結果を画面に表示します。
パターンB:抽選対象をテーブルで管理
kintoneアプリの設定、実行結果
テーブル外に当選人数を入力する数値フィールドを配置し、
テーブル内には下記のフィールドを配置しておきます。
行番号(数値)
名前、テーブル内ランダム文字列、テーブル内結果(文字列(1行))
カスタマイズ実行前に入力するのは「名前」フィールドだけで、残りのフィールドはカスタマイズで値をセットします。
カスタマイズ
やること「ボタンをフィールド名の右に配置する」などでボタンを配置します。
また、今回のカスタマイズは、追加画面または編集画面でしか実行できない(詳細画面や一覧画面では使用できない)ので、条件は「追加画面・編集画面を表示した時」を指定します。
条件「ボタンを押した時」に、やること「ランダムな文字列を生成する」で、テーブル内の「テーブル内ランダム文字列」フィールドにランダムな文字列をセットします。
この やること は、「セット先フィールド(省略可)」にテーブル内のフィールドを指定すると、テーブル内の全行にランダムな値をセットします。
次に、やること「テーブルの行を並べ替える」で、「テーブル内ランダム文字列」フィールドの値で並べ替えます。こちらはパターンAの時と同様に、ランダムな文字列で並べ替えることで、ボタンをクリックするたびに順番が変わります。
次に、当選結果をフィールドにセットするカスタマイズを行います。
やること「テーブルの列に行番号をセットする」で、テーブル内の「行番号」フィールドに、上から順番に1から始まる番号をセットします。
そして、やること「フィールドに値をセットする」のアクションの条件に「フィールド値が特定の値ならば」を指定し、行番号フィールドの値が、テーブル外の「当選人数」フィールドの値以下の場合は当選、そうではない場合は落選とセットします。
このようにカスタマイズいただくと、テーブル内の行内で「当選人数」で指定した行数だけ「当選」がセットされます。
カスタマイズは以上です。
ぜひお試しくださいね。
お試しいただいて、想定通り動作しないなどありましたら、チャットでお問合せください。