前回作成した営業支援アプリ(タブレット)の機能拡張をします。
上記アプリの機能では、既存レコードのアップデートはできますが新規値の追加はできないようになっています。
そこで今回はそう言う新規レコードの追加機能を作っていきます。
ポイントとなるのは、以下の項目です。
- 新しく起票する伝票番号の自動採番 (Number sequence)
- 新しいフォームの追加
- フォームの送信、登録
目次
レコード参加作成機能の実装
Addアイコンをヘッダーに挿入します。
このAddアイコンに以下の関数を設定します。
Form1というのは、詳細として表示してある右側のフォーム部分を指します。同時にSelectedItem変数をBlankにしておきます。
NewForm(Form1);
UpdateContext({SelectedItem:Blank()});
UpdateContext({ThisRecordNumber: CountRows(営業案件.ID) + 1});
UpdateContext({ThisRecordNumberLength: Len(Text(ThisRecordNumber))});
If(
ThisRecordNumberLength=1,
UpdateContext({CreatedRecordNumber: "SAL0000" & Text(ThisRecordNumber)}),
ThisRecordNumberLength=2,
UpdateContext({CreatedRecordNumber: "SAL000" & Text(ThisRecordNumber)}),
ThisRecordNumberLength=3,
UpdateContext({CreatedRecordNumber: "SAL00" & Text(ThisRecordNumber)}),
ThisRecordNumberLength=4,
UpdateContext({CreatedRecordNumber: "SAL0" & Text(ThisRecordNumber)}),
ThisRecordNumberLength=5,
UpdateContext({CreatedRecordNumber: "SAL" & Text(ThisRecordNumber)})
)
今登録済みのレコード数をカウントして、それに1足してThisRecordNumber変数に格納します。
桁数を数えて、その分だけの0を足してから採番して行くようにします。
Swith関数でもできそうですが、このOnSelectプロパティに関してはFunctionが有効になりませんでしたのでIf関数を使ってます。原因究明中…
さて、上記の関数によりAddアイコンをクリックすることによりCreatedRecordNumberに新しい伝票番号が採番、格納されていることになります。
ここで注意したいのが、営業案件IDに設定するときにDefaultプロパティに単純にCreatedRecordNumber変数を入れてはいけないということです。
もし入れると、登録済みのRecordをアップデートするときにも格納されている値でDefaultを取ってしまいます。
変数に値が入ってないとブランクが入ってしまうことになります。
そこで、そもそもこのレコードの営業案件IDには値が入っているのかどうかを検証して、入っていないなら採番するようにしてあげれば良いです。
営業案件IDにおけるDefaultプロパティに以下のように設定します。
If(IsBlank(ThisItem.営業案件ID), CreatedRecordNumber, ThisItem.営業案件ID)
ただ、この採番のやり方はほんの一例で、いろんなやり方があると思います。ご参考程度で。
デモ
作成できるとこんな感じになるはずです。
Addアイコンをクリックします。
営業案件IDに自動で採番されているのが確認できるかと思います。
フォームに必要な情報を入れ、保存アイコンをクリックします。
新しいレコードがGellaryに追加されているのが確認できるかと思います。
本日はここまでです。
ご参考になれば幸いです。