stkzhr0316
@stkzhr0316

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

PowerApps 注文時に在庫数を超えるとアラートを表示させる方法

PowerApps触り始めて2ヶ月の初心者です。

キャンバスアプリで商品サンプル在庫を出荷依頼するショッピングカートのような
アプリを制作したいと考えています。
画面左側が在庫一覧で右側がカート内を表示しています。
画像1.png

【解決したい課題】
左側から商品を選んだあと、カート内の上下矢印で数量の増減をするのですが
この時、カート内の注文数量が左側在庫数を超えたときに
「在庫不足です」というアラートを表示させるにはどのような方法が良いでしょうか。

現在下記のように構築してアラートは表示できるのですが、表示されるタイミングがこちらの意図と異なります。
例)商品1の在庫が1の時、注文数を2にした時点でアラートを表示したいが、注文数が3にならないと表示されない。

カート内はコレクション「OrderList」を表示しています。
・カートに追加する右矢印のOnSelectプロパティ

If(CountIf(OrderList,注文商品コード=ThisItem.商品コード)=0,
    Collect(OrderList,
            {
                注文商品名:ThisItem.商品名,
                注文商品コード:ThisItem.商品コード,
                注文賞味期限:ThisItem.賞味期限,
                注文数:1
            }
    )
)

 

カート内上矢印を押すと注文数が増えると同時に注文数が在庫数を超えていないかチェックします。
超えている時はError変数が1、超えていないときはError変数が0の状態となり
アラートのVisibleプロパティをこのError変数で制御しています。
・カート内の上矢印のOnSelectプロパティ ※(StockVollbl.Text)は左側在庫数の値を示しています。

If(Value(StockVollbl.Text)<ThisItem.注文数,Set(Error,1),Set(Error,0));
UpdateIf(OrderList,注文商品コード=ThisItem.注文商品コード,{注文数:注文数+1})

試してみた事
・コレクション内アイテムの指定をThisItem.注文数ではなくラベル名(OrderAmountlbl.Text)に変えてみましたが状況は変わりませんでした。

その他情報
●リストは1種類のみで商品在庫の入庫と出庫を記録していきます。
●在庫数は入庫-出庫の計算式で表示しています。(入庫は1回きりのみ)

注文アプリや備品管理アプリの開発例はありましたが
上記のような仕様のものが見つからなかったためご教示いただけますと幸いです。

0

1Answer

【自己解決】
コレクション「OrderList」内に在庫数を表す「Order_Stocklbl」ラベルを用意し
コレクション内の各アイテムごとに注文数と在庫数を比較することで解決できました。

また、エラーメッセージはVisibleプロパティを下記にすることで変数を使わずに制御することができました。

If(ThisItem.注文数>Value(Order_Stocklbl.Text),true,false)
0Like

Your answer might help someone💌