0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[OutSystems]Data Gridを使う画面でWijmoのAPIを呼ぶ方法

Posted at

DataGridを使って複数行編集可能なテーブルを実現するでおこなったOutSystems Data Grid動作確認の続き。

OutSystems Data GridはGrapeCityのFlexGridをLow-Codeから使えるようにしたものだが、ベースとなっているFlexGridのオブジェクトを取得し、そのAPIを呼び出せる。

環境情報

Personal Environment(Version 11.18.1 (Build 37884))
Service Studio(Version 11.54.1)
OutSystems Data Grid(Version 2.10.1

実装例

Switchの切り替えで、配置したGridの2行目の表示/非表示を切り替える(この例自体はあくまで例示のみを目的としており、特に意味はない)。

  1. Grid BlockのNameプロパティを設定しておく

  2. Switchを配置し、OnChangeイベントハンドラーを設定
    image.png

  3. イベントハンドラーのロジックにJavaScript要素を配置し、以下のコードを記述する

var grid = GridAPI.GridManager.GetGridById($parameters.GridId).provider;
grid.rows[1].visible = $parameters.IsSecondRowVisible;

1行目:FlexGridのオブジェクトを取得している。GetGridByIdに渡すIdは、Grid WidgetのIdを渡す(<GridのName>.Idを渡す)
2行目:FlexGridのAPIを使い、Grid内の2行目の可視状態を切り替え。$parameters.IsSecondRowVisibleにはSwitchに紐づけたBoolean型の変数を渡している

基本的には1行目の方法でFlexGridのオブジェクトを取得した後は、FlexGrid自体のAPIを参照して必要な処理を書けばよい。
FlexGrid.rows:Grid内の行オブジェクトのコレクションを取得
Row.visible:Rowの可視状態を取得/更新できる

GridAPIとは

これはOutSystemsが用意したオブジェクトで、Data Gridコンポーネント(Low-Code)とJavaScriptライブラリの仲立ちになるもの、らしい。

OutSystems Forumsの質問Data Grid Reactive - GridFrameworkJSについていたコメントより。

The GridAPI is a layer that mediates communication between the DataGrid component and our JS code.

Data GridのClient Actionで利用

OutSystems Data Gridが提供するClient ActionもGridAPI下のAPIを呼んでいる。

例として、指定の行にValidationを効かせるApplyRowValidations Actionは以下のようにGridAPI下の機能を呼んでいる。

$parameters.ErrorMessage = OutSystems.GridAPI.Cells.ValidateRow($parameters.GridWidgetId, $parameters.RowNumber);

Client ActionはOutSystems.GridAPIのAPIを呼んでいる
「OutSystems.GridAPI」と「GridAPI」は同じ機能を持っていそうだがどう違うかは今のところ不明。念のため、

OutSystems.GridAPI === GridAPI

で比較してみたが、結果はfalseだった。

GridAPIを利用した他の実装例

Google検索してみるといくつか見つかる。

OutSystems DataGrid 虎の巻 - DataGridをJavascriptでカスタマイズする:IMEやセル結合の設定

OutSystems ForumでGridAPI.GridManagerで検索

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?