画面の作成(顧客リスト照会)

業務に使用されている画面の中で最も基本的な項目は、検索画面です。この章では、簡単な顧客リスト表示画面を作成しながら、グリッド(Grid)コンポーネントとデータセット(Dataset)を処理する方法を説明します。

画面構成

nexacro platformアプリを作成する基本的な方法は、プロジェクトとフォームを作成し、フォーム内に必要なコンポーネントを配置するプロセスです。

プロジェクト(Project)

次のように新しいnexacro platformプロジェクトを作成します。

[Menu] File > New > Project

項目

設定値

説明

Name

CustomerList

プロジェクト名

Location

E:\88_TEST\01_PROJECT\CustomerList

プロジェクトファイルの保存パス

Frameset Template

Full

フレームセットの設定

フォーム(Form)

プロジェクトの生成時に、フレームセットの設定として作られたForm_Workフォームを使用します。フォームの幅と高さは、フォームを作成した後にプロパティウィンドウで変更することができます。

項目

設定値

説明

Name

Form_Work

フォーム名

Location

FrameBase

サービスグループ

Width

800

フォームの幅(デフォルト値:1280)

Height

800

フォームの高さ(デフォルト値:720)

Propeertiesウィンドウでフォームのtitletextプロパティ値を変更します。titletextプロパティ値は、Webブラウザに表示されるタイトルで適用されます。

プロパティ

説明

titletext

Customer List Search

フォームタイトル

データセット(Dataset)

データセットオブジェクトは、nexacro platformアプリ内でデータを管理する機能を提供します。ユーザーが入力するか、サーバーから取得したデータを保管し、データの変更(追加/変更/削除)状態を管理します。

データセットでは、2次元テーブル形式でデータを管理します。カラム(Column)構造で行(Row、Record)単位でデータを扱うことができます。一つのフォームに複数のデータセットを持つことができます。GlobalVariablesでデータセットを作成し、複数のフォームから共同で使用することもできます。

nexacro studioツールバーでデータセットを選択した状態で、デザイン領域任意の場所をクリックすると、データセットが追加されます。データセットは、画面に表示されるコンポーネントではなく、内部でデータを管理するために使用されるコンポーネントであるため、Invisible Objects項目に管理されます。

プロパティウィンドウで追加したデータセットのプロパティを次のように変更します。

プロパティ

説明

id

dsCustomers

データセットのid

データセット・コンテンツ・エディタ(Dataset Contents Editor)

一般的なコンポーネントは、プロパティウィンドウで関連するプロパティを変更しますが、データセットはデータを処理するための追加のツールとしてデータセット・コンテンツ・エディタを提供します。

データセットのコンテンツエディタは、2次元テーブル形式でデータを管理するために、カラムを設計し、データを直接追加することができる機能を提供します。データセットをダブルクリックすると、データセットのコンテンツエディタが表示されます。

データセットでデータを管理するためには、使用するカラムを追加する必要があります。Columns項目で Add column to the dataset をクリックしてカラムを追加します、

例で使用されるカラムは、次のとおりです。

No.

id

type

size

説明

1

id

STRING

4

id

2

name

STRING

16

名前

3

email

STRING

32

メール

4

phone

STRING

16

電話番号

5

comp_name

STRING

32

会社

6

department

STRING

32

部署

7

comp_phone

STRING

16

会社連絡先

8

comp_addr

STRING

256

会社住所

Rows項目でテストのためのデータを追加することができます。データを追加する方法は、カラムを追加する方法と同じです。

追加された項目は、データセット・コンテンツ・エディタでソースコードを通じて確認することができます。ソースコードを直接変更しても、データセットのカラムに反映されます。

<ColumnInfo>
  <Column id="id" type="STRING" size="4" description="id"/>
  <Column id="name" type="STRING" size="16" description="名前"/>
  <Column id="email" type="STRING" size="32" description="メール"/>
  <Column id="phone" type="STRING" size="16" description="電話番号"/>
  <Column id="comp_name" type="STRING" size="32" description="会社"/>
  <Column id="department" type="STRING" size="32" description="部署"/>
  <Column id="comp_phone" type="STRING" size="16" description="会社連絡先"/>
  <Column id="comp_addr" type="STRING" size="256" description="会社住所"/>
