APIリファレンス
2021/12/22
   2.2.2.emit
   2.3.1.Iterate
   2.3.2.Load
   2.3.3.Resize
   2.3.4.Unload
   2.4.1.items
   2.4.2.models
    3.1.1.1.setStyle
    3.1.2.1.Click
    3.1.2.4.MouseDown
    3.1.2.5.MouseUp
    3.2.1.1.setStyle
    3.2.2.1.Click
    3.2.2.4.MouseDown
    3.2.2.5.MouseUp
    3.3.1.1.setStyle
    3.3.2.1.Click
    3.3.2.4.MouseDown
    3.3.2.5.MouseUp
    3.4.1.1.setStyle
    3.4.2.1.Click
    3.4.2.4.MouseDown
    3.4.2.5.MouseUp
    3.5.1.1.setStyle
    3.5.2.1.Click
    3.5.2.4.MouseDown
    3.5.2.5.MouseUp
    3.6.1.2.setStyle
    3.6.1.3.setValue
    3.6.2.1.Blur
    3.6.2.2.Click
    3.6.2.5.Focus
    3.6.2.6.MouseDown
    3.6.2.7.MouseUp
    3.7.1.1.getValue
    3.7.1.3.setFilter
    3.7.1.4.setFocus
    3.7.1.6.setStyle
    3.7.1.7.setValue
    3.7.2.1.Blur
    3.7.2.2.Change
    3.7.2.3.Click
    3.7.2.6.Focus
    3.7.2.7.KeyDown
    3.7.2.8.KeyPress
    3.7.2.9.KeyUp
    3.7.2.10.MouseDown
    3.7.2.11.MouseUp
    3.8.1.1.getValue
    3.8.1.3.setFilter
    3.8.1.4.setFocus
    3.8.1.6.setStyle
    3.8.1.7.setValue
    3.8.2.1.Blur
    3.8.2.2.Change
    3.8.2.3.Click
    3.8.2.6.Focus
    3.8.2.7.KeyDown
    3.8.2.8.KeyPress
    3.8.2.9.KeyUp
    3.8.2.10.MouseDown
    3.8.2.11.MouseUp
    3.9.1.1.getChecked
    3.9.1.2.setCaption
    3.9.1.3.setChecked
    3.9.1.5.setStyle
    3.9.2.1.Blur
    3.9.2.2.Change
    3.9.2.3.Click
    3.9.2.6.Focus
    3.9.2.7.MouseDown
    3.9.2.8.MouseUp
    3.10.1.4.setStyle
    3.10.2.1.Blur
    3.10.2.2.Change
    3.10.2.3.Click
    3.10.2.6.Focus
    3.10.2.7.MouseDown
    3.10.2.8.MouseUp
    3.10.3.5.setColumn
    3.10.3.6.setTable
    3.11.1.2.getValue
    3.11.1.3.reloadDB
    3.11.1.7.setStyle
    3.11.1.8.setValue
    3.11.2.1.Blur
    3.11.2.2.Change
    3.11.2.3.Click
    3.11.2.6.Focus
    3.11.2.7.KeyDown
    3.11.2.8.KeyPress
    3.11.2.9.KeyUp
    3.11.2.10.Load
    3.11.2.12.MouseUp
    3.12.1.2.getValue
    3.12.1.3.reloadDB
    3.12.1.6.setStyle
    3.12.1.7.setValue
    3.12.2.1.Blur
    3.12.2.2.Change
    3.12.2.3.Click
    3.12.2.6.Focus
    3.12.2.7.KeyDown
    3.12.2.8.KeyPress
    3.12.2.9.KeyUp
    3.12.2.10.Load
    3.12.2.12.MouseUp
    3.13.1.1.getValue
    3.13.1.2.setStyle
    3.13.1.3.setValue
    3.13.1.4.toggle
    3.13.2.1.Change
    3.13.2.2.Click
    3.14.1.1.getValue
    3.14.1.3.setMax
    3.14.1.4.setMin
    3.14.1.6.setStep
    3.14.1.7.setStyle
    3.14.1.8.setValue
    3.14.2.1.Blur
    3.14.2.2.Change
    3.14.2.3.Click
    3.14.2.4.Focus
    3.14.2.5.MouseDown
    3.14.2.6.MouseUp
    3.15.1.1.getValue
    3.15.1.3.setFocus
    3.15.1.9.setStyle
    3.15.1.10.setValue
    3.15.2.1.Blur
    3.15.2.2.Change
    3.15.2.3.Focus
    3.16.1.1.getValue
    3.16.1.4.setStyle
    3.16.1.5.setValue
    3.16.2.1.Blur
    3.16.2.2.Change
    3.16.2.3.Click
    3.16.2.4.Focus
    3.17.1.1.getValue
    3.17.1.2.moveFirst
    3.17.1.3.moveLast
    3.17.1.4.moveNext
    3.17.1.5.movePrev
    3.17.1.7.setMax
    3.17.1.8.setStyle
    3.17.1.9.setValue
    3.17.2.1.Change
    3.17.2.2.Search
    3.18.1.2.setItems
    3.18.1.4.setStyle
    3.18.2.1.Change
    3.18.2.2.Click
    3.19.1.1.open
    3.19.1.2.setStyle
    3.19.2.1.Click
    3.20.1.1.clear
    3.20.1.2.getFiles
    3.20.1.3.getValue
    3.20.1.4.readFile
    3.20.1.6.setStyle
    3.20.1.7.upload
    3.20.2.1.Blur
    3.20.2.2.Change
    3.20.2.3.Click
    3.20.2.6.Focus
    3.20.2.7.KeyDown
    3.20.2.8.KeyPress
    3.20.2.9.KeyUp
    3.20.2.11.MouseUp
    3.21.1.1.getAlt
    3.21.1.2.getSrc
    3.21.1.3.getValue
    3.21.1.4.setAlt
    3.21.1.5.setSrc
    3.21.1.6.setStyle
    3.21.1.7.setValue
    3.21.2.1.Click
    3.21.2.4.Error
    3.21.2.5.MouseDown
    3.21.2.6.MouseUp
    3.22.1.1.getValue
    3.22.1.2.setFilter
    3.22.1.3.setStyle
    3.22.1.4.setValue
    3.22.2.1.Change
    3.22.2.2.Click
    3.22.2.5.MouseDown
    3.22.2.6.MouseUp
    3.23.1.1.getValue
    3.23.1.2.setStyle
    3.23.2.1.Change
    3.23.2.2.Click
    3.23.2.5.MouseDown
    3.23.2.6.MouseUp
    3.24.1.2.getValue
    3.24.1.4.reloadDB
    3.24.1.7.setStyle
    3.24.1.8.setValue
    3.24.2.1.Change
    3.24.2.2.Click
    3.24.2.5.Load
    3.24.2.6.MouseDown
    3.24.2.7.MouseUp
    3.25.1.1.setItems
    3.25.1.2.setStyle
    3.25.2.1.Click
    3.26.1.4.setFilter
    3.26.1.5.setHeader
    3.26.1.6.setStyle
    3.26.1.7.setTable
    3.26.2.1.Click
    3.27.1.1.getCount
    3.27.1.4.search
    3.27.1.8.setFilter
    3.27.1.9.setNum
    3.27.1.11.setOrder
    3.27.1.12.setStyle
    3.27.1.13.setWhere
    3.27.2.2.Click
    3.27.2.3.LoadData
    3.28.1.1.getStatus
    3.28.1.2.getValue
    3.28.1.3.hide
    3.28.1.4.setStyle
    3.28.1.5.setValue
    3.28.1.6.show
    3.28.1.7.toggle
    3.28.2.1.Click
    3.29.1.1.getValue
    3.29.1.2.setStyle
    3.29.1.3.setValue
    3.29.2.1.Click
    3.29.2.2.MouseDown
    3.29.2.3.MouseUp
    3.30.1.1.addText
    3.30.1.2.clearText
    3.30.1.3.delText
    3.30.1.4.setStyle
    3.30.2.1.Change
    3.30.2.2.Click
    3.31.1.1.addText
    3.31.1.2.clearText
    3.31.1.3.delText
    3.31.1.4.setDays
    3.31.1.7.setStyle
    3.31.2.1.Click
    3.32.1.2.setStyle
    3.32.2.1.Update
    3.33.1.1.addMarker
    3.33.1.3.delMarker
    3.33.1.5.showMap
    3.33.1.6.setStyle
    3.33.2.1.Click
    3.33.2.2.Move
    3.33.2.3.Zoom
    3.34.1.2.setData
    3.34.1.3.setStyle
    3.35.1.1.getDOM
    3.35.1.4.setStyle
    3.35.2.1.Blur
    3.35.2.2.Click
    3.35.2.5.Focus
    3.35.2.6.KeyDown
    3.35.2.7.KeyPress
    3.35.2.8.KeyUp
    3.35.2.9.MouseDown
    3.35.2.10.MouseUp
    3.35.2.11.Update
    3.36.1.1.iterate
    3.36.1.2.screens
    3.36.1.4.setScreen
    3.36.1.5.setStyle
    3.36.2.1.Iterate
    3.37.1.1.setSrc
    3.37.1.2.setStyle
    4.1.1.1.modelType
    4.1.1.2.conf
    4.1.1.3.name
    4.1.1.4.header
    4.1.2.1.as
    4.1.2.2.crossJoin
    4.1.2.4.expression
    4.1.2.5.findNext
    4.1.2.7.getCount
    4.1.2.8.innerJoin
    4.1.2.11.on
    4.1.2.16.readData
    4.1.2.18.select
    4.1.2.21.using
    4.2.1.1.modelType
    4.2.1.2.conf
    4.2.1.3.name
    4.2.1.4.header
    4.2.2.1.as
    4.2.2.2.crossJoin
    4.2.2.3.findNext
    4.2.2.5.getCount
    4.2.2.6.innerJoin
    4.2.2.8.on
    4.2.2.13.readData
    4.2.2.15.select
   5.2.1.関数
    5.2.1.1.customLog
    5.2.1.2.deleteFile
    5.2.1.4.getHoliday
    5.2.1.9.logout
    5.2.1.13.sendMail
    5.2.1.15.upload
   5.3.1.関数
    5.3.1.2.clearCache
    5.3.1.4.findNext
    5.3.1.5.getColumns
    5.3.1.6.getCount
    5.3.1.13.readData
   5.5.1.関数
    5.5.1.1.apply
    5.5.1.2.exists
    5.5.1.3.set
   5.6.1.関数
    5.6.1.1.open
   5.7.1.関数
    5.7.1.1.alert
    5.7.1.3.confirm
    5.7.1.4.message
    5.7.1.5.openFile
    5.7.1.6.openUrl
    5.7.1.7.show
    5.7.1.10.showModal
   5.9.1.関数
    5.9.1.1.data
    5.9.1.2.del
    5.9.1.3.get
    5.9.1.4.keys
    5.9.1.5.set
   5.10.1.関数
    5.10.1.1.execute
    5.11.1.1.parse
   5.12.2.series
   5.14.1.関数
    5.14.1.1.end
    5.14.1.2.get
    5.14.1.3.head
    5.14.1.4.post
    5.14.1.5.query
    5.14.1.6.send
    5.14.1.7.set
    5.15.1.2.emit
    5.15.1.3.listeners
    5.15.1.4.on
    5.15.1.5.once
   5.16.1.関数
    5.16.1.1.Decimal
    5.16.2.1.toString
    5.16.2.2.toNumber
    5.16.2.3.add
    5.16.2.4.sub
    5.16.2.5.mul
    5.16.2.6.div
   5.17.1.関数
    6.1.1.3.IN
    6.1.1.4.BETWEEN
    6.1.1.5.IS NULL
   6.1.4.用例
   10.3.2.関数
    10.4.2.1.append
    10.4.2.3.basename
    10.4.2.6.extname
    10.4.2.8.mkdir
    10.4.2.9.move
    10.4.2.10.read
    10.4.2.11.readdir
    10.4.2.12.remove
    10.4.2.13.rename
    10.4.2.14.stat
    10.4.2.15.unzip
    10.4.2.16.write
    10.4.2.17.zip
   10.5.1.関数
    10.5.1.1.output
   10.6.1.関数
    10.6.1.1.getURL
    10.6.1.2.register
   10.8.4.行
   10.8.5.セル
   10.8.6.画像
    10.8.7.3.配置
    10.8.7.4.枠線
    10.9.2.1.addBox
    10.9.2.2.addImage
    10.9.2.3.addLine
    10.9.2.5.addText
    10.9.2.7.newDoc
    10.9.2.8.newPage
    10.9.2.9.ouput
    10.9.3.1.実例1
    10.9.3.2.実例2

1.概要

この文書では、Buddyアプリ開発者がスクリーン設計においてJavaScriptプログラムの開発に用いるアプリケーションプログラムインタフェース(API)について述べます。

1.1.JavaScript APIの構成

BuddyのJavaScript APIは、スクリーン設計およびサーバー機能設計に用いられます。

スクリーン設計のJavaScript APIは次の構成要素に大別されます。

 a. スクリーンオブジェクト
 b. スクリーンモジュール
 c. モデルオブジェクト
 d. apiオブジェクト
 e. データベースAPI
 f. イベントAPI
 g. フィルタAPI
 h. 数式API

一方、サーバー機能設計のJavaScript APIはサーバー側で実行する処理を記述するために用いられます。

2.スクリーンオブジェクト

アプリを構成する個々の画面を表すオブジェクトのことを「スクリーンオブジェクト」と呼びます。基本的に1つのスクリーンオブジェクトは1つの画面に対応します。

2.1.スクリーンプログラム

スクリーン設計においてBuddyアプリ開発者が作成するJavaScriptプログラムのことを「スクリーンプログラム」と呼びます。スクリーンプログラムは以下のテンプレートに基づいて作成します。

 module.exports = function(api){
         var actions = {
                 // ここにアクションを記述します
         };
         var events = {
                 onLoad: function(){
                 },
                 onUnload: function(){
                 },
                 onResize: function(){
                 },
                 // ここにイベントハンドラを記述します
                 radioname: {
                         // ここにラジオボタン群のイベントハンドラを記述します
                 }
         };
         var formulas = {
                 // ここに数式ハンドラを記述します
         };
         return {
                 "actions": actions,
                 "events": events,
                 "formulas": formulas
         };
 };

スクリーンプログラムは、全体が1つの関数定義になっています。この関数の形で記述されるオブジェクトを「スクリーンオブジェクト」と呼びます。関数のapi引数には、スクリーンプログラム開発に用いる種々のJavaScriptライブラリへのアクセスを提供する「apiオブジェクト」が渡されます。apiオブジェクトの詳細については【apiオブジェクト】の節を参照してください。

