画像とDeckビューとREF_ROWS
こんな感じのがDeckビュー。
データシートはこんな感じ。ファイルはテーブル名+_Images/キー.image.連番のようにかぶらない名前を勝手に付けてくれる模様。保存フォルダもグーグルドライブ内に勝手に作ってくれました。
Image、Thumbnailで画像アップロードできる模様。画像の大小表示しか違いが分からん。Fileでも画像アップロードできるが中身は表示されない。さすがに自動判別はされない模様。Videoを選ぶと編集画面に表示されなかったのでアップロードはできないのか?試してないけどFileでアップロードしておいてVideoカラムにブチ込めばイケる気がする。
Signtureにするとサインが保存できた。店で電子サインするアレと同じ!PNG形式。鍵マークを選択するとサインが書ける。
アップロードしたファイルは全て保存場所に残っています。整理するためにも削除する仕組みを考えねばなりませんが、ここでは考えてません。
■ つくる。
表示する画像、表示する文字3か所を設定。画像の表示方法、表示するActionの設定をそれぞれ設定。Sort by、Group by、Group aggregateはご自由に。Nested table columnに関しては後述。
完成。
■ Nested table columnでリスト表示
使い方間違っているかもしれません。こんな感じでリスト表示が出来ました。
メインのデータに紐付けして、追加の画像データを無制限に登録してみたい。
こんな感じ。
まず赤丸部分のバーチャルカラムを作ります。後でListCount部分も作りますが、この順番じゃないとまずい模様。また作り直すことを覚悟しましょう。
赤丸部分を入力していきます。数式を間違えなければ他は自動入力されます。
=REF_ROWS("filelist", "data_id")
Show部分は後程やります。
追加したバーチャルカラムを設定します。
こんな感じになります。しかし追加画像データの無いデータに無駄な空白が!追加画像データがなくてもリスト表示の場所が確保されてしまう模様。
追加画像の無いデータはバーチャルカラムを表示しないようにします。上記で飛ばしていたところまで戻って、データの行を数えるだけのバーチャルカラムを作ります。数式はREF_ROWSで使ったヤツを流用します。実績重視。関数SELECTでもいけると思う。
=COUNT(REF_ROWS("filelist", "data_id"))
バーチャルカラム追加画像のShow表示条件に数式を追加します。
=if([ListCount]>0,true,true)
隙間なく表示されるようになりました。
■ 運用を考える
REF_ROWSで追加したリストはViewとAddがついてきました!UX作ってないのに!
実は1件目の追加画像データを入れることを考えてませんでした。良い方法が思いつかなかったので、無理矢理Actionで実装します。
dataテーブルとfilelistテーブルの紐付け用データを追加するアクションです。
少しスクロールしてアクションの表示条件を設定。追加画像データが0の時だけ表示。
=if(count(REF_ROWS("filelist", "data_id"))=0,true,false)
上記のアクションを実行すると空のデータが追加されました!しかし画像は空です。これを編集してデータを追加していくことになりますが・・・
説明画像が必要かもしれません。ImageカラムのINITIAL VALUEに「画像をアップロードして下さい」とか、Signtureカラムであれば「山田太郎」とか、文字だけの画像を作成して用意しておくと質問の発生しにくいアプリになると思います。
(そうすると、このINITIAL VALUEのデータのままであるデータをどこかで一括削除する処理が後程必要になって・・・作業が終わらない!!なんか良い方法を思いついたら後でまとめます。)
以上。