記載内容について
OutsystemsのDataGridの標準機能で右クリック押下時に選択できるExcelダウンロードアクションを自分が作成したボタンやリンクから呼び出す方法を記載いたします。
参照サイト(公式FAQ)
今回呼び出す処理について
自分が調べた範囲で記載しています。あくまで雑魚雑魚エンジニア調べですので参考程度に読み進めてください。まずOutSystemsのDataGridはWijimoのFlexGridをOutSystems側から呼び出せるようにしたものです。ソースコードも公開されているので暇な時にでも適宜参照してください。大変残念なことに管理人は現状さっぱり読めませんが…
今回使用するコードを以下に記載しました。FlexGridのExcel出力処理を、「GridWidgetId」「IncludeStyles」「FileName」の3つの引数を渡して呼び出しています。
GridAPI.GridManager.GetGridById($parameters.GridWidgetId).features.export.exportToExcel($parameters.IncludeStyles, $parameters.FileName);
本来DataGrid標準のExportであれば何も考えなくてもパラメータが渡るのですが今回は自分で作ったボタンやリンクで使えるようにしたいため明示的に渡してあげる必要があります。これらを踏まえた上で実装例に進もうと思います
実装例

上記画像の「Export Grid To Excel」ボタンを押下することで画像右の右クリックメニュー「to Excel」を呼び出せる状況を目指します。
Export Grid To ExcelのOn Click Actionを作成
OnClickActionを作成し「JavaScript」のwidgetを投入し、下記画像のようにParametersおよびコードを記載します。


前述の「GridWidgetId」「IncludeStyles」「FileName」のInput Parameterを作成し以下コードを記載し設定を終了します。
GridAPI.GridManager.GetGridById($parameters.GridWidgetId).features.export.exportToExcel($parameters.IncludeStyles, $parameters.FileName);
設定終了後下記画像のようにJavaScriptのWidgetにInput Parameterを割り当ててあげれば当初の目標のボタンでExcel出力を実施する処理自体は完成です。

終わりに
ファイル名を自分で決めたい場合JavaScriptにInputParameterで希望のファイル名を渡せばいいのでとても便利だと思いました。初めて書いたというのと国語が壊滅的にできない負の相乗効果でとても拙い文章になってしまいましたがここまで読んでくださりありがとうございました。
これからも備忘録として、また同じ悩みに行き着いた方の助けに少しでもなれるよう執筆してまいりますのでよろしくお願いいたします。

コメント