はじめに
OutSystemsでのデータの一覧表示といえば、Table Widget(TraditionalでのTable Records)またはForgeコンポーネントのOutSystems Data Gridかと思います。
どちらを使うのが無難なのか、両方の開発を経験してみて感じたことをまとめてみようと思います。
前提
- OutSystems 11
- Reactive Web
- OutSystems Data Grid (version 2.18.1)
Table Widget
OutSystems標準のUI。基本は表示のみでTableだけでは一覧形式の入力には対応していませんが、他のInput Widget等と組み合わせることで実現可能です。
他のシステムUIと組み合わせることできるのが、実はこのTable Widgetの強みではないかと思います。
メリット
- デザインの調整は基本的にCSSで対応可能
- WebBlockをTableのセル内に埋め込むことでわりと自由にカスタマイズできる
- JavaScriptが必要になるケースはあまりない
デメリット
- ソート機能は自前で実装する必要あり(ただし、Aggregateへのソートキーの受け渡し程度)
- セル結合、ヘッダセル結合はできない
- 各セルの幅はパーセンテージやpxによる固定なので、操作しているユーザーが自由にいじることはできない
DataGrid
OutSystemsチームが開発しているForgeであり、多くの現場で使用されているEXCELライクな入力ツールです。
そして、DataGridのベースとなっているのは、Javascript開発ライブラリのWijmo(ウィジモ)に含まれているFlexGridというコンポーネントです。
こちらの記事でDataGridについて詳しく書かれているので是非ご覧ください。
メリット
- 厳密なルールが不要であれば、ほぼお任せでソート機能がつけられる
- セル結合、ヘッダセル結合が可能
- 各列幅をユーザーが自由にいじることができる
- カスタマイズをあまりせずデータを一覧表示したいだけであれば、取得したデータをJSON化してDataGridに受け渡すだけなので実装スピードも速い
デメリット
- カスタマイズをしたい場合、DataGridの標準機能にないものはJavaScriptで実装する必要がある
- 意外とDataGridの標準機能でできないことも多い(行の下に追加する動きとか)
- DataGridの情報が少ない
DataGrid、正直情報が少ない
見栄えもいいし、よくできたツールなのですが如何せん情報が少ない・・・
以下が公開されているサンプルです。(このForgeもインストールすれば実装が確認できます)
カスタマイズが必要になったら、Wijmoのオンラインドキュメントを参考にDataGridの標準機能にない機能を実装してみましょう。
結論
特にDataGridを使う理由がないなら、Table Widget使っておいたほうが無難。
OutSystemsのローコードという性質上、コードが増えるのは好ましくないからです。
カスタマイズにJavaScriptが必須となるDataGridを採用するのは、それなりのリスクかなと考えます。
(JavaScript使わない範囲でやります!でもいいかなと思うけど、時折痒い所に手が届かない・・・)
採用するなら、要件上「DataGridでないと実現できない」機能に絞るのがベスト。