前回の複数レコードを送信するフォームのエントリーにて、擬似的にGoogle Formで複数レコードを登録するコードを紹介しましたが、作っていて思い出したのが、「ドロップダウンリストやグリッドパーツの選択肢」の量がそこそこある場合、1回だけ作るならともかく、手直しが入る可能性がある(例えば支店名リスト。増えたり減ったり、統合したり)場合、位置や追加、削除が酷く面倒だったのを思い出しました。

これをスプレッドシート上の値を持って再構築してみようというのが今回の趣旨です。今回はちょいネタですが、その効用は非常に大きいです。他のパーツ類も同様に再構築が可能なので、変動の多い項目は、スプレッドシート連携にしてしまうと、メンテナンスが楽になります。

今回使用するファイル類

基本的には前回のサンプルファイルに追加している形です。

図:このグリッドパーツを再構築するのが今回の目的

ソースコード

今回は既存のグリッド項目()を再構築するだけなので、に関しては足したり引いたりしていません。しかし、列の追加等も非常に簡単です。

ポイント

  • スプレッドシート側は、単純に1列にリストを並べてるものを取ってきています(日付リストシートから取得します)。
  • 入れ替えるためには、リストのデータを1次元配列にする必要があるため、配列を再構築しています。
  • 配列データは空白の場合には、スルーし、ある場合にはpushしています。
  • アクティブフォームに於いて「ItemTypeはGRID」のものをitemsとして取得しています。
  • itemsの中でセクションタイトルが「出勤可否」に該当するものを取得し、asGridItemでそれを取得します。
  • setRowsメソッドで行のデータを上書き再セットできます。
  • setColumsメソッドで、列のデータを上書き再セットができます。こちらも1次元配列でOK.今回のケースで言えば[“出勤”,”休暇”,”半休”]といったような形でセットすればOK.

関連リンク

共有してみる: