1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OutSystemsでEntityのデータを一覧表示、編集できる画面を作ろう

Posted at

はじめに

前回の記事で作成したEntityを使用します。

社員情報(Employee)Entityを一覧表示する画面と、一覧から1行クリックするまたは新規作成ボタンを押すと編集画面へ遷移し、社員情報を編集できるイメージで作成していきます。

1.一覧画面作成

まずはEmployeeを取得する処理を作成します。
画面を作成し、右クリックしてFetch Data From Databaseを選択します。
image.png
するとAggregateというものが作成されます。
Aggregateとは一般的なデータベースにおける、SQLのSELECT文のようなものと思っていただければ大丈夫です。
image.png
この状態で画面をクリックするとポップアップから取得したいEntityを選択できるので、Employeeを選択します。
image.png
一覧画面にはEmployeeに紐づく部署情報(Department)も表示したいので、Add Sourceボタンを押してDepartmentを選択します。
image.png
image.png
するとEmployeeに対してDepartmentが結合されます。
EmployeeがDepartmentのキーとなるAttributeのDepartmentIdを持っているため、結合の条件が自動で作成されます(結合条件は自由に変えることもできます)。
image.png
また、こちらのドロップダウンで結合方法を変えられます。With or WithoutがLEFT JOIN、Only WithがINNER JOIN、WithがFULL OUTER JOINになります。
今回はWith or Withoutのままにしておきます。
image.png
これでEmployeeの取得処理は作成できました。
次は作成したAggregateを画面にドラッグ&ドロップします。
image.png
一覧のウィジェットとページングとソートのアクションが自動生成されます。
image.png
デフォルトだと一覧のヘッダーが英語のままなので日本語に書き換えます。
image.png
また、デフォルトだと一覧は4列までしか自動生成されないため部署名の列を追加しましょう。
Widgetタブから部署コードの列を右クリックし、Add New Column Rightを選択します。
image.png
列が追加されるので、まずHeader CellのSort AttributeをDepartmentNameに設定します。
image.png
次に他の列と同じようにText WidgetをHeader Cellに配置し、部署名と入力します。
image.png
最後にRow CellにExpression Widgetを配置し、GetEmployees.List.Current.Department.DepartmentNameを設定します。
image.png
一旦一覧画面はここまでにしましょう。

2.編集画面作成

まずはScreenを1つ作成します。
編集画面には一覧画面で選択されたEmployeeの情報を渡す必要があるので、Screenを右クリックしてAdd Input Parameterを選択します。
image.png
Input Parameterとは引数のことです。
データ型はEmployeeの識別子であるEmployee Identifier型に設定します。
image.png
そしてEmployeeを取得するAggregateを作成します。
一覧画面から渡された識別子のレコードだけ取得したいのでFilterタブでEmployeeId = InputIdと設定します。
FilterとはSQLにおけるWHERE句と同じで、取得するレコードをフィルタリングできます。
image.png
次に画面にForm Widgetを配置します。
image.png
配置したFormの上にAggregateをドラッグ&ドロップすると、Employeeの各項目の入力欄とSaveボタンが自動生成されます。
image.png
image.png
各項目名を日本語に変更しておきましょう。
image.png
そして、デフォルトではSaveボタンに何もアクションが割り当てられていないため、編集内容を保存するClient Actionを作りましょう。
今回は入力値のバリデーションチェック処理などは省きます。
Client Actionを追加し、Employee EntityのCreateOrUpdateEmployeeをドラッグ&ドロップします。
image.png
SourceにはGetEmployeeById.List.Currentを設定します。
image.png
保存が終わったら、「保存しました。」というメッセージを表示し一覧画面へ戻る処理を実装しましょう。
まずMessageをドラッグ&ドロップで配置し、テキストを入力します。
image.png
次にDestinationを配置し、遷移先を先ほど作成した一覧画面に設定します。
image.png
フローの最後がDestinationなどの場合、Endを配置する必要はありませんのでEndを削除し、Destinationにコネクタを繋げます。
後はSaveボタンにこのアクションを割り当てたら編集画面の実装は完了です。
image.png

3.一覧画面から編集画面への導線を作成

一覧画面のEmployeeCodeを右クリックし、Link toから編集画面を選択します。
image.png
Input ParameterにGetEmployees.List.Current.Employee.Idを設定すると、選択された行のEmployeeIdが編集画面へ渡せるようになります。
image.png
最後に新規作成ボタンを追加しましょう。
適当な位置にボタンを配置し、On Clickに編集画面を設定します。
image.png
新規作成時には識別子がまだ存在しないため、Input ParameterにはNullIdentifier()を選択しましょう。
image.png
これで一覧画面から編集画面へ遷移できるようになりました。

4.動作を確認してみる

Publish後、Open In Browserで画面を開き、動作を確認してみましょう。
image.png
image.png

5.最後に

全体的にSQLの知識がある前提の説明になってしまっておりすみません…
次回はStructureの使い方について紹介していきます。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?