チェックボックスアプリ完成!!(基礎トレ2.2)
(前回からの続き)
詳細画面の設計が終わったので、製品一覧画面にチェックボックスを実装させます。
こう!
爆速で開発!!!!
この速度だとOutSystemsエンジニアが1人 いるだけで50倍くらいの速度で作れるため、アプリの生産量がとんでもないことになる!!
この前のエントリーで業務用アプリケーションの変更要求を3分で終わらせたのは記憶に新しいと思う。
次に、輸入したかどうかのフィルタリング機能を検索エンジンに実装させたいため、検索バーの右側にもチェックボックスを実装させる。
画面の設計は全部終わった。
ラベルも書いておく
トレーニング動画ではラベルの文字を”Hide Imported Products”にしていたのですが、読めないため、私のアプリでは“輸入したかどうかのチェック”に変更させています。
最後に内部プログラムの設計を行う。
まずはデータベースのカラム(列)の拡張をする。
なぜ、データベースを設計し直さないといけないのかはよく分からないけど、データベースのなかにデータがあるためだと思う。
特にトレーニング動画ではデータベースを設計し直す理由の説明はなかった。とりあえず、設計する。
(一番右の列にAttributeを実装した小林の開発画面)
なぜ一番右のIsImported列がデフォルトで全部falseなのかというと
トレーニング動画の説明によれば
「これが新しいAttribute(列)であり、これらのProductsのどれにもIsImportedの値はセットされていないため」
と説明されている。
つまり、OutSystems Platformでは、新しく実装したBoolean型のAttribute(列)はデフォルトでFalseを取るということです。
重要な部分なのかもしれませんので、一応載せておきます。
検索エンジンのフィルタリングコードはこれ!
“HideImported = False or Product.IsImported = False”
このフィルタリングは輸入した商品を弾き非表示にするコードです。要するに、まだ工場に届いていない商品だけを表示させるコードです。
コードの意味は
HideImported = False…………すべての商品
Or・・・・・・・・・・・・・・・・・・・・・・・・・のなかで
Product.IsImported = False・・・輸入していない商品
つなげると「すべての商品のなかで輸入していない商品」だけを表示させなさい!という命令文です。Product.IsImportedとは、Productデータベース(Product.)内の輸入した商品(Imported)という意味で、それが = Falseとつながっているため、Falseは逆という意味だから、輸入した商品の逆、つまり、輸入していない商品ということになります。
独学でやっているため、間違っている可能性はあります。
完成画像1
まず商品一覧を表示させる。
次に、レフトハンドソードを「輸入済み」にチェックを入れる
最後に検索エンジンのチェックボックスにチェックを入れて輸入していない(届いていない)商品一覧を表示させると
レフトハンドソードが非表示にされ、アプリが正常に動作していることが分かる。
<アプリを作っり終えた感想>
機能の拡張なので簡単だった。
手ごたえがないというか、Boolean型しか使ってないし、チェックボックスを実装しただけのため、普通のトレーニングでした。
検索エンジンにローカル変数を使う意義がよく分からないのですが、何の説明もないため、なぜローカル変数を使うのかが少し気になりました。
“HideImported = False or Product.IsImported = False” は最初まったく理解できなかったけど、このブログの記事を書くのに何度か読み返したら、理解できてしまいました。
(次のトレーニングに続く)