2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

キャンバスアプリで明細画面を作成する~行番号の採番~

Last updated at Posted at 2021-10-26

Sequence関数とForAllの組み合わせでループを実現で実現することができます。

サンプルについて

このサンプルは明細登録画面を作成するの作成例内での実装になります。

本サンプルの処理概要

①行追加ボタンを押下した時、正しく行が挿入される
本サンプルでは途中の行での挿入機能は設けておりません。
常に一番下に新しい番号が採番されるイメージになります。
②行削除を行ったとき
1行目から最後の行まで連番で採番しなおすようにします。

実装について

採番用に変数を宣言
採番用に変数COUNT_LINNOを宣言します。COUNT_LINNOは明細画面生成時に1として宣言され、行追加ボタンを押下するごとに1カウントアップしていく変数です。
①行挿入の機能の実装について
行追加ボタンのOnSelectプロパティでCOUNT_LINNOをカウントアップし、コレクションにPatchをかけます。
②行削除の機能の実装について
行削除を実行させるボタンのOnSelectプロパティで以下を記述。

qitta_明細番号採番サンプルコード.png

ForAll関数で実行している処理はコレクションに保存した明細レコード全ての行番号をパッチしなおしています。

コード中のValueプロパティは、Sequence関数を作成で作成された連番のうち「何番目をForAllが実行しているのか?」を示しています。

ForAll関数の中で行数カウント用の変数に更新をかけることはできないためサンプルのようなコードとなっています。

… したがって、UpdateContext、Clear、および ClearCollect 関数は、効果の影響を受けやすい変数を保持するために簡単に使用できるため、 ForAll 関数で使用することはできません。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?