var actions = { ... から始まるブロックにはアクションを記述します。アクションには、スクリーンオブジェクトのプログラム中で繰り返し使うサブルーチンや、スクリーンの外側に公開する関数などがあります。

var events = { ... から始まるブロックにはイベントハンドラを記述します。テンプレートにはonLoad、onUnload、onResizeの3つのイベント(後述)に対するハンドラの雛形があらかじめ用意されています。ボタンやテキストボックスなどのスクリーンモジュールから発生するイベントを受け取るためのイベントハンドラもこのブロックに記述します。イベントハンドラの記述方法については【イベントAPI】の節を参照してください。eventsブロック内のradioname: { ... で始まる部分にはラジオボタン群のイベントハンドラを記述します。詳しくは【ラジオボタン群の操作】の節を参照してください。

var formulas = { ... から始まるブロックには数式ハンドラを記述します。数式ハンドラの記述方法については【数式API】の節を参照してください。

2.2.メソッド

本項ではスクリーンオブジェクトのメソッドについて説明します。

2.2.1.deserialize

deserializeメソッドはスクリーンを構成するすべてのモジュールの現在の状態を復元します。

 this.deserialize(data)

data引数には後述のserializeメソッドで得られる文字列を与えます。

2.2.2.emit

emitメソッドはイベントを発出します。

 this.emit(name, data)

name引数にはイベント名を文字列で与えます。data引数にはイベントハンドラに渡されるデータ(オブジェクト)を与えます。

2.2.3.getItemDataForDB

getItemDataForDBメソッドはDBテーブル・DBビューのカラムに関連付けられたスクリーンモジュールの値を一括して取得します。このメソッドの呼び出し方法には次の2通りがあります。

 this.getItemDataForDB(modelName)
 this.getItemDataForDB(cols, modelName)

modelName引数にはDBテーブル・DBビューの名前を与えます。cols引数にはカラム名の配列を与えます。戻り値は {カラム名: 値, …} の形式のオブジェクトです。

このメソッドは対象カラムが配列かどうかを見てスクリーンモジュールの値を次のように処理します。

カラムが配列の場合
スクリーンモジュールの値が配列でなければ配列化します(値のチェックは配列要素毎に行います)。
カラムが配列でない場合
スクリーンモジュールの値が配列のとき、空配列ならnull、1要素の配列ならその要素、複数要素の配列ならコンマ(,)で連結した文字列に変換します。

このメソッドはスクリーンオブジェクトの【this.radionames.<name>.setTable】および【this.radionames.<name>.setColumn】でラジオボタン群に関連付けられたDBテーブル・DBビューのカラムも処理対象とします。

2.2.4.getScreenInfo

getScreenInfoメソッドはスクリーンに関する情報を返します。

 this.getScreenInfo()

戻り値は以下のプロパティから成るオブジェクトです。

PID
スクリーンコンテナとボックスの入れ子に対応した名前。
ScreenName
スクリーン名。
ScreenDisplayname
スクリーンの表示名。
ScreenType
スクリーンタイプ("PAGE"または"CONTAINER")。
ScreenLayout
スクリーンレイアウトの種別("box"または"grid")。
ScreenMinWidth
スクリーンオプションの「モバイル対応幅」の値。

2.2.5.getParams

getParamsメソッドはURLのパラメータ部分を返します。

 this.getParams()

戻り値は{変数名: 値, ...}の形式のオブジェクトです。

2.2.6.getQuery

getQueryメソッドはURL末尾のクエリ部分を返します。

 this.getQuery()

戻り値は{変数名: 値, ...}の形式のオブジェクトです。

2.2.7.serialize

serializeメソッドはスクリーンを構成するすべてのモジュールの現在の状態をひとつの文字列にまとめます(この処理をシリアライズと呼びます)。

 this.serialize()

別のスクリーンに移って戻ってきたときにスクリーンの状態を元に戻すスクリーンプログラムの例を以下に示します。

 onUnload: function(){
     api.store[&quot;serialize&quot;] = this.serialize();
 },
 onLoad: function(){
     var data = api.store[&quot;serialize&quot;];
     if (data) {
         this.deserialize(data);
     }
 },

onUnload関数(Uploadイベントハンドラ)はスクリーンを閉じるとき(たとえば別のスクリーンへ移るとき)に呼ばれます。この関数の中でserializeメソッドを用いてスクリーンを構成する全モジュールの現在の状態をシリアライズしてapi.storeモジュールのキーバリューストアに保存します。onLoad関数(Loadイベントハンドラ)はスクリーンを開くとき(たとえば別のスクリーンから戻ってきたとき)に呼ばれます。この関数の中でapi.storeモジュールのキーバリューストアを調べて、もしシリアライズの結果が保存されていたら、deserializeメソッドを用いてスクリーンを構成するモジュールの状態を復元します。

2.2.8.setItemDataFromDB

setItemDataFromDBメソッドはDBテーブル・DBビューのカラムに関連付けられたスクリーンモジュールの値を一括して設定します。このメソッドの呼び出し方法には次の2通りがあります。

 this.setItemDataFromDB(modelName, data)
 this.setItemDataFromDB(cols, data)

modelName引数にはDBテーブル・DBビューの名前を与えます。data引数には設定する値を {カラム名: 値, …} の形式のオブジェクトで与えます。cols引数には以下のプロパティから成るオブジェクトを要素とする配列を与えます。

name
スクリーンモジュール名
source
data引数のカラム名

このメソッドはスクリーンオブジェクトの【this.radionames.<name>.setTable】および【this.radionames.<name>.setColumn】でラジオボタン群に関連付けられたDBテーブル・DBビューのカラムも処理対象とします。

2.2.9.transitionTo

transitionToメソッドは現在のスクリーンから別のスクリーンへ移行します。

 transitionTo(screenName, params, query)

screenName引数にはスクリーン名を文字列で与えます。params引数にはURLの追加パスとしてデータを渡すときに使用するパラメータを与えます。ただし、どのような追加パスを使用するかをあらかじめ設定しておく必要があり、今のところアプリのスクリーンについてこの設定をする手段が用意されていないため使えません。よってparams引数には空のオブジェクト{}を指定してください。query引数にはURLの末尾に「?変数=値&...」の形式でデータを渡すためのクエリを{変数名: 値, ...}の形式のオブジェクトで与えます。params引数とquery引数は省略できます。

2.3.イベント

本項ではスクリーンオブジェクトから発生するイベントについて説明します。

2.3.1.Iterate

Iterateイベントは、スクリーンコンテナモジュールのiterateアクションが実行されたときに生じます。イベントハンドラは次のように定義します。

 onIterate: function(data, index){ ... }

data引数にはスクリーンコンテナモジュールのiterateアクションの引数に与えたデータ配列の要素、index引数には何番目の反復かを表す値(最初が0)が渡されます。

2.3.2.Load

Loadイベントはスクリーンが表示されたときに生じます。イベントハンドラは次のように定義します。

 onLoad: function(){ ... }

2.3.3.Resize

Resizeイベントはスクリーンが表示されたときと縦横サイズが変更されたときに生じます。イベントハンドラは次のように定義します。

 onResize: function(){ ... }

2.3.4.Unload

Unloadイベントはスクリーンが閉じられるときに生じます。イベントハンドラは次のように定義します。

 onUnload: function(){ ... }

2.4.プロパティ

本項ではスクリーンオブジェクトのプロパティについて説明します。

2.4.1.items

スクリーンオブジェクトのitemsプロパティ(this.items)は、そのスクリーンを構成するボタンやテキストボックスなどの要素(スクリーンモジュール)へのアクセスを提供するオブジェクトです。たとえば、BUTTON1という名前のボタンモジュールは次のように参照できます。

 this.items.BUTTON1

スクリーンモジュールには各種のアクション(後述)が定義されています。たとえばボタンモジュールには値を設定するsetValueアクションが設けられています。このアクションは次のように実行することができます。

 this.items.BUTTON1.setValue(&quot;apple&quot;);

2.4.2.models

スクリーンオブジェクトのmodelsプロパティ(this.models)は、アプリで定義されたテーブルおよびビューの設計情報へのアクセスを提供するオブジェクトです。

2.4.3.radionames

スクリーンオブジェクトのradionamesプロパティ(this.radionames)は、同じradioname属性をもつラジオボタン群について、現在選択されているラジオボタンのアイテム名やキャプション(caption)を得るためのメソッドを提供するオブジェクトです。詳しくは【ラジオボタン群の操作】の節を参照してください。

3.スクリーンモジュール

スクリーンモジュールは、スクリーンを構成する部品を表すオブジェクトです。スクリーンモジュールには、大きく4つの用途別に以下のものがあります。

3.1.横配置ボックス

横配置ボックスモジュールは、入れ子になった他のスクリーンモジュール(子モジュール)を横に並べて画面上に配置するレイアウト用のモジュールです。子モジュールは横1列分の幅の合計が横配置ボックスモジュールの幅を超えないように折り返して配置されます。

3.1.1.アクション

本項では横配置ボックスモジュールのアクションについて説明します。

3.1.1.1.setStyle

横配置ボックスのスタイルを設定します。style引数にはスタイルオブジェクトを与えます。

 setStyle(style)

たとえば、HORIZONTAL1というモジュール名の横配置ボックスにスタイルを設定するには次のように記述します。

 this.items.HORIZONTAL1.setStyle({ width: &quot;300px&quot;, height: &quot;400px&quot; });

3.1.2.イベント

本項では横配置ボックスモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.1.2.1.Click

Clickイベントはモジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.1.2.2.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }
3.1.2.3.DoubleClick

DoubleClickイベントはモジュールがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.1.2.4.MouseDown

MouseDownイベントはモジュール上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }
3.1.2.5.MouseUp

MouseUpイベントはモジュール上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

3.2.縦配置ボックス

縦配置ボックスモジュールは、入れ子になった他のスクリーンモジュール(子モジュール)を縦に並べて画面上に配置するレイアウト用のモジュールです。前項の横配置ボックスモジュールとは異なり、子モジュールの高さの合計が縦配置ボックスモジュールの高さを超えても折り返しはされません。

3.2.1.アクション

本項では縦配置ボックスモジュールのアクションについて説明します。

3.2.1.1.setStyle

縦配置ボックスのスタイルを設定します。style引数にはスタイルオブジェクトを与えます。

 setStyle(style)

たとえば、VERTICAL1というモジュール名の縦配置ボックスにスタイルを設定するには次のように記述します。

 this.items.VERTICAL1.setStyle({ width: &quot;300px&quot;, height: &quot;400px&quot; });

3.2.2.イベント

本項では縦配置ボックスモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.2.2.1.Click

Clickイベントはモジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.2.2.2.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.2.2.3.DoubleClick

DoubleClickイベントはモジュールがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.2.2.4.MouseDown

MouseDownイベントはモジュール上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.2.2.5.MouseUp

MouseUpイベントはモジュール上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.3.自由配置ボックス

自由配置ボックスモジュールは、入れ子になった他のスクリーンモジュール(子モジュール)をモジュール枠内の自由な位置に配置できるレイアウト用のモジュールです。

3.3.1.アクション

本項では自由配置ボックスモジュールのアクションについて説明します。

3.3.1.1.setStyle

自由配置ボックスのスタイルを設定します。style引数にはスタイルオブジェクトを与えます。

 setStyle(style)

たとえば、FREE1というモジュール名の自由配置ボックスにスタイルを設定するには次のように記述します。

 this.items.FREE1.setStyle({ width: &quot;300px&quot;, height: &quot;400px&quot; });

3.3.2.イベント

本項では自由配置ボックスモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.3.2.1.Click

Clickイベントはモジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.3.2.2.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.3.2.3.DoubleClick

DoubleClickイベントはモジュールがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.3.2.4.MouseDown

MouseDownイベントはモジュール上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.3.2.5.MouseUp

MouseUpイベントはモジュール上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.4.水平区切り線

水平区切り線モジュールは、画面を区切る横線を引くレイアウト用のモジュールです。

3.4.1.アクション

本項では水平区切り線モジュールのアクションについて説明します。

3.4.1.1.setStyle

setStyleアクションは、水平区切り線のスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.4.2.イベント

本項では水平区切り線モジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.4.2.1.Click

Clickイベントは水平区切り線がクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.4.2.2.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.4.2.3.DoubleClick

DoubleClickイベントは水平区切り線がダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.4.2.4.MouseDown

MouseDownイベントは水平区切り線の上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.4.2.5.MouseUp

MouseUpイベントは水平区切り線の上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.5.垂直区切り線

垂直区切り線モジュール、画面を区切る縦線を引くレイアウト用のモジュールです。

3.5.1.アクション

本項では垂直区切り線モジュールのアクションについて説明します。

3.5.1.1.setStyle

setStyleアクションは、垂直区切り線のスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.5.2.イベント

本項では垂直区切り線モジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.5.2.1.Click

Clickイベントは垂直区切り線がクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.5.2.2.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.5.2.3.DoubleClick

DoubleClickイベントは垂直区切り線がダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.5.2.4.MouseDown

MouseDownイベントは垂直区切り線の上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.5.2.5.MouseUp

MouseUpイベントは垂直区切り線の上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.6.ボタン

ボタンモジュールは、画面上にボタンを設けるモジュールです。

3.6.1.アクション

本項ではボタンモジュールのアクションについて説明します。

3.6.1.1.setDisabled

setDisabledアクションは、ボタンを押せない無効状態に設定します。

 setDisabled(value)

value引数には真偽値を与えます。valueが真のときは無効状態になり、それ以外のときは無効状態が解除されます。

3.6.1.2.setStyle

setStyleアクションは、ボタンのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.6.1.3.setValue

setValueアクションは、ボタン内に表示されるラベル文字列を設定します。

 setValue(value)

value引数にはラベル文字列を与えます。

3.6.2.イベント

本項ではボタンモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.6.2.1.Blur

Blurイベントはボタンから入力フォーカスが外れたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onBlur: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.6.2.2.Click

Clickイベントはモジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.6.2.3.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.6.2.4.DoubleClick

DoubleClickイベントはモジュールがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.6.2.5.Focus

Focusイベントはボタンに入力フォーカスが移ってきたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onFocus: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.6.2.6.MouseDown

MouseDownイベントはモジュール上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.6.2.7.MouseUp

MouseUpイベントはモジュール上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.7.データインプット

データインプットモジュールは、DBテーブルのカラムに関連付けれたデータ入力欄を設けるモジュールです。データの入力方法は、カラムの設定に応じてテキストボックス、チェックボックス、プルダウンメニュー、日付選択などの入力方法の中から自動的に選ばれます。

3.7.1.アクション

本項ではデータインプットモジュールのアクションについて説明します。

3.7.1.1.getValue

getValueアクションは、データ入力欄に入っている値を返します。

 getValue()
3.7.1.2.setDisabled

setDisabledアクションは、データ入力欄を使用できない無効状態に設定します。

 setDisabled(value)

value引数には真偽値を与えます。valueが真のときは無効状態になり、それ以外のときは無効状態が解除されます。

3.7.1.3.setFilter

setFilterアクションは、データ入力欄に適用するフィルタを設定します。

 setFilter(filters)

filters引数にはフィルタ名を文字列で与えます。フィルタ名はカンマで区切って複数指定できます。フィルタの詳細については後述の【フィルタAPI】の節を参照してください。

データ入力欄は(1)HTMLのプルダウンメニュー、チェックボックス、画像として表示される場合と(2)テキストボックスとして表示される場合があります。(1)の場合はフィルタ設定の有無による違いはありません。(2)の場合はフィルタを指定すると次のように動作します。

 ・入力フォーカスがある時はフィルタを適用しません。
 ・入力フォーカスが外れた時はフィルタを適用します。
 ・getValue()やsetValue()の値にはフィルタを適用しません。
3.7.1.4.setFocus

setFocusアクションは、データ入力欄に入力フォーカスを移します。

 setFocus()
3.7.1.5.setReadOnly

setReadOnlyアクションは、データ入力欄を読み取り専用に設定します。

 setReadOnly(value)

value引数には真偽値を与えます。valueが真のときは読み取り専用になり、それ以外のときは読み取り専用状態が解除されます。

3.7.1.6.setStyle

setStyleアクションは、データ入力欄のスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.7.1.7.setValue

setValueアクションは、データ入力欄の値を設定します。

 setValue(value)

value引数には設定する値を与えます。データ入力欄の値が変わると後述の【Change】イベントが発生します。

3.7.2.イベント

本項ではデータインプットモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.7.2.1.Blur

Blurイベントはデータ入力欄から入力フォーカスが外れたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onBlur: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.7.2.2.Change

Changeイベントはデータ入力欄の値が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.value
変化後の値
evt.cause
"set"(setValueアクションによる変更)または"user"(ユーザによる変更)
3.7.2.3.Click

Clickイベントはデータ入力欄がクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.7.2.4.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.7.2.5.DoubleClick

DoubleClickイベントはモジュールがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.7.2.6.Focus

Focusイベントはデータ入力欄に入力フォーカスが移ってきたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onFocus: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.7.2.7.KeyDown

KeyDownイベントはモジュール上でキーボードのキーが押し下げられたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.7.2.8.KeyPress

KeyPressイベントはモジュール上でキーボードのキーが押されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyPress: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.7.2.9.KeyUp

KeyUpイベントはモジュール上で押下されたキーボードのキーが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.7.2.10.MouseDown

MouseDownイベントはモジュール上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.7.2.11.MouseUp

MouseUpイベントはモジュール上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.8.テキストボックス

テキストボックスモジュールは、画面上に文字列の入力欄を設けるモジュールです。

3.8.1.アクション

本項ではテキストボックスモジュールのアクションについて説明します。

3.8.1.1.getValue

getValueアクションは、テキストボックスに入っている値を返します。

 getValue()
3.8.1.2.setDisabled

setDisabledアクションは、テキストボックスを使用できない無効状態に設定します。

 setDisabled(value)

value引数には真偽値を与えます。valueが真のときは無効状態になり、それ以外のときは無効状態が解除されます。

3.8.1.3.setFilter

setFilterアクションは、テキストボックスに適用するフィルタを設定します。

 setFilter(filters)

filters引数にはフィルタ名を文字列で与えます。フィルタ名はカンマで区切って複数指定できます。フィルタの詳細については後述の【フィルタAPI】の節を参照してください。

フィルタが設定されたテキストボックスは次のように動作します。

 ・入力フォーカスがある時はフィルタを適用しません。
 ・入力フォーカスが外れた時はフィルタを適用します。
 ・getValue()やsetValue()の値にはフィルタを適用しません。
3.8.1.4.setFocus

setFocusアクションは、テキストボックスに入力フォーカスを移します。

 setFocus()
3.8.1.5.setReadOnly

setReadOnlyアクションは、テキストボックスを読み取り専用に設定します。

 setReadOnly(value)

value引数には真偽値を与えます。valueが真のときは読み取り専用になり、それ以外のときは読み取り専用状態が解除されます。

3.8.1.6.setStyle

setStyleアクションは、テキストボックスのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.8.1.7.setValue

setValueアクションは、テキストボックスの値を設定します。

 setValue(value)

value引数には設定する値を与えます。テキストボックスの値が変わると後述の【Change】イベントが発生します。

3.8.2.イベント

本項ではテキストボックスモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.8.2.1.Blur

Blurイベントはテキストボックスから入力フォーカスが外れたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onBlur: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.8.2.2.Change

Changeイベントはテキストボックスの値が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.value
変化後の値
evt.cause
"set"(setValueアクションによる変更)または"user"(ユーザによる変更)
3.8.2.3.Click

Clickイベントはテキストボックスがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.8.2.4.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.8.2.5.DoubleClick

DoubleClickイベントはテキストボックスがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.8.2.6.Focus

Focusイベントはテキストボックスに入力フォーカスが移ってきたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onFocus: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.8.2.7.KeyDown

KeyDownイベントはテキストボックス上でキーボードのキーが押し下げられたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.8.2.8.KeyPress

KeyPressイベントはテキストボックス上でキーボードのキーが押されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyPress: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.8.2.9.KeyUp

KeyUpイベントはテキストボックス上で押下されたキーボードのキーが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.8.2.10.MouseDown

MouseDownイベントはテキストボックス上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.8.2.11.MouseUp

MouseUpイベントはテキストボックス上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.9.チェックボックス

チェックボックスモジュールは、画面上に真偽値(オン・オフ)の入力欄を設けるモジュールです。

3.9.1.アクション

本項ではチェックボックスモジュールのアクションについて説明します。

3.9.1.1.getChecked

getCheckedアクションは、チェックボックスに入っている値を返します。

 getChecked()
3.9.1.2.setCaption

setCaptionアクションは、チェックボックスのラベル文字列(キャプション)値を設定します。

 setCaption(text)

text引数には設定するラベル文字列を与えます。

3.9.1.3.setChecked

setCheckedアクションは、チェックボックスの値を設定します。

 setChecked(value)

value引数には設定する値(trueまたはfalse)を与えます。チェックボックスの値が変わると後述の【Change】イベントが発生します。

3.9.1.4.setDisabled

setDisabledアクションは、チェックボックスを操作できない無効状態に設定します。

 setDisabled(value)

value引数には真偽値を与えます。valueが真のときは無効状態になり、それ以外のときは無効状態が解除されます。

3.9.1.5.setStyle

setStyleアクションは、チェックボックスのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.9.2.イベント

本項ではチェックボックスモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.9.2.1.Blur

Blurイベントはチェックボックスから入力フォーカスが外れたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onBlur: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.9.2.2.Change

Changeイベントはチェックボックスの値が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.value
変化後の値
evt.cause
"set"(setCheckedアクションによる変更)または"user"(ユーザによる変更)
3.9.2.3.Click

Clickイベントはチェックボックスがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.9.2.4.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.9.2.5.DoubleClick

DoubleClickイベントはチェックボックスがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.9.2.6.Focus

Focusイベントはチェックボックスに入力フォーカスが移ってきたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onFocus: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.9.2.7.MouseDown

MouseDownイベントはチェックボックス上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.9.2.8.MouseUp

MouseUpイベントはチェックボックス上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.10.ラジオボタン

ラジオボタンモジュールは、画面上にラジオボタンを設けるモジュールです。複数のラジオボタンに同じradioname属性(ラジオボタン名)を付けて1つのグループにします。同じグループ内のラジオボタンは1つだけが選択された状態(オン)になり残りは選択されていない状態(オフ)になります。グループ単位のラジオボタンの操作については【ラジオボタン群の操作】の節を参照してください。

3.10.1.アクション

本項ではラジオボタンモジュールのアクションについて説明します。

3.10.1.1.getChecked

getCheckedアクションは、ラジオボタンに入っている値を返します。

 getChecked()
3.10.1.2.setCaption

setCaptionアクションは、ラジオボタンのラベル文字列(キャプション)値を設定します。

 setCaption(text)

text引数には設定するラベル文字列を与えます。

3.10.1.3.setChecked

setCheckedアクションは、ラジオボタンの値を設定します。

 setChecked(value)

value引数には設定する値(trueまたはfalse)を与えます。ラジオボタンの値が変わると後述の【Change】イベントが発生します。

3.10.1.4.setStyle

setStyleアクションは、ラジオボタンのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.10.2.イベント

本項ではラジオボタンモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.10.2.1.Blur

Blurイベントはラジオボタンから入力フォーカスが外れたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onBlur: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.10.2.2.Change

Changeイベントはラジオボタンの値が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.value
変化後の値
evt.cause
"set"(setCheckedアクションによる変更)または"user"(ユーザによる変更)
3.10.2.3.Click

Clickイベントはラジオボタンがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.10.2.4.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.10.2.5.DoubleClick

DoubleClickイベントはラジオボタンがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.10.2.6.Focus

Focusイベントはラジオボタンに入力フォーカスが移ってきたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onFocus: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.10.2.7.MouseDown

MouseDownイベントはラジオボタン上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.10.2.8.MouseUp

MouseUpイベントはラジオボタン上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.10.3.ラジオボタン群の操作

スクリーンオブジェクトのradionamesプロパティ(this.radionames)は、同じradioname属性(ラジオボタン名)を持つラジオボタン群について、現在選択されているラジオボタンのアイテム名やキャプション(caption)を得るためのメソッドを提供します。例えば、radionameがtestのラジオボタン群に関して現在選択されているラジオボタンのキャプションを得るには次のようなスクリプトを記述します。

 var caption = this.radionames.test.getCheckedCaption();

また、スクリーンスクリプトのeventsの中に次のようにradioname: {... で始まるオブジェクトの形でradioname単位のonChangeイベントハンドラを記述します。

 var events = {
     radioname: {
         test_onChange: function(){
             // ここにradionameがtestのラジオボタン群が変化したときの処理を記述する
         },
     },
 }

同じラジオボタン名(以下、<name>と表記)を持つラジオボタン群について次のメソッドが利用できます。

3.10.3.1.getChecked

getCheckedメソッドは選択されたラジオボタンのアイテム名とキャプションを返します。

 this.radionames.&lt;name&gt;.getChecked()

このメソッドは以下のプロパティからなるオブジェクトを返します。

name
アイテム名
caption
キャプション
3.10.3.2.getCheckedCaption

getCheckedCaptionメソッドは選択されたラジオボタンのキャプションを返します。

 this.radionames.&lt;name&gt;.getCheckedCaption()
3.10.3.3.getCheckedName

getCheckedNameメソッドは選択されたラジオボタンのアイテム名を返します。

 this.radionames.&lt;name&gt;.getCheckedName()
3.10.3.4.setCheckedCaption

setCheckedCaptionメソッドは指定されたキャプションを持つラジオボタンを選択された状態にします。

 this.radionames.&lt;name&gt;.setCheckedCaption(caption)

caption引数には選択状態にするラジオボタンのキャプションを与えます。

3.10.3.5.setColumn

setColumnメソッドはラジオボタン群をDBテーブル・DBビューのカラムに関連付けます。

 this.radionames.&lt;name&gt;.setColumn(column)

column引数には後述の【setTable】メソッドで指定したDBテーブル・DBビューのカラムの名前を文字列で与えます。カラムの関連付けを行うと【getItemDataForDB】および【setItemDataFromDB】による処理の対象になります。

3.10.3.6.setTable

setTableメソッドはラジオボタン群をDBテーブル・DBビューに関連付けます。

 this.radionames.&lt;name&gt;.setTable(table)

table引数にはDBテーブル・DBビューの名前を文字列で与えます。カラムの関連付けを行うには前述の【setColumn】メソッドを用います。

3.11.プルダウンリスト

プルダウンリストモジュールは、画面上にプルダウン方式の選択肢の入力欄を設けるモジュールです。選択肢は次の2つの方法で指定できます。

 a. 選択肢を配列で与える。
 b. DBテーブル・ビューのカラムから読んだデータを選択肢とする。

3.11.1.アクション

本項ではプルダウンリストモジュールのアクションについて説明します。

3.11.1.1.getSelectedDBValue

getSelectedDBValueアクションは、プルダウンリストの現在の値に対応するDBテーブル・ビューのデータ行について、指定されたカラムの値を返します。このアクションはプルダウンリストの選択肢をDBテーブル・ビューのカラムから読む場合にのみ利用できます。

 getSelectedDBValue(colname)

colname引数にはカラム名を指定します。プルダウンリストの選択肢を表示するためにデータベースから読み込んだデータを再利用するので、アプリケーションとサーバの間でデータをやりとりすることなく高速に動作します。

3.11.1.2.getValue

getValueアクションは、プルダウンリストに入っている値を返します。

 getValue()
3.11.1.3.reloadDB

reloadDBアクションは、プルダウンリストの選択肢をDBテーブル・ビューから読み直します。

 reloadDB()
3.11.1.4.setDisabled

setDisabledアクションは、プルダウンリストを操作できない無効状態に設定します。

 setDisabled(value)

value引数には真偽値を与えます。valueが真のときは無効状態になり、それ以外のときは無効状態が解除されます。

3.11.1.5.setOptions

setOptionsアクションは、プルダウンリストのオプションを設定します。

 setOptions(options)

options引数には次の2通りの方法でプルダウンリストのオプションを与えます。

 a. 選択肢を配列で与える
     次のプロパティからなるオブジェクトの配列をoptionsとして指定します。
        name: 表示文字列
        value: 値
 b. DBテーブル・ビューのカラムから読んだデータを選択肢とする
     次のプロパティからなるオブジェクトをoptionsとして指定します。
        modelname: DBテーブル・ビュー名
        columnname: 次のプロパティからなるオブジェクト
            name: 名前のカラム名
            value: 値のカラム名
        num: 最大件数
        useCache: キャッシュ有効
        useEmpty: 先頭に空白の選択肢を挿入
3.11.1.6.setReadOnly

setReadOnlyアクションは、プルダウンリストを読み取り専用に設定します。

 setReadOnly(value)

value引数には真偽値を与えます。valueが真のときは読み取り専用になり、それ以外のときは読み取り専用状態が解除されます。

3.11.1.7.setStyle

setStyleアクションは、プルダウンリストのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.11.1.8.setValue

setValueアクションは、プルダウンリストの値を設定します。

 setValue(value)

value引数には設定する値を与えます。プルダウンリストの値が変わると後述の【Change】イベントが発生します。

3.11.2.イベント

本項ではプルダウンリストモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.11.2.1.Blur

Blurイベントはプルダウンリストから入力フォーカスが外れたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onBlur: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.11.2.2.Change

Changeイベントは選択された値が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.value
変化後の値
evt.cause
"set"(setValue/setOptionsアクションによる変更)または"user"(ユーザによる変更)
3.11.2.3.Click

Clickイベントはプルダウンリストがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.11.2.4.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.11.2.5.DoubleClick

DoubleClickイベントはプルダウンリストがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.11.2.6.Focus

Focusイベントはプルダウンリストに入力フォーカスが移ってきたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onFocus: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.11.2.7.KeyDown

KeyDownイベントはプルダウンリスト上でキーボードのキーが押し下げられたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.11.2.8.KeyPress

KeyPressイベントはプルダウンリスト上でキーボードのキーが押されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyPress: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.11.2.9.KeyUp

KeyUpイベントはプルダウンリスト上で押下されたキーボードのキーが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.11.2.10.Load

Loadイベントはプルダウンリストの選択肢がDBテーブル・ビューのカラムから読み込まれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onLoad: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティには読み込まれたデータに関する情報が渡されます。

evt.defaultValue
読み込まれた値カラムの最初の値(デフォルト値)。読み込まれた件数が0のときはundefined。
3.11.2.11.MouseDown

MouseDownイベントはプルダウンリスト上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.11.2.12.MouseUp

MouseUpイベントはプルダウンリスト上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.12.コンボボックス

コンボボックスモジュールは、プルダウンリストとテキストボックスの機能を合わせ持つ入力欄を画面上に設けるモジュールです。プルダウンリストモジュールと同様に、選択肢は次の2つの方法で指定できます。

 a. 選択肢を配列で与える
 b. DBテーブル・ビューのカラムから読んだデータを選択肢とする。

また、選択肢にない文字列をテキストボックスモジュールと同様に自由に入力できます。

3.12.1.アクション

本項ではコンボボックスモジュールのアクションについて説明します。

3.12.1.1.getSelectedDBValue

getSelectedDBValueアクションは、コンボボックスの現在の値に対応するDBテーブル・ビューのデータ行について、指定されたカラムの値を返します。このアクションはコンボボックスの選択肢をDBテーブル・ビューのカラムから読む場合にのみ利用できます。

 getSelectedDBValue(colname)

colname引数にはカラム名を指定します。コンボボックスの選択肢を表示するためにデータベースから読み込んだデータを再利用するので、アプリケーションとサーバの間でデータをやりとりすることなく高速に動作します。

3.12.1.2.getValue

getValueアクションは、コンボボックスに入っている値を返します。

 getValue()
3.12.1.3.reloadDB

reloadDBアクションは、コンボボックス内のプルダウンリストの選択肢をDBテーブル・ビューから読み直します。

 reloadDB()
3.12.1.4.setOptions

setOptionsアクションは、コンボボックス内のプルダウンリストのオプションを設定します。

 setOptions(options)

options引数には次の2通りの方法でプルダウンリストのオプションを与えます。

 a. 選択肢を配列で与える
     次のプロパティからなるオブジェクトの配列をoptionsとして指定します。
        name: 表示文字列
        value: 値
 b. DBテーブル・ビューのカラムから読んだデータを選択肢とする
     次のプロパティからなるオブジェクトをoptionsとして指定します。
        modelname: DBテーブル・ビュー名
        columnname: 次のプロパティからなるオブジェクト
            name: 名前のカラム名
            value: 値のカラム名
        num: 最大件数
        useCache: キャッシュ有効
        useEmpty: 先頭に空白の選択肢を挿入
3.12.1.5.setReadOnly

setReadOnlyアクションは、コンボボックスを読み取り専用に設定します。

 setReadOnly(value)

value引数には真偽値を与えます。valueが真のときは読み取り専用になり、それ以外のときは読み取り専用状態が解除されます。

3.12.1.6.setStyle

setStyleアクションは、コンボボックスモジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.12.1.7.setValue

setValueアクションは、コンボボックスの値を設定します。

 setValue(value)

value引数には設定する値を与えます。コンボボックスの値が変わると後述の【Change】イベントが発生します。

3.12.2.イベント

本項ではコンボボックスモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.12.2.1.Blur

Blurイベントはコンボボックスから入力フォーカスが外れたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onBlur: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.12.2.2.Change

Changeイベントはコンボボックスの値が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.value
変化後の値
evt.cause
"set"(setValue/setOptionsアクションによる変更)または"user"(ユーザによる変更)
3.12.2.3.Click

Clickイベントはコンボボックスがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.12.2.4.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.12.2.5.DoubleClick

DoubleClickイベントはコンボボックスがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.12.2.6.Focus

Focusイベントはコンボボックスに入力フォーカスが移ってきたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onFocus: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.12.2.7.KeyDown

KeyDownイベントはコンボボックス上でキーボードのキーが押し下げられたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.12.2.8.KeyPress

KeyPressイベントはコンボボックス上でキーボードのキーが押されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyPress: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.12.2.9.KeyUp

KeyUpイベントはコンボボックス上で押下されたキーボードのキーが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.12.2.10.Load

Loadイベントはコンボボックスの選択肢がDBテーブル・ビューのカラムから読み込まれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onLoad: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティには読み込まれたデータに関する情報が渡されます。

evt.defaultValue
読み込まれた値カラムの最初の値(デフォルト値)。読み込まれた件数が0のときはundefined。
3.12.2.11.MouseDown

MouseDownイベントはコンボボックス上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.12.2.12.MouseUp

MouseUpイベントはコンボボックス上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.13.トグルスイッチ

トグルスイッチモジュールは、押された状態(オン)と押されていない状態(オフ)が交互に切り替わるスイッチを画面上に設けるモジュールです。

3.13.1.アクション

本項ではトグルスイッチモジュールのアクションについて説明します。

3.13.1.1.getValue

getValueアクションは、トグルスイッチの現在の状態を表す真偽値(オンならtrue、オフならfalse)を返します。

 getValue()
3.13.1.2.setStyle

setStyleアクションは、トグルスイッチのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.13.1.3.setValue

setValueアクションは、トグルスイッチの状態を設定します。

 setValue(value)

value引数には新しい状態を表す真偽値(オンならtrue、オフならfalse)を与えます。トグルスイッチの状態が変わると後述の【Change】イベントが発生します。

3.13.1.4.toggle

toggleアクションは、トグルスイッチの状態を切り替えます。

 toggle()

toggleアクションを実行すると後述の【Change】イベントが発生します。

3.13.2.イベント

本項ではトグルスイッチモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.13.2.1.Change

Changeイベントはトグルスイッチの値(状態)が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.value
変化後の値
evt.cause
"set"(setValueアクションによる変更)または"user"(ユーザによる変更)
3.13.2.2.Click

Clickイベントはトグルスイッチがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.14.スライダー

スライダーモジュールは、画面上にスライド式の数値入力欄を設けるモジュールです。スライダーモジュールでは、入力できる値の範囲(最大値と最小値)を設定できます。

3.14.1.アクション

本項ではスライダーモジュールのアクションについて説明します。

3.14.1.1.getValue

getValueアクションは、スライダーの現在の値を返します。

 getValue()
3.14.1.2.setDisabled

setDisabledアクションは、スライダーを操作できない無効状態に設定します。

 setDisabled(value)

value引数には真偽値を与えます。valueが真のときは無効状態になり、それ以外のときは無効状態が解除されます。

3.14.1.3.setMax

setMaxアクションは、スライダーで入力できる値の最大値を設定します。

 setMax(value)

value引数には新しい最大値を与えます。

3.14.1.4.setMin

setMinアクションは、スライダーで入力できる値の最小値を設定します。

 setMin(value)

value引数には新しい最小値を与えます。

3.14.1.5.setReadOnly

setReadOnlyアクションは、スライダーを読み取り専用に設定します。

 setReadOnly(value)

value引数には真偽値を与えます。valueが真のときは読み取り専用になり、それ以外のときは読み取り専用状態が解除されます。

3.14.1.6.setStep

setStepアクションは、スライダーの入力値の刻み幅を設定します。

 setStep(value)

value引数には新しい刻み幅を与えます。

3.14.1.7.setStyle

setStyleアクションは、スライダーのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.14.1.8.setValue

setValueアクションは、スライダーの値を設定します。

 setValue(value)

value引数には新しい値を与えます。スライダーの値が変わると後述の【Change】イベントが発生します。

3.14.2.イベント

本項ではスライダーモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.14.2.1.Blur

Blurイベントはスライダーから入力フォーカスが外れたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onBlur: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.14.2.2.Change

Changeイベントはスライダーの値が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.value
変化後の値
evt.cause
"set"(setValueアクションによる変更)または"user"(ユーザによる変更)
3.14.2.3.Click

Clickイベントはスライダーがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.14.2.4.Focus

Focusイベントはスライダーに入力フォーカスが移ってきたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onFocus: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.14.2.5.MouseDown

MouseDownイベントはスライダー上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.14.2.6.MouseUp

MouseUpイベントはスライダー上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.15.日時選択

日時選択モジュールは、画面上に日付入力欄と時刻入力欄を設けるモジュールです。

3.15.1.アクション

本項では日時選択モジュールのアクションについて説明します。

3.15.1.1.getValue

getValueアクションは、日時選択モジュールの現在の値を返します。

 getValue()
3.15.1.2.setDisabled

setDisabledアクションは、日時選択モジュールを操作できない無効状態に設定します。

 setDisabled(value)

value引数には真偽値を与えます。valueが真のときは無効状態になり、それ以外のときは無効状態が解除されます。

3.15.1.3.setFocus

setFocusアクションは、日時選択モジュールに入力フォーカスを移します。

 setFocus()
3.15.1.4.setHourOptions

setHourOptionsアクションは、時刻入力欄の時間の選択肢を設定します。

 setHourOptions(array)

array引数には時間の選択肢を数値の配列またはカンマ区切りの数値文字列(例:"9,10,11,12,13,14,15,16,17")で与えます。

3.15.1.5.setMaxDate

setMaxDateアクションは、日付入力欄で選択できる範囲の末尾日を設定します。

 setMaxDate(date)

date引数には範囲末尾日にセットする日付をDate型オブジェクト(またはDate型に変換できる日付文字列)で与えます。

3.15.1.6.setMinDate

setMinDateアクションは、日付入力欄で選択できる範囲の先頭日を設定します。

 setMinDate(date)

date引数には範囲先頭日にセットする日付をDate型オブジェクト(またはDate型に変換できる日付文字列)で与えます。

3.15.1.7.setMinuteOptions

setMinuteOptionsアクションは、時刻入力欄の分の選択肢を設定します。

 setMinuteOptions(array)

array引数には分の選択肢を数値の配列またはカンマ区切りの数値文字列(例:"0,15,30,45")で与えます。

3.15.1.8.setReadOnly

setReadOnlyアクションは、日時選択モジュールを読み取り専用に設定します。

 setReadOnly(value)

value引数には真偽値を与えます。valueが真のときは読み取り専用になり、それ以外のときは読み取り専用状態が解除されます。

3.15.1.9.setStyle

setStyleアクションは、日時選択モジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.15.1.10.setValue

setValueアクションは、日時選択モジュールの値を設定します。

 setValue(value)

value引数には新しい値(日付文字列)を与えます。値として有効な日付文字列については【フィルタAPI】の節(YMDフィルタの項)を参照してください。日時選択モジュールの値が変わると後述の【Change】イベントが発生します。

3.15.1.11.setUseTime

setUseTimeアクションは、日時選択モジュールの時刻入力欄を用いるかどうかを指定します。

 setUseTime(value)

value引数には、時刻を用いる場合は以下のいずれかの文字列を与えます。

hms
時分秒を使用
hm
時分のみを使用

時刻入力欄を使用しない場合は空文字列を与えます。

3.15.2.イベント

本項では日時選択モジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.15.2.1.Blur

Blurイベントは日時選択モジュールから入力フォーカスが外れたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onBlur: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.15.2.2.Change

Changeイベントは日時選択モジュールの値が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.value
変化後の値
evt.cause
"set"(setValueアクションによる変更)または"user"(ユーザによる変更)
3.15.2.3.Focus

Focusイベントは日時選択モジュールに入力フォーカスが移ってきたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onFocus: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.16.色選択

色選択モジュールは、画面上に色の入力欄を設けるモジュールです。色は#xxxxxxの形の文字列(xxxxxxは6桁の16進数)で表されます。入力欄をクリックすると色を対話的に選択できるダイアログが開きます。

3.16.1.アクション

本項では色選択モジュールのアクションについて説明します。

3.16.1.1.getValue

getValueアクションは、色選択モジュールの現在の値を返します。

 getValue()
3.16.1.2.setDisabled

setDisabledアクションは、色選択モジュールを操作できない無効状態に設定します。

 setDisabled(value)

value引数には真偽値を与えます。valueが真のときは無効状態になり、それ以外のときは無効状態が解除されます。

3.16.1.3.setReadOnly

setReadOnlyアクションは、色選択モジュールを読み取り専用に設定します。

 setReadOnly(value)

value引数には真偽値を与えます。valueが真のときは読み取り専用になり、それ以外のときは読み取り専用状態が解除されます。

3.16.1.4.setStyle

setStyleアクションは、色選択モジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.16.1.5.setValue

setValueアクションは、色選択モジュールの値を設定します。

 setValue(value)

value引数には新しい値を与えます。色選択モジュールの値が変わると後述の【Change】イベントが発生します。

3.16.2.イベント

本項では色選択モジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.16.2.1.Blur

Blurイベントは色選択モジュールから入力フォーカスが外れたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onBlur: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.16.2.2.Change

Changeイベントは色選択モジュールの値が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.value
変化後の値
evt.cause
"set"(setValueアクションによる変更)または"user"(ユーザによる変更)
3.16.2.3.Click

Clickイベントは色選択モジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.16.2.4.Focus

Focusイベントは色選択モジュールに入力フォーカスが移ってきたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onFocus: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.17.DBレコードセレクタ

DBレコードセレクタモジュールは、DBテーブルモジュールと連動してDBテーブル・ビューの表示を制御するためのボタン類を画面上に設けるモジュールです。DBレコードセレクタは、DBテーブルモジュールに表示される一連のレコードの最初のレコード番号を値として保持します。

3.17.1.アクション

本項ではDBレコードセレクタモジュールのアクションについて説明します。

3.17.1.1.getValue

getValueアクションは、DBレコードセレクタの現在の値を返します。

 getValue()
3.17.1.2.moveFirst

moveFirstアクションは、DBレコードセレクタの値をDBテーブル・ビューの最初のレコードに設定します。

 moveFirst()

moveFirstアクションを実行すると後述の【Change】イベントが発生します。

3.17.1.3.moveLast

moveLastアクションは、DBレコードセレクタの値をDBテーブル・ビューの最後のレコードに設定します。

 moveLast()

moveLastアクションを実行すると後述の【Change】イベントが発生します。

3.17.1.4.moveNext

moveNextアクションは、DBレコードセレクタの値を次のレコードに設定します。

 moveNext()

moveNextアクションを実行すると後述の【Change】イベントが発生します。

3.17.1.5.movePrev

movePrevアクションは、DBレコードセレクタの値を1つ前のレコードに設定します。

 movePrev()

movePrevアクションを実行すると後述の【Change】イベントが発生します。

3.17.1.6.searchDone

searchDoneアクションは、DBレコードセレクタのキーワード検索の状態を更新します。

 searchDone(offset)

offset引数にはDBテーブルモジュールのSearchDoneイベントを通じてアプリケーション側に渡されてくるキーワード検索結果のレコード番号を与えます。このレコード番号はDBレコードセレクタの検索ボタンを繰り返し押して、キーワードを含むレコードを順次検索するという動作を実現するために用いられます。

3.17.1.7.setMax

setMaxアクションは、DBレコードセレクタの値の最大値(DBテーブル・ビューのレコード数)を設定します。

 setMax(max)

max引数には最大レコード番号を与えます。setMaxアクションを実行すると後述の【Change】イベントが発生します。

3.17.1.8.setStyle

setStyleアクションは、DBレコードセレクタモジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.17.1.9.setValue

setValueアクションは、DBレコードセレクタの値を設定します。

 setValue(value)

value引数には新しい値を与えます。setValueアクションを実行すると後述の【Change】イベントが発生します。

3.17.1.10.useSearch

useSearchアクションは、DBレコードセレクタのキーワード検索機能を有効または無効にします。

 useSearch(value)

value引数には真偽値を与えます。valueが真のときはキーワード検索機能が有効状態になり、キーワード入力欄が表示されます。それ以外のときはキーワード検索機能が無効状態になり、キーワード入力欄が非表示になります。

3.17.2.イベント

本項ではDBレコードセレクタモジュールから発生するイベントについて説明します。

3.17.2.1.Change

ChangeイベントはDBレコードセレクタモジュールの値が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.value
変化後の値
evt.cause
"set"(setValueアクションによる変更)または"user"(ユーザによる変更)
3.17.2.2.Search

SearchイベントはDBレコードセレクタモジュールの検索ボタンが押されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onSearch: function(data){ ... }

イベントハンドラのdata引数には以下のプロパティから成るオブジェクトが渡されます。

data.keyword
検索キーワード
data.searchPos
検索開始位置(最初のレコードが0)

たとえばDBレコードセレクタモジュールRECORDSELECTOR1とDBテーブルモジュールDATABASETABLE1を連携させてキーワード検索を実現するには以下のようなイベントハンドラを記述します。

 RECORDSELECTOR1_onSearch: function(data){
     this.items.DATABASETABLE1.search(data.keyword, data.searchPos);
 },
 DATABASETABLE1_onSearchDone : function(data){
     this.items.RECORDSELECTOR1.searchDone(data.offset);
 },

検索結果(検索キーワードを含むレコードの番号)はDBテーブルモジュールのSearchDoneイベントを通じてアプリケーション側に返されます。これを受け取ってDBレコードセレクタのsearchDoneアクションに渡します。

3.18.タブ

タブモジュールは、ひとつのスクリーンコンテナで複数のスクリーン(タブ)を切り替えて表示ためのボタン群を画面上に配置するためのモジュールです。

3.18.1.アクション

本項ではタブモジュールのアクションについて説明します。

3.18.1.1.getSelected

getSelectedアクションは現在選択されているタブ名を返します。

 getSelected()
3.18.1.2.setItems

setItemsアクションはタブ切り替えボタンに表示される名前(タブ名)を設定します。

 setItems(items)

items引数には [{"name": "タブ名1"}, {"name": "タブ名2"}, …] の形式のJSON文字列を与えます。第N要素のnameプロパティの値がN番目のタブ名として用いられます。

3.18.1.3.setSelected

setSelectedアクションは、タブモジュールの表示するタブを設定します。

 setSelected(name)

name引数には表示するタブの名前を文字列で与えます。

3.18.1.4.setStyle

setStyleアクションは、タブモジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.18.2.イベント

本項ではタブモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.18.2.1.Change

Changeイベントはタブモジュールの表示するタブが変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.tab
選択されたタブを表すオブジェクト
evt.cause
"set"(setSelectedアクションによる変更)または"user"(ユーザによる変更)
3.18.2.2.Click

Clickイベントはタブモジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evt.tabにはクリックされたタブ切り替えボタンに関する情報を格納した以下のプロパティから成るオブジェクトが渡されます。

 evt.tab.name  …  クリックされたタブ名

タブモジュールTAB1とスクリーンコンテナモジュールSCREENCONTAINER1を連携させて複数のスクリーンを切り替えるには次のようなイベントハンドラを記述します。

 TAB1_onClick: function(evt){
     var tab = evt.tab;
     this.items.SCREENCONTAINER1.setScreen(tab.name);
 }

3.19.メニュー

メニューモジュールは、プルダウン方式のメニューを表示するためのメニューボタン群を画面上に配置するためのモジュールです。

3.19.1.アクション

本項ではメニューモジュールのアクションについて説明します。

3.19.1.1.open

openアクションは指定されたメニューを開きます。

 open(name)

name引数には開くメニュー名を文字列で与えます。

3.19.1.2.setStyle

setStyleアクションは、メニューモジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.19.2.イベント

本項ではメニューモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.19.2.1.Click

Clickイベントはメニューモジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evt.menuにはクリックされたメニューボタンに関する情報を格納した以下のプロパティから成るオブジェクトが渡されます。

 evt.menu.name  …  クリックされたメニュー名

3.20.ファイル選択

ファイル選択モジュールは、サーバにアップロードするファイルを選択するための入力欄を画面上に設けるモジュールです。

3.20.1.アクション

本項ではファイル選択モジュールのアクションについて説明します。

3.20.1.1.clear

clearアクションは、ファイル選択モジュールをファイルが選択されていない状態にします。

 clear()
3.20.1.2.getFiles

getFilesアクションは、選択されたファイルの集合を表すFileListオブジェクトを返します。FileListオブジェクトの詳細についてはHTML5 File APIのドキュメントを参照してください。

 getFiles()
3.20.1.3.getValue

getValueアクションは、ファイル選択モジュールの現在の値を返します。

 getValue()
3.20.1.4.readFile

readFileアクションは、選択されたファイルの内容を読み取ります。

 readFile(options, callback)

options引数には以下のプロパティからなるオブジェクトを与えます。

index
選択されたファイルのうち、内容を読み取るファイルの番号(先頭が0)
encode
ファイルの文字コード(デフォルトは"UTF-8")

callback引数にはコールバック関数を与えます。ファイル内容の読み取りが失敗した場合、第1引数にエラーメッセージ文字列が渡されます。成功した場合はコールバック関数の第1引数にはnull、第2引数にはファイルの内容が渡されます。

3.20.1.5.setDisabled

setDisabledアクションは、ファイル選択モジュールを操作できない無効状態に設定します。

 setDisabled(value)

value引数には真偽値を与えます。valueが真のときは無効状態になり、それ以外のときは無効状態が解除されます。

3.20.1.6.setStyle

setStyleアクションは、ファイル選択モジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.20.1.7.upload

uploadアクションは、選択されたファイルをサーバにアップロードします。

 upload(dir, options, callback)

dir引数にはサーバ上の保存先ディレクトリを文字列で与えます。options引数は現在は使用されません(空オブジェクト {} を与えてください)。callback引数にはコールバック関数を与えます。ファイル内容の読み取りが失敗した場合、第1引数にErrorオブジェクトが渡されます。成功した場合はコールバック関数の第1引数にはnull、第2引数にはアップロード結果が渡されます。

3.20.2.イベント

本項ではファイル選択モジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.20.2.1.Blur

Blurイベントはファイル選択モジュールから入力フォーカスが外れたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onBlur: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.20.2.2.Change

Changeイベントはファイル選択モジュールの値が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.value
変化後の値
3.20.2.3.Click

Clickイベントはファイル選択モジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.20.2.4.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.20.2.5.DoubleClick

DoubleClickイベントはファイル選択モジュールがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.20.2.6.Focus

Focusイベントはファイル選択モジュールに入力フォーカスが移ってきたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onFocus: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.20.2.7.KeyDown

KeyDownイベントはファイル選択モジュール上でキーボードのキーが押し下げられたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.20.2.8.KeyPress

KeyPressイベントはファイル選択モジュール上でキーボードのキーが押されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyPress: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.20.2.9.KeyUp

KeyUpイベントはファイル選択モジュール上で押下されたキーボードのキーが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.20.2.10.MouseDown

MouseDownイベントはファイル選択モジュール上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.20.2.11.MouseUp

MouseUpイベントはファイル選択モジュール上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.21.画像

画像モジュールは、画面上に画像を表示するためのモジュールです。

3.21.1.アクション

本項では画像モジュールのアクションについて説明します。

3.21.1.1.getAlt

getAltアクションは、画像モジュールが表示する代替テキストを得ます。

 getAlt()
3.21.1.2.getSrc

getSrcアクションは、画像モジュールが表示する画像ファイルのURLを得ます。

 getSrc()
3.21.1.3.getValue

getValueアクションは、画像モジュールが表示する画像ファイルのURLを得ます。

 getValue()
3.21.1.4.setAlt

setAltアクションは、画像モジュールが表示する代替テキストを設定します。

 setAlt(value)

value引数には新しい代替テキストを文字列で与えます。

3.21.1.5.setSrc

setSrcアクションは、画像モジュールが表示する画像ファイルのURLを設定します。

 setSrc(value)

value引数には新しい画像ファイルのURLを文字列で与えます。

3.21.1.6.setStyle

setStyleアクションは、画像モジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.21.1.7.setValue

setValueアクションは、画像モジュールが表示する画像ファイルのURLを設定します。

 setValue(value)

value引数には新しい画像ファイルのURLを文字列で与えます。

3.21.2.イベント

本項では画像モジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.21.2.1.Click

Clickイベントは画像モジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.21.2.2.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.21.2.3.DoubleClick

DoubleClickイベントは画像モジュールがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.21.2.4.Error

Errorイベントは指定された画像ファイルの読み込みに失敗したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onError: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.21.2.5.MouseDown

MouseDownイベントは画像モジュール上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.21.2.6.MouseUp

MouseUpイベントは画像モジュール上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.22.文字列

文字列モジュールは、画面上に文字列を表示するためのモジュールです。文字列モジュールは表示している文字列を値として保持します。

3.22.1.アクション

本項では文字列モジュールのアクションについて説明します。

3.22.1.1.getValue

getValueアクションは、文字列モジュールが表示する値(文字列)を返します。

 getValue()
3.22.1.2.setFilter

setFilterアクションは、文字列モジュールに適用するフィルタを設定します。

 setFilter(filters)

filters引数にはフィルタ名を文字列で与えます。フィルタ名はカンマで区切って複数指定できます。フィルタの詳細については後述の【フィルタAPI】の節を参照してください。リンク表示オプションが有効のときは、フィルタは表示文字列のみに適用され、リンク先のアドレスには適用されません。

3.22.1.3.setStyle

setStyleアクションは、文字列モジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.22.1.4.setValue

setValueアクションは、文字列モジュールが表示する値(文字列)を設定します。

 setValue(value)

value引数には新しい値を与えます。文字列モジュールの値が変わると後述の【Change】イベントが発生します。

3.22.2.イベント

本項では文字列モジュールから発生するイベントについて説明します。

3.22.2.1.Change

Changeイベントは文字列モジュールの値が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.value
変化後の値
evt.cause
"set"(setValueアクションによる変更)または"user"(ユーザによる変更)
3.22.2.2.Click

Clickイベントは文字列モジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.22.2.3.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.22.2.4.DoubleClick

DoubleClickイベントは文字列モジュールがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.22.2.5.MouseDown

MouseDownイベントは文字列モジュール上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.22.2.6.MouseUp

MouseUpイベントは文字列モジュール上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.23.数式

数式モジュールは自らの数値データを他のモジュールの数値データから自動的に計算して表示するためのモジュールです。計算内容は数式ハンドラとしてJavaScriptで記述します。数式ハンドラについては【数式API】の章を参照してください。

3.23.1.アクション

本項では数式モジュールのアクションについて説明します。

3.23.1.1.getValue

getValueアクションは数式モジュールの現在の値を返します。

 getValue()
3.23.1.2.setStyle

setStyleアクションは、数式モジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.23.2.イベント

本項では数式モジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.23.2.1.Change

Changeイベントは数式モジュールの値が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(){ ... }
3.23.2.2.Click

Clickイベントは数式モジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.23.2.3.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.23.2.4.DoubleClick

DoubleClickイベントは数式モジュールがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.23.2.5.MouseDown

MouseDownイベントは数式モジュール上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.23.2.6.MouseUp

MouseUpイベントは数式モジュール上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.24.リスト

リストモジュールは複数の項目を選択できる選択肢入力欄を画面上に設けるモジュールです。

3.24.1.アクション

本項ではリストモジュールのアクションについて説明します。

3.24.1.1.getSelectedDBValue

getSelectedDBValueアクションは、選択されたリスト項目に対応するDBテーブル・ビューのデータ行について、指定されたカラムの値を返します。このアクションはリストモジュールの選択肢をDBテーブル・ビューのカラムから読む場合にのみ利用できます。

 getSelectedDBValue(colname)

colname引数にはカラム名を指定します。リストモジュールの選択肢を表示するためにデータベースから読み込んだデータを再利用するので、アプリケーションとサーバの間でデータをやりとりすることなく高速に動作します。

3.24.1.2.getValue

getValueアクションは選択されたリスト項目の値を文字列配列として返します。

 getValue()
3.24.1.3.getSelection

getSelectionアクションは選択されたリスト項目の番号(先頭が0)を配列で返します。

 getSelection()
3.24.1.4.reloadDB

reloadDBアクションは、リストモジュールの選択肢をDBテーブル・ビューから読み直します。

 reloadDB()
3.24.1.5.setOptions

setOptionsアクションはリストモジュールの動作オプションを設定します。

 setOptions(options)

options引数には次の2通りの方法でオプションを与えます。

 a. 選択肢を配列で与える
     次のプロパティからなるオブジェクトの配列をoptionsとして指定します。
        name: 表示文字列
        value: 値
 b. DBテーブル・ビューのカラムから読んだデータを選択肢とする
     次のプロパティからなるオブジェクトをoptionsとして指定します。
        modelname: DBテーブル・ビュー名
        columnname: 次のプロパティからなるオブジェクトの配列
            name: 名前のカラム名
            value: 値のカラム名
        num: 最大件数

setOptionsアクションを実行するとすべてのリスト項目が選択されていない状態になります。

3.24.1.6.setSelection

setSelectionアクションは、リスト項目を選択された状態に設定します。

 setSelection(index)

index引数には選択状態にするリスト項目の番号(先頭が0)の配列を与えます。

3.24.1.7.setStyle

setStyleアクションは、リストモジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.24.1.8.setValue

setValueアクションは、リスト項目を選択された状態に設定します。

 setValue(value)

value引数には選択状態にするリスト項目の値(文字列または文字列配列)を与えます。

3.24.2.イベント

本項ではリストモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.24.2.1.Change

Changeイベントはリストモジュールの動作オプションの変更により値が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.value
変化後の選択要素番号の配列
evt.oldValue
変化前の選択要素番号の配列
evt.cause
"set"(setOptions、setSelection、setValueのいずれかのアクションによる変更)または"user"(ユーザの要素クリックによる変更)
3.24.2.2.Click

Clickイベントはリストモジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティにはクリックされたリスト項目の情報が渡されます。

evt.index
クリックされたリスト項目の番号(最初のリスト項目が0)
3.24.2.3.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.24.2.4.DoubleClick

DoubleClickイベントはリストモジュールがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.24.2.5.Load

Loadイベントはリストモジュールの選択肢がDBテーブル・ビューのカラムから読み込まれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onLoad: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.24.2.6.MouseDown

MouseDownイベントはリストモジュール上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.24.2.7.MouseUp

MouseUpイベントはリストモジュール上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.25.箇条書き

箇条書きモジュールは画面上に箇条書きのリストを表示するモジュールです。

3.25.1.アクション

本項では箇条書きモジュールのアクションについて説明します。

3.25.1.1.setItems

setItemsアクションは表示するリスト項目を設定します。

 setItems(items)

items引数にはリスト項目を文字列の配列で与えます。

3.25.1.2.setStyle

setStyleアクションは、箇条書きモジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.25.2.イベント

本項では箇条書きモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.25.2.1.Click

Clickイベントは箇条書きモジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティにはクリックされたリスト項目の情報が渡されます。

evt.index
クリックされたリスト項目の番号(最初のリスト項目が0)

3.26.テーブル

テーブルモジュールは行と列から成る表(テーブル)形式のデータを表示するためのモジュールです。テーブルには列ラベルを示すヘッダ行を付与することができます。

3.26.1.アクション

本項ではテーブルモジュールのアクションについて説明します。

3.26.1.1.setCellStyle

setCellStyleアクションはセル毎にスタイルを設定します。

 setCellStyle(func)

func引数には関数を与えます。この関数はテーブルの各セルに対して呼び出されます。関数の呼び出し時には3つの引数が渡されます。関数の引数リストを(rowIndex, colIndex, content)とすると、rowIndex引数はセルの行番号、colIndex引数はセルの列番号、content引数はセルの内容文字列(フィルタ適用前の内容文字列)を表します。行番号と列番号は0から始まります。この関数はスタイルオブジェクトまたは{outer: セルスタイル, inner: 内容スタイル}の形式のオブジェクトを返さなければなりません。

3.26.1.2.setColStyle

setColStyleアクションはカラムのスタイルを設定します。

 setColStyle(style)

style引数には(a)スタイルオブジェクト、(b)スタイルオブジェクトの配列、(c){outer: セルスタイル, inner: 内容スタイル}の形式のオブジェクト、または(d)(c)の形式のオブジェクトの配列を与えます。(a)および(c)の場合は全カラムに同じスタイルを適用します。(b)および(d)の場合はN番目の要素で与えられたスタイルがN番目のカラムに適用されます。outerはセル(<td>要素)に、innerはセルの内容に適用されます。

3.26.1.3.setColWidth

setColWidthアクションはテーブルの表示上の列幅を設定します。

 setColWidth(width)

width引数には列幅を(a)単独の値、(b)値の配列、(c){outer: セル幅, inner: 内容幅}の形式のオブジェクト、または(d)(c)の形式のオブジェクトの配列で与えます。(a)および(c)の場合は全カラムが同じ列幅になります。(b)および(d)の場合はN番目の要素で与えられた設定がN番目のカラムの列幅となります。outerはセル(<td>要素)に、innerはセルの内容に適用されます。列幅はピクセル数、パーセント値、「auto」を指定できます。パーセント指定は、outerならテーブル幅に対する割合、innerならセル幅に対する割合を意味します。

3.26.1.4.setFilter

setFilterアクションはテーブルのセルの内容に適用するフィルタを指定します。

 setFilter(filters)

filters引数にはカラム名とフィルタ名の対を以下の形式のオブジェクトで与えます。フィルタ名はカンマで区切って複数指定できます。

 {&quot;カラム名1&quot;: フィルタ名1, &quot;カラム名2&quot;: フィルタ名2, …}

フィルタの詳細については後述の【フィルタAPI】の節を参照してください。

3.26.1.5.setHeader

setHeaderアクションはヘッダ行を設定します。

 setHeader(headers)

headers引数には(a)カラム名文字列の配列、または(b)以下のプロパティから成るオブジェクトの配列を与えます。

 name … カラム名
 displayName … 表示名
alignment
配置。"left"(左寄せ)、"center"(中央)、"right"(右寄せ)のいずれか
3.26.1.6.setStyle

setStyleアクションは、テーブルモジュールのスタイルを設定します。

 setStyle(style)

style引数には(a)スタイルオブジェクト、または(b){outer: アイテムスタイル, inner: テーブルスタイル}を与えます。(a)の場合はアイテム(<table>要素の外側の<div>要素)にスタイルが適用されます。(b)の場合、outerで与えたスタイルはアイテムに、innerで与えたスタイルはテーブル(<table>要素)にそれぞれ適用されます。

3.26.1.7.setTable

setTableアクションはテーブルデータを設定します。

 setTable(table)

table引数にはテーブルデータを(a)文字列配列の配列、または(b){カラム名: 値, …}の形式のオブジェクトの配列で与えます。(a)の場合は上述のsetHeaderアクションでヘッダデータを設定しなければヘッダ行は表示されません。また、(b)の場合はsetHeaderアクションでヘッダデータを設定しなければテーブル自体が表示されません。

3.26.2.イベント

3.26.2.1.Click

Clickイベントはテーブルモジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティにクリックされたカラムに関する情報が渡されます。

evt.row
クリックされた行番号
evt.col
クリックされた列番号
evt.data
クリックされたレコード(文字列配列または{カラム名: 値, …}の形式のオブジェクト)

3.27.DBテーブル

DBテーブルモジュールはDBテーブルに格納されたデータを画面上に表示するためのモジュールです。

3.27.1.アクション

本項ではDBテーブルモジュールのアクションについて説明します。

3.27.1.1.getCount

getCountアクションは現在設定されている絞り込み条件の下で表示されるレコードの数を問い合わせます。

 getCount()

問い合わせ結果のレコード数はChangeCountイベント(後述)を通じてアプリケーション側に返されます。

3.27.1.2.initialize

initializeアクションはDBテーブルモジュールの表示内容を初期化します。

 initialize(options)

options引数には以下のプロパティから成るオブジェクトを与えます。

table
DBテーブル・ビューのモデルオブジェクト(必須)
headers
表示するカラム名の配列。配列要素は文字列または以下のプロパティから成るオブジェクト:
name … カラム名
displayName … 表示名
alignment
配置。"left"(左寄せ)、"center"(中央)、"right"(右寄せ)のいずれか
where
絞り込み条件。後述の【絞り込み条件】の節を参照。
order
並べ替え。後述の【並べ替え】の節を参照。
num … 表示件数
offset
先頭レコード番号(最初のレコードが0)
useCache
キャッシュ利用フラグ。真ならキャッシュを用います。
crossOptions
クロス集計オプション。クロス集計モジュールのUpdateイベントを通じて渡されてくるcrossOptionsプロパティの値を与えます。後述の【クロス集計オプション】の節を参照。
3.27.1.3.outputData

outputDataアクションはDBテーブルモジュールの表示内容を外部ファイルとして出力します。

 outputData(options)

options引数にはデータ出力オプションを以下のプロパティから成るオブジェクトで与えます。

format
出力ファイル形式。現在は "xlsx"(Microsoft Excel形式)のみサポート。
fileName
出力ファイル名。

データ出力が成功した場合はOutputDataCompletedイベント(後述)を通じて出力ファイルをダウンロードするためのURLがアプリケーション側に返されます。出力が失敗した場合はOutputDataFailedイベント(後述)を通じてエラーメッセージが返されます。

3.27.1.4.search

searchアクションはDBテーブル内のデータに対するキーワード検索を実行します。

 search(keyword, searchPos)

keyword引数には検索キーワードを文字列で与えます。searchPos引数にはキーワード検索の開始位置となるレコード番号を与えます(最初のレコードが0)。検索結果はSearchDoneイベント(後述)を通じてアプリケーション側に返されます。

3.27.1.5.setCellStyle

setCellStyleアクションはセル毎にスタイルを設定します。

 setCellStyle(func)

func引数には関数を与えます。この関数はDBテーブルの各セルに対して呼び出されます。関数の呼び出し時には3つの引数が渡されます。関数の引数リストを(rowIndex, colIndex, content)とすると、rowIndex引数はセルの行番号、colIndex引数はセルの列番号、content引数はセルの内容文字列(フィルタ適用前の内容文字列)を表します。行番号と列番号は0から始まります。この関数はスタイルオブジェクトまたは{outer: セルスタイル, inner: 内容スタイル}の形式のオブジェクトを返さなければなりません。

3.27.1.6.setColStyle

setColStyleアクションはカラムのスタイルを設定します。

 setColStyle(style)

style引数には(a)スタイルオブジェクト、(b)スタイルオブジェクトの配列、(c){outer: セルスタイル, inner: 内容スタイル}の形式のオブジェクト、または(d)(c)の形式のオブジェクトの配列を与えます。(a)および(c)の場合は全カラムに同じスタイルを適用します。(b)および(d)の場合はN番目の要素で与えられたスタイルがN番目のカラムに適用されます。outerはセル(<td>要素)に、innerはセルの内容に適用されます。

3.27.1.7.setColWidth

setColWidthアクションはDBテーブルの表示上の列幅を設定します。

 setColWidth(width)

width引数には列幅を(a)単独の値、(b)値の配列、(c){outer: セル幅, inner: 内容幅}の形式のオブジェクト、または(d)(c)の形式のオブジェクトの配列で与えます。(a)および(c)の場合は全カラムが同じ列幅になります。(b)および(d)の場合はN番目の要素で与えられた設定がN番目のカラムの列幅となります。outerはセル(<td>要素)に、innerはセルの内容に適用されます。列幅はピクセル数、パーセント値、「auto」を指定できます。パーセント指定は、outerならテーブル幅に対する割合、innerならセル幅に対する割合を意味します。

3.27.1.8.setFilter

setFilterアクションはDBテーブルから読み取ったカラムの値に適用するフィルタを指定します。

 setFilter(filters)

filters引数にはカラム名とフィルタ名の対を以下の形式のオブジェクトで与えます。フィルタ名はカンマで区切って複数指定できます。

 {&quot;カラム名1&quot;: フィルタ名1, &quot;カラム名2&quot;: フィルタ名2, …}

フィルタの詳細については後述の【フィルタAPI】の節を参照してください。

3.27.1.9.setNum

setNumアクションは表示するレコードの数を設定します。

 setNum(num)

num引数には表示レコード数を与えます。

3.27.1.10.setOffset

setOffsetアクションは先頭レコード番号を設定します。

 setOffset(offset)

offset引数にはレコード番号を与えます(最初のレコードが0)。

3.27.1.11.setOrder

setOrderアクションは表示レコードのソート順を設定します。

 setOrder(order)

order引数には並べ替えの方法を記述するオブジェクトを与えます。後述の【並べ替え】の節を参照してください。

3.27.1.12.setStyle

setStyleアクションはDBテーブルモジュールのスタイルを設定します。

 setStyle(style)

style引数には(a)スタイルオブジェクト、または(b){outer: アイテムスタイル, inner: テーブルスタイル}を与えます。(a)の場合はテーブル(<table>要素)にスタイルが適用されます。(b)の場合、outerで与えたスタイルはアイテム(<table>要素の外側の<div>要素)に、innerで与えたスタイルはテーブルにそれぞれ適用されます。

3.27.1.13.setWhere

setWhereアクションは表示レコードの絞り込み条件を設定します。

 setWhere(where)

where引数には絞り込み条件を与えます。後述の【絞り込み条件】の節を参照してください。

3.27.2.イベント

本項ではDBテーブルモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.27.2.1.ChangeCount

ChangeCountは絞り込み条件が変更されたとき、およびgetCountアクションが実行されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChangeCount: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

evt.value
レコード数
3.27.2.2.Click

ClickイベントはDBテーブルモジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティにクリックされたカラムに関する情報が渡されます。

evt.row
クリックされた行番号
evt.col
クリックされた列番号
evt.data
クリックされたレコード({カラム名: 値, …}の形式のオブジェクト)
3.27.2.3.LoadData

LoadDataイベントはDBテーブルから表示データを読み取り終えた終えたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onLoadData: function(){ ... }
3.27.2.4.OutputDataCompleted

OutputDataCompletedイベントはoutputDataアクションによるファイル出力が成功したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onOutputDataCompleted: function(data){ ... }

data引数には出力ファイルに関する情報が以下のプロパティを持つオブジェクトとして渡されます。

data.url
出力ファイルのダウンロードURL
3.27.2.5.OutputDataFailed

OutputDataFailedイベントはoutputDataアクションによるファイル出力が失敗したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onOutputDataFailed: function(error){ ... }

error引数にはエラーに関する情報が以下のプロパティを持つオブジェクトで渡されます。

error.message
エラーメッセージ
3.27.2.6.SearchDone

SearchDoneイベントはsearchアクションによるキーワード検索が完了したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onSearchDone: function(data){ ... }

data引数には検索結果に関する情報が以下のプロパティを持つオブジェクトとして渡されます。

data.offset
検索キーワードが見つかったレコードの番号(最初のレコードが0)

DBテーブルモジュールとDBレコードセレクタモジュールの検索機能の連携方法については【DBレコードセレクタ】の節を参照してください。

3.28.スピン

スピンモジュールは、回転する矢印を画面上にアニメーション表示するためのモジュールです。表示と非表示の2つの状態に切り替えられます。表示状態のときは回転アニメーションが繰り返されます。アプリケーションが時間のかかる処理をしている待ち時間などに用います。スピンモジュールは現在の表示状態を示す真偽値(表示中ならtrue、非表示ならfalse)を値として保持します。

3.28.1.アクション

本項ではスピンモジュールのアクションについて説明します。

3.28.1.1.getStatus

getStatusアクションは、スピンモジュールの表示状態を文字列(表示中なら"visible"、非表示なら"hidden")を返します。

 getStatus()
3.28.1.2.getValue

getValueアクションは、スピンモジュールの現在の値(表示中ならtrue、非表示ならfalse)を返します。

 getValue()
3.28.1.3.hide

hideアクションは、スピンモジュールを非表示にします。

 hide()
3.28.1.4.setStyle

setStyleアクションは、スピンモジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.28.1.5.setValue

setValueアクションは、スピンモジュールの値を設定します。

 setValue(value)

value引数には新しい値を与えます。

3.28.1.6.show

showアクションは、スピンモジュールを表示します。

 show()
3.28.1.7.toggle

toggleアクションは、スピンモジュールの表示・非表示の状態を入れ替えます。

 toggle()

3.28.2.イベント

本項ではスピンモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.28.2.1.Click

Clickイベントはスピンモジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.29.プログレスバー

プログレスバーモジュールは時間のかかる処理が全体の何パーセントまで進んだか(進捗率)を視覚的に示すためのモジュールです。

3.29.1.アクション

本項ではプログレスバーモジュールのアクションについて説明します。

3.29.1.1.getValue

getValueアクションはプログレスバーの進捗率を返します。

 getValue()
3.29.1.2.setStyle

setStyleアクションはプログレスバーのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.29.1.3.setValue

setValueアクションはプログレスバーの進捗率を設定します。

 setValue(value)

value引数には進捗率を0~100の数値で与えます。

3.29.2.イベント

本項ではプログレスバーモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.29.2.1.Click

Clickイベントはプログレスバーがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.29.2.2.MouseDown

MouseDownイベントはプログレスバー上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.29.2.3.MouseUp

MouseUpイベントはプログレスバー上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.30.カレンダー

カレンダーモジュールは画面上にカレンダーを表示するモジュールです。カレンダーには日付を指定してテキスト項目を挿入することができます。

3.30.1.アクション

本項ではカレンダーモジュールのアクションについて説明します。

3.30.1.1.addText

addTextアクションはカレンダーにテキスト項目を追加表示します。

 addText(date, text)

date引数には挿入先の日付をDate型で与えます。text引数には表示する文字列を指定します。

3.30.1.2.clearText

clearTextアクションは指定の日付に付与されているテキスト項目をすべて削除します。

 clearText(date)

date引数には日付をDate型で与えます。

3.30.1.3.delText

delTextアクションは指定の日付に付与されているテキスト項目をひとつ削除します。

 delText(date, index)

date引数には日付をDate型で与えます。index引数には削除するテキスト項目の番号を与えます(最初のテキスト項目が0)。

3.30.1.4.setStyle

setStyleアクションは、カレンダーモジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.30.1.5.setYearMonth

setYearMonthアクションはカレンダーの表示年・月を設定します。

 setYearMonth(year, month)

year引数とmonth引数には表示する年と月をそれぞれ数値で与えます。setYearMonthアクションを実行すると後述の【Change】イベントが発生します。

3.30.1.6.textLength

textLengthアクションは指定された日付に付与されているテキスト項目の数を返します。

 textLength(date)

date引数には日付をDate型で与えます。

3.30.2.イベント

本項ではカレンダーモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.30.2.1.Change

Changeイベントはカレンダーモジュールが表示する年または月が変化したときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onChange: function(data){ ... }

イベントハンドラの引数dataには以下のプロパティから成るオブジェクトが渡されます。

data.year
変更後の年
data.month
変更後の月
data.cause
"set"(setYearMonthアクションによる変更)または"user"(ユーザによる変更)
3.30.2.2.Click

Clickイベントはカレンダーモジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、クリックした日付がevt.dateプロパティにDate型で渡されます。

3.31.タイムテーブル

タイムテーブルモジュールは画面上に時間割表を表示するモジュールです。時間割表には開始・終了日時を指定してテキスト項目を挿入することができます。

3.31.1.アクション

本項ではタイムテーブルモジュールのアクションについて説明します。

3.31.1.1.addText

addTextアクションはタイムテーブルにテキスト項目を追加表示します。

 addText(start, end, text, bgcolor)

start引数とend引数には開始日時と終了日時をそれぞれDate型オブジェクト(またはDate型に変換できる日時文字列)で与えます。text引数には表示文字列、bgcolor引数には表示文字列の背景色を指定します。text引数は文字列に加えて次の形式のオブジェクトを受け付けます。

 { text: 表示文字列, popup: ポップアップ文字列 }

popupプロパティを省略するとtextプロパティの値がポップアップ文字列として用いられます。このオブジェクトには他のプロパティも自由に含めてよく、Clickイベントハンドラに渡されるevt.textプロパティには上記のオブジェクトがそのまま渡されます。たとえばtext引数の値を

 { id: データ番号, text: 表示文字列, popup: ポップアップ文字列 }

としておけば、Clickイベントハンドラではデータ番号をevt.text.idで受け取れます。テキスト項目の追加が成功したらtrueを、失敗したらfalseを返します。日をまたぐテキスト項目は追加できますが、開始時刻と終了時刻が表示開始時と表示終了時の間にないテキスト項目の追加は失敗します。

3.31.1.2.clearText

clearTextアクションはすべてのテキスト項目を削除します。

 clearTex()
3.31.1.3.delText

delTextアクションはテキスト項目をひとつ削除します。

 delText(index)

index引数には削除するテキスト項目の番号を与えます(最初のテキスト項目が0)。

3.31.1.4.setDays

setDaysアクションは開始日からの表示日数を設定します。

 setDays(days)

days引数には日数を数値で与えます。

3.31.1.5.setStartDate

setStartDateアクションはタイムテーブルの表示開始日を設定します。

 setStartDate(startdate)

startdate引数には表示開始日をDate型オブジェクトまたは日付文字列("年/月/日"または"年-月-日")で与えます。

3.31.1.6.setStartEndTime

setStartEndTimeアクションはタイムテーブルの表示開始時・終了時を設定します。

setStartEndTime(start, end)

start引数には表示開始時を、end引数には表示終了時を数値で与えます。表示開始時・終了時の設定が成功したらtrueを、失敗したらfalseを返します。表示データがあるとき、それがはみ出すような設定は失敗します。

3.31.1.7.setStyle

setStyleアクションは、タイムテーブルモジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.31.1.8.textLength

textLengthアクションはテキスト項目の数を返します。

 textLength()

3.31.2.イベント

本項ではタイムテーブルモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.31.2.1.Click

Clickイベントはタイムテーブルモジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、タイムテーブル内のどこをクリックしたかに応じてevtオブジェクトの以下のプロパティに情報が渡されます。

 a. テキスト項目をクリックした場合
evt.data
クリックしたデータ項目。以下のプロパティから成るオブジェクト:
start
開始日時(Date型)
end
終了日時(Date型)
text
表示文字列
bgcolor … 色
b. テキスト項目以外をクリックした場合
evt.datetime
クリックした日時(Date型)

3.32.クロス集計

クロス集計モジュールはDBテーブル・ビューのクロス集計を行なうための各種オプションを画面上に表示するモジュールです。クロス集計した結果の表示には【DBテーブル】モジュールを用います。

3.32.1.アクション

本項ではクロス集計モジュールのアクションについて説明します。

3.32.1.1.initialize

initializeアクションはクロス集計モジュールを初期化します。

 initialize(options)

options引数には以下のプロパティから成るオブジェクトを与えます。

models
モデル情報オブジェクト(this.models)
num
表示するレコード数
offset
先頭レコード番号(最初のレコードが0)
3.32.1.2.setStyle

setStyleアクションはクロス集計モジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.32.2.イベント

本項ではクロス集計モジュールから発生するイベントについて説明します。

3.32.2.1.Update

Updateイベントはクロス集計モジュールの更新ボタンが押されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onUpdate: function(data){ ... }

data引数には以下のプロパティから成るオブジェクトが渡されます。

table
クロス集計するDBテーブル・ビューのモデルオブジェクト
crossOptions
クロス集計オプション。後述の【クロス集計オプション】の節を参照してください。

これらのプロパティはDBテーブルモジュールの【initialize】アクションのオプションとして利用できます。たとえばクロス集計モジュールCROSS1から渡されたクロス集計オプションを使ってDBテーブルモジュールDATABASETABLE1の表示内容を初期化するには次のようなイベントハンドラを作成します。

 CROSS1_onUpdate: function(data){
     var options = {
         table: data.table,
         crossOptions: data.crossOptions,
     };
     this.items.DATABASETABLE1.initialize(options);
 }

3.33.地図

地図モジュールは画面上に地図を表示するモジュールです。地図上には緯度・経度で指定した地点にマーカーを設けて情報を表示することができます。

3.33.1.アクション

本項では地図モジュールのアクションについて説明します。

3.33.1.1.addMarker

addMarkerアクションは緯度・経度で表された地点にマーカーを追加表示します。マーカーにはポップアップ表示されるマークアップ付きテキスト(HTML)を付与できます。

 addMarker(data)

data引数には以下のプロパティから成るオブジェクトを与えます。

lat
マーカーを設ける地点の緯度
lng
マーカーを設ける地点の経度
popup
ポップアップ表示するHTML文字列
3.33.1.2.clearMarkers

clearMarkersアクションはすべてのマーカーを削除します。

 clearMarkers()
3.33.1.3.delMarker

delMarkerアクションはマーカーをひとつ削除します。

 delMarker(index)

index引数には削除するマーカーの番号を与えます(最初のマーカーが0)。

3.33.1.4.markersLength

markersLengthアクションはマーカーの個数を返します。

 markersLength()
3.33.1.5.showMap

showMapアクションは緯度・経度で表された地点を地図モジュールに表示します。

 showMap(data)

data引数には以下のプロパティから成るオブジェクトを与えます。

lat
表示する地点の緯度
lng
表示する地点の経度
zoom
表示倍率
3.33.1.6.setStyle

setStyleアクションは、地図モジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.33.2.イベント

本項では地図モジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.33.2.1.Click

Clickイベントは地図モジュールがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティにクリックされた地点に関する情報が渡されます。

evt.latlng.lat
クリックされた地点の緯度
evt.latlng.lng
クリックされた地点の経度
3.33.2.2.Move

Moveイベントは地図モジュールの表示地点が変更されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMove: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに新しい表示地点に関する情報が渡されます。

evt.latlng.lat
新しい表示地点の緯度
evt.latlng.lng
新しい表示地点の経度

このイベントはマウスでのドラッグ中には発生せず、ドラッグ操作が完了した時点で発生します。

3.33.2.3.Zoom

Zoomイベントは地図モジュールのスケールが変更されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onZoom: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。また、evtオブジェクトの以下のプロパティに情報が渡されます。

 evt.zoom … 倍率

3.34.グラフ

グラフモジュールはデータを可視化するグラフを表示するためのモジュールです。

3.34.1.アクション

本項ではグラフモジュールのアクションについて説明します。

3.34.1.1.downloadImage

downloadImageアクションはグラフをPNG画像ファイルとしてダウンロードします。

 downloadImage()
3.34.1.2.setData

setDataアクションはグラフ表示に用いるデータを設定します。

 setData(data)

data引数には以下のプロパティから成るオブジェクトを与えます。

type
グラフのタイプ。以下のタイプのいずれか:
BarChart
積み上げ棒グラフ
GroupedBarChart … 棒グラフ
LineChart
折れ線グラフ
AreaChart … 面グラフ
PieChart … 円グラフ
data
以下のプロパティから成るデータ系列オブジェクトの配列:
label
データ系列のラベル
values
データ系列。{x: X値, y: Y値} の形式のオブジェクトの配列
margin
余白の幅を指定する、以下のプロパティから成るオブジェクト:
top
上の余白幅
bottom
下の余白幅
left
左の余白幅
right
右の余白幅
3.34.1.3.setStyle

setStyleアクションは、グラフモジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.35.キャンバス

キャンバスモジュールは、スクリプトにより画面上に図形や文字列を描画するモジュールです。

キャンバスモジュールに図形を描画するには、まず【getContext】アクションで2次元グラフィックスコンテキストを得ます。次に、コンテキストオブジェクトの各種メソッドを呼び出して図形を描画します。例として、CANVAS1という名前のキャンバスモジュールに塗りつぶした矩形を青で、矩形の枠線を赤で描画するスクリプトを以下に示します。

 var ctx = this.items.CANVAS1.getContext();
 ctx.fillStyle = &quot;blue&quot;;
 ctx.fillRect(120, 120, 200, 150);
 ctx.strokeStyle = &quot;red&quot;;
 ctx.strokeRect(100, 100, 200, 150);

2次元グラフィックスコンテキストの描画メソッドの詳細についてはHTML5のキャンバス要素に関する解説書やオンラインチュートリアル(例えば下記URL)などを参照してください。

 https://developer.mozilla.org/ja/docs/Web/Guide/HTML/Canvas_tutorial/Drawing_shapes

3.35.1.アクション

本項ではキャンバスモジュールのアクションについて説明します。

3.35.1.1.getDOM

getDOMアクションは、HTMLのキャンバス要素を表すDOMノードを返します。

 getDOM()

3.35.1.2.getContext

getContextアクションは、2次元グラフィックスコンテキストを返します。

 getContext()
3.35.1.3.setCanvasRatio

setCanvasRatioアクションは、キャンバスの表示倍率を設定します。

 setCanvasRatio(ratio)

ratio引数にはキャンバス倍率を与えます。

3.35.1.4.setStyle

setStyleアクションは、キャンバスのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.35.2.イベント

本項ではキャンバスモジュールから発生するイベントについて説明します。一部のイベントハンドラのevt引数に渡されるイベントオブジェクトについては【イベントAPI】の節を参照してください。

3.35.2.1.Blur

Blurイベントはキャンバスから入力フォーカスが外れたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onBlur: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.35.2.2.Click

Clickイベントはキャンバスがクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.35.2.3.ContextMenu

ContextMenuイベントはコンテキストメニュー(Windowsでは右クリックメニュー)が開かれたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onContextMenu: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.35.2.4.DoubleClick

DoubleClickイベントはキャンバスがダブルクリックされたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onDoubleClick: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.35.2.5.Focus

Focusイベントはキャンバスに入力フォーカスが移ってきたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onFocus: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.35.2.6.KeyDown

KeyDownイベントはキャンバス上でキーボードのキーが押し下げられたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.35.2.7.KeyPress

KeyPressイベントはキャンバス上でキーボードのキーが押されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyPress: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.35.2.8.KeyUp

KeyUpイベントはキャンバス上で押下されたキーボードのキーが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onKeyUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.35.2.9.MouseDown

MouseDownイベントはキャンバス上でマウスボタンが押下されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseDown: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.35.2.10.MouseUp

MouseUpイベントはキャンバス上で押されたマウスボタンが離されたときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onMouseUp: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.35.2.11.Update

Updateイベントはキャンパスモジュールの再描画が必要なときに生じます。イベントハンドラは次のように定義します。

 モジュール名_onUpdate: function(evt){ ... }

イベントハンドラの引数evtにはイベントオブジェクトが渡されます。

3.36.スクリーンコンテナ

スクリーンコンテナモジュールは、別のスクリーンを画面上に埋め込むためのモジュールです。埋め込まれる側の別スクリーンを「内側」、スクリーンコンテナが設けられたスクリーンを「外側」と呼びます。内側スクリーンの埋め込み方法には次の2つがあります。

 a. 1つのスクリーンコンテナ内に1つだけ内側スクリーンを表示する(デフォルト)。
 b. 内側スクリーンを0個以上複製して反復表示する。

内側スクリーンの反復表示回数を指定するには後述のsetIterateアクションを用います。デフォルトの反復表示回数は1です。

3.36.1.アクション

本項ではスクリーンコンテナモジュールのアクションについて説明します。

3.36.1.1.iterate

iterateアクションは、内側スクリーンの反復表示の際に個々の内側スクリーンに渡されるデータを設定します。

 iterate(data)

data引数には反復回数と同じ要素数の配列を与えます。配列の要素についてはデータ構造の規定はなくアプリケーションごとに自由に決められます。与えられたデータは後述のIterateイベントを介して内側スクリーンへ渡されます。

3.36.1.2.screens

screensアクションは、内側スクリーンのスクリーンオブジェクトを外側スクリーンから参照するための関数です。

 screens(index)

index引数には参照する内側スクリーンの番号を与えます。たとえばスクリーンコンテナSCREENCONTAINER1の中に反復表示されたi番目の内側スクリーンの中のテキストボックスTEXTBOX1の値を得るには次のようにします。

 var val = this.items.SCREENCONTAINER1.screens(i).items.TEXTBOX1.getValue();
3.36.1.3.setIterate

setIterateアクションは、内側スクリーンの反復表示回数を設定します(デフォルトは1)。

 setIterate(iterate);

iterate引数にはスクリーンの反復表示回数を整数値で与えます。

3.36.1.4.setScreen

setScreenアクションは、スクリーンコンテナ内に表示する別スクリーンを変更します。

 setScreen(screen)

screen引数には新しい内側スクリーンの名前を文字列で与えます。

3.36.1.5.setStyle

setStyleアクションは、スクリーンコンテナモジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

3.36.2.イベント

本項ではスクリーンコンテナから発生するイベントについて説明します。

3.36.2.1.Iterate

Iterateイベントは、スクリーンコンテナのiterateアクションが実行されたときに発生して内側スクリーンに伝播します。このイベントを内側スクリーンで受け取るにはイベントハンドラを次のように定義します。

 onIterate: function(data){ ... }

イベントハンドラの引数dataにはiterateアクションの引数として与えられたデータ配列の要素(i番目の反復表示スクリーンに対してi番目の配列要素)が渡されます。

3.37.IFrame

IFrameモジュールはHTMLの<iframe>タグを用いて画面内にネット上のコンテンツ(ウェブページなど)を埋め込むためのモジュールです。

3.37.1.アクション

本項ではIFrameモジュールのアクションについて説明します。

3.37.1.1.setSrc

setSrcアクションはIFrameモジュール内に表示するコンテンツのURLを設定します。

 setSrc(src)

src引数には表示するURLを文字列で与えます。

3.37.1.2.setStyle

setStyleアクションは、IFrameモジュールのスタイルを設定します。

 setStyle(style)

style引数にはスタイルオブジェクトを与えます。

4.モデルオブジェクト

DBテーブル設計で定義されるテーブルおよびDBビュー設計で定義されるビューをまとめて「モデル」と呼び、モデルの設計情報を表すオブジェクトのことを「モデルオブジェクト」と呼びます。Buddyアプリを構成するモデルは、スクリーンプログラムにおいてthis.modelsで参照できます。たとえばShohinテーブルの設計情報は次のように参照できます。

 this.models.Shohin

モデルの設計情報は、テーブルの場合はModelTableクラス、ビューの場合はModelViewクラスで表されます。

4.1.ModelTable

ModelTableはDBテーブルのモデル情報とレコード操作のためのメソッドを提供するクラスです。

4.1.1.プロパティ

4.1.1.1.modelType

modelTypeプロパティの値は文字列 "table" です。モデルオブジェクトがDBテーブルかどうかを調べるのに用います。

4.1.1.2.conf

confプロパティの値はテーブルの設計情報オブジェクトです。設計情報オブジェクトは以下のプロパティから成ります。

TableDbname
DB上のテーブル名(英数_)
TableDisplayname
表示上のテーブル名(日本語可)
TableType
テーブルタイプ(STOCK または FLOW)
TableFlags
テーブルフラグの配列
TableMemo
備考(開発上のメモ)
TableColumns
次のカラム情報オブジェクトの配列
ColumnDbname
DB上のカラム名(英数_)
ColumnDisplayname
表示上のカラム名(日本語可)
ColumnCategory
データ型のカテゴリ
ColumnClass
データ型のクラス
ColumnType … データ型
ColumnDefaultvalue
デフォルト値
ColumnOrder
カラムの順序(整数値)
ColumnFlags
カラムフラグの配列
ColumnChoices
選択肢の配列
ColumnRange
範囲選択肢(「最小値:最大値:刻み値」)
ColumnMemo
備考(開発上のメモ)
TablePrimaryKeyColumns
Primary Key指定するカラム名の配列
TableIndexes
次のインデックス情報オブジェクトの配列
IndexDbname
DB上のインデックス名(英数_)
IndexDisplayname
表示上のインデックス名(日本語可)
IndexUnique
Uniqueかどうか(trueまたはfalse)
IndexColumnsOrExpressions
カラム名または式の配列
TableRules
次のルール情報オブジェクトの配列
RuleDbname
DB上の制約名(英数_)
RuleDisplayname
表示上のルール名(日本語可)
RuleCheck … 検査式
※特殊な指定として、「カラム名 NOT NULL」「UNIQUE(カラム名,…)」
TableOrders
次の順序情報オブジェクトの配列
OrderName
順序名(英数_)
OrderDisplayname
表示上の順序名(日本語可)
OrderDefault
デフォルト順序かどうか(trueまたはfalse)
OrderSpecs
次の順序カラム指定オブジェクトの配列
OrderColumn … カラム名
OrderDirection
ASC または DESC
TableAuth
アクセス制御オブジェクト
4.1.1.3.name

nameプロパティの値はテーブルのDB名を表します。この値はconf.TableDbnameプロパティと同一です。

4.1.1.4.header

headerプロパティの値はテーブルのカラムを表すオブジェクトの配列です。各要素は以下のプロパティから成ります。

name
カラムDB名
displayName
カラム表示名

配列のi番目の要素はconf.TableColumnsプロパティのi番目の要素に対応しています。

4.1.2.メソッド

本節ではModelTableクラスのメソッドについて説明します。

4.1.2.1.as

asメソッドは後述の【select】メソッドで作成するサブクエリオブジェクトに別名を与えます。

 as(name)

name引数にはサブクエリの別名を文字列で与えます。asメソッドは戻り値としてModelTableオブジェクトを返します。この戻り値を使ってさらにselectメソッドを呼び出せます。以下に例を示します。

 var tableName = &quot;weather&quot;;
 var subquery = this.tables[tableName].as('t').select([&quot;max(t.temp_lo)&quot;], {});
 var options = {
     where: {&quot;temp_lo&quot;: {op: &quot;=&quot;, ref: subquery}},
 };
 this.tables[tableName].readData(options, (function(error, data) {
     ...
 });
4.1.2.2.crossJoin

crossJoinメソッドはDBテーブルと別のDBテーブル・ビューまたはサブクエリの交差結合(cross join)を生成します。

 crossJoin(table, asname)

table引数には別のDBテーブル・ビュー名、ModelTableオブジェクト、ModelViewオブジェクト、または【サブクエリ】オブジェクトを与えます。asname引数はtable引数に与えた結合対象の別名を指定します。別名はtable引数がサブクエリの場合は必須、それ以外の場合は省略可能です。crossJoinメソッドはModelTableオブジェクトを返します。

4.1.2.3.deleteRecord

deleteRecordメソッドはDBテーブルに格納されたレコードを削除します。

 deleteRecord(options, callback)

options引数には以下のプロパティから成るオブジェクトを与えます。

where
削除するレコードを選択する絞り込み条件。後述の【絞り込み条件】の節を参照してください。
details
明細テーブルのレコード削除操作を指定するオブジェクトの配列(後述)。明細テーブルが無ければ省略可

detailsプロパティの配列要素には次のプロパティから成るオブジェクトを与えます。

name
明細テーブル名
baseColumn
ベーステーブルの参照元カラム名
detailColumn
明細テーブルの参照先カラム名
returning
結果オブジェクト(後述)として値を得たいカラム名の配列

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数には以下のプロパティから成るオブジェクトが渡されます。

body
本テーブルに対する結果オブジェクト
details
明細テーブル(options引数のdetailsプロパティの配列要素)と1対1に対応する要素から成る配列。この配列の要素は、次のプロパティから成るオブジェクトの配列
body
明細テーブルの操作(削除)の結果オブジェクト
err
上記の操作が成功のときはnull、失敗のときはErrorオブジェクト

ここで結果オブジェクトは以下のプロパティから成るオブジェクトです。

command
本テーブル、明細テーブル共に"DELETE"
rowCount
レコード数
rows
レコードの配列。各レコードは {カラム名: 値, …} の形式のオブジェクト

なお、options引数に与えるオブジェクトにはreturningプロパティはありません。ベーステーブルの結果オブジェクトには削除されたレコードのすべてのカラムが含まれます。

4.1.2.4.expression

expressionメソッドは後述の【updateRecord】メソッドでカラム値を更新するためのSQL式を表すオブジェクトを生成します。

 expression(expr, ...)

引数にはSQL式を文字列で与えます。複数の引数が与えられたら、すべてを空白でつないで1つのSQL式とみなします。戻り値はSQL式を表すオブジェクトです。このオブジェクトはupdateRecordメソッドのoptions引数のdataプロパティに与えるカラム値として指定できます。例えばSQL式を用いてテーブルtable1のカラムnumの値を1増やすには次のように記述します。

 var tableName = &quot;table1&quot;;
 var table = this.models[tableName];
 var options = {
     data: {
         num: table.expression('num + 1'),
     },
 };
 table.updateRecord(options, function (err, res) {
     ...
 });
4.1.2.5.findNext

findNextメソッドはDBテーブルのレコードについてキーワード検索を実行します。

 findNext(options, callback)

options引数には以下のプロパティから成るオブジェクトを与えます。

where
キーワード検索の対象となるレコードを選択する絞り込み条件。後述の【絞り込み条件】の節を参照してください。
order
並べ替え。後述の【並べ替え】の節を参照してください。
keyword
検索キーワード。後述の【パタン文字列】の節を参照してください。
searchPos
キーワード検索の開始レコード番号(最初のレコードが0)。

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。キーワード検索に成功した場合、コールバック関数の第1引数にはnull、第2引数にはsearchPos以降のレコードの中で検索キーワードが含まれる最初のレコードの番号が渡されます。検索キーワードが見つからなかった場合には-1が渡されます。

4.1.2.6.fullOuterJoin

fullOuterJoinメソッドはDBテーブルと別のDBテーブル・ビューまたはサブクエリの完全外部結合(full outer join)を生成します。

 fullOuterJoin(table, asname)

table引数には別のDBテーブル・ビュー名、ModelTableオブジェクト、ModelViewオブジェクト、または【サブクエリ】オブジェクトを与えます。asname引数はtable引数に与えた結合対象の別名を指定します。別名はtable引数がサブクエリの場合は必須、それ以外の場合は省略可能です。後述のonメソッドまたはusingメソッドで結合条件を指定できます。いずれも指定しない場合は自然結合(natural join)となります。fullOuterJoinメソッドはModelTableオブジェクトを返します。

4.1.2.7.getCount

getCountメソッドは与えられた絞り込み条件を満たすレコードの数を返します。

 getCount(options, callback)

options引数にはデータ読み込みのオプションを指定する、以下のプロパティから成るオブジェクトを与えます。

where
絞り込み条件。後述の【絞り込み条件】の節を参照してください。

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数にはレコード数が数値で渡されます。

4.1.2.8.innerJoin

innerJoinメソッドはDBテーブルと別のDBテーブル・ビューまたはサブクエリの内部結合(inner join)を生成します。

 innerJoin(table, asname)

table引数には別のDBテーブル・ビュー名、ModelTableオブジェクト、ModelViewオブジェクト、または【サブクエリ】オブジェクトを与えます。asname引数はtable引数に与えた結合対象の別名を指定します。別名はtable引数がサブクエリの場合は必須、それ以外の場合は省略可能です。後述のonメソッドまたはusingメソッドで結合条件を指定できます。いずれも指定しない場合は自然結合(natural join)となります。innerJoinメソッドはModelTableオブジェクトを返します。次の例のようにonメソッドやreadDataメソッドなどを続けて記述できます。

 this.models['shain']
   .innerJoin('busho').on('shain.busho_ID', 'busho.ID')
   .readData({}, function (err, res) {...})
4.1.2.9.insertRecord

insertRecordメソッドはDBテーブルに新しいレコードを追加(挿入)します。

 insertRecord(options, callback)

options引数には以下のプロパティから成るオブジェクトを与えます。

data
新しいレコードを表す {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクト
details
明細テーブルへのレコード追加(挿入)操作を指定するオブジェクトの配列(後述)。明細テーブルが無ければ省略可

detailsプロパティの配列要素には次のプロパティから成るオブジェクトを与えます。

name
明細テーブル名
baseColumn
ベーステーブルの参照元カラム名
detailColumn
明細テーブルの参照先カラム名
data
新しいレコードの配列。各レコードは {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクト
returning
結果オブジェクト(後述)として値を得たいカラム名の配列

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数には以下のプロパティから成るオブジェクトが渡されます。

body
本テーブルに対する結果オブジェクト
details
明細テーブル(options引数のdetailsプロパティの配列要素)と1対1に対応する要素から成る配列。この配列の要素は、次のプロパティから成るオブジェクトの配列
body
明細テーブルの操作(削除および挿入)の結果オブジェクト
err
上記の操作が成功のときはnull、失敗のときはErrorオブジェクト

ここで結果オブジェクトは以下のプロパティから成るオブジェクトです。

command
本テーブルの場合は"INSERT"、明細テーブルの場合は"DELETE"または"INSERT"
rowCount
レコード数
rows
レコードの配列。各レコードは {カラム名: 値, …} の形式のオブジェクト

なお、options引数に与えるオブジェクトにはreturningプロパティはありません。ベーステーブルの結果オブジェクトには挿入されたレコードのすべてのカラムが含まれます。

4.1.2.10.leftOuterJoin

leftOuterJoinメソッドはDBテーブルと別のDBテーブル・ビューまたはサブクエリの左外部結合(left outer join)を生成します。

 leftOuterJoin(table, asname)

table引数には別のDBテーブル・ビュー名、ModelTableオブジェクト、ModelViewオブジェクト、または【サブクエリ】オブジェクトを与えます。asname引数はtable引数に与えた結合対象の別名を指定します。別名はtable引数がサブクエリの場合は必須、それ以外の場合は省略可能です。後述のonメソッドまたはusingメソッドで結合条件を指定できます。いずれも指定しない場合は自然結合(natural join)となります。leftOuterJoinメソッドはModelTableオブジェクトを返します。

4.1.2.11.on

onメソッドは結合条件(JOIN ON節)を指定します。

 on(leftColumn, rightColumn, options)

leftColumn引数とrightColumn引数には結合する2つのDBテーブル・ビューまたはサブクエリのカラム名を指定します。optionsには以下のプロパティから成るオブジェクトを与えます。

op
結合条件の比較演算子(デフォルトは '=')

options引数は省略でき、その場合は比較演算子として = が用いられます。onメソッドはModelTableオブジェクトを返します。

4.1.2.12.outputCrossData

outputCrossDataメソッドはDBテーブルにクロス集計を適用して得られたレコードをファイルに書き出します。

 outputCrossData(options, callback)

options引数には以下のプロパティから成るオブジェクトを与えます。

crossOptions
クロス集計オプション。後述の【クロス集計オプション】の節を参照してください。
filters
出力フィルタ。カラム名とフィルタ名の対を {"カラム名1": フィルタ名1, "カラム名2": フィルタ名2, …} の形式のオブジェクトで与えます。フィルタについては後述の【フィルタAPI】の節を参照してください。
format
出力ファイル形式。現在は "xlsx"(Excelファイル)のみサポートしています。
fileName
出力ファイル名。省略するとDBテーブル名がファイル名として用いられます。

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ出力が成功した場合、コールバック関数の第1引数にはnull、第2引数には以下のプロパティから成る結果オブジェクトが渡されます。

fileName
出力ファイル名
url
出力ファイルのダウンロードURL
4.1.2.13.outputData

outputDataメソッドはDBテーブルのレコードをファイルに書き出します。

 outputData(options, callback)

options引数には以下のプロパティから成るオブジェクトを与えます。

columns
カラムの並び。出力対象のカラム名を文字列配列で与えます。省略するとDBテーブルのすべてのカラムが出力されます。
where
絞り込み条件。後述の【絞り込み条件】の節を参照してください。
order
並べ替え。後述の【並べ替え】の節を参照してください。
num
読み込み件数。
offset
先頭レコード番号(最初のレコードが0)。
filters
出力フィルタ。カラム名とフィルタ名の対を {"カラム名1": フィルタ名1, "カラム名2": フィルタ名2, …} の形式のオブジェクトで与えます。フィルタについては後述の【フィルタAPI】の節を参照してください。
format
出力ファイル形式。現在は "xlsx"(Excelファイル)のみサポートしています。
fileName
出力ファイル名。省略するとDBテーブル名がファイル名として用いられます。

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ出力が成功した場合、コールバック関数の第1引数にはnull、第2引数には以下のプロパティから成る結果オブジェクトが渡されます。

fileName
出力ファイル名
url
出力ファイルのダウンロードURL
4.1.2.14.readCrossData

readCrossDataメソッドはDBテーブルにクロス集計を適用して得られたレコードを返します。

 readCrossData(crossOptions, callback)

crossOptions引数にはクロス集計オプションを与えます。クロス集計オプションについては後述の【クロス集計オプション】の節を参照してください。callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数にはレコードの配列が渡されます。各レコードは {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクトです。

4.1.2.15.readCrossGraphData

readCrossGraphDataメソッドはDBテーブルにクロス集計を適用して得られたレコードをグラフモジュール向けに整形して返します。

 readCrossGraphData(options, callback)

crossOptions引数にはクロス集計オプションを与えます。クロス集計オプションについては後述の【クロス集計オプション】の節を参照してください。callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数にはグラフモジュール向けに整形されたレコードの配列が渡されます。グラフモジュール向けのレコードの構成については【グラフ】の節を参照してください。

4.1.2.16.readData

readDataメソッドはDBテーブルからデータ行を読み込みます。

 readData(options, callback)

options引数にはデータ読み込みのオプションを以下のプロパティから成るオブジェクトで与えます。

where
絞り込み条件。後述の【絞り込み条件】の節を参照してください。
order
並べ替え。後述の【並べ替え】の節を参照してください。
num
読み込み件数。
offset
先頭レコード番号(最初のレコードが0)。
useCache
キャッシュ利用フラグ。真ならキャッシュを用います。

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数には得られたレコードの配列が渡されます。各レコードはカラム名と値の対から成る {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクトで表されます。

4.1.2.17.rightOuterJoin

rightOuterJoinメソッドはDBテーブルと別のDBテーブル・ビューまたはサブクエリの右外部結合(right outer join)を生成します。

 rightOuterJoin(table, asname)

table引数には別のDBテーブル・ビュー名、ModelTableオブジェクト、ModelViewオブジェクト、または【サブクエリ】オブジェクトを与えます。asname引数はtable引数に与えた結合対象の別名を指定します。別名はtable引数がサブクエリの場合は必須、それ以外の場合は省略可能です。前述のonメソッドまたは後述のusingメソッドで結合条件を指定できます。いずれも指定しない場合は自然結合(natural join)となります。rightOuterJoinメソッドはModelTableオブジェクトを返します。

4.1.2.18.select

selectメソッドは絞り込み条件および結合に用いられる【サブクエリ】オブジェクトを作成します。

 select(columns, options)

columns引数にはカラム式の並びを表す配列を与えます。配列の要素はカラム式の文字列または以下のプロパティからなるオブジェクトです。exprにはカラム式(カラム名や任意のSQL式)、asには別名を与えます。

 expr … カラム式
 as … AS名

options引数には上述の【readData】メソッドのoptions引数と同じ構造のオプションオブジェクトを与えます。selectメソッドは戻り値としてサブクエリオブジェクトを返します。サブクエリオブジェクトの利用方法については【サブクエリ】の節を参照してください。

4.1.2.19.updateRecord

updateRecordメソッドはDBテーブルに格納された既存レコードを更新します。

 updateRecord(options, callback)

options引数には以下のプロパティから成るオブジェクトを与えます。

where
更新するレコードを選択する絞り込み条件。後述の【絞り込み条件】の節を参照してください。
data
更新されるカラムと新しい値の対を表す {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクト。値には数値、文字列などのリテラル値に加えて前述の【expression】メソッドで作成したSQL式を表すオブジェクトが指定できます。
details
明細テーブルのレコード更新操作を指定するオブジェクトの配列(後述)。明細テーブルが無ければ省略可

detailsプロパティの配列要素には次のプロパティから成るオブジェクトを与えます。

name
明細テーブル名
baseColumn
ベーステーブルの参照元カラム名
detailColumn
明細テーブルの参照先カラム名
data
新しいレコードの配列。各レコードは {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクト
returning
結果オブジェクト(後述)として値を得たいカラム名の配列

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数には以下のプロパティから成るオブジェクトが渡されます。

body
本テーブルに対する結果オブジェクト
details
明細テーブル(options引数のdetailsプロパティの配列要素)と1対1に対応する要素から成る配列。この配列の要素は、次のプロパティから成るオブジェクトの配列
body
明細テーブルの操作(削除および挿入)の結果オブジェクト
err
上記の操作が成功のときはnull、失敗のときはErrorオブジェクト

ここで結果オブジェクトは以下のプロパティから成るオブジェクトです。

command
本テーブルの場合は"UPDATE"、明細テーブルの場合は"DELETE"または"INSERT"
rowCount
レコード数
rows
レコードの配列。各レコードは {カラム名: 値, …} の形式のオブジェクト

なお、options引数に与えるオブジェクトにはreturningプロパティはありません。ベーステーブルの結果オブジェクトには更新されたレコードのすべてのカラムが含まれます。また、ベーステーブルについてはoptions引数のdataプロパティで値が与えられたカラムのみが更新され、dataプロパティで指定されていないカラムについては何の操作も行いません。一方、明細テーブルはベーステーブルのレコードに関連付けられたすべてのレコードを削除してからdetails.dataプロパティで与えられたレコードを挿入するという手順で更新されます。そのためdetails.dataプロパティで指定されていないカラムの値はNULL(または当該カラムのデフォルト値)になります。

4.1.2.20.upsertRecord

upsertRecordメソッドはレコードの更新を試みて成功したら処理を終えます。もし更新するレコードが無ければ新規レコードの挿入を行ないます。

 upsertRecord(options, callback)

options引数には以下のプロパティから成るオブジェクトを与えます。

where
更新するレコードを選択する絞り込み条件。後述の【絞り込み条件】の節を参照してください。
data
更新・挿入されるレコードのカラムと値の対を表す {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクト。
details
明細テーブルのレコード更新操作を指定するオブジェクトの配列(後述)。明細テーブルが無ければ省略可

detailsプロパティの配列要素には次のプロパティから成るオブジェクトを与えます。

name
明細テーブル名
baseColumn
ベーステーブルの参照元カラム名
detailColumn
明細テーブルの参照先カラム名
data
新しいレコードの配列。各レコードは {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクト
returning
結果オブジェクト(後述)として値を得たいカラム名の配列

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数には以下のプロパティから成るオブジェクトが渡されます。

body
本テーブルに対する結果オブジェクト
details
明細テーブル(options引数のdetailsプロパティの配列要素)と1対1に対応する要素から成る配列。この配列の要素は、次のプロパティから成るオブジェクトの配列
body
明細テーブルの操作(削除および挿入)の結果オブジェクト
err
上記の操作が成功のときはnull、失敗のときはErrorオブジェクト

ここで結果オブジェクトは以下のプロパティから成るオブジェクトです。

command
本テーブルの場合は"INSERT"または"UPDATE"、明細テーブルの場合は"DELETE"または"INSERT"
rowCount
レコード数
rows
レコードの配列。各レコードは {カラム名: 値, …} の形式のオブジェクト

なお、options引数に与えるオブジェクトにはreturningプロパティはありません。ベーステーブルの結果オブジェクトには更新されたレコードのすべてのカラムが含まれます。また、ベーステーブルについてはoptions引数のdataプロパティで値が与えられたカラムについて値が挿入または更新されます。dataプロパティで指定されていないカラムについては、挿入の場合はNULL(または当該カラムのデフォルト値)が挿入され、更新の場合は何の操作も行いません。一方、明細テーブルはベーステーブルのレコードに関連付けられたすべてのレコードを削除してからdetails.dataプロパティで与えられたレコードを挿入するという手順で更新されます。そのためdetails.dataプロパティで指定されていないカラムの値はNULL(または当該カラムのデフォルト値)になります。

4.1.2.21.using

usingメソッドは結合条件(JOIN USING節)を指定します。

 using(column1, column2, ...)

引数には結合条件となるカラム名を1つ以上与えます。usingメソッドはModelTableオブジェクトを返します。

4.1.3.データ型

テーブルカラムの型には以下の5つがあります。

 ・数値
 ・真偽値
 ・文字列
 ・日付・時間
 ・ファイル

それぞれの型に属する型の詳細および対応するPostgreSQLのデータ型を以下に示します。

 数値型の詳細(括弧内は有効な範囲):
・数値
numeric(小数点より上は131072桁まで、小数点より下は16383桁まで)
・自動連番
serial8(1から9223372036854775807まで)
・整数
int8(-9223372036854775808から+9223372036854775807まで)
・小数点
float8(15桁精度、およそ1E-307から1E+308まで)
・金額
money(-92233720368547758.08 から +92233720368547758.07まで)
真偽値型の詳細:
・真偽値 … bool
文字列型の詳細:
・フリー … text
・英数字 … text
・ひらがな … text
・全角カナ … text
・半角カナ … text
・郵便番号 … text
・メールアドレス … text
日付・時間型の詳細(括弧内は有効な範囲):
・日時
timestamp with time zone(紀元前4713年から294276年まで)
・日付
date(紀元前4713年から5874897年まで)
・時間
time(00:00:00から24:00:00まで)
・時間間隔
interval(-178000000年から178000000年まで)
ファイル型の詳細:
・フリー … text
・PDF … text
・WORD … text
・EXCEL … text
・画像 … text

文字列型のうち、フリーの場合は任意の文字列が有効です。その他の型の詳細は以下の正規表現にマッチする文字列のみが有効です。

英数字
^[A-Za-z0-9_]*$
ひらがな
^[\u3041-\u309f\u30a0\u30fb\u30fc]*$
全角カナ
^[\u30a0-\u30ff\u3099-\u309c]*$
半角カナ
^[\uff65-\uff9f]*$
郵便番号
^\d{3}-?\d{4}$
メールアドレス
^([A-Za-z0-9._%+-]+@([A-Za-z0-9]+(-[A-Za-z0-9]+)*.)+[A-Za-z]{2,})?$

一方、JavaScriptでは整数も実数もすべて国際規格IEEE 754に基づく倍精度浮動小数点数で表されます。したがってJavaScriptで正しく扱える整数は-9007199254740991から9007199254740991まで(絶対値が2の53乗未満の数)です。JavaScriptで扱える実数の範囲はPostgreSQLのfloat8と同じです。

4.1.4.型キャスト

文字列以外のデータ型の定数は、文字列と型キャストを組み合わせた以下の形式のSQL式で記述します。

 'string'::type

'string'には文字列、typeにはPostgreSQLのデータ型の名前を与えます(前節の【データ型】の項を参照してください)。型キャストの用例を以下に示します。

 '123'::int8 … 整数
 '123.45'::float8 … 小数点
 't'::bool … 真偽値
 '2016-12-25 12:34:56 +0900'::timestamp with time zone … 日時
 '2016-12-25'::date … 日付
 '12:34:56'::time … 時間
 '1 year 2 months 3 days'::interval … 時間間隔

型キャストはSQL式の結果を別のデータ型に変換するのにも用いられます。以下に例を示します。

AGE("birthday")::text
時間間隔から文字列へ
("date" || ' ' || "time")::timestamp … 文字列から日時へ
NULL::text
文字列型のNULLへ

4.2.ModelView

ModelViewはDBビューのモデル情報とレコード操作のためのメソッドを提供するクラスです。

4.2.1.プロパティ

4.2.1.1.modelType

modelTypeプロパティの値は文字列 "view" です。モデルオブジェクトがDBビューかどうかを調べるのに用います。

4.2.1.2.conf

confプロパティの値はビューの設計情報オブジェクトです。設計情報オブジェクトは以下のプロパティから成ります。

ViewType
ビューの型(LIST、SUM、CROSS)
ViewDbname
DB上のビュー名(英数_)
ViewDisplayname
表示上のビュー名(日本語可)
ViewMemo
備考(開発上のメモ)
ViewColumns
次のカラム情報オブジェクトの配列
ColumnAsname
DB上のAS名(英数_)
ColumnDisplayname
表示上のカラム名(日本語可)
ColumnExpression
カラム内容の式
ColumnSumType
集計型(GROUP、SUM、COUNT、MAX、MIN、AVG、NONE)
ColumnOrder
カラムの順序(整数値)
ColumnMemo
備考(開発上のメモ)
ViewFrom
テーブル/ビュー名 または次のオブジェクト(入れ子可)
FromLeft
左側のテーブル/ビュー名 またはViewFromオブジェクト
FromLeftAsname
左側のテーブル/ビューのAS名
FromRight
右側のテーブル/ビュー名 またはViewFromオブジェクト
FromRightAsname
右側のテーブル/ビューのAS名
JoinType
JOIN指定(JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN)
JoinOn
次のJOIN ON条件式オブジェクトの配列
ColumnLeft
左側のテーブル/ビューのカラム名
ColumnRight
右側のテーブル/ビューのカラム名
Operator
演算子(=、!=)
ViewWhere
ビューのWHERE式
ViewHaving
ビューのHAVING式
ViewOrderBy
次のビューORDER BY指定オブジェクトの配列
OrderColumn … カラム名
OrderDirection
ソート順序(ASC、DESC、NONE)
ViewCross
クロス集計(CROSS)型ビューのオプション
CrossColumns
列ラベルカラムのDB名の配列
CrossRows
行ラベルカラムのDB名の配列
CrossValues
値カラムのDB名の配列
CrossFunc
集計関数(SUM、COUNT、MAX、MIN、AVG)
ViewAuth
アクセス制御オブジェクト
4.2.1.3.name

nameプロパティの値はビューのDB名を表します。この値はconf.ViewDbnameプロパティと同一です。

4.2.1.4.header

headerプロパティの値はビューのカラムを表すオブジェクトの配列です。各要素は以下のプロパティから成ります。

name
カラムDB名
displayName
カラム表示名

配列のi番目の要素はconf.ViewColumnsプロパティのi番目の要素に対応しています。

4.2.2.メソッド

4.2.2.1.as

asメソッドは後述の【select】メソッドで作成するサブクエリオブジェクトに別名を与えます。

 as(name)

name引数にはサブクエリの別名を文字列で与えます。asメソッドは戻り値としてModelViewオブジェクトを返します。この戻り値を使ってさらにselectメソッドを呼び出せます。

4.2.2.2.crossJoin

crossJoinメソッドはDBビューと別のDBテーブル・ビューまたはサブクエリの交差結合(cross join)を生成します。

 crossJoin(table, asname)

table引数には別のDBテーブル・ビュー名、ModelTableオブジェクト、ModelViewオブジェクト、または【サブクエリ】オブジェクトを与えます。asname引数はtable引数に与えた結合対象の別名を指定します。別名はtable引数がサブクエリの場合は必須、それ以外の場合は省略可能です。crossJoinメソッドはModelViewオブジェクトを返します。

4.2.2.3.findNext

findNextメソッドはDBビューのレコードについてキーワード検索を実行します。

 findNext(options, callback)

options引数には以下のプロパティから成るオブジェクトを与えます。

where
キーワード検索の対象となるレコードを選択する絞り込み条件。後述の【絞り込み条件】の節を参照してください。
order
並べ替え。後述の【並べ替え】の節を参照してください。
keyword
検索キーワード。後述の【パタン文字列】の節を参照してください。
searchPos
キーワード検索の開始レコード番号(最初のレコードが0)。

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。キーワード検索に成功した場合、コールバック関数の第1引数にはnull、第2引数にはsearchPos以降のレコードの中で検索キーワードが含まれる最初のレコードの番号が渡されます。検索キーワードが見つからなかった場合には-1が渡されます。

4.2.2.4.fullOuterJoin

fullOuterJoinメソッドはDBビューと別のDBテーブル・ビューまたはサブクエリの完全外部結合(full outer join)を生成します。

 fullOuterJoin(table, asname)

table引数には別のDBテーブル・ビュー名、ModelTableオブジェクト、ModelViewオブジェクト、または【サブクエリ】オブジェクトを与えます。asname引数はtable引数に与えた結合対象の別名を指定します。別名はtable引数がサブクエリの場合は必須、それ以外の場合は省略可能です。後述のonメソッドまたはusingメソッドで結合条件を指定できます。いずれも指定しない場合は自然結合(natural join)となります。fullOuterJoinメソッドはModelViewオブジェクトを返します。

4.2.2.5.getCount

getCountメソッドは与えられた絞り込み条件を満たすレコードの数を返します。

 getCount(options, callback)

options引数にはデータ読み込みのオプションを指定する、以下のプロパティから成るオブジェクトを与えます。

where
絞り込み条件。後述の【絞り込み条件】の節を参照してください。

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数にはレコード数が数値で渡されます。

4.2.2.6.innerJoin

innerJoinメソッドはDBビューと別のDBテーブル・ビューまたはサブクエリの内部結合(inner join)を生成します。

 innerJoin(table, asname)

table引数には別のDBテーブル・ビュー名、ModelTableオブジェクト、ModelViewオブジェクト、または【サブクエリ】オブジェクトを与えます。asname引数はtable引数に与えた結合対象の別名を指定します。別名はtable引数がサブクエリの場合は必須、それ以外の場合は省略可能です。後述のonメソッドまたはusingメソッドで結合条件を指定できます。いずれも指定しない場合は自然結合(natural join)となります。innerJoinメソッドはModelViewオブジェクトを返します。

4.2.2.7.leftOuterJoin

leftOuterJoinメソッドはDBビューと別のDBテーブル・ビューまたはサブクエリの左外部結合(left outer join)を生成します。

 leftOuterJoin(table, asname)

table引数には別のDBテーブル・ビュー名、ModelTableオブジェクト、ModelViewオブジェクト、または【サブクエリ】オブジェクトを与えます。asname引数はtable引数に与えた結合対象の別名を指定します。別名はtable引数がサブクエリの場合は必須、それ以外の場合は省略可能です。後述のonメソッドまたはusingメソッドで結合条件を指定できます。いずれも指定しない場合は自然結合(natural join)となります。leftOuterJoinメソッドはModelViewオブジェクトを返します。

4.2.2.8.on

onメソッドは結合条件(JOIN ON節)を指定します。

 on(leftColumn, rightColumn, options)

leftColumn引数とrightColumn引数には結合する2つのDBテーブル・ビューまたはサブクエリのカラム名を指定します。optionsには以下のプロパティから成るオブジェクトを与えます。

op
結合条件の比較演算子(デフォルトは '=')

options引数は省略でき、その場合は比較演算子として = が用いられます。onメソッドはModelViewオブジェクトを返します。

4.2.2.9.outputCrossData

outputCrossDataメソッドはDBビューにクロス集計を適用して得られたレコードをファイルに書き出します。

 outputCrossData(options, callback)

options引数には以下のプロパティから成るオブジェクトを与えます。

crossOptions
クロス集計オプション。後述の【クロス集計オプション】の節を参照してください。
filters
出力フィルタ。カラム名とフィルタ名の対を {"カラム名1": フィルタ名1, "カラム名2": フィルタ名2, …} の形式のオブジェクトで与えます。フィルタについては後述の【フィルタAPI】の節を参照してください。
format
出力ファイル形式。現在は "xlsx"(Excelファイル)のみサポートしています。
fileName
出力ファイル名。省略するとDBテーブル名がファイル名として用いられます。
4.2.2.10.outputData

outputDataメソッドはDBビューのレコードをファイルに書き出します。

 outputData(options, callback)

options引数には以下のプロパティから成るオブジェクトを与えます。

columns
カラムの並び。出力対象のカラム名を文字列配列で与えます。省略するとDBビューのすべてのカラムが出力されます。
where
絞り込み条件。後述の【絞り込み条件】の節を参照してください。
order
並べ替え。後述の【並べ替え】の節を参照してください。
num
読み込み件数。
offset
先頭レコード番号(最初のレコードが0)。
filters
出力フィルタ。カラム名とフィルタ名の対を {"カラム名1": フィルタ名1, "カラム名2": フィルタ名2, …} の形式のオブジェクトで与えます。フィルタについては後述の【フィルタAPI】の節を参照してください。
format
出力ファイル形式。現在は "xlsx"(Excelファイル)のみサポートしています。
fileName
出力ファイル名。省略するとDBビュー名がファイル名として用いられます。
4.2.2.11.readCrossData

readCrossDataメソッドはDBビューにクロス集計を適用して得られたレコードを返します。

 readCrossData(crossOptions, callback)

crossOptions引数にはクロス集計オプションを与えます。クロス集計オプションについては後述の【クロス集計オプション】の節を参照してください。callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数にはレコードの配列が渡されます。各レコードは {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクトです。

4.2.2.12.readCrossGraphData

readCrossGraphDataメソッドはDBビューにクロス集計を適用して得られたレコードをグラフモジュール向けに整形して返します。

 readCrossGraphData(options, callback)

crossOptions引数にはクロス集計オプションを与えます。クロス集計オプションについては後述の【クロス集計オプション】の節を参照してください。callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数にはグラフモジュール向けに整形されたレコードの配列が渡されます。グラフモジュール向けのレコードの構成については【グラフ】の節を参照してください。

4.2.2.13.readData

readDataメソッドはDBビューからデータ行を読み込みます。

 readData(options, callback)

options引数にはデータ読み込みのオプションを以下のプロパティから成るオブジェクトで与えます。

where
絞り込み条件。後述の【絞り込み条件】の節を参照してください。
order
並べ替え。後述の【並べ替え】の節を参照してください。
num
読み込み件数。
offset
先頭レコード番号(最初のレコードが0)。
useCache
キャッシュ利用フラグ。真ならキャッシュを用います。

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数には得られたレコードの配列が渡されます。各レコードはカラム名と値の対から成る {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクトで表されます。

4.2.2.14.rightOuterJoin

rightOuterJoinメソッドはDBビューと別のDBテーブル・ビューまたはサブクエリの右外部結合(right outer join)を生成します。

 rightOuterJoin(table, asname)

table引数には別のDBテーブル・ビュー名、ModelTableオブジェクト、ModelViewオブジェクト、または【サブクエリ】オブジェクトを与えます。asname引数はtable引数に与えた結合対象の別名を指定します。別名はtable引数がサブクエリの場合は必須、それ以外の場合は省略可能です。前述のonメソッドまたは後述のusingメソッドで結合条件を指定できます。いずれも指定しない場合は自然結合(natural join)となります。rightOuterJoinメソッドはModelViewオブジェクトを返します。

4.2.2.15.select

selectメソッドは絞り込み条件および結合に用いられる【サブクエリ】オブジェクトを作成します。

 select(columns, options)

columns引数にはカラム式の並びを表す配列を与えます。配列の要素はカラム式の文字列または以下のプロパティからなるオブジェクトです。exprにはカラム式(カラム名や任意のSQL式)、asには別名を与えます。

 expr … カラム式
 as … AS名

options引数には上述の【readData】メソッドのoptions引数と同じ構造のオプションオブジェクトを与えます。selectメソッドは戻り値としてサブクエリオブジェクトを返します。サブクエリオブジェクトの利用方法については【サブクエリ】の節を参照してください。

4.2.3.カラム式

カラム内容の式にはSQLの式を自由に記述できます。本節では、ビューエディタのカラムの式編集ダイアログで選択して入力できるSQL式について説明します。

4.2.3.1.ABS(絶対値)

ABS関数は、与えられた値の絶対値を返します。

 ABS(number)

引数numberには値が数値型となる式(たとえば数値リテラルや数値型のカラム名)を与えます。戻り値のデータ型は入力値と同じです。たとえばABS(-34.5)は34.5を返します。

4.2.3.2.AGE(日または日時の差)

AGE関数は、日付や日時の差を求めます。

 AGE(timestamp1, timestamp2)
 AGE(timestamp1)

引数timestamp1およびtimestamp2には値が日付型または日時型となる式(たとえば日付リテラルや日時型のカラム名)を与えます。戻り値のデータ型は時間間隔型です。引数が2つの場合、2つの日付または日時の差を返します。たとえばAGE('2017-06-15'::timestamp, '1980-01-01'::timestamp)は37 years 5 mons 14 daysを返します。引数が1つの場合、現在の日付と与えられた値との差を返します。たとえば現在の日付が2017年6月20日のとき、AGE('1 Jan 2017'::date)は5 mons 19 daysを返します。これはAGE(CURRENT_DATE, '1 Jan 2017'::date)と書くのと同義です。

4.2.3.3.ARRAY_AGG(該当レコードの値を集約して配列化)

ARRAY_AGG関数は、与えられたレコードの値を集約して配列にします。

 ARRAY_AGG(column)

column引数には複数の値を返す式(たとえばカラム名)を与えます。戻り値は入力値と同じデータ型の配列です。

4.2.3.4.ARRAY_TO_STRING(配列から文字列に変換)

ARRAY_TO_STRING関数は配列を文字列に変換します。

 ARRAY_TO_STRING(array, text1)
 ARRAY_TO_STRING(array, text1, text2)

array引数には値が配列の式(たとえば配列リテラルや配列型のカラム名)、text1引数には区切り文字列を与えます。text2引数は省略可能で、与えられたときは配列中のNULL値を表す文字列として用いられます。たとえばARRAY_TO_STRING(ARRAY[-2, 1, NULL, 1, 2], ',', '')は-2,-1,,1,2を返します。

4.2.3.5.CASE(条件式)

CASE式は、条件の真偽に応じて別の値を返します。

 CASE
 WHEN &lt;condition&gt; THEN &lt;value1&gt;
 ELSE &lt;value2&gt;
 END

conditionには条件式を与えます。また、value1とvalue2には条件が真のときと偽のときに返される値をそれぞれ指定します。条件式はWHEN … THEN … の部分は2つ以上繰り返し記述することで複数指定できます。このときvalue2はすべての条件式が偽のときに返される値となります。ELSE … の部分は省略できます。ELSE句がなく、どの条件も真でないとき、CASE式の結果はNULLです。

4.2.3.6.COALESCE(NULLでない最初の値)

COALESCE関数は、与えられた引数のうち最初のNULLでない値を返します。すべての引数がNULLのときは結果はNULLです。

 COALESCE(value1, value2, ...)

以下に用例を示します。

 COALESCE(display_name, user_id, '&lt;unknown&gt;')

この式はdisplay_nameがNULLでなければをその値を返します。そうでない場合(値がNULLのとき)は、user_idがNULLでなければその値を返します。さもなければ<unknown>が返されます。

4.2.3.7.CONCAT(文字列結合)

CONCAT関数は、すべての引数を文字列化して結合した結果を返します。値がNULLの引数は無視されます。

 CONCAT(value1, value2, ...)

引数には任意のデータ型の式(たとえば文字列リテラルやカラム名)を与えます。戻り値のデータ型は文字列型です。

4.2.3.8.DATE_PART(年切出)

この式はDATE_PART関数を用いて日時型の値から年を取り出します。

 DATE_PART('year', timestamp)

timestamp引数には値が日付型の式(たとえば日時型のカラム名)を与えます。第1引数に以下のフィールド名を与えることで日時の成分を取り出せます。

 century … 世紀
 day … 日
decade
年を10で割った値
dow
日曜日(0)から土曜日(6)までの曜日
doy
年内の通算日数(1~366)
epoch
1970年1月1日からの経過秒数
hour … 時
isodow
月曜日(1)から日曜日(7)までの曜日
isoyear
ISO 8601週番号年
microseconds
マイクロ秒(端数を含む秒に1,000,000を乗じた値)
millennium
ミレニアム(1千年期間)
milliseconds
ミリ秒(端数を含む秒に1,000を乗じた値)
minute … 分
month … 月
quarter
四半期(1~4)
second … 秒
timezone
UTCからの時間帯オフセット(秒単位)
timezone_hour
時間帯オフセットの時の成分
timezone_minute
時間帯オフセットの分の成分
week
ISO 8601週番号
year … 年

日時フィールド名の詳細についてはPostgreSQLマニュアルのDATE_PART関数の節を参照してください。

 https://www.postgresql.jp/document/9.4/html/functions-datetime.html
4.2.3.9.FLOOR(切り捨て)

FLOOR関数は、与えられた引数より大きくない最大の整数を返します。

 FLOOR(number)

引数numberには値が数値型となる式(たとえば数値リテラルや数値型のカラム名)を与えます。戻り値のデータ型は入力値と同じです。たとえばFLOOR(-45.6)は-46を返します。

4.2.3.10.FORMAT(書式設定された文字列)

FORMAT関数は、C言語のsprintf関数と同様の方法で整形された文字列を生成します。

 FORMAT(format, value, ...)

format引数には第2引数以降の値の出力書式を決めるフォーマット文字列(フォーマット指定子を含む文字列)を与えます。戻り値のデータ型は文字列型です。フォーマット指定子は%で始まる以下の形式の文字列です。

 %[position][flags][width]type

positionはn$の形式の文字列で、nは出力する引数の番号です(format引数のあとの最初の引数が1)。flagsに-を指定すると左詰めになります。widthには出力する最小の文字幅を与えます。widthに*を指定すると次の引数が文字幅として用いられ、*n$を指定するとn番目の引数が文字幅として用いられます。
position、flags、widthは省略できます。typeにはフォーマット変換の形を指定します。以下の型が利用できます。

s
文字列に変換して出力します。NULL値は空文字列になります。
I
必要なら二重引用符で囲まれたSQL識別子に変換して出力します。NULL値はエラーになります。
L
引用符で囲まれたリテラルに変換して出力します。NULL値は引用符なしでNULLと出力されます。

また、フォーマット指定子の特別な場合として、%%は文字%を出力します。FORMAT関数の用例を以下に示します。

 FORMAT('%s, %s', 'foo', 'bar')
     結果:foo, bar
 FORMAT('%s-%s-%s', 1, 2, 3)
     結果:1-2-3
 FORMAT('%3$s-%2$s-%1$s', 1, 2, 3)
     結果:3-2-1
 FORMAT('%s%%', 12.3)
     結果:12.3%
 FORMAT('|%5s|', 'foo')
     結果:|  foo|
 FORMAT('|%-5s|', 'foo')
     結果:|foo  |
 FORMAT('|%*s|', 5, 'foo')
     結果:|  foo|
 FORMAT('|%*2$s|', 'foo', 5, 'bar')
     結果:|  bar|
 FORMAT('|%1$*2$s|', 'foo', 5, 'bar')
     結果:|  foo|
 format('%I', 'foo');
     結果:foo
 format('%I', '123');
     結果:&quot;123&quot;
 format('%L', 'foo');
     結果:'foo'
 format('%L', NULL);
     結果:NULL

フォーマット指定子の詳細についてはPostgreSQLマニュアルのformat関数の節を参照してください。

 https://www.postgresql.jp/document/9.4/html/functions-string.html
4.2.3.11.INTERVAL(一日後)

このSQL式は、与えられた日付の一日後の日付を返します。

 &lt;date&gt; + '1 day'::INTERVAL

<date>の部分には値が日付型の式(たとえば日付型のカラム名)を与えます。このSQL式のデータ型は<date>の式と同じです。また、'1 day'::INTERVALの部分には別の時間間隔型リテラルを指定できます。いくつかの例とその意味を以下に示します。

 '1 year 2 mons 3 days 04:05:06'::INTERVAL … 1年2ヶ月3日4時間5分6秒
 '1 year 2 months 3 days 4 hours 5 minutes 6 seconds'::INTERVAL … 同上
 '2 weeks'::INTERVAL … 14日
'1.5 year'::INTERVAL
1年6ヶ月
'1.5 month'::INTERVAL
1ヶ月15日(1ヶ月=30日で換算されます)
'1.5 week'::INTERVAL
10日12時間
'1.5 day'::INTERVAL
1日12時間
'1.5 hour'::INTERVAL
1時間30分
'1.5 minute'::INTERVAL
1分30秒

時間間隔型リテラルの詳細についてはPostgreSQLマニュアルの時間間隔入力の節を参照してください。

 https://www.postgresql.jp/document/9.4/html/datatype-datetime.html
4.2.3.12.LEFT(先頭の文字列)

LEFT関数は、文字列の先頭(左)から指定文字数分の部分文字列を返します。

 LEFT(text, number)

text引数には値が文字列型の式(たとえば文字列リテラルや文字列型のカラム名)を与えます。number引数には文字数を指定します。文字数が負の値のときは、その値の絶対値に等しい文字数の分だけ文字列の末尾を除いた部分文字列を返します。

4.2.3.13.LOWER(小文字変換)

LOWER関数は、与えられた文字列を小文字に変換します。

 LOWER(text)

text引数には値が文字列型の式(たとえば文字列型のカラム名)を与えます。戻り値のデータ型は文字列型です。

4.2.3.14.NULLIF(条件下でNULL)

NULLIF関数は、与えられた2つの値が等しければNULLを返します。

 NULLIF(value1, value2)

引数value1とvalue2には任意のデータ型の式(たとえばカラム名やリテラル値)を与えます。2つの値が等しければ結果はNULLです。そうでなければvalue1が返されます。このとき、戻り値のデータ型はvalue1と同じです。以下にNULLIF関数を用いてゼロ除算を避ける例を示します。

 column1 / NULLIF(column2, 0)

この式の結果は、column2が0のときはNULL、そうでなければcolumn1/column2です。

 COALESCE(column1 / NULLIF(column2, 0), 0)

この例では上述のCOALESCE関数を併用してcolumn2が0のときの結果を0としています。

4.2.3.15.RIGHT(末尾の文字列)

RIGHT関数は、文字列の末尾(右)から指定文字数分の部分文字列を返します。

 RIGHT( &lt;text&gt;, &lt;number&gt;)

text引数には値が文字列型の式(たとえば文字列リテラルや文字列型のカラム名)を与えます。number引数には文字数を指定します。文字数が負の値のときは、その値の絶対値に等しい文字数の分だけ文字列の先頭を除いた部分文字列を返します。

4.2.3.16.ROUND(四捨五入)

ROUND関数は、与えられた数値を四捨五入して返します。

 ROUND(number)

引数には値が数値型の式(たとえば数値リテラルや数値型のカラム名)を与えます。戻り値のデータ型は入力値と同じです。たとえばROUND(23.4)は23を返します。

4.2.3.17.SUBSTR(文字列切出)

SUBSTR関数は、与えられた文字列の部分文字列を返します。

 SUBSTR(text, number1, number2)

text引数には値が文字列型の式(たとえば文字列リテラルや文字列型のカラム名)を与えます。number1引数には部分文字列の開始位置(文字列の先頭が0)、number2引数には部分文字列の文字数を整数で与えます。

4.2.3.18.TO_CHAR(文字列化)

TO_CHAR関数は、種々のデータ型の値を整形された文字列に変換します。

 TO_CHAR(value, text)

value引数には整形される値を与えます。text引数には出力書式を定義するテンプレートを文字列で与えます。TO_CHAR関数の用例を以下に示します。

 TO_CHAR('Dec 25 2016'::date, 'YYYY-MM-DD')
     結果:'2016-12-25'
 TO_CHAR('2016-12-25'::date, 'Dy, Mon DD YYYY')
     結果:'Sun, Dec 25 2016'
 TO_CHAR('12 hours 34 minutes 56 seconds'::interval, 'HH24:MI:SS');
     結果:'12:34:56'
 TO_CHAR(123, '9999')
     結果:'  123'
 TO_CHAR(123, '0000')
     結果:' 0123'
 TO_CHAR(-123, '9999')
     結果:' -123'
 TO_CHAR(-123, '0000')
     結果:'-0123'
 TO_CHAR(-123, 'FM99999')
     結果:'-123'
 TO_CHAR(123, '9999.9')
     結果:'  123.0'
 TO_CHAR(123, 'FM9999.9')
     結果:'123.'
 TO_CHAR(12.3, '999.999')
     結果:'  12.300'
 TO_CHAR(12.3, 'FM999.999')
     結果:'12.3'
 TO_CHAR(1234, '99')
     結果:' ##'
 TO_CHAR(-1234, '99')
     結果:'-##'

書式テンプレートの詳細についてはPostgreSQLマニュアルのデータ型書式設定関数の節を参照してください。

 https://www.postgresql.jp/document/9.4/html/functions-formatting.html
4.2.3.19.UPPER(大文字変換)

UPPER関数は、与えられた文字列を大文字に変換します。

 UPPER(text)

text引数には値が文字列型の式(たとえば文字列型のカラム名)を与えます。戻り値のデータ型は文字列型です。

5.apiオブジェクト

apiオブジェクトは、スクリーン設計のJavaScriptプログラム開発に用いられる各種APIモジュールへのアクセスを提供するオブジェクトです。apiオブジェクトの構成要素は以下のとおりです。

5.1.api.constants

  1. constantsモジュールはアプリケーション名や運用時のURLなどアプリケーション固有の情報を提供するモジュールです。このモジュールが提供する情報はすべてアプリケーションのビルド時に決まる固定値(定数)です。

5.1.1.プロパティ

  1. constantsモジュールには以下のプロパティがあります。
apiVersion
APIのバージョン番号文字列。現在は "1.0" のみ
AppDisplayname
アプリケーションの表示名
appName
アプリケーション名
conf
サーバ設定。以下のプロパティから成るオブジェクト
port
サーバのポート番号
host
サーバのホスト名
companyName
契約名(会社名など)【TBC】
fileRoot
ルートURL中のファイル名のルートディレクトリ【TBC】
first_screen
最初のスクリーン
target
ビルド対象("debug" または "release")
urlRoot
アプリケーション運用時のルートURL

5.2.api.request

  1. requestモジュールはBuddyサーバに対して種々の処理要求を送るためのAPI関数を提供するモジュールです。

5.2.1.関数

5.2.1.1.customLog

customLog関数はカスタムログファイルに文字列を書き込みます。

 api.request.customLog(text, callback)

引数:

text
カスタムログファイルに書き込む文字列
callback
コールバック関数

text引数に与えた文字列は、関数呼び出し時のタイムスタンプ、実行ユーザの名前と共に日付別のカスタムログファイルに書き込まれます。カスタムログファイルは開発画面のログ閲覧機能により閲覧できます。実行結果はコールバック関数を通じて返されます。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したらコールバック関数の第1引数にはnullが渡されます。第2引数は今のところ使用されません。

5.2.1.2.deleteFile

deleteFile関数はアプリケーション用のファイルシステム上のファイルを削除します。

 api.request.deleteFile(appName, dir, file, callback)

引数:

appName
アプリケーション名
dir
ディレクトリ名
file
ファイル名
callback
コールバック関数

dir引数に与えるディレクトリ名はappName引数で与えるアプリケーションのファイルシステム上の絶対パスです。実行結果はコールバック関数を通じて返されます。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したらコールバック関数の第1引数にはnullが渡されます。第2引数は今のところ使用されません。

5.2.1.3.getFileList

getFileList関数はアプリケーション用のファイルシステム上のファイルの一覧を得ます。

 api.request.getFileList(appName, dir, callback)
appName
アプリケーション名
dir
ディレクトリ名
callback
コールバック関数

dir引数に与えるディレクトリ名はappName引数で与えるアプリケーションのファイルシステム上の絶対パスです。実行結果はコールバック関数を通じて返されます。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したら第1引数にはnull、第2引数にdirディレクトリ内の各ファイルおよびディレクトリの情報を表すオブジェクトの配列が返されます。配列の要素は次のプロパティから成るオブジェクトです。

name
ファイル名またはディレクトリ名
path
当該ファイルまたはディレクトリを指す完全なパス名
dir
ディレクトリなら真、ファイルなら偽
5.2.1.4.getHoliday

getHoliday関数は1年分の祝日の一覧を得ます。

 api.request.getHoliday(year, callback)

引数:

year
年(西暦)
callback
コールバック関数

year引数には年を整数値で与えます。実行結果はコールバック関数を通じて返されます。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したらコールバック関数の第1引数にはnull、第2引数には以下のプロパティから成るオブジェクトの配列が渡されます。

year
年(西暦)
month … 月
day … 日
name
祝日の名前
5.2.1.5.getLatLngAddress

getLatLngAddress関数は住所から緯度・経度で表された位置情報を得ます。

 api.request.getLatLngAddress(address, options, callback)

引数:

 address … 住所
options
オプション
callback
コールバック関数

address引数には検索する住所を文字列で与えます。options引数は今のところ無視されます。実行結果はコールバック関数を通じて返されます。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したらコールバック関数の第1引数にはnull、第2引数には以下のプロパティから成るオブジェクトが渡されます。

 lat … 緯度
 lng … 経度
5.2.1.6.getUserInfo

getUserInfo関数はユーザ情報を得ます。

 api.request.getUserInfo(callback)

引数:

callback
コールバック関数

実行結果はコールバック関数を通じて返されます。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したらコールバック関数の第1引数にはnull、第2引数には以下のプロパティから成るオブジェクトが渡されます。

user_id
ユーザID
name … ユーザ名
group
権限グループ名
user_group
所属するグループ名の配列
guest
ゲストユーザなら真

権限グループ名は以下のいずれかです。

admin
運用管理・開発者
operator
運用管理者
developer … 開発者
user … 一般
trial … お試し
support … サポート
5.2.1.7.getZipAddress

getZipAddress関数は郵便番号から住所を検索します。

 api.request.getZipAddress(zip, options, callback)

引数:

 zip … 郵便番号
options
検索オプション。
callback
コールバック関数

zip引数に与える郵便番号が%で始まるときは前方一致検索、%で終わる時は後方一致検索を行ないます。options引数には以下のプロパティから成るオブジェクトを与えます。

mode
検索モード。'SIMPLE' または 'FULL' のどちらか。
offset
先頭レコード番号(最初のレコードが0)。デフォルト値は0。
num
読み込み件数。デフォルト値は20。

実行結果はコールバック関数を通じて返されます。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したらコールバック関数の第1引数にはnull、第2引数にはoptions.modeの値に応じて以下のプロパティから成るオブジェクトが渡されます。

 (a)options.modeが'SIMPLE'の場合
   address … 住所
kana
住所のフリガナ
zip
郵便番号(7桁)
(b)options.modeが'FULL'の場合
build … ビル名
build_kana
ビル名のフリガナ
city
regionから市名を抜き出したもの
city_kana
市名のフリガナ
district
regionから郡名を抜き出したもの
district_kana
郡名のフリガナ
floor … ビルの階
has_chome
丁目を有する町域なら真、そうでなければ偽
has_koaza_banchi
小字毎に番地が起番されている町域なら真、そうでなければ偽
has_subtown
小字、丁目、番地,号があれば真、そうでなければ偽
is_multi_town
1つの郵便番号が2つ以上の町域を表す場合は真、そうでなければ偽
is_multi_zip
1つの町域が2つ以上の郵便番号で表される場合は真、そうでなければ偽
old_zip
旧郵便番号(5桁)
pref
都道府県名
pref_kana
都道府県名のフリガナ
region
市区町村名
region_id
全国地方公共団体コード(JIS X0401、X0402)を表す数値
region_kana
市区町村名のフリガナ
subtown
小字、丁目、番地,号等
subtown_kana
小字、丁目、番地,号等のフリガナ
town … 町域名
town_kana
町域名のフリガナ
update_reason
更新の表示。0なら変更なし、1なら変更あり、2なら廃止
update_status
変更理由。0は変更なし、1は市政・区政・町政・分区・政令指定都市施行、2は住居表示の実施、3は区画整理、4は郵便区調整等、5は訂正、6は廃止
ward
regionから区名を抜き出したもの
ward_kana
区名のフリガナ
zip
郵便番号(7桁)
5.2.1.8.keyValueStore

keyValueStore関数はアプリケーション固有のキーバリューストアに対する操作を実行します。

 api.request.keyValueStore(method, key, value, callback)

引数:

method
キーバリューストアに対する操作。"set"、"get"、"del"のいずれか
key … キー
value … 値
callback
コールバック関数

method引数が"set"のときはkey引数で与えるキーの値をvalueで与える値に更新します。method引数が"get"のときはkey引数で与えるキーの値を読み出します(value引数は無視されます)。method引数が"del"のときはkey引数で指定したキーを削除します(value引数は無視されます)。実行結果はコールバック関数を通じて返されます。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したらコールバック関数の第1引数にはnull、第2引数には読み出した値が渡されます。

5.2.1.9.logout

logout関数はログアウト処理を実行します。

 api.request.logout(callback)

引数:

callback
コールバック関数

実行結果はコールバック関数を通じて返されます。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したら第1引数にはnullが渡されます。第2引数は今のところ使用されません。

5.2.1.10.outputReport

outputReport関数はレポート出力を実行します。

 api.request.outputReport(appName, outputName, target, param, callback)

引数:

appName
アプリケーション名
outputName
レポート名
target
レポート出力の対象。"debug"または"release"
param
レポートの制御パラメタ
callback
コールバック関数

param引数には以下のプロパティから成るオブジェクトを与えます。

where
絞り込み条件。後述の【絞り込み条件】の節を参照してください。
order
並べ替え。後述の【並べ替え】の節を参照してください。
offset
先頭レコード番号(最初のレコードが0)。
num
出力件数。
download
trueならダウンロードを強制します。falseならブラウザの設定に従います(デフォルト値true)。

これら以外のプロパティも指定可で、レポート中で「this.param.プロパティ名」で参照できます。

複数のdbi:データソースを含むレポートでは、どのデータソースに対するオプション指定かを区別するために、srcnameparamという特殊な指定ができます。各データソースの名前を、 PDFレポートでは領域の属性「データソース名」で、Excelレポートでは、<repeat>の属性に「srcname="…"」として指定します。そして、レポート出力時のオプション指定で次の例のようにします。

	var report = "…"; // レポート名
	var param = { // オプションパラメータ
		where: {…}, // データソース名のない領域やrepeatに対するもの
		srcnameparam: {
			foo: { // データソース名が「foo」の領域やrepeatに対するもの
				where: {…},
				order: "…",
			}
		}
	};
	api.outputDialog.open(report, param);

実行結果はコールバック関数を通じて返されます。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したら第1引数にはnull、第2引数にはレポート出力プロセスのIDが渡されます。

5.2.1.11.renameFile

renameFile関数はアプリケーション用のファイルシステム上のファイルの名前を変更します。

 api.request.renameFile(appName, dir, src, dst, callback)

引数:

appName
アプリケーション名
dir
ディレクトリ名
src
元のファイル名
dst
新しいファイル名
callback
コールバック関数

dir引数に与えるディレクトリ名はappName引数で与えるアプリケーションのファイルシステム上の絶対パスです。実行結果はコールバック関数を通じて返されます。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したら第1引数にはnullが渡されます。第2引数は今のところ使用されません。

5.2.1.12.resizeImage

resizeImage関数は画像の縦横サイズを変換します。

 api.request.resizeImage(options, callback)

引数:

options
オプション
callback
コールバック関数

options引数には以下のプロパティから成るオブジェクトを与えます。

format
画像フォーマット(gif, jpg, png等)
src
変換元ファイル名
dst
変換先ファイル名
width
横ピクセル数
height
縦ピクセル数
ignoreAspectRatio
真なら元の縦横比を無視する

実行結果はコールバック関数を通じて返されます。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したら第1引数にはnullが渡されます。第2引数は今のところ使用されません。

5.2.1.13.sendMail

sendMail関数はサーバを通じてメールを送信します。

 api.request.sendMail(maildata, callback)

引数:

maildata
メールデータ(後述)
callback
コールバック関数

maildata引数には以下のプロパティから成るオブジェクトを与えます。

type
メール本文の形式。"text"または"html"
from
送信元メールアドレス(省略するとBuddyサーバの設定ファイルで指定された送信元メールアドレスを使用)
to
宛先メールアドレス(カンマ区切りで複数指定可)
cc
CCメールアドレス(カンマ区切りで複数指定可)
bcc
BCCメールアドレス(カンマ区切りで複数指定可)
subject … 表題
body … 本文
attachments
添付ファイルパス(filesディレクトリからの相対パス)の配列
smtpserver
SMTPサーバのホスト名またはIPアドレス(省略するとBuddyサーバの設定ファイルで指定されたSMTPサーバを使用)

実行結果はコールバック関数を通じて返されます。コールバック関数をcallback(err, res)とすると、メールの送信に失敗した場合にはコールバック関数の第1引数にErrorオブジェクト(err.response.textにエラー内容)が渡されます。メールの送信に成功した場合は、第1引数にはnull、第2引数には以下のプロパティから成るSMTP応答オブジェクトが渡されます。

envelope
エンベロープオブジェクト
accepted
SMTPサーバによって受理されたメールアドレスの配列
rejected
SMTPサーバによって拒否されたメールアドレスの配列
response
SMTPサーバからの応答メッセージ文字列

少なくとも1つのメールアドレスがSMTPサーバにより受理されたら送信成功として扱われます。

5.2.1.14.sendMessage

sendMessage関数はサーバを通じてメッセージを送信します。

 api.request.sendMessage(messagedata, callback)

引数:

messagedata
メッセージデータ(後述)
callback
コールバック関数

messagedata引数には以下のプロパティから成るオブジェクトを与えます。

type
メッセージの形式。文字列 "long_message" を与えます。
to
宛先。1つ以上の宛先をカンマ区切りの文字列で与えます。各宛先は以下のいずれかです。
・ユーザーID
個別ユーザー
・:ALL
全ユーザー
・:ONLINE
全オンラインユーザー
・:GROUP(グループ名)
グループに属する全ユーザー
title
表題。文字列で与えます。
body
本文。文字列で与えます。
option
オプション。以下のプロパティから成るオブジェクトを与えます。
offlineuser
文字列 "sendmail" を与えると、相手がオフラインの場合はメールで送信します。

実行結果はコールバック関数を通じて返されます。コールバック関数をcallback(err, res)とすると、メッセージの送信に失敗した場合にはコールバック関数の第1引数にErrorオブジェクト(err.response.textにエラー内容)が渡されます。メッセージの送信に成功した場合は、コールバック関数の第1引数にはnull、第2引数には各宛先への送信結果の配列が渡されます。送信結果は以下のいずれかです。

・オンラインで送信した場合
"ユーザーID:socket"
・メールで送信した場合
"ユーザーID:mailto:メールアドレス"
・メール送信に失敗した場合
"ユーザーID:sendmail error:エラー内容"
・相手がオフラインで送信しなかった場合
"ユーザーID:noop"
5.2.1.15.upload

upload関数はアプリケーション用のファイルシステム上にファイルをアップロードします。

 api.request.upload(appName, dir, files, callback)

引数:

appName
アプリケーション名
dir
ディレクトリ名
files
ファイルリスト
callback
コールバック関数

dir引数に与えるディレクトリ名はappName引数で与えるアプリケーションのファイルシステム上の絶対パスです。files引数にはHTML5のFileListオブジェクトを与えます(※注:Internet Explorer 11ではFileListオブジェクトは利用できません)。実行結果はコールバック関数を通じて返されます。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したら第1引数にはnull、第2引数にはアップロードされたフェイルのパス名が渡されます。

5.3.api.dbrequest

  1. dbrequestモジュールはBuddyサーバに対してデータベース処理要求を送るためのAPI関数を提供するモジュールです。

5.3.1.関数

5.3.1.1.addListener

addListener関数はDBテーブルのテーブルトリガに関するメッセージを受け取るリスナー関数を追加します。

 api.dbrequest.addListener(appName, tableName, listener, callback)

引数:

appName
アプリケーション名
tableName
DBテーブル名
listener
リスナー関数
callback
コールバック関数

listener引数にはリスナーとなる関数オブジェクトを与えます。リスナー関数の第1引数にはテーブルトリガに関するメッセージが渡されます。メッセージは以下のプロパティから成るオブジェクトです。

type
"dbi"
api
"notify"
payload
メッセージの本体(ペイロード)。以下のプロパティから成るオブジェクト
NEW
新レコード
OLD
旧レコード
TG_NAME … トリガ名
TG_WHEN
トリガ実行タイミング。"BEFORE"(データ操作実行前)、"AFTER"(データ操作実行後)のいずれか。
TG_LEVEL
トリガ実行レベル。"ROW"(行単位)、"STATEMENT"(文単位)のいずれか
TG_OP
データ操作名。"INSERT"、"UPDATE"、"DELETE"、"TRUNCATE"のいずれか
TG_RELID
DBテーブルのOID
TG_TABLE_NAME
DBテーブル名
TG_TABLE_SCHEMA
スキーマ名
from
メッセージの送信元
time
タイムスタンプ

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したら第1引数にはnullが渡されます。第2引数は今のところ使用されません。

5.3.1.2.clearCache

clearCache関数は後述のreadCachedData関数で用いるキャッシュの内容を破棄します。

 api.dbrequest.clearCache()
5.3.1.3.deleteRecord

deleteRecord関数はDBテーブルに格納されたレコードを削除します。

 api.dbrequest.deleteRecord(appName, target, tableName, where, callback)

引数:

appName
アプリケーション名
target
ビルド対象("debug"または"release")
tableName
DBテーブル名
where
絞り込み条件。後述の【絞り込み条件】の節を参照してください。
callback
コールバック関数

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数には以下のプロパティから成るオブジェクトが渡されます。

body
削除されたレコードの配列。各レコードは {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクト。
5.3.1.4.findNext

findNext関数はDBテーブル・ビューのレコードについてキーワード検索を実行します。

 api.dbrequest.findNext(appName, target, tableName, where, order, keyword, searchPos, callback)

引数:

appName
アプリケーション名
target
ビルド対象("debug"または"release")
tableName
DBテーブル・ビュー名
where
絞り込み条件。後述の【絞り込み条件】の節を参照してください。
order
並べ替え。後述の【並べ替え】の節を参照してください。
keyword
検索キーワード。後述の【パタン文字列】の節を参照してください。
searchPos
キーワード検索の開始レコード番号(最初のレコードが0)。
callback
コールバック関数

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。キーワード検索に成功した場合、コールバック関数の第1引数にはnull、第2引数にはsearchPos以降のレコードの中で検索キーワードが含まれる最初のレコードの番号が渡されます。検索キーワードが見つからなかった場合には-1が渡されます。

5.3.1.5.getColumns

getColumns関数はDBテーブル・ビューのカラムに関する情報を得ます。

 api.dbrequest.getColumns(appName, target, tableName, callback)

引数:

appName
アプリケーション名
target
ビルド対象("debug"または"release")
tableName
DBテーブル・ビュー名
callback
コールバック関数

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功した場合、コールバック関数の第1引数にはnull、第2引数には以下のプロパティから成るオブジェクトの配列が渡されます。

 a. DBテーブルの場合
      ColumnDbname … カラム名
ColumnDisplayname
カラム表示名
ColumnCategory
データ型のカテゴリ
ColumnClass
データ型のクラス
ColumnType … データ型
ColumnDefaultvalue
デフォルト値
ColumnOrder
カラムの順序
ColumnFlags
カラムフラグの配列
ColumnChoices
選択肢の配列
ColumnRange
範囲選択肢
ColumnMemo … メモ
b. DBビューの場合
ColumnAsname
カラムAS名
ColumnDisplayname
カラム表示名
ColumnExpression
カラム内容の式
ColumnSumType
集計型(GROUP、SUM、COUNT、MAX、MIN、AVG、NONE)
ColumnOrder
カラムの順序
ColumnMemo … メモ
5.3.1.6.getCount

getCount関数は与えられた絞り込み条件を満たすレコードの数を返します。

 api.dbrequest.getCount(appName, target, tableName, where, callback)

引数:

appName
アプリケーション名
target
ビルド対象("debug"または"release")
tableName
DBテーブル・ビュー名
where
絞り込み条件。後述の【絞り込み条件】の節を参照してください。
callback
コールバック関数

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数にはレコード数が数値で渡されます。

5.3.1.7.getCrossColumns

getCrossColumns関数はDBテーブル・ビューのクロス集計結果(一時テーブル)を構成するカラムの情報を得ます。

 api.dbrequest.getCrossColumns(appName, target, crossOptions, callback)

引数:

appName
アプリケーション名
target
ビルド対象("debug"または"release")
crossOptions
クロス集計オプション。後述の【クロス集計オプション】の節を参照してください。
callback
コールバック関数

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功した場合、コールバック関数の第1引数にはnull、第2引数には以下のプロパティから成るオブジェクトの配列が渡されます。

 ColumnAsname … カラム名
ColumnDisplayname
カラム表示名
ColumnExpression
カラム内容の式
ColumnValue
値カラムのカラム名(列ラベルの場合のみ)
ColumnSumType
集計タイプ。"GROUP"(行ラベルの場合)、または"SUM"、"COUNT"、"MAX"、"MIN"、"AVG"のいずれか(列ラベルの場合)
ColumnCategory
カテゴリ階層(列ラベルの場合のみ)。以下のプロパティから成るオブジェクトの配列
CatExpression
ひとつのカテゴリ階層を定義するSQL条件式
CatValues
列カラムの値(上記のSQL条件式に現れるリテラル)
5.3.1.8.insertRecord

insertRecord関数はDBテーブルに新しいレコードを追加(挿入)します。

 api.dbrequest.insertRecord(appName, target, tableName, data, callback)

引数:

appName
アプリケーション名
target
ビルド対象("debug"または"release")
tableName
DBテーブル名
data
新しいレコードを表す {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクト
callback
コールバック関数

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数には以下のプロパティから成るオブジェクトが渡されます。

body
更新されたレコードの配列。各レコードは {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクト。
5.3.1.9.outputCrossData

outputCrossData関数はDBテーブル・ビューにクロス集計を適用して得られたレコードをファイルに書き出します。

 api.dbrequest.outputCrossData(appName, target, crossOptions, filters, format, fileName, callback)

引数:

appName
アプリケーション名
target
ビルド対象("debug"または"release")
crossOptions
クロス集計オプション。後述の【クロス集計オプション】の節を参照してください。
filters
出力フィルタ。カラム名とフィルタ名の対を {"カラム名1": フィルタ名1, "カラム名2": フィルタ名2, …} の形式のオブジェクトで与えます。フィルタについては後述の【フィルタAPI】の節を参照してください。
format
出力ファイル形式。現在は "xlsx"(Excelファイル)のみサポートしています。
fileName
出力ファイル名。省略するとDBテーブル・ビュー名がファイル名として用いられます。
callback
コールバック関数
5.3.1.10.outputData

outputData関数はDBテーブル・ビューのレコードをファイルに書き出します。

 api.dbrequest.outputData(appName, target, tableName, columns, where, offset, num, order, filters, format, fileName, callback)

引数:

appName
アプリケーション名
target
ビルド対象("debug"または"release")
tableName
DBテーブル・ビュー名
where
絞り込み条件。後述の【絞り込み条件】の節を参照してください。
offset
先頭レコード番号(最初のレコードが0)。
num
読み込み件数。
order
並べ替え。後述の【並べ替え】の節を参照してください。
filters
出力フィルタ。カラム名とフィルタ名の対を {"カラム名1": フィルタ名1, "カラム名2": フィルタ名2, …} の形式のオブジェクトで与えます。フィルタについては後述の【フィルタAPI】の節を参照してください。
format
出力ファイル形式。現在は "xlsx"(Excelファイル)のみサポートしています。
fileName
出力ファイル名。省略するとDBテーブル・ビュー名がファイル名として用いられます。
callback
コールバック関数

5.3.1.11.readCachedData

readCachedData関数はキャッシュを用いてDBテーブル・ビューからデータ行を読み込みます。以前に読み込んだデータ行がキャッシュに残っていたらそれを実行結果として返します。この場合、サーバへのデータベース処理要求が省略されるので実行が比較的短時間で完了します。

 api.dbrequest.readCachedData(appName, target, tableName, where, offset, num, order, callback)

引数:

appName
アプリケーション名
target
ビルド対象("debug"または"release")
tableName
DBテーブル・ビュー名
where
絞り込み条件。後述の【絞り込み条件】の節を参照してください。
order
並べ替え。後述の【並べ替え】の節を参照してください。
callback
コールバック関数

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数には得られたレコードの配列が渡されます。各レコードはカラム名と値の対から成る {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクトで表されます。

5.3.1.12.readCrossData

readCrossData関数はDBテーブル・ビューにクロス集計を適用して得られたレコードを返します。

 api.dbrequest.readCrossData(appName, target, crossOptions, callback)

引数:

appName
アプリケーション名
target
ビルド対象("debug"または"release")
crossOptions
クロス集計オプション。後述の【クロス集計オプション】の節を参照してください。
callback
コールバック関数

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数には得られたレコードの配列が渡されます。各レコードはカラム名と値の対から成る {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクトで表されます。

5.3.1.13.readData

readData関数はDBテーブル・ビューからデータ行を読み込みます。

 api.dbrequest.readData(appName, target, tableName, where, offset, num, order, callback)

引数:

appName
アプリケーション名
target
ビルド対象("debug"または"release")
tableName
DBテーブル・ビュー名
where
絞り込み条件。後述の【絞り込み条件】の節を参照してください。
offset
先頭レコード番号(最初のレコードが0)。
num
読み込み件数。
order
並べ替え。後述の【並べ替え】の節を参照してください。
callback
コールバック関数

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数には得られたレコードの配列が渡されます。各レコードはカラム名と値の対から成る {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクトで表されます。

5.3.1.14.removeListener

removeListener関数は前述のaddListener関数で追加したリスナーを削除します。

 api.dbrequest.removeListener(appName, tableName, listener, callback)

引数:

appName
アプリケーション名
tableName
DBテーブル名
listener
リスナー関数
callback
コールバック関数

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したら第1引数にはnullが渡されます。第2引数は今のところ使用されません。

5.3.1.15.setCacheOptions

setCacheOptions関数は前述のreadCachedData関数で用いるキャッシュのオプションを設定します。

 api.dbrequest.setCacheOptions(options)

引数:

options
キャッシュオプション。以下のプロパティから成るオブジェクトを与えます。
size
キャッシュに保存するreadCachedData関数の実行結果の最大数
5.3.1.16.updateRecord

updateRecord関数はDBテーブルに格納された既存レコードを更新します。

 api.dbrequest.updateRecord(appName, target, tableName, where, data, callback)

引数:

appName
アプリケーション名
target
ビルド対象("debug"または"release")
tableName
DBテーブル名
where
絞り込み条件。後述の【絞り込み条件】の節を参照してください。
data
更新されるカラムと新しい値の対を表す {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクト。
callback
コールバック関数

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数には以下のプロパティから成るオブジェクトが渡されます。

body
更新されたレコードの配列。各レコードは {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクト。
5.3.1.17.upsertRecord

upsertRecord関数はレコードの更新を試みて成功したら処理を終えます。もし更新するレコードが無ければ新規レコードの挿入を行ないます。

 api.dbrequest.upsertRecord(appName, target, tableName, where, data, callback)

引数:

appName
アプリケーション名
target
ビルド対象("debug"または"release")
tableName
DBテーブル名
where
絞り込み条件。後述の【絞り込み条件】の節を参照してください。
data
更新・挿入されるレコードのカラムと値の対を表す {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクト。
callback
コールバック関数

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。データ操作が成功した場合、コールバック関数の第1引数にはnull、第2引数には以下のプロパティから成るオブジェクトが渡されます。

body
更新・挿入されたレコードの配列。各レコードは {カラム名1: 値1, カラム名2: 値2, ...} の形式のオブジェクト。

5.4.api.cookie

  1. cookieモジュールはアプリケーションに関連付けられたクッキーを参照するためのモジュールです。クッキーはキーと値の対の並びとして表されます。

5.4.1.プロパティ

  1. cookieモジュールはクッキーの各々のキーをプロパティ名、キーの値をプロパティの値とするオブジェクトです。キーに含まれる空白文字はプロパティ名からは取り除かれます(たとえば "foo bar" というキーは "foobar" というプロパティになります)。

5.5.api.filter

  1. filterモジュールはBuddyのフィルタ機能をJavaScriptコードから利用するためのAPI関数を提供するモジュールです。

5.5.1.関数

5.5.1.1.apply

apply関数は与えられたデータにフィルタを適用した結果を返します。

 api.filter.apply(filterName, data)

引数:

filterName
フィルタ名
data
フィルタ適用対象のデータ(文字列など)

filterName引き数には適用するフィルタの名前を文字列で与えます。利用できるフィルタ名については【フィルタAPI】の節を参照してください。

5.5.1.2.exists

exists関数は与えられた名前のフィルタが存在するかどうかを返します。

 api.filter.exists(filterName)

引数:

filterName
フィルタ名

filterName引数で与えた名前のフィルタが存在するならば真を、それ以外の場合は偽を返します。

5.5.1.3.set

set関数は新しいフィルタを登録します。

 api.filter.set(filterName, func)

引数:

filterName
フィルタ名
func
関数オブジェクト

filterName引数には新しいフィルタ名を、func引数にはフィルタを実装する関数オブジェクトを与えます。

5.6.api.outputDialog

  1. outputDialogモジュールはレポート出力を実行してレポートをダウンロードするためのダイアログを表示するモジュールです。

5.6.1.関数

5.6.1.1.open

open関数はレポート出力ダイアログを開きます。

 api.outputDialog.open(outputName, param)

引数:

outputName
レポート名
param
レポートの制御パラメタ

outputName引数にはレポート設計で定義したレポート名を与えます。param引数にはレポート制御パラメタを与えます。指定したパラメタはapi.request.outputReport関数のparam引数に渡されます。パラメタの詳細については【outputReport】の節を参照してください。

5.7.api.dialog

  1. dialogモジュールは各種のダイアログウィンドウを表示するためのAPI関数を提供するモジュールです。

5.7.1.関数

5.7.1.1.alert

alert関数はメッセージを警告用ダイアログで表示します。

 api.dialog.alert(message, callback)

引数:

message
メッセージ文字列
callback
コールバック関数

message引数にはダイアログ内に表示するメッセージを文字列で与えます。このダイアログは閉じられるまでJavaScriptコードの実行をブロックします。コールバック関数はダイアログが閉じられた後に呼び出されます。

5.7.1.2.closeDialog

closeDialog関数は後述のshowModal関数で開いたダイアログを閉じます。

 api.dialog.closeDialog(code, value)

引数:

code
終了コード
value
ダイアログの戻り値

code引数にはダイアログの閉じ方を示す任意の値を与えます。value引数にはダイアログからスクリーンプログラムに渡す戻り値を与えます。code引数とvalue引数の値はそれぞれshowModal関数で開いたコールバック関数の第1引数、第2引数に渡されます。

5.7.1.3.confirm

confirm関数はメッセージを確認用ダイアログで表示します。ダイアログウィンドウにはOKボタンとキャンセルボタンが表示されます。

 api.dialog.confirm(message, callback)

引数:

message
メッセージ
callback
コールバック関数

message引数にはダイアログ内に表示するメッセージを文字列で与えます。このダイアログは閉じられるまでJavaScriptコードの実行をブロックします。コールバック関数はダイアログが閉じられた後に呼び出されます。コールバック関数の引数には、OKボタンが押されたらtrue、キャンセルボタンが押されたらfalseが渡されます。

5.7.1.4.message

messageはメッセージをアプリケーション内のダイアログで表示します。

 api.dialog.message(message, style, callback)

引数:

message
メッセージ文字列
style
スタイルオブジェクト
callback
コールバック関数

message引数にはダイアログ内に表示するメッセージを文字列で与えます。style引数にはスタイルオブジェクトを与えます。このダイアログはJavaScriptコードの実行をブロックしません。ダイアログが閉じられたらコールバック関数が呼び出されます。

5.7.1.5.openFile

openFile関数はアプリケーションのファイルシステム内のファイルをブラウザの別ウィンドウに表示します。

 api.dialog.openFile(path, target)

引数:

path
ファイル名
target
ウィンドウ名

path引数にはファイル名を/filesディレクトリからの相対パスで指定します。target引数にはブラウザのウィンドウ名を与えます。指定した名前のウィンドウがあればそのウィンドウが用いられ、なければその名前の新しいウィンドウが開かれます。target引数に"_blank"を指定すると常に新しいウィンドウが開かれます。target引数を省略すると"_blank"を指定したと見なされます。

5.7.1.6.openUrl

openUrl関数はURLで指定されるリソース(ウェブページなど)をブラウザの別ウィンドウに表示します。

 api.dialog.openUrl(url, target)

引数:

url
リソースのURL
target
ウィンドウ名

url引数には表示するリソースのURLを文字列で与えます。target引数にはブラウザのウィンドウ名を与えます。指定した名前のウィンドウがあればそのウィンドウが用いられ、なければその名前の新しいウィンドウが開かれます。target引数に"_blank"を指定すると常に新しいウィンドウが開かれます。target引数を省略すると"_blank"を指定したと見なされます。

5.7.1.7.show

show関数はコンテナ型のスクリーンをアプリケーション内のダイアログに埋め込んで表示します。

 api.dialog.show(screen, style, callback)

引数:

screen
スクリーン名
style
スタイルオブジェクト
callback
コールバック関数

screen引数にはダイアログに埋め込むスクリーンの名前を与えます。指定するスクリーンはコンテナ型でなければなりません。style引数にはスタイルオブジェクトを与えます。このダイアログはJavaScriptコードの実行をブロックしません。show関数で開いたダイアログは、埋め込みスクリーンのスクリーンプログラムの中で前述のcloseDialog関数を呼び出すか、ダイアログ右上のXボタンまたはダイアログの外側をクリックすれば閉じることができます。ダイアログが閉じられたらコールバック関数が呼び出されます。コールバック関数の引数にはダイアログの閉じ方に応じて以下の値が渡されます。

 a. closeDialog関数によりダイアログを閉じたとき
       closeDialog関数のcode引数、value引数に与えた値がそれぞれコールバック関数の第1引数、第2引数に渡されます。
 b. ダイアログ右上のXボタンまたはダイアログの外側をクリックして閉じたとき
       コールバック関数の第1引数にはnullが渡されます。第2引数の値は未定義です。
5.7.1.8.showDateSelector

showDateSelectorは日付選択ダイアログを表示します。

 api.dialog.showDateSelector(options, callback)

引数:

options
オプション
callback
コールバック関数

options引数には以下のプロパティから成るオブジェクトを与えます。

date
日付選択の初期値(Date型オブジェクトまたはDate型に変換できる日付文字列)
style
スタイルオブジェクト

このダイアログはJavaScriptコードの実行をブロックしません。ダイアログが閉じられたらコールバック関数が呼び出されます。コールバック関数の引数には選択された日付がDate型で渡されます。ダイアログの外側をクリックしてダイアログを閉じた場合、コールバック関数に渡される日付は未定義になります。

5.7.1.9.showFileSelector

showFileSelectorはファイル選択ダイアログを表示します。

 api.dialog.showFileSelector(options, callback)

引数:

options
オプション
callback
コールバック関数

options引数には以下のプロパティから成るオブジェクトを与えます。

defaultValue
ファイル名入力欄のデフォルト値
deletable
真ならファイルの削除を許可する
downloadable
真ならファイルのダウンロードを許可する
filterList
ファイル名フィルタの配列。各要素は {name: 名前, format: ファイル名の正規表現} の形式のオブジェクト
movable
真ならファイルの移動を許可する
multiple
真ならファイルの複数選択を許可する(デフォルトは偽)
rootDir
ルートディレクトリ(デフォルトはfiles)
rootURL
ルートURL(デフォルトは/develop/アプリケーション名/files)
uploadable
真ならファイルのアップロードを許可する

このダイアログはJavaScriptコードの実行をブロックしません。ダイアログが閉じられたらコールバック関数が呼び出されます。コールバック関数の引数には選択されたファイル名(multipleオプションが真ならファイル名の配列)が渡されます。ダイアログの外側をクリックしてダイアログを閉じた場合、コールバック関数に渡されるファイル名は未定義になります。filterListオプションにはファイル名フィルタの配列を与えます。ファイル名フィルタのnameプロパティはフィルタ選択メニューの表示に用いられ、formatプロパティは指定した正規表現にマッチするファイル名のみを表示するために用いられます。filterListオプションを省略すると [{name: "すべて", format: ".*"}] が与えられたと見なされます。rootDirオプションは指定されたディレクトリ配下からのみファイル名を選択できるようにするために用います。rootURLオプションにはファイルをダウンロードするときのルートURLを与えます。

5.7.1.10.showModal

showModal関数はコンテナ型のスクリーンをアプリケーション内のダイアログに埋め込んで表示します。

 api.dialog.showModal(screen, style, callback)

引数:

screen
スクリーン名
style
スタイルオブジェクト
callback
コールバック関数

screen引数にはダイアログに埋め込むスクリーンの名前を与えます。指定するスクリーンはコンテナ型でなければなりません。style引数にはスタイルオブジェクトを与えます。このダイアログはJavaScriptコードの実行をブロックしません。showModal関数で開いたダイアログは、埋め込みスクリーンのスクリーンプログラムの中で前述のcloseDialog関数を呼び出すことで閉じることができます。ダイアログが閉じられたらコールバック関数が呼び出され、closeDialog関数のcode引数、value引数に与えた値がそれぞれコールバック関数の第1引数、第2引数に渡されます。

5.7.1.11.showQuestion

showQuestion関数は質問ダイアログを表示します。

 api.dialog.showQuestion(options, callback)

引数:

options
オプション
callback
コールバック関数

options引数には以下のプロパティから成るオブジェクトを与えます。

choices
選択肢の配列。各要素は {label: ラベル, value: 値} の形式のオブジェクト。
message
メッセージ文字列
style
スタイルオブジェクト

このダイアログはJavaScriptコードの実行をブロックしません。ダイアログが閉じられたらコールバック関数が呼び出されます。コールバック関数の引数には選択されたoptions.choicesの要素のvalueプロパティの値が渡されます。ダイアログの外側をクリックしてダイアログを閉じた場合、コールバック関数に渡される値は未定義になります。

5.8.api.store

  1. storeモジュールはスクリーン間でデータを共有する仕組みを提供するモジュールです。api.storeモジュールの実体は空のオブジェクトです。このオブジェクトはスクリーン間でデータを共有するためのキーバリューストアとして自由に利用できます。

たとえば、api.storeモジュールとスクリーンオブジェクトのserializeメソッドおよびdeserializeメソッドを組み合わせて、別のスクリーンに移って戻ってきたときにスクリーンの状態を復元する機能を実現することができます。この機能のプログラム例については【serialize】の節を参照してください。

  1. storeモジュールに保存されたデータには永続性はなく、ブラウザを閉じたりアプリケーションをリロードしたりすると失われます。永続性が必要な場合は次節のapi.KeyValueStoreモジュールを利用してください。

5.9.api.KeyValueStore

  1. KeyValueStoreモジュールは永続性のあるキーバリューストアを提供するモジュールです。デバッグ用アプリとリリース用アプリはそれぞれ別のキーバリューストアを有します。

5.9.1.関数

5.9.1.1.data

data関数はキーバリューストア内のすべてのデータを取得します。

 api.KeyValueStore.data(callback)

引数:

callback
コールバック関数

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したらコールバック関数の第1引数にはnull、第2引数にはキーバリューストア内の全データがオブジェクトとして渡されます。

5.9.1.2.del

del関数はキーバリューストアから指定のキーを削除します。

 api.KeyValueStore.del(key, callback)

引数:

 key … キー
callback
コールバック関数

key引数にはキーを与えます。callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err)とすると、実行が失敗したらerr引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したらコールバック関数のerr引数にはnullが渡されます。

5.9.1.3.get

get関数はキーバリューストアからキーの値を取得します。

 api.KeyValueStore.get(key, callback)

引数:

 key … キー
callback
コールバック関数

key引数にはキーを与えます。callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したらコールバック関数の第1引数にはnull、第2引数にはキーの値が渡されます。

5.9.1.4.keys

keys関数はキーバリューストア内のすべてのキーを取得します。

 api.KeyValueStore.keys(callback)

引数:

callback
コールバック関数

callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したらコールバック関数の第1引数にはnull、第2引数にはキーバリューストア内のすべてのキーが配列として渡されます。

5.9.1.5.set

set関数はキーバリューストアに新しいキーと値の対を追加、または既存のキーの値を変更します。

 api.KeyValueStore.set(key, value, callback)

引数:

 key … キー
 value … 値
callback
コールバック関数

key引数にはキー、value引数にはそのキーの値を与えます。callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。実行が成功したらコールバック関数の第1引数にはnull、第2引数にはキーの値が渡されます。

5.10.api.serverFunction

  1. serverFunctionモジュールはサーバー機能設計で定義した関数(これをサーバー関数と呼びます)を実行するための仕組みを提供するモジュールです。

5.10.1.関数

5.10.1.1.execute

execute関数はサーバー関数を同期実行します。サーバー側の関数実行プロセスは関数の実行完了までブロックします。

 execute(funcName, options, callback)

引数:

 funcName … 関数名
options
オプション
callback
コールバック関数

funcName引数には実行するサーバー関数の名前を与えます。options引数にはサーバー関数のオプションを与えます。オプションはそのままサーバー関数に渡されます。オプションのデータ構造はサーバー関数の都合に応じて自由に決めることができます。callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。サーバー関数の実行が成功したらコールバック関数の第1引数にはnull、第2引数にはサーバー関数からの戻り値が渡されます。

5.10.1.2.executeAsync

executeAsync関数はサーバー関数を非同期実行します。サーバー側の関数実行プロセスは関数の実行完了を待たずに処理を継続します。

 executeAsync(funcName, options, callback)

引数:

 funcName … 関数名
options
オプション
callback
コールバック関数

funcName引数には実行するサーバー関数の名前を与えます。options引数にはサーバー関数のオプションを与えます。オプションはそのままサーバー関数に渡されます。オプションのデータ構造はサーバー関数の都合に応じて自由に決めることができます。callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。サーバー関数の実行が成功したらコールバック関数の第1引数にはnull、第2引数にはサーバー関数からの戻り値が渡されます。

5.11.api.TextSearch

  1. TextSearchクラスはデータベースの全文検索に用いる絞り込み条件をより直感的で平易な検索式から構築します。たとえば、addressカラムに「東京」または「大阪」を含むレコードを得るための絞り込み条件は

    { "OR": [
    { "address": { op: "LIKE", value: "東京" } },
    { "address": { op: "LIKE", value: "大阪" } } ] }

のように記述する必要があります。これに対してapi.TextSearchモジュールでは

 東京 OR 大阪

という検索式を与えれば前掲の絞り込み条件に相当するオブジェクトが作成できます。例:

 var textsearch = new api.TextSearch();
 textsearch.parse("東京 AND 大阪");
 var where = textsearch.createWhere(["address"]);

このコード例の処理内容は次のとおりです。まず1行目でTextSearchオブジェクト(TextSearchクラスのインスタンス)を作成します。次に2行目で検索式の構成が正しいかどうかをチェックします。最後に3行目でカラム名を与えて絞り込み条件のオブジェクトを作成します。

5.11.1.メソッド

5.11.1.1.parse

parseメソッドは検索式の構成を検証します。

 TextSearch.parse(expr)

引数:

expr
検索式(後述)

与えられた検索式が正しいときはtrue、そうでなければfalseを返します。parseメソッドは内部では構文解析器を用いて検索式を構文木に変換します。得られた構文木はTextSearchオブジェクト内で保存されてcreateWhereメソッドの呼び出し時に絞り込み条件オブジェクトを作成するのに用いられます。

5.11.1.2.createWhere

createWhereメソッドは検証済みの検索式から絞り込み条件のオブジェクトを作成します。このメソッドはparseメソッドで検索式を検証してから呼び出さなければなりません。

 TextSearch.createWhere(columns)

引数:

columns
DBテーブル・ビューのカラム情報の配列

columns引数には以下のいずれかの形式のカラム情報を要素とする配列を与えます。

 a. カラム名文字列
 b. ModelTable.conf.TableColumns配列の要素※
 c. ModelView.conf.ViewColumns配列の要素※

【ModelTable】の節を参照
【ModelView】の節を参照

5.12.api.lib.async

  1. lib.asyncモジュールは非同期処理の実行順序を制御するための機能を提供するモジュールです。本節ではasyncモジュールの中で特に多用される関数について説明します。asyncモジュールの網羅的なドキュメントは下記URLで提供されています。

    http://caolan.github.io/async/docs.html

5.12.1.parallel

parallel関数は、複数の関数を並行して実行します。

 api.lib.async.parallel(tasks, [callback])

引数:

tasks
タスク関数の配列
callback
コールバック関数

tasksには関数の配列を与えます(これらの関数をタスク関数と呼びます)。これらのタスク関数は、他のタスク関数が実行中かどうかに関わらず並行して順不同で実行されます。各タスク関数にはコールバック関数が引数として渡されます。タスク関数の実行終了時にはこのコールバック関数を呼び出さなければなりません。実行が成功ならコールバック関数の第1引数にはnull、第2引数には実行結果を与え、実行が失敗なら第1引数にエラーオブジェクトを与えます。いずれかのタスク関数の実行が失敗したら、parallel関数のcallback引数に与えたコールバック関数がただちに呼び出され、その引数にはタスク関数から返されたエラーオブジェクトが渡されます。すべてのタスク関数の実行が成功したら、parallel関数のコールバック関数の第1引数にはnull、第2引数にはタスク関数から返された実行結果の配列が渡されます。

 api.lib.async.parallel([
     function(callback){
         // 何らかの処理を実行する
         callback(null, 'one');
     },
     function(callback){
         // 並行して何らかの処理を実行する
         callback(null, 'two');
     }
 ],
 // コールバック関数(省略可)
 function(err, results){
     // results引数の値は ['one', 'two']
 });

5.12.2.series

series関数は、1つ前の関数の実行が終わるのを待って次の関数の実行に移るという形で複数の関数を逐次実行します。

 api.lib.async.series(tasks, [callback])

引数:

tasks
タスク関数の配列
callback
コールバック関数

tasksには関数の配列を与えます(これらの関数をタスク関数と呼びます)。これらのタスク関数は、1つ前のタスク関数の実行が終わってから次のタスク関数の実行に移るという形で実行されます。各タスク関数にはコールバック関数が引数として渡されます。タスク関数の実行終了時にはこのコールバック関数を呼び出さなければなりません。実行が成功ならコールバック関数の第1引数にはnull、第2引数には実行結果を与え、実行が失敗なら第1引数にエラーオブジェクトを与えます。いずれかのタスク関数にエラーが渡されたら、それ以降のタスク関数は実行されず、callback引数に与えたコールバック関数がただちに実行されます。このコールバック関数の第1引数にはタスク関数からのエラーオブジェクトが渡されます。すべてのタスク関数が正常終了したら、callback引数で与えられたコールバック関数の第1引数にはnull、第2引数にはタスク関数からの実行結果の配列が渡されます。

 api.lib.async.series([
     function(callback){
         // 何らかの処理を実行する
         callback(null, 'one');
     },
     function(callback){
         // さらに何らかの処理を実行する
         callback(null, 'two');
     }
 ],
 // コールバック関数(省略可)
 function(err, results){
     // results引数の値は ['one', 'two']
 });

5.12.3.waterfall

waterfall関数は、1つ前の関数の実行結果を次の関数の入力値として渡すという形で複数の関数を逐次実行します。

 api.lib.async.waterfall(tasks, [callback])

引数:

tasks
タスク関数の配列
callback
コールバック関数

tasksには関数の配列を与えます(これらの関数をタスク関数と呼びます)。これらのタスク関数は、1つ前のタスク関数の実行結果が次のタスク関数の入力値として渡される形で逐次実行されます。各タスク関数にはコールバック関数が引数として渡されます。タスク関数の実行終了時にはこのコールバック関数を呼び出さなければなりません。実行が成功ならコールバック関数の第1引数にはnull、第2引数以降には実行結果を与え、実行が失敗なら第1引数にエラーオブジェクトを与えます。いずれかのタスク関数にエラーが渡されたら、それ以降のタスク関数は実行されず、callback引数に与えたコールバック関数がただちに実行されます。このコールバック関数の第1引数にはタスク関数からのエラーオブジェクトが渡されます。すべてのタスク関数が正常終了したら、callback引数で与えられたコールバック関数の第1引数にはnull、第2引数には最後のタスク関数の実行結果が渡されます。

 api.lib.async.waterfall([
     function(callback) {
         callback(null, 'one', 'two');
     },
     function(arg1, arg2, callback) {
         // arg1引数の値は 'one'、arg2引数の値は 'two'
         callback(null, 'three');
     },
     function(arg1, callback) {
         // arg1引数の値は 'three'
         callback(null, 'done');
     }
 ], function (err, result) {
     // result引数の値は 'done'
 });

5.13.api.lib.objectAssign

  1. lib.objectAssign関数は対象オブジェクトに別のオブジェクトのプロパティを代入して新しいオブジェクトを返します。

    api.lib.objectAssign(target, source, [source, ...])

target引数には対象オブジェクト、source引数には別のオブジェクトを与えます。source引数を複数与えた場合、同名のプロパティは後から与えたsource引数のオブジェクトのプロパティ値で上書きされます。

5.14.api.lib.superagent

  1. lib.superagentモジュールはHTTPクライアントを簡便に作成するためのAPIを提供するモジュールです。本節ではsuperagentモジュールの中で特に多用されるAPI関数について説明します。superagentモジュールの網羅的なドキュメントは下記URLで提供されています。

    http://visionmedia.github.io/superagent/

たとえばGETメソッドでリソースURL /search の内容を得るには以下のようにします。

 api.lib.superagent
   .get('/search')
   .end(function(err, res){
       if (err || !res.ok) {
           alert('エラー');
       } else {
           alert('結果:' + JSON.stringify(res.body));
       }
   });

5.14.1.関数

5.14.1.1.end

end関数はリクエストを送信します。引数にはレスポンスを処理するコールバック関数を与えます。次の例ではGETリクエストをend関数で送信して、引数に与えたコールバック関数でレスポンスを受け取ります。

 api.lib.superagent
   .get('/search')
   .end(function(err, res){
       // ここにレスポンスの処理を記述する
   });
5.14.1.2.get

get関数はGETリクエストの作成を開始します。引数にはリソースURLを文字列で与えます。次の例ではget関数でリソースURL /search へのGETリクエストの作成を開始しています。

 api.lib.superagent
   .get('/search')
   .end(callback);
5.14.1.3.head

head関数はHEADリクエストの作成を開始します。引数にはリソースURLを文字列で与えます。次の例ではhead関数でリソースURL /favicon.ico へのHEADリクエストの作成を開始しています。

 api.lib.superagent
   .head('/favicon.ico')
   .end(callback);
5.14.1.4.post

post関数はPOSTリクエストの作成を開始します。引数にはリソースURLを文字列で与えます。次の例ではpost関数でリソースURL /user/add へのPOSTリクエストの作成を開始しています。

 api.lib.superagent
   .post('/user/add')
   .send({ name: 'john', age: 20 })
   .end(callback);
5.14.1.5.query

query関数はリクエストのURLにクエリを追加します。引数にはクエリをオブジェクトまたは文字列で与えます。次の例ではGETリクエストのURLにクエリを追加して /search?q=test&order=desc にします。

 api.lib.superagent
   .get('/search')
   .query({'q': 'test', 'order', 'desc'})
   .end(callback);

query関数は複数回に分けて呼び出すこともできます。

 api.lib.superagent
   .get('/search')
   .query({'q': 'test'})
   .query({'order', 'desc'})
   .end(callback);

クエリは文字列でも指定できます。

 api.lib.superagent
   .get('/search')
   .query('q=test&amp;order=desc')
   .end(callback);

文字列の場合も複数に分けて与えることができます。

 api.lib.superagent
   .get('/search')
   .query('q=test')
   .query('order=desc')
   .end(callback);
5.14.1.6.send

send関数は作成中のリクエストにデータを追加します。次の例ではsend関数でPOSTリクエストにデータを追加しています。

 api.lib.superagent
   .post('/user/add')
   .send({ name: 'john', age: 20 })
   .end(callback);

send関数は複数回に分けて呼び出すこともできます。

 api.lib.superagent
   .post('/user/add')
   .send({ name: 'john' })
   .send({ age: 20 })
   .end(callback);

データの型を示すContent-Type:ヘッダフィールドのデフォルト値はsend関数の引数によって決まります。

 a. 引数がオブジェクトの場合:application/json
 b. 引数が文字列の場合:application/x-www-form-urlencoded

Content-Type:ヘッダフィールドの値を設定するにはset関数を用います。次の例は上述の最初の例と同等です。

 api.lib.superagent
   .post('/user/add')
   .set('Content-Type', 'application/json')
   .send({ name: 'john', age: 20 })
   .end(callback);
5.14.1.7.set

set関数は作成中のリクエストにヘッダフィールドを追加します。次の例ではGETリクエストに Accept: application/json というヘッダフィールドを追加します。

 api.lib.superagent
   .get('/search')
   .set('Accept', 'application/json')
   .end(callback);

5.15.api.lib.EventEmitter

  1. lib.EventEmitterクラスはNode.jsでイベント駆動型のアプリケーションを開発するためのイベントAPIを提供するクラスです。本節ではEventEmitterの主な機能について説明します。EventEmitterの網羅的なドキュメントは下記URLで提供されています。

    https://nodejs.org/api/events.html

EventEmitterは以下の例のようにインスタンスを作成して利用します。

 var ev = new api.lib.EventEmitter();

イベントはEventEmitterのemitメソッドを実行することで発生します。EventEmitterのアプリケーションプログラムは、イベント発生の通知を受け取るためにEventEmitterのonメソッドでリスナー関数を登録します。次の例では、まずonメソッドでdoneイベントのリスナー関数を登録しています。次に、emitメソッドでdoneイベントを生成しています。emit呼び出し時の第2引数以降はリスナー関数に引数として渡されます。

 var ev = new api.lib.EventEmitter();
 ev.on('done', function (arg1, arg2) {
     console.log(arg1, arg2);
 });
 ev.emit('done', 123, 'abc');
 // コンソールに 123 abc と表示される

イベントは時間のかかる処理の完了を待って別の処理を続けたいときに多用されます。次の例では、doneイベントの発生に5000ミリ秒かかります。doneイベントのリスナー関数はイベント発生まで待機します。

 var ev = new api.lib.EventEmitter();
 setTimeout(function () {
     ev.emit('done', 123, 'abc');
 }, 5000);
 ev.on('done', function (arg1, arg2) {
     console.log(arg1, arg2);
 });

onメソッドで登録されたリスナー関数はイベントが発生するたびに繰り返し実行されます。一度だけ実行されるリスナー関数を登録するにはonceメソッドを用います。例:

 var ev = new api.lib.EventEmitter();
 ev.once('data, function (result) {
     console.log('start');
 });
 ev.on('data, function (result) {
     console.log(result);
 });
 ev.emit('data', 123);
 // コンソールに start と表示される
 // コンソールに 123 と表示される
 ev.emit('data', 'abc');
 // コンソールに abc と表示される

5.15.1.メソッド

本節ではEventEmitterクラスの主なメソッドについて説明します。

5.15.1.1.addListener

addListenerメソッドは指定されたイベントに対するリスナー関数を登録します。このメソッドはEventEmitterインスタンス自身を返します。

 addListener(event, listener)

event引数にはイベント名、listener引数には登録するリスナー関数を与えます。

5.15.1.2.emit

emitメソッドは指定されたイベントに対して登録されているリスナー関数を実行します。リスナー関数があればtrue、そうでなければfalseを返します。

 emit(event[, arg1[, arg2[, ...]]])

event引数にはイベント名を与えます。追加の引数arg1、arg2、…(省略可)はリスナー関数に渡されます。

5.15.1.3.listeners

listenersメソッドは指定されたイベントに対して登録されているのリスナー関数を配列で返します。

 listeners(event)

event引数にはイベント名を与えます。

5.15.1.4.on

onメソッドは前述のaddListenerメソッドの別名です。詳しくは【addListener】の節を参照してください。

 on(event, listener)
5.15.1.5.once

onceメソッドは一度だけ実行されるリスナー関数を登録します。このメソッドはEventEmitterインスタンス自身を返します。

 once(event, listener)

event引数にはイベント名、listener引数には登録するリスナー関数を与えます。

5.15.1.6.removeAllListeners

removeAllListenersメソッドはすべてのリスナー関数、または指定されたイベントのすべてのリスナー関数の登録を解除します。このメソッドはEventEmitterインスタンス自身を返します。

 removeAllListeners([event])

event引数にはイベント名を与えます(省略可)。

5.15.1.7.removeListener

removeListenerメソッドは指定されたイベントに対するリスナー関数の登録を解除します。このメソッドはEventEmitterインスタンス自身を返します。

 removeListener(event, listener)

event引数にはイベント名、listener引数には登録解除するリスナー関数を与えます。

5.16.api.lib.Decimal

  1. lib.Decimalモジュールは誤差のない10進数演算を行なうためのAPIを提供します。JavaScriptの数値(Numberオブジェクト)には誤差が含まれることがあるのに対して、Decimalオブジェクトは誤差のない四則演算を実現できます。次の例では4.01と2.01の積を10進数演算で計算します。

    api.lib.Decimal('4.01').mul('2.01').toNumber()

上記のコードは次のように記述することもできます。

 api.lib.Decimal.mul('4.01', '2.01').toNumber()

5.16.1.関数

5.16.1.1.Decimal

新しいDecimalオブジェクトを作成します。

 api.lib.Decimal(n)

引数nには文字列、整数、または別のDecimalオブジェクトを与えます。

5.16.2.メソッド

この節ではDecimalオブジェクトのメソッドについて説明します。

5.16.2.1.toString

Decimalオブジェクトを文字列にして返します。

 toString()
5.16.2.2.toNumber

Decimalオブジェクトを数値(Numberオブジェクト)にして返します。

 toNumber()
5.16.2.3.add

Decimalオブジェクトと引数で与えられた値の和を新しいDecimalオブジェクトにして返します。

 add(n)

引数nには文字列、整数、または別のDecimalオブジェクトを与えます。

5.16.2.4.sub

Decimalオブジェクトと引数で与えられた値の差を新しいDecimalオブジェクトにして返します。

 sub(n)

引数nには文字列、整数、または別のDecimalオブジェクトを与えます。

5.16.2.5.mul

Decimalオブジェクトと引数で与えられた値の積を新しいDecimalオブジェクトにして返します。

 mul(n)

引数nには文字列、整数、または別のDecimalオブジェクトを与えます。

5.16.2.6.div

Decimalオブジェクトを引数で与えられた値で除した値を新しいDecimalオブジェクトにして返します。

 div(n)

引数nには文字列、整数、または別のDecimalオブジェクトを与えます。

5.17.api.lib.xml2js

  1. lib.xml2jsモジュールはXMLを読み取るAPIを提供します。

    var xml = '<root>Hello</root>';
    api.lib.xml2js.parseString(xml, function (err, data) {
    console.log(data);
    });

5.17.1.関数

5.17.1.1.parseString

parseString関数は与えられたXMLデータを解析します。

 parseString(xml, callback)

引数:

xml
XMLデータ
callback
コールバック関数

xml引数には解析するするXMLデータを文字列で与えます。callback引数には実行結果を受け取るコールバック関数を指定します。コールバック関数をcallback(err, res)とすると、実行が失敗したら第1引数にErrorオブジェクト(err.response.textにエラー内容)が返されます。解析が成功したらコールバック関数の第1引数にはnull、第2引数には解析結果が渡されます。解析が失敗したらコールバック関数の第1引数にErrorオブジェクトが渡されます。

6.データベースAPI

DBテーブル・ビューのデータ操作に関するAPI関数では、データ操作オプションを共通の方法で指定します。データ操作オプションは原則として以下のプロパティから成るオブジェクトで与えられます。

where
絞り込み条件
order … 並べ替え
offset
開始レコード番号(最初のレコードが0)
num
レコード数
crossOptions
クロス集計オプション

このうち本節では絞り込み条件、並べ替え、クロス集計オプションについて述べ、絞り込み条件で用いるパタン文字列について説明します。また、絞り込み条件および結合に用いるサブクエリ(副問い合わせ)について述べます。

6.1.絞り込み条件

絞り込み条件(where)はDBテーブル・ビューに格納されたレコードのうち、読み出しや更新などのデータ操作の対象となるレコードを選択するための条件を記述するオプションです。絞り込み条件を指定すると、その条件を満たすレコードのみが処理対象となります。絞り込み条件を指定しなければDBテーブル・ビューの全レコードが処理対象となります。絞り込み条件として指定できるオブジェクトは以下のとおりです。

 1. カラム名と値の対から成るオブジェクト
 2. サブクエリ(副問い合わせ)を含むオブジェクト
 3. 絞り込み条件の論理和・論理積を表すオブジェクト

6.1.1.カラム名と値の対

絞り込み条件としてカラム名と値の対から成る次の形式のオブジェクトを与えた場合、カラムの値が所与の関係を満たすかどうかをすべての対について調べます。

 {&quot;カラム名1&quot;: カラム1の値, &quot;カラム名2&quot;: カラム2の値, ...}

カラムの値として指定できるのは以下のものです。

 a. 数値や文字列などのリテラル(即値)
 b. {op: 演算子, value: 値} の形式のオブジェクト
 c. {op: 演算子, values: [値1, 値2, ...]} の形式のオブジェクト
 d. {op: 演算子, min: 下限値, max: 上限値} の形式のオブジェクト
 e. {op: 演算子} の形式のオブジェクト
6.1.1.1.リテラル

値として数値や文字列などのリテラル(即値)を指定した場合、その値とカラムの値が等しいかどうかを調べます。この指定方法は、後述の比較演算子を用いた形式で {op: "=", value: 値} と記述するのと同等です。

6.1.1.2.比較演算子

値として次の形式のオブジェクトを与えた場合、カラムの値とvalueの値を演算子opで比較します。

 {op: 演算子, value: 値}

opには以下の演算子が指定できます。

=
等しい
!=
等しくない
<>
等しくない
<
より小さい
<=
より小さい、または等しい(以下)
>
より大きい
>=
より大きい、または等しい(以上)
LIKE
valueで与えられたパタン文字列に一致する
NOT LIKE
valueで与えられたパタン文字列に一致しない

パタン文字列の最初および最後に現れるパーセント記号(%)は0個以上の文字の並びと一致します。たとえば {op: "LIKE", value: "日本%"} と指定すると "日本"、"日本人"、"日本列島" などに一致します。パタン文字列については後述の【パタン文字列】の節を参照してください。

6.1.1.3.IN

値として次の形式のオブジェクトを与えた場合、カラムの値がvaluesの要素として含まれるかどうかを調べます。

 {op: 演算子, values: [値1, 値2, ...]}

opには以下の演算子が指定できます。

IN
カラムの値がvaluesの要素として含まれる
NOT IN
カラムの値がvaluesの要素として含まれない

valuesには1つ以上の要素からなる配列を与えます。空の配列を与えるとエラーになります。

6.1.1.4.BETWEEN

値として次の形式のオブジェクトを与えた場合、カラムの値が最小値と最大値で表された範囲に含まれるかどうかを調べます。

 {op: 演算子, min: 最小値, max: 最大値}

opには以下の演算子が指定できます。

BETWEEN
カラムの値が範囲内にある(最小値以上かつ最大値以下である)
NOT BETWEEN
カラムの値が範囲外にある(最小値以上でない、または最大値以下でない)
6.1.1.5.IS NULL

値として次の形式のオブジェクトを与えた場合、opに指定した条件が成り立つかどうかを調べます。

 {op: 演算子}

opには以下の演算子が指定できます。

IS NULL
カラムの値がNULLである
IS NOT NULL
カラムの値がNULLではない

6.1.2.サブクエリによる絞り込み

サブクエリを用いた絞り込み条件には以下のものがあります。

 a. {カラム名: {op: 演算子, ref: サブクエリ}, ...}の形式のオブジェクト … カラムの値とサブクエリの結果をop:プロパティで指定した演算子で比較します。この場合のサブクエリは結果が1件だけでなければなりません。
 b. {カラム名: {op: 演算子, q: ALLまたはANYまたはSOME, ref: サブクエリ}, ...}の形式のオブジェクト … カラムの値とサブクエリの結果をop:プロパティで指定した演算子で比較して、すべて(q:プロパティの値がALLの場合)または1件以上(ANYまたはSOMEの場合)について真かどうかを調べます。
c. {EXISTS: {ref: サブクエリ}}の形式のオブジェクト
サブクエリの結果が1件以上あるか否かを調べます。

ここでref:プロパティにはサブクエリオブジェクトを与えます。サブクエリオブジェクトについては【サブクエリ】の節を参照してください。

6.1.3.絞り込み条件の論理和・論理積

次の形式で絞り込み条件オブジェクトの配列を与えた場合、それらの絞り込み条件の論理和(OR)や論理積(AND)が成り立つかどうかを調べます。

 {論理演算子: [絞り込み条件1, 絞り込み条件2, ...]}

論理演算子には以下のものが指定できます。

OR
論理積(「または」の意)
AND
論理積(「かつ」の意)

6.1.4.用例

絞り込み条件の用例を以下に示します。

  1. 社員番号が100に等しいレコードを選択します。

    {"社員番号": 100}

  2. 年齢が20歳以上のレコードを選択します。

    {"年齢": {op: ">=", value: 20}}

  3. 年齢が20歳以上で、なおかつ性別が女性のレコードを選択します。

    {"年齢": {op: ">=", value: 20}, "性別": "女性"}

  4. 性別が男性または未指定のレコードを選択します。

    {"性別": {op: "IN", values: ["男性", "未指定"]}}

  5. 注文日が2010年のレコードを選択します。

    {"注文日": {op: "BETWEEN", min: 2010/01/01", max: "2010/12/31"}}

  6. 年齢が20歳以上、または性別が女性のレコードを選択します。

    {"OR": [{"年齢": {op: ">=", value: 20}}, {"性別": "女性"}]}

また、サブクエリの例として次のSQL文を考えます。この問い合わせは天気(weather)テーブルを検索して最低気温(temp_lo)カラムの値が最大の都市名(city)カラムの値を返します。

 SELECT city FROM weather
 WHERE temp_lo = (SELECT max(temp_lo) FROM weather);

この問い合わせをBuddyで実現するには次のようなスクリーンプログラムを記述します。

 var tableName = &quot;weather&quot;;
 var subquery = this.tables[tableName].select([&quot;max(temp_lo)&quot;], {});
 var options = {
     where: {&quot;temp_lo&quot;: {op: &quot;=&quot;, ref: subquery}},
 };
 this.tables[tableName].readData(options, (function(error, data) {
     ...
 });

このときoptions.whereに与えられる絞り込み条件は以下の通りです。

 {&quot;temp_lo&quot;: {op: &quot;=&quot;, ref: {select: ['max(temp_lo)'], from: {model: 'weather'}}}}

6.2.並べ替え

並べ替え(order)には以下のプロパティから成るオブジェクトの配列を与えます。

OrderColumn
カラム名またはカラム値を用いるSQL式
OrderDirection … ソート順

OrderColumnプロパティにはカラム名またはカラム値を用いるSQL式を文字列で与えます。OrderDirectionプロパティにはソート順を「ASCまたはDESC NULLS FIRSTまたはLAST」の形式の文字列で与えます。ASCは昇順、DESCは降順を表します。NULLS以降は省略できます。NULLS FIRSTはNULL値をソート結果の先頭に、NULLS LASTは末尾に置くことを指定します。NULLS以降を省略したときのデフォルトのNULL値の順序は、ASCの場合はNULLS LAST、DESCの場合はNULLS FIRSTです。

6.3.クロス集計オプション

クロス集計オプション(crossOptions)は、DBテーブル・ビューのクロス集計を制御するための各種オプションから成るオブジェクトです。このオブジェクトはスクリーンモジュールの【クロス集計】を用いてアプリ利用者が作成します。作成されたcrossOptionsオブジェクトは、クロス集計モジュールの【Updateイベント】のハンドラを通じてスクリーンプログラムに渡されます。Updateイベントハンドラの作例については【Updateイベント】の節を参照してください。

6.4.パタン文字列

パタン文字列は検索キーワードに用いられるパーセント記号(%)を含んだ文字列です。文字列の最初および最後に現れるパーセント記号(%)は0個以上の文字の並びと一致します。これにより前方一致検索、後方一致検索が実現できます。パタン文字列には%の現れる位置によって次の4通りがあります。

  1. パタン文字列の最初と最後が%のときは部分一致検索が行なわれます。たとえばパタン文字列 "%人%" は "人"、"人数"、"個人"、"百人力" などと一致します。
  2. パタン文字列の最初の文字が%のときは後方一致検索が行なわれます。たとえばパタン文字列 "%木" は "木"、"大木"、"六本木" などと一致します。
  3. パタン文字列の最後の文字が%のときは前方一致検索が行なわれます。たとえばパタン文字列 "日本%" は "日本"、"日本人"、"日本列島" などと一致します。
  4. それ以外のときはパタン文字列の最初と最後に%があるものとして1.の場合と同様に部分一致検索が行なわれます。

6.5.サブクエリ

サブクエリ(副問い合わせ)はDBテーブル・ビューへの問い合わせに別の問い合わせを埋め込むSQL文法の仕組みです。Buddyではサブクエリをオブジェクトで表します。サブクエリオブジェクトを用いることで複数の問い合わせが入れ子になった複雑な問い合わせを記述できます。

サブクエリオブジェクトを作成するには【ModelTable】オブジェクトおよび【ModelView】オブジェクトのselectメソッドを用います。以下に例を示します。

 var tableName = 'shain';
 var subquery = this.models[tableName].select(
                  [{expr: 'ID', as: 'shain_ID'}, 'name', 'age'], {});

サブクエリオブジェクトは次の2つの目的に利用できます。

  1. 絞り込み条件
  2. 別のDBテーブル・ビューやサブクエリとの結合

サブクエリを用いた絞り込み条件については【サブクエリによる絞り込み】の節を参照してください。

サブクエリオブジェクトは他のDBテーブル・ビューやサブクエリとの結合(join)を生成するために用いることもできます。利用できる結合方法と対応する【ModelTable】オブジェクトおよび【ModelView】オブジェクトのメソッドを以下に示します。

内部結合(inner join)
innerJoinメソッド
左外部結合(left outer join)
leftOuterJoinメソッド
右外部結合(right outer join)
rightOuterJoinメソッド
完全外部結合(full outer join)
fullOuterJoinメソッド
交差結合(cross join)
crossJoinメソッド

7.イベントAPI

本節ではイベントを扱うAPIについて説明します。

7.1.イベントハンドラ

イベントは、実行中のアプリケーションで発生した事象についてスクリーンプログラムが受け取るメッセージ(通知)です。イベントは大きく分けて次の3種類があります。

 a. マウスボタンの押下やキーボード入力、画面サイズの変更などアプリ利用者の入力デバイスの操作によって発生するイベント(Click,KeyPress,onResizeなど)。
 b. スクリーンプログラムの起動や終了、画像ファイルの読み込みエラーなどの事象に応じて発生するイベント(onLoad,onUnload, onErrorなど)。
 c. スクリーンプログラムから別のスクリーンプログラムへアプリケーション固有の事象の発生を通知するイベント(onIterateなど)。

あるイベントが発生したという通知をスクリーンプログラムが受け取るには、そのイベントに呼応する名前のイベントハンドラをスクリーンプログラムの var events = { ... から始まるブロックに記述します。たとえばBUTTON1というモジュール名のボタンが押されたときに生じるClickイベントを受け取るには以下のようなイベントハンドラを追加します。

 BUTTON1_onClick: function(evt){
     // ここにClickイベントの処理内容を記述します。例:
     api.dialog.alert(&quot;BUTTON1が押されました。&quot;);
 },

7.2.イベントオブジェクト

イベントオブジェクトは、一部のイベントハンドラにevt引数として渡されてくるオブジェクトです。イベントオブジェクトがハンドラのevt引数に渡されてくるイベントには以下の4種類があります。

 ・キーボードイベント
 ・フォーカスイベント
 ・マウスイベント
 ・画像イベント

イベントオブジェクトは以下のプロパティから成ります。

target
イベントの対象となるオブジェクト(スクリーンモジュールなど)
original
イベントを詳細に記述する種々のプロパティから成るオブジェクト

originalオブジェクトの持つプロパティは、発生したイベントによって異なります。

7.2.1.キーボードイベント

キーボードイベントには以下のイベントがあります。

 onKeyDown
 onKeyPress
 onKeyUp

これらのイベントに対するoriginalオブジェクトは次のデータ型と名前のプロパティから成ります。

 boolean altKey
 number charCode
 boolean ctrlKey
 boolean getModifierState(key)
 string key
 number keyCode
 string locale
 number location
 boolean metaKey
 boolean repeat
 boolean shiftKey
 number which

7.2.2.フォーカスイベント

フォーカスイベントには以下のイベントがあります。

 onBlur
 onFocus

これらのイベントに対するoriginalオブジェクトは次のデータ型と名前のプロパティから成ります。

 DOMEventTarget relatedTarget

7.2.3.マウスイベント

マウスイベントには以下のイベントがあります。

 onClick
 onContextMenu
 onDoubleClick
 onMouseDown
 onMouseUp

これらのイベントに対するoriginalオブジェクトは次のデータ型と名前のプロパティから成ります。

 boolean altKey
 number button
 number buttons
 number clientX
 number clientY
 boolean ctrlKey
 boolean getModifierState(key)
 boolean metaKey
 number pageX
 number pageY
 DOMEventTarget relatedTarget
 number screenX
 number screenY
 boolean shiftKey

7.2.4.画像イベント

画像イベントには以下のイベントがあります。

 onError

このイベントに対するoriginalオブジェクトは固有のプロパティを持ちません。

8.フィルタAPI

フィルタAPIは、文字列や日付、日時などのデータを整形して別の文字列に変換するための仕組み(これをフィルタと呼びます)を提供します。

8.1.フィルタ名

適用するフィルタは名前で指定します。フィルタ名には以下のものがあります。

TRIM
文字列の先頭と末尾の空白文字を取り除く
COMMA
桁区切りのカンマを挿入する
YEN
¥表記にして桁区切りのカンマを挿入する
YMD
日付(Date型オブジェクトまたはDate型に変換できる日付文字列)を yyyy/mm/dd の形にする
 
オプション:
-h  区切り文字を / ではなく - にする
-1  1桁の数字の前に0を追加しない
JYMD
日付(Date型オブジェクトまたはDate型に変換できる日付文字列)を yyyy年mm月dd日 の形にする
 
オプション:
-1  1桁の数字の前に0を追加しない
GYMD
日付(Date型オブジェクトまたはDate型に変換できる日付文字列)を 元号y年m月d日 の形にする
YMDHMS
日時(Date型オブジェクトまたはDate型に変換できる日付文字列)を yyyy/mm/dd hh:mm:ss の形にする
 
オプション:
-h  区切り文字を / ではなく - にする
-1  1桁の数字の前に0を追加しない
-s  秒を表示しない
JYMDHMS
日時(Date型オブジェクトまたはDate型に変換できる日付文字列)を yyyy年mm月dd日 hh時mm分ss秒 の形にする
 
オプション:
-1  1桁の数字の前に0を追加しない
HMS
時刻(Date型オブジェクトまたはDate型に変換できる日付文字列)を hh:mm:ss の形にする
 
オプション:
-1  1桁の数字の前に0を追加しない
-s  秒を表示しない
AGE
年齢を計算する
 
オプション:
-d  年齢を日単位で計算する(誕生日前日に年を取る)
PRE
前に指定文字列を追加する
 
オプション:
-文字列  付加する文字列
POST
後ろに指定文字列を追加する
 
オプション:
-文字列 付加する文字列
ROUND
数値を指定桁で丸める
 
オプション:
-数字  丸める桁。正の整数なら小数点以下の桁指定、負の整数なら小数点以上の桁指定。指定しなければ小数点以下を四捨五入する
-d  切り捨てる
-u  切り上げる
HIRA2KATA
ひらがなをカタカナに置換する
KATA2HIRA
カタカナをひらがなに置換する
ZEN2HAN
全角英数記号を半角文字に置換する
HAN2ZEN
半角英数記号を全角文字に置換する
ZEN2HANKATA
全角カナを半角カナに置換する
HAN2ZENKATA
半角カナを全角カナに置換する
KYUU2SHIN
旧漢字を新漢字に置換する
PATHDIR
パスからディレクトリ部分を取り出す
PATHBASE
パスからファイル名部分を取り出す
PATHEXT
パスから拡張子部分を取り出す(ピリオドを含む)
PATHINFILES
パスからfilesからの相対パスを取り出す(filesは含まない)

8.2.フィルタオプション

フィルタにはオプションを有するものがあります。オプションを指定するにはフィルタ名のあとにハイフン(-)でオプションをつなぎます。例:

 AGE-d

オプションは複数指定できます。例:

 YMD-h-1

ハイフンが連続したときは先頭のハイフンのみが区切りとなります。例えばROUNDフィルタで丸める桁として-2(十の位)を指定するには次のようにオプションを与えます。

 ROUND--2

8.3.フィルタの連結

複数のフィルタ名を | で連結すると前段のフィルタの結果が後段のフィルタの入力になります。たとえばフィルタ名として TRIM|COMMA を指定すると、入力データにTRIMフィルタを適用した結果をさらにCOMMAフィルタで処理します。

9.数式API

本節では数式モジュールのAPIについて説明します。

9.1.数式モジュール

数式モジュールは、他の1つ以上のモジュールが保持する現在の値に基づいて計算を実行し、その計算結果を表示するモジュールです。計算処理は他のモジュール(依存関係にあるモジュール)の値が変化したときに自動的に実行されます。実行される計算の内容を記述した関数を数式ハンドラと呼びます。数式ハンドラは、スクリーンプログラムの var formulas = { ... で始まるブロックに記述します。

9.2.数式ハンドラ

数式ハンドラは、依存関係にある他のモジュールの値が変化したときに数式モジュールの値を更新するために実行される関数です。数式ハンドラの名前は数式モジュールの名前と同じでなければなりません。

たとえば2つのデータ入力モジュールDATAINPUT1,DATAINPUT2に入力されている値を足し合わせて数式モジュールFORMULA1に表示するには以下のような数式ハンドラを追加します。

 FORMULA1: function(util){
     return util.sum('DATAINPUT1', 'DATAINPUT2');
 },

util引数には数式ハンドラの記述に便利な関数がまとめられたutilオブジェクトが渡されてきます。上述の例で用いているutil.sum()は引数で与えられた名前の2つのモジュールの現在の値を足し合わせた値(総和)を計算する関数です。utilオブジェクトの詳細については次の【utilオブジェクト】の節を参照してください。

9.3.utilオブジェクト

utilオブジェクトは、数式ハンドラに引数として渡されてくる数式ハンドラの記述に便利な関数がまとめられたオブジェクトです。

9.3.1.util.array.avg

util.array.avg関数はarr引数として数値の配列を受け取り、全要素の平均値を返します。

 util.array.avg(arr)

9.3.2.util.array.count

util.array.count関数はarr引数として数値の配列を受け取り、配列の要素数を返します。

 util.array.count(arr)

9.3.3.util.array.max

util.array.max関数はarr引数として数値の配列を受け取り、全要素のうち最大値を返します。

 util.array.max(arr)

9.3.4.util.array.min

util.array.min関数はarr引数として数値の配列を受け取り、全要素のうち最小値を返します。

 util.array.min(arr)

9.3.5.util.array.sum

util.array.sum関数はarr引数として数値の配列を受け取り、全要素の総和を返します。

 util.array.sum(arr)

9.3.6.util.avg

util.avg関数は引数で与えられた1つ以上の名前のモジュールの現在の値の平均値を返します。

 util.avg(name1, name2, ...)

9.3.7.util.count

util.count関数は引数で与えられた1つ以上の名前のモジュールの現在の値の個数(つまり引数の数)を返します。

 util.count(name1, name2, ...)

9.3.8.util.int

util.int関数はname引数で与えられた名前のモジュールの現在の値を整数値として返します。

 util.int(name)

9.3.9.util.max

util.max関数は引数で与えられた1つ以上の名前のモジュールの現在の値のうち最大値を返します。

 util.max(name1, name2, ...)

9.3.10.util.min

util.min関数は引数で与えられた1つ以上の名前のモジュールの現在の値のうち最小値を返します。

 util.min(name1, name2, ...)

9.3.11.util.num

util.num関数はname引数で与えられた名前のモジュールの現在の値を実数値として返します。

 util.num(name)

9.3.12.util.sum

util.sum関数は引数で与えられた1つ以上の名前のモジュールの現在の値の総和を返します。

 util.sum(name1, name2, ...)

10.サーバー機能

本節ではサーバー機能設計のJavaScript APIについて述べます。

10.1.概要

サーバー機能設計では、サーバー側で実行されるJavaScriptプログラム(以下、サーバー機能スクリプトと呼びます)を作成します。サーバー機能スクリプトは機能名で識別され、スクリーンプログラムから呼び出されます。スクリーンプログラムはブラウザ(クライアント側)で動作するのに対して、サーバー機能スクリプトはサーバー上で動作します。

10.1.1.実行タイプ

サーバー機能には2つの実行タイプがあります。

同期実行
スクリプトの実行が完了した時点の変数resultの内容がクライアント側に返されます。
非同期実行
スクリプトの中であらかじめ用意されているcallbackという関数を呼び出した時に、その引数(第1引数がエラー、第2引数が結果)によって結果がクライアント側に返されます。

同期実行のサーバー機能スクリプトの例を以下に示します。

 // 同期実行のサーバー機能スクリプト(機能名mul)
 result = options.a * options.b;

上と同じ処理を非同期実行するサーバー機能スクリプトの例を以下に示します。

 // 非同期実行のサーバー機能スクリプト(機能名mul)
 var result = options.a * options.b;
 callback(null, result);

10.1.2.呼び出し方法

スクリーンプログラムからサーバー機能を呼び出すにはapi.serverFunctionモジュールを用います(【api.serverFunction】の節を参照)。第1引数には機能名、第2引数にはオプションオブジェクト、第3引数にはコールバック関数を与えます。

オプションオブジェクトはサーバー機能スクリプトに入力データを与えるためのもので、スクリプトの中であらかじめ用意されたoptionsという変数に渡されます。

コールバック関数は、スクリプトの実行が完了して結果が返される時に呼ばれます。コールバック関数の第1引数はエラーオブジェクト、第2引数は結果オブジェクトです。エラーオブジェクトを err とすると、err.response.textプロパティに{"message": エラーメッセージ, "console": {"log": [{"type": "log", "body": ログメッセージ }, ...]}}のようなJSON形式でエラーメッセージとconsole.log()の出力内容が渡されます。結果オブジェクトは{"result": 結果, "console": {"log": [...]}} という形式のオブジェクトで、サーバー機能スクリプトの返した結果とconsole.log()の出力内容が得られます。

前節のサーバー機能スクリプトの例(機能名mul)を呼び出すスクリーンプログラムの例を以下に示します。

 api. serverFunction.execute(&quot;mul&quot;, {a: 2, b: 3}, function(err, res) {
   if( err ) {
     console.log(JSON.parse(err.response.text));
   } else {
     console.log(res.console.log);
     // res.result で得られる結果を用いた処理
   }
 });

非同期のサーバー機能をexecuteAsync()で呼び出すとき、呼ばれたサーバー機能側でcallback()を2度実行するとエラーになります。

10.1.3.定義済み関数・変数

サーバー機能のスクリプト内では以下の変数が予め用意されています。

tables
DBテーブルを表すModelTableオブジェクト(【ModelTable】の節を参照)の配列。
views
DBビューを表すModelViewオブジェクト(【ModelView】の節を参照)の配列。
models
ModelTableオブジェクトおよびModelViewオブジェクトの配列。

また、以下の関数およびライブラリが用意されています。

api.sendMessage
スクリーンプログラムのapi.request.sendMessage関数と同等(【sendMessage】の節を参照)。
api.serverFunction
サーバー機能から別のサーバー機能を呼び出します(後述)。
api.transaction
DBテーブル・ビューの操作のトランザクション処理を行います(後述)。
api.xml2js
xml2jsモジュール。スクリーンプログラムのapi.lib.xml2jsモジュールと同等(【api.lib.xml2js】の節を参照)。
async
asyncモジュール。スクリーンプログラムのapi.lib.asyncモジュールと同等(【api.lib.async】の節を参照)。
console.log(出力文字列)
デバッグ用のメッセージを出力します。出力内容は結果の一部としてクライアント側に返されます。
customLog(出力文字列)
カスタムログに文字列を出力します。
lib.BuddyFile
ファイルやディレクトリを操作します(後述)。
lib.BuddyReport
レポート出力をサポートします(後述)。
lib.FileManager
一時ファイルの管理を担うファイルマネージャを操作します(後述)。
lib.sendMail
サーバを通じてメールを送信します(後述)。
lib.Workbook
Excelファイルの読み書きをサポートします(後述)。
lib.XPDFJ
テキストや画像を含むPDFファイルを作成します(後述)。

10.1.4.利用できるモジュール

サーバー機能スクリプトの中でrequire()により利用できるモジュールは以下の通りです。

 ・async
 ・events
 ・crypto
 ・object-assign
 ・nodemailer
 ・decimal
 ・iconv-lite

10.2.api.serverFunction

サーバー機能から別のサーバー機能を呼び出すにはapi.serverFunctionモジュールを利用します(スクリーンプログラムの【api.serverFunction】モジュールの節を参照)。同期実行にはapi.serverFunction.execute()、非同期実行にはapi.serverFunction.executeAsync() を用います。options引数に与えるオブジェクトには、値が数値か文字列のプロパティのみ指定できます。

サーバー機能の権限チェックはスクリーンプログラムからの呼び出しと同様に行われます。

サーバー機能の再帰的な呼び出しが可能です。ただし再帰呼び出し回数の上限は10000回に制限されています。

10.3.api.transaction

  1. transaction関数はDBテーブル・ビューの操作のトランザクション処理を行うための仕組みを提供します。

新しいトランザクションを開始して、そのトランザクション内でデータベース操作を実行するには、次のようにapi.transaction関数を実行します。

 api.transaction(options, callback)

options引数は今のところ使用されません。callback引数にはトランザクション内で実行するデータベース操作を記述したコールバック関数を与えます。以下に例を示します。

 api.transaction(options, function(transaction) {
     // ここにトランザクション内で実行するデータベース操作を記述する
     ...
 });

コールバック関数の引数には、以下に述べるプロパティおよび関数から成るオブジェクト(これをtransactionオブジェクトと呼びます)が渡されます。transactionオブジェクトのプロパティや関数により記述されたデータベース操作はトランザクション内で実行されます。

10.3.1.プロパティ

10.3.1.1.transaction.tables

このプロパティの値は、DBテーブルを表すModelTableオブジェクト(【ModelTable】の節を参照)の配列です。このModelTableオブジェクトのメソッド呼び出しによるDBテーブルの操作はトランザクション内で実行されます。

 注意:<a href="#【定義済み関数・変数】">【定義済み関数・変数】</a>の節で述べた定義済み変数tablesにより得られるModelTableオブジェクトを通じたDBテーブルの操作は、トランザクション内では実行されません。
10.3.1.2.transaction.views

このプロパティの値は、DBビューを表すModelViewオブジェクト(【ModelView】の節を参照)の配列です。このModelViewオブジェクトのメソッド呼び出しによるDBビューの操作はトランザクション内で実行されます。

 注意:<a href="#【定義済み関数・変数】">【定義済み関数・変数】</a>の節で述べた定義済み変数viewsにより得られるModelViewオブジェクトを通じたDBビューの操作は、トランザクション内では実行されません。

10.3.2.関数

10.3.2.1.transaction.commit

transaction.commit関数は、トランザクション内で実行したデータベース操作をコミット(確定)してトランザクションを終了します。

 transaction.commit(callback)

callback引数にはコールバック関数を与えます。コミットが失敗するとコールバック関数の引数にはErrorオブジェクトが渡され、成功するとnullが渡されます。

10.3.2.2.transaction.rollback

transaction.rollback関数は、トランザクション内で実行したデータベース操作をロールバック(破棄)してトランザクションを終了します。

 transaction.rollback(callback)

callback引数にはコールバック関数を与えます。ロールバックが失敗するとコールバック関数の引数にはErrorオブジェクトが渡され、成功するとnullが渡されます。

10.4.lib.BuddyFile

  1. BuddyFileクラスはアプリケーションのfilesディレクトリ配下のファイルおよびディレクトリを操作するための仕組みを提供します。

10.4.1.コンストラクタ

BuddyFileオブジェクトを作成するにはJavaScriptのnew演算子を用います。

 new lib.BuddyFile(filePath, options)

引数:

filePath
ファイルまたはディレクトリへのパス名。
options
オプション。

filePath引数には操作対象となるファイルまたはディレクトリをアプリケーションのfilesディレクトリからの相対パス名で与えます。options引数には以下のプロパティから成るオブジェクトを与えます。

temporary
trueを与えると一時ファイルを作成します。filePath引数に与えたパス名は無視され、一時ファイル名が自動的に与えられます。作成された一時ファイルはサーバー機能スクリプトの実行完了時に自動的に削除されます。

10.4.2.メソッド

10.4.2.1.append

appendメソッドはデータをファイルに追加します。ファイルが存在しない場合は新しく作成されます。

 append(data, options, callback)

data引数にはファイルに書き込むデータを文字列で与えます。options引数には以下のプロパティから成るオブジェクトを与えます。

encode
data引数に与えた文字列の文字コード(省略可)。

callback引数にはコールバック関数を与えます。書き込みが成功したらコールバック関数の引数にはnull、失敗したらErrorオブジェクトが渡されます。

10.4.2.2.appendChild

appendChildメソッドはBuddyFileオブジェクトのパス名からの相対パスを表す新しいBuddyFileオブジェクトを返します。

 appendChild(name)

name引数にはBuddyFileオブジェクトのパス名からの相対パスを文字列で与えます。以下に例を示します。

 var importDir = new BuddyFile('import', {});
 var importFile = importDir.appendChild('table1.csv');

このとき変数importFileの値はimport/table1.csvを表すBuddyFileオブジェクトです。

10.4.2.3.basename

basenameメソッドはBuddyFileオブジェクトのパス名のうちファイル名を返します。

 basename(ext)

ext引数には拡張子を文字列で与えます(省略可)。ファイル名の拡張子と一致した場合には拡張子のないファイル名が返されます。

10.4.2.4.createReadStream

createReadStreamメソッドはファイルからの読み込みストリームを作成します。

 createReadStream(options)

options引数には以下のプロパティから成るオブジェクトを与えます。

encode
読み込みストリームの文字コード(省略可)。
parse
ファイル形式(省略可)。文字列"csv"を与えるとファイルをCSV形式と見なして解析します。
10.4.2.5.createWriteStream

createWriteStreamメソッドはファイルへの書き込みストリームを作成します。

 createWriteStream(options)

options引数には以下のプロパティから成るオブジェクトを与えます。

encode
書き込みストリームの文字コード。
10.4.2.6.extname

extnameメソッドはBuddyFileオブジェクトのパス名のうちファイル名の拡張子を返します。

 extname()
10.4.2.7.getFilePath

getFilePathメソッドはBuddyFileオブジェクトのパス名を返します。

 getFilePath()
10.4.2.8.mkdir

mkdirメソッドはディレクトリを作成します。

 mkdir(options, callback)

options引数は今のところ使用しません。callback引数にはコールバック関数を与えます。ディレクトリの作成に成功したらコールバック関数の引数にはnull、失敗したらErrorオブジェクトが渡されます。

10.4.2.9.move

moveメソッドはファイルまたはディレクトリを移動します。

 move(dst, options, callback)

dst引数には移動後の新しいパス名を与えます。options引数は今のところ使用しません。callback引数にはコールバック関数を与えます。成功したらコールバック関数の引数にはnull、失敗したらErrorオブジェクトが渡されます。移動が成功すると、存在しないパス名を指すBuddyFileオブジェクトになります。

10.4.2.10.read

readメソッドはファイルからデータを読み込みます。

 read(options, callback)

options引数には以下のプロパティから成るオブジェクトを与えます。

encode
ファイルの文字コード(省略可)。
parse
ファイル形式(省略可)。文字列"csv"を与えるとファイルをCSV形式と見なして解析します。文字列"xlsx"を与えるとXLSXファイルとして開き、Workbookオブジェクトを返します(【lib.Workbook】の節を参照)。

callback引数にはコールバック関数を与えます。データの読み込みに成功したらコールバック関数の第1引数にはnull、第2引数には読み込み結果が渡されます。失敗したらコールバック関数の第1引数にErrorオブジェクトが渡されます。

10.4.2.11.readdir

readdirメソッドはディレクトリ内のファイルおよびサブディレクトリの一覧を返します。

 readdir(options, callback)

options引数には以下のプロパティから成るオブジェクトを与えます。

encode
ファイル名の文字コード(省略可)。

callback引数にはコールバック関数を与えます。一覧の取得に成功したらコールバック関数の第1引数にはnull、第2引数にはファイルおよびサブディレクトリを表すBuddyFileオブジェクトの配列が渡されます。失敗したらコールバック関数の第1引数にErrorオブジェクトが渡されます。

10.4.2.12.remove

removeメソッドはファイルまたはディレクトリを削除します。

 remove(options, callback)

options引数は今のところ使用しません。callback引数にはコールバック関数を与えます。削除に成功したらコールバック関数の引数にはnull、失敗したらErrorオブジェクトが渡されます。削除が成功すると、存在しないパス名を指すBuddyFileオブジェクトになります。

10.4.2.13.rename

renameメソッドはファイルまたはディレクトリの名前を変更します。

 rename(dst, options, callback)

dst引数には新しい名前を与えます。options引数は今のところ使用しません。callback引数にはコールバック関数を与えます。成功したらコールバック関数の引数にはnull、失敗したらErrorオブジェクトが渡されます。名前の変更が成功すると、存在しないパス名を指すBuddyFileオブジェクトになります。

renameメソッドはmoveメソッドの別名です。dstに別のディレクトリ配下のパス名を与えると、BuddyFileオブジェクトが表すファイルまたはディレクトリをそのディレクトリ配下に移動します。

10.4.2.14.stat

statメソッドはパスの状態を取得します。

 stat(options, callback)

options引数は今のところ使用しません。callback引数にはコールバック関数を与えます。状態の取得に成功したらコールバック関数の第1引数にはnull、第2引数にはパスの状態を表すオブジェクト(Node.jsのfs.Statsオブジェクト)が渡されます。状態の取得に失敗した場合はコールバック関数の第1引数にErrorオブジェクトが渡されます。

  1. Statsオブジェクトはサーバーの実行環境によって詳細が異なります。主なプロパティについて以下に示します。
atime
最終アクセス日時(Dateオブジェクト)
ctime
最終状態変更日時(Dateオブジェクト)
mtime
最終修正日時(Dateオブジェクト)
size
ファイルサイズ(バイト数)
  1. Statsオブジェクトの例を以下に示します。

    {
    dev: 64768,
    mode: 16895,
    nlink: 2,
    uid: 0,
    gid: 0,
    rdev: 0,
    blksize: 4096,
    ino: 3038506,
    size: 4096,
    blocks: 8,
    atime: "2017-10-10T14:25:58.910Z",
    mtime: "2017-10-10T14:25:58.909Z",
    ctime: "2017-10-10T14:25:58.909Z",
    birthtime: "2017-10-10T14:25:58.909Z"
    }

  2. Statsオブジェクトの詳細については下記URLのNode.jsドキュメントを参照してください。

    https://nodejs.org/api/fs.html#fs_class_fs_stats

10.4.2.15.unzip

unzipメソッドはZIPファイルの内容を展開します。

 unzip(unzipDir, options, callback)

unzipDir引数には展開先のディレクトリを表すBuddyFileオブジェクトを与えます。options引数には以下のプロパティから成るオブジェクトを与えます。

encode
ファイル名の文字コード(省略可)。省略した場合は文字コードを自動検出します。文字コードを変更しない場合は"through"を指定します。
10.4.2.16.write

writeメソッドはデータをファイルに書き込みます。ファイルが存在しない場合は新しく作成されます。

 write(data, options, callback)

data引数にはファイルに書き込むデータを文字列で与えます。options引数には以下のプロパティから成るオブジェクトを与えます。

encode
data引数に与えた文字列の文字コード(省略可)。

callback引数にはコールバック関数を与えます。書き込みが成功したらコールバック関数の引数にはnull、失敗したらErrorオブジェクトが渡されます。

10.4.2.17.zip

zipメソッドはBuddyFileオブジェクトが表すファイルまたはディレクトリをZIPファイルに追加します。ZIPファイルが存在しなければ新たに作成します。

 zip(zipFile, options, callback)

zipFile引数にはZIPファイルを表すBuddyFileオブジェクトを与えます。options引数には以下のプロパティから成るオブジェクトを与えます。

omitDirectory
BuddyFileオブジェクトがディレクトリを表す場合に、そのディレクトリ名をzipファイルに含めるかどうかを真偽値で指定します。trueなら含めます。falseなら含めません(省略可。デフォルト値はtrue)。

ZIPファイルへの書き込みに成功したらコールバック関数の引数にはnull、失敗したらErrorオブジェクトが渡されます。

10.5.lib.BuddyReport

  1. BuddyReportモジュールはBuddyFileオブジェクトを出力先としてレポートを出力するAPIを提供するモジュールです。

10.5.1.関数

10.5.1.1.output

output関数はBuddyFileオブジェクトを出力先としてレポートを出力します。

 output(name, file, options, callback)

name引数にはレポート名を与えます。file引数にはレポートの出力先となるBuddyFileオブジェクトを与えます。options引数には以下のプロパティから成るオブジェクトを与えます。

where
絞り込み条件(【絞り込み条件】の節を参照)。
order
並べ替え指定(【並べ替え】の節を参照)。
offset
最初のレコード番号(先頭が0)。
num
出力件数。
param
パラメーターオブジェクト

paramプロパティには任意のプロパティから成るオブジェクトを指定できます。ここで与えたプロパティの値はレポート中で「this.param.プロパティ名」で参照できます。callback引数にはコールバック関数を与えます。レポート出力が成功したらコールバック関数の引数にはnull、失敗したらErrorオブジェクトが渡されます。

10.6.lib.FileManager

  1. FileManagerモジュールは、サーバー機能スクリプトからファイルマネージャを利用するためのAPIを提供するモジュールです。アプリケーションのfilesディレクトリ配下のファイルは固有のURLを持ち、ファイルが存在する間は常にダウンロード可能です。一方、ファイルマネージャは有効期限のあるURLをファイルに与えて一時的にダウンロードを許す仕組みを提供します。有効期限が過ぎるとファイルは自動的に削除され、ファイルに付与されたURLは無効になります。ファイルマネージャの管理下にあるファイルを「一時ファイル」と呼びます。

10.6.1.関数

10.6.1.1.getURL

getURL関数は一時ファイルの識別子(ハッシュ)からそのファイルをダウンロードできるURLを得ます。

 getURL(hash)

hash引数には一時ファイルの識別子となるハッシュ値を文字列で与えます。

10.6.1.2.register

register関数はBuddyFileオブジェクトが表すファイルをファイルマネージャに登録します。

 register(file, options, callback)

file引数には登録対象となるファイルを表すBuddyFileオブジェクトを与えます。options引数には以下のプロパティから成るオブジェクトを与えます。

auth
権限情報オブジェクト(省略可)。省略すると同じアプリケーションからのみアクセスを許可します。
fileName
ファイル名(省略可)。省略すると元のファイル名を用います。
limit
有効期限(省略可)。ファイルを削除する日時をDateオブジェクトで与えます。省略すると登録から1時間有効となります。
tags
タグオブジェクト。現在はdownloadタグ(デフォルト値true)が指定できます。trueならダウンロードを強制します。falseならブラウザの設定に従います。

callback引数にはコールバック関数を与えます。ファイルの登録に失敗するとコールバック関数の第1引数にはErrorオブジェクトが渡されます。登録に成功した場合、コールバック関数の第1引数にはnull、第2引数にはハッシュ値が文字列で渡されます。ここで得られたハッシュ値は上述のgetURL関数でファイルのダウンロードURLを得るために用います。

10.7.lib.sendMail

  1. sendMail関数はサーバを通じてメールを送信します。

    lib.sendMail(maildata, callback)

maildata引数には以下のプロパティから成るオブジェクトを与えます。

type
メール本文の形式。"text"または"html"
from
送信元メールアドレス(省略するとBuddyサーバの設定ファイルで指定された送信元メールアドレスを使用)
to
宛先メールアドレス(カンマ区切りで複数指定可)
cc
CCメールアドレス(カンマ区切りで複数指定可)
bcc
BCCメールアドレス(カンマ区切りで複数指定可)
subject … 表題
body … 本文
attachments
添付ファイルパス(filesディレクトリからの相対パス)の配列
smtpserver
SMTPサーバのホスト名またはIPアドレス(省略するとBuddyサーバの設定ファイルで指定されたSMTPサーバを使用)

callback引数にはコールバック関数を与えます。メールの送信に失敗した場合にはコールバック関数の第1引数にErrorオブジェクトが渡されます。メールの送信に成功した場合は、第1引数にはnull、第2引数には以下のプロパティから成るSMTP応答オブジェクトが渡されます。

envelope
エンベロープオブジェクト
accepted
SMTPサーバによって受理されたメールアドレスの配列
rejected
SMTPサーバによって拒否されたメールアドレスの配列
response
SMTPサーバからの応答メッセージ文字列

少なくとも1つのメールアドレスがSMTPサーバにより受理されたら送信成功として扱われます。

10.8.lib.Workbook

  1. WorkbookクラスはExcelワークブックを読み書きするためのAPIを提供するクラスです。

WorkbookクラスはNode.jsのexceljsモジュールに基づいています。exceljsの詳細については下記URLのドキュメントを参照してください。

 https://www.npmjs.com/package/exceljs

10.8.1.ワークブック

Workbookオブジェクトを作成するにはJavaScriptのnew演算子を用います。

 var workbook = new lib.Workbook();

既存のXLSXファイルを読み込んでWorkbookオブジェクトを作成するには、次の例のようにBuddyFileオブジェクトのread()メソッドの第1引数に{parse: "xlsx"}オプションを与えます。

 var xlsx = new BuddyFile(&quot;import/test.xlsx&quot;);
 xlsx.read({parse: &quot;xlsx&quot;}, function(err, workbook){
   // ここでworkbookはWorkbookオブジェクト
 });

WorkbookオブジェクトをXLSX形式のファイルとして保存するには、次の例のようにBuddyFileオブジェクトのwrite()メソッドの第1引数にWorkbookオブジェクトを与えます。

 var xlsx = new BuddyFile(&quot;output/test.xlsx&quot;);
 xlsx.write(workbook, function(err){
   // ...
 });

10.8.2.ワークシート

ワークブックに新しいワークシートを追加するには次のようにします。

 var sheet = workbook.addWorksheet('My Sheet');

ワークブックからワークシートを得るには次の例のようにgetWorksheet()を用います。引数には名前または番号(先頭が1)を与えます。

 // 名前で探す
 var worksheet = workbook.getWorksheet('My Sheet');
 // 番号で探す
 var worksheet = workbook.getWorksheet(1);

10.8.3.カラム

ワークシートのカラムにカラム名(key)、表示名(header)、幅(width)などを設定するには次の例のようにワークシートのcolumnsプロパティを変更します。

 worksheet.columns = [
   { key: 'id', header: 'ID', width: 10 },
   { key: 'name', header: '名前', width: 30 },
   { key: 'dob', header: '生年月日', width: 20 }
 ];

ワークシートからカラムを得るには次の例のようにgetColumn()を用います。引数にはカラム名、英文字、番号(先頭が1)を与えます。

 var idCol = worksheet.getColumn('id');
 var nameCol = worksheet.getColumn('B');
 var dobCol = worksheet.getColumn(3);

カラムのプロパティを変えるには次のようにします。

 nameCol.key = 'name';
 nameCol.header = '氏名';
 nameCol.width = 15;

カラムの各セルについて同じ処理を繰り返し実行するには次の例のようにeachCell()を用います。

 nameCol.eachCell(function(cell, rowNumber) {
   // cellはセルオブジェクト、rowNumberは行番号
 });

10.8.4.行

ワークシートに新しい行を追加するには次の例のようにaddRow()を用います。引数にはカラム名をプロパティとするオブジェクトを与えます。ここで指定するカラム名(id、nameなど)は、前節に示した方法で予め定義しておく必要があります。

 worksheet.addRow({id: 1, name: '近藤勇', dob: new Date(1834,11,9)});
 worksheet.addRow({id: 2, name: '土方歳三', dob: new Date(1835,5,31)});

addRow()の引数には配列を与えることもできます。この場合、値はカラムAから順に格納されます。

 worksheet.addRow([3, '斎藤一', new Date(1844,2,18)]);

ワークシートから行を得るには次の例のようにgetRow()を用います。引数には番号(最初が1)を与えます。

 var row = worksheet.getRow(5);

ワークシートの最後の編集可能な行を得るには次の例のようにlastRowプロパティを用います(編集可能な行がないときはundefined)。

 var row = worksheet.lastRow;

行の高さを設定するには次の例のようにheightプロパティを変更します。

 row.height = 42.5;

行の値を一括して変更するには次の例のようにvaluesプロパティを用います。

 row.values = { id: 3, name: '斎藤一', dob: new Date(1844,2,18) };

行のセルを得るには次の例のようにgetCell()を用いて名前、英文字、番号(先頭が1)を与えます。

 row.getCell('id').value = 3;
 row.getCell('B').value = '斎藤一';
 row.getCell(3).value = new Date(1844,2,18);

ワークシートの各行について同じ処理を繰り返し実行するには次の例のようにeachRow()を用います。

 worksheet.eachRow(function(row, rowNumber) {
   // rowは行オブジェクト、rowNumberは行番号
   console.log('Row ' + rowNumber + ' = ' + JSON.stringify(row.values));
 });

10.8.5.セル

ワークシートからセルを得るには次の例のようにgetCell()を用います。

 worksheet.getCell('C3').value = new Date(1844,2,18);

セルを結合するには次の例のようにmergeCells()を用います。

 worksheet.mergeCells('A4:B5');

セルの結合を解除するには次の例のようにunMergeCells()を用います。

 worksheet.unMergeCells('A4');

10.8.6.画像

ワークシートに画像を表示するには、Workbook.addImage()とWorksheet.addImage()を用いて次のようにします。

const wb = new lib.Workbook();
const ws = wb.addWorksheet('test');
const imgfile = new lib.BuddyFile('images/test.jpg');
const imgid = wb.addImage(imgfile);
ws.addImage(imgid, {
	tl: {col: 1, row: 1},
	br: {col: 2, row: 4}
});

Worrkbook.addImage()は、引数に表示する画像ファイルのBuddyFileオブジェクトを渡すと、画像IDが得られます。

Worksheet.addImage()は、第一引数に画像IDを指定し、第二引数で表示位置を指定します。(上記の例では、tlで左上のセル、brで右下のセルを指定しています。)表示位置の指定方法はいくつあります。exceljsのドキュメントを参照してください。

10.8.7.スタイル

本節ではセルのスタイルを変更するためのプロパティについて述べます。

10.8.7.1.書式設定

セルの書式設定を変更するには次のようにnumFmtプロパティを設定します。

 worksheet.getCell('A1').numFmt = '0.00%';
10.8.7.2.フォント

セルのフォントを変更するには次のようにfontプロパティを設定します。

 worksheet.getCell('A1').font = { name: 'Arial', size: 12 };

セルのfontプロパティには次のプロパティから成るオブジェクトを与えます。

name
フォント名('Arial'など)
color
色。例えば {argb: 'FFFF0000'} のようにargbプロパティから成るオブジェクトを与えます。
bold
太字(trueまたはfalse)
italic
斜体(trueまたはfalse)
underline
下線(true, false, 'none', 'single', 'double', 'singleAccounting', 'doubleAccounting'のいずれか)
strike
取り消し線(trueまたはfalse)
10.8.7.3.配置

セルの配置を変更するには次のようにalignmentプロパティを設定します。

 worksheet.getCell('A1').alignment = { vertical: 'top', horizontal: 'left' };

セルのalignmentプロパティには次のプロパティから成るオブジェクトを与えます。

horizontal
横位置('left', 'center', 'right', 'fill', 'justify', 'centerContinuous', 'distributed'のいずれか)
vertical
縦位置('top', 'middle', 'bottom', 'distributed', 'justify'のいずれか)
wrapText
折り返し(trueまたはfalse)
indent
字下げ(整数値)
readingOrder
文字の方向('rtl'または'ltr')
textRotation
回転角度(-90から90までの数値、または'vertical')
10.8.7.4.枠線

セルの枠線を変更するには次のようにborderプロパティを設定します。

 worksheet.getCell('A1').border = {
   top: {style: 'thin'},
   bottom: {style: 'thin'},
   left: {style: 'thin'},
   right: {style: 'thin'}
 };

セルのborderプロパティには次のプロパティから成るオブジェクトを与えます。

top
上の枠線スタイル
bottom
下の枠線スタイル
left
左の枠線スタイル
right
右の枠線スタイル

枠線スタイルにはstyleプロパティから成るオブジェクトを与えます。styleプロパティの有効な値は次の通りです。

style
'dashDot', 'dashDotDot', 'dotted', 'double', 'hair', 'medium', 'mediumDashDot', 'mediumDashDotDot', 'mediumDashed', 'slantDashDot', 'thick', 'thin'のいずれか。
10.8.7.5.塗りつぶし

セルの塗りつぶしを変更するには次の例のようにfillプロパティを設定します。

 // パターン(単色)
 worksheet.getCell('A1').fill = {
   type: 'pattern',
   pattern: 'solid',
   fgColor: {argb: 'FFFFFF00'}
 };
 // パターン
 worksheet.getCell('A2').fill = {
   type: 'pattern',
   pattern: 'darkHorizontal',
   fgColor: {argb: 'FFFFFF00'},
   bgColor: {argb: 'FF000000'}
 };
 // グラデーション
 worksheet.getCell('A3').fill = {
   type: 'gradient',
   gradient: 'angle',
   degree: 0,
   stops: [
     {position: 0.0, color: {argb: 'FFFF0000'}},
     {position: 0.5, color: {argb: 'FFFFFF00'}},
     {position: 1.0, color: {argb: 'FF00FF00'}}
   ]
 };

パターンで塗りつぶすには、セルのfillプロパティに以下のプロパティから成るオブジェクトを与えます。

type
文字列'pattern'(必須)。
pattern
パターン名(必須)。'darkDown', 'darkGray', 'darkGrid', 'darkHorizontal', 'darkTrellis', 'darkUp', 'darkVertical', 'darkVertical', 'gray0625', 'gray125', 'lightDown', 'lightGray', 'lightGrid', 'lightGrid', 'lightHorizontal', 'lightTrellis', 'lightUp', 'lightVertical', 'mediumGray', 'none', 'solid'のいずれか。
fgColor
前景色(省略可)。デフォルトは'black'。
bgColor
背景色(省略可)。デフォルトは'white'。

グラデーションで塗りつぶすには、セルのfillプロパティに以下のプロパティから成るオブジェクトを与えます。

type
文字列'gradient'(必須)。
gradient
グラデーションタイプ(必須)。'angle'または'path'。
degree
グラデーション方向の角度('angle'タイプの場合に必須)。0なら左から右へのグラデーション、1から359の値なら時計回りにグラデーション方向を回転。
center
パスの始点の相対座標('path'タイプの場合に必須)。0から1までの相対値でパスの始点を指定。
stops
グラデーションを構成する色の配列(必須)。配列の要素は次のプロパティから成るオブジェクト。
position
位置。始点を0、終点を1とする相対位置で指定。
color … 色。

10.9.lib.XPDFJ

  1. XPDFJクラスは、テキストや画像を含むPDFファイルをサーバー機能のスクリプトで生成するための仕組みを提供するクラスです。本クラスの機能の概要は次の通りです。

10.9.1.コンストラクタ

XPDFJオブジェクトを作成するにはJavaScriptのnew演算子を用います。

 new lib.XPDFJ(options)

options引数には以下のプロパティから成るオブジェクトを与えます。

src
ソースオブジェクトまたはXMLテキスト(省略可)
ydir
y軸(上下方向)をどちら向きとするか("up"または"down"、省略すると"up")

ソースオブジェクトの作成方法は後述します。srcを省略した場合、ソースは後述のXPDFJクラスのメソッドで組み立てます。ydirによる指定は後述のメソッドにおいてy(縦位置指定)とh(図形の縦送り)に影響します(srcによるソースには影響しません)。

10.9.2.メソッド

本節ではXPDFJクラスのメソッドについて述べます。各メソッドの呼び出しはXPDFJオブジェクト自身を返すので、次のように書くことが可能です。

 var xpdfj = new lib.XPDFJ(…);
 xpdfj.newDoc(…).addText(…).addLine(…).…
10.9.2.1.addBox

addBoxメソッドは矩形を追加します。

 addBox(options)

options引数には以下のプロパティから成るオブジェクトを与えます。

w
横送り(右へ)
h
縦送り(ydirがupなら上へ、downなら下へ)
linewidth
線幅(省略すると0.25)
linedash
破線指定("5,5" のように"線長,スキップ長"をポイントで指定。省略すると実線
color
線色("#RRGGBB"で指定、省略すると黒(#000000))
bgcolor
塗りつぶし色("#RRGGBB"で指定、省略すると塗りつぶさず枠線のみ)
x
横位置(省略するとページ左端)
y
縦位置(省略するとページ上端)
align
配置基準(【addText】メソッドの節を参照)

ある位置と、そこからw、hで指定した長さだけ移動した位置とを対角とする矩形を描きます。

10.9.2.2.addImage

addImageメソッドは画像を追加します。今のところPNG画像のみ利用できます。

 addImage(options)

options引数には以下のプロパティから成るオブジェクトを与えます。

src
画像ファイルをfilesからのパス名で指定
w … 幅
h … 高さ
x
横位置(省略するとページ左端)
y
縦位置(省略するとページ上端)
align
配置基準(【addText】メソッドの節を参照)
10.9.2.3.addLine

addLineメソッドは直線を追加します。

 addLine(options)

options引数には以下のプロパティから成るオブジェクトを与えます。

w
横送り(右へ)
h
縦送り(ydirがupなら上へ、downなら下へ)
linewidth
線幅(省略すると0.25)
linedash
破線指定("5,5" のように"線長,スキップ長"をポイントで指定。省略すると実線
color
線色("#RRGGBB"で指定、省略すると黒(#000000))
x
横位置(省略するとページ左端)
y
縦位置(省略するとページ上端)
align
配置基準(【addText】メソッドの節を参照)

ある位置からw、hで指定した長さだけ移動した位置まで直線を引きます。hが0なら水平線、wが0なら垂直線となります。x、y、alignは、w、hの指定によって構成される矩形がどの位置に配置されるかを決めます。オプション指定の組み合わせによって、x、yで指定した位置が直線の端になるとは限らない点に注意してください。

10.9.2.4.addParagraph

addParagraphメソッドは段落を追加します。

 addParagraph(options)

options引数には以下のプロパティから成るオブジェクトを与えます。

text
表示する文字列
font
フォント("mincho"または"gothic"、省略すると"mincho")
fontsize
フォントサイズ(省略すると10ポイント)
color
文字色("#RRGGBB" で指定、省略すると黒(#000000))
size
段落の横幅(省略すると100)
textalign
各行の配置方法(b: 行頭揃え、m: 中央揃え、e: 行末揃え、w: 両端揃え、W: 強制両端揃え、省略するとw)。wによる両端揃えは末尾行だけは行頭揃えとなります。Wによる強制両端揃えは末尾行も含めて両端揃えとなります。
linefeed
行送り(省略すると150%)。値は数値かパーセントで指定します。パーセント指定するとfontsizeを元に計算します。linefeedは行間ではなく行送りであることに注意してください。
textdir
"v"と指定すると縦書き。省略すると横書き
x
横位置(省略するとページ左端)
y
縦位置(省略するとページ上端)
align
配置基準(【addText】メソッドの節を参照)

textオプションの文字列はsizeで指定された横幅に収まるように折り返されて表示されます。また、文字列に\nを含めるとそこで折り返されます。

10.9.2.5.addText

addTextメソッドはテキストを追加します。

 addText(options)

options引数には以下のプロパティから成るオブジェクトを与えます。

text
表示する文字列
font
フォント("mincho"または"gothic"、省略すると"mincho")
fontsize
フォントサイズ(省略すると10ポイント)
color
文字色("#RRGGBB"で指定、省略すると黒(#000000))
textdir
"v"と指定すると縦書き。省略すると横書き
x
横位置(省略するとページ左端)
y
縦位置(省略するとページ上端)
align
配置基準(後述)

textオプションの文字列は\rや\nを含んでいても折り返されません。alignによる配置基準は、x、yで指定した位置が表示するもののどこにあたるかを、縦位置についてはt、m、bのいずれか、横位置についてはl、c、r のいずれかを組み合わせて指定します。

t
y位置が表示物の上端
m
y位置が表示物の中央
b
y位置が表示物の下端
l
x位置が表示物の左端
c
x位置が表示物の中央
r
x位置が表示物の右端

alignを省略すると、tl(配置基準を表示物の左上)が用いられます。

10.9.2.6.getTextSizes

getTextSizesメソッドはソースに含まれる各テキストと段落のサイズを返します。このメソッドはソースがXPDFJオブジェクトのメソッドで組み立てられた場合に有効です。

 getTextSizes(options, callback)

options引数にはオプションオブジェクトを与えますが今のところ使用されません。callback引数にはコールバック関数を与えます。エラーがあればコールバック関数の第1引数にはErrorオブジェクトが渡されます。エラーが無ければ、コールバック関数の第1引数にはnull、第2引数には結果が [横サイズ, 縦サイズ] の配列(単位はポイント)で渡されます。

10.9.2.7.newDoc

newDocメソッドはドキュメントを作成(ページも一つ自動的に追加)します。

 newDoc(options)

options引数には以下のプロパティから成るオブジェクトを与えます。

pagesize
ページサイズ:"ハガキ"、"ハガキL"、"B5"、"B5L"、"B4"、"B4L"、"A4"、"A4L"、"A3"、"A3L"のいずれか(「L」と付くのは横、付かないのは縦)
width
ページ横幅
height
ページ高さ

pagesizeもwidth、heightも指定しなかった場合はA4縦サイズとなります。

10.9.2.8.newPage

newPageメソッドは新しいページを追加します。以後のページの構成要素はそのページに配置されます。

 newPage()
10.9.2.9.ouput

ouputメソッドは、ソースにもとづいてPDFファイルを生成します。

 ouput(file, options, callback)

file引数には出力先ファイルとなるBuddyFileオブジェクトを指定します。options引数にはオプションオブジェクトを与えますが今のところ使用されません。callback引数にはコールバック関数を与えます。ファイル出力に失敗するとコールバック関数の第1引数にはErrorオブジェクトが渡されます。ファイル出力に成功した場合、コールバック関数の第1引数にはnull、第2引数には出力されたファイルのパスが渡されます。XPDFJクラスのメソッドでソースを組み立てる場合は、その最後にoutput()を呼び出してください。

10.9.3.使用例

10.9.3.1.実例1

ソースをXPDFJクラスのメソッドで組み立てる例を以下に示します。

var xpdfj = new lib.XPDFJ({ydir: "down"});
 
xpdfj.newDoc({pagesize: "A4"});
xpdfj.addText({text: "テスト\ntest", x: 50, y: 50, font: "gothic", fontsize: 20, color: "#ff0000"});
xpdfj.addParagraph({text: "テスト2 <testtest> なんとか\nかんとか", x: 50, y: 80});
xpdfj.addLine({x: 50, y: 150, w: 200, h: 0});
xpdfj.addBox({x: 50, y: 200, w: 150, h: 200, bgcolor: '#00ffff'});
xpdfj.addImage({src: 'images/kamogawa.png', x: 50, y: 300, w: 327, h: 240});
 
var bf = new lib.BuddyFile("", {temporary: true});
xpdfj.output(bf, {}, function(err, result){ … });

10.9.3.2.実例2

ソースをオブジェクトで与える例を以下に示します。

var src = {XPDFJ: {version: "0.1"}, _:[
        {Doc: {version:"1.3", pagewidth:"595", pageheight:"842"}},
        {new_font: {setvar:"$font", basefont:"Ryumin-Light", encoding:"UniJIS-UCS2-HW-H"}},
        {new_page: {setvar:"$page"}},
        {TStyle: {setvar:"$tstyle", font:"$font", fontsize:"20"}},
        {Text: {setvar:"$text", style:"$tstyle", texts:"テスト"}, _:[
                {call: [
                        {show: {page:"$page", x:"40", y:"800", align:"tl"}},
                ]},
        ]},
        {print: {file:"$Args{outfile}"}},
]};
 
var xpdfj = new lib.XPDFJ({src: src});
var bf = new lib.BuddyFile("", {temporary: true});
xpdfj.output(bf, {}, function(err, result){ … });

10.9.4.ソースオブジェクトの作成

ソースをオブジェクトで指定する場合は、次のいずれかの形式を組み合わせて入れ子にすることで組み立てます。二番目の形式は属性がない場合に用います。

 {タグ名: {属性名: 属性値,…}, _:[子オブジェクトまたは文字列,…]}
 {タグ名: [子オブジェクトまたは文字列,…]}

例えば、前掲の【実例2】のソースオブジェクトは、次のXMLテキストに変換されて、XPDFJで処理されます。

<?xml version="1.0" encoding="UTF-8"?>
<XPDFJ version="0.1">
        <Doc version="1.3" pagewidth="595" pageheight="842"/>
        <new_font setvar="$font" basefont="Ryumin-Light" encoding="UniJIS-UCS2-HW-H"/>
        <new_page setvar="$page"/>
        <TStyle setvar="$tstyle" font="$font" fontsize="20"/>
        <Text setvar="$text" style="$tstyle" texts="テスト">
                <call>
                        <show page="$page" x="40" y="800" align="tl"/>
                </call>
        </Text>
        <print file="$Args{outfile}"/>
</XPDFJ>

10.9.5.マクロの利用

XPDFJには独自のタグを定義したりできるマクロ機能があります。ソース中で直接マクロ機能を利用することもできますし、マクロファイルを用意して<do file="…"/>で読み込むことで利用することもできます。

  1. XPDFJでも、files/import/にマクロファイルを入れておけば、上記のオブジェクト形式なら{do: {file: "…"}}として読み込まれます。

例えばXPDFJの標準マクロstddefs.incを利用すると、次のようにHTMLライクなタグを使って書けます(files/import/に、stddefs.inc、stdfontsH.inc、stdfontsV.incを入れておく必要があります)。

var src = {XPDFJ: {version: "0.2"}, _:[
        {do: {file: "stddefs.inc"}},
        {BODY: [
                {H2: ["見出し"]},
                {P: ["XPDFJ\r\nテスト"]},
        ]},
        {print: {file:"$Args{outfile}"}},
]};

あるいはXMLテキストとしてソースを与えるなら次のように記述します。

<?xml version="1.0"?>
<XPDFJ version="0.2">
        <do file="stddefs.inc"/>
        <BODY>
                <H2>見出し</H2>
                <P>XPDFJ
                テスト</P>
        </BODY>
        <print file="$Args{outfile}"/>
</XPDFJ>

標準マクロの解説は別文書「XPDFJ標準マクロ概説」を参照してください。