
SPIRAL ver.1の一覧表機能は、データベースのレコードを表示・管理する上で非常に便利ですが、
仕様上の制限や設計上の注意点を把握していないと、意図しない動作やトラブルにつながる可能性があります。
ここでは、現場で遭遇した具体的な事例とその回避策をまとめます。
マルチセレクト検索が期待通りに機能しない
仕様のポイント
• 「複数フィールド検索」でマルチセレクト、マルチセレクト(128項目)を使用する場合、ラベルIDベースでの検索となるため、項目タイトルでは検索できません。
• マルチセレクト型フィールドに対して、複数条件をAND指定すると、
検索結果が期待通りにならないことがあります。
事例
検索フィールド設定画面に、対象設定をマルチセレクト、マルチセレクト(128項目)にします。
実際、一覧検索では、ラベルIDでないと検索できません。
対策・回避方法
• 検索条件は単一条件に限定する。このように、検索条件を単一条件に限定すると、検索可能になります。
一覧表の表示行数制限に注意(設定デザインとXSL編集の違い)
仕様のポイント
• 一覧表の出力方式には「設定デザイン」と「XSL編集」の2種類があり、それぞれ表示件数の上限が異なります。
- 設定デザイン:最大 1000行
- XSL編集:最大 100行
一覧表のソースデザインを選択し、「XML設定」の「表示行数の初期値」で明記しています。
対策・回避方法
• 101行以上の表示が必要で、かつ個別のデザインが必要な場合は、PHP等で独自に実装する。
• 大量データが予想される場合は、設定デザインの使用を検討する。
使用フィールドのXMLサイズ上限に注意
仕様のポイント
• DBに格納できるフィールドの総容量:最大16,384byte(XSL全体をDBに格納する際の上限)
※オプションでフィールドの総容量が30,000byteまで拡張できます。
詳細はこちら
• 編集画面制限:最大6,000byte(ブラウザのXSL編集画面で入力・保存できる上限)
一覧表のソースデザインを選択し、「XML設定」の「使用フィールド設定」で明記しています。
対策・注意点
• 編集画面で6,000バイトを超えるXSLを扱いたい場合は、
カスタムモジュールにて、PHPプログラムで作成することが必要です。
• ソースサイズを抑えるために、繰り返し構文の簡素化や不要なコメントの削除を行う。
XSLでフィールドを記述しても「使用する項目」設定が無いと表示されない
仕様のポイント
• XSLソース上でフィールドを追加しても、「設定 >
使用する項目」でチェックを入れていないと、
データは表示されません。
• 一方、フォーム上では「使用しない」フィールドであっても、
値の引継ぎは可能です(例:確認画面や登録処理など)。
• ただし、一覧表や検索結果画面では、
「使用する」項目に設定されていないフィールドのデータはXSLで指定しても表示されません。
XML設定の「使用フィールド設定」に使用とチェックする必要があります。
対策・注意点
• 一覧や検索結果で新しいフィールドを表示させたい場合は、
DBの「使用する項目」設定でチェックを有効化してください。
• 開発中やテスト時に「表示されない」と感じたときは、
まずこの設定を確認すると早期に原因を特定できます。
同ページに一覧表を2つ以上設置していると、全チェックが正常に動作しない
仕様のポイント
• 同じHTMLページ内に2つ以上の一覧表を配置すると、
「全チェック」機能が正しく動作しないことがあります。
• JavaScriptによる制御が一覧全体にかかるため、
意図しない動作(全一覧への影響、無反応など)が発生します。
このように、2つの一覧表を並ぶことによって、全チェックが正しく動いてない場合がございます。
2つの一覧表を並ぶ場合、不具合の原因になりかねます。
対策・回避方法
• 最も安全な方法:
- 1ページに1つの一覧表のみ配置。
• 代替案:
- 同一ページに複数一覧が必要な場合は、「全チェック」機能を使わない構成にする。
• 上級者向け実装:
- JavaScriptで一覧ごとに識別子(IDやクラス)を分けて処理を分離。
- PHP等でチェック状態の値を一覧ごとに正しく処理するロジックが必要。
- 保守性や可読性が下がるため、実装には慎重な判断が必要。
まとめ
SPIRAL ver.1の一覧表機能を効果的に活用するためには、
これらの仕様・制限・回避策を理解して設計・運用することが不可欠です。
本記事で紹介した注意点を参考に、より安定した一覧表機能の構築にお役立てください。
