Udemy 新コース: 作って学ぶPower BI!

【O365ライセンス内でPowerApps開発】 Vol.8 営業支援アプリの作成(タブレットレイアウト)の新規レコード作成機能の追加

前回作成した営業支援アプリ(タブレット)の機能拡張をします。

【O365ライセンス内でPowerApps開発】 Vol.7 営業支援アプリの作成(タブレットレイアウト)

上記アプリの機能では、既存レコードのアップデートはできますが新規値の追加はできないようになっています。

そこで今回はそう言う新規レコードの追加機能を作っていきます。

ポイントとなるのは、以下の項目です。

  • 新しく起票する伝票番号の自動採番 (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に追加されているのが確認できるかと思います。

 

 

ちなみに、既存に存在する営業案件ID: SAL00004の伝票をクリックしても、自動採番された値が営業案件IDに入ってしまうことはありません。

 

本日はここまでです。

ご参考になれば幸いです。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です