</ColumnInfo>

コンポーネントの配置

顧客リスト検索画面は、タイトル、検索ウィンドウ、検索ボタン、グリッドで構成されます。全体的な画面の構成は、次のとおりです。

画面の構成に使用したコンポーネントと変更したプロパティ値は次のとおりです。

コンポーネント

プロパティ

説明

1 Static

id

sttList


text

Customer List Search

表示する文字列

font

bold 20px/normal "Verdana"

フォントプロパティ

2 Div

id

divCommand


3 Edit

id

edtSearch


4 Button

id

btnSearch


text

Search

ボタンに表示する文字列

5 Grid

id

grdCustomers


Divコンポーネントは、複数のコンポーネントを一つのグループとして管理する場合に有効なをコンテナコンポーネントです。 Divコンポーネントを先に配置してから内部のコンポーネントを配置する必要があります。

例題にて、➋Divコンポーネントを先に配置してから、❸Editコンポーネント、➍Buttonコンポーネントをその上に追加する必要があります。

グリッド

データを扱う画面を構成する場合、最もよく使用されるコンポーネントは、グリッドです。グリッドは、コンポーネント単独で使用するより、データを管理するデータセットと連結して使用します。

データバインディング

画面に配置されたグリッドにデータを表示するためには、データセットに接続する必要があります。このような接続作業を、データバインディング(Binding)と呼びます。グリッドだけでなく、データを画面に表示できるすべてのコンポーネントは、データセットと接続することができます。

グリッドにデータセットを接続すると、データを表示するだけでなく、グリッド内のデータを直接変更したり、入力することができ、変更されたデータは、データセットにすぐに反映されます。

グリッドにデータセットを接続する方法は、binddatasetプロパティ値にデータセットのid値を指定するか、nexacro studioの画面上でデータセットオブジェクトをマウスでクリックして、グリッド·コンポーネント上にドラッグして移動させます。

データセットをドラッグして、Gridコンポーネント上にドロップすると、binddatasetプロパティの値は、該当データセットidで指定され、formatsプロパティにデータセットのカラムに基づいて値が作成されます。そして、画面上でも、データセットカラムに基づいてグリッドの形が変わったことを確認することができます。

グリッド・コンテンツ・エディタ(Grid Contents Editor)

グリッドとデータセットを紐づける作業によって、自動的にformatsプロパティの値が作成されましたが、他のフォーマットでデータを表記したい場合は、グリッド・コンテンツ・エディタでフォーマットを作成することができます。グリッドをダブルクリックするか、プロパティウィンドウformatsプロパティと連携されているボタンをクリックすると、グリッド・コンテンツ・エディタが実行されます。

グリッド・コンテンツ・エディタは、グリッドにデータをどのように表示するかを編集できる画面です。データの見た目のみ編集するため、実際のデータセットには影響しません。

1

Datasetバインド時に自動生成されたフォーマットを削除

新しい型を編集するために既存の設定された内容を削除します。グリッド・コンテンツ・エディタでrow0項目を選択して、キーボードのShiftキーもしくはCtrlキーを押しながらrow1項目を選択して、エディタ上部のツールバーでDeleteを選択して、自動生成されたフォーマットを削除します。

8つのカラムを2つの行で表示するように変更します。変更されたフォーマットは、4つの列を持って、カラムに応じて2つの頭(Head)行と本文(Body)行を持ちます。

2

Head Row追加

まず、頭行を追加します。グリッド・コンテンツ・エディタの上部のツールバーで、[Add Head Row]項目を選択します。

3

4つのカラム追加

そして、4つのカラムを追加します。見出し行を追加したら、基本的に1つのカラムが作成され、Add Column項目が有効になります。Add Column項目を選択して3つのカラムを追加します。

4

Head Row、Body Row追加

col2とcol3カラムに2種類のデータを表記するために、見出し行と本文行を2つずつ追加します。本文行は、Add Body Row項目を選択して追加することができます。

5

Merge Cells

col0とcol1カラムは、一つのデータのみをリンクしてくれるので、セルを結合する必要があります。 col0の頭行にあるセルを選択し、エディタのツールバーの[Merge Cells]項目を選択します。複数のセルを選択するときは、いずれかのセルを選択した後、マウスをドラッグするか、Shiftキーを押しながら別のセルを選択します。

[Merge Cells]の項目は、2つのオプションがあります。[Merge Cells(A big cell)]は、各セルのプロパティをすべて削除して、1つのセルとして結合することであり、[Merge Cells(Having child cells)]は、個々のセルのプロパティをそのまま維持した状態で、1つのセルのように見えるように結合することです。今回の例では、各セルのプロパティを維持する必要がないので、 [Merge Cells(A big cell)]項目を選択します。

col0、col1の本文行のセルも一つに結合します。

Ctrlキーを押しながら結合されるセルを選択することができます。ただし、カラムと行が正方形の形で選択されない場合は、[Merge Cells]メニューが有効になりません。例えば、以下のような場合は、マージ機能を処理することはできません。


6

カラムにバインドする項目を指定

以下のように各カラムに該当する値を指定します。該当するセルを選択し、右側に表示されているプロパティウィンドウで値を入力することができます。

カラム

Head Cell: text

Body Cell: text

Column: size

col0

ID

bind:id

80

col1

Name

bind:name

150

col2

Email

bind:email

200

Phone

bind:phone

col3

Company

bind:comp_name

320

Department

bind:department

GridコンポーネントとバインドされたDatasetがある場合、Datasetに設定された列のリストをエディタで確認することができます。textプロパティに直接「bind:id」という値を入力するか、リストから「id」項目を選択することができます。

値を入力してOKボタンをクリックすると、ウィンドウが閉じて、グリッドに変更されたカラムの形式が反映されます。

データテスト

サービス運用段階では、データベース内のデータを取得して画面に表示しますが、テスト段階では、機能を実装するかどうかだけを確認する場合もあります。簡単なスクリプトでデータをデータセットに追加し、接続されたグリッドにデータを表示します。

ボタンクリックイベント

btnSearchボタンにクリックイベントを追加し、データを処理するスクリプトを作成します。btnSearchボタンコンポーネントを選択し、プロパティウィンドウで、onclickイベントを追加します。イベントプロパティ値を追加し、プロパティウィンドウをダブルクリックするか、Enterキーを入力すると、該当イベント関数を作成します。

プロパティ

説明

onclick

divCommand_btnSearch_onclick

ボタンクリックイベント

イベントスクリプトは次のとおりです。データセットに1件のデータ行を追加し、値を指定します。

this.divCommand_btnSearch_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
     var row = this.dsCustomers.addRow();
     this.dsCustomers.setColumn(row, "id", "TC-001");
     this.dsCustomers.setColumn(row, "name", "Tzuyu");
     this.dsCustomers.setColumn(row, "email", "ceo@twice.com");
     this.dsCustomers.setColumn(row, "phone", "6987-6543");
     this.dsCustomers.setColumn(row, "comp_name", "TWICE");
     this.dsCustomers.setColumn(row, "department", "0");
     this.dsCustomers.setColumn(row, "comp_phone", "6506-7000");
     this.dsCustomers.setColumn(row, "comp_addr", "Tokyo");
};

onclickイベント処理時にTypeErrorが発生した場合、コンポーネントやオブジェクトのidを間違って入力した可能性があります。たとえば例でthis.dsCustomer.addRow()と入力した場合、下記のようなエラーが発生します。


TypeError: Cannot read property 'addRow' of undefined

Generate

これで、作成されたアプリをWebブラウザで実行します。最初に作成したコードをJavaScriptのファイルに変換します。Outputウィンドウで、定期的にJavaScriptのファイルが作成されていることを確認することができます。

[Menu] Generate > Application

Quick View

Webサーバーを実行し、nexacro studioでQuick View を実行します。WebブラウザでQuick Viewを実行するには、ビルドツールバーを有効にし、ブラウザのオプションを変更する必要があります。Webブラウザのオプションでは、PCにインストールされたWebブラウザを選択することができます。

指定されたWebブラウザが実行されながら、実行されたnexacro platformアプリを確認することができます。 Searchボタンをクリックすると、スクリプトで追加したデータがグリッドに表示されます。