Biz/Browser CRSマニュアル

API version 29
ver 1.3.8

CRSマニュアル

Copyright© Open Stream, Inc. All Rights Reserved.


本マニュアルについて

Biz/Browser HT CRSマニュアルをご利用いただくにあたっては、以下にご注意下さい。

呼称、略称について

本マニュアルでは以下の通りの呼称、略称を使用しています。

各呼称・略称 | Biz/BrowserおよびBiz/Browser Mobile共通の呼称
Biz/Browser PC版、またはPC版 ※ | Windows OS上で動作するBiz/Browser3.0〜V(5.0)
Biz/Browser Mobile、またはMobile版 ※ | Biz/Browser Mobileの各バージョン
Biz/Browser SmartDevice ※ | 下記のAndroid版、iOS版、Windowsタブレット版を総称した各バージョン ※Biz/Browser AI 2.0以降のバージョンを含みます。
Android版 | Biz/Browser HTの各バージョン

※本マニュアルにはPC版、Mobile版、Biz/Browser SmartDeviceの機能の説明はありません。

本マニュアルの見方

本項では、本マニュアルの見方について説明します。

APIバージョンについて

本マニュアルは、機能の説明や仕様の変更・追加・削除については「APIセット」を基準として記述されています。

「APIバージョン」とは、「APIセット」のバージョンのことであり、仕様定義が変更された場合更新されます。
同一の「APIバージョン」を実装するBiz/Browserであれば、プラットフォームや製品、製品バージョンが異なっていても同一のクラスやメソッド、プロパティを利用できることが保証されます。

※APIセット、APIバージョンの概要についてはこちらも参照ください。

プラットフォーム固有パッケージについて

APIセットに含まれないプラットフォーム固有の機能は、「プラットフォーム固有パッケージ」として、APIセットとは分けて記述されています。

このプラットフォーム固有パッケージはパッケージ単位でバージョン管理されており「Packageバージョン」として記述されています。
このバージョンはパッケージの仕様定義が変更された場合更新されます。

ページの見方

APIバージョンやPackageバージョンは各機能のページの左上に表記されます。

データ型の記載

Biz/Browserでは数値を扱うクラスとしてNumberがありますが、

本マニュアルでは、便宜上、小数点を含まない値を表すためにinteger、

真偽を表すためにbooleanという形式の記述を利用しております。

実装されているAPIバージョン

バージョン番号 | APIバージョン | プラットフォーム固有パッケージ
Biz/Browser AI Android版 v1.0.0 | 1 ※1 | なし
Biz/Browser AI Android版 v1.0.1 | 2 ※1 | なし
Biz/Browser AI Android版 v1.0.2 | 3 ※1 | なし
Biz/Browser AI iOS版 v2.0.0 | 4 | なし
Biz/Browser AI iOS版 v2.1.0 | 5 | なし
Biz/Browser AI Android版 v2.2.0 | 6 | ExternalObject(Java連携) Package version 1
Biz/Browser AI Windowsタブレット版 v2.2.0 | 6 | ExternalObject(.NET連携) Package version 1
Biz/Browser SmartDevice iOS版 v1.0.0 | 7 | なし
Biz/Browser SmartDevice Android版 v1.0.0 | 7 | ExternalObject(Java連携) Package version 1
Biz/Browser SmartDevice Windowsタブレット版 v1.0.0 | 7 | ExternalObject(.NET連携) Package version 1
Biz/Browser SmartDevice iOS版 v1.1.0 | 8 | なし
Biz/Browser SmartDevice iOS版 v1.2.0 | 9 | なし
Biz/Browser SmartDevice Android版 v1.2.0 | 9 | ExternalObject(Java連携) Package version 1
Biz/Browser SmartDevice Windowsタブレット版 v1.2.0 | 9 | ExternalObject(.NET連携) Package version 1
Biz/Browser SmartDevice iOS版 v1.3.0 | 10 | なし
Biz/Browser SmartDevice Android版 v1.3.0 | 10 | ExternalObject(Java連携) Package version 1
Biz/Browser SmartDevice Windowsタブレット版 v1.3.0 | 10 | ExternalObject(.NET連携) Package version 1
Biz/Browser HT Android版 v1.0.0 | 10 | ExternalObject(Java連携) Package version 1 および、HT API version 10と記載のある機能
Biz/Browser HT Android版 v1.1.0 | 12 | ExternalObject(Java連携) Package version 12 および、HT API version 12と記載のある機能
Biz/Browser HT Android版 v1.1.1 | 14 | ExternalObject(Java連携) Package version 13 および、HT API version 14と記載のある機能
Biz/Browser HT Android版 v1.2.0 | 15 | ExternalObject(Java連携) Package version 13 および、HT API version 15と記載のある機能
Biz/Browser HT Android版 v1.2.2 | 16 | ExternalObject(Java連携) Package version 13 および、HT API version 16と記載のある機能
Biz/Browser HT Android版 v1.2.4 | 19 | ExternalObject(Java連携) Package version 13 および、HT API version 19と記載のある機能
Biz/Browser HT Android版 v1.2.6 | 21 | ExternalObject(Java連携) Package version 13 および、HT API version 21と記載のある機能
Biz/Browser HT Android版 v1.3.0 | 24 | ExternalObject(Java連携) Package version 24 および、HT API version 24と記載のある機能
Biz/Browser HT Android版 v1.3.3 | 26 | ExternalObject(Java連携) Package version 24 および、HT API version 26と記載のある機能
Biz/Browser HT Android版 v1.3.5 | 28 | ExternalObject(Java連携) Package version 24 および、HT API version 28と記載のある機能
Biz/Browser HT Android版 v1.3.8 | 29 | ExternalObject(Java連携) Package version 29 および、HT API version 29と記載のある機能

※1　本マニュアルにはBiz/Browser HT以外の製品の説明はありません。


Biz/Browserの概要

Biz/BrowserはCRSというJavaScriptに良く似たスクリプト言語で記述されたスクリプトを内蔵するインタプリタにより実行します。Biz/Browserは、基本的な入出力手段としてHTTPを採用しており、CRS（スクリプトコード、データ、画面定義などを含みます）をWEBサーバからダウンロードして動作することができます。

Biz/Browserは、定型業務向けのアプリケーションを主要な用途としています。文字情報を効率よく扱うための機能、項目間のフォーカス移動制御、項目間の演算及びビルトイン関数による演算機能など、定型業務を行うアプリケーションが必要としている機能が充実しています。

Biz/Browserは、ネットワーク上での利用が中心になりますので、回線を通過するデータ量を削減するためにアプリケーションにより制御される強力なキャッシュシステムを搭載しています。キャッシュにはWEBサーバからダウンロードされたCRSスクリプトがコンパイルされたバイナリ形式で保存されます。したがって、一度表示した画面について、動的な変動データ以外の通信は発生しません。この構造により、64k程度の低速な回線でクライアント・サーバ間を接続しても、十分実用的な速度で動作する事ができます。従来の手法では、実用的なシステムは難しかった広域のネットワークをサポートする定型業務アプリケーションの構築を行う事ができます。

Biz/Browser利用システム全体概念図


Biz/Browserを利用したシステムの構成

Biz/Browserは、インターネットまたはイントラネットでWEBサーバと接続して利用します。このときのシステム構成は、通常のWEBブラウザと何ら変わるところは無く、ほとんどのWEBサーバと接続することができ、サーバ側のアプリケーション環境も特別なものは必要ありません。

HTMLとWEBブラウザを使ったシステムとの唯一の違いは、HTMLではなくCRSをWEBサーバからダウンロードして動作する点です。

HTMLと同様にCRSファイルは、Biz/Designerで作成してWEBサーバにファイルとして配置しておくことや、JavaやASPなどのサーバ側のアプリケーションにより動的に生成することができます。

また、CRSファイルのほかに、次のようなファイルを扱うことができます。

CARファイル(CRS Archive)

CRSファイルや関連するイメージファイルなどを圧縮して格納したファイルです。一度に関連する圧縮されたファイルをダウンロードする事ができるため、より通信効率が向上します。CARファイルは、Biz/Designer(Mobile)、または専用ツールcar.exeで作成する事ができます。

画像ファイル(JPG、PNGファイルなど)

JPEGと、PNG（透過PNGを含む）、BMP、GIF、TIFF、EXIF形式などのイメージファイルに対応しています。

その他ファイル

上記のほかに、アプリケーションで利用するデータとして、任意の形式のファイルを扱う事ができます。特に、XMLファイル、CSVファイルについては、CRSスクリプト上で処理するために便利な多くの機能を用意しています。


サーバプリケーションとの連携

サーバアプリケーションとの連携

Biz/BrowserはWEBサーバとHTTPで通信を行います。従って、WEBサーバ側で動作するアプリケーションは、通常のWEBブラウザとの通信と同じようにBiz/Browserからのリクエストを受け取り、レスポンスを返すことができます。

IIS上で動作するVBScriptの例

この例では、Biz/BrowserのTextBox1に"Hello"と表示します。

--- CRS sample1.crs ---

Form sample {
    Width = 300;
    Height = 200;
    TextBox TextBox1 {
        X = 10;
        Y = 10;
        Width = 100;
        Height = 30;
    }
    Get("sample1.asp");
}

--- VBScript – sample1.asp ---

<%
    Response.Write("TextBox1.value = "+Chr(&h22)+"Hello"+Chr(&h22)+";")
%>

このようにサーバ側のプログラム方法はHTMLと何ら変りません。唯一の違いは応答する内容が、HTMLではなくCRSスクリプトとなる点だけです。

Biz/Browserからデータを送信する例

この例では、Biz/BrowserのButton1をタップしたときTextBox1に入力された値をWEBサーバに渡します。

--- CRS sample2.crs ---

Form sample {
    Width = 300;
    Height = 200;
    TextBox TextBox1 {
        X = 10;
        Y = 10;
        Width = 100;
        Height = 30;
    }
    Button Button1 {
        X = 10;
        Y = 50;
        Width = 100;
        Height = 30;
        Title = "click";
        Function OnTouch(e) {
            Get("sample2.asp", sample.TextBox1);
        }
    }
}

--- VBScript – sample2.asp ---

<%
    ' リクエストパラメータの取得
    data = Request.Form("TextBox1")
    Response.Write("title = "+Chr(&h22)+data+Chr(&h22)+";")
%>

このように、パラメータの受け取りも、HTMLの場合と何ら変ることはありません。

Biz/Browserとサーブレットの連携例

③〜⑥のCRSスクリプト例
:
Button MyButton {
    ：
    Function OnTouch(e) {
        try {
            var session = getHttpSession();
            var request = session.CreateRequest("/app/proc1");
            request.AddParam("code", 123);
            var response = session.Post(request);
            var xmlImpl = new xmlDOMImplimentation;
            var xdoc = xmlImpl.Load(response);
            this.Title = xdoc.SelectSingleNode("//name").Text;
        }
        catch (exp) {
            MessageBox(exp);
        }
    }
:
}
:


システム構築の留意点

CRSで業務アプリケーションを構築する場合、HTMLと比較して以下の大きな違いがあります。

通信単位の違い

CRSファイルは画面レイアウト情報を含みますが、HTMLと異なり必ずしも1個のCRSファイルが１画面に対応することはありません。

WEBサーバとの通信により取得したCRSファイルはHTMLのようにそのまま画面に表示されるのではなく、スクリプトとしてBiz/Browserにより実行されます。実行した結果としてCRSスクリプトの内容により画面が表示されることもありますし、単にデータだけを更新することもあります。

従って、Biz/Designerで画面の要素部品を複数作成し、実行時に結合して１つの画面としたり、共通なロジック部分だけを別のファイルにして結合することも可能です。

また、表示されている画面の一部分だけを変更するようなCRSスクリプトをWEBサーバからダウンロードすれば、画面の一部分だけを変更することも可能です。例えば、TextBox1の背景色を赤に変更する場合、以下のようなCRSスクリプトをWEBサーバが送信することになります。

TextBox1.BgColor = $RED;

キャッシュの考え方の違い

Biz/Browserのキャッシュは、ダウンロードしたCRSスクリプトをコンパイルしたバイナリ形式で保存されます。そのために、キャッシュされたCRSスクリプトはコンパイルのオーバーヘッドがなく非常に高速に呼び出すことができます。

また、通常のWEBブラウザと異なりBiz/Browserのキャッシュは、一度キャッシュした内容は明示的に削除しない限り有効です。キャッシュの内容が古くなっていないか確認するための通信も行われません。キャッシュの整合性は、WEBサーバ上で動作するアプリケーションにより保証する必要があります。

このように、Biz/Browserのキャッシュは、「キャッシュ」というよりも、「CRSスクリプトのインストール」と考えたほうが良いかもしれません。

パフォーマンス向上のためのポイント

Biz/Browserで業務アプリケーションを快適に利用できるようにするためには、ユーザの操作に対して迅速な応答を返すようにアプリケーションを設計する必要があります。

Biz/Browserには、応答速度を向上させるためのさまざまな機能が内蔵されていますが、最も重要なことはWEBサーバとの通信回数をできるだけ減らすことです。また、通信を行う場合、できるだけ１回の通信で必要なデータを取り出すように心がけてください。通信環境にもよりますが、Biz/Browserが扱うような数10K程度の通信量の場合、処理時間のほとんどをコネクションの接続と切断で占めます。

パフォーマンスが悪化する例

Get("prog1?code=1");
Get("prog2?code=1");

このように必要なデータが２種類ある場合、２個のGET命令で取得すると２倍の時間がかかります。

パフォーマンスを改善する例

prog1とprog2の両方の応答内容を含んだ応答を返すprog3を用意して１回だけの通信に集約します。

Get("prog3?code=1");

これで、パフォーマンスが悪化する例に比べておおむね半分の時間で通信は終了します。


Android版の特徴と制約

Android版の特徴と制約変更履歴

この章ではAndroid版においてのBiz/Browserとしての仕組みの違いについて記載します。

Android版全般に関する違い

○Android版のCRS実行エンジンはBiz/Browser Vと同等のものを使用しています。
また、内部文字コードにはUnicodeが採用されています。

○メソッド名や変数名、外部リソース定数等の識別子の解決を行う際、全角文字に対しても大文字小文字を区別せずに扱かわれることがあります。
全角英字やギリシャ文字等を用いた識別子を使用する場合はご注意ください。

○使用可能な改行コードは、「\n」または「\r\n」となります。

○日本円の通貨記号は、全角の「￥」が使用されます。

○プラットフォームやアーキテクチャの違いにより、浮動小数点演算の結果がわずかに異なる場合があります。

○Edit系オブジェクト等でIMEを用いて入力中にフォーカスを移動した場合、入力中の文字列が確定されます。

○セキュリティレベルというセキュリティ制御に関する概念を搭載しています。 規則についてはセキュリティレベルについてを参照してください。

○Android OSの仕様上、Biz/Browserが前面に表示されていない状態になった時に自動的にBiz/Browserのプロセスが強制終了される場合があります。
そのため、処理・操作フロー等はそのことを考慮した開発が必要となります。
(CRSプログラムとしては、Root.SetReloginURLメソッド、Root.ReloggedInプロパティ、Root.WindowStateChangedイベント等を用いることで記述可能です)

○Biz/Browser HTは他のBiz/Browser製品とはGUIの外観がそれぞれと異なる場合があります。

○端末やOSに依存する動作に対してはBiz/Browserはその挙動に従います。そのため一部の機能については結果・挙動に差異が出る可能性があります。

○Android 6.0 から追加されたAndroidの設定画面の項目「アプリの権限」で、Biz/Browserが必要な各種機能への権限の許可状態を拒否にした場合、各種機能利用時にBiz/Browserが不安定な挙動をしたり強制終了したりすることがあります。なお、通常インストール直後は必要なすべての権限が許可になります。
※下記の「Biz/Browser HTが要求するパーミッションについて」もご参照ください。

○Root直下のFormのサイズは、常にRootのサイズと連動します。Formのサイズを変更することはできません。

現在判明している既知の不具合、制限事項

○端末の解像度の倍率が整数倍ではないとき、FlexCheckButton型のセルの表示文字列が、フォントサイズ、Formatプロパティ、セルの値によっては表示が一部欠損することがあります。

○端末に付属のボタンによるキー入力を行った際に、Shiftキーといずれかのキーを同時に押しているとき、Shiftキーが押されている扱いにならないことがあります。

  - KeyDownイベントのShiftKeyがfalseになることがあります。

  - AltKeyプロパティでShiftと組み合わせたキーにオブジェクトが応答しなかったり、Shiftと組み合わせていないキーにオブジェクトが応答してしまうことがあります。

  - Shift+Tabキーを押した際に、フォーカスが前ではなく次に移動することがあります。

○端末に付属のIMEによっては、端末に付属のボタンによるキー入力を行いInputModeなどで入力を制限されている文字をTextBoxなどに入力しようとすると、すでにTextBoxに入力されている文字がキー押下ごとに消えることがあります。

○端末に付属のボタンによるキー入力を行った際に、Biz/Browser HTのアプリが起動している間の最初の1回目のキー押下だけ、一部のキー（UP, LEFT, DOWN, RIGHTキーなど）を押しても押したことになっておらず、そのキーの押下による各種操作が行えないことがあります。

○ソフトウェアキーボードによっては、inputModeなどで入力を制限されている文字を入力したときに、ソフトウェアキーボードの動作が不安定となることがあります。

Biz/Browser HTが要求するパーミッションについて

Biz/Browser HTは他の一般的なAndroidアプリ同様、機能を実現するためにAndroid OSに対しパーミッションと呼ばれるものを要求します。

パーミッションはAndroidアプリがどのような機能に対してアクセスする可能性があるかを明示するもので、Androidアプリのインストール時にその一覧が表示されます。

Androidアプリは要求したパーミッション以外の機能にアクセスすることはAndroid OSによって禁止されます。

ExternalObjectパッケージ(Java連携)を用いてAndroid標準ライブラリやサードパーティ製ライブラリで実行可能となる処理もこのパーミッションによって制限されますので、ライブラリを使用する前に予め必要となるパーミッションをご確認下さい。

Biz/Browser HTがAndroid OSに対して要求するパーミッションは下記のとおりです。

パーミッション | 説明
android.permission.ACCESS_COARSE_LOCATION | おおよその位置情報(ネットワーク基地局)へのアクセス許可
android.permission.ACCESS_FINE_LOCATION | 詳細な位置情報(GPS)へのアクセス許可
android.permission.ACCESS_NETWORK_STATE | ネットワーク状態へのアクセス許可
android.permission.ACCESS_WIFI_STATE | Wi-Fi状態へのアクセス許可
android.permission.BLUETOOTH | ペアリング済みのBluetoothデバイスへのアクセス許可
android.permission.BLUETOOTH_ADMIN | Bluetoothデバイスの検索とペアリング操作の許可
android.permission.BLUETOOTH_CONNECT | ペアリングされたデバイスに接続する許可
android.permission.BLUETOOTH_SCAN | 周囲のBluetoothデバイスをスキャンする許可
android.permission.CAMERA | カメラ操作の許可
android.permission.CHANGE_WIFI_STATE | Wi-Fi状態の変更許可
android.permission.DISABLE_KEYGUARD | キーロックを無効化することの許可
android.permission.FLASHLIGHT | フラッシュライト操作の許可
android.permission.FOREGROUND_SERVICE | フォアグラウンドサービスを作成する許可
android.permission.INTERNET | 完全なインターネットアクセスの許可
android.permission.NFC | NFC機能へのアクセス許可
android.permission.POST_NOTIFICATIONS | 通知送信の許可
android.permission.READ_PHONE_STATE | 電話の状態へのアクセス許可
android.permission.RECORD_AUDIO | 音声の録音の許可
android.permission.VIBRATE | バイブレーション制御の許可
android.permission.WRITE_EXTERNAL_STORAGE | SDカード内のコンテンツに対するアクセスの許可
android.permission.WRITE_SETTINGS | システムの全般設定の許可(画面の明るさの変更等)

表示文字列と"＆"記号

PC版やMobile版では、画面に表示する文字列に"&"が含まれるとアンダーラインに変化する仕様がありました。表示をMobile版と合わせるため、アンダーラインは付与されませんが代わりに"&"が表示文字列から除外されます。

この動作を無効化し、表示する文字列に直接"&"を表示したい場合は、NoPrefixプロパティを使用してください。

UserAgentの違い

Webサーバへのリクエスト時のUserAgentは以下の値になります。

UserAgentにて処理を分岐している場合ご注意ください。

Biz/Browser HT(Android)

SYSオブジェクト

SYS.CLIENTの値は以下になります。

Biz/Browser HT(Android)

またSYS_CLIENT_VERSIONも実行中のバージョンとなるため、既存のCRSプログラム中で、SYS_CLIENT_VERSIONやSYS_CLIENTを利用して処理を分岐していたような場合には注意が必要です。

プラットフォーム定数

プラットフォームごとに分岐し、Android版での実行時のみ処理させて他のプラットフォームでの実行時には無視させる分岐処理ができる定数が用意されています。
使用可能な定数は以下になります。

・$Android

Biz/Browser HTでは常に「1」となります。

・$AI

互換のため、Biz/Browser HTでも「1」となります。

・$SmartDevice

互換のため、Biz/Browser HTでも「1」となります。

・$Mobile

Mobile互換モードのときは「1」、それ以外のときは「0」となります。

・$HT

Biz/Browser HTでは常に「1」となります。

rootオブジェクト、root直下のFormオブジェクト

起動時にメインウィンドウ(rootオブジェクト)は画面上で最大化され変更することはできません。

root直下のFormオブジェクトはrootのサイズと連動します。またX,Yプロパティに0以外の値を指定した場合無視されます。

文字列の扱いについて

StringオブジェクトにはUnicode文字が格納され、文字数や処理単位はUnicode 1文字単位となります。

Mobile互換モード
なお、Root.SetCompatibleModeメソッドを使用し、Mobile互換モードとすることで内部文字コードをShift-Jis(マルチバイト文字)に互換したモードにすることができます。

CRS内における文字コードの変換規則は下記のとおりです。

◆Mobile互換モードがOFF（デフォルト）のとき

---CRSファイル---

◇CRS解析時は、BOMがある場合はBOMに従い、その他の場合、OSの言語設定が日本語のときShift-JIS、その他の言語設定のときにはISO/IEC 8859-1 となります。

---Stringクラス---

◇文字数は、UTF-32の数え方と同様です。

---入出力関連---

◇ByteArrayクラスオブジェクトにセットした文字列はUTF-8として扱います。

◇Fileクラス, Securityパッケージにおける入出力では、UTF-8として扱います。

・DecryptorクラスDecryptStringメソッドの第二引数のpass（パスワード）はUTF-8として扱われます。

・EncryptorクラスEncryptStringメソッドの第二引数のpass（パスワード）はUTF-8として扱われます。

◇HTTPパッケージにおける入出力

・httpRequestのメソッドで指定される文字列はUTF-8として扱います。

・httpResponseクラスのオブジェクトのレスポンスデータはByteArrayとして扱います。

・httpResponseクラスのReadLineメソッドではUTF-8として扱われます。ただし、HTTPレスポンスヘッダのContent-Typeにcharsetが指定されていた場合その文字コードの文字列として扱います。

◇XMLパッケージにおける入出力

・XmlDOMImplementationクラスのParse、LoadメソッドではUTF-8として扱われます

・XmlDocumentクラスのSaveメソッドでは第二引数で指定されたエンコードに従います。

(デフォルト：UTF-8)

◇CSVパッケージにおける入出力

・CSVDocumentクラスのParseメソッド、Loadメソッド、SaveメソッドではUTF-8として扱われます。

・CSVDocumentクラスのGetメソッドではUTF-8として扱われます。ただし、HTTPレスポンスヘッダのContent-Typeにcharsetが指定されていた場合その文字コードの文字列として扱います。

◆Mobile互換モードがONのとき

---CRSファイル---

◇CRS解析時は、BOMがある場合はBOMに従い、その他の場合、OSの言語設定が日本語のときShift-JIS、その他の言語設定のときにはISO/IEC 8859-1 となります。

---Stringクラス---

◇文字数は、UTF-16の数え方と同様です。

---入出力関連---

◇ByteArrayクラスオブジェクトにセットした文字列はShift-JISとして扱います。

◇Fileクラス, Securityパッケージにおける入出力では、Shift-JISとして扱います。

・DecryptorクラスDecryptStringメソッドの第二引数のpass（パスワード）はShift-JISとして扱われます。

・EncryptorクラスEncryptStringメソッドの第二引数のpass（パスワード）はShift-JISとして扱われます。

◇HTTPパッケージにおける入出力

・httpRequestのメソッドで指定される文字列はShift-JISとして扱います。

・httpResponseクラスのオブジェクトのレスポンスデータはByteArrayとして扱います。

・httpResponseクラスのReadLineメソッドではShift-JISとして扱われます。ただし、HTTPレスポンスヘッダのContent-Typeにcharsetが指定されていた場合その文字コードの文字列として扱います。

◇XMLパッケージにおける入出力

・XmlDOMImplementationクラスのParse、LoadメソッドではShift-JISとして扱われます

・XmlDocumentクラスのSaveメソッドでは第二引数で指定されたエンコードに従います。

(デフォルト：UTF-8)

◇CSVパッケージにおける入出力

・CSVDocumentクラスのParseメソッド、Loadメソッド、SaveメソッドではShift-JISとして扱われます。

・CSVDocumentクラスのGetメソッドではShift-JISとして扱われます。ただし、HTTPレスポンスヘッダのContent-Typeにcharsetが指定されていた場合その文字コードの文字列として扱います。

Edit系オブジェクトのMaxLengthプロパティ

Android版ではMaxLengthプロパティはPC版と異なり文字数(Unicode単位) で統一されています。

IMEModeについて

Android版ではIMEの入力モード(直接入力、かな入力等)を制御することはできません。

IMEモードを指定した場合のSIP(Software Input Panel)の状態につきましては各クラスのIMEModeプロパティを参照してください。

また、SIP(Software Input Panel)の表示内容についてはSIPModeプロパティを参照して下さい。

フォントの扱いと表示について

端末内蔵の標準フォントの違いにより、他のBiz/Browser製品と比較して、行間や文字幅が異なることがあります。

そのため、文字列が表示領域に収まらなかった場合の表示や、ワードラップ処理の結果が異なることがあります。

また、太字や斜体については端末に該当するフォントが存在する場合のみ適用されます。

下線はAndroid版では対応しておりません。

FileSystemクラスについて

OSの違いによりドライブやディレクトリの構造がWindowsと異なるため、絶対パスでのアクセスなどにて動作しない場合があります。

Android版でのプライベートルート、パブリックルートのパスはFileSystemクラスのページを参照して下さい。

パスの区切り文字は"\"ではなく"/"を用います。

ファイルパスを表すワイルドカードの扱いがWindowsとは異なります。

(例："*.*" を指定した場合、"." を1つ以上含むファイルのみが対象となります)

RClickedイベントについて

Android版では、ButtonクラスのRClickedイベントで渡されるEventオブジェクトの子オブジェクトとして、xPos、yPosオブジェクトは含まれません。

独自のシステムプロパティ

//.SYSオブジェクトのプロパティは以下となります。

プロパティ名 | 説明
String MODELNAME | メーカーが設定したメーカー名や機種名が取得できます。 メーカーが自由に設定できるため必ず取得できるとは限りません。また書式に規則性はありません。 このプロパティを用いると機種に依存した条件分岐やコーディングが可能になります。
String PLATFORM | プラットフォーム種別が取得できます。 端末のCPU命令セットを取得できます。
String DEVICEID | 端末を識別するIDが取得できます。 この値を用いるとサーバ側で機体個別の管理やロギングなどが可能になります。 なお、このIDの不変性や一意性は保証されていませんのでご注意下さい。 詳しくはSYSオブジェクトのページを参照して下さい。

スケーリング設定画面について

Biz/Browser HTでは開発やデバッグを容易にするための補助機能として、画面の表示倍率やスクロールバーサイズをスクリプトを書かずに指定することの出来る「スケーリング設定画面」を用意しています。

スケーリング設定画面で設定すると端末内で実行するすべてのCRSプログラムに一律で反映します。

アプリケーションシステムとして個々の画面でのスケーリング設定を行う場合には、下記のスケール関連設定をCRSスクリプトに記述して行なってください。

機能 | 対応するプロパティ
表示倍率設定 | Form.HorizontalScale
 | Form.VerticalScale
 | Form.FontScale

「スケーリング設定」画面 各項目

□スケール値を上書きする

チェックをつけた状態で[ＯＫ]ボタンを押下すると各倍率を反映して表示します。

チェックを外した状態で[ＯＫ]ボタンを押下すると各倍率を「1.0」に戻します。

□水平方向倍率

水平方向(X, Width等)の表示倍率を指定します。

□垂直方向倍率

垂直方向(Y, Height等)の表示倍率を指定します。

□フォント倍率

フォントの表示倍率を変更します。

□[倍率リセット]ボタン

「デフォルトのスケール値を上書きする」にチェックが入った状態で有効になります。

各倍率欄に「1.0」をセットします。[ＯＫ]を押下するとセットされた倍率で表示されます。

※Formが存在しない、スクリプトが例外などで停止している場合には動作しません。

※スクリプトのスケーリング関連の記述が更新されることはありません。

ショートカット作成画面について

PC版と同様、Biz/Browser HTでは任意のCRSを直接実行するためのショートカットを作成することができます。

作成方法はAndroid OSのバージョンや端末のホームアプリなどにより異なります。

なお、一般的には下記の方法で作成することができます。

○ Android 8以上の場合

ドロワー(アプリ一覧画面)でBiz/Browserのアイコンをロングタップ→「ショートカット」（もしくは「ショートカット作成」）タブをタップ→「ショートカット作成」画面でショートカットの設定を行います→Biz/Browserのアイコンをロングタップ→ショートカットを配置したい場所で指を離します。

※Biz/Browser HT ver 1.3.0で追加されました。

※本機能を使用する前に、Biz/Browserを一度起動する必要があります。

○ Android 7以下の場合

ドロワー(アプリ一覧画面)でBiz/Browserのアイコンをロングタップ→「ウィジェット」タブをタップ→Biz/Browserのアイコンをロングタップ→ショートカットを配置したい場所で指を離します→「ショートカット作成」画面でショートカットの設定を行います。

※Biz/Browser HT ver 1.3.0以降のバージョンでAndroid 8以上の端末でもこの操作でショートカットを作成可能ですが、端末によっては正しく動作しない可能性があります。

※Biz/Browser HT ver 1.3.0以降のバージョンでAndroid 8以上の端末では、OSのバージョンや端末によって「ウィジェット」タブが表示されない場合があります。後述する「Biz/Browserのアイコンをロングタップした場合の表示例」を参照してください。

「ショートカット作成」画面 各項目

□ショートカット名

ショートカットアイコン下部に表示される文字列を指定します。

□ログイン先URL

Biz/Browserの起動後に自動的にログインするCRSのURLを指定します。

□QRコードからURLを読み取る

カメラを起動し、QRコードからログイン先URLを読み取ります。*1

□ブックマークから選択

「ショートカット名」と「ログイン先」をBiz/Browserのブックマークに登録されているURLから選択することができます。

ブックマークの名前が空白の場合、現在入力されている「ショートカット名」が維持されます。*2

□アイコンの選択

タップすることでアイコンを選択するダイアログが表示されます。

適切なアイコンのサイズはAndroid OSのバージョンや端末の解像度によって異なりますのでご注意下さい。

□コアダンプ出力モード

Biz/Browserの実行中にハンドリングされない例外がCRS実行エンジンに補足された場合、デバッグ情報(コアダンプ)を出力し、処理を中断します。

コアダンプ出力モードは下記のモードが指定可能です。

値 | 説明
0 | デバッグ情報(コアダンプ)を出力しません
1 | ハンドリングされていない例外が発生した場合、デバッグ情報(コアダンプ)を出力します。 コアダンプがすでに存在する場合、上書きされます。 (従来のBiz/Browserの動作と同等です)
2 | ハンドリングの有無にかかわらず、例外が発生するたびにデバッグ情報(コアダンプ)を出力します。 コアダンプファイル名にはタスクIDと4桁の連番が付与され、コアダンプが出力される度に新たに作成されます。

デフォルトでは1が選択されています。

○ Biz/Browserのアイコンをロングタップした場合の表示例

Android 11の例 | Android 12の例

Android11以降のファイルアクセス

Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスを行う場合、OSに対してユーザー操作で許可をとる必要があります。

ファイルアクセスを行う一部のメソッドで、許可が必要なディレクトリのパスを指定すると、OSのディレクトリの選択画面を表示しユーザーからアクセスの許可を取得します。

初期状態で対象のディレクトリが選ばれていますので、画面を操作して許可を取得してください。一度許可を取得したディレクトリに対しては、Biz/Browserを再インストールするまでディレクトリの選択画面は表示されません。

※画面はOSバージョンや端末によって異なる場合があります。

なお、内蔵ディレクトリ直下(/sdcard,/storage/emulated/0)やダウンロードディレクトリ(/sdcard/Download,/storage/emulated/0/Download)等、一部のディレクトリでは許可を取得できません。

※Android 11以降でもダウンロードディレクトリでファイルの読み込み、書き込みが可能な場合がありますが、他のアプリで作成したファイルを開くことができないなどの制限があります。

変更履歴
*1　v1.3.5で追加されました。
*2　v1.3.5から仕様変更されました。


スケーリング動作について

Biz/Browser HTでは、Formクラスに追加されたプロパティHorizontalScale、VerticalScale、FontScaleを利用して擬似的な拡大縮小(スケーリング)、縦横比の変更を行うことが可能になりました。

この章ではスケーリング動作における注意点を記載します。

スケーリングの実行原理

従来のBiz/Browserにおいても参照式を利用することにより擬似的に上位フォームの位置・サイズにおいてフォーム配下のオブジェクトのサイズを自動調整することは可能でした。

Form frmMain {
    X = 0;
    Y = 0;
    Width = 600;
    Height = 400;

    Button btnExit {
        X &= 50 * (^.Width / 600);
        Y &= 50 * (^.Height / 400);
        Width &= 100 * (^.Width / 600);
        Height &= 60 * (^.Height / 400);
    }
    TextBox txtInput {
        X &= 200 * (^.Width / 600);
        Y &= 50 * (^.Height / 400);
        Width &= 200 * (^.Width / 600);
        Height &= 50 * (^.Height / 400);
    }
}

しかしながら、実行スピード、開発生産性において決して優れている手法ではありませんでした。

またフォントは作成時以外指定できないため、フォントサイズを動的に変更させることはできませんでした。

新規に追加されたプロパティを利用すると、すっきりとしたコーディングで同様の効果を高速に行うことが可能です。

指定したForm配下に存在するオブジェクトに関して、自動的に座標計算を行い画面上へ再配置を行います。

上記と同じ効果を持つCRSコードは以下のようになります。

Form frmMain {
    X = 0;
    Y = 0;
    Width = 600;
    Height = 400;
    HorizontalScale &= Width / 600;
    VerticalScale &= Height / 400;
    FontScale &= Width / 600;

    Button btnExit {
        X = 50;
        Y = 50;
        Width = 100;
        Height = 60;
    }
    TextBox txtInput {
        X = 200;
        Y = 50;
        Width = 200;
        Height = 50;
    }
}

配下のオブジェクトのプロパティは変化しないため、論理値により画面設計を行い、適宜ディスプレイサイズにマッチングさせるような実装が可能になりました。

またフォントサイズも動的にスケーリングさせることが可能になり、あたかも拡大縮小するように振る舞わせることが可能です。

フォントサイズはオブジェクトのサイズと独立して拡大縮小率を設定できるため、画面の拡大比率よりやや小さめ・・・など細かな調整が可能です。

スケーリング動作の注意点

スケーリング動作はオブジェクトのサイズを動的に変更する機構であり、画像を拡大縮小する訳ではありません。

よってOSの指定値で表示される、ボーダー(枠線)やスクロールバーの幅に関しては拡大縮小に影響されません。

そのため、オブジェクト内の有効な領域は拡大時は広く、縮小時は狭くなります。

有効領域のスケーリングの正確さを優先しオブジェクトのサイズを実際の倍率とは異なる値に自動的に補正するクラスもあります。

詳しくは各クラスの説明をご参照ください。

また座標系は整数値のため、小数を含んだ倍率を指定した場合、1ピクセル単位で切り捨て(切り上げ)誤差が発生することがあります。

FontScaleに関しては倍率をポイント単位で丸めます。よって座標のスケーリングよりも変化量は大きくなります。

スケーリング動作を用いて画面設計を行う場合、表示エリアに余裕を持った設計を行うようにしてください。

端末解像度による自動スケーリング

API version 6より、端末解像度に応じて自動的にスケーリングを行う機構が追加されました。

本機能により、同じプラットフォーム間であれば、異なる端末でも概ね同一のスケールで画面が表示されるようになりました。

異なるプラットフォーム間では基準となるdpi値が異なりますのでご注意下さい。

Android版

下記のスケール値が自動で適用されます。

解像度分類 | 解像度 | 自動スケーリング倍率
ldpi(低解像度) | 120dpi | 0.75
mdpi(中解像度) | 160dpi | 1.0 (基準)
tvdpi(TV等端末用解像度) | 213dpi | 1.33125
hdpi(高解像度) | 240dpi | 1.5
xhdpi(超高解像度) | 320dpi | 2.0
xxhdpi(超々高解像度) | 480dpi | 3.0
xxxhdpi(超々々高解像度) | 600dpi | 4.0

※Biz/Browser AI Android版　v1.x系ではすべての解像度で1.0倍のスケーリングとなります。


セキュリティレベルについて

Biz/Browser HTではセキュリティレベルという概念が導入されました。

従来Biz/Browserはセキュリティを確保するため、ローカルリソースアクセス時に警告表示を行う、外部アプリケーションの呼び出しの抑制などを原則としていました。

しかしながら、イントラネットでの運用などセキュリティが確保された環境では警告が不要な場合や外部アプリケーションの連携を限定的に行うことを許可しても良いケースがあります。

セキュリティレベルを設定することにより、警告表示を抑制したり、通常ではセキュリティ上禁止されている機能を使用できるようにしたり、またその逆に常に警告を表示するといった制御が可能になります。

セキュリティレベルの指定方法

セキュリティレベルはレベル0(低)〜レベル2(中、従来のBiz/Browserと同等)〜レベル4(高)までの5段階で指定されます。

セキュリティレベル無指定時はレベル2に設定されます。

Biz/Btowser AIでは、接続ライセンスによるセキュリティレベルの管理ができます。

接続ライセンス証明書にはセキュリティレベルが記載され、ライセンス発行時にはレベル0〜レベル4までの5種類の証明書が発行されます。

従来Webサーバに配置していた接続ライセンス証明書と同様にアプリケーションで利用したいセキュリティレベルの証明書を選び、Webサーバに配置してください。

Biz/Browserに接続ライセンス証明書を登録すると、そのWebサーバへの接続時は証明書に記載されているセキュリティレベルが適用されます。

セキュリティレベルの指定の優先度

セキュリティレベルは、複数のライセンス証明書がBiz/Browserにインストールされている場合、最も低いセキュリティレベルに設定されます。

セキュリティレベルによる機能利用可否一覧

以下の機能がセキュリティレベルの影響を受けます

対象 | 機能 | セキュリティレベル
 |  | 0 | 1 | 2 | 3 | 4
FileSystem.Mountメソッド | マウント時のセキュリティ警告ダイアログ | 表示しない |  | 初回表示、 2回目以降抑制可 |  | 常に表示
Runtime.Execメソッド Runtime.ShellOpenメソッド Runtime.ShellLinkメソッド link関数 | 実行可能形式ファイル（exe、batなど）、.lnkファイル（ショートカットファイル）の実行 | 確認なしに実行 | 警告表示 | 実行不可
 | 外部ファイルを開くときのセキュリティ警告ダイアログの表示 | 表示しない | 初回表示、2回目以降抑制可 |  |  | 常に表示
ExternalObjectクラス(Java連携) ExtValクラス(Java連携) | .NET FrameworkまたはDalvikVMによる外部オブジェクトの生成 | 可 | 不可
Intentクラス | 他のAndroidアプリに対するインテントの発行 | 可 | 不可
ExternalServiceクラス | 外部サービスとの連携 | 可 | 不可


サポートされるHTTP認証方法について

Biz/Browser上でHTTP, HTTPS通信を行う際、接続先の設定によっては認証が必要となることがあります。

使用可能なHTTP認証は使用するBiz/Browserのバージョンやサーバ、HTTPバージョン等によって変化します。

使用する際は下記の表およびサーバのマニュアルなどからどの認証方法が使用可能かをご確認ください。

Biz/Browserで使用可能なHTTP認証方法は下記のとおりです。

認証方法 | Android版
BASIC認証 | ○
ダイジェスト認証 | ○
Windows統合認証 | ☓
Proxy認証 | ☓


ジェスチャ操作について

Biz/Browser HTでは、Formクラスに追加されたUseGestureプロパティ, Gestureイベントを利用して、タッチ操作によるジェスチャをイベントとして取得できるようになりました。
この章ではジェスチャ操作における注意点を記載します。

捕捉できるジェスチャの種類

Formクラスでは、下記のジェスチャを捕捉する事ができます。

◯フリック操作

フリック操作とは、画面上で一本の指を弾くように素早く動かしながら指を離す操作のことを指します。

主に画面の切り替えやフリック入力式のソフトウェアキーボードなどで使用されており、主にフリック方向の情報を用いて処理を行います。

◯スワイプ操作

スワイプ操作とは、画面上に一本の指をおいたまま指を動かす操作を指します。

主に画面のスクロール処理やアイテムの移動操作などで使用されており、指を動かす度に発生するイベントにて処理を行います。

◯ピンチ操作

ピンチ操作とは、画面上に二本の指を置き、二本の指の間隔を狭めたり広げたりする操作を指します。

指の間隔を狭める操作のことをピンチイン、広げる操作のことをピンチアウトといいます。

主に画面の拡大縮小操作などで使用されており、指を動かす度に発生するイベントにて処理を行います。

上位Formへのジェスチャ操作の転送

UseGestureプロパティへフリック操作、スワイプ操作を指定しない場合、ジェスチャは上位Formへ転送されます。

これによりジェスチャを行っているFormより上位に位置するFormをスワイプによりスクロールさせることができます。

UseGestureプロパティにてフリックまたはスワイプ操作を補足中の場合、スワイプ操作による上位Formのスクロールは行えません。

ジェスチャ操作の従来のマウスイベントへのマッピング

以下のジェスチャ操作は従来のマウスイベントへマッピングされます。

◯タップ操作

Clicked、LButtonUpイベント

◯ダブルタップ操作

DoubleClickedイベント

◯ロングタップ操作

RClicked、RButtonUpイベント

以下、UseGestureでジェスチャをハンドリングしない場合、発生するイベントです。

◯スワイプ操作

MouseMoveイベント

◯ピンチ操作

MouseWheelイベント


カスタムURLスキームについて

他のアプリとの連携を行うための手法として、カスタムURLスキームという機構が用意されています。
簡単にいえば、アプリ独自のスキーム(“hoge://fuga”というURLにおける”hoge”の部分)を定義し、
そのURLを別のアプリから開いた際、スキームを定義したアプリの起動とデータの送信を行うための機構となっています。

Biz/Browser HTが対応しているカスタムスキームは下記のとおりです。

・crs://www.example.com/hoge.crs

  →　http://www.example.com/hoge.crsに対するログインと解釈されます。

・crs-http://www.example.com/hoge.crs

  →　http://www.example.com/hoge.crs　(crs://と同一)に対するログインと解釈されます。

・crs-https://www.example.com/hoge.crs

  →　https://www.example.com/hoge.crsに対するログインと解釈されます。

・biz-browser://...

  →　(後述)

Biz/Browser HT 1.2.6以降

・biz-browser-postevent://...

  →　(後述)

「biz-browser」スキーム

biz-browserスキームでは、通常のhttp/httpsスキームや前述のcrsスキーム等と比べて、Biz/Browserをより細かく制御することができます。

○Root.Loginメソッド、他アプリ両方から呼び出し可能なURL

・biz-browser://

login - ログイン操作

?url=<url>

- [必須]ログイン先URL

&param=<param>

- [オプション]ログインパラメータ。SYS.LoginParamにセットされます。

&proxy=<host:port>

- [オプション]プロキシサーバを"ホスト名:ポート番号"の形で指定します。
  未指定時はOSの設定に従います

使用例

biz-browser://login?url=http://www.example.com/dir/login.crs
biz-browser://login?url=http://www.example.com/dir/login.crs&param=abc&proxy=127.0.0.1:8080

・biz-browser://

settings - Biz/Browser起動設定の変更

詳細はこちらを参照して下さい。

○他のアプリから呼び出しのみ可能なURL

・biz-browser://

postEvent - 起動中のBizのRootオブジェクトへのイベント発行。Biz未起動時は起動のみ実行。

?name=<CustomEvent>

- [必須]イベント名。「"On"+イベント名」のイベントハンドラにてハンドルできます。

&<key1>=<value1>

&<key2>=<value2>

…

&<keyN>=<valueN>

- [オプション]イベントオブジェクトの子オブジェクト(Stringクラス)の名前と値を指定します。

  子オブジェクトは0個以上の任意の数を指定できます。

  <keyN>にオブジェクト名として使用できない名前(予約語や記号等)を指定した場合は、その値は無視されます。

- (Biz/Browser HT 1.2.6以降)AndroidアプリからURLを指定して呼び出した場合、インテントの情報がイベントの子オブジェクトとして格納されます。

  オブジェクト名はExtIntentとなります。インテントについては、Intentクラスを参照してください。

使用例

/* 他のアプリ(Safariや印刷用アプリ等)から呼び出されるURL */
biz-browser://postEvent?name=TestEvent&title=abc&param=def

/* イベントを受け取るCRSスクリプト */
/* Rootオブジェクトにイベントハンドラを定義 */
// {
    Function OnTestEvent(e) {
        /* タイトルに"abc", 本文に"def"がセットされたMessageBoxが表示されます */
        MessageBox(e.param, e.title);
        /* インテントの情報はExtIntentとして格納されます */
        MessageBox("Intent:" + e.ExtIntent.action + " / " + e.ExtIntent.data);
    }
}

・biz-browser://

showForeground - Biz起動時は画面を前面に表示します。Biz未起動時は起動します。

○Root.Loginメソッドからのみ呼び出し可能なURL

・biz-browser://

debug - デバッグモードに移行します。詳しくはBiz/Designerのマニュアルを参照して下さい。

?host=<host>

- [必須]Biz/Designerが動作しているPCのホスト名(またはIPアドレス)。

&port=<port>

- [オプション]デバッグ用ポート番号。省略時は44080番に接続します。

「biz-browser-postevent」スキーム

biz-browser-posteventスキームは、他のアプリからの呼び出しのために使用します。biz-browserスキームとは、イベント名の指定方法が異なります。

Biz/Browserを呼び出すアプリの仕様に合わせて、使用するスキームを選んでください。

Biz/Browser HT 1.2.6以降で対応しています。

○他のアプリから呼び出しのみ可能なURL

・biz-browser-postevent://

<EventName> - 起動中のBizのRootオブジェクトへのイベント発行。Biz未起動時は起動のみ実行。イベント名はホスト部で指定します。

?<key1>=<value1>

&<key2>=<value2>

…

&<keyN>=<valueN>

- [オプション]イベントオブジェクトの子オブジェクト(Stringクラス)の名前と値を指定します。

  子オブジェクトは0個以上の任意の数を指定できます。

  <keyN>にオブジェクト名として使用できない名前(予約語や記号等)を指定した場合は、その値は無視されます。

-AndroidアプリからURLを指定して呼び出した場合、インテントの情報がイベントの子オブジェクトとして格納されます。

  オブジェクト名はExtIntentとなります。インテントについては、Intentクラスを参照してください。

使用例

/* 他のアプリ(Safariや印刷用アプリ等)から呼び出されるURL */
biz-browser-postevent://TestEvent?title=abc&param=def

/* イベントを受け取るCRSスクリプト */
/* Rootオブジェクトにイベントハンドラを定義 */
// {
    Function OnTestEvent(e) {
        /* タイトルに"abc", 本文に"def"がセットされたMessageBoxが表示されます */
        MessageBox(e.param, e.title);
        /* インテントの情報はExtIntentとして格納されます */
        MessageBox("Intent:" + e.ExtIntent.action + " / " + e.ExtIntent.data);
    }
}


APIバージョンについて

「APIバージョン」とは、Biz/Browser AI(現Biz/Browser SmartDevice)より導入された新しい概念です。
従来、製品名やそのバージョン番号により機能の差異を表して来ましたが、Biz/Browserが多くのデバイスやプラット
フォームをサポートするに至り、複数の製品とバージョンが 混在し、バージョン番号のみで実装機能を表すことが困難に
なりました。

そのため、製品や製品バージョンとは独立し、実装機能セットそのものを表す指標として「APIセット」とそのバージョンを
示す「APIバージョン」が導入されました。

APIセット・APIバージョン

「APIセット」とは、下記のように定義されています。

  • CRS言語仕様、内蔵パッケージ、内蔵クラスとそのプロパティ(型)、メソッド(引数、戻り値)、定数の仕様定義

「APIバージョン」は、「APIセット」のバージョンであり、仕様定義が変更された場合更新されます。
同一の「APIバージョン」を実装するBiz/Browserであれば、プラットフォームや製品、製品バージョンが異なっていても同一
のクラスやメソッド、プロパティを利用できることが保証されます。

※各APIバージョンを実装している製品の一覧はこちらも参照ください。

APIバージョンと実装による動作の違い

「APIバージョン」は仕様定義であり、実際の動作は各デバイス、プラットフォームに依存しています。
同じAPIバージョンでは異なるデバイス上でも同じクラスとメソッドを使用することができますが、特にハードウェアやOSに依存した
機能に関してはその実行結果は一致しない場合があります。
実装による差異に関してはリファレンスマニュアルの各項目に補足事項として記載されています。

APIバージョンに関連する機能

$APIVERSION 定数

動作中のBiz/BrowserのAPIバージョン番号が取得できます。値は整数値です。
これにより、動作中のAPIバージョンによって処理を分岐させることができます。


CRSプログラム

CRS言語はBiz/Browser専用のスクリプト言語です。

言語仕様がJavaScriptと似ており、ステートメントや演算子などはほとんどがJavaScriptと同じように動作するため、Biz/Browserのアプリケーション開発にあたって習得しなければならない知識は最小限に抑えられています。

ただし、JavaScript（ECMA-262）とは互換性を持つわけではありません。HTMLに記述されていたJavaScriptをコピーしても期待する動作はしないことに注意してください。

ver3.0で大幅に仕様が拡張され、JavaScriptに似た機能を多く取り込んでいます。

ver4.0よりクラスやパッケージ機能が仕様拡張されています。

ver4.1より多国語に対応したアプリケーションの構築をサポートする$$シンボル機能が追加されています。

Biz/Browser HTではv5.0相当のCRS言語仕様を採用しています。


CRSプログラムの構成単位

通常、プログラミング言語には明確なプログラムの構成単位があります。例えばC++言語では中心は「クラス」であり、クラスの集合がプログラムとなります。また、クラスは複数のソースファイルに分かれて記述されていたり、一部がDLLでリンクされることもあります。C++言語ではプログラムを構成するこれらのソースファイルやDLLが完全にそろっていなければコンパイルすることができず、当然実行することもできません。C++言語に限らず、多くのプログラミング言語は、そのプログラムを実行する時点ですべての構成要素が整っている必要があります。

CRSプログラムでは、この状況は少し異なります。CRSプログラムは、Biz/Browserによりロードされ中間言語にコンパイルされたあと、インタプリタにより実行が開始されます。このとき、そのプログラムを構成する要素が事前にすべて揃っている必要はなく、ロードされたCRSプログラムから順次実行が開始されます。必要な構成要素は実行されるCRSプログラムがロジックの中でCRSプログラムのロード命令「Getメソッド」を実行することで、動的に組み立てられます。

CRSプログラムはこのようにプログラムロジックにより動的にCRSプログラムがロードされ、インタプリタで実行中のプログラムと結合されます。


CRSプログラムの要素

CRSプログラムは、主にクラス定義、オブジェクト構造の定義とイベントハンドラ関数定義で構成されます。

Biz/Browserには多くのクラスが内蔵されています。各クラスはそれぞれ固有の機能を定義しており、例えばButtonクラスはボタンとしての機能を定義もっています。また、CRSプログラムにより既存のクラスを派生させ新しい機能を定義することができます。

クラスはパッケージと言う単位にまとめられており、全てのクラスは必ずパッケージに所属します。

オブジェクトはクラスのインスタンスとして生成します。例えばButtonクラスのオブジェクトはウィンドウ上にボタンを表示します。CRSプログラムで、これらのオブジェクトをどのような構造で生成するかを記述することにより、画面を構成し、データ構造を定義します。

イベントハンドラ関数は、オブジェクトにより定義されるさまざまなイベントが渡されます。イベントハンドラ関数には、それらのイベントに対してどのように動作するかを記述します。例えば、ボタンを押下したときなどの動作を記述します。


パッケージ

パッケージとは

パッケージには、クラス、ファンクション、オブジェクトを含めることができます。

パッケージはpackageステートメントを使用して定義します。

package パッケージ名 {
 :
}

パッケージ例 (MyPackage.crs)

package MyPackage {
    /* クラス */
    class MyButton extends Button {
        Title = "MyButton";
        Function OnTouch(e) {
            MessageBox("Hello");
        }
    }

    /* ファンクション */
    Function MyFunction(text) {
        return MessageBox(text);
    }

    /* オブジェクト */
    String MyData = "sample";
}

現在のCRSはパッケージの概念は限定的で、Javaなどのほかの言語のようにパッケージ名がクラスの識別に影響することはありません。例えば多くの言語でパッケージ名でクラス名を修飾することができますが、CRSではそうした修飾を指定することはできません。従って、クラス名はBiz/Browserにロードされる全てのCRSで一意に定義する必要があります。

上記例のMyButtonを利用する場合、次のように記述します。

MyButton btn {
    X = 10;
    Y = 10;
    Width = 100;
    Height = 30;
}

パッケージに含めたファンクションは、パッケージ名で修飾して任意のスコープから呼び出すことができます。上記例のMyFunctionを利用する場合、次のように記述します。

MyPackage.MyFunction("sample");

パッケージに含めたオブジェクトも同様に、パッケージ名で修飾して任意のスコープから参照することができます。上記例のMyDataを利用する場合、次のように記述します。

MessageBox(MyPackage.MyData);

パッケージ内のファンクションやデータは、ver3.0のRecordを使ったグローバル名前空間へのimportと同じように利用することができます。

パッケージの利用

通常は、パッケージはFormなどを定義したアプリケーション画面とは別のCRSファイルとして作成します。アプリケーション固有のクラス、ファンクションや定数などをパッケージに定義してimportすることにより、他のCRSプログラムからライブラリのように利用することができます。以下は、MyPackageを利用する画面の例です。

利用例 (Form1.crs)

import "MyPackage.crs";
Form Form1 {
    Width = 800;
    Height = 600;
    MyButton btn {
        X = 10;
        Y = 10;
        Width = 120;
        Height = 30;
    }
}

このように、パッケージを定義したCRSファイルをimportすることで効率よく開発を行うことができます。importでパッケージをロードする場合、必ずファイル名はパッケージ名に拡張子".crs"を付加した名前にする必要があることに注意してください。

パッケージ利用の留意点

パッケージ名とファイル名

importするパッケージのファイル名は、パッケージ名に".crs"を付加しなければなりません。ファイル名とパッケージ名が不一致の場合、importはエラーとなりますのでご注意ください。

importステートメントの動作は、指定したURLのファイル名に一致するパッケージが既にメモリ上にロードされている場合、パッケージを再ロードせずに即復帰します。この動作はGETメソッドとは異なり、キャッシュ、通信、コンパイルおよびスクリプト実行の動作を伴わないため、2回目以降のimportは非常に高速に完了します。

この特性により、複数の画面で同じパッケージをそれぞれimportしても常に最初の1回目だけが実行されるため、画面切り替え時にも、ほとんどオーバーヘッドを伴わずに共通処理を実装することが可能です。

パッケージの有効期間

パッケージは、一度Biz/Browserにロードされると//.login()メソッドや//.logout()メソッドによりセッションがリセットされるまでメモリ上に常駐します。パッケージ内にあまり大きなデータや非常に多くのファンクションを定義すると多くのメモリを消費することに注意してください。

動作速度への考慮

パッケージ内にあまり大きなデータや非常に多くのファンクションを定義すると動作速度が低下することがあるので注意してください。多くのデータを定義する必要がある場合、パッケージを細分化するか、パッケージ内にRecordオブジェクトなどを利用して階層化して定義したほうが動作速度に対する影響は少なくなります。

package MyPackage {
    Record dataRec1 {
        String Data1 = "sample1";
        String Data2 = "sample2";
          :
    }
    Record dataRec2 {
        String Data3 = "sample3";
        String Data4 = "sample4";
          :
    }
    :

アプリケーションの先頭で、アプリケーションに用意されている全てのパッケージをimportする必要はありません。いつでもimportは可能ですのでCRSファイルごとに本当に必要なパッケージをimportするほうが効率よく動作します。一度に全てのパッケージをimportした方がプログラムの開発は容易ですが、実際には使われないパッケージもロードされてしまうため、起動に時間がかかったりアプリケーションの動作速度が低下する弊害があることに注意してください。


クラス

クラスとは

クラスはオブジェクトの性質や動作を定義しています。画面を構成する部品（ボタン、ウィンドウなど）、印刷される文字及び、処理されるデータの各要素は、すべてクラスにより表現されています。クラスは、プロパティ、メソッド、イベント、定数が定義されています。

オブジェクトはクラスのインスタンスです。クラスにより定義されるメソッドやプロパティをCRSスクリプトで操作することで、オブジェクトの挙動を指示することができます。

プロパティ

プロパティとは、プロパティ名とプロパティ値の組で表現されるオブジェクトの属性で、プロパティの値によりオブジェクトの性質を決定する要素です。プロパティの値を変更する事で、オブジェクトの見えかたや、ユーザの操作に対する反応が変わります。変化の状態はどのプロパティを変えたかによって異なります。

例

Activeプロパティ=$TRUE

↓

Activeプロパティ=$FALSE

プロパティはオブジェクトのクラスに応じた多くの種類があります。またプロパティごとにアクセス制御が行われており、動的に変更ができるもの、読取専用のもの、作成時にしか指定ができないものなどがあります。

メソッド

メソッド(Method)は一種の関数です。オブジェクトは実行されるメソッドに応じた動作を行います。

Methodの呼び出し例

Form1.DeleteChild();        /* Form1の内容を消去します。 */
Form1.Get("/mainmenu.crs"); /* Form1にmainmenu.crsをロードします */

イベント

オブジェクトが何かに反応する場合、イベントが発生します。イベントの種類や発生する契機はクラスにより定義されます。例えば、Buttonクラスの場合、ボタンを押下するとTouchイベントが発生します。イベントは、「"On" + イベント名」の名前をもつFunction(イベントハンドラと呼びます)により捕捉することができ、パラメータにEventオブジェクトが渡されます。イベントハンドラでは、イベントに応じた処理を記述することができます。

:
Button btn {
    X = 10;
    Y = 10;
    Width = 120;
    Height = 30;
    Function OnTouch(e) {
        Title = "Clicked!";
    }
}

クラスを操作するオペレータ

クラスに関する操作を行うオペレータとして、instanceofとsuperが用意されています。instanceofは、あるオブジェクトがあるクラスのインスタンスかどうかを確認するために利用します。

:
if (object1 instanceof TextBox) {
    MessageBox("object1はTextBoxです");
}
:

この例では、object1がTextBoxオブジェクトか、またはTextBoxを基にして定義したクラスのオブジェクトの場合にメッセージボックスが表示されます。instanceofのクラス判定は派生関係を考慮して行われる点に注意してください。CRSの全てのクラスは、Objectクラスからの派生ですので、object1 instanceof Objectはobject1が何らかのオブジェクトを指している場合、常に真となります。

superオペレータは、Function内だけで利用できるオペレータです。superにより派生元クラスのメソッドを呼び出すことが可能となります。

class ClassA extends String {
    Function ToString() {
        return "ClassA : " + super ToString();
    }
}
class ClassB extends ClassA {
    Function ToString() {
        return "ClassB : " + super ToString();
    }
}
var A = new ClassA;
var B = new ClassB;
A.Value = "test";
B.Value = "test";
print(A.ToString(), "\n");
print(B.ToString(), "\n");

実行結果

ClassA : test
ClassB : ClassA : test

この例では、B.toString()の呼び出しにより、ClassBで定義されているtoString()が実行され、superによりClassAのtoString()が呼び出されます。ClassAのtoString()ではさらにsuper toString()を実行しているため、StringのtoString()が呼び出されています。

また、superは、具体的なFunction名を指定せずに関数形式で呼び出すことができます。コンストラクタFunctionの中から関数のように呼び出すと、派生元クラスのコンストラクタを呼び出されます。通常のFunction内から呼び出すと、派生元クラスの同名のFunctionを呼び出します。

class MyClassA extends String {
    Function MyClassA(arg) {    ... (A)
     :
    }
}
class MyClassB extends MyClassA {
    Function MyClassB(arg) {
        super(arg);    ... (B)
        :
    }
}

この例では、MyClassBのコンストラクタからMyClassAのコンストラクタを呼び出しています。

クラスの定義

Biz/Browserに内蔵されているクラスを基にして、別のクラスをCRSプログラムで新しく定義(派生と言います)することができます。新しく定義したクラスは、基のクラスの特性を受け継ぎますが(継承と言います)、新しい特性を定義したり元の特性を変更することができます。

 :
class クラス名 extends 基底クラス名 {
 :
}

ユーザークラスは、classステートメントを使用して定義します。継承元のクラス(基底クラス)はextendsキーワードで指定します。

 :
class CustCode extends TextBox {
    Width = 120;
    Height = 24;
    MaxLength = 12;
    FontSize = 12;
    FontKind = $BOLD;
    Function OnGetFocus(e) {
        BgColor = $YELLOW;
    }
    Function OnLostFocus(e) {
        BgColor = $STD;
    }
}

この例では、TextBoxを基にしてCustCodeクラスを定義しています。CustCodeクラス固有の動作として、フォーカスを受けると黄色くなり、フォーカスを失うと元に戻るTextBoxを実現することができます。

アプリケーション画面を作成する場合、画面ごとに入力欄を個別に定義するよりも、このように入力項目に対応したクラスを定義して、画面にはそのオブジェクトを配置したほうが開発効率とメンテナンス性が向上します。

CustCodeクラスの利用例

 :
Form form1 {
    :
    CustCode cd1 {
        X = 10;
        Y = 10;
    }
    :
}
 :

クラス定義内に記述されたファンクションは、メソッドのように動作します。

クラスに定義されるファンクションは、定義するクラス単位に管理されます。例えば、クラスAから派生したクラスBの両方にファンクションFが定義されている場合、クラスAのファンクションFとクラスBのファンクションFは別のものとして共存します。オブジェクトから同じ名前で定義されている、こうしたファンクションを呼び出すと、クラス階層上でもっとも上位に定義されたクラスのファンクションが実行されます。

class ClassA extends String {
    Function FunctionF() {
        return "ClassA : " + Value;
    }
}
class ClassB extends ClassA {
    Function FunctionF() {
        return "ClassB : " + Value;
    }
}
var A = new ClassA;
var B = new ClassB;
A.Value = "test";
B.Value = "test";
print(A.FunctionF(), "\n");
print(B.FunctionF(), "\n");

実行結果

ClassA : test
ClassB : test

このように最上位のファンクションが呼び出される動作は、呼び出し元のスクリプトの位置には関係なく、オブジェクトのクラス階層のみにより決定されます。

class ClassA extends String {
    Function PrintFunc(text) {    ... (A)
        print("ClassA.PrintFunc : ", text, "\n");
    }
    Function FunctionA() {    ... (B)
        PrintFunc("ClassA : " + value);
    }
}
class ClassB extends ClassA {
    Function PrintFunc(text) {    ... (C)
        print("ClassB.PrintFunc : ", text, "\n");
    }
    Function FunctionB() {    ... (D)
        PrintFunc("ClassB : " + value);
    }
}
var C = new ClassB("test");
C.FunctionA();    ... (X)
C.FunctionB();    ... (Y)

実行結果

ClassB.PrintFunc : ClassA : test
ClassB.PrintFunc : ClassB : test

この例では、(X)のFunctionAの呼び出しにより、（B）と（C）のファンクションが実行されます。(Y)のFunctionBの呼び出しでは、（D）と（C）のファンクションが実行されます。これは、ClassAを派生させたClassBによりClassAのPrintFuncを差し替えるように動作します。また、次のようにClassBを派生させてClassCを定義してPrintFuncを再定義すると、さらに別の動作を与えることができます。

class ClassC extends ClassB {
    Function PrintFunc(text) {
        //.MessageBox("ClassC.PrintFunc : " + text);
    }
}
var C = new ClassC("test");
C.FunctionA();

実行結果

コンストラクタ

全てのクラスは、コンストラクタと呼ばれるクラス名と同じ名前を持った初期化専用のメソッドを持っています。コンストラクタは、クラスのインスタンス生成時に自動的に呼び出されます。

コンストラクタがどのような動作を行うか、また、どのような引数を採るかはクラスにより異なります。例えば、Stringクラスのコンストラクタに文字列を渡すと、その文字列でStringオブジェクトが初期化されます。

var v = new String("test");
print(v, "\n");

実行結果

test

オブジェクトの初期化以外のコンテキストでコンストラクタを呼び出すことはできません。例えば以下のようなスクリプトはエラーとなります。

var v = new String();
v.String("test");
print(v, "\n");

クラスを定義する際、コンストラクタは通常のファンクションと同じように定義しますが、ファンクション名をクラス名と同じ名前にします。

コンストラクタ定義の例

class MyString extends String {
    Function MyString(text) {
        super(text);
        value = ">>" + Value + "<<";
    }
}

コンストラクタを定義しない場合、派生元クラスのコンストラクタと同じコンストラクタが定義されたように振舞います。

class MyString extends String {
    Function MyString(text) {    ... (A)
        super(text);
        value = ">>" + Value + "<<";
    }
}
class MyString2 extends MyString {
     :
    (コンストラクタ ファンクション未定義)
     :
}
 :

var c = new MyString2("test");    ... (B)

この例の場合、(B)のnewで呼び出されるコンストラクタは(A)となります。

コンストラクタの引数はnew演算子によるオブジェクトが生成と、super()ステートメントによる派生元クラスのコンストラクタ呼び出しで指定することができます。

var v = new MyString("hello");

コンストラクタが呼び出された場合、必ず派生元クラスのコンストラクタをsuper()ステートメントにより呼び出す必要があります。

class MyString extends String {
    Function MyString(text) {
        super(text);
        value = ">>" + Value + "<<";
    }
}

通常は、コンストラクタの先頭でsuper()を実行するようにしてください。コンストラクタにsuperステートメントが含まれない場合、自動的に引数なしでsuperを呼び出す処理が先頭に挿入されます。

superステートメントを含むコンストラクタが、例外や制御文により派生元のコンストラクタを呼び出さずに復帰した場合、オブジェクトの生成を中断し初期化途中のオブジェクトは破棄され、例外がthrowされます。

インスタンス生成時の動作

パッケージとクラス定義内のスクリプトの実行契機と変数スコープが通常のCRSスクリプトは異なることに注意してください。

01: package Package1 {
02:    Number Pdata1 = 10;
03:    String Pdata2 = "sample " + str(Pdata1);
04:    class MyClass extends String {
05:        MyData Cdata1 = Package1.Pdata1;
06:        String Cdata2 = "sample " + str(Cdata1);
07:        Function MyClass(t, d1, d2) {
08:            super(t);
09:            Cdata1 = d1;
10:            Cdata2 = d2;
11:        }
12:        Function FunctionA() {
13:            print(value, Package1.Pdata1, Cdata1, Cdata2, "\n");
14:        }
15:    }
16:    class MyClass2 extends MyClass {
17:        Number Cdata3 = 20;
18:        Function MyClass2(t) {
19:            super(t, 20, "hello");
20:        }
21:    }
22: }

このようなパッケージをimportした場合、次のように動作します。

パッケージ内のオブジェクト定義部分 （2行目から3行目）

パッケージのロード時に実行されます。この部分の変数スコープはPackage1です。従って、Pdata2の初期値の設定にPdata1を使う事ができます。

クラス定義部分( 4行目から22行目)

パッケージのロード時点ではコンパイルとクラス名の登録が行われます。実行は行われません。クラス定義内に文法的なエラーがある場合にはロード時に検出されますが、更新するオブジェクトが見つからないなどの実行時エラーは、MyClassのインスタンス生成時まで検出されないことに注意してください。

5行目でMyDateという未定義のクラスが使用されていますが、コンパイル時にはクラスの有効性は検査されないため、MyClassの最初のインスタンス生成時までにMyDataクラスが定義されればエラーとはなりません。

この部分の変数スコープは、クラスのインスタンスとなります。従って、インスタンス生成の状況により、オブジェクトツリーに関連するスコープが変化することに注意してください。13行目で2行目で定義されているPdata1の参照を期待していますが、実際にどのオブジェクトが参照されるかは実行時の状況により不定となります。

/* パッケージ名と同じ名前のオブジェクトの影響２ */
String Package1 {
    String Pdata1 = "ABC";
    MyClass C;
}
：
Package1.C.FunctionA();

この場合、FunctionAを実行中のthisはPackage1.Cとなり、FuntionA内からPackage1を参照すると、パッケージ名のPackage1ではなく、StringのPackage1が参照されます。その結果、Pdata1は、2行目で定義されたNumberオブジェクトではなく、StringのPdata1が参照されます。

また、次の場合、

/* パッケージ名と同じ名前のオブジェクトの影響２ */
String foo {
    MyClass C {
        String Package1;
    }
}
：
foo.C.FunctionA();

変数スコープの原点であるCの直下にあるPackage1が検索ルールに従って優先的に検索されるため、Stringのfoo.C.Package1.Pdata1が参照されますが、未定義となります。

このように、クラス定義内からクラス外部のオブジェクトを参照する場合、スコープ原点がインスタンスになる点に特に注意が必要です。パッケージ名よりも子オブジェクトや先祖のオブジェクトの検索が優先される仕様により、今回の例で期待したようにMyClass.FunctionAから、Package1.Pdata1を確実に参照する方法はありません。

パッケージに定義されているクラス、MyClass2のインスタンスを生成する場合、以下のように実行されます。

1.クラスのブレース内にインラインで記述された部分が、派生元から派生先 (String→MyClass→MyClass2)の順に実行されます。

5行目： MyNumberオブジェクトが生成され、10に初期化されます

6行目： Stringオブジェクトが生成され、"Sample 10"に初期化されます

7行目： MyClassのコンストラクタが定義されます。まだ実行は行われません。

12行目： FunctionAが定義されます。

17行目： Numberオブジェクトが生成され、20に初期化されます。

18行目： MyClass2のコンストラクタが定義されます。まだ実行は行われません。

2.派生先から派生元 (MyClass2→MyClass→String)の順にコンストラクタを検索し、最初に見つかったコンストラクタが呼び出されます。

18行目： MyClass2のコンストラクタが実行されます。

7行目： 19行目のsuper()により、MyClassのコンストラクタが実行されます。

---： 8行目のsuper()によりStringのコンストラクタが実行されます。

以下、呼び出しシーケンス順に復帰します。

クラス定義の留意点

クラス名

クラス定義は必ずパッケージの中に定義する必要があります。パッケージに属さないクラスを定義することはできません。

クラス名は、Biz/Browserにロードされる全てのクラスで一意な名前にする必要があります。現在のCRSでは異なるパッケージであっても重複したクラス名を使用することはできません。また、パッケージ名によるクラス名の修飾にも対応していませんので、クラス名の命名には重複がないように注意してください。

また、クラスはBiz/Browserにロードされると、セッションの切断まで解放されることはありません。この点からもクラス名の命名は、コーディング規約等で重複やオブジェクト名とのバッティングを起こさないようにご注意ください。

派生関係

クラスは必ず既存のクラスを基にした派生として定義する必要があります。基本となるクラスが何もないまったく新しいクラスを定義することはできません。CRSにより定義したクラスを更に派生させて新しいクラスを定義することは可能ですが、新しいクラスの定義位置よりも前に、基となるクラスが定義されている必要があります。

スクリプトにより定義されたクラスの制約

現在のCRSでは、クラス定義に多くの制約があります。制約の多くは内蔵されているクラスの挙動とスクリプト定義のクラスの挙動の違いによるものです。クラスを利用する場合、これらの制約を考慮して設計する必要があります。

新しく定義したクラスは、配列として利用することはできません。配列として利用する必要がある場合、Arrayオブジェクトに格納するようにしてください。この制約は、CheckBoxクラス（チェックボックスを表示するクラス）の選択肢として使用する、CheckItemクラスなど、配列化が強制されているクラスを派生して新しいクラスを定義しても実際には利用できないことを意味します。

新しく定義するクラスに、内蔵されているクラスと同じように動作するメソッドを定義することはできません。

Functionを定義することで、ほぼメソッドと同じように機能させることは可能ですが、メソッドと異なり再計算式の中で利用したり、引数の数を規制したりすることはできません。また、内蔵されているクラス間の連携で呼び出されるメソッド（例えば、xmlDocument.load()メソッドは、引数で渡されるオブジェクトのread()メソッドを呼び出します）をFunctionで置き換えることはできません。

新しく定義するクラスに、内蔵されているクラスと同じように動作するプロパティを定義することはできません。

子オブジェクトを定義することで、ほぼプロパティと同じように動作しますが、細部の動作が異なります。

プロパティはアクセス制御が行われますが、子オブジェクトは行われません。プロパティは削除不可能ですが、子オブジェクトは削除可能です。また、プロパティ設定によりオブジェクトの動作が起動するものがあります（ListBoxのValueプロパティのセットで選択位置が変り、ListItemの対応するSelectedプロパティが更新されるなど）が、子オブジェクトでこうした挙動を表現することはできません。

新しく定義するクラスに、内蔵されているクラスと同じように動作するイベントを定義することはできません。

ユーザ定義イベントを発行することは可能ですが、内蔵しているイベントと異なりBiz/Designerのイベントビューに表示されることはありません。

新しく定義するクラスに、静的メソッド(Math.abs()のように、インスタンスを必要としないメソッド)や、クラス定数(FileSystem.OPEN_READなど)を定義することはできません。これらに代わりパッケージ内のオブジェクト定義を利用するようにしてください。パッケージ内のFunctionはパッケージ名.ファンクション名で呼び出し可能で、オブジェクトは、パッケージ名.オブジェクト名で参照できます。

クラス定義内のFunctionはクラス別に管理されますが、子オブジェクトをクラス別に管理することはできません。


CRSアーカイブ

CRSアーカイブとは

CRSアーカイブは、拡張子carを持つファイルで、複数のファイルを圧縮してひとつのファイルにまとめた物です。CRSアーカイブは略してCAR(Crs ARchive)ファイルと呼びます。関連するプログラムやデータをCARファイルに収めることにより、通信オーバーヘッドの低減や、暗号化してプログラムを秘匿することなど、多くのメリットがあります。CARファイルのより詳しい内容と作成方法については、「Biz/Designer オペレーションガイド」の「CRSアーカイブ(CAR)の利用」の章を参照してください。ここでは、用意されたCARファイルの利用方法について説明します。

CARファイルのロード

CARファイルは、URLによって指し示す場所よりimport文によってロードします。

import car-file-url [ , version ] ;

car-file-urlで指定するURLの拡張子部分が.carまたは.car41の場合、import文はロードする対象がCARファイルと見なして動作します。拡張子がこれら以外の場合には、たとえ内容がCARファイルであってもCARファイルとは見なされず、正常にロードすることはできません。

省略可能なオプション、versionを指定することにより、特定のバージョンのCARファイルをロードすることができます。

CARファイルのバージョンは、Biz/Designerの<プロジェクト(P)>、<設定(S)>で表示される「プロジェクトの設定」ダイアログより、「プロジェクト情報」タブ内の「バージョン番号(S)」に指定します。

versionを指定した場合、すでにローカルコンピュータにキャッシュされたCARファイルがある場合に、そのバージョン番号と照合して、不一致となったとき、CARファイルのキャッシュおよび、そのCARファイルから取り出されてキャッシュされた関連ファイルを全て削除してから、car-file-urlで指示された場所より新しくダウンロードを行います。

importの動作

CARファイルをロードするとき、次の動作が行われます。

1. importに指定したURLが既にメモリ上にロードされているか検索します。

検索した結果、メモリ上に同一URLを持つCARファイルが見つかり、importでversionが指定されていた場合、バージョンの照合が行われます。その結果バージョンが不一致となったとき、CRS-405例外がthrowされ、処理は中止されます。

メモリ上に同一URLを持つCARファイルが見つかり、version番号の指定がない場合、既にロード済みとなり何もせずに復帰します。

2. CARファイルイメージの取得

メモリ上に指定URLのCARファイルが見つからない場合、次の順序で検索してCARファイルを取得します。

(1) キャッシュ

importで指定したURLをキャッシュから検索します。

(2) 既にメモリ上にロードされている別のCARファイルの内部

importで指定したURLを解析し、別のCARファイルの内部を指すURLと識別した場合、認識したCARファイルをメモリ上から検索し、含まれる指定URLのCARファイルを取り出します。

例えば次のようなケースです

import "http://server/lib1.car";

import "http://server/lib1.car/subdir/lib2.car";

この例では、先にlib1.carがロードされ、つづくimportでlib1.car内部を指すURLでlib2.carが指定されているため、lib2.carはlib1.car内部から検索されます。

(3) WEBサーバなどの外部リソース

上記の検索で、対象CARファイルが見つからない場合、指定URLからのダウンロードを行います。

以上の検索で指定されたCARファイルが見つからない場合、原因を示す例外がthrowされ、import処理は中断されます。

3. 取得したCARファイルの検証

圧縮されているCARファイルのヘッダ情報などを検証し、正規のCARファイルであることを確認します。不正なファイルと認識された場合には、原因を示す例外がthrowされ、import処理は中断されます。

4. バージョンの確認

import文で、オプションのversionを指定した場合、取得したCARファイルに含まれるバージョン情報と照合されます。

照合の結果バージョンが不一致となったとき、CARファイルがキャッシュから取得されている場合には、CARファイルおよび、そのCARファイルから取り出されたファイルのキャッシュを全て削除し、「2 CARファイルイメージの取得」処理に戻り、キャッシュ以外からの再取得が試みられます。

キャッシュ以外から取得したCARファイルのバージョンが不一致の場合、CRS-406例外がthrowされ、import動作は中断します。

5. CARファイルのメモリ展開

以上の処理で正常にロードされたCARファイルは、内部に含まれるファイルのディレクトリ情報と共にメモリ上に維持されます。以降の処理でロードされたCARファイルに含まれるファイルが要求された場合、ファイルはこのメモリイメージから取り出されることになります。

6. project.xmlの処理

CARファイルに含まれるproject.xmlを読み込み、CARファイルの作成元となったプロジェクト情報を取得します。

プロジェクト情報に「インポートCRSファイル」の指定がある場合、そのURLをimport文と同等の処理によりロードします。

CARファイルの整合性維持

CARファイルもNetObject.GETと同様のルールによりキャッシュされます。また、CARファイルの内部に含まれるファイルをGETメソッドによりロードした場合も同様に、キャッシュの対象となります。従って、CARファイルとその内部ファイルは、それぞれが別々にキャッシュされることになります。

ある意味、CARファイルは2重にキャッシュされる事になります。また、CARファイルがロードされると、メモリ上にイメージが維持されるため、サーバ上のCARファイル、メモリ上のCARファイル、CARファイルのキャッシュ、CARファイルに含まれるファイルのキャッシュと、ひとつのCARファイルは複数のコピーを持つことになります。この事は、CARフィルを正しく使用するためには、少し注意が必要となることを示唆しています。CARファイルに関する整合性を保ち、正しく運用するためには、次のルールを考慮してください。

1. メモリ上にロードされたCARファイルを削除する方法はありません。

CARファイルのバージョンをアプリケーションで管理する場合、CARファイルにバージョンを示すファイルを収めて、その値で判断したくなりますが、そのような事は実現できません。それは、CARファイルの中身を取り出すときには、既にCARファイルはメモリ上にロードされているためです。仮に取り出したファイルに記載されているバージョン番号が、期待した番号ではない場合に、CARファイルのキャッシュを削除したとしても、CARファイルは既にメモリ上に維持されている訳ですから、新しいバージョンのCARファイルがダウンロードされるのは、次回起動時になります。

不正なバージョン管理の例

import "/lib1.car";
var lib_ver = getHttpSession().Get("/lib1.car/ver.txt");
if (lib_ver.Read() != "3.0") {
    //.DeleteCache("/lib1.car");
    import "/lib1.car";
}
Get("/lib1.car/main.crs");

この例のDeleteCacheでは、キャッシュは削除されますが、メモリ上にロードされているlib1.carは有効なままです。getにより読み込まれる、main.crsは、メモリ上のCARファイルから読み込まれます。

2. CARファイルから取り出されたファイルのキャッシュだけを削除しても、有用な意味はありません。

CARファイルがメモリ上または、キャッシュに維持されている場合、CARファイルから取り出したファイルのキャッシュを削除しても、再びメモリ上またはキャッシュ上のCARファイルからロードされます。キャッシュを削除する場合、必ずCARファイルのキャッシュを削除する必要があります。

3. CARファイルのキャッシュを削除すると、そのCARファイルから取り出されたファイルのキャッシュも同時に削除されます。

4. importでバージョンを指定する場合、同じCARファイルのimportでは、すべて同じバージョンの明示が必要です。

ひとつのCARファイルを複数のCRSファイルでimportする事はよくあることです。しかし、そのような場合にバージョン番号の指定は必ず一致させないと、例外が発生します。

例外が発生する例

--- file1.crs ---

import "lib1.car","ver1.0";
    ：

--- file2.crs ---

import "lib1.car","ver2.0";
    ：

上の例では、後に実行したほうのimport文はバージョン不一致で例外を起こします。

--- file1.crs ---

import "lib1.car";
    ：

--- file2.crs ---

import "lib1.car","ver2.0";
    ：

この例では、file2.crsが後に実行された場合、file1.crsが異なるバージョンをロードした時に限って例外を起こします。

CARファイルを使った運用で、最も容易にバージョン管理を行う方法は、import文のバージョン指定ですが、先にあげた例のように、複数のCRSでimportしている場合には、複数のCRSをメンテナンスする必要があり、別の面で非合理的です。

通常のCRSファイルに対するバージョン管理と同じ方法でCARファイルのバージョンを維持することも可能です。

例

----- lib1_version.crs -----
String lib1_version = "2.0.0.1";

----- app.crs -----
String lib1_curVersion = "2.0.0.2";
Get("lib1_version.crs");
if (lib1_curVersion != lib1_version) {
    //.DeleteCache("lib1_version.crs");
    //.DeleteCache("lib1.car");
    Get("lib1_version.crs");
}
import "lib1.car"

この方法の場合、CARファイルの更新にあわせて、lib1_version.crsを常に正しく維持することが重要となります。また、import文のバージョン指定に比べて、記述が煩雑となり多くのCARファイルのバージョンを管理するためには、さらに多くの記述が必要となります。

どちらが優れている方法とは、一概に決めることはできませんので、アプリケーションの特性に合わせて適した方法を選択してください。


オブジェクト

オブジェクトはクラスを実体化したもの（インスタンス）です。画面を構成する部品（ボタン、ウィンドウなど）、印刷される文字及び、処理されるデータの各要素は、すべてオブジェクトとして管理されます。

オブジェクトの階層構造

Biz/Browserは"//"という名前のオブジェクト（Rootオブジェクト）を頂点とした階層構造でオブジェクトを管理します。ほとんどのオブジェクトは、この階層構造に含まれます。Rootオブジェクトは階層構造の基点となりただ1つだけ存在するBiz/Browserのウィンドウに対応したオブジェクトです。

Rootオブジェクトの子オブジェクトとして「SYSオブジェクト」（システムデータ）が常に存在し、その他にアプリケーションによって定義される画面やデータを表すオブジェクトが存在します。

その他に、"//"（Rootオブジェクト）を基点とする階層構造に属さない一時的なオブジェクトも存在します。

すべてのオブジェクトは、参照関係により維持されており、あるオブジェクトがほかのオブジェクトから参照されている間は削除されることはありません。"//"（Rootオブジェクト）を基点とする階層構造に接続しているオブジェクトは、常に親となるオブジェクトから子オブジェクトが参照されているため、明示的に親と子の参照関係を切断しない限り維持されます。

どこからも参照されなくなったオブジェクトは、一時的にメモリ上に滞留しますがCRSインタプリタのガーベジコレクタにより回収され開放されます。

オブジェクトの種類

Biz/Browserには多くのクラスが内蔵されています。クラスはDisplayObjectクラスから派生する表示系のクラス（以下DisplayObject）とそれ以外のデータ系のクラス（以下DataObject）に大別することができます。

DataObjectはデータの値を管理するための基本的なクラスで、アプリケーションが処理するデータを論理的な階層構造を持って管理することができ、クライアントとサーバ関のデータ通信あるいはクライアント内に保持される一時的な作業用の領域として利用することができます。

DisplayObjectはデータ系のオブジェクトの機能に加えて、画面または帳票上にオブジェクトの階層構造と同じ重なりをもって表示されます。これらのオブジェクトはユーザに対して、情報の表示及びデータ入力のインターフェースを提供します。

DisplayObjectとDataObjectは次の方法により互いにデータの伝播を行うことができます。

・ユーザによる画面操作の結果発生する「イベント」をオブジェクトに定義される「イベントハンドラ」が捕らえて処理する

・オブジェクト間の関係を表す「参照演算子（&=）」による自動再計算を設定する


イベントとイベントハンドラ

ユーザによるキー入力、タッチ操作、表示内容の変化、状態の変化など、さまざまな状況でイベントが発生します。発生したイベントはイベントキューを経由して対応するイベントハンドラに渡されます。イベントハンドラでは、オブジェクトのプロパティ変更やメソッドの実行などイベントの内容に応じた挙動がユーザアプリケーションで定義できます。

イベントハンドラは、"On"+イベント名という名前のFunctionとして定義します。CRSの実行エンジンは、イベントの伝播先にこのような名前で定義されているFunctionを探し、イベントを伝播していきます。

例）Touchイベントを受け取るイベントハンドラ

Function OnTouch(e) {
    Title = "Hello!";
}

イベントハンドラには、Eventオブジェクトが引数として渡されます。Eventオブジェクトのプロパティによりどのようなイベントが発生したかを調べることができます。

e.From イベントの発生元オブジェクトのリファレンス

e.Reason イベントの種類を示す番号

e.EventName イベントの種類を示す名前

例えばテキスト入力でキーボードフォーカスが失われたとき、未入力の場合背景を赤くするためには以下のように記述します。

Function OnLostFocus(e) {
    if (e.From instanceOf TextBox) {
        if (e.From.Value == "") {
            e.From.BgColor = $RED;
        } else {
            e.From.BgColor = $STD;
        }
    }
}

イベントは、イベントハンドラにより捕捉されるまで"//"（Rootオブジェクト）を頂点とするオブジェクトツリーを上位に向かって伝播していきます。

伝播の過程でイベントハンドラにより捕捉されるか、最終的にRootオブジェクトにまで到達したときに消滅します。

イベントハンドラ内でPostEventメソッドを引数なしで呼び出すことで、イベントハンドラが捕らえたイベントを再度イベントの伝播の流れに戻すことができます。

イベント処理のタイミング

イベントは、常にイベントキューを経由します。イベントキューへのイベント格納と、イベントハンドラの実行は非同期で行われます。

つまり、イベントが発生したタイミングとイベントハンドラが実行されるタイミングは厳密には一致せず、実行時のコンピュータの状態により変動します。例えば、3個の連続したイベントが発生したとき、コンピュータの状況によりイベントハンドラの実行タイミングは、以下のように変動します。

ケース１

1個目のイベントがキューに格納された後、イベントハンドラが起動される。

ケース２

2個目のイベントがキューに格納された後、イベントハンドラが起動される。

ケース３

すべてのイベントがイベントキューに格納された後、イベントハンドラが起動される。

通常、イベントの発生は何か状態が変化したとき（例えば、リストボックスの選択位置を変更したときなど）に発生します。連続したイベントは、状態が連続して変化していることになります。上記のケースように連続したイベントで、イベントの要因となった状態をスクリプト中で参照すると、イベントハンドラが実行されるタイミングにより、参照した結果は異なることがあります。

例えば、リストボックスの選択位置変更の場合、ケース1の場合、リストボックスの選択位置を示すValueプロパティを参照すると、1個目のイベントによって設定された値が参照されます。ケース3の場合、3個目のイベントで設定された選択位置が参照されます。最終的にはどのケースでも、イベントと同じ数だけイベントハンドラは起動されますが、オブジェクトプロパティの現在値とイベントを起こしたときの状態は必ずしも一致しないことがある点は、特に注意してください。

イベントが発生したときのより詳細な状況を特定する必要がある場合は、イベントハンドラに渡されるEventオブジェクトを参照してください。例えば、前述のリストボックスの例では、イベントオブジェクトのFromプロパティに、そのイベントを起こしたときに選択されているListItemオブジェクトのリファレンスが格納されています。

/* 間違った例です。イベント発生時ではなくイベントハンドラ実行時の選択位置を参照しています */
Function OnTouch(e) {
    print("選択位置は", ListBox1.Value, "です\n");
}

/* 正しい例です。イベント発生時の選択位置を参照しています */
Function OnTouch(e) {
    print("選択位置は", e.From.Index, "です\n");
}

イベントの種類やイベントを起こしたオブジェクトの種類により、さまざまな付随情報がイベントオブジェクトに付加されてイベントハンドラに渡されます。イベントハンドラの実行で、ここで説明したような実行タイミングによる影響を抑止するためには、必ずイベントオブジェクトの付加情報を参照して処理するようにしてください。

イベントの順序性

イベントは、イベントを発生させた動作と同じ順序でイベントキューに格納されます。また、イベントキューに格納されたイベントは、同じ順序で取り出されてイベントハンドラに渡されます。この順序は、常に一定です。

しかし、イベントを発生させる動作がいつも同じ順序で行われる保証はありません。例えば、LostFocusイベントの次に、別のオブジェクトのGetFocusイベントが必ず発生するという前提は誤りです。また、画面の操作により発生するイベントと、CRSスクリプトで発行したイベントのどちらが先になるのかも状況により変わるため、特定の発生順序を前提とした処理は誤りです。

例えば、Buttonオブジェクトを押下したとき発生する可能性のあるイベントは、GetFocusとTouchイベントです。しかし、はじめからButtonにフォーカスがあるときGetFocusは発生しません。また、OnGetFocusイベントハンドラ内で、ユーザ定義イベントを発行したとき、Touchイベントとユーザ定義イベントのどちらが先にイベントキューに格納されるかは不定です。これは、Touchイベントの発生要因となる、マウスボタンを離す操作と、CRSスクリプトの実行でPostEventメソッドを実行する処理で、どちらが先に行われるかを決定する事ができないためです。

イベントハンドラは、どのような順序でイベントが発生しても、正しい動作となるように考慮する必要があります。イベントの発生順序に依存する必要がある場合、そのイベントを発行する要因が、常に同じ順序で発生することを検証してください。ただし、Biz/Browserに内蔵されるすべてのクラスは、複数のイベントの発生順序を保障していないため、CRSスクリプトで発行するユーザ定義イベントのみ、発生順序が保障される可能性があります。


ユーザ定義イベント

オブジェクトに定義されているTouchイベントなどと同様に、ユーザ定義のイベントを利用することができます。

FormとDialogなどでユーザ定義イベントにより情報伝達を行うことで、FormとDialogの結合がより疎結合となり、開発効率やデバッグ効率が高まります。

以下に単純なユーザ定義イベントの発行例を示します。

単純なユーザイベントの発行
Function OnTouch(e) {
    :
    PostEvent(new Event(UserEvent + 1, "CodeSelect"));
    :
}

UserEvent+1はイベント番号、"CodeSelect"はイベント名となります。UserEventで定義されるイベント番号よりも小さい番号はシステムで予約されているのでユーザイベントで利用することはできません。

イベント番号を使用しない場合、次のように記述することも可能です。

単純なユーザイベントの発行
Function OnTouch(e) {
    :
    PostEvent(new Event("CodeSelect"));
    :
}

この書式の場合、"CodeSelect"部分の引数は、必ず文字列定数を記述する必要があります。

上記のイベントは、次のようなイベントハンドラで捕捉できます。

Function OnCodeSelect(e) {
    :
}

イベントに付随するデータを定義する場合、以下のようにします。

データ付きユーザイベントの発行
Function OnTouch(e) {
    :
    var userEvent1 = new Event(UserEvent + 1, "CodeSelect") {
        String data1;
        String data2;
    }
    userEvent1.data1 = "abc";
    userEvent1.data2 = "123";
    PostEvent(userEvent1);
    :
}

上記のイベントは、次のようなイベントハンドラで捕捉できます。

Function OnCodeSelect(e) {
    if (e.data1 == "abc") {
        :
    }
    :
}


ファンクション（ユーザ定義関数）

一連の処理をまとめたファンクション（ユーザ定義関数）を定義する事ができます。ファンクションは、いくつかの引数を受け取り、処理結果を返す事ができます。ファンクションは、オブジェクトの持つメソッドと似ていますが、特定のオブジェクトには結びついていません。また、メソッドのように引数の数の規定もありません。

ファンクションの定義例

Function func1(p1, p2) {
    return p1+p2;
}

呼び元

var a1 = 2;
var a2 = 3;
func1(a1, a2);

この例は、2つの引数を受け取り、合計を返すファンクションです。

ファンクションの名前は、オブジェクトの名前と同じ以下の命名規則が適用されます。

1. 英字または日本語の文字で始まること

2. ２文字目以降は英数字、アンダースコア(_)または日本語であること

3. 全体の長さが30バイト以内であること

ファンクションは、オブジェクトと同じように//から始まるオブジェクトツリーの一部として識別する事ができます。例えば、次のように記述した場合、//.Form1.Button1.Func1()として呼び出す事ができます。

Form Form1 {
    :
    Button Button1 {
        :
        Function func1() {
            return 10;
        }
    }
}

同じ名前のオブジェクトやファンクションが同じ階層位置に既に定義されている場合、先に定義されていたオブジェクトやファンクションは、削除され後から定義されたファンクションに入れ替わります。

ファンクションは、0個以上の任意の数の仮引数を持つ事ができます。上限に制約はありません。ファンクションの定義と呼出し元で、必ずしも引数の数が一致する必要はありません。定義よりも呼び出し元で少ない引数を渡した場合、後続の仮引数にはnull値が渡されます。また、定義よりも多い引数を渡した場合、定義数を超えた引数は無視されます。

可変個の引数を定義する事はできません。可変個の引数が必要な場合、上記のように最大限想定できる数の引数を定義し、実際に渡された引数をnull値との比較により判断するか、Arrayや配列オブジェクトを利用する事になります。

ファンクションは、return文により戻り値を返す事ができますが、必須ではありません。return文で戻り値を返さない場合、ファンクションの戻り値は不定となり意味のある結果は返されません。


式と演算子

式

オブジェクトはデータを管理する事ができますが、データの値として計算式を用いる事ができます。計算式を用いた場合、計算結果がオブジェクトの値となります。計算式はクライアント内で完結して動作するため、ネットワーク通信などのオーバヘッドを必要とせず高速に動作します。ユーザの対話的な操作で良好なレスポンスを必要とする場合、サーバに対して処理のリクエストを行う方法を用いますと十分な応答性が得られない事が多いですが、そのような場面でもできるだけクライアント内で完結するように、イベントハンドラやここで説明する計算式を用いる事ができないか検討すると良いでしょう。特にサーバ側の資源（データベースなど）を必要としない簡易な値の導出には、式を用いる事により迅速な応答性が得られ、サーバやネットワークに対する負荷も発生しません。

次の例では、ユーザが入力する数量と単価より、式を使用して金額と消費税を表示しています。

例

URIAGE.KINGAKU &= URIAGE.SURYO * URIAGE.TANKA;

URIAGE.ZEI &= URIAGE.KINGAKU * 0.05;

URIAGE.TOTAL &= URIAGE.KINGAKU + URIAGE.ZEI;

*: 掛算をする演算子

+: 足算をする演算子

&=: 参照を示す演算子

上記の例をDisplayObjectに関連させるとSURYOまたはTANKAを画面から入力する事によりKINGAKU,ZEI,TOTALが計算され、画面上に計算結果が表示される事になります。この動作によりデータ通信が発生する事はなく、良好な応答性が得られます。

他に、以下の演算子を利用することができます。

優先度 | 種類 | 記号 | 評価順
高 | new演算子 | new | 左→右
 | メンバ参照演算子 | .(ピリオド) | 左→右
 | 配列演算子 | [ と ] | 左→右
 | 括弧演算子 | ( ) | 左→右
 | 左加算、左減算 | ++, -- | 左→右
 | 右加算、右減算 | ++, -- | 左→右
 | 単項演算子 | -, +, ! | 左→右
 | 算術演算子 | *, /, % | 左→右
 | 算術演算子 | +, - | 左→右
 | 関係演算子 | >, >=, <, <= | 左→右
 | 等価演算子 | ==, !=, ==&, !=& | 左→右
 | 論理結合演算子 | &, &&, |, || | 左→右
 | 3項演算子 | ?, : | 右→左
 | 代入演算子 | +=, -=, *=, /=, %= | 右→左
 | 代入演算子 | =, &=, << | 右→左
低 | カンマ演算子 | , | 左→右


new演算子

書式

newオブジェクトの型[ "(" [パラメータ1 [,パラメータ2[ ,...]]] ")"]

解説

new演算子はオブジェクトの型で指定した種類のオブジェクトを新しく生成します。

パラメータは、オブジェクトの種類により異なるコンストラクタパラメータです。new演算子により作成できるオブジェクトは、画面に表示されるコントロールを持たないオブジェクトに限定されます。

new演算子により作成したオブジェクトは、//から始まるオブジェクトツリーに接続されていません。スコープから外れるときに自動的に削除されます。

newにより作成したオブジェクトをスコープから外れても維持したい場合、Appendメソッドによりツリーに接続してください。

例

var a = new String("sample");


加算・減算演算子

書式

オブジェクト[.プロパティ]++    左加算
オブジェクト[.プロパティ]--    左減算
++オブジェクト[.プロパティ]    右加算
--オブジェクト[.プロパティ]    右減算

解説

左加算演算子では、左辺の値を評価したあと左辺のプロパティに1加算します。

左減算演算子では、左辺の値を評価したあと左辺のプロパティを1減算します。

右加算演算子では、右辺のプロパティに1加算し、その値を評価値とします。

右減算演算子では、右辺のプロパティを1減算し、その値を評価値とします。

var a = 10;
print("a  ", a, "\n");
print("a++", a++, "\n");
print("a  ", a, "\n");
print("a--", a--, "\n");
print("a  ", a, "\n");
print("++a", ++a, "\n");
print("a  ", a, "\n");
print("--a", --a, "\n");
print("a  ", a, "\n");

=== 実行結果　===

a   10
a++ 10
a   11
a-- 11
a   10
++a 11
a   11
--a 10
a   10


括弧演算子

解説

括弧演算子は演算順位を明示的に指定する場合に使用します。( )は必ず組で使用され、式を評価する時に括弧内の式は括弧外より優先して評価されます。

括弧演算子を利用した例を以下に示します。

括弧演算子の使用例

URIAGE.KINGAKU = (URIAGE.TANKA + URIAGE.COST) * URIAGE.SURYO

この例ではSURYOの乗算よりもTANKA+COSTの加算が優先して評価されます。


単項演算子

書式

-オブジェクト[.プロパティ]    マイナス符号演算子
+オブジェクト[.プロパティ]    プラス符号演算子
!オブジェクト[.プロパティ]    論理否定演算子

解説

マイナス符号演算子は、右辺の評価値を数値として再評価し、符号を反転します。

プラス符号演算子は、マイナス符号演算子の対として含まれていますが意味のある動作はありません。

論理否定演算子は、右辺の評価値をブール値として再評価し、結果を反転します。

単項演算子の例

var a = 100;
var b = -100;
var c = 0;
print(" a", a, "\n");
print(" b", b, "\n");
print(" c", c, "\n");
print("-a", -a, "\n");
print("-b", -b, "\n");
print("+a", +a, "\n");
print("+b", +b, "\n");
print("!a", !a, "\n");
print("!b", !b, "\n");
print("!c", !c, "\n");

=== 実行結果 ===
 a 100
 b -100
 c 0
-a -100
-b 100
+a 100
+b -100
!a 0
!b 0
!c 1


算術演算子

解説

算術演算子は２つの式の間に適用される演算を定義します。式を評価する時の優先度は *, /, %, +, - の順です。

算術演算子の使用例

URIAGE.TANKA * 1.05


関係演算子

書式

式１ >  式２
式１ >= 式２
式１ <  式２
式１ <= 式２

解説

関係演算子は左辺値と右辺値の大小関係を比較した結果をTrueまたはFalseで返します。比較の条件は比較対照の式の型によって以下のように分類できます。

String　　文字データの先頭からのコード値の大小を比較
Number　　値の大小を比較
Date　　　日付及び時刻を比較

左辺と右辺の型が異なる場合、以下のように型変換が行われ比較されます。

左辺の型 | 右辺の型 | 説明
String | Number | 左辺のStringをNumberに変換します
String | Date | 左辺のStringをDateに変換します
Number | Date | 右辺のDateをNumberに変換します
null | String | 常にfalse
null | Number | 常にfalse
null | Date | 常にfalse
オブジェクト | - | 左辺のオブジェクトのデフォルトプロパティを使い上記変換を行います

左辺と右辺の型が上表と逆の場合も同様に変換されます。

関係演算子の例

1200 < 1000         Falseと評価
"abc" < "def"       Trueと評価
URIAGE.TANKA = 100;
URIAGE.TANKA < 200  Trueと評価


等価演算子

書式

式１ ==  式２
式１ !=  式２
式１ ==& 式２
式１ !=& 式２

解説

等価演算子は優先順位が低いことを除けば関係演算子と同等です。比較の条件もこれに従います。

==は式１と式２が等しい場合trueとなります

!=は式１と式２が等しくない場合trueとなります

==&は式１と式２が同じオブジェクトのインスタンスを指す場合trueとなります

!=&は式１と式２が同じオブジェクトのインスタンスを指さない場合trueとなります

左辺と右辺の型が異なる場合、以下のように型変換が行われ比較されます。

左辺の型 | 右辺の型 | 説明
String | Number | 左辺のStringをNumberに変換します
String | Date | 左辺のStringをDateに変換します
Number | Date | 右辺のDateをNumberに変換します
null | String | 常にfalse
null | Number | 常にfalse
null | Date | 常にfalse
null | null | 常にtrue
オブジェクト | null以外 | 左辺のオブジェクトのデフォルトプロパティ(ほとんどのオブジェクトはvalueプロパティです)を使い上記変換を行います
オブジェクト | null | 左辺のオブジェクト実体が存在しない場合、nullと等しくなり、実体が存在する場合は、nullとは等しくありません。

左辺と右辺の型が上表と逆の場合も同様に変換されます。

等価演算子の例

URIAGE.KINGAKU = 1000;
URIAGE.KINGAKU == 1000;　/* true と評価 */
URIAGE.KINGAKU ==& //.SALES.URIAGE.KINGAKU;　/* trueと評価 */
"" == null; /* falseと評価 */
"" != null; /* trueと評価 */
String str1 = "";
str1 == null; /* falseと評価 */
str1 != null; /* trueと評価 */
var v1;
v1 == null; /* trueと評価 */
v1 = str1;
v1 == null; /* falseと評価 */
v1 = str2;  /* 存在しないオブジェクトのリファレンス */
v1 == null; /* falseと評価 */


論理結合演算子

書式

式１ &  式２
式１ && 式２
式１ || 式２
式１ |  式２

&と&&は同じ意味を持ちます

|と||は同じ意味を持ちます

解説

論理結合演算子は式１と式２をブール値として評価し、結果を論理的AND（演算子 &または&&）及び論理的OR（演算子 |または||）によって評価します。

論理的ANDは左辺式と右辺式を評価して共にtrueである場合のみtrueを返します。

論理的ORは左辺式と右辺式を評価してどちらか一方がtrueであればtrueを返します。それ以外の場合は共にfalseを返します。

(1 == 1) & (2 < 3)　　trueと評価
(1 == 1) & (2 > 3)　　falseと評価
(1 == 1) | (2 > 3)　　trueと評価


３項演算子

書式

式１ ? 式２ : 式３

解説

式１の評価結果がTRUEの場合は式２を評価し、FALSEの場合は式３を評価します。

３項演算子の例

TextBox0.BgColor = R.Error == 0 ? $STD : $RED;

この例では、R.Errorの値が0の場合はTextBox0の背景を標準色とし、そうではない場合は赤くします。


代入演算子

書式

オブジェクト[.プロパティ] = 式;
オブジェクト[.プロパティ] += 式;
オブジェクト[.プロパティ] -= 式;
オブジェクト[.プロパティ] *= 式;
オブジェクト[.プロパティ] /= 式;
オブジェクト[.プロパティ] %= 式;
オブジェクト << 式;
オブジェクト[.プロパティ] &= 式;

解説

=演算子は、式の評価結果を左辺のオブジェクトに代入します。

+=演算子は、式の評価結果を左辺の評価値に加算して左辺のオブジェクトに代入します

-=演算子は、式の評価結果を左辺の評価値に減算して左辺のオブジェクトに代入します

*=演算子は、式の評価結果を左辺の評価値に乗算して左辺のオブジェクトに代入します

/=演算子は、式の評価結果で左辺の評価値を除算して左辺のオブジェクトに代入します

%=演算子は、式の評価結果で左辺の評価値の剰余を左辺のオブジェクトに代入します

<<演算子は、左辺のオブジェクトの型と右辺の式の型により挙動が異なります。通常は、左辺のオブジェクトに右辺の値を挿入するような動作となります。代表的な<<演算子は、CSVDocumentオブジェクトにより定義される、CSV定数の挿入です。

Record r1[] {
    Number a;
    Number b;
    Number c;
}
r1 << csv {
1,2,3
4,5,6
7,8,9
1,2,3
};

この例では、配列化されたRecordオブジェクトにCSV定数を挿入しています。

&=演算子は、参照演算子と呼ばれる代入演算子の一種で、オブジェクト間の動的データ参照を定義する場合に使用します。参照演算子で代入を行うと、式の評価結果が変化したとき、自動的に再計算が実行されます。

Number left = 100;
Label lbl001;
Label lbl002;
lbl001.Value &= left;
lbl002.Value = left;
．．．．．．
left = 900;

初期状態では画面上のラベル Lbl001, Lbl002共に100を表示していますが、leftが900に変化した場合Lbl001のみ表示が900となり、Lbl002は変化しません。すなわちLbl001は代入式に参照演算子を使用することでleftを常に参照しており変化が自動的に反映されます。それに対してLbl002には代入時のleftの評価値が格納されており、leftが変化しても反映されません。

循環した再計算

計算を実行する順序は最も効率の良い順序に自動的に最適化されます。従って再計算を行う順序は状況により変わることがあり計算順序に依存するような記述を行ってはなりません。

参照式の記述によっては、再帰的な再計算で無限ループに陥る可能性があります。例えば次のような式では、再計算は永久に終了しません。

A &= B + 1;
B &= A + 1;

このような状況は、再計算の実行時に検出されます。式の構文解析では検出されないためイベントハンドラや３項演算子で使用する場合には注意を要します。異常な式として検出されると値の評価が行われる前に実行は中断され、CRS-354例外がthrowされます。

参照演算子の制約

参照演算子の右辺には、以下の条件を満たす式を記述することができます。

1. 更新動作を伴なわないこと。

インタプリタが更新動作を検出するとCRS-159例外をthrowします。更新操作とは、++や--演算子、オブジェクトの変更、生成、削除を伴うメソッド、関数の呼び出しなどが該当します。たとえば以下の記述はエラーとなります。

A &= B++;

また、ユーザ定義関数の呼び出しは、インタプリタにより呼び出し元とは別のスタックフレームが割り当てられるため、内部的なオブジェクトの生成を伴います。したがって、ユーザ定義の関数を参照式の右辺に記述して呼び出すことはできません。

2. //から始まるオブジェクトツリーに接続されているか、グローバル名前空間に置かれていること。

var変数や、newで生成してオブジェクトツリーに接続されていないオブジェクトは利用できません。

3. 名前を持つこと

newやオブジェクト固有のメソッド(FileSystem.open()メソッドが返すFileオブジェクトなど) により生成されるオブジェクト、またはイベントハンドラに渡されるイベントオブジェクトなど、固有の名前を持たない無名のオブジェクトを右辺に記述することはできません。

参照演算子の左辺には、以下の条件を満たすオブジェクトまたはプロパティを指定することができます。var変数やそのほかの要素を指定することはできません。

1. //から始まるオブジェクトツリーに接続されていること

var変数や、グローバル名前空間に置かれているオブジェクト、またはnewなどにより生成されオブジェクトツリーに接続されていないオブジェクトは利用できません。

2. 名前を持つこと

newやオブジェクト固有のメソッドにより生成されるオブジェクト、またはイベントハンドラに渡されるイベントオブジェクトなど、固有の名前を持たない無名のオブジェクトを左辺に記述することはできません。

再計算は以下の条件により実行されます。

1. 右辺で参照しているオブジェクトまたはプロパティが、すべて実際にアクセス可能であること。

式中にアクセスできないプロパティが記述されている場合、CRSインタプリタは式の依存性を検証することができません。そのような場合、正常な再計算は実行されません。

特に、配列化されているオブジェクト中で、indexプロパティを使った再計算には注意が必要です。

ListBox L1 {
    ListItem item1[3];
}
ListBox L2 {
    ListItem item2[3] {
        Selected &= F.L1.item1[index].Selected;  … 【１】
    }
}

この例は、L2のListBoxの選択位置とL1の選択位置を一致させようとしています。しかし、このような記述の場合、【１】のスコープでは配列要素固有のプロパティであるindexプロパティはアクセスできません。従ってこの式では、CRSインタプリタはL1.item1[n].selectedプロパティに対する依存性を検出できず、L1の選択位置が変化しても再計算は実行されません。

正しく再計算を実行するためには、以下のようにして常に参照するプロパティにアクセス可能とする必要があります。

ListBox L1 {
    ListItem item1[3];
}
ListBox L2 {
    ListItem item2[3] {
        Selected &= index != null ? F.L1.item1[index].Selected : F.L1.item1.Selected;
    }
}

（注）配列要素の位置を特定しないindexプロパティは、過去のバージョンとの互換性維持のためChangeProfile関数の影響を受けます。詳細は、グローバル関数 ChangeProfileを参照してください。

2. 右辺で直接参照しているオブジェクトまたはプロパティが更新されること。

プロパティは、オブジェクトに用意される固有のメソッドやユーザ定義関数などでアクセス可能な場合があります。

下記の例では、TextBoxに用意されたユーザ定義関数から値を取得し参照演算子によって値を再計算しようとします。

CRSインタプリタは、このようなプロパティへの間接的なアクセスによる依存性を検出することはありません。従って次の例は再計算は実行されません。

TextBox TextBox1 {
    :
    Value = "123";

    Function GetValue(){
        return this.Value;
    }
}
Label Label2 {
    :
    /* Value &= ^.TextBox1.Value; */
    Value &= ^.TextBox1.GetValue();
}

GetCellの式の代わりに、コメントアウトされている式を記述した場合には、実際にアクセスするプロパティを直接記述しているため、再計算が実行されます。

3. 配列化されたオブジェクトの再計算は、配列要素の若い順に実行されます。

配列要素の再計算順序は常に若い要素から開始されます。

参照演算子の解除

再計算式による自動計算は、計算対象のオブジェクトの削除、再計算式の基点となるオブジェクトの削除、または別の値の代入により解除されます。

A &= B + 1;   【１】
   :
B = 5;        【２】
A = 20;       【３】
B = 6;        【４】

この例では、【１】でAに対して再計算を指定しているので、【２】でBに５が代入されるとAは自動的に6となります。次に【３】でAに対して20を代入しているので、この時点でAに対する自動再計算は解除されます。従って【４】でBを更新してもAは20のままとなります。

Form F1 {
    TextBox T1 {
        :
    }
    Label L1;
    Label L2 {
        :
        F1.T1.Value &= F1.L1.Value * 2;
        Function OnClick(e) {
            Delete();
        }
    }
}

この例の場合、T1.Valueの値をL1.Value * 2で自動再計算しますが、L2のタップでL2は削除されます。この場合、T1.Valueの再計算式はL2オブジェクトを基点(this)として実行する必要があるのに対して、L2オブジェクトは存在しなくなるのですから、T1.Valueの自動再計算も解除されます。


定数

CRSでは数値や文字列を定数として扱うことが可能で以下の種類があります。

種類 |  | CRS型 | 表記例
数値 | 10進整数 | Number | 100, -100
 | 16進整数 |  | 0xFF, -0xFF
 | 実数 |  | 3.14, -3.14
 | 論理型 |  | true, false
 | 文字 | String | "sky\n"
時間 | 日付 | Date | "2003/09/01"
 | 時刻 |  | "2003/09/01 12:10:11"

また特別な文字"\"を使用して文字列に制御コードや文字列の区切り文字などを含めることが出来ます。制御コードとその表記方法を以下に示します。

制御コード、文字 | 表記 | 使用例
改行 | \n | "1行目\n２行目"
復帰 | \r | "1行目\r\n２行目"
タブ | \t | "項目１\t項目２"
\ | \\ | "\\100"

また、上記以外にCSV定数などパッケージで定義されるパッケージ固有の定数を利用することができます。通常、パッケージ固有の定数は << 演算子によりオブジェクトを初期化する際に利用します。

CSV定数の例

CsvDocument csvdoc << csv {
1,2,3
4,5,6
};

パッケージ固有の定数は、以下の書式で定義されます。

プレフィックス [ ‘(‘ 引数リスト ‘)’ ]  開始CODE データ本体 終了CODE

先のCSV定数の場合、プレフィックスは"CSV"、引数リストは省略、開始CODEは"{"、終了CODEは"}"で、データ本体は1,2,3と4,5,6です。プレフィックスや開始CODE、終了CODEはパッケージにより定義されます。例えばxml定数の場合、プレフィックスは"XML"、開始CODEは"<<-"、終了CODEは"->>"となります。

XML定数の例

XmlDocument xmldoc << xml <<-
<?xml version="1.0"?>
<sample>
    <node/>
</sample>
->>;

パッケージ固有の定数記述内部では、CRS仕様は無効となります。CRS固有の定数や式などを記述することはできません。

$DESIGNTIME定数

$DESIGNTIME定数は、Biz/DesignerによるCRSスクリプトの開発中に使用します。

Biz/DesigerではCRSスクリプトへの変更内容は即時にデザインペインに反映されます。この動作は作成画面の確認には便利ですが、すぐに確認する必要の無い処理については不要と感じることがあります。

$DESIGNTIME定数を使用することで、デザイン中には動作させないように記述することが可能になります。

$DESIGNTIME定数

true | Biz/DesignerによるCRSスクリプト記述中
false | Biz/Desigerによるデバッグ実行中 またはBiz/Browserによる実行中

使用例

if (!$DESIGNTIME) {
    /* デザイン中は実行しない処理 */
}

一部のメソッドやプロパティは、デザイン中に実行するとエラーになるものがあります。それらの処理は上記の使用例のように条件を !$DESIGNTIME（デザイン時以外）としたif文の中に記述することでエラーを回避できます。


$$シンボル（外部リソース定数）

$$で始まるシンボルは、外部リソース定数として識別されます。外部リソース定数は、CRSファイルと同じディレクトリに置かれているXML形式のファイルで以下のように記述します。このファイルをリソースファイルと言います。

<?xml version="1.0"?>
<resource>
      <symbol_1>String Text 1</symbol_1>
      <cust>
              <name>顧客名</name>
              <addr>顧客住所</addr>
      </cust>
      :
</resource>

シンボルには、英数字とアンダーバー ( _ )だけから成るXMLのノード名として指定可能な任意の名前が利用できます。String Text 1は$$symbol_1を置き換える文字列です。

Button1.Title = $$symbol_1;

と記述すると、ボタンには"String Text 1"と表示されます。

深い階層になるエレメントを取り出すためには、ピリオド ( . ) でノード名を接続します。例えば、$$cust.addrは"顧客住所"に置き換えられます。

$$シンボルは、文字列定数として置き換えられます。式や別の型の定数として置き換える事はできないので、必要に応じてCRSスクリプトによる変換を併用します。

Form1. BgColor = val( $$color ); /* 数値変換例 */

シンボルに該当するノードがリソースファイルに見つからない場合、定数の置き換えは行われず、通常の変数名として処理されます。エラーとはなりません。

参照するリソースファイルは、実行時の言語環境によって下記のようになります。

言語 | リソースファイル名
英語 | resource.en.xml
日本語 | resource.ja.xml
中国語簡体 | resource.zh.xml
上記以外 | resource.en.xml
言語に対応するリソースファイルが 存在しない場合 | resource.xml (v1.2.4以降からの機能です。それより前のバージョンでは文字列は空になります)

参照するリソースファイルがない場合、文字列は空になります。

この仕組みにより、異なる言語をサポートするCRSスクリプトは、文字列定数部分を$$シンボルを利用して記述することで、リソースファイルを翻訳するだけで複数の言語に対応する事が可能です。

リソースファイルは、最初に$$シンボルをCRSコンパイラが検出したときに1回だけダウンロードされ、メモリ上に維持されます。同じディレクトリにある複数のCRSファイルを連続して実行する場合でも、ダウンロードは1回だけとなります。また、リソースファイルもCRSファイルと同じルールでキャッシュされます。

このダウンロードと置き換えはコンパイル時に行われるため、キャッシュに格納される中間コードには置き換えられた後の文字列が格納されます。従って、最初の実行時には、CRSファイルのほかにリソースファイルもダウンロードされるため、直接CRSファイルに"String Text 1"と記述したときよりも、多くの通信時間、多くの実行時間、多くのメモリを必要としますが、2回目以降にキャッシュから実行される場合にはオーバーヘッドはまったく発生しません。


グローバル関数

式にはBiz/Browserに内蔵されているグローバル関数を用いる事ができます。グローバル関数を利用する事により更に複雑な計算式を表現でき、ほとんどの場合で対話的な操作ではサーバに対するリクエストを抑止する事が可能となります。

グローバル関数の例

sum() 合計を計算します。
avg() 平均を計算します。
mid() 文字列の一部分を取り出します。

グローバル関数は、オブジェクトの持つメソッドと似ていますが、特定のオブジェクトには結びついておらず、式の中に直接関数名を記述することができます。

また、Biz/Browserに内蔵されている関数以外に、アプリケーション固有の関数を定義することができます。

package MyPackage {
    Function func1(p1, p2) {
        return p1 + p2;
    }
}

この例は、2つの引数を受け取り、合計を返す関数です。

グローバル関数と同様に、パッケージ内に定義したFunctionは、特定のオブジェクトに結びついていません。importステートメントによりロードすることで、グローバル関数のようにオブジェクトスコープと関係なく呼び出すことができます。

import MyPackage;
:
var ans = MyPackage.func1(10, 20);
:


制御構造

CRSの制御構造は、JavaScriptとほぼ同じ文法で定義します。

if … else 文

条件分岐です。

if ( 条件式 ) ステートメント１ [ else ステートメント２ ]

条件式が真のとき、ステートメント１が実行されます。オプションのelse が指定されている場合、条件式が偽のとき、ステートメント２が実行されます。

例

if (item1 == "1") {
    print("item1は1です");
} else {
    print("item1は1ではありません");
}

for 文

forループです。

for( 初期化式 ; 終了条件式 ; インクリメント式 ) ステートメント

初期化式を実行後、終了条件式が真の間、ステートメントを実行します。次の終了条件を確認する前にインクリメント式を実行します。

ステートメント内でbreak文を実行すると即座にループを終了します。また、ステートメント内でcontinue文を実行すると後続のステートメントを実行せずに次のループに入ります。

例

for (var n = 0; n < 10 ; n++) {
    print("nは", n, "です");
}

for (var n = 0; n < 20 ; n++) {
    if (n == 5) continue;
    if (n == 9) break;
    print("nは", n, "です");
}

for in 文

配列などの要素に対応したループです。

for( ループ変数 in 対象変数 ) ステートメント

対象変数の内容を列挙するための値をループ変数に代入しながらステートメントを実行します。対象変数は配列化されたオブジェクト、Arrayオブジェクト、およびイテレータをサポートする一部のオブジェクトを指定することができます。ステートメント内でbreak文を実行すると即座にループを終了します。また、ステートメント内でcontinue文を実行すると後続のステートメントを実行せずに次のループに入ります。

例

var a = new Array("aa", "bb", "cc");
var n
for (n in a) {
    print(a[n], "\n");
}

for in 文では要素の順序は保証されません。

while 文

条件ループです。

while( 条件式 ) ステートメント

条件式が真の間、ステートメント実行します。ステートメントの実行前に条件式が評価されます。ステートメント内でbreak文を実行すると即座にループを終了します。また、ステートメント内でcontinue文を実行すると後続のステートメントを実行せずに次のループに入ります。

例

var a = 0;
while (a < 10) {
    print("aは", a, "\n");
    a++;
}

do … while 文

条件ループです。

do ステートメント while( 条件式 )

条件式が真の間、ステートメント実行します。ステートメントの実行後に条件式が評価されます。ステートメント内でbreak文を実行すると即座にループを終了します。また、ステートメント内でcontinue文を実行すると後続のステートメントを実行せずに次のループに入ります。

例

var a = 0;
do {
    print("aは", a, "\n");
    a++;
} while (a < 10);

switch case 文

条件により分岐します

switch( 評価式 ) {
case 結果１:
    実行文
case 結果２:
    実行文

    :
case 結果n:
    実行文
default:
    実行文
}

評価式を評価しその結果と一致するcaseラベルにジャンプします。もし、defaultラベルが定義されている場合、評価式が他のどのcaseラベルとも一致しなかった場合にジャンプします。

ジャンプしたラベル以降のステートメントを実行しますが、次のcaseラベルに到達してもそのまま続くステートメントの実行を継続します。ステートメントの実行を中断してswitchブロックの最後にジャンプするためにはbreak文を置きます。

例

var data = 1;
switch (data) {
case 0:
    print("dataは0です\n");
case 1:
    print("dataは1以下です\n");
case 2:
    print("dataは2以下です\n");
case 3:
    print("dataは3以下です\n");
}

この例の場合、次の結果となります。

dataは1以下です
dataは2以下です
dataは3以下です

break文の利用例

var data = 1;
switch (data) {
case 0:
    print("dataは0です\n");
    break;
case 1:
    print("dataは1です\n");
    break;
case 2:
    print("dataは2です\n");
    break;
case 3:
    print("dataは3です\n");
    break;
default:
    print("dataは3です\n");
    break;
}

実行結果

dataは1です


例外ハンドリング

CRSは、JavaScriptとほぼ同じようにtry…catchにより例外をハンドリングすることができます。

try … catch throw 文

try {
    実行文1
}
catch (e) {
    実行文2
}

tryブロックで囲まれた実行文１を実行し、その実行過程で例外が発生した場合、後続の実行文１にステートメント実行を中止し、実行文２に制御を移します。

catchステートメントの仮引数 e は、Exceptionオブジェクトが渡されます。Exceptionオブジェクトのプロパティによりどのような例外が発生したか知ることができます。

e.Message エラーメッセージ
e.Method  例外を起こした機能分類
e.Code    例外コード

例

try {
    var a = foo1(1);
    var b = foo2(2);
    var c = foo3(3);
}
catch (e) {
    print("例外", e.Message, "が発生しました\n");
}

catchブロック内で、引数のないthrow文を実行するかcatch文で受け取ったExceptionオブジェクトをthrowすることにより、catchが受け取った例外を上位のブロックにスローすることができます。

try {
    var a = foo1(1);
    var b = foo2(2);
    var c = foo3(3);
}
catch (e) {
    if (e.Method == "DOM") {
        print("DOM例外", e.Message, "が発生しました\n");
    } else {
        throw e;
    }
}

try … catch の有効範囲

try … catch による例外ハンドリングは実行時のみ有効です。Biz/Designerで生成されるCRSファイル全体をtryブロックに入れても、イベントハンドラの実行により発生した例外は捕らえることができないことに注意してください。

try {  ←tryブロック開始
    Form form1 {
        Width = 100;
        Height = 100;
        :
        Function OnTouch(e) {
            :
            throw new Exception("app", 1, "test");
            :
        }
    }
} ← tryブロック終了
catch (e) {
    print(e.Message, "\n");

}

この例では、Form全体をtryブロックに入れていますが、このtryブロックはformの生成時に発生する例外は捕捉されますが、Formの生成が終わるとtryブロックを抜けてしまうため、OnTouchイベントハンドラ内で発生する例外は捕らえることはできません。

OnTouchで発生する例外を捕らえるためには次のように記述します。

Form form1 {
    Width = 100;
    Height = 100;
    :
    Function OnTouch(e) {
        try {  ←tryブロック開始
            :
            throw new Exception("app", 1, "test");
            :
        } ← tryブロック終了
        catch(e) {
            print(e.Message, "\n");
        }
    }
}

ユーザ定義の例外

Exceptionオブジェクトを生成し、throw文に渡すことでアプリケーション固有の例外を発生させることができます。

例

Function foo (a) {
    if (a == 0) {
        throw new Exception("app", 5, "引数が0です");
    }
    return 100 / a;
}

Exceptionオブジェクトのコンストラクタには、以下の値を渡します。

第1パラメータ：例外の種類を指定します。Methodプロパティの値となります。

第2パラメータ：例外番号を指定します。Codeプロパティの値となります。

第3パラメータ：説明文を指定します。Messageプロパティの値となります。

グローバル例外ハンドラ

Biz/Browser ver4.0.0より拡張されたエラーハンドリング機構です。"//"（Rootオブジェクト）にOnExceptionファンクションを定義することで、catchされない全ての例外を捕捉して呼び出されます。

:
// {
    Function OnException(e) {
        MessageBox("エラーが発生しました。管理者に連絡してください");
        Login("http://server/startup.crs");
        return false;
    }
}
:

OnExceptionハンドラは、アプリケーション固有のエラー報告手段を提供するために用意された機能で、通常はユーザに対してエラーを報告して終了します。OnExceptionハンドラに制御が渡った時点で、実行途中のコールスタックは全て解放されているので、エラーを起こしたスクリプトの処理を継続させることはできません。

また、OnExceptionの処理中に別の例外が発生した場合、Biz/Browserに内蔵されているエラーハンドラが実行されます。

OnException関数がtrueを返した場合、CRSインタプリタはセッションを維持したまま処理を継続します。true以外を返した場合、CRSインタプリタはセッションをリセットして停止します。

処理の継続が可能な例外は、個々の処理の中でtry ... catchにより捕捉してOnExceptionに制御が渡らないようにしてください。OnExceptionが実行される局面では、例外の発生した位置や内容が特定できませんので、画面が正常に表示されていなかったり、オブジェクトの生成が途中で停止しているなど意図しない状態に陥っている可能性があります。OnExceptionはエラー報告を行った後、処理を停止するかLogin()メソッドによりセッションをリセットしてアプリケーションを再起動することを推奨します。


予約語

CRS言語では以下のキーワードが予約されています。これらのキーワードを変数やオブジェクト名などに利用することはできません。

記号

// ^ + - * / % =

& && &= | || ++ += --

-= *= /= %= == ==& ! !=

!=& < <= << > >> >= ?

[ ] ( ) { } , .

; : # ~ “ ‘

キーワード

catchevent peekevent break case

catch continue default delete

do else finally for

function if in instanceof

new return switch this

throw try typeof var

void while with abstract

as class const export

extends false final implements

import interface is namespace

null package private public

static super true use

debugger enum goto native

protected synchronized throws transient

volatile


CRSプログラムを記述可能な文字エンコーディング

CRSプログラムを記述可能な文字エンコーディングは動作するOSと実行するBiz/Browserに依存します。

Biz/Browserバージョン | 対応する文字エンコーディング
Biz/Browser 4.0以前 | Shift-JIS
Biz/Browser XE(4.1〜4.3) | 実行OS言語でのネイティブ文字エンコーディング 例)日本語OS=Shift-JIS、簡体中国語OS=GB2312
Biz/Browser V(5.0) | 1.BOM付きのUTF-8、UTF-16LE ※内部的にネイティブ文字エンコーディングに変換されるため、ネイティブ文字へ変換できないUnicode文字は”?”文字と解釈されます。 2.実行OS言語でのネイティブ文字エンコーディング
Biz/Browser Mobile 4.0以前 | Shift-JIS
Biz/Browser Mobile 4.5 | 1.BOM付きのUTF-8、UTF-16LE ※内部的にネイティブ文字エンコーディングに変換されるため、ネイティブ文字へ変換できないUnicode文字は”?”文字と解釈されます。 2.実行OS言語でのネイティブ文字エンコーディング
Biz/Browser AI 1.0.0.0～1.0.2.1 | 1.BOM付きのUTF-8、UTF-16LE 2.「言語」オプションで設定された言語が日本語の場合、Shift-JIS、その他の言語の場合ISO-8859-1
Biz/Browser AI 2.0.0～2.0.2 | 1.BOM付きのUTF-8、UTF-16LE 2.Shift-JIS
Biz/Browser AI 2.1.0以降 Biz/Browser SmartDevice 1.0.0以降 Biz/Browser HT 1.0.0以降 | 1.#encodingプラグマによる指定(後述) 2.BOM付きのUTF-8、UTF-16LE 3.Shift-JIS

#encodingプラグマ

一部のBiz/Browserでは、CRSプログラムソースコードがどの文字エンコーディングで表されているかを#encodingプラグマで指定する事ができます。

これにより、多言語環境におけるCRSファイル毎の文字エンコーディングの使い分けや、BOM無しのUTF-8でのCRSプログラム記述が可能となります。

#encodingプラグマの使用方法は下記のとおりです。

#encoding "文字エンコーディング名"

なお、#encodingプラグマを使用する際は下記の点に注意して下さい。

・#encodingプラグマはスクリプトの先頭行に記述して下さい。

・Biz/Browser HTでは、"Shift_JIS"と"UTF-8"の文字エンコーディングが指定可能です。


Biz/Browser起動時の動作

Biz/Browserの起動後、どのようにして最初の画面が表示されるかを説明します。


Biz/Browserの拡張子の関連付け

Biz/Browser HTでは拡張子の関連づけは行われません。
代替手段として、カスタムURLスキームが利用可能です。


Webブラウザからの起動時の注意

Internet ExplorerやFireFoxなどのWebブラウザでCRSファイルへのハイパーリンクをタップした場合、そのCRSファイルはWebブラウザによってダウンロードされ、そのファイルがBiz/Browserの起動時に渡されます。

Android版
拡張子の関連づけは行われません。
代替手段として、カスタムURLスキームが利用可能です。

Biz/Browserは、Webブラウザから渡されたファイルが、サーバからダウンロードしたファイルなのか、最初からローカルファイルとして置かれていたファイルなのかを識別することができません。その結果、ダウンロード先が特定できず、相対パスで指定されたCRSファイルへのアクセスなどが正しく行えなくなります。

この現象を回避するために、WebブラウザからBiz/Browserを起動するときは、Biz/Browserに対して明示的にCRSファイルの場所を指示する必要があります。

Webブラウザが最初にダウンロードするCRSファイルの中で、本来接続すべきURLを指定してLoginメソッドを呼び出してください。Biz/BrowserはWebブラウザから渡されたCRSをロード後、即座に本来のURLに接続します。

---X.CRS---

Login("http://server/app/main.crs");


Biz/Browserの起動

Biz/Browserは、起動すると次の動作を行います。

システムオブジェクトの生成

Rootオブジェクトの下にSYSオブジェクトを構築します。アプリケーションのCRSがロードされる前に生成されるため、いつでも参照できます。

初期画面のロード

初期画面はコマンドラインパラメータやカスタムURLスキームでのURL指定、ショートカットやインテント等の内容(以降、起動パラメータと表記)と、インストール状況で変化します。

起動パラメータでURLが指定された場合

指定されたURLを"//"（Rootオブジェクト）にGetメソッドで取得します。このCRSファイルはキャッシュの対象外で必ずサーバからダウンロードされます。

起動パラメータでURLが指定されない場合

ログイン画面を表示します。ログイン画面はCRSスクリプトで作成されており、プラットフォームやバージョンによって配置されている位置が異なります。

このCRS（login.crs）がある場合は、"//"（Rootオブジェクト）にGetメソッドで取得します。

login.crsが見つからない場合は、ログインプロンプトのダイアログを表示し、初期化動作を終了します。

ローディング処理の変更

デバッグ情報(コアダンプ)の出力制御

Biz/Browserの実行中にハンドリングされない例外がCRS実行エンジンに補足された場合、デバッグ情報(コアダンプ)を出力し、処理を中断します。

Biz/Browser V 5.0.2、およびBiz/Browser Mobile 4.5.0より、このデバッグ情報(コアダンプ)の出力制御をコマンドラインパラメータにて行えるようになりました。

コマンドラインパラメータの形式は下記のとおりです。

/coreDump [n]

値 | 説明
0 | デバッグ情報(コアダンプ)を出力しません
1 | ハンドリングされていない例外が発生した場合、デバッグ情報(コアダンプ)を出力します。 コアダンプがすでに存在する場合、上書きされます。 (従来のBiz/Browserの動作と同等です)
2 | ハンドリングの有無にかかわらず、例外が発生するたびにデバッグ情報(コアダンプ)を出力します。 コアダンプファイル名にはプロセスIDと4桁の連番が付与され、コアダンプが出力される度に新たに作成されます。

省略した場合、1が指定されたものとみなします。

Android版
ショートカット作成時に指定することが可能です。

排他実行及びURL移動指定

Android版では複数のBiz/Browser HTの同時起動は行えません。すでにBiz/Browser HTが実行されている場合、下記のように動作します。

・Biz/Browser HTのアイコンをタップして起動した場合、起動中のBiz/Browser HTをアクティブにします。

・ログイン先URLが指定されたBiz/Browser HTのショートカットやカスタムURLスキームのURLをタップして起動した場合、すでに起動しているBiz/Browser HTをアクティブにした上、指定のURLに強制的に移動(loginメソッドを実行)を行います。

以上で起動処理は終了します。


Biz/Browserのログイン時の動作

Biz/Browserがサーバに接続する際、次の動作を行います。

既存オブジェクトのリセット

アプリケーションにより作成されたすべてのオブジェクトが削除されます。ユーザ定義パッケージ、ユーザ定義クラスなどもすべて解放されます。

既存セッションのリセット

以前接続していたサーバのセッション情報（クッキーやユーザID、パスワードなど）を削除します。ログイン前に接続していたサーバから受け取ったクッキーや、HTTPの認証で受け取ったパスワードなどは失われ、新しく接続するサーバに対して送付することはできません。

システムオブジェクトの再生成

//.SYSのシステムオブジェクトを再構築してリセットします。以前ログインしていたサーバが設定した//.SYS.APPROOTやカラーパレットはこの段階で初期化リセットされます。ただし、//.ShellIdはリセットされることはありません。


接続ライセンス

接続ライセンスによるライセンス管理方式では、Biz/BrowserからアクセスするWebサーバごとにライセンスを管理します。ライセンス登録されたWebサーバ以外にはアクセスできません。

接続ライセンスは、Biz/Browserに接続ライセンス証明書（XMLファイル）をインポートすることで登録されます。接続ライセンス証明書は、Webサーバに配置して各クライアントPCのBiz/Browserに配布します。

なお、接続ライセンス証明書ではセキュリティレベルの指定も行えるようなっています。


接続ライセンスの仕組み

ここでは、接続ライセンスの技術的な仕組みと利用方法について説明します。

接続ライセンスの概要

接続ライセンスには、接続できるWebサーバの情報が登録されています。Biz/Browserは、登録されたWebサーバへの通信のみを許可します。

接続ライセンスは接続するサーバ単位で必要です。サーバAへの接続ライセンスはサーバBでは利用できません。また、有効期限が明示されている場合は、示された期日以降はその接続ライセンスは無効となります。

接続ライセンスの有無で制限される機能

Biz/Browserには多くの通信機能が搭載されていますが、そのうちNetObjectクラスのGetメソッドを利用したhttpまたはhttps通信だけが、接続ライセンスの有無により制限されます。

RootクラスのLoginメソッド、HttpSessionクラスのGet、Postメソッド、import命令などは、接続ライセンスの有無に関わらず通信を行います。

接続ライセンスがない場合

接続ライセンスの登録

接続ライセンスは、Biz/Browserに接続ライセンス証明書をインポートすることで登録されます。

接続ライセンス証明書（XMLファイル）は、Webサーバに配置して各クライアントPCのBiz/Browserに配布します。CRSプログラム上からimportConnectionLicense関数で接続ライセンス証明書をダウンロードします。記載内容に問題がなければ接続ライセンスが登録されます。

登録された接続ライセンス証明書は、Biz/BrowserがインストールされているクライアントPCに保存され、次回以降のBiz/Browserの起動時には自動的に読み込まれます。

Biz/Browser V以降では、接続ライセンス証明書にセキュリティレベルが記載されます。そのWebサーバへの接続時は証明書のセキュリティレベルが適用されます。接続ライセンス証明書を利用することで、各クライアントPCのセキュリティレベルをサーバ側で一括管理できます。

接続ライセンスの確認

登録された接続ライセンスは、Biz/Browserのメニュー「表示」→「接続ライセンスの確認」から確認できます。

また、CRSプログラム上ではhasConnectionLicense関数で確認できます。

一般的なライセンス登録の流れ

Biz/Browserを利用したシステムは、Loginメソッドの呼び出しから始まります。（ログイン画面のURL選択でもLoginメソッドが呼ばれます）

//.Login("http://server/start.crs");

Loginメソッドによる通信は接続ライセンスによる制限がありません。つまり、このメソッドに指定するCRSファイルは制限を受けずに実行できます。通常、このCRSファイル内で接続ライセンスを登録するプログラムを記述します。

start.crs

/* 接続ライセンスの確認とインポート */
if (!hasConnectionLicense("http://server")) {
    try {
        importConnectionLicense("http://server/license.xml");
    } catch (exp) {
        MessageBox(exp);
        Login();
    }
}
Get("appmain.crs");

システムのメインとなるCRSファイルは、接続ライセンスの確認、登録のあとでNetObjectクラスのGetメソッドで呼び出します。

接続先Webサーバの情報について

接続ライセンスには、Webサーバ情報として「プロトコル（http、httpsなど）」、「ホスト名」、「ポート番号」が登録されています。（例：http://example.com:8080）

Biz/Browserは、これらの情報と完全に一致する場合のみ、通信を許可します。

例えば、「ホスト名」はドメインの有無、IPアドレスの直接表記、ホスト名の別名など、同一の接続先を示すさまざまな表記方法がありますが、接続ライセンスに登録されたホスト名と一致する表記だけが有効になります。

接続ライセンスはWebサーバ単位で登録されるため、それ以降のURLにより制限されることはありません。例えば、/app1/sample1.crsと/app2/sample2.crsのようなURLで、app1とapp2が別システムの場合でも、個別に制限を受けることはありません。

接続ライセンスによる接続先のチェックは、GetメソッドによりアクセスするURLに対して行われます。実際に配置されたCRSファイルの場所が異なる場合（別のサーバによる中継、ロードバランサなど）でも、最初にアクセスするURLが対象になります。

Biz/Browser HT 1.2.2より、ローカルアドレス上に配置したCRSを実行する場合も、ライセンスによる認証が必要になりました。

ローカルアドレスはfileプロトコルで記述されます。（例：file:///sdcard/esample）

接続ライセンス証明書の保存先

接続ライセンス証明書（XMLファイル）のクライアントPCへの保存先は、証明書に記載された利用目的（public、private）、OS、Biz/Browserのバージョンによって異なります。

利用目的がpublicの場合

Android版
内蔵ストレージ内に格納されます。ライセンスの保存先にアクセスすることは出来ません。

利用目的がprivateの場合

Android版
内蔵ストレージ内の利用目的がpublicのライセンスと異なる場所に格納されます。ライセンスの保存先にアクセスすることは出来ません。


接続ライセンス証明書

接続ライセンス証明書は、次のような形式のXMLファイルです。

接続ライセンス証明書は、ご登録いただいた情報を元にオープンストリームが発行します。

入手方法の詳細につきましては、オープンストリームまでお問い合わせください。

接続ライセンス証明書の記載内容

接続ライセンス証明書には以下の情報が記載されています。

serial_no

シリアル番号です。個々の接続ライセンス証明書に対して一意な番号が振られます。

product

ライセンスする製品名とバージョンです。

company

ライセンスを受けた会社名です。ご登録いただいた会社名（英語表記）が設定されます。

person

ライセンスを受けた担当者名です。ご登録いただいたお名前（英語表記）が設定されます。

usage

利用目的です。public、privateのいずれかが設定されます。

publicは、クライアントPCのログインユーザに関係なく共通で使用できます。

privateは、クライアントPCのログインユーザごとにライセンスが管理されます。

date

この接続ライセンスを発行した日時です。

expire

この接続ライセンスが無効となる満了日です。無期限のライセンスの場合は、このフィールドはありません。

security

セキュリティレベルが設定されます。

url

ライセンスされた接続先WebサーバのURLです。

このフィールドには、接続先無制限として*（アスタリスク）が記載されることがあります。

このフィールドは、複数併記されることがあります。

Biz/Browser HT 1.2.2より、ローカルアドレス上に配置したCRSを実行する場合も、ライセンスによる認証が必要になりました。

ローカルアドレスはfileプロトコルで記述されます。（例：file:///sdcard/example）

また下記の特殊なパスを登録することができます。

パス | ライセンスファイルでの表記
アプリ一覧でローカルにダウンロードしたアプリ | file://<APP_LAUNCHER>/(アプリ固有の識別名)
パブリック属性tのルートパスに保存したアプリ | file://<PUBLIC_ROOT>/example

maxconnections

このライセンスで接続可能な最大クライアント数を表します。

expire_action

有効期限の満了後の動作です。
フィールドが省略されている場合はrefuseの動作になります。

値 | 動作
refuse | 接続できません。
warn | 警告メッセージを表示します。 メッセージ内容はexpire_messageに従います。
ignore | 何もしません。

expire_message

expire_actionでwarnを指定したときの警告メッセージです。

signature

デジタル署名です。ファイルの内容が改ざんされていないかを確認しています。


アプリ一覧画面のカスタマイズ

Biz/Browser HTでは、従来の接続先URLのブックマークによるログインの他に、アプリ一覧画面による視覚的で使いやすいログイン方法を用意しています。

4種類の起動モードのうち、標準モード（アプリ一覧画面）では、表示するアプリの一覧を業務に合わせてカスタマイズすることができます。
開発者モードの画面で接続先のブックマークURLをインポートする形式によく似ていますが、視覚的な情報（サムネイル画像）や、 後述のアプリダウンロード・ローカル起動などが行える点が異なります。
これにより、柔軟に、わかりやすい操作にて業務アプリケーション(※)を提供することが可能です。

また、起動時の動作設定の変更により、カスタマイズ用の設定をWebブラウザやBiz/Browser上からワンクリックで行える仕組みも用意しているので、 これらのキッティング作業を簡単に行うことができます。

※本項では、他の用語と表記を合わせて、「Biz/Browserで動作する業務アプリケーション」を「業務アプリ」と省略して記載します。

アプリダウンロード・ローカル起動

アプリ一覧画面をカスタマイズすることにより、zipファイルにアーカイブされた業務アプリをローカルにダウンロードさせて、ネットワークがオフライン状態でも起動できるようにすることができます。
なお、アプリ一覧画面にローカル起動する業務アプリと従来のサーバにログインして起動する業務アプリを混在させることもできます。

※CRSファイルはローカルで起動できますが、通信を伴う処理がある場合はネットワークがオンラインである必要があることに注意してください。

業務アプリのアーカイブファイルの作り方

アプリ一覧画面に表示する業務アプリを、ローカルにダウンロードさせるためにはzipファイルでアーカイブする必要があります。
アーカイブに専用のツールは必要なく、OS標準などで付属する一般的なzipファイル作成機能を使用します。

業務アプリを構成するCRSファイルや画像ファイルなどを1つのディレクトリに格納し、ディレクトリを選択してzipファイルを作成します。
作成されたzipファイルをWebサーバに配置し、後述のアプリ一覧定義ファイルでそのzipファイルをダウンロードするように指定することで、自動的にローカル起動するアプリを配布することができます。

使用の流れ

(1) アプリ一覧と業務アプリ本体をサーバに配置

業務アプリの開発者・管理者が、後述のアプリ一覧定義ファイルと業務アプリをWebサーバに配置します。
この際、業務アプリは従来のようにサーバにアクセスして起動する形式のほか、CRSや画像ファイル等をひとまとめにしたzipファイルも配置できます。

(2) アプリ一覧定義ファイルを取得

Biz/Browser HTに予め設定しておいたアプリ一覧定義ファイルのURLから、「アプリを更新」ボタンの押下でアプリ一覧定義ファイルをダウンロードし、それに基づきアプリ一覧画面を構築します。
オフラインで動作する指定されているアプリは、サーバからアプリの動作に必要なファイルを一括で取得してローカルに展開し、明示的に削除されるかアプリを更新するまで持続的に保存し続けます。

(3) アプリの起動

アプリ一覧定義ファイルに記述された起動方法の種類に応じて、サーバで起動するか、ローカルで起動します。

※起動設定の変更用カスタムURLスキームを使用することで、WebページやCRS上からアプリ一覧定義の設定を行うことができます。

画面の説明

アプリ一覧画面は下記の表示で構成されています。

ロゴ画像

1枚の任意のサイズの画像（会社ロゴ等）を表示することができます。画像や画像の大きさはアプリ一覧定義ファイルで変更可能です。

アプリ一覧

サーバから取得した、またはそれをローカルに保持しているアプリ一覧定義ファイルによる業務アプリの一覧を表示します。
業務アプリはサムネイル画像とアプリ名が表示され、サムネイル画像をクリック・タップすると業務アプリにログインします。
サムネイル画像のサイズは基本的に640x480です。これ以外のサイズの場合も使用できますが、拡大縮小されて表示されます。
アプリ一覧は、デフォルトではデモアプリが表示されます。

アプリを更新する

予め設定したアプリ一覧定義ファイルのURLをもとに、サーバからアプリ一覧定義ファイルをダウンロードします。
また、ダウンロードと同時にアプリ一覧を再構築します。必要であればサーバからローカル動作用のファイルをダウンロードしてローカルに展開します。
ダウンロードしたアプリ一覧定義ファイルもローカルに保持されます。
デフォルトではデモアプリ用のアプリ一覧定義ファイルをもとにアプリ一覧を更新します。

設定

アプリ一覧定義ファイルのURLを設定したり、ダウンロードしたローカルファイルを全て削除する操作が行える設定ダイアログを表示します。

アプリ一覧定義ファイル設定
    サーバとURLを指定してアプリ一覧定義設定を変更します。
設定の全削除
    アプリ一覧画面でダウンロードした全てのファイル、およびアプリ一覧定義設定を削除し、インストール直後の状態に戻します。
    なお、Biz/Browserのブックマークや起動モードの設定は削除されません。

開発者モードに切り替え

起動モードを開発者モードに変更し、再ログインします。

アプリ一覧定義ファイルの設定

アプリ一覧定義ファイルのJSONデータには、下記の設定項目を記述します。
具体的なJSONデータの記述形式は「アプリ一覧定義ファイルの記述例」を参照して下さい。
(アプリ一覧定義ファイルの文字エンコーディングはBOMなしのUTF-8である必要があります。)

listapi

将来の拡張のために確保されています。通常は2を指定します。

thumbDir

サムネイル画像ファイル名の基点となるディレクトリを指定します。
後述の各アプリに定義されたサムネイル画像(thumbnail)を探すディレクトリを指します。
ディレクトリは、アプリ一覧定義ファイルに設定された接続先URL(カスタムURLスキームの設定項目「appServer」)が基点となります。

logoFile

トップのロゴ画像を示す画像ファイルへのファイルパスを指定します。拡張子はJPEG, PNGなどが使用可能です。

logoHeight

トップのロゴ画像の高さを指定します。通常、logoFileに指定した画像の高さを指定します。
省略した場合、80が設定されます。

applist

各アプリの一覧データを指定します。データ1つあたりアプリ一覧に1つのアプリとして表示されます。
設定数に制限はありませんが、設定個数が多いと動作が遅くなることがあります。
以下はapplist配下に記述する設定項目です。

id | アプリ固有の識別名です。IDには、英数字、アンダーバー"_"、ハイフン"-"、ドット"."が使用可能です。 IDは大文字小文字を区別せず、重複している場合は先に定義された方が有効となります。
type | アプリの種類を指定します。下記の値のいずれかが指定が可能です。 archive アーカイブされたzipファイルをローカルに展開し、オフライン状態で起動します。 url 指定されたURLに対してログインします。
name | アプリの名称を指定します。アプリの名称は画面上に表示されます。 文字数制限はありませんが、表示幅以上の名称は表示されません。
url | アプリを動作させるためのURLを指定します。この設定はtypeにより動作が異なります。 archive の場合 アーカイブされたzipファイルのURLを指定します。 url の場合 指定されたURLに対してログインします。
startup | アプリを実行したとき、最初にログインするCRSファイルへのパスを指定します。 アプリの種類typeの値がarchiveの場合のみ有効です。
thumbnail | アプリのサムネイル画像を指定します。サムネイル画像は画面上に表示されます。 拡張子が「.jpg」「.png」の画像ファイルのみ指定可能です。
attrs | アプリを画面上に表示できるプラットフォームとAPIバージョンを指定します。 複数の条件を記述することができ、いずれか1つでも条件に一致する場合は表示し、いずれにも一致しない場合は表示しません。 下記の指定が可能です。type,minapi,maxapiは3つで1セットとなり、省略はできません。 type プラットフォームの種類（"android"のみ指定可能） minapi 最小APIバージョン（1以上の数値か、-1(無制限)が指定可能） maxapi 最大APIバージョン（1以上の数値か、-1(無制限)が指定可能）

実行例

下記は、アプリ一覧画面に、ローカルに展開してオフライン状態でも起動できるアプリと従来通りサーバ上のCRSを起動するアプリの2つを配置するサンプルです。
以下に記述するアプリ一覧定義ファイルのJSONデータを読み込むと、次の画像のような表示になります。

実行結果

アプリ一覧定義ファイルの記述例

[
{
    "listapi": "2",
    "thumbDir": "/appserver/thumbnails",
    "logoFile": "/appserver/corp_logo.png",
    "logoHeight": "45",
    "applist":[
        {
            "id": "system001",
            "type": "archive",
            "name": "ローカル起動サンプル",
            "url": "http://example.com/appserver/system001.zip",
            "startup": "/LocalSample/frmMain.crs",
            "thumbnail": "LocalSample_v1.png",
            "attrs": [
                        {"type":"android", "minapi":"10", "maxapi":"-1"}
                     ]
        },
        {
            "id": "system002",
            "type": "url",
            "name": "サーバ起動サンプル",
            "url": "http://example.com/appserver/system002/frmMain.crs",
            "startup": "",
            "thumbnail": "ServerSample_v1.png",
            "attrs": [
                        {"type":"android", "minapi":"-1", "maxapi":"42"}
                     ]
        },
        {
            "id": "dummy",
            "type": "url",
            "name": "ダミー(常に非表示)",
            "url": "http://www.example.com",
            "startup": "",
            "thumbnail": "dummy.png",
            "attrs": [
                        {"type":"android", "minapi":"0", "maxapi":"0"}
                     ]
        }
    ]
}
]


キャッシュの整合性確認

ほとんどのCRSファイルは、初回ダウンロード時にクライアントPCにキャッシュされ、次回以降はダウンロードせずにキャッシュから実行されます。この機能は、アプリケーションの高速化には不可欠ですが、キャッシュの整合性を維持するためには注意が必要です。

サーバに配置したCRSファイルを更新しても、自動的にはキャッシュは更新されません。クライアントPCのキャッシュの管理は、アプリケーションを作成するプログラマが、意識的に処理を記述する必要があります。

Rootオブジェクトから最初にロードされるCRSファイルだけはキャッシュの対象外です。このファイルを使うことで、クライアントPCのキャッシュの整合性を確認する処理を記述できます。

キャッシュの整合性を確認するためには以下の関数を利用します。

cachedate関数

cachedate関数は、現在クライアントに保持しているキャッシュの最も新しい更新日付を返します。

サーバ上でこの更新日付よりも新しいファイルがある場合、そのファイルの古いバージョンがキャッシュされている可能性があります。

//.DeleteCacheメソッド

DeleteCacheメソッドは指定したURLのキャッシュを削除します。URLを指定しない場合、DeleteCacheメソッドを実行するCRSスクリプトをダウンロードしたサーバからダウンロードされているすべてのキャッシュをクリアします。

最も簡単な方法は、最初にロードされるCRSファイルの先頭に

//.DeleteCache();

と記述します。この方法は、接続のたびにすべてのキャッシュがクリアされるため、キャッシュによるCRSファイルの不整合は発生しませんが、パフォーマンスは悪化します。

一般的には、アプリケーションのバージョン番号を管理する方法が多く用いられます。

この方法では、例えばversion.crsという名前で、単にアプリケーションのバージョン番号を設定するだけのCRSファイルを用意します。

----- version.crs -----
String version = "2.0.0.1";

最初にロードされるCRSファイルに最新のバージョン番号を記述しておき、GETによりversion.crsをロードします。もし、古いversion.crsがキャッシュされていれば、キャッシュからロードされるためmenu.crsのバージョン番号とは異なるはずです。

----- menu.crs -----
String curVersion = "2.0.0.2";
Get("version.crs");
if (curVersion != version) {
    //.DeleteCache();
    Get("version.crs");
}

このように、キャッシュの整合性は色々な方法で管理することができます。アプリケーションの特性に合わせて最適な管理方法を取るようにしてください。


起動時の動作設定

Biz/Browser HTでは、用途に応じてアプリケーションの起動時に動作する画面をいくつかの種類から選択することができます。

Biz/Browser HTには下記の4つの起動モードがあります。

標準モード（アプリ一覧画面）

Biz/Browserから実行できる各業務アプリケーションの一覧を表示するモードです。
通常デモアプリケーションが表示されますが、画面に表示する内容をカスタマイズして提供することができます。
詳細はアプリ一覧画面のカスタマイズを参照して下さい。
・Biz/Browser HTホーム画面最下部に開発者モードの画面と切り替えられるボタンが使用可能です。
・起動時の動作設定の変更のパラメータから指定可能です。
・HTTP通信のタイムアウト時間は120秒に設定されます。

開発者モード

Biz/Browserが保存する接続先ブックマークURLの一覧が表示される、従来の形式のログイン画面を表示するモードです。
また、Biz/Designerとのリモートデバッグのための便利機能も用意されています。
・Biz/Browser HTホーム画面最下部に標準モードの画面と切り替えられるボタンが使用可能です。
・起動時の動作設定の変更のパラメータから指定可能です。

ブランクモード

起動時に何もない画面を表示するモードです。カスタムURLスキームでのみログインさせる場合に使用することができます。
・起動時の動作設定の変更のパラメータから指定可能です。

カスタムモード

起動時に予め設定された接続先URLにログインするモードです。
・起動時の動作設定の変更のパラメータから指定可能です。

起動時の動作設定の変更

Biz/Browserの起動モードの設定とアプリ一覧定義のファイル設定を、ブラウザやBiz/Browserからリンクを実行することで直接行うことができます。

下記の形式のURLを構築し、ブラウザやBiz/Browserからリンクを実行します。

biz-browser://settings?param=＜パラメータ＞

パラメータは、下記の設定項目のJSONデータをURLエンコードしたデータを指定します。
具体的な記述形式は「パラメータJSONデータ記述例」を参照して下さい。

apiver | 将来の拡張のために確保されています。通常は1を指定します。
appServer | アプリ一覧画面で、アプリ一覧定義ファイルの接続先のサーバを指定します。 manifestFileとどちらかの設定項目を省略した場合、両方の現在の設定を変更しません。
manifestFile | アプリ一覧画面で、アプリ一覧定義ファイルのJSONファイルへのパスを指定します。
homeType | Biz/Browserの起動モードを指定します。下記の指定が可能で、それ以外の場合は標準モードが選択されたと見なします。 設定項目を省略した場合、現在の設定を変更しません。 default 標準モード（アプリ一覧画面） developer 開発者モード blank ブランクモード custom カスタムモード
homeCustomUrl | Biz/Browserの起動モードでカスタムモードが指定されているとき、起動時にログインするURLを指定します。

パラメータJSONデータ記述例（URLエンコード前）

[
{
    "apiver": "1",
    "appServer": "http://example.com",
    "manifestFile": "/biz/appserver/applist.json",
    "homeType": "default",
    "homeCustomUrl": "http://example.com/biz/appserver/login.crs"
}
]

リンク記述例

<a href="biz-browser://settings?param=%5b%0d%0a%7b%0d%0a%09%22apiver ～ %0d%0a%5d">Biz/Browserの起動設定を行う</a>


オブジェクトの操作

この章では、CRSスクリプトでオブジェクトを操作する詳細な方法を説明します。


オブジェクトの初期状態

オブジェクトは、クラスによって異なる初期状態をとりますが、ここでは、共通して行われる初期化動作について説明します。

１ デフォルトプロパティの型の確認

生成するオブジェクトのクラスによって、デフォルトプロパティ（多くの場合Valueプロパティ）の型を指定する事ができますが、指定した型が、クラスによって認められている型か確認が行われ、もし、認められない場合例外が発生して、オブジェクトの生成は中断されます。

２ 同名オブジェクトの切り離し

生成するオブジェクトがオブジェクトツリーに接続される場合、既に同名のオブジェクトが同じ階層位置に接続されていると、そのオブジェクトは新しいオブジェクトの生成前に切り離されます。関数はオブジェクトではありませんが、同名の関数に対しても削除は行われます。

３ オブジェクトツリーへの静的な接続確認

オブジェクトの生成前に接続の可否について検討されます。接続するオブジェクトの性質によっては、接続が拒否される事があります。例えば、Spreadクラスのオブジェクトに接続を許されていないLabelオブジェクトを接続すると、例外が発生します。ただし、ここで行われる確認は静的なもので、クラスや配列の可否などの確認のみです。

４ オブジェクトの生成

オブジェクトの生成が行われると、すべてのプロパティは、デフォルト値に設定されます。デフォルト値が未定義な場合、プロパティの型に応じた初期値となります。

プロパティの型 | 初期値
Number | 0
Date | 0（無効な日付）
String | 空文字
Object | null

５ オブジェクトツリーへの動的な接続確認

生成したオブジェクトについて、実際に接続可能か確認されます。この確認では、その時点のオブジェクトの状態に基づいて行われる動的なものです。例えば、FlexRecordの子オブジェクトしてFlexHeaderを接続する場合、既にFlexLabelなどセルを形成するオブジェクトが接続されていると例外が発生します。

６ オブジェクトツリーへの接続

生成するオブジェクトがオブジェクトツリーに接続される場合、ここで、実際にツリーに接続されます。

７ コンストラクタ関数の呼び出し

生成したオブジェクトがコンストラクタ関数を持つ場合、実行されます。コンストラクタ関数の詳しい挙動については、クラスの項を参照してください。

８ 配列要素の展開

オブジェクトが配列として生成された場合、指定された数だけ配列要素が展開されます。上記の７までに生成されたオブジェクトは、配列の構造を示す「配列定義情報」として機能するように設定されます。配列オブジェクトの詳細については、配列オブジェクトの項を参照してください。

９ 再計算処理

オブジェクトの生成により、参照演算子(&=)を使った再計算式に影響を与える事があります。CRS実行エンジンは、再計算の必要性を検討し、必要であれば再計算を実行します。

以上が、オブジェクト生成の初期化動作です。

説明中にオブジェクトツリーに関する部分がありますが、オブジェクトツリーに接続されない場合には、それらの検証は実行されません。

クラス定義内にオブジェクト生成を含むような複合構造を持つクラスの場合、上記４の中で子オブジェクトが生成され、ここで説明した処理が再帰的に実行されます。

また、オブジェクト生成中に例外が発生した場合、生成過程のオブジェクトは破棄されますが、上記２で説明した切り離された同名のオブジェクトが復元されることはない点にも注意してください。


オブジェクトの生成

Objectの生成は、次の構文により行います。

ObjectType[ : ValueType] ObjectName;                                … 【１】
ObjectType[ : ValueType] ObjectName[ n ];                           … 【２】

var 変数名 = new ObjectType[ : ValueType];                          … 【３】
var 変数名 = new ObjectType[ : ValueType] ();                       … 【４】
var 変数名 = new ObjectType[ : ValueType] ( コンストラクタ引数 );   … 【５】

【１】と【２】の書式の場合、このプログラムを実行したオブジェクトが親オブジェクトとなる階層構造に接続され、ObjectNameで指定した名前を持つオブジェクトが生成されます。

[ : ValueType] は省略可能なオプションで、オブジェクトのデータ属性を指定します。

例

 TextBox:Number b;

上記の例では、数値型のデータとしてテキスト入力欄を生成します。ValueTypeはクラスの種類により固定されているものもあります。例えばDateEditクラスのオブジェクトは常にDate型のオブジェクトとなりますので、ValueTypeを指定することはできません。TextBoxのようにValueTypeを指定可能なオブジェクトの生成でValueTypeを指定しない場合、String（文字列）型として実行されます。

書式【２】の [n] は配列化を指定します。[]を付加するとオブジェクトは配列として生成され、nにより生成時の要素数を指定します。

【３】【４】【５】の書式の場合、生成されたオブジェクトのリファレンスがvar変数に格納されます。この場合、オブジェクトは固有の名前を持たず、変数名でアクセスすることになります。変数はオブジェクトの実体ではありませんので、状況により名前は変化します。

例

var text = new String("sample1");
var sample = text;

この例の場合、Stringオブジェクトはtextまたはsampleの名前で参照できます。どちらもStringオブジェクトリファレンスで同じインスタンスを指します。したがって、

text.value = "sample2";
print(sample);

とすると、print関数によりデバッガに表示されるのは、"sample2"となります。

書式【４】の場合、クラスのコンストラクタが呼び出され、デフォルトの初期化が行われます。書式【５】の場合、コンストラクタ引数により、オブジェクトの初期化を指示することができます。コンストラクタは、オブジェクトの種類により初期化する内容、指定する内容、意味、パラメータの数が変わります。

例 Arrayクラスのコンストラクタ

var a = new Array("aaa", "bbb", "ccc");

"aaa"、"bbb"、"ccc"がArray要素として生成されます。

例 Stringクラスのコンストラクタ

var s = new String("sample");

内容がsampleの文字列となります。

オブジェクトの初期化

Object生成と同時にプロパティ設定を行い初期化することができます。

DisplayType ObjectName {
    X = 10;
    Y = 10;
    Width = 20;
    Height = 20;
    ：
}
DataType ObjectName = 10;

クラスのプロパティには初期化後の変更ができないものがあります。このようなプロパティは必ず初期化で設定する必要があります。

オブジェクトの階層構造

ほとんどのオブジェクトは"//"（Rootオブジェクト）を基点とする階層構造に属します。階層構造に新しいオブジェクトを付加するためには以下のように記述します。

DataType Object1 {
    DataType Object2 {
        DataType Object3 {
            :
        }
    }
}

一部のオブジェクトは、階層構造に制約を持ちます。例えば表形式の表示を行うSpreadオブジェクトの場合、子として生成できるDisplayオブジェクトはSpreadRowに限られ、SpreadRowの子として生成できるDisplayオブジェクトはSpreadColumnに限られます。

この制約はSpreadオブジェクトは、単独で表を表現するのではなく、表の枠と全体を調停するSpreadオブジェクト、表の行を表現するSpreadRowオブジェクト、表の列を表現するSpreadColumnオブジェクトの複合体として表を表現しているためです。

オブジェクトの名前

"//"（Rootオブジェクト）を基点とするオブジェクトツリーに含むオブジェクトには、名前を付けることができます。オブジェクトの名前には以下の制約があります。

1. 英字または全角の文字で始まること

2. ２文字目以降は英数字、アンダースコア(_)または全角文字であること

正しい例

ABC

日本語のオブジェクト名

txt顧客コード

txt_custcode

不正な例

12_code ← 数字で始まる

txt custcode ← 空白文字を含む

txt-custcode ← 記号を含む

txt顧客住所（都道府県から市町村名まで） ← 長すぎる

全角文字の空白や記号は利用することができますが、間違いとなりやすいためできるだけ利用しないようにしてください。

全角文字の変数名は、環境によっては（UNIX系のOSでCRSソースを管理する場合など）文字化けして取り扱いが悪くなることがあります。ご注意ください。

オブジェクトの名の衝突

オブジェクト同士の衝突

新しいオブジェクトを生成した同じ階層に、すでに同じ名前のオブジェクトが存在する場合、既存のオブジェクトは自動的に削除されます。

プロパティとの衝突

プロパティ名と同じ名前で子オブジェクトを生成すると、オブジェクトの検索が優先されます。プロパティはオブジェクトに隠れて利用することができなくなります。

メソッドとの衝突

メソッド名と同じ名前で子オブジェクトを生成すると、オブジェクトの検索が優先されます。メソッドはオブジェクトに隠れて利用することができなくなります。

クラス名との衝突

クラス名と同じ名前のオブジェクトを生成すると、そのオブジェクトのスコープ内では、衝突したクラスのスタティックメソッドやスタティックプロパティにアクセスできなくなります。


オブジェクトの削除

すべてのオブジェクトは、参照関係により維持されます。この概念はJavaScriptと同じです。何か別のオブジェクトから参照されているオブジェクトは、その参照関係が途絶えるまで維持されます。

"//"から始まるオブジェクトツリーは、親のオブジェクトが子のオブジェクトを参照しており、頂点となる"//"オブジェクトはBiz/Browserランタイムが参照しているため維持されています。

オブジェクトツリーに属さないオブジェクトも、参照関係により維持されます。通常、オブジェクトツリーに属さないオブジェクトはCRSプログラムの変数として参照されており、その変数がスコープから失われるまでの間維持されます。

削除方法

オブジェクトを削除するためには、すべての参照を切断する必要があります。

親子間の参照関係を切断するためには Deleteメソッドを使います。

例

//.Form1.Button1.Delete();

この例では、Form1とButton1の間の参照を切断します。

CRSプログラム変数による参照は、変数スコープの消失と同時に切断されるため、意識する必要はありません。以下の例で詳しく説明します。

例

Function OnTouch(e) {
    var csvobj = new CSVDocument;          // 1
    var session = getHttpSession();        // 2
    csvobj.Load(session.Get("test.csv"));  // 3
    Form1.Spread1.Row << csvobj;
}

1. 最初にCSVDocumentオブジェクトがのnewにより生成され、そのリファレンスがcsvobj変数に格納されます。

2. 次にgetHttpSession関数によりHttpSessionオブジェクトが戻され、そのリファレンスがsession変数に格納されます。

3. さらに、CSVDocument.Loadメソッドの引数として、HttpSession.Getメソッドが実行され、HttpResponseオブジェクトがLoadメソッドに渡されます。

以上によりここまでに、CSVDocument、HttpSession、HttpResponseに参照が行われました。これらオブジェクトの参照関係は次のようになります。

開放時の動作は以下のようになります。

1. CSVDocument.Loadメソッドの終了により、HttpResponseオブジェクトはどこからも参照されなくなり、削除されます。

2. OnTouchイベントハンドラの終了によりスコープから外れるcsvobjとsession変数が消去されます。

3. csvobj変数により参照されていたCSVDocumentオブジェクトはどこからも参照されなくなり、削除されます。

4. session変数により参照されていたHttpSessionオブジェクトは、まだBiz/Browser自体により参照されているため、削除されることなく維持されます。


オブジェクト名の検索

"//"（Rootオブジェクト）から始まる階層構造に含まれるオブジェクトは、グローバル変数としての性質を持っており、スクリプトの変数スコープの枠を越え、どのような位置からでも参照することができます。ここでは、スクリプト中に記述されるオブジェクト名をインタプリタがどのように検索して、該当するオブジェクトを発見するかを詳細に説明しています。

オブジェクト検索の基点

CRSプログラムは、JavaScriptやJAVA、C++などの言語と同様にthisの概念を持っています。オブジェクトの検索は常にthisを基点として解決されます。基点となるthisは次のように規定されています。

Biz/Browser起動直後のthis

"//"オブジェクトがthisとなります。

オブジェクト生成のブロック

ブロックのオブジェクトがthisとなります。

Form Form1 {
    X = 10; 【１】
    Y = 10; 【２】
    Button Button1 {
        X = 10; 【３】
        Y = 20; 【４】
        String str1 {
            Value = "abc"; 【５】
        }
    }
}

【１】〜【２】:    thisはForm1です
【３】〜【４】:    thisはButton1です
【５】:            thisはstr1です

イベントハンドラのthis

イベントハンドラを持つオブジェクトがthisとなります

ユーザ定義関数のthis

関数を所有するオブジェクトがthisとなります

オブジェクトの検索

オブジェクトの検索はthisを基点として "."（ピリオド）で名前を連結して表現します。名前の大文字小文字は区別されません。

Form1.Button1.str1 = "xyz";

このような名前をピリオドで連結したオブジェクト検索式をCRSインタプリタは次のルールで検索し、解決します。

1. var変数をプログラムブロックの内側から外側に向けて検索します。

検索は、実行時のコンテキストが途絶えるか、現在のスクリプトファイル内のブロックが終わるところまで行われます。

実行時のコンテキストの切れ目

Button B1 {
    var x1 = 10;    (A)
    X = 10;
    :
    Function OnTouch(e) {
        :
        var x2 = 20;    (B)
        var x3 = 20;    (C)
        for ( … ) {
            var x3 = 30;    (D)

            x1 = 1; 【１】
            x2 = 2; 【２】
            x3 = 3; 【３】
        }
    }
}

【１】は、Functionにより実行コンテキストが異なるので(A)のx1を検出できず検索は失敗します。

【２】は、(B)のx2が検索されます。

【３】は、(C)と(D)で定義されるx3の内、先に検出される(D)が検索されます。

現在のスクリプトファイル内の検索

上記の例と同じ構造を、Getメソッドを使い２つのスクリプトファイルに分けた場合、検索式の解決結果が異なります。

Button B1 {
    var x1 = 10;    (A)
    X = 10;
    :
    Function OnTouch(e) {
        var x2 = 20;    (B)
        var x3 = 20;    (C)
        Get("for_loop.crs");
    }
}
----- for_loop.crs -----
for ( … ) {
    var x3 = 30;    (D)

    x1 = 1; 【１】
    x2 = 2; 【２】
    x3 = 3; 【３】
}

【１】は、先の例と同様に検索に失敗します。

【２】は、for_loop.crs内にx2が検出できないため検索に失敗します。

【３】は、(D)を検索します。

var変数は、実行時ではなくコンパイル時に名前解決されインタプリタが実行する中間コードのバイナリに変換されます。このような、スクリプトファイルに依存した名前解決は、var変数にのみ適用されます。

2. thisの下位に位置するオブジェクト名と比較します。

3. thisのオブジェクトが持つプロパティ名と比較します。

4. thisのオブジェクトが持つメソッド名と比較します。

5. thisの名前と比較します。

6. thisの親のオブジェクト名と比較します。以降、該当するオブジェクトが見つかるまで、上位のオブジェクトを検索します。

7. グローバル名前空間から検索します。

以上の検索で対象となるオブジェクトが検出できない場合、名前は未解決となります。また、最初の名前を解決後、以下のルールで続くピリオドで連結されたすべての名前を解決します。

8. 解決された名前がオブジェクト名ではない（プロパティ名、メソッド名など）の場合、検索は失敗します。

9. ピリオドの左辺値で解決されたオブジェクトを基点として、その子オブジェクトを検索します。

10. ピリオドの左辺値で解決されたオブジェクトを基点として、そのオブジェクトのプロパティを検索します。

11. ピリオドの左辺値で解決されたオブジェクトを基点として、そのオブジェクトのメソッドを検索します。

特別なオブジェクト名

"//"は特別に、階層構造の頂点のオブジェクトを指す名前として利用できます。

"^"は特別に、thisの親オブジェクトを指す名前として利用できます。


オブジェクト間の自動再計算

"//"から始まる階層構造に含まれるオブジェクトは、オブジェクト間を参照演算子(&=)で接続することにより、演算子の右辺の値の変化に連動して自動的に左辺の値を再計算する事ができます。

参照演算子の使い方

例 ウィンドウのサイズにあわせてボタンの表示位置を調整

Form Form1 {
    Width = 500;
    Height = 400;
    Button Button1 {
        X &= Form1.Width / 5;
        Y &= Form1.Height / 5;
        Width &= (Form1.Width / 5) * 3;
        Height &= (Form1.Height / 5) * 3;
    }
}

"//"（Rootオブジェクト）の直下にあるForm1は、ウィンドウのサイズ変更に自動的に追従し、WidthとHeightプロパティが変化します。この例では、Button1のX、Y、Width、Heightを&=演算子でForm1のWidthとHeightに関連させているので、ウィンドウのサイズ変更に追従して、Button1の表示位置と大きさが変化します。

例 TextBoxのエラー表示

Form Form1 {
    Width = 500;
    Height = 400;
    TextBox Text1 {
        X = 10;
        Y = 10;
        Width = 100;
        Height = 30;
        BgColor &= (Err == 0 ? $STD : $RED);
        Number Err {
            Value = 0;
        }
    }
    Button Button1 {
        X = 10;
        Y = 50;
        Width = 100;
        Height = 30;
        Function OnTouch(e) {
            if (Form1.Text1 == "") {
                Form1.Text1.Err = 1;
            } else {
                Form1.Text1.Err = 0;
            }
        }
    }
}

この例では、Button1を押したときに反応するイベントハンドラにより、Text1の内容が空であればForm1.Text1.Errに1を、空でなければ0を設定しています。

Text1の背景色は &= 演算子によりErrに関連しているので、Errに1がセットされたときに、赤く反応します。

このように参照演算子 &= を利用することで、スクリプトを「背景を赤くする」という処理ではなく、「エラーをセットする」というより本質的な処理で記述することができるようになります。

参照演算子の制約

オブジェクトツリー内でのみ利用できます

参照演算子は"//"（Rootオブジェクト）を頂点とするオブジェクトツリーに含まれるオブジェクトに対してのみ利用することができます。参照演算子の左辺、右辺ともvar変数で参照している無名のオブジェクトや、グローバル名前空間にロードされたユーザオブジェクトを含むことはできません。

右辺に更新動作を伴う式や関数を記述することはできません

参照演算子の右辺に更新操作を伴う式を記述すると、関連性の依存関係が非常に複雑となるため、CRSではサポートしていません。更新操作を伴う演算子とは++や--演算子などが該当します。

右辺にユーザ定義関数を記述することはできません

参照演算子の右辺にFunctionで定義するユーザ定義関数を記述することはできません。

依存関係の解析は、右辺に出現するシンボルにより行われます

参照演算子の右辺には、更新動作を伴わないグローバル関数やメソッドを記述することができます。CRSインタプリタは右辺に出現するシンボル（オブジェクト名やプロパティ名）を頼りに依存関係を管理しているので、メソッドの呼び出しにより２次的に変化する値を右辺に記述した場合、再計算が実行されないことがあります。


暗黙のオブジェクト生成

CRSは、プリミティブ（String、Number、Dateなど）に対してプロパティまたはメソッドアクセスが発生したとき、インタプリタは自動的に型に対応した無名のオブジェクトを生成します。

例

var a = "Sample".Length;

この例では、"Sample"という文字型のプリミティブに対して.Lengthプロパティの参照を行っているため、CRSインタプリタは自動的にこの式を以下のように分解して実行します。

var temp = new String("Sample");
var a = temp.Length;

自動生成されたオブジェクトは、参照が終了した時点で自動的に削除されます。従って、更新操作を伴うようなメソッド呼び出しを行っても、変更された結果をオブジェクトから得ることはできません。

ただし、メソッド呼び出しの戻り値を得ることは可能です。

var a = "abcdefg".ToUpperCase();


グローバル名前空間

"//"（Rootオブジェクト）から始まる階層構造に含まれるオブジェクトの参照は、常にオブジェクトツリーの階層により参照されましたが、オブジェクトツリーとは無関係にどこからでも参照できるグローバル名前空間があります。

グローバル名前空間に置かれているオブジェクトは、//.Form1等のピリオドによる装飾を行わずに直接名前で参照することができます。

Biz/Browserが標準で内蔵するグローバル関数群は、グローバル名前空間に置かれているため、いつでも利用することができます。

ユーザ定義の関数をグローバル名前空間にロードすると、組み込みのグローバル関数のように利用できるようになります。

グローバル名前空間へのユーザ定義オブジェクトのロードは以下の構文により行います。

import global_name;

global_nameは、グローバル名とするオブジェクトの名前です。CRSインタプリタは、importステートメントを以下のように実行します。

1. global_nameの確認を行います。

global_nameがクラス名、グローバル関数名と重複している場合エラーとなります。

global_nameが既にグローバル名前空間にロードされているユーザ定義オブジェクトと同じ名前の場合、何もしないで完了します。

2. URLを生成します。

global_nameに拡張子".crs"を付加し、importステートメントを実行したCRSスクリプトがダウンロードされたURLと同じディレクトリからダウンロードするようにURLを生成します。

http://server/app1/menu.crsのCRSスクリプト中で、

import sample;

を実行した場合、http://server/app1/sample.crsというURLが生成されます。

3. 生成したURLからCRSファイルをダウンロードして実行します。このダウンロードはGetメソッド同様にキャッシュの対象となります。

4. 結果を確認します。

実行した結果、global_nameで指定したpackage、class、またはRecordオブジェクトのいずれも生成されていない場合、エラーとなります。

importするCRSファイルは以下のような記述が想定されています。

package sample1 {  ← この名前がグローバル名前空間に置かれます。
    Number data1;
    Number data2;
    Function func1() {
        :
    }
    Function func2() {
        :
    }
    Function func3() {
        :
    }
}

このようなCRSをimportした場合、どのスコープからでも次のようにしてアクセスすることができるようになります。

var d1 = sample1.data1;
var d2 = sample1.func2();

グローバル名前空間にユーザ定義のオブジェクトをロードすると、共通関数などを有効に利用できるようになります。


配列オブジェクトの操作

この章では、CRSスクリプトで配列オブジェクトを操作する詳細な方法を説明します。


配列オブジェクトの概要

CRS言語は１次元の配列をサポートしており、ほとんどのオブジェクトを配列として定義することができます。

例

Number num[3];

配列として定義したオブジェクトは、添え字により配列要素にアクセスすることができます。添え字には0から始まる整数を指定します。JavaScriptのArrayオブジェクトなどで利用されている文字列を添え字とした連想配列はサポートされません。（Arrayクラスは連想配列をサポートします）

例

Number num[3];
for( var n = 0; n < 3; n++ ) {
    num[n] = n * 10;
}
print( num[0], num[1], num[2], "\n" );

--- 実行結果 ---
0 10 20

配列オブジェクトはすべて可変長配列として機能し、配列操作用のInsert、Truncateメソッドにより要素の数を動的に変更することができます。

配列要素をDeleteメソッドで削除すると、配列オブジェクトからも要素が削除されます。

参考：Arrayクラス

配列オブジェクトとは別に、Arrayクラスを利用することで類似した処理を行うことができます。ArrayクラスはCRS言語としての配列ではありませんが、添え字による要素へのアクセスを行うことができます。

Arrayクラスは配列オブジェクトとは異なり、以下の特徴をもっています。

1. 要素数は、要素へのアクセスにより自動的に伸張されます。

var a = new Array;
a[0] = 1;
a[5] = 3;

この例では、aの要素は0から5の6個に拡張されます。

2. 個々の要素に、異なる型のオブジェクトを格納することができます。

Button button1;
TextBox text1;
var a = new Array;
a[0] = button1;
a[1] = text1;

この例では、1番目の要素はButtonオブジェクト、2番目の要素はTextBoxオブジェクトのリファレンスが格納されます。

3. 添え字に文字列を使った連想配列をサポートします。

var a = new Array;
a["ABC"] = 1;
a["DEF"] = 2;

4. その他に、Arrayクラス固有のメソッドにより要素のソート等を行うことができます。

詳細は、Arrayクラスの項を参照してください。


配列オブジェクトの作成

配列オブジェクトの生成は、次の構文により行います。

ObjectType[ :DataType ] ObjectName[ n ] ・・・ 【１】

var 変数名 = new ObjectType[ n ] ・・・ 【２】

【１】の書式の場合、このプログラムを実行したオブジェクトが親オブジェクトとなる階層構造に接続され、ObjectNameで指定した名前を持つオブジェクトが生成されます。

[:DataType]は省略可能なオプションで、オブジェクトのデータ属性を指定します。

例

TextBox:Number b[2];

は、数値型のデータとしてテキスト入力欄の配列を生成します。

【２】の書式の場合、生成された配列オブジェクトのリファレンスがvar変数に格納されます。この場合、オブジェクトは固有の名前を持たず変数名でアクセスすることになります。変数はオブジェクトの実体ではありませんので、状況により名前は変化します。

例

var text = new String[2];
var sample = text;

この例の場合、String配列オブジェクトはtextまたはsampleの名前で参照できます。どちらもString配列オブジェクトのリファレンスで同じインスタンスを指します。したがって、

text[0].value = "sample2";
MessageBox(sample[0]);

とすると、MessageBoxにより表示されるのは、"sample2"となります。


配列オブジェクトの操作

配列化したオブジェクトには、配列固有の操作となる要素の追加と削除を行うためのプロパティとメソッドが付加されます。これらのメソッド、プロパティはObjectクラスに定義されています。

配列オブジェクト

プロパティ

名前 | 型 | 説明
Length | integer | 配列オブジェクトの要素数

メソッド

名前 | 説明
Insert | 配列オブジェクトに要素を追加します
Truncate | 配列オブジェクトのすべての要素を削除します

配列要素

プロパティ

名前 | 型 | 説明
Index | integer | 配列要素の位置

メソッド

名前 | 説明
Insert | 配列要素の直前の位置に新しい要素を追加します


配列オブジェクトの表示

FormやTextBoxなどの表示用のオブジェクトを配列化した場合の挙動について解説します。

表示用オブジェクトの配列も基本的な動作は、NumberやRecordなどの非表示オブジェクトと同じ特性をもち、InsertやTruncateなどの配列用メソッドやプロパティなどにより配列の操作を行うことができます。

表示用の配列オブジェクトの場合、これらの特徴に加えて、表示に関する特性が加わります。

配列オブジェクトの表示座標

配列化された表示オブジェクトの表示位置は、Layout、LayoutMargin、LayoutSpacingプロパティにより決定されます。

Layoutプロパティは、オブジェクトのレイアウト方法をあらわします。LayoutMarginは表示間隔、LayoutSpacingは余白とする大きさを示します。

Layout = $VERTICAL の場合

Layout = $HORIZONTAL の場合

Layoutのもうひとつの選択肢として、$BLANKが用意されています。$BLANKを選択すると、配列要素の表示位置の調整は無効となり、スクリプトで明示的に個々の座標をしていることができるようになります。

Layout = $BLANK の場合

Button btn[3] {
    Width = 80;
    Height = 30;
    Layout = $BLANK;
    Title &= str(Index + 1) + "番目";
}
btn[0].X = 10;
btn[0].Y = 10;
btn[1].X = 40;
btn[1].Y = 50;
btn[2].X = 70;
btn[2].Y = 90;

配列オブジェクトのイベントハンドラ

Buttonオブジェクトなど、ユーザの操作でイベントを発生するオブジェクトを配列化した場合、通常の非配列の時と同じようにイベントハンドラを定義することができます。

Form f {
    Width = 400;
    Height = 200;
    Button btn[3] {
        X = 20;
        Y = 20;
        Width = 80;
        Height = 30;
        LayoutMargin = 5;
        Title &= str(Index + 1) + "番目";

        Function OnTouch(e) {
            MessageBox(e.From.Title);
        }
    }
}

このように、配列オブジェクトに対してFunctionを付加する場合、Functionも配列要素の一部となり配列の要素数だけコピーされる点に注意してください。通常、実行コードを持つだけのFunctionを個々の要素別に用意する必要はなく、メモリ効率が低下します。

配列要素のイベントを扱うFunctionは、配列オブジェクトの上位に定義したほうが効率的に動作します。上記の例のコードは以下のように記述しても同じように動作します。Functionの定義位置に違いがあります。

Form f {
    Width = 400;
    Height = 200;
    Button btn[3] {
        X = 20;
        Y = 20;
        Width = 80;
        Height = 30;
        LayoutMargin = 5;
        Title &= str(Index + 1) + "番目";
    }
    Function OnTouch(e) {
        MessageBox(e.From.Title);
    }
}


階層構造をもつ配列オブジェクトの操作

階層化されたオブジェクトを配列として生成することができます。

例

Form frm {
    Width = 800;
    Height = 600;
    Form fArray[3] {
        X = 10;
        Y = 10;
        Width = 190;
        Height = 100;
        Border = $TRUE;
        LayoutMargin = 2;
        Button btn {
            X = 10;
            Y = 10;
            Width = 170;
            Height = 30;
            Title = "button";
        }
        Button btnArray[3] {
            X = 10;
            Y = 50;
            Width = 50;
            Height = 30;
            Layout = $HORIZONTAL;
            LayoutMargin = 10;
            Title &= str(Index + 1) + "番";
        }
    }
}

このような構造をもつ配列に対しても、Insert、Deleteメソッドにより、配列要素の操作を行うことができます。

例

frm.fArray[1].Delete();

を実行した結果の表示

例

frm.fArray[1].btnArray[2].Delete();
frm.fArray[0].btnArray.Insert(1);

を実行した結果の表示

配列化されたオブジェクトからGETメソッドにより、配列要素に対して別のCRSスクリプトをロードして実行することができます。

例

Form frm {
    Width = 800;
    Height = 600;
    Form fArray[3] {
        X = 10;
        Y = 10;
        Width = 190;
        Height = 90;
        Border = $TRUE;
        LayoutMargin = 2;
    }
    fArray[0].Get("frm1.crs");
    fArray[1].Get("frm2.crs");
    fArray[2].Get("frm3.crs");
}

この例の場合、frm.fArrayは配列オブジェクトとなりますが、個別にロードされたCRSスクリプトに定義されているチェックボックスやボタンはfrm.fArrayの配列とは関連せず、個々の配列要素に固有のオブジェクトツリーに接続される事に注意してください。従って、frm.fArray.Insert()を実行しても、fArrayの新しい要素には何もオブジェクトは表示されません。


配列オブジェクトを子オブジェクトに持つクラスでの注意

CheckBox、OptionButtonなど配列化された子オブジェクトを持つクラスでは、ClearメソッドやClearChildメソッドが意図した通りに動作しない場合があります。ClearやClearChildメソッドは配列の要素オブジェクトには作用しないためです。

例えばCheckBoxのリストを初期化するためにCheckBox.ClearChildメソッドを実行しても効果がありません。要素ごとにClearメソッドを実行してください。


グローバル関数

グローバル関数には、以下の6つの種類の関数があります。

文字列操作関数

日付関数

算術関数

統計関数

財務関数

システム関数


文字列操作関数

文字列関数は、文字や文字列に関する操作を行います。

名前 | 説明
find | 文字列を検索します
fullp | 半角文字を全角文字に変換します
halfp | 全角文字を半角文字に変換します
left | 文字列を左から取り出します
length | 文字列の長さを求めます
lower | 大文字を小文字に変換します
mid | 文字列を途中から取り出します
replace | 文字列を置換します
right | 文字列を右から取り出します
split | 文字列を区切って要素を取得します
str | 値を文字列に変換します
strf | 書式指定文字列で文字列を作成します
suuji | 数値を漢数字に変換します
trim | 文字列中の余分な空白を除去します
upper | 小文字を大文字に変換します
val | 文字列を数値に変換します


find関数

iOSAndroidWindows

説明

文字列の開始位置から対象文字列を検索し、一致した部分の先頭位置を求めます。位置は文字列の先頭を0として数えます。

呼出形式

var i = find( 文字列, 対象文字列, 開始位置 [, 処理単位 ] )

戻り値

一致した部分の先頭位置

引数

String 文字列

検索する文字列

String 対象文字列

検索対象の文字列

integer 開始位置

対象の文字列の中で検索を開始する位置

integer 処理単位

互換性のために残されています。

無視され、引数によらず半角全角の区別をしません

Mobile互換モード
次のように引数を処理します。
値 | 動作
0 | 半角全角の区別をせず、一律に1文字とみなします。
1 | 半角は1文字、全角は2文字とみなします。

例外

なし

使用例

var str = "I have a book. I have a pen.";
var i = -1;
while (true) {
    i = find(str, "have", i + 1);
    if (i < 0) {
        break;
    }
    print(i, "\n");
}

関連項目


fullp関数

説明

文字列中の半角文字を全角文字に変換します。

呼出形式

var s = fullp( 文字列 [, flag ] )

戻り値

半角文字を全角文字に変換した文字列

引数

String 文字列

元の文字列

boolean flag

濁点、半濁点の処理を指定します。

$TRUEの場合は濁点、半濁点を処理します。

$FALSEまたは省略した場合には、濁点、半濁点を処理しません。

例外

なし

使用例

print(fullp("ABCabc123+-"), "\n");
print(fullp("ｱｲｳ､ｶﾞｷﾞｸﾞ｡｢ﾊﾟﾋﾟﾌﾟ｣", $TRUE), "\n");

関連項目

halfp関数


halfp関数

説明

文字列中の全角文字を半角文字に変換します。

呼出形式

var s = halfp( 文字列 [, flag ] )

戻り値

全角文字を半角文字に変換した文字列

引数

String 文字列

元の文字列

boolean flag

濁点、半濁点の処理を指定します。

$TRUEの場合は濁点、半濁点を処理します。

$FALSEまたは省略した場合には、濁点、半濁点を処理しません。

例外

なし

使用例

print(halfp("ＡＢＣａｂｃ１２３＋−"), "\n");
print(halfp("アイウ、ガギグ。「パピプ」", $TRUE), "\n");

関連項目

fullp関数


left関数

説明

文字列の先頭（左端）から指定した長さだけ取り出します。

呼出形式

var s = left( 文字列, 長さ [, 処理単位 ] )

戻り値

取り出した文字列

引数

String 文字列

元の文字列

integer 長さ

取り出す文字数

integer 処理単位

互換性のために残されています。

無視され、引数によらず半角全角の区別をしません

Mobile互換モード
次のように引数を処理します。
値 | 動作
0 | 半角全角の区別をせず、一律に1文字とみなします。
1 | 半角は1文字、全角は2文字とみなします。

例外

なし

使用例

var str = "I have a book. I have a pen.";
var s = left(str, 14);
print(s, "\n");

関連項目

mid、right関数


length関数

説明

文字列の長さを求めます。

呼出形式

var n = length( 文字列 [, 処理単位 ] )

戻り値

指定した文字列の長さ

引数

String 文字列

長さを調べる文字列

integer 処理単位

互換性のために残されています。

無視され、引数によらず半角全角の区別をしません

Mobile互換モード
次のように引数を処理します。
値 | 動作
0 | 半角全角の区別をせず、一律に1文字とみなします。
1 | 半角は1文字、全角は2文字とみなします。

例外

なし

使用例

var s = "ｱｸｼｽｿﾌﾄ株式会社";
print(length(s), length(s, 1), "\n");

関連項目


lower関数

説明

文字列中の大文字を小文字に変換します。

呼出形式

var s = lower( 文字列 )

戻り値

大文字を小文字に変換した文字列

引数

String 文字列

元の文字列

例外

なし

使用例

var str = "I have a book. I have a pen.";
var s = lower(str);
print(s, "\n");

関連項目

upper関数


mid関数

説明

文字列の指定の位置から指定した長さの文字列を取り出します。位置は文字列の先頭を0として数えます。

呼出形式

var s = mid( 文字列, 位置, 長さ [, 処理単位 ] )

戻り値

取り出した文字列

引数

String 文字列

元の文字列

integer 位置

取り出しを開始する位置

integer 長さ

取り出す文字数

integer 処理単位

互換性のために残されています。

無視され、引数によらず半角全角の区別をしません

Mobile互換モード
次のように引数を処理します。
値 | 動作
0 | 半角全角の区別をせず、一律に1文字とみなします。
1 | 半角は1文字、全角は2文字とみなします。

例外

なし

使用例

var str = "I have a book. I have a pen.";
var s = mid(str, 9, 4);
print(s, "\n");

関連項目

left、right関数


replace関数

説明

文字列の指定した位置から指定した長さだけ削除して、その位置に置換文字列を挿入します。

呼出形式

var s = replace( 文字列, 位置, 長さ, 置換文字列 [, 処理単位 ] )

戻り値

置き換えた文字列

引数

String 文字列

元の文字列

integer 位置

文字列の中で操作を行う位置

integer 長さ

削除する長さ

String 置換文字列

置き換える文字列

integer 処理単位

互換性のために残されています。

無視され、引数によらず半角全角の区別をしません

Mobile互換モード
次のように引数を処理します。
値 | 動作
0 | 半角全角の区別をせず、一律に1文字とみなします。
1 | 半角は1文字、全角は2文字とみなします。

例外

なし

使用例

var s = "I have a book. I have a pen.";
s = replace(s, 9, 4, "pencil");
s = replace(s, 0, 1, "You");
print(s, "\n");

関連項目


right関数

説明

文字列の末尾（右端）から指定した長さだけ取り出します。

呼出形式

var s = right( 文字列, 長さ [, 処理単位 ] )

戻り値

取り出した文字列

引数

String 文字列

元の文字列

integer 長さ

取り出す文字数

integer 処理単位

互換性のために残されています。

無視され、引数によらず半角全角の区別をしません

Mobile互換モード
次のように引数を処理します。
値 | 動作
0 | 半角全角の区別をせず、一律に1文字とみなします。
1 | 半角は1文字、全角は2文字とみなします。

例外

なし

使用例

var str = "I have a book. I have a pen.";
var s = right(str, 13);
print(s, "\n");

関連項目

left、mid関数


split関数

説明

文字列をデリミタ文字列で区切り、その要素を取得します。

呼出形式

var s = split( 文字列, デリミタ文字列, 要素位置 )

戻り値

指定要素位置に該当する要素

指定した要素位置に該当する要素がない場合は空文字列を返します。

引数

String 文字列

元の文字列

String デリミタ文字列

区切り文字として使用する文字列

integer 要素位置

取り出す要素の位置

一番左側の要素が0となる番号で指定します。

例外

なし

使用例

var s = "1999/08/10";
print(split(s, "/", 0), "\n");  /* 1999 が切り出されます */
print(split(s, "/", 1), "\n");  /* 08 が切り出されます */
print(split(s, "/", 2), "\n");  /* 10 が切り出されます */

関連項目


str関数

説明

数値、日付、または文字列を文字列に変換します。

呼出形式

var s = str( 値 [, 書式文字列 ] )

戻り値

変換した文字列

引数

Object 値

変換する値

String 書式文字列

Formatプロパティを参照（省略可能）

例外

なし

使用例

var n = new Number(1234.56);
var d = sysdate();
var s = "string";
print(str(n), str(d), str(s), "\n");
print(str(n, "999,990.99"), "\n");
print(str(d, "WSWYY.MM.DD"), "\n");

関連項目

val関数

Formatプロパティ


strf関数

説明

書式指定文字列 に出現する%nを後続の引数str_nで指定する文字列で置き換えます。

%nは、書式指定文字列の次の引数を%1、その次を%2と指定します。

%nよりも引数の数が少ない場合、空文字列が指定されたとみなして、%nを削除します。

文字 "%" を書式指定文字列に含めたい場合は、"%%" のように重ねて指定してください。

ただし、%の次に数字が続かない場合は%がそのまま出力されます。

呼出形式

var s = strf( 書式指定文字列 [, str_1 [, str_2, ... ] ] )

戻り値

置き換えた文字列

引数

String 書式指定文字列

書式を指定した文字列

String str_n

置き換える文字列

例外

なし

使用例

var filename = "sample.txt";
MessageBox(strf("「%1」を削除します。よろしいですか？", filename), "確認", $OKCANCEL);

var y = 2011;
var m = 9;
var p = 120;
print(strf("%1年%2月の売上げ前年比は%3%%です\n", y, m, p));

var d = sysdate();
print(strf("今日は%1年%2月%3日です\n", year(d), month(d), day(d)));

関連項目


suuji関数

説明

数値を漢数字の文字列に変換します。数値の小数点以下は四捨五入されます。

呼出形式

var s = suuji( 数値 [, 表示形式 ] )

戻り値

漢数字に変換した文字列

引数

Number 数値

漢数字に変換する数値

integer 表示形式

数値が 321 の場合

1:三百二十一

2:参百弐拾壱

3:三二一

省略すると 1 の表示形式になります

例外

なし

使用例

var s = suuji(12345);
print(s, "\n");

関連項目


trim関数

説明

文字列の先頭と末尾の空白、改行コードをすべて除去し、文字列の途中の空白が連続する場合は１つにします。

呼出形式

var s = trim( 文字列 )

戻り値

空白を除去した文字列

引数

String 文字列

元の文字列

例外

なし

使用例

var s = "  あいうえお     かきくけこ  ";
print("[" + trim(s) + "]\n");

関連項目


upper関数

説明

文字列中の小文字を大文字に変換します。

呼出形式

var s = upper( 文字列 )

戻り値

小文字を大文字に変換した文字列

引数

String 文字列

元の文字列

例外

なし

使用例

var str = "I have a book. I have a pen.";
var s = upper(str);
print(s, "\n");

関連項目

lower関数


val関数

説明

文字列を数値に変換します。

呼出形式

var v = val( 文字列 )

戻り値

変換した数値

引数

String 文字列

数値に変換する文字列

例外

なし

使用例

var s1 = "123.456";
var s2 = "789";
var v1 = val(s1);
var v2 = val(s2);
print(s1 + s2, v1 + v2, "\n");

関連項目

str関数


日付関数

日付や時刻を処理する関数です。

名前 | 説明
datedif | 日付の差を計算します
dateval | 文字列を日付連番に変換します
day | 日を求めます
hour | 時を求めます
minute | 分を求めます
month | 月を求めます
second | 秒を求めます
year | 年を求めます
youbi | 曜日番号を求めます


datedif関数

説明

開始日から終了日までの期間を返します。

開始日と終了日の時刻は無視されます。

呼出形式

var y = datedif( 開始日, 終了日, 出力指定 )

戻り値

終了日と開始日の差を出力指定した値で返します。

引数

Date 開始日

開始日の日付

Date 終了日

終了日の日付

String 出力指定

"y" 経過年数

"m" 経過月数

"d" 経過日数

"md" 一月未満の日数の端数

"ym" 一年未満の月数の端数

"yd" 一年未満の日数の端数

例外

なし

使用例

var d1 = dateval("1964/8/10");
var d2 = sysdate();
var s = datedif(d1, d2, "y");

関連項目


dateval関数

説明

日付文字列の形式を指定します。日付文字列が日付として解釈できない場合、0を返します。

日付文字列に時刻を含めない場合、時刻は0時0分0秒となります。秒を含めない場合0秒となります。

呼出形式

var d = dateval( 日付文字列 )

戻り値

Dateオブジェクトを返します。

引数

String 日付文字列

以下のいずれかの形式を指定します。

"YY/MM/DD"

"YY/MM/DD HH24:MI"

"YY/MM/DD HH24:MI:SS"

"YYYY/MM/DD"

"YYYY/MM/DD HH24:MI"

"YYYY/MM/DD HH24;MI:SS"

例外

なし

使用例

var d = dateval("2002/2/28");

関連項目


day関数

説明

dateで表される日付の日の値を返します。

呼出形式

var d = day( date )

戻り値

1日から31日を表す数値を1〜31で返します。

それ以外は0になります。

引数

Date date

日を取り出すDateオブジェクト

例外

なし

使用例

var d = sysdate();
var t = day(d);

関連項目

year、month、youbi関数


hour関数

説明

dateで表される時刻の時の値を返します。

呼出形式

var h = hour( date )

戻り値

0時から23時を表す数値を0〜23で返します。

それ以外は0になります。

引数

Date date

時を取り出すDateオブジェクト

例外

なし

使用例

var d = sysdate();
var h = hour(d);

関連項目

minute、second関数


minute関数

説明

dateで表される時刻の分の値を返します。

呼出形式

var m = minute( date )

戻り値

0分から59分を表す数値を0〜59で返します。

それ以外は0になります。

引数

Date date

分を取り出すDateオブジェクト

例外

なし

使用例

var d = stsdate();
var m = minute(d);

関連項目

hour、second関数


month関数

説明

dateで表される日付の月の値を返します。

呼出形式

var m = month( date )

戻り値

1月から12月を表す数値を1〜12で返します。

それ以外は0になります。

引数

Date date

月を取り出すDateオブジェクト

例外

なし

使用例

var d = sysdate();
var m = month(d);

関連項目

year、day、youbi関数


second関数

説明

dateで表される時刻の秒の値を返します。

呼出形式

var s = second( date )

戻り値

0秒から59秒を表す数値を0〜59で返します。

それ以外は0になります。

引数

Date date

秒を取り出すDateオブジェクト

例外

なし

使用例

var d = sysdate();
var s = second(d);

関連項目

hour、minute関数


year関数

説明

dateで表される日付の年の値を返します。

呼出形式

var y = year( date )

戻り値

年を現す数値を1900〜2099の間で返します。

それ以外は0になります。

引数

Date date

年を取り出すDateオブジェクト

例外

なし

使用例

var d = sysdate();
var y = year(d);

関連項目

month、day、youbi関数


youbi関数

説明

dateで表される日付の曜日番号を返します。

呼出形式

var y = youbi( date )

戻り値

曜日番号は以下の通りです。

0:月　1:火　2:水　3:木　4:金　5:土　6:日

引数

Date date

曜日を取り出すDateオブジェクト

例外

なし

使用例

var d = sysdate();
var w = youbi(d);

関連項目

year、month、day関数


算術関数

算術関数は、一般的な数値計算に使用します。

名前 | 説明
abs | 数値の絶対値を求めます
and | 論理積を求めます
int | 浮動小数点型の数値の小数点以下の桁を切り捨てます
or | 論理和を求めます
rand | 0〜1の範囲の乱数を返します
round | 指定の桁で四捨五入します
rounddown | 指定の桁で切り捨てます
roundup | 任意の桁で切り上げます
roundm | 元の値を倍数で指定した値の倍数になるようにします
sign | 数値の符号を判定します
xor | 排他的論理和を求めます

小数点演算は、内部的に浮動小数点演算となるため、丸め誤差が発生することに注意してください。


abs関数

説明

数値の絶対値を求めます。

呼出形式

var a = abs( arg )

戻り値

引数で与えられる数値の絶対値を返します。

引数

Number arg

絶対値を求める数値

例外

なし

使用例

var a;
var b;
b = -123;
a = abs(b);    /* aは123となる */

関連項目

sign関数


and関数

説明

2つの数値の論理積を求めます。

呼出形式

var s = and( arg1, arg2 )

戻り値

演算結果

引数

Number arg1

対象になる数値。内部で自動的に32ビット整数に変換されます。

Number arg2

対象になる数値。内部で自動的に32ビット整数に変換されます。

例外

なし

使用例

var a;
a = and(0x0000FFFF, 0x4000C000);    /* aは0x0000C000となる */

関連項目

or、xor関数


int関数

説明

浮動小数点型の数値の小数点以下の桁を切り捨てます。

呼出形式

var a = int( arg )

戻り値

引数で与えられる数値の小数点以下の桁を切り捨てた数値を返します。

引数

Number arg

元の数値

例外

なし

使用例

var a;
var b;
b = 123.456;
a = int(b);    /* aは123となる */

関連項目


or関数

説明

2つの数値の論理和を求めます。

呼出形式

var s = or( arg1, arg2 )

戻り値

演算結果

引数

Number arg1

対象になる数値。内部で自動的に32ビット整数に変換されます。

Number arg2

対象になる数値。内部で自動的に32ビット整数に変換されます。

例外

なし

使用例

var a;
a = or(0x40000000, 0x0000C000);    /* aは0x4000C000となる */

関連項目

and、xor関数


rand関数

説明

乱数を発生させます。

呼出形式

var r = rand( )

戻り値

0〜1の範囲の乱数を返します。

引数

なし

例外

なし

使用例

var a;
a = rand();    /* aは0〜1の間となる */

関連項目


round関数

説明

指定の桁で四捨五入します。

桁数を省略した場合は、小数点以下を四捨五入します。

round関数の四捨五入（桁数= 0の場合）は、

値＋0.5以下の整数のうち最大(正の方向)の値

となります。

呼出形式

var r = round( arg, n )

戻り値

指定した桁数を四捨五入した値を返します。

引数

Number arg

元の数値

Number n

四捨五入をする桁の位置

例外

なし

使用例

print(round(12345.678, -2)); /* 12300となる */
print(round(12345.678));     /* 12346となる */
print(round(12345.678, 2));  /* 12345.68となる */

print(round(0.49));  /* 0となる */
print(round(0.50));  /* 1となる */
print(round(0.51));  /* 1となる */
print(round(-0.49)); /* 0となる */
print(round(-0.50)); /* 0となる */
print(round(-0.51)); /* -1となる */

関連項目

rounddown、roundup、roundm関数


rounddown関数

説明

指定の桁で切り捨てます。

桁数が正の場合小数点以下を指定した桁で切り捨てます。

桁数が負の場合整数部分を指定した桁で切り捨てます。

桁を省略した時小数点以下を切り捨てます。

rounddown関数の切り捨て（桁数= 0の場合）は、

値以下の整数のうち最大(正の方向)の値

となります。

呼出形式

var r = rounddown( arg, n )

戻り値

指定した桁以下を切り捨てた数値を返します。

引数

Number arg

元の数値

Number n

切り捨てをする桁の位置

例外

なし

使用例

print(rounddown(12345.678, -2)); /* 12300となる */
print(rounddown(12345.678));     /* 12345となる */
print(rounddown(12345.678, 2));  /* 12345.67となる */

print(rounddown(0.50));  /* 0となる */
print(rounddown(-0.50)); /* -1となる */

関連項目

round、roundup、roundm関数


roundup関数

説明

指定の桁で切り上げます。

切り上げをする桁位置が正の場合、小数点以下を指定した桁で切り上げます。

切り上げをする桁位置が負の場合、整数部分を指定した桁で切り上げます。

切り上げをする桁位置を省略した時、小数点以下を切り上げます。

roundup関数の切り上げ（桁数= 0の場合）は、

値以上の整数のうち最小(負の方向)の値

となります。

呼出形式

var r = roundup( arg, n )

戻り値

指定した桁以下を切り上げた数値を返します。

引数

Number arg

元の数値

Number n

切り上げをする桁の位置

例外

なし

使用例

print(roundup(12345.678, -2)); /* 12400となる */
print(roundup(12345.678));     /* 12346となる */
print(roundup(12345.678, 2));  /* 12345.68となる */

print(roundup(0.50));  /* 1となる */
print(roundup(-0.50)); /* 0となる */

関連項目

round、rounddown、roundm関数


roundm関数

説明

元の値を指定した値の倍数となるように丸めます。

丸め方法に0より大きい値を指定すると、切り上げで丸めます。

丸め方法に0を指定するか省略した場合、四捨五入で丸めます。

丸め方法に負数を指定すると切り捨てで丸めます。

呼出形式

var r = roundm( arg, n, m )

戻り値

指定した値の倍数に丸めた数値を返します。

引数

Number arg

元の数値

Number n

丸めの基準になる数値

Number m

丸めの方法

例外

なし

使用例

var a;
var b;
b = 50.67;
a = roundm(b, 10, 1);  /* aは60となる */
a = roundm(b, 10);     /* aは50となる */
a = roundm(b, 10, -1); /* aは50となる */

関連項目

round、rounddown、roundup関数


sign関数

説明

数値の符号を判定します。

呼出形式

var s = sign( arg )

戻り値

符号を判定し以下の値を返します。

-1：数値は負数

0：数値はゼロ

1：数値は正数

引数

Number arg

符号を判定する数値

例外

なし

使用例

var a;
a = sign(2);  /* aは1となる */
a = sign(-1); /* aは-1となる */
a = sign(0);  /* aは0となる */

関連項目

abs関数


xor関数

説明

2つの数値の排他的論理和を求めます。

呼出形式

var s = xor( arg1, arg2 )

戻り値

演算結果

引数

Number arg1

対象になる数値。内部で自動的に32ビット整数に変換されます。

Number arg2

対象になる数値。内部で自動的に32ビット整数に変換されます。

例外

なし

使用例

var a;
a = xor(0x0000FFFF, 0x4000C000);    /* aは0x40003FFFとなる */

関連項目

or、and関数


統計関数

統計関数は、平均や分散など統計処理に関係する関数です。

名前 | 説明
avg | 平均値を求めます
max | 最大値を求めます
min | 最小値を求めます
std | データを母集団全体として標準偏差を求めます
stds | データを抽出サンプルとして標準偏差を求めます
var | データを母集団全体として分散を求めます
vars | データを抽出サンプルとして分散を求めます
rank | 指定したデータの順位を求めます
sum | 合計を求めます


avg関数

説明

平均値を求めます。

呼出形式

var a = avg( 範囲 )

戻り値

範囲内のデータの平均値

引数

Date 又はNumber 範囲

配列オブジェクト名

例外

なし

使用例

var arr = new Number[10];
for (var n = 0; n < arr.Length; n++) {
    arr[n] = n + 1;
}
print(avg(arr), "\n");

関連項目

sum関数


max関数

説明

最大値を求めます。

呼出形式

var m = max( 範囲 )

戻り値

範囲内のデータの最大値

引数

Date 又はNumber 範囲

配列オブジェクト名

例外

なし

使用例

var arr = new Number[10];
for (var n = 0; n < arr.Length; n++) {
    arr[n] = n + 1;
}
print(max(arr), "\n");

関連項目

min関数


min関数

説明

最小値を求めます。

呼出形式

var m = min( 範囲 )

戻り値

範囲内のデータの最小値

引数

Date 又はNumber 範囲

配列オブジェクト名

例外

なし

使用例

var arr = new Number[10];
for (var n = 0; n < arr.Length; n++) {
    arr[n] = n + 1;
}
print(min(arr), "\n");

関連項目

max関数


std関数

説明

データを母集団全体とみなして、その標準偏差を求めます。

呼出形式

var s = std( 範囲 )

戻り値

範囲内のデータの標準偏差

引数

Number 範囲

配列オブジェクト名

例外

なし

使用例

var arr = new Number[20];
for (var n = 0; n < arr.Length; n++) {
    arr[n] = int(rand() * 10);
    print(arr[n], " ");
}
print(std(arr), "\n");

関連項目

stds関数


stds関数

説明

データを母集団からの抽出サンプルとして、母集団の標準偏差を求めます。

呼出形式

var s = stds( 範囲 )

戻り値

範囲内のデータの標準偏差

引数

Number 範囲

配列オブジェクト名

例外

なし

使用例

var arr = new Number[20];
for (var n = 0; n < arr.Length; n++) {
    arr[n] = int(rand() * 10);
    print(arr[n], " ");
}
print(stds(arr), "\n");

関連項目

std関数


var関数

説明

データを母集団全体とみなして、その分散を求めます。

呼出形式

var v = var( 範囲 )

戻り値

範囲内のデータの分散

引数

Date 又はNumber 範囲

配列オブジェクト名

例外

なし

使用例

var arr = new Number[20];
for (var n = 0; n < arr.Length; n++) {
    arr[n] = int(rand() * 10);
    print(arr[n], " ");
}
print(var(arr), "\n");

関連項目

vars関数


vars関数

説明

データを母集団からの抽出サンプルとして、母集団の分散を求めます。

呼出形式

var v = vars( 範囲 )

戻り値

範囲内のデータの分散

引数

Date 又はNumber 範囲

配列オブジェクト名

例外

なし

使用例

var arr = new Number[20];
for (var n = 0; n < arr.Length; n++) {
    arr[n] = int(rand() * 10);
    print(arr[n], " ");
}
print(vars(arr), "\n");

関連項目

var関数


rank関数

説明

指定したデータの順位を求めます。

呼出形式

var r = rank( 指定データ, 順序, 範囲 )

戻り値

指定データの範囲内のデータ内での順位

データ内に該当がない場合は-1を返します

引数

Date 又はNumber 指定データ

順位を求めるデータ

Number 順序

0:降順 1:昇順

Date 又はNumber 範囲

配列オブジェクト名

例外

なし

使用例

var arr = new Number[20];
for (var n = 0; n < arr.Length; n++) {
    arr[n] = int(rand() * 10);
    print(arr[n], " ");
}
print("arr[0]の値は"+str(arr[0])+"です。順位は"+str(rank(arr[0], 0, arr))+"位です\n");

関連項目


sum関数

説明

合計を求めます。

呼出形式

var s = sum( 範囲 )

戻り値

指定した範囲のデータの合計

引数

Date 又はNumber 範囲

配列オブジェクト名

例外

なし

使用例

var arr = new Number[10];
for (var n = 0; n < arr.Length; n++) {
    arr[n] = n + 1;
}
print(sum(arr), "\n");

関連項目

avg関数


財務関数

財務関数は、財務関係の関数です。

名前 | 説明
cterm | 元金が目標満期額に達する期間
db | 定率償却法での減価償却額
ddb | 倍率償却法での減価償却額
fv | 毎期一定投資による将来価値
gankin | 元金均等返済の利息
ganri | 元利均等返済の利息
irr | 内部利益率
npv | キャッシュフローの正味現在価値
pmt | 借入金の元利均等返済額
pv | 投資の現在価値
rate | 期間利率
sln | 定額法での償却額
syd | 算術級数法での減価償却額
term | 積立期間数


cterm関数

説明

元金が目標満期額に達する期間を求めます。

呼出形式

var c = cterm( 利息, 目標満期額, 元金 )

戻り値

元金を利率で運用した場合に目標満期額に達するまでの期間（年）を返します

引数

Number 利息

5%の場合は0.05を指定します。

Number 目標満期額

目標の金額

Number 元金

例外

なし

使用例

var a = cterm(0.05, 1000000, 800000);
/* aには、元金80万を年率5％で運用して100万にする為の年数が入る */

関連項目


db関数

説明

指定した年次の定率償却法での減価償却額を求めます。

呼出形式

var d = db( 取得原価, 残存価格, 耐用年数, 使用年数 )

戻り値

使用年数で指定した年次の定率償却法での減価償却額を返します。

引数

Number 取得原価

Number 残存価格

Number 耐用年数

Number 使用年数

例外

なし

使用例

関連項目


ddb関数

説明

指定した年次の倍率償却法での減価償却額を求めます。

呼出形式

var d = ddb( 取得原価, 残存価格, 耐用年数, 使用年数 )

戻り値

使用年数で指定した年次の倍率償却法での減価償却額を返します。

引数

Number 取得原価

Number 残存価格

Number 耐用年数

Number 使用年数

例外

なし

使用例

関連項目


fv関数

説明

毎期一定投資による将来価値を求めます。

呼出形式

var f = fv( 積立額, 利率, 期間数, 積立日 )

戻り値

期間ごとの複利で計算し、満期時の金額を返します。

引数

Number 積立額

毎期の積立額。

Number 利率

月あたりの利率。小数で指定します。

Number 期間数

積立の回数。

Number 積立日

期首積立のとき１、期末積立のとき0。

省略すると期末積立。

例外

なし

使用例

関連項目


gankin関数

説明

元金均等返済の利息を求めます。毎月の返済の場合は利率は月あたりの利率を小数で指定します。

呼出形式

var g = gankin( 借入額, 利率, 返済回数, 期 )

戻り値

元金均等返済の利息を返します。

引数

Number 借入額

Number 利率

Number 返済回数

Number 期

例外

なし

使用例

関連項目


ganri関数

説明

元利均等返済の利息を求めます。毎月の返済の場合は利率は月あたりの利率を小数で指定します。

呼出形式

var g = ganri( 借入額, 利率, 返済回数, 期 )

戻り値

元利均等返済の利息を返します。

引数

Number 借入額

Number 利率

Number 返済回数

Number 期

例外

なし

使用例

関連項目


irr関数

説明

投資によって生じるキャッシュフローから内部利益率を求めます。

呼出形式

var i = irr( 推定利益率, キャッシュフロー範囲 )

戻り値

投資によって生じるキャッシュフローからの内部利益率を返します。また、推定利益率をもとに近似計算を繰り返しますが32回近似計算を繰り返しても誤差が0.0000001未満にならなかった場合はエラー値を返します。この場合は推定利益率を設定し直す必要があります。

引数

Number 推定利益率

推定される利益率

Number キャッシュフロー範囲

キャッシュフローのデータを持つ、配列化されたオブジェクトを指定します。（初期投資額は負で指定します。）

例外

なし

使用例

関連項目


npv関数

説明

キャッシュフローの正味現在価値を求めます。

呼出形式

var n = npv( 利率, キャッシュフロー範囲 )

戻り値

キャッシュフローの正味現在価値を返します。

引数

Number 利率

Number キャッシュフロー範囲

配列化されているオブジェクト

例外

なし

使用例

関連項目


pmt関数

説明

借入額を利率で返済回数の元利均等返済で借り入れた場合の各期の返済額を求めます。毎月の返済の場合は利率は月あたりの利率を小数で指定します。

呼出形式

var p = pmt( 借入額, 利率, 返済回数, 支払日 )

戻り値

借入額を利率で返済回数の元利均等返済で借り入れた場合の各期の返済額を返します。

引数

Number 借入金

Number 利率

Number 返済回数

返済の回数

Number 支払日

期首払いのとき１、期末払いのとき0。

省略すると期末払い。

例外

なし

使用例

関連項目


pv関数

説明

毎期積立額を期間数積み立てた金額を現在の価値に換算します。毎月の積立の場合は利率は月あたりの利率を小数で指定します。

呼出形式

var p = pv( 積立額, 利率, 期間数, 支払日 )

戻り値

毎期積立額を期間数積み立てた金額を現在の価値に換算し返します。

引数

Number 積立額

Number 利率

Number 期間数

積立の回数

Number 支払日

期首払いのとき1、期末払いのとき0。

省略すると期末払い。

例外

なし

使用例

関連項目


rate関数

説明

元金が期間数で目標額に達するための利率を求めます。

呼出形式

var r = rate( 目標額, 元金, 期間数 )

戻り値

元金が期間数で目標額に達するための利率を返します。

引数

Number 目標額

Number 元金

Number 期間数

例外

なし

使用例

関連項目


sln関数

説明

定額法での償却額を求めます。

呼出形式

var s = sln( 取得原価, 残存価値, 耐用年数 )

戻り値

定額法での減価償却額を返します。

引数

Number 取得原価

Number 残存価値

Number 耐用年数

例外

なし

使用例

関連項目


syd関数

説明

算術級数法での減価償却額を求めます。

呼出形式

var s = syd( 取得原価, 残存価値, 耐用年数, 使用年数 )

戻り値

使用年数で指定した年次の算術級数法での減価償却額を返します。

引数

Number 取得原価

Number 残存価値

Number 耐用年数

Number 使用年数

例外

なし

使用例

関連項目


term関数

説明

積立額を利率で積み立てた場合に目標額に達するまでの期間を求めます。

呼出形式

var t = term( 積立額, 利率, 目標額, 積立日 )

戻り値

積立額を利率で積み立てた場合に目標額に達するまでの期間を返します。

引数

Number 積立額

Number 利率

Number 目標額

Number 積立日

期首積立のとき１、期末積立のとき0。

省略すると期末積立。

例外

なし

使用例

関連項目


システム関数

システム関数は、システムに関する情報の取得に使用します。

名前 | 説明
cachedate | 現在接続しているサーバから取得しているキャッシュ情報の最も新しい更新日付を返します
clearCoreDump | 出力済みのコアダンプファイルを削除します
debugMessage | デバッグ用メッセージをBiz/Designerに表示します
deleteCache | キャッシュを削除します
decodeURL | 文字列をURLデコードします
encodeURL | 文字列をURLエンコードします
findHttpSession | 指定のHTTPセッションを検索、作成します
getBookmark | ブックマークリストを取得します
getCoreDump | コアダンプファイルのFileオブジェクトを取得します
getCoreDumpList | 出力済みのコアダンプファイルの一覧を取得します
getHttpSession | 現在のHTTPセッションを取得します
hasConnectionLicense | 接続ライセンスを確認します
importConnectionLicense | 接続ライセンス証明書をインポートします
link | ハイパーリンクを実行します
print | デバッグ用メッセージをBiz/Designerに表示します
remBookmark | ブックマークのエントリを削除します
setBookmark | ブックマークのエントリを追加、変更します
setPalette | 色定数の色を変更します
sleep | 指定時間だけ処理を停止します
syncObject | GUI変更を強制反映します
sysdate | 現在のシステム日付、時刻を返します


cachedate関数

説明

現在接続しているサーバ、ポートから取得し保存されているキャッシュデータのうち、最も更新日付が新しいデータの更新日付を求めます。キャッシュデータが存在しない場合、1970年1月1日0時0分0秒が返り、キャッシュを使用していない場合、現在のシステム日付が返ります。この関数が返す日付はタイムゾーン設定に関わらずGMT（グリニッジ標準時刻）で表現されます。

呼出形式

var c = cachedate( )

戻り値

現在接続しているサーバから取得しているキャッシュ情報の最も新しい更新日付を返します。

引数

なし

例外

なし

使用例

var d = cachedate();
//.MessageBox(d);

関連項目


debugMessage関数

説明

デバッグ用メッセージをBiz/Designerに表示します。Biz/Designer上でのデバッグ中以外は無視されます。

省略形であるprint関数も利用できます。

呼出形式

debugMessage( msg_1 [, msg_2 [, msg_3 ... ] ] )

戻り値

なし

引数

Object msg_n

表示するオブジェクトを指定します。

オブジェクトは文字列に変換されて表示されます。

行末で改行するためには、最後に "\n" を指定します。

例外

なし

使用例

var d = 100;
var s = "sample";
debugMessage(d, s, "\n");

関連項目

print関数


deleteCache関数

説明

URIで示されるキャッシュを削除します。

この関数は、旧バージョンとの互換性のために残されていますが、利用可能です。内部的にRoot.DeleteCacheメソッドの呼び出しに振り替えられます。新しいプログラムでは、Root.DeleteCacheメソッドを利用してください。

呼出形式

deleteCache( [ URI ] )

戻り値

なし

引数

String URI

削除するURIを指定します。

URIを省略した場合は、deleteCache関数を呼び出したCRSファイルをダウンロードしたサーバからのキャッシュをすべて削除します。

URIの末尾に * (アスタリスク)を指定した場合、前方一致するURLを全て削除します。削除対象となるキャッシュは、URLの文字列比較での前方一致で決定されますので、ディレクトリ名やファイル名の区別は行われません。

URIには、プロトコルとホスト名を指定することはできず、含めた場合でも無視されます。従って、deleteCache関数を呼び出したCRSファイルをダウンロードしたサーバ以外のサーバから生成されているキャッシュを削除することはできません。これは、意図せずに別のアプリケーションで利用されているキャッシュを削除しないようにするために設けられた制約です。

この制約による注意すべき点として、イメージファイルのキャッシュ制御があります。SVGやImageLabelなどにURLでロードされるイメージファイルもキャッシュの対象となりますが、イメージファイルをアプリケーションとは異なるサーバからダウンロードしている場合、スクリプトからそのイメージファイルのキャッシュを削除する方法がなくなります。

例外

なし

使用例

deleteCache("/app1/form1.crs");

関連項目

cachedate関数

Root.DeleteCacheメソッド


decodeURL関数

説明

URLエンコードされた文字列をデコードします。

呼出形式

var ret = decodeURL( str )

戻り値

デコードされた文字列を返します。

引数

String str

デコードする文字列を指定します。

例外

なし

使用例

var url = decodeURL("http://server/app1?name=%83%41%83%4e%83%56%83%58&value=Browser%26Designer");
print(url, "\n");

関連項目

encodeURL関数


encodeURL関数

説明

文字列をURLエンコードします。

呼出形式

var ret = encodeURL( str )

戻り値

エンコードされた文字列を返します。

引数

String str

エンコードする文字列を指定します。

例外

なし

使用例

var name = "ビズブラウザ＆デザイナ";
var value = "Biz/Browser&Designer";
var url = "http://server/app1?name=" + encodeURL(name) + "&value=" + encodeURL(value);
print(url, "\n");

関連項目

decodeURL関数


findHttpSession関数

指定したURLに対応するHttpSessionオブジェクトを検索して返します。

この関数は、旧バージョンとの互換性のために残されていますが、利用可能です。内部的にHttpSession.FindSessionメソッドの呼び出しに振り替えられます。新しいプログラムでは、HttpSession.FindSessionメソッドを利用してください。


getBookmark関数

ブックマークリストを取得します。

この関数は、旧バージョンとの互換性のために残されていますが、利用可能です。内部的にRoot.GetBookmarkメソッドの呼び出しに振り替えられます。新しいプログラムでは、Root.GetBookmarkメソッドを利用してください。


getHttpSession関数

実行中のCRSをダウンロードしたセッションをHttpSessionオブジェクトとして返します。

この関数は、旧バージョンとの互換性のために残されていますが、利用可能です。内部的にHttpSession.GetSessionメソッドの呼び出しに振り替えられます。新しいプログラムでは、HttpSession.GetSessionメソッドを利用してください。


hasConnectionLicense関数

説明

URLで示される接続先Webサーバに対して、接続ライセンスが登録されているか調べます。

接続ライセンスの確認は、URLのプロトコル名（http、httpsなど）、ホスト名、ポート番号を示す文字列（http://example.com:8080など）で識別されます。IPアドレスの直接表記やホスト名の別名など、同一の接続先を表すさまざまな表記方法がありますが、接続ライセンス証明書に記載されているWebサーバ情報と一致する表記だけが有効になります。

呼出形式

var flag = hasConnectionLicense( URL )

戻り値

URLへの接続ライセンスが登録されている場合は$TRUE、それ以外は$FALSEが返ります。

引数

String URL

確認する接続先WebサーバのURL

例外

なし

使用例

if (!hasConnectionLicense("http://server")) {
    importConnectionLicense("http://server/License.xml");
}

関連項目

importConnectionLicense関数


importConnectionLicense関数

説明

接続ライセンスをインポートします。URLで示される場所から接続ライセンス証明書をダウンロードしてBiz/Browserに登録します。

URLは接続ライセンス証明書に記載されている接続先URLとは無関係です。接続ライセンス証明書は任意のWebサーバに配置できます。

インポートする接続ライセンスと同じシリアル番号を持つ接続ライセンスが既に登録されている場合は、発行日が新しい場合は古いものが上書きされ、発行日が古い場合は例外が発生します。

Android版
Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、OSに対してユーザー操作で許可をとる必要があります。
詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

importConnectionLicense( URL )

戻り値

なし

引数

String URL

ライセンス証明書ファイルをダウンロードするURL

例外

CRS-394

importのURLが不正です

CRS-396

セキュリティ保護のため、指定サーバへの接続は制限されています

CRS-331

通信エラー

CRS-398

ライセンス証明書が正規のライセンスとして認識できませんでした

CRS-399

指定のライセンス証明書よりも新しいライセンスが既に登録されています

使用例

if (!hasConnectionLicense("http://server")) {
    importConnectionLicense("http://server/License.xml");
}

関連項目

hasConnectionLicense関数


link関数

ハイパーリンクを実行します。

この関数は、旧バージョンとの互換性のために残されていますが、利用可能です。内部的にRuntime.ShellLinkメソッドの呼び出しに振り替えられます。新しいプログラムでは、Runtime.ShellLinkメソッドを利用してください。


print関数

説明

デバッグ用メッセージをBiz/Designerに表示します。Biz/Designer上でのデバッグ中以外は無視されます。

debugMessage関数と同じ機能です。

呼出形式

print( msg_1 [, msg_2 [, msg_3 ... ] ] )

戻り値

なし

引数

Object msg_n

表示するオブジェクトを指定します。

オブジェクトは文字列に変換されて表示されます。

行末で改行するためには、最後に "\n" を指定します。

例外

なし

使用例

var d = 100;
var s = "sample";
print(d, s, "\n");

関連項目

debugMessage関数


remBookmark関数

ブックマークのエントリを削除します。

この関数は、旧バージョンとの互換性のために残されていますが、利用可能です。内部的にRoot.RemBookmarkメソッドの呼び出しに振り替えられます。新しいプログラムでは、Root.RemBookmarkメソッドを利用してください。


setBookmark関数

ブックマークのエントリを追加、変更します。

この関数は、旧バージョンとの互換性のために残されていますが、利用可能です。内部的にRoot.SetBookmarkメソッドの呼び出しに振り替えられます。新しいプログラムでは、Root.SetBookmarkメソッドを利用してください。


setPalette関数

説明

色定数の色を変更します。

呼出形式

setPalette( color, R, G, B )

戻り値

なし

引数

integer color

変更する0から始まる色番号を指定します。$REDの色を変える場合には$RED-1を指定します。0から115を指定することができます。

integer R

新しい色の赤の強さを0から255の範囲で指定します。

integer G

新しい色の緑の強さを0から255の範囲で指定します。

integer B

新しい色の青の強さを0から255の範囲で指定します。

例外

なし

使用例

setPalette(8, 128, 128, 255);

関連項目


sleep関数

説明

指定時間だけ処理を停止します。

呼出形式

sleep( timeSec );

戻り値

なし

引数

Number timeSec

処理を停止する時間を秒単位で指定します。

小数点第三位まで有効です。(実際に停止できる時間の精度はシステムによって異なります)

負の値を指定するとFUNC-4の例外が発生します。

例外

FUNC-4

引数の値が不正です

使用例

/* TextBox1に時間を入力 */
var sleeptime = val(Form1.TextBox1.Value);
sleep(sleeptime);

関連項目


syncObject関数

説明

Biz/Browserではスクリプト実行エンジンとGUI操作のスレッド分離し非同期に実行することでパフォーマンスを向上させています。そのためスクリプトの実行後に非同期にGUIへの値の反映が行われます。

弊害としてスクリプト実行中にGUIの状態が変更されること確認して動作するコーディングが記述できません。

この関数を使用すると直ちにGUIへの状態同期を行います。

状態同期を行うことで、スクリプト中でGUIの変化を意識したコーディングを行うことができます。

利用上の注意

この関数は通常のBiz/Browserの動作シーケンスを強制的に変更します。ループの中で連続的に実行したりした場合、パフォーマンスが低下する、GUIの更新が正常に行われないなどの弊害が発生する場合があります。

出来る限りワンポイントで利用することを奨励します。

呼出形式

syncObject( )

戻り値

なし

引数

なし

例外

なし

使用例

Function OnTouch(e) {
    /* 処理中ダイアログ表示*/
    Get("Dialog1.crs");

    /* GUIを同期してダイアログ表示 */
    syncObject();

    /* 時間のかかる処理 */
    var COUNT = 1000;
    for (var i = 0; i < COUNT; i++) {
        /* 処理実行 */
    }
    /* ダイアログ削除 */
    Dialog1.Delete();
}

関連項目


sysdate関数

説明

現在のシステム日付、時刻を求めます。

呼出形式

var d = sysdate( )

戻り値

現在のシステム日付、時刻を返します。

引数

なし

例外

なし

使用例

var d = sysdate();
print(d, "\n");

関連項目


パッケージとクラス

この章では、CRSスクリプトでパッケージとクラスを利用する詳細な方法を説明します。

パッケージ

名前 | 説明
System | CRS言語仕様に含まれるネイティブクラスのパッケージです
Standard | 標準GUIパッケージです
Extension3 | Biz/Browser 3.0で追加された拡張GUIパッケージです
Extension4 | Biz/Browser 4.0で追加された拡張GUIパッケージです
Extension5 | Biz/Browser 5.0で追加された拡張GUIパッケージです
Extension6 | Biz/Browser HTで追加された拡張GUIパッケージです
CSV | CSV（カンマ区切りテキスト）形式のデータを扱うためのパッケージです
XML | XML形式のデータを扱うためのパッケージです
DB | データベースを扱うためのパッケージです
HTTP | WEBサーバと通信するためのパッケージです
FTP | FTPサーバと通信するためのパッケージです
Runtime | 実行環境に依存した動作を行うクラスを集めたパッケージです
Converter | コンバート関連のクラスを集めたパッケージです
Security | セキュリティ関連のクラスを集めたパッケージです
JSON | JSON形式のデータを扱うためのパッケージです
Speech | 音声操作の機能を扱うためのパッケージです
SmaPri | SmaPri Libraryを使用し、サトー製プリンタと連携するためのパッケージです。
OCR | 文字認識の機能を扱うためのパッケージです


Systemパッケージ

CRS言語仕様に含まれるネイティブクラスのパッケージです。

クラス

API | 名前 | 説明
4 | Array | 動的配列を保持します
4 | ByteArray | バイナリデータを保持します
4 | Date | 日時を保持します
4 | Event | CRSプログラムで発生するイベントです
4 | Exception | CRSプログラムで発生する例外です
6 | Fixed | 固定小数点形式の数値を保持します
4 | Math | 数学計算機能を集めたクラスです
4 | NetObject | CRSファイルが実行可能なクラスの基底クラスです
4 | Number | 数値を保持します
4 | Object | すべてのクラスの基底クラスです
4 | Record | 複数のオブジェクトをまとめるためのクラスです
6 | RegexMatcher | 正規表現エンジンです
6 | RegexPattern | 正規表現パターンを保持します
4 | String | 文字列を保持します


Arrayクラス

Object
 | Array

動的配列を保持するクラスです。

CRSプログラムでは、Arrayクラスと配列オブジェクトの2種類の方法で配列を扱うことができます。

Arrayクラスでは各要素に特定の型を指定する必要はなく、個々の要素に別々の型を持つオブジェクトや数値、文字列などの値を格納することができます。

Arrayクラスは配列オブジェクトとは異なり、要素の数は自動的に拡張されます。

"[ ]"により添え字で要素にアクセスすることができますが、添え字には数字だけではなく文字を使うこともできます。（連想配列）

添え字に文字列を使った連想配列と、数値を使った配列では挙動が異なる点に注意してください。添え字が数値の場合にはソート可能ですが、連想配列ではソートすることはできません。

また、for in 文で要素を取り出す場合、要素の順序は保証されません。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


Arrayプロパティ

API version 4

プロパティ

iOSAndroidWindows

Arrayクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Length | R | integer | 配列要素の数
4 | Value | R | String | 配列要素の文字列表現

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Array.Lengthプロパティ

Arrayが格納している配列要素の数です。

このプロパティは読み込み専用で変更することはできません。


Array.Valueプロパティ

現在格納している配列要素を表す文字列です。

ToStringメソッドの結果と同様です。

このプロパティは読み込み専用で変更することはできません。


Arrayメソッド

API version 4

メソッド

iOSAndroidWindows

Arrayクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | Arrayオブジェクトを初期化します
4 | Erase | 指定位置の要素または全ての要素を削除します
4 | Join | Arrayの各要素を指定した区切り文字で区切った文字列で返します
4 | Reverse | Arrayの各要素の順序を反転します
4 | Sort | Arrayの各要素を昇順に並べ替えます
4 | ToString | Arrayの各要素をカンマ区切りの文字列で返します

クラス概要

基本クラスのメソッド


Arrayコンストラクタ

説明

Arrayオブジェクトを初期化します。

item_nを指定した場合、item_nを配列要素として初期化されます。

lenを指定した場合、len個の空の要素として初期化されます。

呼出形式

var arr = new Array( [ item_1 [, item_2 [, … ] ] ] )

var arr = new Array( len )

戻り値

Arrayオブジェクト

引数

Object item_n

配列要素とするオブジェクト

Integer len

配列の要素数

例外

なし

使用例

var arr1 = new Array("test1", "test2", "test3");
var arr2 = new Array(3);
arr2[0] = "test1";
arr2[1] = "test2";
arr2[2] = "test3";
print(arr1.ToString(), "\n");
print(arr2.ToString(), "\n");

関連項目


Array.Eraseメソッド

説明

指定位置の要素または全ての要素を削除します。

呼出形式

arr.Erase( [ index ] )

戻り値

なし

引数

index

削除したい要素を指定するインデックスを指定します。

indexが数値の場合、数値を添え字にもつ後続の要素は前方に詰められます。

indexを省略した場合、全ての要素を削除します。

例外

なし

使用例

var arr = new Array("test1", "test2", "test3", "test4");
print(arr, "\n");
arr.Erase(2);
print(arr, "\n");
arr.Erase();
print(arr.Length, "\n");

関連項目


Array.Joinメソッド

説明

Arrayの各要素をseparaterで区切られた文字列で返します。

呼出形式

var data = arr.join( separater )

戻り値

Arrayの各要素を結合した文字列を返します。

引数

String seperater

要素を結合するセパレータ文字

例外

なし

使用例

var arr = new Array;
arr[0] = "test1";
arr[1] = "test2";
arr[2] = "test3";
print(arr.Join("-"), "\n");

関連項目


Array.Reverseメソッド

説明

Arrayの各要素の順序を反転します。

呼出形式

arr.Reverse( )

戻り値

なし

引数

なし

例外

なし

使用例

var arr = new Array;
arr[0] = "test1";
arr[1] = "test2";
arr[2] = "test3";
print(arr.ToString(), "\n");
arr.Reverse();
print(arr.ToString(), "\n");

関連項目


Array.Sortメソッド

説明

Arrayの各要素を昇順に並べ替えます。

呼出形式

arr.Sort( )

戻り値

なし

引数

なし

例外

なし

使用例

var arr = new Array;
arr[0] = "test2";
arr[1] = "test3";
arr[2] = "test1";
print(arr.ToString(), "\n");
arr.Sort();
print(arr.ToString(), "\n");

関連項目


Array.ToStringメソッド

説明

Arrayの各要素をカンマ区切りの文字列で返します。

呼出形式

var data = arr.ToString( )

戻り値

Arrayの各要素を文字列として結合した文字列を返します。

引数

なし

例外

なし

使用例

var arr = new Array;
arr[0] = "test1";
arr[1] = "test2";
arr[2] = "test3";
print(arr.ToString(), "\n");

関連項目


Arrayイベント

API version 4

イベント

iOSAndroidWindows

Arrayクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Arrayオペレータ

API version 4

オペレータ

iOSAndroidWindows

Arrayクラスには以下のオペレータが定義されています。

API | オペレータ | 説明
4 | Array[ ] | 要素を配列形式で取り出します

クラス概要


Array[ ] オペレータ

説明

Arrayの要素に配列形式でアクセスするオペレータです。

呼出形式

var obj = arr[ indx ]

戻り値

indxで指定した要素のリファレンスを返します。indxに該当する要素が見つからない場合、NULLを指すリファレンスが返され、要素数は拡張されます。

引数

indx

数値または文字列の要素位置を指定する添え字

indxに数値を指定した場合、同じ値となる文字列と同じ要素を示します。例えば、arr[ 10 ] と arr[ "10" ] は同じ意味となります。

indxに数値を指定する場合、0以上 2147483646以下の値を指定できます。

例外

なし

使用例

var arr = new Array("test1", "test2", "test3", "test4");
print(arr[2], "\n");
arr["aa"] = "aaaa";
print(arr["aa"], "\n");

関連項目


ByteArrayクラス

Object
 | NetObject
 |  | ByteArray

一群のバイナリデータを保持するクラスです。

Fileクラスや、HttpResponseクラスなどから、ReadBinaryメソッドでバイナリデータをロードする際などに利用します。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


ByteArrayプロパティ

API version 4

プロパティ

iOSAndroidWindows

ByteArrayクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Length | R | integer | 配列要素の数（データサイズ）
4 | Value | CRW | ByteArray | バイナリデータ

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


ByteArray.Lengthプロパティ

ByteArrayが格納している配列要素の数です。バイナリデータのデータサイズに相当します。

このプロパティは読み込み専用で変更することはできません。


ByteArray.Valueプロパティ

ByteArrayオブジェクトに格納されているバイナリデータです。

ByteArrayは他の型に変換することができないため、Value値の参照により型変換例外が発生することがあります。


ByteArrayメソッド

API version 4

メソッド

iOSAndroidWindows

ByteArrayクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | ByteArrayオブジェクトを初期化します
4 | ByteAt | 指定位置にあるバイト値を整数値として返します
20 | GetInteger | ByteArrayをバイト単位、もしくはビット単位で切り出し、整数値として返します
20 | GetIntegerAsString | ByteArrayをバイト単位、もしくはビット単位で切り出し、整数値を10進数で表現した文字列として返します
19 | ToHexString | 値を16進数で表現した文字列を返します
4 | ToString | 文字列に変換します

クラス概要

基本クラスのメソッド


ByteArrayコンストラクタ

説明

ByteArrayオブジェクトを初期化します。

引数を何も指定しない場合は、空の状態で初期化されます。

引数に複数の値を指定することができ、指定した値を結合した値で初期化されます。

呼出形式

var barr = new ByteArray( [ data_1 [, data_2, [, ... [, data_n ] ] ] ] )

戻り値

ByteArrayオブジェクト

引数

data_n

初期値として設定するデータを指定します。

文字列、ByteArrayオブジェクト、バイナリデータを指定できます。それ以外は文字列に変換されます。

引数に正の整数を渡した場合は、そのままバイナリデータとして格納します。これによりコントロールコード等の非文字データ列を作成することができます。

数値は0〜255までは1バイト、256〜65535は2バイト、65536〜4294967295(16進FFFFFFFF)は4バイトのデータとしてリトルエンディアンで格納されます。

上記範囲外の数値、小数を含む数値は文字列として格納されます。

例外

なし

使用例

var b1 = new ByteArray(file.Read());
var b2 = new ByteArray("sample", "test");
var b3 = new ByteArray(response.Read());

関連項目


ByteArray.ByteAtメソッド

説明

ByteArrayオブジェクトに格納されている値の指定位置にあるバイト値を整数値として返します。

呼出形式

var b = barr.ByteAt( index )

戻り値

バイト値

引数

integer index

バイト値を取得する位置

例外

なし

使用例

var barr = new ByteArray("test");
print(barr.ByteAt(0), "\n");

関連項目


ByteArray.GetIntegerメソッド

説明

ByteArrayオブジェクトに格納されているデータをバイト単位、あるいはビット単位で切り出し、整数値として返します。

Biz/Browser HTで扱う整数値は符号付き32bitです。このサイズを超える範囲は切り捨てられます。

呼出形式

var intVal = barr.GetInteger( pos , size [, options] )

戻り値

バイト列から切り出したデータを整数に変換した値を返します。

引数

integer pos

0から始まる、データ切り出しの開始位置

単位はoptionsで指定します。

データを超える範囲を指定すると、FUNC-4例外が発生します。

integer size

データを切り出すサイズ

単位はoptionsで指定します。

データを超える範囲を指定すると、FUNC-4例外が発生します。

integer options

切り出し時のオプションを指定します。

下記の値の組み合わせを指定することができます。

定数 | 値 | 説明
ByteArray.BIG_ENDIAN | 0x0001 | 切り出したバイト列をビッグエンディアンで解釈します。 options未指定時のデフォルトです。
ByteArray.LITTLE_ENDIAN | 0x0002 | 切り出したバイト列をリトルエンディアンで解釈します。
ByteArray.UNIT_BYTE | 0x0010 | pos、sizeをバイト単位として扱います。 options未指定時のデフォルトです。
ByteArray.UNIT_BIT | 0x0020 | pos、sizeをビット単位として扱います。
ByteArray.UNSIGNED | 0x0100 | 整数値を符号無し整数として扱います。 options未指定時のデフォルトです。
ByteArray.SIGNED | 0x0200 | 整数値を符号あり整数として扱います。

例外

FUNC-4

引数の値が不正です

使用例

var barr = new ByteArray(0x41, 0x42, 0x43, 0x44, 0x45, 0x46);
var options = ByteArray.UNIT_BYTE + ByteArray.BIG_ENDIAN;
print(str(barr.GetInteger(1, 3, options)), "\n");

関連項目

GetIntegerAsStringメソッド


ByteArray.GetIntegerAsStringメソッド

説明

ByteArrayオブジェクトに格納されているデータをバイト単位、あるいはビット単位で切り出し、整数値を10進数表現の文字列として返します。

GetIntegerメソッドと異なり、桁数の制限はありません。

呼出形式

var intStr = barr.GetIntegerAsString( pos , size [, options] )

戻り値

バイト列から切り出したデータを整数に変換し、10進数で表現した文字列

引数

integer pos

0から始まる、データ切り出しの開始位置

単位はoptionsで指定します。

データを超える範囲を指定すると、FUNC-4例外が発生します。

integer size

データを切り出すサイズ

単位はoptionsで指定します。

データを超える範囲を指定すると、FUNC-4例外が発生します。

integer options

切り出し時のオプションを指定します。

下記の値の組み合わせを指定することができます。

定数 | 値 | 説明
ByteArray.BIG_ENDIAN | 0x0001 | 切り出したバイト列をビッグエンディアンで解釈します。 options未指定時のデフォルトです。
ByteArray.LITTLE_ENDIAN | 0x0002 | 切り出したバイト列をリトルエンディアンで解釈します。
ByteArray.UNIT_BYTE | 0x0010 | pos、sizeをバイト単位として扱います。 options未指定時のデフォルトです。
ByteArray.UNIT_BIT | 0x0020 | pos、sizeをビット単位として扱います。
ByteArray.UNSIGNED | 0x0100 | 整数値を符号無し整数として扱います。 options未指定時のデフォルトです。
ByteArray.SIGNED | 0x0200 | 整数値を符号あり整数として扱います。

例外

FUNC-4

引数の値が不正です

使用例

var barr = new ByteArray(0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C);
var options = ByteArray.UNIT_BYTE + ByteArray.BIG_ENDIAN;
print(barr.GetIntegerAsString(1, 10, options), "\n");

関連項目

GetIntegerメソッド


ByteArray.ToHexStringメソッド

説明

ByteArrayオブジェクトに格納されているデータを16進数に変換し、文字列として返します

呼出形式

var str = barr.ToHexString( )

戻り値

値を16進数に変換した文字列

引数

なし

例外

なし

使用例

var barr = new ByteArray(0x41, 0x42, 0x43);
print(barr.ToHexString(), "\n");

関連項目


ByteArray.ToStringメソッド

説明

ByteArrayオブジェクトに格納されているデータを文字列として返します。データ中にヌル文字が出現すると、それ以降のデータは無視されます。

呼出形式

var str = barr.ToString( )

戻り値

変換した文字列

引数

なし

例外

なし

使用例

var barr = new ByteArray(0x41, 0x42, 0x43);
print(barr.ToString(), "\n");

関連項目


ByteArrayイベント

API version 4

イベント

iOSAndroidWindows

ByteArrayクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Dateクラス

Object
 | NetObject
 |  | Date

日付と時刻を保持するクラスです。

1900/1/1を1.0とした実数で日付をあらわし、1日の間隔を1.0、1秒を1/86,400であらわします。分解精度は1秒です。

Dateクラスの扱える有効範囲は1900年1月1日から2099年12月31日までです。範囲を越える数値を指定した場合、日付は不定になります。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


Dateプロパティ

API version 4

プロパティ

iOSAndroidWindows

Dateクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Value | CRW | Date | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Date.Valueプロパティ

Dateオブジェクトの値です。


Dateメソッド

API version 4

メソッド

iOSAndroidWindows

Dateクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | Dateオブジェクトを初期化します
4 | GetTime | 格納されている時刻を返します
4 | GetFullYear | ローカル時間の日付の年を返します
4 | GetMonth | ローカル時間の日付の月の部分を返します
4 | GetDate | ローカル時間の日付の日の部分を返します
4 | GetDay | ローカル時間の日付の曜日を返します
4 | GetHours | ローカル時間の時の部分を返します
4 | GetMinutes | ローカル時間の分の部分を返します
4 | GetSeconds | ローカル時間の秒の部分を返します
4 | GetMilliSeconds | ローカル時間のミリ秒の部分を返します
4 | GetUTCFullYear | UTCの日付の年を返します
4 | GetUTCMonth | UTCの日付の月を返します
4 | GetUTCDate | UTCの日付の日の部分を返します
4 | GetUTCDay | UTCの日付の曜日を返します
4 | GetUTCHours | UTCの時の部分を返します
4 | GetUTCMinutes | UTCの分の部分を返します
4 | GetUTCSeconds | UTCの秒の部分を返します
4 | GetUTCMilliSeconds | UTCのミリ秒の値を返します
4 | GetTimezoneOffset | タイムゾーンオフセットを分単位の値で返します
4 | SetTime | 日付および時刻を直接設定します
4 | SetFullYear | ローカル時間で年の部分を設定します
4 | SetMonth | ローカル時間で月の部分をローカル時間で設定します
4 | SetDate | ローカル時間で日の部分を設定します
4 | SetHours | ローカル時間で時の部分をローカル時間で設定します
4 | SetMinutes | ローカル時間で分の部分をローカル時間で設定します
4 | SetSeconds | ローカル時間で秒の部分をローカル時間で設定します
4 | SetMilliSeconds | ミリ秒の部分をローカル時間で設定します
4 | SetUTCFullYear | UTCで年の部分を設定します
4 | SetUTCMonth | UTCで月の部分を設定します
4 | SetUTCDate | UTCで日の部分を設定します
4 | SetUTCHours | UTCで時の部分を設定します
4 | SetUTCMinutes | UTCで分の部分を設定します
4 | SetUTCSeconds | UTCで秒の部分を設定します
4 | SetUTCMillSeconds | UTCでミリ秒の部分を設定します
4 | ToDateString | 日付を文字列で返します
4 | ToInternetString | 日付をRFC822形式の文字列で返します
4 | ToLocaleDateString | 日付をロケール書式の文字列で返します
4 | ToLocaleString | 日付と時刻をロケール書式の文字列で返します
4 | ToLocaleTimeString | 時刻をロケール書式の文字列で返します
4 | ToString | 日付と時刻を文字列で返します
4 | ToTimeString | 時刻を文字列で返します
4 | ToUTCString | 日付をUTCの文字列で返します
4 | ValueOf | UTC基準時からの経過時間を表すミリ秒単位で返します

スタティックメソッド

API | 名前 | 説明
4 | Parse | 日付を表す文字列を解析します
4 | UTC | UTCの1970年1月1日0時0分0秒と、指定した日付との間をミリ秒単位で返します

クラス概要

基本クラスのメソッド


Dateコンストラクタ

説明

Dateオブジェクトを初期化します。

引数を何もとらない場合、現在の日付と時刻で初期化されます。

1つの引数を指定した場合、引数が日付・時刻を表す文字列の場合parseメソッドと同様の解釈を行い、それ以外の場合UTC基準時からの経過時間を表すミリ秒として日付と時刻を初期化します。

文字列フォーマットに関してはParseメソッドを参照してください。

2個以上の引数を指定した場合、7個までを年、月、日、時、分、秒、ミリ秒(実際は無効)として初期化します。

省略した引数はすべて0になります。

コンストラクタ呼出を伴わないDateオブジェクトの生成では、初期化されることはなく無効な日付と時刻を持つDateオブジェクトが生成されます。

呼出形式

var d = new Date( )

var d = new Date( value )

var d = new Date( year, month, date [, hours [, minute [, sec [, ms ] ] ] ] )

戻り値

Dateオブジェクト

引数

Object value

日付文字列または経過時間を表すオブジェクト

integer year

年を数値で指定します。

integer month

1月を0とする月番号を指定します

integer date

日を数値で指定します

integer hours

時を数値で指定します

integer minute

分を数値で指定します

integer sec

秒を数値で指定します

integer ms

無視されます

例外

なし

使用例

var d1 = new Date();
var d2 = new Date(1964, 8, 10);
var d3 = new Date("2002/01/02 12:34:56");
var d4 = new Date(1022889600000);

関連項目

Parseメソッド


Date.GetTimeメソッド

説明

UTC(世界協定時刻)の1970年1月1日0時0分0秒からの経過時間を表すミリ秒単位の数値を返します。Dateクラスの時刻の分解制度は1秒単位のため、ミリ秒は常に0となります。

呼出形式

var v = d.GetTime( )

戻り値

経過時間を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetTime(), "\n");

関連項目


Date.GetFullYearメソッド

説明

ローカル時間の日付の年を返します。

呼出形式

var v = d.GetFullYear( )

戻り値

西暦の年を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.getFullYear(), "\n");

関連項目


Date.GetMonthメソッド

説明

ローカル時間の日付の月の部分を1月を0とする月番号で返します。

呼出形式

var v = d.GetMonth( )

戻り値

月番号を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetMonth(), "\n");

関連項目


Date.GetDateメソッド

説明

ローカル時間の日付の日の部分を返します。

呼出形式

var v = d.GetDate( )

戻り値

日を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetDate(), "\n");

関連項目


Date.GetDayメソッド

説明

ローカル時間の日付の曜日を返します。

呼出形式

var v = d.GetDay( )

戻り値

曜日を示す数値

0が日曜日、1が月曜日･･･6が土曜日となっています。

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetDay(), "\n");

関連項目


Date.GetHoursメソッド

説明

ローカル時間の時の部分を返します。

呼出形式

var v = d.GetHours( )

戻り値

時を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetHours(), "\n");

関連項目


Date.GetMinutesメソッド

説明

ローカル時間の分の部分を返します。

呼出形式

var v = d.GetMinutes( )

戻り値

分を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetMinutes(), "\n");

関連項目


Date.GetSecondsメソッド

説明

ローカル時間の秒の部分を返します。

呼出形式

var v = d.GetSeconds( )

戻り値

秒を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetSeconds(), "\n");

関連項目


Date.GetMilliSecondsメソッド

説明

ローカル時間のミリ秒の部分を返します。JavaScriptとの互換性のために定義されていますが、Dateクラスの分解精度は1秒のため、常に0を返します。

呼出形式

var v = d.GetMilliSeconds( )

戻り値

ミリ秒を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetMilliSeconds(), "\n");

関連項目


Date.GetUTCFullYearメソッド

説明

UTC時間の日付の年を返します。

呼出形式

var v = d.GetUTCFullYear( )

戻り値

西暦の年を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetUTCFullYear(), "\n");

関連項目


Date.GetUTCMonthメソッド

説明

UTC時間の日付の月の部分を1月を0とする月番号で返します。

呼出形式

var v = d.GetUTCMonth( )

戻り値

月番号を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetUTCMonth(), "\n");

関連項目


Date.GetUTCDateメソッド

説明

UTC時間の日付の日の部分を返します。

呼出形式

var v = d.GetUTCDate( )

戻り値

日を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetUTCDate(), "\n");

関連項目


Date.GetUTCDayメソッド

説明

UTC時間の日付の曜日を返します。

呼出形式

var v = d.GetUTCDay( )

戻り値

曜日を示す数値

0が日曜日、1が月曜日･･･6が土曜日となっています。

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetUTCDay(), "\n");

関連項目


Date.GetUTCHoursメソッド

説明

UTC時間の時の部分を返します。

呼出形式

var v = d.GetUTCHours( )

戻り値

時を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetUTCHours(), "\n");

関連項目


Date.GetUTCMinutesメソッド

説明

UTC時間の分の部分を返します。

呼出形式

var v = d.GetUTCMinutes( )

戻り値

分を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetUTCMinutes(), "\n");

関連項目


Date.GetUTCSecondsメソッド

説明

UTC時間の秒の部分を返します。

呼出形式

var v = d.GetUTCSeconds( )

戻り値

秒を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetUTCSeconds(), "\n");

関連項目


Date.GetUTCMilliSecondsメソッド

説明

UTC時間のミリ秒の部分を返します。JavaScriptとの互換性のために定義されていますが、Dateクラスの分解精度は1秒のため、常に0を返します。

呼出形式

var v = d.GetUTCMilliSeconds( )

戻り値

ミリ秒を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetUTCMilliSeconds(), "\n");

関連項目


Date.GetTimezoneOffsetメソッド

説明

タイムゾーンオフセットを分単位の値で返します。

呼出形式

var v = d.GetTimezoneOffset( )

戻り値

差の分を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.GetTimezoneOffset(), "\n");

関連項目


Date.SetTimeメソッド

説明

日付および時刻を直接設定します。

呼出形式

d.SetTime( value )

戻り値

なし

引数

integer value

UTCの1970年1月1日0時0分0秒からの経過時間を表すミリ秒単位の数値を指定します。

例外

なし

使用例

var d = new Date();
d.SetTime(1015083255000);
print(d, "\n");

関連項目


Date.SetFullYearメソッド

説明

年の部分をローカル時間で設定します。

省略したパラメータの項目は変更されません。

呼出形式

d.SetFullYear( value [, mon [, date ] ] )

戻り値

なし

引数

integer value

年を数値で指定します。

integer mon

月を1月を0とする月番号で指定します。

integer date

日を数値で指定します。

例外

なし

使用例

var d = new Date();
print(d, "\n");
d.SetFullYear(2000);
print(d, "\n");

関連項目


Date.SetMonthメソッド

説明

月の部分をローカル時間で設定します。

省略したパラメータの項目は変更されません。

呼出形式

d.SetMonth( value [, date ] )

戻り値

なし

引数

integer value

月を1月を0とする月番号で指定します。

integer date

日を数値で指定します。

例外

なし

使用例

var d = new Date();
print(d, "\n");
d.SetMonth(10);
print(d, "\n");

関連項目


Date.SetDateメソッド

説明

日の部分をローカル時間で設定します。

呼出形式

d.SetDate( value )

戻り値

なし

引数

integer value

日を数値で指定します。

例外

なし

使用例

var d = new Date();
print(d, "\n");
d.SetDate(10);
print(d, "\n");

関連項目


Date.SetHoursメソッド

説明

時の部分をローカル時間で設定します。

省略したパラメータの項目は変更されません。

呼出形式

d.SetHours( value [, min [, sec [, ms ] ] ] )

戻り値

なし

引数

integer value

時を24時間制の数値で指定します。

integer min

分を数値で指定します。

integer sec

秒を数値で指定します。

integer ms

ミリ秒を指定します。Dateクラスの分解精度は1秒のため、msを指定した場合でも結果に影響しません。

例外

なし

使用例

var d = new Date();
print(d, "\n");
d.setHours(13);
print(d, "\n");

関連項目


Date.SetMinutesメソッド

説明

分の部分をローカル時間で設定します。

省略したパラメータの項目は変更されません。

呼出形式

d.SetMinutes( value [, sec [, ms ] ] )

戻り値

なし

引数

integer value

分を数値で指定します。

integer sec

秒を数値で指定します。

integer ms

ミリ秒を指定します。Dateクラスの分解精度は1秒のため、msを指定した場合でも結果に影響しません。

例外

なし

使用例

var d = new Date();
print(d, "\n");
d.SetMinutes(0);
print(d, "\n");

関連項目


Date.SetSecondsメソッド

説明

秒の部分をローカル時間で設定します。

省略したパラメータの項目は変更されません。

呼出形式

d.SetSeconds( value [, ms ] )

戻り値

なし

引数

integer value

秒を数値で指定します。

integer ms

ミリ秒を指定します。Dateクラスの分解精度は1秒のため、msを指定した場合でも結果に影響しません。

例外

なし

使用例

var d = new Date();
print(d, "\n");
d.SetSeconds(0);
print(d, "\n");

関連項目


Date.SetMilliSecondsメソッド

説明

ミリ秒の部分をローカル時間で設定します。JavaScriptとの互換性のために定義されていますが、Dateクラスの分解精度は1秒のため、このメソッドの実行により値が変化することはありません。

呼出形式

d.SetMilliSeconds( value )

戻り値

なし

引数

integer value

ミリ秒を数値で指定します。

例外

なし

使用例

var d = new Date();
d.SetMilliSeconds(0);
print(d, "\n");

関連項目


Date.SetUTCFullYearメソッド

説明

年の部分をUTC時間で設定します。

省略したパラメータの項目は変更されません。

呼出形式

d.SetUTCFullYear( value [, mon [, date ] ] )

戻り値

なし

引数

integer value

年を数値で指定します。

integer mon

月を1月を0とする月番号で指定します。

integer date

日を数値で指定します。

例外

なし

使用例

var d = new Date();
print(d, "\n");
d.SetUTCFullYear(2000);
print(d, "\n");

関連項目


Date.SetUTCMonthメソッド

説明

月の部分をUTC時間で設定します。

省略したパラメータの項目は変更されません。

呼出形式

d.SetUTCMonth( value [, date ] )

戻り値

なし

引数

integer value

月を1月を0とする月番号で指定します。

integer date

日を数値で指定します。

例外

なし

使用例

var d = new Date();
print(d, "\n");
d.SetUTCMonth(10);
print(d, "\n");

関連項目


Date.SetUTCDateメソッド

説明

日の部分をUTC時間で設定します。

呼出形式

d.SetUTCDate( value )

戻り値

なし

引数

integer value

日を数値で指定します。

例外

なし

使用例

var d = new Date();
print(d, "\n");
d.SetUTCDate(10);
print(d, "\n");

関連項目


Date.SetUTCHoursメソッド

説明

時の部分をUTC時間で設定します。

省略したパラメータの項目は変更されません。

呼出形式

d.SetUTCHours( value [, min [, sec [, ms ] ] ] )

戻り値

なし

引数

integer value

時を24時間制の数値で指定します。

integer min

分を数値で指定します。

integer sec

秒を数値で指定します。

integer ms

ミリ秒を指定します。Dateクラスの分解精度は1秒のため、msを指定した場合でも結果に影響しません。

例外

なし

使用例

var d = new Date();
print(d, "\n");
d.SetUTCHours(13);
print(d, "\n");

関連項目


Date.SetUTCMinutesメソッド

説明

分の部分をUTC時間で設定します。

省略したパラメータの項目は変更されません。

呼出形式

d.SetUTCMinutes( value [, sec [, ms ] ] )

戻り値

なし

引数

integer value

分を数値で指定します。

integer sec

秒を数値で指定します。

integer ms

ミリ秒を指定します。Dateクラスの分解精度は1秒のため、msを指定した場合でも結果に影響しません。

例外

なし

使用例

var d = new Date();
print(d, "\n");
d.SetUTCMinutes(0);
print(d, "\n");

関連項目


Date.SetUTCSecondsメソッド

説明

秒の部分をUTC時間で設定します。

省略したパラメータの項目は変更されません。

呼出形式

d.SetUTCSeconds( value [, ms ] )

戻り値

なし

引数

integer value

秒を数値で指定します。

integer ms

ミリ秒を指定します。Dateクラスの分解精度は1秒のため、msを指定した場合でも結果に影響しません。

例外

なし

使用例

var d = new Date();
print(d, "\n");
d.SetUTCSeconds(0);
print(d, "\n");

関連項目


Date.SetUTCMilliSecondsメソッド

説明

ミリ秒の部分をUTC時間で設定します。JavaScriptとの互換性のために定義されていますが、Dateクラスの分解精度は1秒のため、このメソッドの実行により値が変化することはありません。

呼出形式

d.SetUTCMilliSeconds( value )

戻り値

なし

引数

integer value

ミリ秒を数値で指定します。

例外

なし

使用例

var d = new Date();
d.SetUTCMilliSeconds(0);
print(d, "\n");

関連項目


Date.ToDateStringメソッド

説明

日付を文字列で返します。時刻部分は切り捨てられます。

呼出形式

var text = d.ToDateString( )

戻り値

日付を表す文字列

引数

なし

例外

なし

使用例

var d = new Date();
print(d.ToDateString(), "\n");

関連項目


Date.ToInternetStringメソッド

説明

日付と時刻をRFC822形式の文字列で返します。

呼出形式

d.ToInternetString( )

戻り値

日付文字列を返します

引数

なし

例外

なし

使用例

var d = new Date();
print(d.toInternetString(), "\n");

関連項目


Date.ToLocaleDateStringメソッド

説明

日付をロケール書式の文字列で返します。時刻部分は含まれません。

現在、日本固有の書式のみ対応しています。

呼出形式

var text = d.ToLocaleDateString( )

戻り値

ロケール書式の日付を表す文字列

引数

なし

例外

なし

使用例

var d = new Date();
print(d.ToLocaleDateString(), "\n");

関連項目


Date.ToLocaleStringメソッド

説明

日付と時刻をロケール書式の文字列で返します。

現在、日本固有の書式のみ対応しています。

呼出形式

var text = d.ToLocalString( )

戻り値

ロケール書式の日付と時刻を表す文字列

引数

なし

例外

なし

使用例

var d = new Date();
print(d.ToLocaleString(), "\n");

関連項目


Date.ToLocaleTimeStringメソッド

説明

時刻をロケール書式の文字列で返します。日付部分は含まれません。

現在、日本固有の書式のみ対応しています。

呼出形式

var text = d.ToLocaleTimeString( )

戻り値

ロケール書式の時刻を表す文字列

引数

なし

例外

なし

使用例

var d = new Date();
print(d.ToLocaleTimeString(), "\n");

関連項目


Date.ToStringメソッド

説明

日付と時刻を文字列で返します。

呼出形式

var text = d.ToString( )

戻り値

日付と時刻を表す文字列

引数

なし

例外

なし

使用例

var d = new Date();
print(d.ToString(), "\n");

関連項目


Date.ToTimeStringメソッド

説明

時刻を文字列で返します。日付部分は含まれません。

呼出形式

var text = d.ToTimeString( )

戻り値

時刻を表す文字列

引数

なし

例外

なし

使用例

var d = new Date();
print(d.ToTimeString(), "\n");

関連項目


Date.ToUTCStringメソッド

説明

日付と時刻をUTC時刻の文字列で返します。

呼出形式

var text = d.ToUTCString( )

戻り値

日付と時刻を表す文字列

引数

なし

例外

なし

使用例

var d = new Date();
print(d.ToUTCString(), "\n");

関連項目


Date.ValueOfメソッド

説明

UTC(世界協定時刻)の1970年1月1日0時0分0秒からの経過時間を表すミリ秒単位の数値を返します。Dateクラスの時刻の分解制度は1秒単位のため、ミリ秒は常に0となります。

呼出形式

var v = d.ValueOf( )

戻り値

経過時間を示す数値

引数

なし

例外

なし

使用例

var d = new Date();
print(d.ValueOf(), "\n");

関連項目


Date.Parseメソッド

説明

日付を表す文字列を解析します。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

呼出形式

var v = Date.Parse( value )

戻り値

解析した日付と時刻を表す、UTC基準時刻からの経過時間をミリ秒単位で返します。

引数

String value

日付と時刻を示す文字列を指定します。

解析可能なフォーマットは以下の通りです。

"YY/MM/DD"

"YY/MM/DD HH24:MI"

"YY/MM/DD HH24:MI:SS"

"YYYY/MM/DD"

"YYYY/MM/DD HH24:MI"

"YYYY/MM/DD HH24:MI:SS"

"dy, DD mon YYYY HH24:MI:SS TZ"

例外

なし

使用例

var d = new Date();
d.SetTime(Date.Parse("2002/2/28 20:00:00"));
print(d, "\n");

関連項目


Date.UTCメソッド

説明

指定した日付をUTC基準時刻からの経過時間をミリ秒単位で返します。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

呼出形式

var v = Date.UTC( year, month , date [, hour [, min [, sec [, ms ] ] ] ] )

戻り値

UTC基準時刻からの経過時間をミリ秒単位で返します。

引数

integer year

年をUTC時刻で指定します

integer month

1月を0とする月番号を指定します

integer date

日をUTC時刻で指定します

integer hour

時をUTC時刻で指定します

integer min

分をUTC時刻で指定します

integer sec

秒をUTC時刻で指定します

integer ms

無視されます

例外

なし

使用例

var d = new Date();
d.SetTime(Date.UTC(2002, 2, 28, 20, 0, 0));
print(d, "\n");

関連項目


Dateイベント

API version 4

イベント

iOSAndroidWindows

Dateクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Eventクラス

Object
 | Event

ボタンの押下など、CRSプログラムで発生するイベントを表すクラスです。

PostEventメソッドによりイベントをCRSスクリプトからイベントを発生させる場合にも使われます。

デフォルトプロパティとValueType

デフォルトプロパティはReasonです。ValueTypeの指定は無効です。


Eventプロパティ

API version 4

プロパティ

iOSAndroidWindows

Eventクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | EventName | CR | String | イベントの名前
4 | From | R | reference | イベントの発信元
4 | Reason | CR | integer | イベントの種類

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Event.EventNameプロパティ

Eventの名前です。起動されるイベントハンドラはこの名前に選別されます。


Event.Fromプロパティ

Eventの発信元オブジェクトを指すリファレンスです。EventオブジェクトをPostEventで投げたときも自動的に設定されます。

このプロパティは読み込み専用で変更することはできません。


Event.Reasonプロパティ

イベントの種類です。

イベントの種類はイベントを発生させたオブジェクトの種類により意味が決まります。同じ値であっても発生元のオブジェクトの種類が異なると意味が異なる場合があります。

このプロパティは読み込み専用で変更することはできません。


Eventメソッド

API version 4

メソッド

iOSAndroidWindows

Eventクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | Eventオブジェクトを初期化します

クラス概要

基本クラスのメソッド


Eventコンストラクタ

説明

Eventオブジェクトを初期化します。

reasonを指定した場合、Reasonプロパティを初期化します。

eventNameを指定した場合、EventNameプロパティを初期化します。

呼出形式

var ev = new Event( [ reason [, eventName ] ] )

または

var ev = new Event( eventName )

戻り値

Eventオブジェクト

引数

integer reason

イベントの種類を数値で指定します。ユーザ独自のイベントの場合、UserEventより大きい値を指定します。

String eventName

イベントの名前を指定します。

例外

なし

使用例

Function OnSampleEvent(e) {
    print("Event.Reason=", e.Reason, "\n");
    print("Event.EventName=", e.EventName, "\n");
    print("Event.From.Name=", e.From.Name, "\n");
}
PostEvent(new Event(UserEvent + 1, "SampleEvent"));

関連項目

ユーザ定義イベント


Eventイベント

API version 4

イベント

iOSAndroidWindows

Eventクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Exceptionクラス

Object
 | Exception

CRSプログラムで発生する例外を表すクラスです。

例外はtry … catch…ステートメントによりExceptionオブジェクトとして受け取ることができます。throwステートメントによりユーザ定義の例外を発生される場合にも使われます。

デフォルトプロパティとValueType

デフォルトプロパティはMessageです。ValueTypeの指定は無効です。


Exceptionプロパティ

API version 4

プロパティ

iOSAndroidWindows

Exceptionクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Code | R | integer | 例外番号
4 | Message | R | String | 例外の説明文
4 | Method | R | String | 例外を起した機能
4 | SourceOffset | R | integer | 例外を起したCRSスクリプトのバイト位置
4 | SourceURL | R | String | 例外を起したCRSスクリプトのURL

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Exception.Codeプロパティ

例外の種類を示す番号です。例外は、MethodプロパティとCodeプロパティで一意に識別することができます。

このプロパティは読み込み専用で変更することはできません。


Exception.Messageプロパティ

例外の内容を示す説明文です。

このプロパティは読み込み専用で変更することはできません。


Exception.Methodプロパティ

例外を起した機能の識別子です。例外は、MethodプロパティとCodeプロパティで一意に識別することができます。

このプロパティは読み込み専用で変更することはできません。


Exception.SourceOffsetプロパティ

例外を起したCRSスクリプトの実行位置を先頭からのバイト位置で示します。

このプロパティは読み込み専用で変更することはできません。throwステートメントに渡したときに自動設定されます。

※ 実行時の性能劣化を防ぐため、Biz/Designerからのデバッグ実行時のみ有効です。


Exception.SourceURLプロパティ

例外を起したCRSスクリプトをダウンロードしたURLです。

このプロパティは読み込み専用で変更することはできません。throwステートメントに渡したときに自動設定されます。


Exceptionメソッド

API version 4

メソッド

iOSAndroidWindows

Exceptionクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | Exceptionオブジェクトを初期化します

クラス概要

基本クラスのメソッド


Exceptionコンストラクタ

説明

Exceptionオブジェクトを初期化します。

呼出形式

var ex = new Exception( method, code, message )

戻り値

Exceptionオブジェクト

引数

String method

Methodプロパティの値を指定します。

integer code

Codeプロパティの値を指定します。

String message

Messageプロパティの値を指定します。

例外

なし

使用例

if (data == 0) {
    throw new Exception("APP1", 1, "dataが0です");
}

関連項目


Exceptionイベント

API version 4

イベント

iOSAndroidWindows

Exceptionクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Fixedクラス

Object
 | NetObject
 |  | Fixed

固定小数点形式の数値を保持するクラスです。

Fixedクラスは、64ビットの符号付整数形式で10000でスケールされた値で格納されます。内部的に1は10000として、0.1は1000として表現されます。

浮動小数点形式で内部データを保持するNumberクラスとは異なり、浮動小数点の特性に起因する誤差は原理的に発生しませんが、表現可能な範囲は整数部15桁、小数部4桁に制限されます。演算結果が表現範囲を超える場合、整数部は桁位置の大きいほうから、小数部は第5位以下から切り捨てられます。

Fixedクラスとその他の型のクラス間の演算や、数値を受け取るメソッドや関数にFixedクラスを渡した場合、自動的にNumber型に変換された結果により計算が実行されます。従って、このような場合では浮動小数点数値としての挙動となります。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


Fixedプロパティ

API version 6

プロパティ

iOSAndroidWindows

Fixedクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
6 | Value | CRW | Fixed | 0 | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Fixed.Valueプロパティ

Fixedオブジェクトの値です。


Fixedメソッド

API version 6

メソッド

iOSAndroidWindows

Fixedクラスには以下のメソッドが定義されています。

API | 名前 | 説明
6 | (コンストラクタ) | Fixedオブジェクトを初期化します
6 | ToString | 文字列を返します

スタティックメソッド

API | 名前 | 説明
6 | Round | Fixedオブジェクトとして四捨五入します
6 | RoundDown | Fixedオブジェクトとして切り捨てします
6 | RoundUp | Fixedオブジェクトとして切り上げします

クラス概要

基本クラスのメソッド


Fixedコンストラクタ

説明

Fixedオブジェクトを初期化します。

呼出形式

var f = new Fixed( [ value ] )

戻り値

Fixedオブジェクト

引数

Number value

初期化する値をNumberで指定する形式

String value

初期化する値を文字列で指定する形式

Fixed value

初期化する値をFixedで指定する形式

例外

なし

使用例

var f = new Fixed(5678);
print(f, "\n");

関連項目


Fixed.ToStringメソッド

説明

Fixedオブジェクトに格納されている値を文字列として返します。

呼出形式

var text = f.ToString( )

戻り値

変換した文字列

引数

なし

例外

なし

使用例

var f = new Fixed("1234567890.1234");
print(f.ToString(), "\n");

関連項目


Fixed.Roundメソッド

説明

指定したパラメータをFixedオブジェクトとして四捨五入したものを返します。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

Fixed.Roundメソッドの四捨五入（桁数= 0の場合）は、

値＋0.5以下の整数のうち最大(正の方向)の値

となります。

呼出形式

var f = Fixed.Round( n [, d ] )

戻り値

四捨五入した値（Fixedオブジェクト）

引数

n

四捨五入したい数値をFixed型、Number型、String型で指定します。

integer d

四捨五入したい桁を指定します。

-14～3で指定できます。0で小数点以下を四捨五入、3で小数点第3位以下を四捨五入します。負の数値の場合、整数値方向の指定になります。省略した場合は0です。

例外

なし

使用例

print(Fixed.Round(12345.678F, -2)); /* 12300となる */
print(Fixed.Round(12345.678F));     /* 12346となる */
print(Fixed.Round(12345.678F, 2));  /* 12345.68となる */

print(Fixed.Round(0.49F));  /* 0となる */
print(Fixed.Round(0.50F));  /* 1となる */
print(Fixed.Round(0.51F));  /* 1となる */
print(Fixed.Round(-0.49F)); /* 0となる */
print(Fixed.Round(-0.50F)); /* 0となる */
print(Fixed.Round(-0.51F)); /* -1となる */

関連項目


Fixed.RoundDownメソッド

説明

指定したパラメータをFixedオブジェクトとして切り捨てしたものを返します。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

Fixed.RoundDownメソッドの切り捨て（桁数= 0の場合）は、

値の絶対値が小さく(0に近く)なる方向にある最も近い整数

となります。

呼出形式

var f = Fixed.RoundDown( n [, d ] )

戻り値

切り捨てた値（Fixedオブジェクト）

引数

n

切り捨てしたい数値をFixed型、Number型、String型で指定します。

integer d

切り捨てしたい桁を指定します。

-14～3で指定できます。0で小数点以下を切り捨て、3で小数点第3位以下を切り捨てます。負の数値の場合、整数値方向の指定になります。省略した場合は0です。

例外

なし

使用例

print(Fixed.RoundDown(12345.678F, -2)); /* 12300となる */
print(Fixed.RoundDown(12345.678F));     /* 12345となる */
print(Fixed.RoundDown(12345.678F, 2));  /* 12345.67となる */

print(Fixed.RoundDown(0.50F));  /* 0となる */
print(Fixed.RoundDown(-0.50F)); /* 0となる */

関連項目


Fixed.RoundUpメソッド

説明

指定したパラメータをFixedオブジェクトとして切り上げしたものを返します。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

Fixed.RoundUpメソッドの切り上げ（桁数= 0の場合）は、

値の絶対値が大きく(0から遠く)なる方向にある最も近い整数

となります。

呼出形式

var f = Fixed.RoundUp( n [, d ] )

戻り値

切り上げた値（Fixedオブジェクト）

引数

n

切り上げしたい数値をFixed型、Number型、String型で指定します。

integer d

切り上げしたい桁を指定します。

-14～3で指定できます。0で小数点以下を切り上げ、3で小数点第3位以下を切り上げます。負の数値の場合、整数値方向の指定になります。省略した場合は0です。

例外

なし

使用例

print(Fixed.RoundUp(12345.678F, -2)); /* 12400となる */
print(Fixed.RoundUp(12345.678F));     /* 12346となる */
print(Fixed.RoundUp(12345.678F, 2));  /* 12345.68となる */

print(Fixed.RoundUp(0.50F));  /* 1となる */
print(Fixed.RoundUp(-0.50F)); /* -1となる */

関連項目


Fixedイベント

API version 6

イベント

iOSAndroidWindows

Fixedクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Mathクラス

Object
 | Math

数学計算機能を集めたクラスです。

スタティックプロパティ、スタティックメソッドのみ定義されたクラスです。インスタンスを生成する必要はありません。


Mathプロパティ

API version 4

プロパティ

iOSAndroidWindows

Mathクラスには以下のプロパティが定義されています。

スタティックプロパティ

API | 名前 | 型 | 値 | 説明
4 | E | Number | 2.7182818284590452354 | 自然対数eの値
4 | LN10 | Number | 2.302585092994046 | 10の自然対数の値
4 | LN2 | Number | 0.6931471805599453 | 2の自然対数の値
4 | LOG2E | Number | 1.4426950408889634 | 2を底とするeの対数の値
4 | LOG10E | Number | 0.4342944819032518 | eの常用対数の値
4 | PI | Number | 3.1415926535897932 | 円周率
4 | SQRT1_2 | Number | 0.7071067811865476 | 1/2の平方根
4 | SQRT2 | Number | 1.4142135623730951 | 2の平方根

クラス概要

基本クラスのプロパティ


Math.Eプロパティ

自然対数eの値（2.7182818284590452354）です。


Math.LN10プロパティ

10の自然対数の値（2.302585092994046）です。


Math.LN2プロパティ

2の自然対数の値（0.6931471805599453）です。


Math.LOG2Eプロパティ

2を底とするeの対数の値（1.4426950408889634）です。


Math.LOG10Eプロパティ

eの常用対数の値（0.4342944819032518）です。


Math.PIプロパティ

円周率（3.1415926535897932）です。


Math.SQRT1_2プロパティ

1/2の平方根（0.7071067811865476）です。


Math.SQRT2プロパティ

2の平方根（1.4142135623730951）です。


Mathメソッド

API version 4

メソッド

iOSAndroidWindows

Mathクラスには以下のメソッドが定義されています。

スタティックメソッド

API | 名前 | 説明
4 | abs | 絶対値を求めます
4 | acos | 逆余弦を求めます
4 | asin | 逆正弦を求めます
4 | atan | 逆正接を求めます
4 | atan2 | 座標(x, y)の角度を求めます
4 | ceil | 小数点以下を切り上げた値を求めます
4 | cos | 余弦を求めます
4 | exp | 指定した値を指数とするe（自然対数の底）の累乗を求めます
4 | floor | 小数点以下を切り捨てた値を求めます
4 | log | 自然対数を求めます
4 | max | 最大値を求めます
4 | min | 最小値を求めます
4 | pow | 累乗を求めます
4 | random | 擬似乱数を求めます
4 | round | 小数点以下を四捨五入した値を求めます
4 | sin | 正弦を求めます
4 | sqrt | 平方根を求めます
4 | tan | 正接を求めます

クラス概要

基本クラスのメソッド


Math.absメソッド

説明

絶対値を求めます。

呼出形式

var v = Math.abs( x )

戻り値

xの絶対値をNumber型で返します。

引数

Number x

絶対値を求める値

例外

なし

使用例

var v1 = Math.abs(0.1);
print(v1, "\n");
var v2 = Math.abs(-0.1);
print(v2, "\n");

関連項目


Math.acosメソッド

説明

逆余弦を求めます。

呼出形式

var v = Math.acos( x )

戻り値

xの逆余弦をNumber型で返します。

引数

Number x

逆余弦を求める値

例外

なし

使用例

var v1 = Math.cos(Math.PI / 6);
print(v1, "\n");
var v2 = Math.acos(v1);
print(v2, "\n");

関連項目

asin、atan、cosメソッド


Math.asinメソッド

説明

逆正弦を求めます。

呼出形式

var v = Math.asin( x )

戻り値

xの逆正弦をNumber型で返します。

引数

Number x

逆正弦を求める値

例外

なし

使用例

var v1 = Math.sin(Math.PI / 3);
print(v1, "\n");
var v2 = Math.asin(v1);
print(v2, "\n");

関連項目

acos、atan、sinメソッド


Math.atanメソッド

説明

逆正接を求めます。

呼出形式

var v = Math.atan( x )

戻り値

xの逆正接をNumber型で返します。

引数

Number x

逆正接を求める値

例外

なし

使用例

var v1 = Math.tan(Math.PI / 2);
print(v1, "\n");
var v2 = Math.atan(v1);
print(v2, "\n");

関連項目

acos、asin、atan2、tanメソッド


Math.atan2メソッド

説明

座標(x, y)の角度を求めます。

呼出形式

var v = Math.atan2( y, x )

戻り値

y / xの逆正接をNumber型で返します。

引数

Number y

Y座標

Number x

X座標

例外

なし

使用例

var v = Math.atan2(1, 1);
print(v, "\n");

関連項目

atan、tanメソッド


Math.ceilメソッド

説明

小数点以下を切り上げた値を求めます。

xと等しいかまたはそれより大きい値となる最小の整数を返します。

呼出形式

var v = Math.ceil( x )

戻り値

小数点以下を切り上げた値を整数で返します。

引数

Number x

小数点以下を切り上げる値

例外

なし

使用例

print(Math.ceil(0.9), "\n");  /* 1となる */
print(Math.ceil(1.0), "\n");  /* 1となる */
print(Math.ceil(1.1), "\n");  /* 2となる */

print(Math.ceil(-0.9), "\n"); /* 0となる */
print(Math.ceil(-1.0), "\n"); /* -1となる */
print(Math.ceil(-1.1), "\n"); /* -1となる */

関連項目

floor、roundメソッド


Math.cosメソッド

説明

余弦を求めます。

呼出形式

var v = Math.cos( x )

戻り値

xの余弦をNumber型で返します。

引数

Number x

余弦を求める値

例外

なし

使用例

var v1 = Math.cos(Math.PI / 6);
print(v1, "\n");
var v2 = Math.acos(v1);
print(v2, "\n");

関連項目

acos、sin、tanメソッド


Math.expメソッド

説明

xを指数とするe（自然対数の底）の累乗を求めます。

呼出形式

var v = Math.exp( x )

戻り値

eをxで累乗した値をNumber型で返します。

引数

Number x

累乗を指定する値

例外

なし

使用例

var v = Math.exp(2);
print(v, "\n");

関連項目

logメソッド


Math.floorメソッド

説明

小数点以下を切り捨てた値を求めます。

xと等しいかまたはそれより小さい値となる最大の整数を返します。

呼出形式

var v = Math.floor( x )

戻り値

小数点以下を切り捨てた整数を返します。

引数

Number x

小数点以下を切り捨てる値

例外

なし

使用例

print(Math.floor(0.9), "\n");  /* 0となる */
print(Math.floor(1.0), "\n");  /* 1となる */
print(Math.floor(1.1), "\n");  /* 1となる */

print(Math.floor(-0.9), "\n"); /* -1となる */
print(Math.floor(-1.0), "\n"); /* -1となる */
print(Math.floor(-1.1), "\n"); /* -2となる */

関連項目

ceil、roundメソッド


Math.logメソッド

説明

自然対数を求めます。

呼出形式

var v = Math.log( x )

戻り値

xの自然対数をNumber型で返します。

引数

Number x

自然対数を求める値

例外

なし

使用例

var v = Math.log(20);
print(v, "\n");

関連項目

expメソッド


Math.maxメソッド

説明

最大値を求めます。

呼出形式

var v = Math.max( [ value_1 [, value_2 [, … ] ] ] )

戻り値

指定した引数のうち最大の値を返します。

引数

Number value_n

最大を求める値

例外

なし

使用例

var v1 = Math.max(1, 2, 3);
print(v1, "\n");
var v2 = Math.max(-1, -2, -3);
print(v2, "\n");

関連項目

minメソッド


Math.minメソッド

説明

最小値を求めます。

呼出形式

var v = Math.min( [ value_1 [, value_2 [, … ] ] ] )

戻り値

指定した引数のうち最小の値を返します。

引数

Number value_n

最小を求める値

例外

なし

使用例

var v1 = Math.min(1, 2, 3);
print(v1, "\n");
var v2 = Math.min(-1, -2, -3);
print(v2, "\n");

関連項目

maxメソッド


Math.powメソッド

説明

累乗を求めます。

呼出形式

var v = Math.pow( x, n )

戻り値

nを指数とするxの累乗をNumber型で返します。

引数

Number x

累乗を求める値

Number n

指数

例外

なし

使用例

var v1 = Math.pow(10, 5);
print(v1, "\n");
var v2 = Math.pow(2, 10);
print(v2, "\n");

関連項目

sqrtメソッド


Math.randomメソッド

説明

擬似乱数を求めます。

呼出形式

var v = Math.random( )

戻り値

0〜1 の範囲での擬似乱数をNumber型で返します。

引数

なし

例外

なし

使用例

for (var n = 0; n < 10; n++) {
    var v = Math.random();
    print(v, "\n");
}

関連項目


Math.roundメソッド

説明

小数点以下を四捨五入した値を求めます。

値に最も近い整数（値＋0.5以下の整数のうち最大（正の方向）の値）を返します。

呼出形式

var v = Math.round( x )

戻り値

小数点以下を四捨五入した整数を返します。

引数

Number x

小数点以下を四捨五入する値

例外

なし

使用例

print(Math.round(0.49), "\n");  /* 0となる */
print(Math.round(0.50), "\n");  /* 1となる */
print(Math.round(0.51), "\n");  /* 1となる */

print(Math.round(-0.49), "\n"); /* 0となる */
print(Math.round(-0.50), "\n"); /* 0となる */
print(Math.round(-0.51), "\n"); /* -1となる */

関連項目

ceil、floorメソッド


Math.sinメソッド

説明

正弦を求めます。

呼出形式

var v = Math.sin( x )

戻り値

xの正弦をNumber型で返します。

引数

Number x

正弦を求める値

例外

なし

使用例

var v1 = Math.sin(Math.PI / 3);
print(v1, "\n");
var v2 = Math.asin(v1);
print(v2, "\n");

関連項目

asin、cos、tanメソッド


Math.sqrtメソッド

説明

平方根を求めます。

呼出形式

var v = Math.sqrt( x )

戻り値

xの平方根をNumber型で返します。

引数

Number x

平方根を求める値

例外

なし

使用例

var v1 = Math.sqrt(2);
print(v1, "\n");
var v2 = Math.sqrt(16);
print(v2, "\n");

関連項目

powメソッド


Math.tanメソッド

説明

正接を求めます。

呼出形式

var v = Math.tan( x )

戻り値

xの正接をNumber型で返します。

引数

Number x

正接を求める値

例外

なし

使用例

var v1 = Math.tan(Math.PI / 2);
print(v1, "\n");
var v2 = Math.atan(v1);
print(v2, "\n");

関連項目

atan、atan2、cos、sinメソッド


Mathイベント

API version 4

イベント

iOSAndroidWindows

Mathクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


NetObjectクラス

Object
 | NetObject

CRSファイルが実行可能なクラスの基底クラスです。WEBサーバとの通信機能とダウンロードしたCRSファイルのコンパイルや実行機能があり、NetObjectクラスから派生したクラスは、Getメソッドなどにより新しいCRSプログラムを実行することができます。

NetObjectクラスは仮想クラスで、それ自体をインスタンス化することはできません。


NetObjectプロパティ

API version 4

プロパティ

iOSAndroidWindows

NetObjectクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | UseChange | CRW | boolean | $FALSE | デフォルトプロパティの変化でChangeイベント発生させるか

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


NetObject.UseChangeプロパティ

デフォルトプロパティの変化でChangeイベント発生させるか選択します。

$TRUEを設定するとChangeイベントが発生します。$FALSEを設定するとChangeイベントは発生しません。


NetObjectメソッド

API version 4

メソッド

iOSAndroidWindows

NetObjectクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | Cache | WEBサーバからCRSファイルをダウンロードしてキャッシュします
4 | Eval | CRSスクリプトを文字列で与えて実行します
4 | Get | WEBサーバからCRSファイルをダウンロードして実行します

クラス概要

基本クラスのメソッド


NetObject.Cacheメソッド

説明

WEBサーバからCRSファイルをダウンロードしてキャッシュします。

ダウンロードしたCRSを実行しない点を除き、Getメソッドと同じ動作です。詳細はGetメソッドを参照してください。

Biz/Browserの環境設定で「キャッシュを利用しない」設定がされている場合はキャッシュされません。また、サーバからのレスポンスヘッダににキャッシュ禁止属性が付加されている場合やタイムスタンプが不明な場合もキャッシュされません。

Android版
Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、OSに対してユーザー操作で許可をとる必要があります。
詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

obj.Cache( URL [, param1 [, param2 [, ... ] ] ] )

戻り値

なし

引数

String URL

CRSファイルのURL

GetメソッドのURLと同じです。

Object param

リクエストに付加するパラメータ

Getメソッドのparamと同じです。

一般的なWEBサーバは、パラメータ付きのPOSTリクエストのレスポンスヘッダにはキャッシュ禁止属性を付加します。paramを利用する際には、こうしたWEBサーバの挙動を考慮する必要があります。

例外

CRS-331

通信エラー

Getメソッドの例外と同じです。

使用例

Function LoadCache() {
    //.Cache("Form1.crs");
    //.Cache("Form2.crs");
    //.Cache("Form3.crs");
}

関連項目

Getメソッド

Root.CacheSetupメソッド

Root.CacheModeプロパティ


NetObject.Evalメソッド

説明

CRSスクリプトを実行します。

Evalメソッドによるスクリプトの実行は、呼び出し元からのFunction実行と同じように動作します。実行するべきCRSスクリプトは、crs引数により文字列で与え、return文で戻り値を返すことができ、Evalメソッドの戻り値となります。

呼出形式

obj.Eval( crs )

戻り値

スクリプトのreturn文に依存

引数

String crs

CRSスクリプトを文字列で指定します。

例外

なし

使用例

var t = Eval("return new " + str(type) + ";");
Append(t, "data");

関連項目


NetObject.Getメソッド

説明

WEBサーバからCRSファイルをダウンロードして実行します。

URLで指定した対象のCRSファイルを、以下の順に検索します。

（１）既にローカルコンピュータにキャッシュされていれば、キャッシュから読み出します。

（２）事前にimportしたCRSアーカイブ（CARファイル）に含まれていれば、アーカイブから読み出します。

（３）WEBサーバにリクエストを送信し、CRSファイルを取得します。

取得した内容は、直ちにCRSスクリプトとして実行されます。WEBサーバから取得したCRSファイルは、可能であればキャッシュに保存します。

キャッシュの制御については、後述のHTTPヘッダによるキャッシュの制御を参照してください。

paramを指定しない場合は、リクエストはHTTPのGETで送られます。

paramを指定した場合は、リクエストはHTTPのPOSTで送られます。

WEBサーバがHTTPステータスコードに200（$HTTP_OK）を返さない場合は、CRS-331の例外が発生します。

また、HTTPレスポンスヘッダを利用して任意の例外を発生させることが可能です。

詳細はNetObject.Getを参照してください。

取得したCRSスクリプトのカレントスコープ（this）は、Getメソッドを実行したオブジェクトになります。例えば、ButtonクラスのOnTouchイベントハンドラ内でGetメソッドを実行すると、Buttonオブジェクトの子としてオブジェクトが生成されます。画面（Formクラス）を定義したCRSを取得するときは、Rootオブジェクト（//）やFormオブジェクトでGetメソッドを実行するのが一般的です。

取得したCRSスクリプトの実行が完了するまでGetメソッドは復帰しません。

Android版
Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、OSに対してユーザー操作で許可をとる必要があります。
詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

obj.Get( URL [, param1 [, param2 [, ... ] ] ] )

戻り値

なし

引数

String URL

CRSファイルのURL

URLは以下の規則で決定します。

プロトコルから指定

http://などのプロトコルから指定すると、そのままリクエストを送信します。

URLをホスト名から始めることはできません。ホスト名を指定したい場合は必ずプロトコルから指定します。

例）

Get("http://server/path/form1.crs");
Get("https://server/path/form1.crs");

絶対パス指定

"/"で始まるURLは絶対パスとなります。Getメソッドを実行したCRSファイルをダウンロードしたサーバにリクエストを送信します。

例）Getメソッドを実行するCRSがhttp://server/path1/form1.crsからダウンロードされた場合

Get("/path2/form2.crs");
↓
Get("http://server/path2/form2.crs")

相対パス指定

"/"で始まらないURLは相対パスとなります。Getメソッドを実行したCRSファイルをダウンロードしたサーバの同じパスにリクエストを送信します。

例）Getメソッドを実行するCRSがhttp://server/path/form1.crsからダウンロードされた場合

Get("form3.crs");
↓
Get("http://server/path/form3.crs")

SYSオブジェクトのAPPROOTプロパティを使用すると、相対パス指定で上記とは異なる動作をします。APPROOTプロパティはバージョン3.0より前のバージョンとの互換性のために残されているので、新しいプログラムでは使用しないでください。

Object param

リクエストに付加するパラメータ

指定できるパラメータの数に制限はありません。

パラメータに指定するオブジェクトの種類ごとの変換規則に従い、文字列に変換されてリクエストに付加されます。

例外

CRS-331

通信エラー

Exceptionオブジェクトは以下の構造を持ちます。

Exception {
    String RequestURL;  /* 例外を起こしたリクエストのURL */
    Number StatusCode;  /* HTTPステータスコード */
    String ContentType; /* HTTPヘッダのContent-Type */
    String Body;        /* レスポンスボディ */
}

使用例

Function OnTouch(e) {
    //.Form1.Delete();
    //.Get("Form2.crs");
}

関連項目

Cache、CsvDocument.Getメソッド

paramに指定するオブジェクトの種類ごとの変換規則

種類

説明

文字列リテラル

例）"key=100"、"abc"

指定した文字列に"="が含まれるときは、"="の左側をパラメータ名、右側をデータ値とします。

"="が含まれないときは、"argN"（Nはパラメータの位置に応じた数字）をパラメータ名、文字列全体をデータ値とします。

数値リテラル

例）100、1.2

"argN"（Nはパラメータの位置に応じた数字）をパラメータ名、Number型の標準フォーマットで変換した文字列をデータ値とします。

String

オブジェクト名をパラメータ名、Valueプロパティの文字列全体をデータ値とします。

Number

Date

オブジェクト名をパラメータ名、Valueプロパティをデータ値とします。

Valueプロパティの値はデータ型に応じた標準フォーマットで文字列に変換されます。

Spread

PulldownList

OptionButton

ListBox（単一選択）

単一選択系の複合オブジェクトです。

オブジェクト名をパラメータ名、Valueプロパティをデータ値とします。

Valueプロパティは現在選択されている要素を表します。要素が選択されていないときは-1となります。

Valueプロパティの値は文字列に変換されます。

CheckBox

ListBox（複数選択）

複数選択系の複合オブジェクトです。

オブジェクト名をパラメータ名、個々の要素（CheckItem、ListItem）のSelectedプロパティをデータ値とします。

パラメータは、すべての要素に対して生成されます。

例）

CheckBox CheckBox1 {
   CheckItem item[3];
}

この例では、"CheckBox1"という同じ名前のパラメータを3つ生成し、item[0].Selected、item[1].Selected、item[2].Selectedをデータ値とします。

選択状態の場合は"1"、非選択状態の場合は"0"になります。

Root

Dialog

Doc

Form

Record

TabForm

SplitterFrame

SplitterForm

GraphAxis

SpreadRow

子オブジェクトを検索し、検索されたすべてのオブジェクトをパラメータとします。

オブジェクト名をパラメータ名、デフォルトプロパティをデータ値とします。

例）

Form Form1 {
   Button Button1;
   Label Label1;
   String String1;
}

この例では、"Button1"、" Label1"、"String1"という名前の3つのパラメータを生成し、それぞれのデフォルトプロパティをデータ値とします。

デフォルトプロパティの値はデータ型に応じた標準フォーマットで文字列に変換されます。

上記以外のオブジェクト

オブジェクト名をパラメータ名、デフォルトプロパティをデータ値とします。

デフォルトプロパティの値はデータ型に応じた標準フォーマットで文字列に変換されます。

HTTPヘッダによるキャッシュの制御

サーバから返されるHTTPレスポンスのヘッダに、標準のHTTPヘッダであるCache-Controlヘッダ、Pragmaヘッダによるno-cacheの指定があると、Biz/Browserは取得したファイルをキャッシュません。

Cache-Control: no-cache
Pragma: no-cache

Biz/Browser固有のヘッダであるCRS-Cache-Controlヘッダは、標準のHTTPヘッダによるキャッシュ制御（Cache-Control、Pragmaヘッダ）より優先してキャッシュを制御できます。

CRS-Cache-Control: no-cache
または
CRS-Cache-Control: cache

CRS-Cache-Controlヘッダにno-cacheが指定されているときはキャッシュしません。cacheが指定されているときはキャッシュします。

この機能は、HTTPメッセージを中継するプロキシサーバなどとBiz/Browserで異なるキャッシュ制御を行いたいときに利用できます。例えば、Cache-Controlヘッダにno-cacheを指定し、CRS-Cache-Control ヘッダにcacheを指定すると、中継するプロキシサーバではキャッシュされず、Biz/Browserはキャッシュする動作を指示することができます。

HTTPヘッダによる例外の制御

サーバから返されるHTTPレスポンスのヘッダを利用して、任意の例外を発生させることができます。この機能はアプリケーション独自の通信エラー処理に利用できます。

HTTPステータスコードが200（$HTTP_OK）のレスポンスヘッダにCRS-Exceptionヘッダを指定することで、正常な通信でも例外を発生させることができます。

CRS-Exceptionヘッダは次の書式で指定します。

CRS-Exception: Method:メソッド; Code:コード; Message:メッセージ;

Method、Code、Messageは、Exceptionクラスの同名のプロパティに対応しています。

Methodの内容はMethodプロパティに設定されます。Methodを指定しない場合は"Server-Error"となります。

Codeの内容はCodeプロパティに設定されます。Codeを指定しない場合は0となります。

Messageの内容はMessageプロパティに設定されます。Messageを指定しない場合はCRS-Exceptionヘッダ全体がMessageに設定されます。

発生する例外のExceptionオブジェクトは、CRS-331例外と同じ構造を持ち、同じ情報（RequestURL、StatusCodeなど）が格納されます。


NetObjectイベント

API version 4

イベント

iOSAndroidWindows

NetObjectクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Change | デフォルトプロパティの変化で発生します

クラス概要

基本クラスのイベント


NetObject.Changeイベント

UseChangeプロパティを$TRUEに設定したオブジェクトのデフォルトプロパティの変化で発生するイベントです。

Changeイベントは、デフォルトプロパティの変化で発生するので、オブジェクト値の変化に連動した挙動を行う際に利用できます。

多くのクラスではデフォルトプロパティの変化により、クラス独自の別のイベントが発生します。例えばTextBoxクラスでは、入力があった場合にTouchイベントが発生します。入力があるとデフォルトプロパティのValueに格納されるため、UseChangeプロパティを$TRUEに設定しておくことで同時にChangeイベントも発生しますが、通常はTouchイベントを利用したほうが効率的です。

UseChangeプロパティを$TRUEに設定してChangeイベントを利用する意義があるのは、デフォルトプロパティが変化する操作でイベントが発生しないクラスの場合です。例えばStringクラスはValueプロパティの変化でもイベントは発生しません。Stringオブジェクトを監視し、値の変化に反応する必要がある場合は、UseChangeプロパティを$TRUEに設定するとChangeイベントが発生します。

また、もうひとつの用途として、画面入力とスクリプトによる値の変化を共通したイベントハンドラで処理したい場合があります。例えば、TextBoxクラスでUseChangeプロパティを$TRUEに設定した場合は、画面からのキー入力ではTouchイベントとChangeイベントが発生し、スクリプトからの値の変更ではChangeイベントだけが発生します。


Numberクラス

Object
 | NetObject
 |  | Number

数値を保持するクラスです。

Numberクラスの値は浮動小数点表記で管理され、最大で15桁の精度を持ち、おおよそ1.7E-308 〜 1.7E+308の範囲の数値を表現します。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


Numberプロパティ

API version 4

プロパティ

iOSAndroidWindows

Numberクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Value | CRW | Number | 0 | オブジェクトの値

スタティックプロパティ

API | 名前 | 型 | 値 | 説明
4 | MAX_VALUE | Number | 1.7976931348623158e+308 | Numberクラスの最大値
4 | MIN_VALUE | Number | 2.2250738585072014e-308 | Numberクラスの最小値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Number.Valueプロパティ

Numberオブジェクトの値です。


Number.MAX_VALUEプロパティ

Numberクラスの表現できる最大値（1.7976931348623158e+308）を示します。


Number.MIN_VALUEプロパティ

Numberクラスの表現できる最小値（2.2250738585072014e-308）を示します。


Numberメソッド

API version 4

メソッド

iOSAndroidWindows

Numberクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | Numberオブジェクトを初期化します
4 | ToExponential | 指数表記の文字列で返します
4 | ToFixed | 固定小数点表記の文字列で返します
4 | ToLocaleString | ロケール書式を使用して文字列に変換します
4 | ToPrecision | 指定された桁数の指数表記または固定小数点表記の数値を文字列で返します
4 | ToString | 文字列を返します
4 | ValueOf | 格納されている数値を返します

クラス概要

基本クラスのメソッド


Numberコンストラクタ

説明

Numberオブジェクトを初期化します。

呼出形式

var num = new Number( [ value ] )

戻り値

Numberオブジェクト

引数

Number value

初期化する値

例外

なし

使用例

var num = new Number(5678);
print(num, "\n");

関連項目


Number.ToExponentialメソッド

説明

Numberオブジェクトに格納されている値を指数表記の文字列で返します。

呼出形式

var text = num.ToExponential( [ fractionDigits ] )

戻り値

指数表記の文字列

引数

integer fractionDigits

仮数部の桁数

0から15を指定します。省略した場合は15になります。

例外

Func-4

引数の値が不正です

使用例

var num = new Number;
num.Value = 5678.12345;
print(num.ToExponential(3), "\n");

---出力結果---
5.678e+003

関連項目


Number.ToFixedメソッド

説明

Numberオブジェクトに格納されている値を固定小数点表記の文字列で返します。

呼出形式

var text = num.ToFixed( [ fractionDigits ] )

戻り値

固定小数点表記の文字列

引数

integer fractionDigits

小数点以下の桁数
0から15を指定できます。省略した場合は0になります。

例外

Func-4

引数の値が不正です

使用例

var num = new Number;
num.Value = 5678.12345;
print(num.ToFixed(3), "\n");

---出力結果---
5678.123

関連項目


Number.ToLocaleStringメソッド

説明

Numberオブジェクトに格納されている値をロケール書式の文字列で返します。

現在の実装ではToStringメソッドと同じ値が返ります。

呼出形式

var text = num.ToLocaleString( )

戻り値

ロケール書式の文字列

引数

なし

例外

なし

使用例

var num = new Number;
num.Value = 5678;
print(num.ToLocaleString(), "\n");

関連項目

ToStringメソッド


Number.ToPrecisionメソッド

説明

Numberオブジェクトに格納されている値を、指定された桁数の指数表記または固定小数点表記を文字列で返します。

引数を省略した場合ToStringメソッドと同等の結果を返します。

呼出形式

var text = num.ToPrecision( [ fractionDigits ] )

戻り値

指数表記または固定小数点表記の文字列

短い表現になる方を返します。

引数

integer fractionDigits

桁数

1から15を指定します。

例外

Func-4

引数の値が不正です

使用例

var num = new Number;
num.Value = 5678.12345;
print(num.ToPrecision(3), "\n");
print(num.ToPrecision(6), "\n");

---出力結果---
5.68e+003
5678.12

関連項目

ToExponential、ToStringメソッド


Number.ToStringメソッド

説明

Numberオブジェクトに格納されている値を文字列として返します。

引数を指定することによりradix進数の文字列で返します。

呼出形式

var text = num.ToString( [ radix ] )

戻り値

変換した文字列

引数

integer radix

基数

2から36の値を指定できます。16進数の場合は16を指定します。

省略時は10進数です。

例外

Func-4

引数の値が不正です

使用例

var num = new Number;
num.Value = 5678;
print(num.ToString(16), "\n");

---出力結果---
162e

関連項目


Number.ValueOfメソッド

説明

Numberオブジェクトに格納されている値を返します。

呼出形式

var v = num.ValueOf( )

戻り値

Number型の値

引数

なし

例外

なし

使用例

var num = new Number;
num.Value = 5678;
print(num.ValueOf(), "\n");

関連項目


Numberイベント

API version 4

イベント

iOSAndroidWindows

Numberクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Objectクラス

Object

すべてのクラスの基底クラスです。Biz/Browserに含まれるすべてのクラスはObjectクラスから派生しています。

Objectクラスには、オブジェクトツリーの管理やオブジェクトの維持と開放など、オブジェクトの最も基本的な機能があります。

Objectクラスは仮想クラスで、それ自体をインスタンス化することはできません。


Objectプロパティ

API version 4

プロパティ

iOSAndroidWindows

Objectクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
HT(10) | Class | R | String | クラス名
4 | ClassName | R | String | クラス名
4 | IsArray | R | boolean | オブジェクトが配列かどうか
4 | Name | R | String | オブジェクトの名前
4 | ValueType | 4 | - | オブジェクトのデータ型

配列オブジェクトのみ追加されるプロパティ

API | 名前 | アクセス | 型 | 説明
4 | Index | R | integer | 配列要素の位置
4 | Length | R | integer | 配列オブジェクトの要素数

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要


Object.ClassNameプロパティ

オブジェクトのクラス名を文字列で示します。

このプロパティは読取専用で更新することはできません。


Object.IsArrayプロパティ

オブジェクトが配列である場合は$TRUE、そうでない場合は$FALSEとなります。

このプロパティは読み取り専用で変更することはできません。


Object.Nameプロパティ

オブジェクトの名前を文字列で示します。オブジェクトの名前とは、オブジェクトツリーで識別される名前です。

CRSではvar変数にオブジェクトリファレンスを格納することにより、1つのオブジェクトに複数の名前でアクセスすることが可能です。Nameプロパティは、こうしたvar変数の名前(ラベル)とは関係なく、オブジェクトがオブジェクトツリーに接続された際に付与される名前を示します。オブジェクトツリーに接続されていないオブジェクトのNameプロパティは通常は空文字列で無名です。

オブジェクト名は、通常のオブジェクトツリー接続ステートメントで指定するか、Appendメソッドで指定します。

オブジェクトツリー接続ステートメント例

Form form1 {
     :
    Button Button1 {
        :
    }
     :
}

この例では、form1とbutton1がNameプロパティに格納されます。

Append例

:
var obj = new String;
Append(obj, "StringA");
:

この例では、StringAがNameプロパティに格納されます。

このプロパティは読取専用で更新することはできません。


Object.ValueTypeプロパティ

※ ValueTypeは厳密にはプロパティではありませんが、ここでは便宜上プロパティとして扱っています。

ValueTypeはオブジェクトのデータ型を表します。ValueTypeは以下の書式で指定します。

ClassName:ValueType Name

例

TextBox:Number TextBox1 {
    ...
}

上記の例では、データ型がNumberのテキストボックスを定義しています。

ValueTypeは省略できます。TextBoxクラスのようにValueTypeを指定可能なクラスで省略した場合はString（文字列）型になります。

TextBox TextBox1 {
    /* 省略時のValueTypeはString */
}

オブジェクトのデータ型はクラスにより固定されているものもあります。例えば、DateEditクラスは常にDate型となるためValueTypeの指定は無効です。

各クラスのデフォルトプロパティはオブジェクトの値を表すため、ValueTypeはデフォルトプロパティのデータ型でもあります。

ValueTypeに指定できるデータ型の種類はクラスの仕様により異なります。詳細は各クラスの説明を参照してください。

ValueTypeは、Biz/Designerではプロパティビューでプロパティのように設定できますが、厳密にはプロパティではないためCRSスクリプトでは以下のような指定はできません。

TextBox TextBox1 {
    ValueType = Number; /* 間違った指定の例 */
}


Object.Indexプロパティ

配列要素のオブジェクトのみに付加されるプロパティで、配列要素の位置（添え字）を表します。

このプロパティは個々の配列要素に対して付加されます。配列オブジェクトには付加されないことに注意してください。

Number num[3];
MessageBox(num[1].Index); /* この行で1が表示されます */
MessageBox(num.Index);    /* この行はエラーです。配列オブジェクトにはIndexは付加されません */

配列化されていないオブジェクトではこのプロパティは無効です。

このプロパティは読取専用で更新することはできません。


Object.Lengthプロパティ

配列オブジェクトのみに付加されるプロパティで、配列の要素数を表します。

このプロパティは配列オブジェクトに対して付加されます。個々の配列要素には付加されないことに注意してください。

Number num[3];
MessageBox(num.Length);    /* この行で3が表示されます */
MessageBox(num[1].Length); /* この行はエラーです。要素にはLengthは付加されません */

配列化されていないオブジェクトではこのプロパティは無効です。

このプロパティは読取専用で更新することはできません。


Object.Classプロパティ

オブジェクトのクラス名を文字列で示します。ClassNameプロパティと同じ値を指します。

このプロパティは読取専用で更新することはできません。


Objectメソッド

API version 4

メソッド

iOSAndroidWindows

Objectクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | Append | 指定したオブジェクトをオブジェクトツリーに接続します
4 | Clear | オブジェクトのデフォルトプロパティを初期化します
4 | ClearChild | すべての子オブジェクトのデフォルトプロパティを初期化します
23 | ClearEvent | イベントをイベントキューから削除します
4 | Delete | オブジェクトをオブジェクトツリーから切断します
4 | DeleteChild | すべての子オブジェクトをオブジェクトツリーから切断します
4 | FindChild | 指定した名前の子オブジェクトを検索します
4 | FindObject | オブジェクトツリーからオブジェクトを検索します
4 | GetChildObjects | すべての子オブジェクトを取得します
4 | PostEvent | オブジェクトにイベントを送ります

配列オブジェクトのみ追加されるメソッド

API | 名前 | 説明
4 | Insert | 配列オブジェクトに要素を追加します
4 | Truncate | 配列オブジェクトのすべての要素を削除します

クラス概要


Object.Appendメソッド

説明

指定したオブジェクトを子オブジェクトとしてオブジェクトツリーに接続します。

オブジェクトツリーに接続されたオブジェクトは、変数スコープが消失しても削除されなくなり、オブジェクトツリーからいつでも参照できます。オブジェクトを永続的に保持したい場合はオブジェクトツリーに接続してください。接続したオブジェクトはDeleteメソッドで削除できます。

多くのオブジェクトをオブジェクトツリーに接続するとメモリ効率が悪くなり、動作も遅くなる場合があるので注意してください。

呼出形式

obj.Append( child [, name ] )

戻り値

なし

引数

Object child

接続する子オブジェクト

以下のオブジェクトは指定できません。

・DisplayObjectクラスを継承したクラスのオブジェクト

・階層構造の規定に反したオブジェクト

・すでに別の親オブジェクトに接続されているオブジェクト

・配列の要素オブジェクト

String name

子オブジェクトの名前

すでにchildに名前が付与されている場合は指定できません。

接続する同一階層に同じ名前のオブジェクトがあると例外が発生します。

例外

CRS-334

オブジェクト以外を接続することはできません

CRS-335

同じ名前を持つオブジェクトは接続できません

CRS-336

すでにオブジェクトツリーに接続されています

CRS-357

別の名前でAppendすることはできません

CRS-362

配列要素または構造をもつオブジェクトはAppendできません

使用例

Function OnTouch(e) {
    var child = new Array(1, 2, 3, 4, 5);
    Append(child, "TheArray");
}

関連項目

Delete、DeleteChildメソッド


Object.Clearメソッド

説明

オブジェクトのデフォルトプロパティを初期化します。

初期化

初期化はデフォルトプロパティのデータ型（オブジェクトのValueType）に応じて行われます。（オブジェクト生成時に設定した初期値に戻すことではありません）

例えば、Stringオブジェクトの場合は空文字列に初期化され、Numberオブジェクトの場合は0に初期化されます。

Clearメソッドは操作対象のオブジェクトについて詳細を意識することなく初期化できる点で、デフォルトプロパティへの初期値の代入と異なります。

操作対象がNumberオブジェクトやStringオブジェクトなど初期化すべき値が異なるケースでも、Clearメソッドにより同じ手順で安全に初期化できます。

デフォルトプロパティ

デフォルトプロパティは、多くのクラスでValueプロパティですが、それ以外のプロパティがデフォルトプロパティのクラスもあります。

また、デフォルトプロパティがないクラスもあります。デフォルトプロパティがないクラスではClearメソッドは何も効果はありません。

デフォルトプロパティについては各クラスのドキュメントを参照してください。

配列オブジェクト

配列オブジェクトに対してClearメソッドを実行しても、その各要素オブジェクトには反映されません。配列要素オブジェクトには個別にClearメソッドを実行する必要があります。

呼出形式

obj.Clear( )

戻り値

なし

引数

なし

例外

なし

使用例

Function OnTouch(e) {
    var childArray = GetChildObjects();
    for (var i in childArray) {
        childArray[i].Clear();
    }
}

関連項目

ClearChildメソッド


Object.ClearChildメソッド

説明

オブジェクトに接続されたすべての子オブジェクトのデフォルトプロパティを初期化します。

デフォルトプロパティの初期化については、Clearメソッドを参照してください。

呼出形式

obj.ClearChild( )

戻り値

なし

引数

なし

例外

なし

使用例

Function OnTouch(e) {
    //.Form1.ClearChild();
}

関連項目

Clearメソッド


Object.ClearEventメソッド

説明

イベントキューからイベントを削除します。

大量のイベントが発生すると、イベントキュー内のイベントをすべて処理するまでに時間がかかる場合があります。

そのような場合に、このメソッドを使用しイベントキューからイベントを削除することで、処理を素早く中断させることができます。

イベントに関する詳細はイベントとイベントハンドラを参照してください。

呼出形式

obj.ClearEvent( ev )

戻り値

なし

引数

Event ev

送付するユーザ定義イベントのEventオブジェクト

またはシステム定義イベント名

例外

なし

使用例

/* イベントを大量に発生させる */
for (var i = 0; i < 10000; i++) {
    /* ユーザ定義イベント */
    PostEvent(new Event(UserEvent + 1, "AppEvent1"));

    /* システム定義イベント */
    PostEvent(Touch);
}

Function OnAppEvent1(e) {
    print("AppEvent1\n");
}
Function OnTouch(e) {
    print("Touch\n");
}
Button btnClear{
    X = 10;
    Y = 10;
    Title = "イベントをクリア";
    TapEventMode = Object.POST_FRONT;
    Function OnTouch(e) {
        /* ユーザ定義イベント */
        ^.ClearEvent(new Event(UserEvent + 1, "AppEvent1"));
        /* システム定義イベント */
        ^.ClearEvent(Touch);
    }
}

関連項目

PostEventメソッド

Eventクラス


Object.Deleteメソッド

説明

オブジェクトをオブジェクトツリーから切断します。

切断されたオブジェクトがどこからも参照されていない場合は、接続されたすべての子オブジェクトも連鎖的に切断されます。

オブジェクトツリーから切断され、どこからも参照されなくなったオブジェクトは削除されます。詳細はオブジェクトの削除を参照してください。

配列オブジェクト

配列の要素に対してDeleteメソッドを呼び出すと、その要素（とその子オブジェクト）だけが削除されます。その結果、後続の要素は配列番号（インデックス）が繰り下がります。

オブジェクトの再利用

オブジェクトツリーから切断されたオブジェクトは、原則として再利用はできません。オブジェクトツリー再接続して再利用する場合に、オブジェクトが正しく動作しないことがありますのでご注意ください。特に、ボタンやテキストボックスなどDisplayObjectクラスを継承した各クラスについては再利用はしないでください。

呼出形式

obj.Delete( )

戻り値

なし

引数

なし

例外

なし

使用例

Function OnTouch(e) {
    //.Form1.Delete();
    //.Get("Form2.crs");
}

関連項目

DeleteChild、Appendメソッド


Object.DeleteChildメソッド

説明

オブジェクトに接続されたすべての子オブジェクトをオブジェクトツリーから切断します。

オブジェクトツリーからの切断については、Deleteメソッドを参照してください。

呼出形式

obj.DeleteChild( )

戻り値

なし

引数

なし

例外

なし

使用例

Function OnTouch(e) {
    //.Form1.DeleteChild();
    //.Form1.Get("Form1Sub.crs");
}

関連項目

Delete、Appendメソッド


Object.FindChildメソッド

説明

指定した名前の子オブジェクトを検索します。

nameにクラス識別子を指定すると、指定クラスのオブジェクトを検索します。

呼出形式

obj.FindChild( name )

戻り値

オブジェクトが見つかった場合は、そのオブジェクトのリファレンスを返します。

オブジェクトが見つからなかった場合はnullを返します。

引数

String name

または

クラス識別子

検索するオブジェクトの名前またはクラス識別子

例外

なし

使用例

/* オブジェクト名で検索 */
var child = FindChild("TEST");
if (child != null) {
    child.Value = "Hello";
}

/* クラスで検索 */
var form_obj = FindChild(Form);
if (form_obj != null) {
    form_obj.BgColor = $WHITE;
}

関連項目

GetChildObjectsメソッド


Object.FindObjectメソッド

説明

オブジェクトツリーからオブジェクトを検索します。

FindChildメソッドと似た機能ですが、より柔軟にオブジェクトを検索できます。

呼出形式

obj.FindObject( name [, rule ] )

戻り値

オブジェクトが見つかった場合は、そのオブジェクトのリファレンスを返します。

オブジェクトが見つからなかった場合はnullを返します。

引数

String name

または

クラス識別子

検索するオブジェクトの名前またはクラス識別子

integer rule

検索のルール

どのような規則で検索を行うかを以下から指定します。

定数 | 説明
Object.FIND_CHILD | 子オブジェクトから検索します。FindChildメソッドと同様の動作です。
Object.FIND_ANCESTOR | 親または先祖から検索します。
Object.FIND_SCOPEPATH | 子、自分、親、先祖の順に検索します。
Object.FIND_EVENTPATH | 子、親、親の子、先祖、先祖の子の順に検索します。

省略時にはObject.FIND_CHILDを指定した場合と同じ動作となります。

例外

なし

使用例

/* 親または先祖からFormオブジェクトを検索 */
var form_obj = FindObject(Form, FIND_ANCESTOR);

/* イベントハンドラと同じルールでファンクションを検索 */
var fnc = FindObject("OnTouch", FIND_EVENTPATH);
if (fnc != null) {
    fnc(e);
}

/* オブジェクトスコープのルールで、txCodeを検索 */
var obj = FindObject("txCode", FIND_SCOPEPATH);
if (obj != null) {
    obj.BgColor = $red;
}

関連項目

FindChildメソッド


Object.GetChildObjectsメソッド

説明

オブジェクトに接続されたすべての子オブジェクトを取得します。

呼出形式

obj.GetChildObjects( )

戻り値

すべての子オブジェクトを含むArrayオブジェクト

子オブジェクトのリファレンスを格納したArrayオブジェクトを返します。Arrayオブジェクトの要素は子オブジェクトの名前をキーにした連想配列で格納されています。格納されている子オブジェクトにアクセスするには、

childArray["オブジェクト名"]

の形式で名前を文字列で指定してアクセスするか、

for (var i in childArray) {
       print( childArray[i].value,"\n");
       ：
}

のようにfor in ループで順次アクセスします。

名前でアクセスする場合は大文字と小文字は区別されることに注意してください。

GetChildObjectsメソッドは、配列化された子オブジェクトの配列要素を取得しません。配列要素に対するアクセスが必要な場合は、以下のようにします。

var childArray = GetChildObjects();
var obj = childArray["item"][index];

引数

なし

例外

なし

使用例

Function setData(objName, objValue) {
    var ca = GetChildObjects();
    if (ca[objName] != null) {
        if (ca[objName].Value != null) {
            ca[objName].Value = objValue;
        }
    }
}

関連項目

FindChildメソッド


Object.PostEventメソッド

API version 4

Object.PostEventメソッド 変更履歴

iOSAndroidWindows

説明

オブジェクトにイベントを送ります。

このメソッドにより、CRSプログラムから任意のタイミングでイベントを発生させることができます。

イベントはイベントキューを経由して対応するイベントハンドラに渡されます。詳細はイベントとイベントハンドラを参照してください。

ユーザ定義のイベントを送る場合は、Reasonプロパティのイベント番号はシステム定義のイベント番号と重複しないようにUserEventで示されるコード番号以降（UserEvent+1など）を使用してください。

システム定義のイベントを送る場合は、evにはイベント名をそのまま指定できます。

イベントハンドラ内でPostEventメソッドを引数なしで呼び出すことで、そのイベントを親オブジェクトに転送できます。

呼出形式

obj.PostEvent( [ ev [, mode]] )

戻り値

なし

引数

Event ev

送付するユーザ定義イベントのEventオブジェクト

またはシステム定義イベント名

省略時はイベントをそのまま親オブジェクトに転送します。

integer mode

イベントをキューに追加する方法を指定します。 *1

以下の値の組み合わせを指定します。省略した場合はObject.POST_DEFAULTとなります。

定数 | 値 | 説明
Object.POST_DEFAULT | 0 | 従来通りイベントをイベントキューの一番後ろに追加します。
Object.POST_FRONT | 1 | イベントをイベントキューの先頭に追加します。 イベントを即時に発生させたい場合に指定します。
Object.POST_UNIQUE | 2 | 発信元オブジェクトが同じで同種のイベントがイベントキューに存在する場合、イベントをキューに追加しません。 イベントが大量に発生すると、イベントキューにイベントがたまり他のイベントの発生が遅れる場合があります。 Object.POST_UNIQUEを指定することでイベントキューにイベントがたまりすぎることを防げる場合があります。

evを省略する場合には指定しないでください。

例外

なし

使用例

/* ユーザ定義イベント */
PostEvent(new Event(UserEvent + 1, "AppEvent1"));

/* システム定義イベント */
PostEvent(Touch);

Function OnAppEvent1(e) {
    print("AppEvent1\n");
}
Function OnTouch(e) {
    print("Touch\n");
}

関連項目

Eventクラス

変更履歴
*1　API version 23から仕様変更されました。


Object.Insertメソッド

説明

配列化したオブジェクトに要素を追加します。

このメソッドは配列オブジェクト、配列要素のみ付加されます。配列化されていないオブジェクトではこのメソッドは無効です。

配列オブジェクトに対して実行すると、配列の末尾に新しい要素が挿入されます。

配列要素に対して実行すると、直前の位置に新しい要素が挿入されます。

呼出形式

obj.Insert( [ count ] )

obj[ index ].Insert( [ count ] )

戻り値

なし

引数

integer count

挿入する要素の数を指定します。省略すると1件挿入されます。

integer index

挿入する位置を添え字で指定します。指定する位置の要素は存在している必要があります。

例外

なし

使用例

/* 配列オブジェクトでの利用例 */
Record arrayRec[] {
    Number numItem;
    String strItem;
}
arrayRec.Insert(10);

/* 配列要素での利用例 */
Record arrayRec[5] {
    Number numItem;
    String strItem;
}
arrayRec[1].Insert(2);

関連項目

Truncateメソッド


Object.Truncateメソッド

説明

配列化したオブジェクトの要素をすべて削除します。

このメソッドは配列オブジェクトのみ付加されます。配列化されていないオブジェクトではこのメソッドは無効です。

個々の配列要素に対してDeleteメソッドを繰り返すよりも高速に動作します。

配列オブジェクトに対してDeleteメソッドを呼び出した場合とは異なり定義は削除されないため、後でInsertメソッドにより配列要素を再び作成することができます。

呼出形式

obj.Truncate( )

戻り値

なし

引数

なし

例外

なし

使用例

Record arrayRec[5] {
    Number numItem;
    String strItem;
}
arrayRec.Truncate();

関連項目

Insertメソッド


Objectイベント

API version 4

イベント

iOSAndroidWindows

Objectクラスで定義されるイベントはありません。

クラス概要


Recordクラス

Object
 | NetObject
 |  | Record

複数のオブジェクトをまとめるためのクラスです。

Recordクラス自体には機能はなく、Recordオブジェクトの下位に別のオブジェクトを配置してまとめるために使用します。

例えば、Recordクラスを使用してFunctionの戻り値で構造を持つデータを戻すことができます。

Function sample() {
    var ret = new Record {
        Number code;
        String text;
    }
    ret.code = 100;
    ret.text = "abcdefg";
    return ret;
}

また、CRSプログラムで簡単なデータ構造を作成したい場合にも利用できます。

Record custDB[] {
    Number custCode;
    String custName;
    String custAddr;
}
custDB << CSV {
    1001,"東京太郎","東京都"
    1002,"大阪花子","大阪府"
    :
};

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


Recordプロパティ

API version 4

プロパティ

iOSAndroidWindows

Recordクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Value | CRW | Number | 0 | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Record.Valueプロパティ

オブジェクトの値です。Number型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


Recordメソッド

API version 4

メソッド

iOSAndroidWindows

Recordクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


Recordイベント

API version 4

イベント

iOSAndroidWindows

Recordクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


RegexMatcherクラス

iOS AndroidWindows

Object
 | RegexMatcher

正規表現パターンを解釈し、入力文字列とのマッチ操作を行うための正規表現エンジンです。

RegexMatcherクラスのオブジェクトはRegexPatternクラスのMatcherメソッドで作成します。RegexMatcherクラスにはマッチ操作、置換操作のための様々なメソッドがあります。

デフォルトプロパティとValueType

デフォルトプロパティはInputStringです。ValueTypeの指定は無効です。

置換操作メソッドの前方参照グループへの参照について

AppendReplacement、ReplaceAll、ReplaceFirstメソッドで指定する置換文字列には、"$n"と記述することで前方参照グループの部分文字列を参照できます。nにはグループの番号を記述します。例えば、グループ1を参照する場合は"$1"と記述します。

"$"をリテラルとして置換文字列に含める場合には、"\"によってエスケープします。なお、CRSプログラム内に記述する場合、"\"はCRSプログラムにおけるエスケープ文字でもあるため、"\\$text"のように"\"を二つ重ねる必要があります。


RegexMatcherプロパティ

API version 6

プロパティ

iOS AndroidWindows

RegexMatcherクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
6 | GroupCount | R | integer | 正規表現パターンに指定されている前方参照グループの数
6 | InputString | R | String | 正規表現エンジンに設定されている入力文字列
6 | Pattern | R | RegexPattern | RegexMatcherオブジェクトの生成元になったRegexPatternオブジェクト

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


RegexMatcher.GroupCountプロパティ

iOS AndroidWindows

正規表現パターンに指定されている前方参照グループの数です。

このプロパティは読み取り専用です。


RegexMatcher.InputStringプロパティ

iOS AndroidWindows

正規表現エンジンに設定されている入力文字列です。

このプロパティは読み取り専用です。


RegexMatcher.Patternプロパティ

iOS AndroidWindows

RegexMatcherオブジェクトの生成元になったRegexPatternオブジェクトです。

このプロパティは読み取り専用です。


RegexMatcherメソッド

API version 6

メソッド

iOS AndroidWindows

RegexMatcherクラスには以下のメソッドが定義されています。

API | 名前 | 説明
6 | AppendReplacement | 継続追加置換を行います
6 | AppendTail | 終了追加置換を行います
6 | End | マッチした結果の末尾インデックスを取得します
6 | Find | 入力文字列から正規表現パターンに次のマッチする部分文字列を検索します
6 | GetInputString | 正規表現エンジンに設定されている入力文字列を取得します
6 | Group | マッチした結果の部分文字列を取得します
6 | LookingAt | 入力文字列の先頭から正規表現パターンとマッチします
6 | Matches | 入力文字列全体を正規表現パターンとマッチします
6 | ReplaceAll | 正規表現パターンとマッチする全ての箇所を指定した文字列に置き換えます
6 | ReplaceFirst | 正規表現パターンとマッチする最初の箇所を指定した文字列に置き換えます
6 | Reset | 正規表現エンジンをリセットします
6 | Start | マッチした結果の先頭インデックスを取得します

クラス概要

基本クラスのメソッド


RegexMatcher.AppendReplacementメソッド

iOS AndroidWindows

説明

継続追加置換を行います。

追加位置以降の入力文字列から、前回マッチした部分までの文字列を返します。この際、マッチした部分は置換文字列で置き換えられています。その後、追加位置はマッチした部分の末尾インデックスの次の位置に移動します。

呼出形式

var s = rm.AppendReplacement( replacement )

戻り値

追加位置以降の入力文字列から、前回マッチした部分までを、マッチ部分を置換文字列に置き換えて返す。

引数

String replacement

置換文字列

"$n"による前方参照グループへの参照を使用できます。

例外

Func 4

引数の値が不正です

Func 14

値が参照できません

使用例

var p = RegexPattern.Compile("([0-9])([0-9])([0-9])");
var m = p.Matcher("Biz/Browser 311, Biz/Desginer 400, abcde");
var s = "";
while (m.Find()) {
    s += m.AppendReplacement("$1.$2.$3");
}
s += m.AppendTail();
print(s, "\n");

関連項目

AppendTailメソッド


RegexMatcher.AppendTailメソッド

iOS AndroidWindows

説明

終了追加置換を行います。

追加位置以降の入力文字列から末尾までを返します。

呼出形式

var s = rm.AppendTail( )

戻り値

追加位置以降の入力文字列から末尾までの文字列

引数

なし

例外

なし

使用例

var p = RegexPattern.Compile("([0-9])([0-9])([0-9])");
var m = p.Matcher("Biz/Browser 311, Biz/Desginer 400, abcde");
var s = "";
while (m.Find()) {
    s += m.AppendReplacement("$1.$2.$3");
}
s += m.AppendTail();
print(s, "\n");

関連項目

AppendReplacementメソッド


RegexMatcher.Endメソッド

iOS AndroidWindows

説明

マッチした結果の末尾インデックスを取得します。

group を指定すると、正規表現パターンのグループによって前方参照された部分文字列の末尾インデックスを取得できます。

グループは左から右に1から順に番号がつき、グループ0はパターン全体を表します。

"(a)*"等の正規表現パターンでは空文字列にマッチすることがあります。この場合は-1を返します。

ただし、グループ番号に0を指定した場合は、0を返します。

呼出形式

var e = rm.End( [ group ] )

戻り値

マッチした部分もしくは前方参照グループの末尾インデックス

（末尾インデックスは文字列の末尾の次の位置を指します）

引数

integer group

取得したい前方参照グループの番号

省略した場合は0（パターン全体）となります。

例外

Func 4

引数の値が不正です

Func 14

値が参照できません

使用例

var m = RegexPattern.Compile("Biz/([a-zA-Z]+)").Matcher("Biz/Browser");
if (m.Matches()) {
    print(m.Start(1), m.End(1), m.Group(1), "\n");
}

関連項目

Start、Groupメソッド


RegexMatcher.Findメソッド

iOS AndroidWindows

説明

入力文字列から正規表現パターンにマッチする次の部分文字列を検索します。

正規表現エンジンを生成した直後やResetメソッドによりリセットされた場合は、入力文字列の先頭から検索が開始されます。

引数を指定しない場合は、前回のマッチ部分の後ろから検索が開始されます。

引数 start を指定すると、正規表現エンジンをリセットし、入力文字列の start の指定した位置から検索を開始します。

マッチが成功した場合は、Start、End、Groupメソッドを使用して詳細情報を取得できます。

呼出形式

var b = rm.Find( [ start ] )

戻り値

入力文字列の現在位置以降で正規表現パターンと部分一致した場合は$TRUE、しなかった場合は$FALSE

引数

integer start

検索開始位置

例外

Func 4

引数の値が不正です

使用例

var m = RegexPattern.Compile("Biz").Matcher("Biz/Browser, Biz/Desginer, Biz-Collections");
while (m.Find()) {
    print(m.Start(0), m.End(0), "\n");
}

関連項目

Start、End、Group、Resetメソッド


RegexMatcher.GetInputStringメソッド

iOS AndroidWindows

説明

正規表現エンジンに設定されている入力文字列を取得します。

呼出形式

var s = rm.GetInputString( )

戻り値

正規表現エンジンに設定されている入力文字列

引数

なし

例外

なし

使用例

var p = RegexPattern.Compile("Biz/([a-zA-Z]+)", 0);
var m = p.Matcher("Biz/Browser,Biz/Designer");
print(m.GetInputString(), "\n");

関連項目

InputStringプロパティ


RegexMatcher.Groupメソッド

iOS AndroidWindows

説明

マッチした結果の部分文字列を取得します。

group を指定すると、正規表現パターンのグループによって前方参照された部分文字列を取得できます。

グループは左から右に1から順に番号がつき、グループ0はパターン全体を表します。

"(a)*"等の正規表現パターンでは空文字列にマッチすることがあります。この場合は、空文字列が返されます。

呼出形式

var s = rm.Group( [ group ] )

戻り値

マッチした部分もしくは前方参照グループの部分文字列

引数

integer group

取得したい前方参照グループの番号

省略した場合は0（パターン全体）となります。

例外

Func 4

引数の値が不正です

Func 14

値が参照できません

使用例

var m = RegexPattern.Compile("Biz/([a-zA-Z]+)").Matcher("Biz/Browser");
if (m.Matches()) {
    print(m.Start(1), m.End(1), m.Group(1), "\n");
}

関連項目

Start、Endメソッド


RegexMatcher.LookingAtメソッド

iOS AndroidWindows

説明

入力文字列の先頭から正規表現パターンとマッチします。

入力文字列全体とマッチする必要はありません。

マッチが成功した場合は、Start、End、Groupメソッドを使用して詳細情報を取得できます。

呼出形式

var b = rm.LookingAt( )

戻り値

入力文字列の先頭から正規表現パターンとマッチした場合は$TRUE、しなかった場合は$FALSE

引数

なし

例外

なし

使用例

var m = RegexPattern.Compile("Biz/([a-zA-Z])+").Matcher("Biz/Browser, Biz/Desginer");
if (m.LookingAt()) {
    print(m.Start(1), m.End(1), m.Group(1), "\n");
}

関連項目

Start、End、Groupメソッド


RegexMatcher.Matchesメソッド

iOS AndroidWindows

説明

入力文字列全体と正規表現パターンをマッチします。

マッチが成功した場合は、Start、End、Groupメソッドを使用して詳細情報を取得できます。

呼出形式

var b = rm.Matches( )

戻り値

入力文字列全体と正規表現パターンで完全一致した場合は$TRUE、しなかった場合は$FALSE

引数

なし

例外

なし

使用例

var m = RegexPattern.Compile("Biz/([a-zA-Z]+)").Matcher("Biz/Browser");
if (m.Matches()) {
    print(m.Start(1), m.End(1), m.Group(1), "\n");
}

関連項目

Start、End、Groupメソッド


RegexMatcher.ReplaceAllメソッド

iOS AndroidWindows

説明

正規表現パターンとマッチする全ての箇所を、指定した文字列に置き換えます。

呼出形式

var s = rm.ReplaceAll( replacement )

戻り値

置き換えられた結果の文字列

引数

String replacement

置換文字列

"$n"による前方参照グループへの参照を使用できます。

例外

Func 14

値が参照できません

使用例

var p = RegexPattern.Compile("Biz/([a-zA-Z]+)");
var m = p.Matcher("Biz/Browser, Biz/Designer");
print(m.ReplaceAll("ABC Biz/$1"), "\n");

関連項目

ReplaceFirstメソッド


RegexMatcher.ReplaceFirstメソッド

iOS AndroidWindows

説明

正規表現パターンとマッチする最初の箇所を、指定した文字列に置き換えます。

呼出形式

var s = rm.ReplaceFirst( replacement )

戻り値

置き換えられた結果の文字列

引数

String replacement

置換文字列

"$n"による前方参照グループへの参照を使用できます。

例外

Func 14

値が参照できません

使用例

var p = RegexPattern.Compile("Biz/([a-zA-Z]+)");
var m = p.Matcher("Biz/Browser, Biz/Designer");
print(m.ReplaceFirst("ABC Biz/$1"), "\n");

関連項目

ReplaceAllメソッド


RegexMatcher.Resetメソッド

iOS AndroidWindows

説明

正規表現エンジンをリセットします。

正規表現エンジンをリセットすると、Findメソッドの現在位置、AppendReplacementメソッドの追加位置、Start、End、Groupメソッドを使用して取得できるマッチの情報などが初期化されます。

input を指定することで、新しい入力文字列を設定することもできます。

呼出形式

var ret = rm.Reset( [ input ] )

戻り値

自身のRegexMatcherオブジェクト

引数

String input

新しく設定する入力文字列

省略した場合は、入力文字列は変更されません。

例外

なし

使用例

var m = RegexPattern.Compile("(Biz)/([a-zA-Z]+)").Matcher("Biz/Browser, PrintStream");
while (m.Find()) {
    print(m.Group(1), m.Group(2), "\n");
}
m.Reset("Biz/Browser, Biz/Designer");
print("----Reset----\n");
while (m.Find()) {
    print(m.Group(1), m.Group(2), "\n");
}

関連項目


RegexMatcher.Startメソッド

iOS AndroidWindows

説明

マッチした結果の先頭インデックスを取得します。

group を指定すると、正規表現パターンのグループによって前方参照された部分文字列の開始インデックスを取得できます。

グループは左から右に1から順に番号がつき、グループ0はパターン全体を表します。

"(a)*"等の正規表現パターンでは空文字列にマッチすることがあります。この場合は-1を返します。

ただし、グループ番号に0を指定した場合は、0を返します。

呼出形式

var s = rm.Start( [ group ] )

戻り値

マッチした部分もしくは前方参照グループの開始インデックス

引数

integer group

取得したい前方参照グループの番号

省略した場合は0（パターン全体）となります。

例外

Func 4

引数の値が不正です

Func 14

値が参照できません

使用例

var m = RegexPattern.Compile("Biz/([a-zA-Z]+)").Matcher("Biz/Browser");
if (m.Matches()) {
    print(m.Start(1), m.End(1), m.Group(1), "\n");
}

関連項目

End、Groupメソッド


RegexMatcherイベント

API version 6

イベント

iOS AndroidWindows

RegexMatcherクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


RegexPatternクラス

Object
 | RegexPattern

正規表現パターンを保持するクラスです。

Compileスタティックメソッドにより、指定した正規表現をコンパイルし、RegexPatternオブジェクトを生成します。
生成したRegexPatternオブジェクトは、任意の入力文字列とのマッチを行うための正規表現エンジンであるRegexMatcherクラスのオブジェクトを生成するために使用します。

１つのRegexPatternオブジェクトからは複数のRegexMathcerオブジェクトを生成できます。それぞれのRegexMatcherオブジェクトは同じ正規表現パターンを共有します。

デフォルトプロパティとValueType

デフォルトプロパティはPatternです。ValueTypeの指定は無効です。

典型的な利用方法

1. Compileスタティックメソッドにより、正規表現をコンパイルし、RegexPatternオブジェクトを生成します。

2. 1で生成したRegexPatternオブジェクトのMatcherメソッドにより、正規表現パターンと入力文字列のマッチを行うRegexMatcherオブジェクトを生成します。

3. 2で生成したRegexMatcherオブジェクトのMatchesメソッド、Findメソッド等でマッチを行います。

/* 正規表現をコンパイルします */
var p = RegexPattern.Compile("Biz/([a-zA-Z]+)");
/*
入力文字列を設定し正規表現エンジンを生成します */
var m = p.Matcher("Biz/Browser, Biz/Designer");

/* 部分一致検索を行います */
while (m.Find()) {
/* 部分一致した部分全体を表示 */

print(m.Group());
/* 一つ目の前方参照グループを表示 */
print(" [", m.Group(1) , "]",
"\n");
}
/* 全体完全一致 */
print("Matches:", m.Matches(), "\n");

/*
先頭からのマッチ */
print("LookingAt:", m.LookingAt(), "\n");

----- 実行結果 -----

Biz/Browser [ Browser ]
Biz/Designer [ Designer ]
Matches: 0
LookingAt: 1

正規表現構文要約

正規表現クラスでは、ECMAScript syntaxを使用しています。

メタ文字
\ | 直後のメタキャラクターをクォートします。
^ | 行の先頭にマッチします。複数行モードでは行の始まり。
. | 任意のキャラクター(改行を除く)にマッチします。
$ | 行の終端にマッチします。複数行モードでは行の終わり。
| | 選択
() | グループ化
[] | 文字クラス

文字クラスで使用可能なメタ文字
\ | 直後のメタキャラクターをクォートします。
^ | 最初の文字に用いた場合のみ、クラスを否定する。
- | 文字の範囲

バイナリキャラクタ
\t | タブ
\v | 垂直タブ
\n | 改行
\r | リターン
\f | 改ページ
\cletter | 制御キャラクター
\0 | null
\int | 後方参照
\nhhhh | 4進数キャラクター
\xhh | 16進数キャラクター

一般キャラクタ
\w | "単語"キャラクター(アルファベット、数字、"_")にマッチします
\W | 単語キャラクターでないものにマッチします
\s | 空白(whitespace)キャラクターにマッチします
\S | 非空白キャラクターにマッチします
\d | 数字にマッチします
\D | 非数字にマッチします

位置指定子
\b | 単語境界にマッチします
\B | 単語境界以外にマッチします

キャラクタクラス[:class:]
alnum | 英数字
alpha | 英字
blank | 空白またはタブ
cntrl | 制御文字
digit | 10進数字
d | 10進数字
graph | 表可能文字 スペースを除く
lower | 小文字の英字
print | 表示可能文字
punct | 句読文字
space | 空白文字
upper | 大文字の英字
xdigit | 16進数字
w | "単語"キャラクター(アルファベット、数字、"_")
s | 空白(whitespace)キャラクター

量指定子
* | ゼロ回以上の繰り返しにマッチします
+ | 一回以上の繰り返しにマッチします
? | ゼロ回もしくは一回の繰り返しにマッチします
{n} | n回の繰り返しにマッチします
{n,} | 少なくともn回ある繰り返しにマッチします
{n,m} | n回からm回の間の繰り返しにマッチします


RegexPatternプロパティ

API version 6

プロパティ

iOS AndroidWindows

RegexPatternクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
6 | Flags | R | integer | コンパイル時に指定したマッチフラグ
6 | Pattern | R | String | コンパイル元の正規表現の文字列

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


RegexPattern.Flagsプロパティ

iOS AndroidWindows

コンパイル時に指定したマッチフラグです。

このプロパティは読み取り専用です。

詳細はCompileメソッドの引数 flags を参照してください。


RegexPattern.Patternプロパティ

iOS AndroidWindows

コンパイル元の正規表現の文字列です。

このプロパティは読み取り専用です。


RegexPatternメソッド

API version 6

メソッド

iOS AndroidWindows

RegexPatternクラスには以下のメソッドが定義されています。

API | 名前 | 説明
6 | GetPattern | コンパイル元の正規表現の文字列を取得します
6 | Matcher | 正規表現パターンと入力文字列をマッチするRegexMatcherオブジェクトを生成します
6 | Split | 正規表現パターンと入力文字列のマッチに基づいて分割したString配列を取得します

スタティックメソッド

API | 名前 | 説明
6 | Compile | 正規表現をコンパイルしてRegexPatternオブジェクトを生成します
6 | Matches | 指定した正規表現と文字列とマッチします

クラス概要

基本クラスのメソッド


RegexPattern.GetPatternメソッド

iOS AndroidWindows

説明

コンパイル元の正規表現の文字列を取得します。

呼出形式

var pattern = rp.GetPattern( )

戻り値

コンパイル元の正規表現の文字列

引数

なし

例外

なし

使用例

var p = RegexPattern.Compile("Biz/([a-zA-Z]+)", 0);
print(p.GetPattern(), "\n");

関連項目

Patternプロパティ

Compileメソッド


RegexPattern.Matcherメソッド

iOS AndroidWindows

説明

正規表現パターンと入力文字列をマッチするRegexMatcherオブジェクトを生成します。

呼出形式

var rm = rp.Matcher( input )

戻り値

RegexMatcherオブジェクト

引数

String input

マッチする入力文字列

例外

なし

使用例

var p = RegexPattern.Compile("Biz/([a-zA-Z]+)");
var m = p.Matcher("Biz/Browser");
if (m.Matches()) {
    print(m.Group(1), "\n");
}

関連項目

RegexMatcherクラス


RegexPattern.Splitメソッド

iOS AndroidWindows

説明

正規表現パターンと入力文字列のマッチに基づいて分割したString配列を取得します。

"a--/cde/f--"を分割した場合の例を次に示します。

正規表現 | limit | 結果
/ | 2 | "a--", "cde/f--"
/ | 10 | "a--", "cde", "f--"
/ | -1 | "a--", "cde", "f--"
- | 5 | "a", "", "/cde/f", "", ""
- | -2 | "a", "", "/cde/f", "", ""
- | 0 | "a", "", "/cde/f"

呼出形式

var arr = rp.Split( input [, limit ] )

戻り値

マッチに基づいて input を分割したStringオブジェクトの配列

配列の最後尾の要素には、最後にマッチした位置より後ろの文字列が格納されます。

引数

String input

マッチする入力文字列

integer limit

最大分割数

0より大きい場合は、返される配列の長さは limit 以下になります。

負の値の場合は、配列の長さは制限されません。

0の場合は、配列の長さは制限されませんが、後続の空文字列が破棄されます。省略した場合は0になります。

例外

なし

使用例

var p = RegexPattern.Compile("/");
var arr = p.Split("Biz/Browser");
for (var i = 0; i < arr.length; i++) {
    print(arr[i], "\n");
}

関連項目


RegexPattern.Compileメソッド

iOS AndroidWindows

説明

正規表現をコンパイルしてRegexPatternオブジェクトを生成します。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

呼出形式

var rp = RegexPattern.Compile( regex [, flags ] )

戻り値

RegexPatternオブジェクト

引数

String regex

正規表現

integer flags

マッチフラグ

以下の値の組み合わせを指定します。

定数 | 値 | 説明
RegexPattern.CASELESS RegexPattern.CASE_INSENSITIVE | 1 | 大文字と小文字を区別しないマッチングを行います

省略した場合は0（指定なし）です。

例外

Func 4

引数の値が不正です

使用例

var p = RegexPattern.Compile("Biz/([a-zA-Z]+)", RegexPattern.CASELESS);
var m = p.Matcher("Biz/Browser");
if (m.Matches()) {
    print(m.Group(1), "\n");
}

関連項目

Matchesメソッド


RegexPattern.Matchesメソッド

iOS AndroidWindows

説明

指定した正規表現と入力文字列とマッチします。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

このメソッドを使用すると、オブジェクトを生成する手順を踏まずにマッチを行うことができます。

次の二つの文は同様の結果を得ます。

RegexPattern.Matches("[0-9]+/[0-9]+/[0-9]+", "2011/11/28");
RegexPattern.Compile("[0-9]+/[0-9]+/[0-9]+").Matcher("2011/11/28").Matches();

同じ正規表現を繰り返し使用する場合は、Compileメソッドでオブジェクトを生成した方が、毎回このメソッドを呼び出すより効率的です。

呼出形式

var b = RegexPattern.Matches( regex, input [, flags ] )

戻り値

マッチした場合は$TRUE、しない場合は$FALSE

引数

String regex

正規表現

String input

マッチする入力文字列

integer flags

マッチフラグ

詳細はCompileメソッドを参照してください。

省略した場合は0（指定なし）です。

例外

Func 4

引数の値が不正です

使用例

if (RegexPattern.Matches("[0-9]+/[0-9]+/[0-9]+", "2011/11/28")) {
    //.MessageBox("マッチしました");
}

関連項目

Compile、Matcherメソッド


RegexPatternイベント

API version 6

イベント

iOS AndroidWindows

RegexPatternクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Stringクラス

Object
 | NetObject
 |  | String

文字列を保持するクラスです。格納できる文字列の長さには制限はありません。

文字コードにはUnicodeを使用しています。

Mobile互換モード
文字コードをマルチバイト文字(Shift-Jis)として扱います。
LabelクラスやTextBoxクラス等、画面に文字列を表示する場合はUnicodeに変換して画面上に表示します。

Stringクラスの別名としての"UString" *1

他のBiz/Browserとの互換のため、クラス名として"UString"を用いた場合、Stringクラスが指定されたものと見なします。

この指定はオブジェクト定義式やnew式、ValueTypeの指定、クラスのスタティックメソッドの呼び出しなど、通常のクラス名が指定可能な箇所で同様に指定可能です。

/* --- コード例 --- */
var s = new UString("abc"); /* Stringのオブジェクトを生成します。 */
print(s.ClassName); /* "String"と表示されます */

TextBox:UString textBox1 { /* ValueTypeにStringクラスを指定したものと見なされます */
    ...
}

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。

変更履歴
*1　API version 9から追加されました。


Stringプロパティ

API version 4

プロパティ

iOSAndroidWindows

Stringクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Length | R | integer | 文字列の長さ
4 | Value | CRW | String | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


String.Lengthプロパティ

格納している文字列の文字数を表します。

Mobile互換モード
文字単位ではなく、バイト単位（半角1文字、全角2文字）として計算されます。


String.Valueプロパティ

Stringオブジェクトの値です。


Stringメソッド

API version 4

メソッド

iOSAndroidWindows

Stringクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | Stringオブジェクトを初期化します
4 | CharAt | 指定した位置にある文字を返します
4 | CharCodeAt | 指定した位置にある文字の文字コードを返します
4 | Concat | 文字列を連結します
4 | EqualsIgnoreCase | 文字列を大文字小文字を区別しないで比較します
4 | IndexOf | 文字列を先頭から検索します
4 | LastIndexOf | 文字列を後方から検索します
4 | LocaleCompare | ロケールに基づき文字列を比較します
4 | Replace | 文字列を置換します
4 | Slice | 文字列の一部を切り出します
4 | Split | 文字列を分割します
4 | Substring | 文字列の一部を切り出します
4 | ToLocaleLowerCase | ロケールに基づき大文字を小文字に変換します
4 | ToLocaleUpperCase | ロケールに基づき小文字を大文字に変換します
4 | ToLowerCase | 英字の大文字を小文字に変換します
4 | ToString | Stringオブジェクトの文字列をそのまま返します
4 | ToUpperCase | 英字の小文字を大文字に変換します
4 | Trim | 文字列の余白を取り除きます
4 | ValueOf | Stringオブジェクトの値を返します

スタティックメソッド

API | 名前 | 説明
4 | FromCharCode | 文字コードから文字列を作成します

クラス概要

基本クラスのメソッド


Stringコンストラクタ

説明

Stringオブジェクトを初期化します。

呼出形式

var str = new String( [ text_1 [, text_2 [, … ] ] ] )

戻り値

Stringオブジェクト

引数

String text_n

初期化する値

複数指定した場合は、連結された文字列で初期化されます。

例外

なし

使用例

var str = new String("ABC", "DEF");
print(str, "\n");

関連項目


String.CharAtメソッド

説明

指定した位置にある文字を返します。

Mobile互換モード
文字単位ではなく、バイト単位（半角1文字、全角2文字）として計算されます。

呼出形式

var c = str.CharAt( indx )

戻り値

指定した位置の1文字をString型で返します。

引数

integer indx

取り出す文字の位置

0から始まる数値を指定します。

例外

Func-4

引数が不正です

使用例

var str = new String("ABCDEF");
print(str.CharAt(3), "\n");

関連項目

CharCodeAtメソッド


String.CharCodeAtメソッド

説明

指定した位置にある文字の文字コードを返します。

Mobile互換モード
文字単位ではなく、バイト単位（半角1文字、全角2文字）として計算されます。

呼出形式

var n = str.CharCodeAt( indx )

戻り値

Unicodeの文字コードを整数値で返します。

引数

integer indx

取り出す文字の位置

0から始まる数値を指定します。

例外

Func-4

引数が不正です

使用例

var str = new String("ABCDEF");
print(str.CharCodeAt(3), "\n");

関連項目

CharAtメソッド


String.Concatメソッド

説明

引数に指定した文字列を元の文字列に連結します。

このメソッドはStringオブジェクトの値を更新します。

呼出形式

var s = str.Concat( text_1 [, text_2 [, … ] ] )

戻り値

連結した文字列

引数

String text_n

連結する文字列

複数指定した場合は、すべてを連結します。

例外

Func-4

引数が不正です

使用例

var str = new String("ABC");
print(str.Concat("DEF", "GHI"), "\n");
print(str, "\n");

関連項目


String.EqualsIgnoreCaseメソッド

説明

文字列を大文字、小文字を区別しないで比較します。

呼出形式

var ret = str.EqualsIgnoreCase( s )

戻り値

一致した場合は$TRUE、一致しない場合は$FALSEを返します。

引数

String s

比較する文字列

例外

なし

使用例

var str = new String("ABC");
var arr = new Array("ABC", "abc", "xyz");
for (var n in arr) {
    if (str.EqualsIgnoreCase(arr[n])) {
        print(arr[n], "\n");
    }
}

関連項目

LocaleCompareメソッド


String.IndexOfメソッド

説明

指定した文字列をpos以降から検索し、最初に見つかった位置を返します。

Mobile互換モード
文字単位ではなく、バイト単位（半角1文字、全角2文字）として計算されます。

このメソッドでは対象文字列の文字種を意識せずに検索を行います。対象文字列に2バイト文字を含む検索を行う場合にはfind関数を使用してください。

呼出形式

var n = str.IndexOf( find [, pos ] )

戻り値

見つかった位置を示す0から始まる数値を返します。見つからない場合は-1を返します。

引数

String find

検索する文字列

integer pos

検索範囲の開始位置

0から始まる数値を指定します。省略すると先頭から検索します。

例外

Func-4

引数が不正です

使用例

var str1 = new String("abcdefg abcdefg");
print(str1.IndexOf("cd"), "\n");

/* 対象文字列に2バイト文字を含む場合 */
var str2 = new String("東京都千代田区千代田1番1号");
print(find(str2, "1", 0), "\n");

関連項目

LastIndexOfメソッド

find関数


String.LastIndexOfメソッド

説明

指定した文字列をposまで検索し、最後に見つかった位置を返します。

Mobile互換モード
文字単位ではなく、バイト単位（半角1文字、全角2文字）として計算されます。

呼出形式

var n = str.LastIndexOf( find [, pos ] )

戻り値

見つかった位置を示す0から始まる数値を返します。見つからない場合は-1を返します。

引数

String find

検索する文字列

integer pos

検索範囲の終端位置

0から始まる数値を指定します。省略すると最後まで検索します。

例外

Func-4

引数が不正です

使用例

var str1 = new String("abcdefg abcdefg");
print(str1.LastIndexOf("cd"), "\n");

/* 対象文字列に2バイト文字を含む場合 */
var str2 = new String("東京都千代田区千代田1番1号");
var last = -1;
while (true) {
    var idx = find(str2, "1", last + 1);
    if (idx < 0) {
        break;
    }
    last = idx;
}
print(last, "\n");

関連項目

IndexOfメソッド

find関数


String.LocaleCompareメソッド

説明

ロケールに基づき文字列を比較します。

現在の実装ではロケールによらずバイト単位での比較となります。

呼出形式

var ret = str.LocaleCompare( comp )

戻り値

compよりも大きい場合は1を返します。

compよりも小さい場合は-1を返します。

compと等しい場合は0を返します。

引数

String comp

比較対象の文字列

例外

Func-4

引数が不正です

使用例

var str = new String("abcdefg");
print(str.LocaleCompare("abcdefg"), "\n"); /* 0を返します */
print(str.LocaleCompare("ABC"), "\n");     /* 1を返します */
print(str.LocaleCompare("bcd"), "\n");     /* -1を返します */

関連項目

EqualsIgnoreCaseメソッド


String.Replaceメソッド

説明

指定した文字列を検索し、見つかったすべてを別の文字列に置換します。

このメソッドはStringオブジェクトの値を更新します。

呼出形式

var s = str.Replace( search, replace )

戻り値

置換した結果の文字列

引数

String search

検索する文字列

String replace

置換する文字列

例外

Func-4

引数が不正です

使用例

var str = new String("abcdefg");
print(str.Replace("cde", "CDE"), "\n");
print(str, "\n");

関連項目


String.Sliceメソッド

説明

文字列の一部を切り出します。

Substringメソッドとの違い

lengthを文字列の長さとしたとき、startに負の値を指定した場合はlength + startとして処理されます。endに負の値を指定した場合はlength + endとして処理されます。

Mobile互換モード
文字単位ではなく、バイト単位（半角1文字、全角2文字）として計算されます。

呼出形式

var s = str.Slice( start [, end ] )

戻り値

切り出した文字列

引数

integer start

切り出す先頭位置

0から始まる数値を指定します。

integer end

切り出す終端位置（指定位置の前の文字まで切り出します）

0から始まる数値を指定します。省略した場合は文字列の最後まで切り出します。

例外

Func-4

引数が不正です

使用例

var str1 = new String("abcdefg");
print(str1.Slice(2, 4), "\n");

/* 対象文字列に2バイト文字を含む場合 */
var str2 = new String("東京都千代田区千代田1番1号");
print(mid(str2, 3, 4), "\n");

関連項目

Substringメソッド

mid関数


String.Splitメソッド

説明

指定した文字で文字列を分割し、配列として返します。

呼出形式

var arr = str.Split( separator [, limit ] )

戻り値

分割した文字列の各要素が格納されたString配列（区切り文字は含みません）

引数

String separator

文字列を分割する区切り文字

integer limit

分割する最大の数

省略した場合は文字列の最後まで分割します。

例外

Func-4

引数が不正です

使用例

var str = new String("abc-def-ghi");
var arr = str.Split("-");
for (var n = 0; n < arr.Length; n++) {
    print(arr[n], "\n");
}

関連項目


String.Substringメソッド

説明

文字列の一部を切り出します。

Sliceメソッドとの違い

startとendのうち値の小さい方が取得する文字列の先頭位置になります。（Substring(0, 3)とSubstring(3, 0)は同じ結果になります）

引数に負の値を指定した場合は0に置き換えられます。

Mobile互換モード
文字単位ではなく、バイト単位（半角1文字、全角2文字）として計算されます。

呼出形式

var s = str.Substring( start, end )

戻り値

切り出した文字列

引数

integer start

切り出す先頭位置

0から始まる数値を指定します。

integer end

切り出す終端位置（指定位置の前の文字まで切り出します）

0から始まる数値を指定します。

例外

Func-4

引数が不正です

使用例

var str = new String("abcdefghi");
print(str.Substring(1, 2), "\n");

/* 対象文字列に2バイト文字を含む場合 */
var str2 = new String("東京都千代田区千代田1番1号");
print(mid(str2, 3, 4), "\n");

関連項目

Sliceメソッド

mid関数


String.ToLocaleLowerCaseメソッド

説明

ロケールに基づいて文字列に含まれる大文字を小文字に変換します。

現在の実装ではToLowerCaseメソッドと同義です。

このメソッドはStringオブジェクトの値を更新します。

呼出形式

var s = str.ToLocaleLowerCase( )

戻り値

変換した文字列

引数

なし

例外

なし

使用例

var str = new String("abcdEFGH");
print(str.ToLocaleLowerCase(), "\n");
print(str, "\n");

関連項目

ToLowerCaseメソッド


String.ToLocaleUpperCaseメソッド

説明

ロケールに基づいて文字列に含まれる小文字を大文字に変換します。

現在の実装ではToUpperCaseメソッドと同義です。

このメソッドはStringオブジェクトの値を更新します。

呼出形式

var s = str.ToLocaleUpperCase( )

戻り値

変換した文字列

引数

なし

例外

なし

使用例

var str = new String("abcdEFGH");
print(str.ToLocaleUpperCase(), "\n");
print(str, "\n");

関連項目

ToUpperCaseメソッド


String.ToLowerCaseメソッド

説明

文字列に含まれる英字の大文字を小文字に変換します。

このメソッドはStringオブジェクトの値を更新します。

呼出形式

var s = str.ToLowerCase( )

戻り値

変換した文字列

引数

なし

例外

なし

使用例

var str = new String("abcdEFGH");
print(str.ToLowerCase(),"\n");
print(str, "\n");

関連項目

ToUpperCaseメソッド


String.ToStringメソッド

説明

Stringオブジェクトの文字列をそのまま返します。

呼出形式

var s = str.ToString( )

戻り値

Stringオブジェクトの文字列

引数

なし

例外

なし

使用例

var str = new String("ABCDEF");
print(str.ToString(), "\n");

関連項目


String.ToUpperCaseメソッド

説明

文字列に含まれる英字の小文字を大文字に変換します。

このメソッドはStringオブジェクトの値を更新します。

呼出形式

var s = str.ToUpperCase( )

戻り値

変換した文字列

引数

なし

例外

なし

使用例

var str = new String("abcdEFGH");
print(str.ToUpperCase(), "\n");
print(str, "\n");

関連項目

ToLowerCaseメソッド


String.Trimメソッド

説明

文字列の前後から空白、タブ、改行などを取り除きます。

引数を指定して取り除く対象文字を指定できます。引数省略時はタブ、半角スペース、改行が対象になります。（全角スペースは対象になりません）

trim関数と異なり、文字列の前後以外は変更しません。

このメソッドはStringオブジェクトの値を更新します。

呼出形式

var s = str.Trim( [ chars ] )

戻り値

空白などを取り除いた文字列

引数

String chars

取り除く対象の文字

取り除きたい文字を並べた文字列を指定します。省略時はタブ、半角スペース、改行が対象になります。

例外

なし

使用例

var str = new String(" ABC\tDEF\n ");
print(str.Trim(" \t\n　"), "\n");
print(str, "\n");

関連項目

trim関数


String.ValueOfメソッド

説明

Stringオブジェクトに格納されている値を返します。

呼出形式

var s = str.ValueOf( )

戻り値

Stringオブジェクトの値

引数

なし

例外

なし

使用例

var str = new String("ABCDEF");
print(str.ValueOf(), "\n");

関連項目


String.FromCharCodeメソッド

説明

文字コードから文字列を作成します。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

Mobile互換モード
引数に指定されたコードをマルチバイト文字が指定されたものとし、バイトごとに文字を計算します。

呼出形式

var str = String.FromCharCode( code_1 [, code_2 [, … [, code_n ] ] ] )

戻り値

作成した文字列

引数

integer code_n

文字コード

Android版
UTF-32の文字コードを指定します。

例外

なし

使用例

var str = String.FromCharCode(0x41, 0x42, 0x43);
print(str, "\n");

関連項目


Stringイベント

API version 4

イベント

iOSAndroidWindows

Stringクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Standardパッケージ

標準GUIパッケージです。

クラス

API | 名前 | 説明
4 | Button | ボタンを表示します
4 | CheckBox | チェックボックスを表示します
4 | CheckItem | CheckBoxクラスの選択肢を定義します
4 | ContainerObject | コンテナ機能を持つクラスの基底クラスです
4 | Dialog | ダイアログを表示します
4 | DisplayObject | 画面表示クラスの基底クラスです
4 | EditBox | 複数行入力エディットボックスを表示します
4 | EditObject | 文字入力クラスの基底クラスです
4 | FocusObject | フォーカスを受けるクラスの基底クラスです
4 | Form | フォームを表示します
4 | Label | 文字ラベルを表示します
4 | ListBox | リストボックスを表示します
4 | ListItem | ListBoxクラスの選択肢を定義します
4 | OptionButton | オプションボタンを表示します
4 | OptionItem | OptionButtonクラスの選択肢を定義します
4 | PulldownItem | PulldownListクラスの選択肢を定義します
4 | PulldownList | プルダウンリストを表示します
4 | Root | Biz/Browser自体のウィンドウに対応したクラスです
4 | TextBox | テキストボックスを表示します


Buttonクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | Button

ボタンを表示するクラスです。表面にはTitleプロパティの値が表示されます。

表示範囲の右端までに文字が収まらないときは改行して次の行に表示されます。改行位置はワードラップが考慮され、英字で単語の切れ目が見つからない場合は改行は行われません。

画面表示例

キーボード操作

このオブジェクトはキーボード操作に対応しています。下記のキー操作を行うことができます。

キー | 説明
SPACE | ボタンを押下

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。

スケーリング時の注意点

特にありません


Buttonプロパティ

API version 4

プロパティ

iOSAndroidWindows

Buttonクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | AltKey | CR | integer | $STD | Touchイベントを発生させる代替キー
16 | CornerRadius | CRW | integer | 0 | 角丸の半径
4 | FontFace | CR | integer | $STD | フォントの装飾属性
4 | FontKind | CR | integer | $STD | フォントの種類
4 | FontSize | CR | integer | 10 | フォントサイズ
4 | HorizontalAlign | CR | integer | $STD | 水平方向の位置合わせ
HT(10) | NoPrefix | CRW | boolean | $FALSE | &を解釈しないモード
23 | TapEventMode | CRW | integer |  | タップ時に発生するイベントをどのようにイベントキューに追加するか
4 | Title | CRW | String |  | ボタンに表示する文字
4 | Value | CRW | String Number Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Button.AltKeyプロパティ

ボタンをタップせずにキーボードでTouchイベントを発生させる代替キーを指定します。

AltKeyプロパティに指定できる値は、キーの指定を参照してください。

ひとつのキー操作に複数の意味が割り当てられた場合の優先順位については、キー操作における優先順位を参照してください。


Button.CornerRadiusプロパティ

角丸の半径を指定します。

0より大きい値を指定すると、ボタンの形状が角の丸い四角形になります。プロパティの値は角丸の半径となります。

Android版
CornerRadiusプロパティの値が大きいと、Titleプロパティに指定したテキストがボタンからはみ出る場合があります。

プロパティの値がボタンの幅、高さの半分より大きい場合、短辺の半分の値に丸められます。

親のFormでHorizontalScaleプロパティやVerticalScaleプロパティが指定された場合、拡大、縮小後にプロパティの値が適用されます。

プロパティの値が0以下の場合は通常のデザインになります。


FontFaceプロパティ

フォントの装飾属性を指定します。

以下の値の組み合わせを指定します。

太字や斜体、およびその組み合わせについては端末に該当するフォントが存在する場合のみ適用されます。

Android版
・等幅（固定ピッチ）フォントを指定した場合、FontKindプロパティ値は無視されます。
・下線には対応しておりません。

定数 | 値 | 説明
$STD | 0 | 標準
$BOLD | 1 | 太字
$ITALIC | 2 | 斜体
$UNDER | 4 | 下線
$FIXED | 8 | 等幅（固定ピッチ）フォント

$BOLD+$ITALICは、太字かつ斜体で表示されます。

$FIXEDの指定が無い場合は、プロポーショナルフォントです。


FontKindプロパティ

フォントの種類を指定します。

フォントの種類は、$STD、$FONT1を指定できます。

$STDはゴシック系フォント、$FONT1は明朝系フォントです。

フォントの種類の設定は、端末に該当するフォントが存在する場合のみ適用されます。

定数 | 値 | 説明
$STD | 0 | ゴシック
$FONT1 | 1 | 明朝


FontSizeプロパティ

フォントの大きさを0から100の範囲のポイント数で指定します。0を指定すると初期値の10ポイントで表示されます。

負の値は設定できません。


Button.HorizontalAlignプロパティ

水平方向の位置合わせを行います。$STDは中央寄せになります。

定数 | 値 | 説明
$STD | 0 | $CENTERと同じ
$LEFT | 1 | 左寄せ
$CENTER | 2 | 中央寄せ
$RIGHT | 3 | 右寄せ


NoPrefixプロパティ

画面に表示する文字の"&"記号を画面上にそのまま表示するかどうかを指定します。

$TRUEを指定すると、"&"記号をそのまま表示します。

$FALSEを指定すると、"&"記号を消去します。

"&"記号の動作については表示文字列と"&"記号を参照してください。


Button.TapEventModeプロパティ

タップ時に発生するイベントをどのようにイベントキューに追加するかを指定します。

Touchイベントが該当します。

Object.PostEventメソッドで発生させたイベントには影響しません。

以下の値の組み合わせを指定します。省略した場合はObject.POST_DEFAULTとなります。

定数 | 値 | 説明
Object.POST_DEFAULT | 0 | 従来通りイベントをイベントキューの一番後ろに追加します。
Object.POST_FRONT | 1 | イベントをイベントキューの先頭に追加します。 イベントを即時に発生させたい場合に指定します。
Object.POST_UNIQUE | 2 | 発信元オブジェクトが同じで同種のイベントがイベントキューに存在する場合、イベントをキューに追加しません。


Button.Titleプロパティ

ボタンに表示する文字です。


Button.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。

ボタンに表示する文字はTitleプロパティで設定します。


Buttonメソッド

API version 4

メソッド

iOSAndroidWindows

Buttonクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


Buttonイベント

API version 4

イベント

iOSAndroidWindows

Buttonクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | RClicked | ロングタップされたときに発生します
4 | Touch | ボタンを選択したときに発生します

クラス概要

基本クラスのイベント


RClickedイベント

ロングタップ操作されたときに発生します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Number | ShiftKey | 互換性のために残されています。値は常に0です。
Number | CtrlKey | 互換性のために残されています。値は常に0です。
Number | AltKey | 互換性のために残されています。値は常に0です。
Number | xPos | マウスポインタのX座標
Number | yPos | マウスポインタのY座標

Android版
ButtonクラスのRClickedイベントオブジェクトには、xPos、yPosは含まれません。

使用例

Function OnRClicked(e) {
    MessageBox(strf("(%1,%2)でロングタップされました", e.xPos, e.yPos));
}


Button.Touchイベント

ボタンを押下したときに発生するイベントです。


CheckBoxクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | ContainerObject
 |  |  |  | CheckBox

複数の選択肢より任意の数を選択できるチェックボックスを表示するクラスです。

CheckBoxクラスはCheckItemクラスと協調して動作します。

選択肢として表示するデータを設定するには、CheckBox オブジェクトの下位に定められた構造でCheckItemクラスまたはその派生クラスのオブジェクトを配置する必要があります。

オブジェクトの構造

画面表示例

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。

スケーリング時の注意点

特にありません


CheckBoxプロパティ

API version 4

プロパティ

iOSAndroidWindows

CheckBoxクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | BgColor | CRW | integer | $STD | 背景の色
4 | Border | CR | boolean | $FALSE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | FgColor | CRW | integer | $STD | 文字の色
4 | FontFace | CR | integer | $STD | フォントの装飾属性
4 | FontKind | CR | integer | $STD | フォントの種類
4 | FontSize | CR | integer | 10 | フォントサイズ
24 | Scalable | CR | boolean | $FALSE | チェックボックスが拡大/縮小可能かどうか
4 | Scroll | CR | integer | $AUTO | スクロールバーの表示制御
4 | Value | CRW | integer |  | 選択位置

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


BgColorプロパティ

背景の色を色定数で指定します。


Borderプロパティ

$TRUEを設定するとオブジェクトの表示領域の枠を表示します。


BorderColorプロパティ

枠線の色を色定数で指定します。

$STDを指定した場合はデフォルトの色で枠線を表示します。


FgColorプロパティ

文字の色を色定数で指定します。


CheckBox.Scalableプロパティ

$TRUEの場合、チェックボックスのサイズがForm.HorizontalScaleプロパティ、Form.VerticalScaleプロパティに従って拡大、縮小されます。

$FALSEの場合は拡大、縮小されません。

デフォルトは$FALSEです。

チェックボックスは縦横比を維持したまま拡大、縮小されます。Form.HorizontalScaleプロパティ、Form.VerticalScaleプロパティの値が異なる場合、拡大率は小さい値が採用されます。


Scrollプロパティ

スクロールバーの表示およびスクロールの可否を制御します。

Android版
スクロールバーは表示されません。
このプロパティは表示範囲を超えた部分にスクロールさせることができるかどうかのみを制御することができます。

定数 | 値 | 説明
$AUTO | 0 | 自動表示 表示内容の大きさに応じて自動的にスクロールバーの表示、非表示を行う。
$NONE | 1 | なし 表示内容の大きさに関わらず、常に表示しない。 表示範囲を超えた部分の内容にスクロールさせることはできない。
$STATIC | 2 | 固定表示 表示内容の大きさに関わらず、常に表示する。


CheckBox.Valueプロパティ

最後に選択した項目の配列番号です。

-1は非選択状態を示します。

各選択肢の選択状態はCheckItem.Selectedプロパティで取得してください。


CheckBoxメソッド

API version 4

メソッド

iOSAndroidWindows

CheckBoxクラスには以下のメソッドが定義されています。

API | 名前 | 説明
24 | ResetCheckedImage | SetCheckedImageメソッドで設定した画像を破棄します。
24 | ResetUncheckedImage | SetUncheckedImageメソッドで設定した画像を破棄します。
24 | SetCheckedImage | チェック状態のチェックボックスの画像を設定します。
24 | SetUncheckedImage | 非チェック状態のチェックボックスの画像を設定します。

クラス概要

基本クラスのメソッド


CheckBox.ResetCheckedImageメソッド

説明

SetCheckedImageメソッドで設定した画像を破棄します。

呼出形式

CheckBox1.ResetCheckedImage( )

戻り値

なし

引数

なし

例外

なし

使用例

CheckBox1.ResetCheckedImage();

関連項目

SetCheckedImageメソッド


CheckBox.ResetUncheckedImageメソッド

説明

SetUncheckedImageメソッドで設定した画像を破棄します。

呼出形式

CheckBox1.ResetUncheckedImage( )

戻り値

なし

引数

なし

例外

なし

使用例

CheckBox1.ResetUncheckedImage();

関連項目

SetUncheckedImageメソッド


CheckBox.SetCheckedImageメソッド

説明

チェック状態のチェックボックスに表示する画像を設定します。

呼出形式

Checkbox1.SetCheckedImage( img )

戻り値

なし

引数

Object img

Imageオブジェクト、ImageListオブジェクト、またはURLを設定します。

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

URLで設定する場合、画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

Checkbox1.SetCheckedImage(ImageList1.GetImage(0));
Checkbox2.SetCheckedImage("img/sample.png");

関連項目

ResetCheckedImageメソッド

Image、ImageListクラス


CheckBox.SetUncheckedImageメソッド

説明

非チェック状態のチェックボックスに表示する画像を設定します。

呼出形式

Checkbox1.SetUncheckedImage( img )

戻り値

なし

引数

Object img

Imageオブジェクト、ImageListオブジェクト、またはURLを設定します。

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

URLで設定する場合、画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

Checkbox1.SetUncheckedImage(ImageList1.GetImage(0));
Checkbox2.SetUncheckedImage("img/sample.png");

関連項目

ResetUncheckedImageメソッド

Image、ImageListクラス


CheckBoxイベント

API version 4

イベント

iOSAndroidWindows

CheckBoxクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


CheckItemクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | CheckItem

CheckBoxクラスの選択肢を定義するクラスです。必ずCheckBoxクラスの子オブジェクトとして配列化して利用します。

画面表示例

キーボード操作

このオブジェクトはキーボード操作に対応しています。下記のキー操作を行うことができます。

キー | 説明
SPACE | 選択状態を反転

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。

スケーリング時の注意点

◆ 選択ボタンをスケーリングしたいときは、CheckBox.Scalableプロパティを$TRUEを設定してください。


CheckItemプロパティ

API version 4

プロパティ

iOSAndroidWindows

CheckItemクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Selected | CRW | boolean | $FALSE | 項目の選択状態
4 | Title | CRW | String |  | 選択肢に表示される文字列
4 | Value | CRW | String Number Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


CheckItem.Selectedプロパティ

項目の選択状態です。

チェックされている状態では$TRUE、チェックされていない状態では$FALSEになります。


CheckItem.Titleプロパティ

選択肢として表示する文字です。


CheckItem.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。

選択肢の選択状態はSelectedプロパティ、選択肢として表示する文字はTitleプロパティで指定できます。


CheckItemメソッド

API version 4

メソッド

iOSAndroidWindows

CheckItemクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


CheckItemイベント

API version 4

イベント

iOSAndroidWindows

CheckItemクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Touch | チェックボックスの選択状態を変更したときに発生します

クラス概要

基本クラスのイベント


CheckItem.Touchイベント

チェックボックスの選択状態を変更したときに発生するイベントです。

画面からの操作およびスクリプトからの操作に関わらず発生します。

注意

CheckItemクラスで発生したイベントのハンドラ内では、選択された項目番号の参照に親オブジェクトであるCheckBoxクラスのValueプロパティを利用しないでください。（選択された項目番号が反映されていない場合があります。）

選択された項目番号は、イベントハンドラの引数として渡されるEventオブジェクトのFromプロパティ（CheckItemオブジェクト）のIndexプロパティ（配列の添え字）を参照してください。項目の選択状態は、FromプロパティからSelectedプロパティを参照してください。


ContainerObjectクラス

Object
 | NetObject
 |  | DisplayObject
 |  |  | ContainerObject

ボタンやテキストボックスなどのオブジェクトを配置するためのコンテナ機能を持つクラスの基底クラスです。

ContainerObjectクラスは仮想クラスで、それ自体をインスタンス化することはできません。


ContainerObjectプロパティ

API version 4

プロパティ

iOSAndroidWindows

ContainerObjectクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
HT(10) | NextTabKey | CRW | integer | $STD | 次のオブジェクトへキーボードフォーカスを移動するキー
HT(10) | PrevTabKey | CRW | integer | $STD | 前のオブジェクトへキーボードフォーカスを移動するキー

クラス概要

基本クラスのプロパティ


ContainerObject.NextTabKeyプロパティ

子として管理しているオブジェクトにキーボードフォーカスがある場合、NextTabKeyプロパティに指定されているキーの押下で次のオブジェクトにキーボードフォーカスを移動します。

子オブジェクトに独自のフォーカス移動キーが割り当てられている場合、子オブジェクトの指定が優先します。

また、子オブジェクトの独自機能としてNextTabKeyプロパティに指定しているキーが利用されている場合、子オブジェクトの処理が優先されフォーカス移動は行われません。

NextTabKeyプロパティに指定できる値は、キーの指定を参照してください。

ひとつのキー操作に複数の意味が割り当てられた場合の優先順位については、キー操作における優先順位を参照してください。


ContainerObject.PrevTabKeyプロパティ

子として管理しているオブジェクトにキーボードフォーカスがある場合、PrevTabKeyプロパティに指定されているキーの押下で前のオブジェクトにキーボードフォーカスを移動します。

子オブジェクトに独自のフォーカス移動キーが割り当てられている場合、子オブジェクトの指定が優先します。

また、子オブジェクトの独自機能としてPrevTabKeyプロパティに指定しているキーが利用されている場合、子オブジェクトの処理が優先されフォーカス移動は行われません。

PrevTabKeyプロパティに指定できる値は、キーの指定を参照してください。

ひとつのキー操作に複数の意味が割り当てられた場合の優先順位については、キー操作における優先順位を参照してください。


ContainerObjectメソッド

API version 4

メソッド

iOSAndroidWindows

ContainerObjectクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


ContainerObjectイベント

API version 4

イベント

iOSAndroidWindows

ContainerObjectクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Dialogクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | ContainerObject
 |  |  |  | Dialog

ダイアログを表示するクラスです。

ダイアログはアプリケーションモーダルで動作し、閉じるまでの間は他のウィンドウを操作することはできません。

DialogオブジェクトにはFormオブジェクトを1つだけ子オブジェクトとして作成できます。その他のディスプレイオブジェクトは、Dialogオブジェクトの直下ではなくFormオブジェクトの子オブジェクトとして作成します。

Dialogオブジェクトは他のディスプレイオブジェクトの子オブジェクトとして階層構造に属しますが、視覚的には独立したウィンドウとして表示されます。

X, Yプロパティの指定はサポートされていません。ダイアログは常に画面の中央に表示されます。

ダイアログ外の領域をタップした場合は、ダイアログが閉じられます。閉じる動作の制御を行いたい場合は、Closeイベント内で制御を行うようにしてください。

画面表示例

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。

スケーリング時の注意点

特にありません


Dialogプロパティ

API version 4

プロパティ

iOSAndroidWindows

Dialogクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | BgColor | CRW | integer | $STD | 背景の色
4 | Border | CR | boolean | $FALSE | 枠の表示
8 | Opacity | CRW | Number | 1.0 | ダイアログの透過率
4 | Title | CRW | String |  | タイトルバーに表示する文字
6 | TitleBar | CR | boolean | $TRUE | タイトルバーの表示、非表示
4 | Value | CRW | String Number Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Dialog.Opacityプロパティ

ダイアログの透過率を指定します。
0.0(透明)～1.0(不透明)の範囲で指定します。

初期値は1.0(不透明)です。

Android版
1.0未満の値が指定されている場合、ダイアログの後ろ側のグレーアウト部分が無効になります。
また、グレーアウト部分は最も手前に表示されているダイアログのみに反映されます。


Dialog.Titleプロパティ

ダイアログのタイトルバーに表示する文字です。


Dialog.TitleBarプロパティ

ダイアログのタイトルバーの表示、非表示を指定します。

初期値は$TRUEです。


Dialog.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


Dialogメソッド

API version 4

メソッド

iOSAndroidWindows

Dialogクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


Dialogイベント

API version 4

イベント

iOSAndroidWindows

Dialogクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Close | ダイアログを閉じるときに発生します

クラス概要

基本クラスのイベント


Dialog.Closeイベント

ダイアログの右上のクローズボタンを押したときに発生します。

このイベントをイベントハンドラで捕らえるとダイアログを閉じる動作はキャンセルされます。ダイアログを閉じる場合は、イベントハンドラ内でDialogオブジェクトを削除してください。

例

Function OnClose(e) {
    if (...) {
        Dialog1.Delete();
    }
}

Eventオブジェクトの子オブジェクトとして以下のオブジェクトが付加されます。

型 | 名前 | 説明
Number | CauseClose | Dialogがどのようにして閉じられようとしているかを表す値です。

CauseCloseにはどのように閉じられようとしているかを示す定数値が格納されています。

Android版
以下の定数値が格納されています。

定数名 | 値 | 意味
Dialog.CLOSE_ON_BACK_KEY | 1 | AndroidのBackキーを押下して閉じようとした場合
Dialog.CLOSE_ON_TOUCH_OUTSIDE | 2 | ダイアログ外をタップして閉じようとした場合 (Android 3.x以降でのみ発生します)

例

Function OnClose(e) {
    if (e.CauseClose == Dialog.CLOSE_ON_BACK_KEY) {
        /* 端末の「戻る」ボタンを押下した場合のみダイアログを閉じます */
        Dialog1.Delete();
    }
}


DisplayObjectクラス

Object
 | NetObject
 |  | DisplayObject

画面表示クラスの基底クラスです。画面表示の基本機能があり、画面表示系のクラスはすべてDisplayObjectクラスから派生しています。

DisplayObject派生クラスは、"//"（Rootオブジェクト）から始まるオブジェクトツリーの一部としてオブジェクトを配置する必要があります。

new演算子によりオブジェクトツリーに接続されない状態でインスタンスを生成したり、importによりグローバル名前空間に配置することはできません。

また、オブジェクトツリーで親となるオブジェクトは、ContainerObjectクラスから派生したオブジェクトだけが許可されています。StringやDateなどContainerObjectクラスから派生していないオブジェクトを親としてオブジェクトを生成することはできません。

DisplayObjectクラスは仮想クラスで、それ自体をインスタンス化することはできません。


DisplayObjectプロパティ

API version 4

プロパティ

iOSAndroidWindows

DisplayObjectクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Active | CRW | boolean | $TRUE | 活性の制御
4 | Height | CRW | integer | 100 | 垂直方向の表示サイズ
4 | TabIndex | CR | integer | 32767 | 表示と入力の優先順位
4 | Visible | CRW | boolean | $TRUE | 表示の制御
4 | Width | CRW | integer | 100 | 水平方向の表示サイズ
4 | X | CRW | integer | 0 | 水平方向の表示位置
4 | Y | CRW | integer | 0 | 垂直方向の表示位置

配列オブジェクトのみ追加されるプロパティ

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Layout | CR | integer | $VERTICAL | 配列化した際のレイアウト
4 | LayoutMargin | CR | integer | 0 | 配列化した際の間隔
4 | LayoutSpacing | CR | integer | 0 | 配列化した際の余白

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


DisplayObject.Activeプロパティ

$TRUEを設定するとオブジェクトは活性化し、ユーザの操作に対して反応します。

$FALSEを設定するとオブジェクトは非活性化し、ユーザの操作を受け付けなくなります。

$FALSEを設定したオブジェクトの下位に位置するオブジェクトも同時に操作を受け付けなくなりますが、表示状態は変化しません。

フォーカスを受けた状態で$FALSEに変更すると、フォーカスはそのウィンドウの最初のフォーカスを受けることが可能なオブジェクトに移動します。


DisplayObject.Heightプロパティ

垂直方向の表示サイズを示します。0から32767の範囲の値を指定できます。

一部のクラスでは、表示サイズを自動制御しており初期化や更新ができないこともあります。


DisplayObject.TabIndexプロパティ

オブジェクトの表示および入力の優先順位を示します。

値が小さいほど先にキーボードフォーカスを受け取ります。また、値が小さいほど手前に表示、つまり奥行き方向で前面に配置されます。

TabIndexプロパティによるキーボードフォーカスの移動順序は、同一の階層位置に並ぶオブジェクト間に対してのみ機能します。異なる階層のオブジェクト間において、キーボードフォーカスの順序を指定することはできません。

配列化したオブジェクトの場合、配列要素となる個々のオブジェクトに対してTabIndexプロパティを指定することはできません。配列内のフォーカス移動は常に配列要素の前方から後方になります。

注意

Form初期化時以外で動的に生成(Getメソッド、Appendメソッドなど)されたDisplayObjectにはTabIndexの指定は無効となり、タブによる移動順序は同階層のDisplayObjectの中で最下位に設定されます。


DisplayObject.Visibleプロパティ

$TRUEを設定するとオブジェクトが表示されます。

$FALSEを設定するとオブジェクトは表示されません。

$FALSEを設定したオブジェクトの下位に位置するオブジェクトも同時に非表示となります。

フォーカスを受けた状態で$FALSEに変更すると、フォーカスはそのウィンドウの最初のフォーカスを受けることが可能なオブジェクトに移動します。


DisplayObject.Widthプロパティ

水平方向の表示サイズを示します。0から32767の範囲の値を指定できます。

一部のクラスでは、表示サイズを自動制御しており初期化や更新ができないこともあります。


DisplayObject.Xプロパティ

水平方向の表示位置を示します。-32768から32767の範囲の値を指定できます。

一部のクラスでは、表示位置を自動制御しており初期化や更新ができないこともあります。


DisplayObject.Yプロパティ

垂直方向の表示位置を示します。-32768から32767の範囲の値を指定できます。

一部のクラスでは、表示位置を自動制御しており初期化や更新ができないこともあります。


DisplayObject.Layoutプロパティ

オブジェクトを配列として生成した場合の各要素の配置方法を指定します。

定数 | 値 | 説明
$VERTICAL | 0 | オブジェクトを垂直方向に並べます。 配列の個々の要素のYプロパティは無効になります。
$HORIZONTAL | 1 | オブジェクトを水平方向に並べます。 配列の個々の要素のXプロパティは無効になります。
$BLANK | 3 | 並べません。配列の個々の要素はスクリプトにより明示的に座標を指定する必要があります。
$OPTIMAL | 4 | $HORIZONTALかつラベルの文字列長に応じて位置を調整し最適な配置になるようにします。 CheckItemクラス、OptionItemクラスのみ使用可能です。

一部のクラスでは表示位置を自動制御しており、Layoutプロパティの設定が無効となることがあります。


DisplayObject.LayoutMarginプロパティ

オブジェクトを配列として生成した場合の各要素の配置間隔を指定します。

一部のクラスでは表示位置を自動制御しており、LayoutMarginプロパティの設定が無効となることがあります。


DisplayObject.LayoutSpacingプロパティ

オブジェクトを配列として生成した場合の先頭要素の余白を指定します。

一部のクラスでは表示位置を自動制御しており、LayoutSpasingプロパティの設定が無効となることがあります。


DisplayObjectメソッド

API version 4

メソッド

iOSAndroidWindows

DisplayObjectクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | MessageBox | メッセージボックスを表示します
4 | PopupMenu | ポップアップメニューを表示します
4 | RemoveTime | タイマーを解除します
4 | ResetCursor | マウスカーソルを標準に戻します
4 | SetCursor | マウスカーソルを設定します
4 | SetTimer | タイマーを設定します

クラス概要

基本クラスのメソッド


DisplayObject.MessageBoxメソッド

説明

メッセージボックスを表示します。

メッセージボックスに表示されるボタンの押下に応じたイベントが発生し、イベントと同じ値が返ります。

呼出形式

obj.MessageBox( message [, title [, flag ] ] )

戻り値

[OK]ボタンを選択した場合、OkSelectedが返ります。

[キャンセル]ボタンを選択した場合、CancelSelectedが返ります。

[はい]ボタンを選択した場合、YesSelectedが返ります。

[いいえ]ボタンを選択した場合、NoSelectedが返ります。

[再試行]ボタンを選択した場合、RetrySelectedが返ります。

引数

String message

メッセージボックスに表示する文字列

String title

メッセージボックスのタイトル

integer flag

メッセージボックスに表示するボタンとアイコンの種類を以下から選択し、加算して指定します。

例えば、OKボタンとキャンセルボタンを表示して、？アイコンを表示する場合、以下のように指定します。

$OKCANCEL + $ICONQUESTION

ボタンの指定を省略した場合、$OKと同じになります。アイコンの指定を省略した場合、$ICONINFOMATIONと同じになります。

ボタンの種類を以下から1個選択します。

定数 | 表示されるボタン | 発生するイベント
$OK | OK | OkSelected
$OKCANCEL | OK、キャンセル | OkSelected, CancelSelected
$YESNO | はい、いいえ | YesSelected, NoSelected
$RETRYCANCEL | 再試行、キャンセル | RetrySelected, CancelSelected
$YESNOCANCEL | はい、いいえ、キャンセル | YesSelected, NoSelected, CancelSelected

表示されるアイコンを以下から1個選択します。

定数 | 表示されるアイコン
$IconInformation |
$IconQuestion |
$IconExclamation |
$IconStop |

デフォルトボタンを以下から１個選択します

定数 | 説明
$DefButton1 | 左から1番目をデフォルトボタンとします
$DefButton2 | 左から2番目をデフォルトボタンとします
$DefButton3 | 左から3番目をデフォルトボタンとします

例外

なし

使用例

if (MessageBox("確認してください", "確認", $OKCANCEL) == OkSelected) {
    :
}

関連項目

OkSelected、CancelSelected、YesSelected、NoSelected、RetrySelectedイベント


DisplayObject.PopupMenuメソッド

説明

ポップアップメニューを表示します。

呼出形式

var id = obj.PopupMenu( menu1 [, menu2 [, menu3 … ] ] )

戻り値

メニューの選択肢に自動的に割り当てられたID番号が返ります。

IDは、メニューの先頭要素が1となります。階層化されたメニューは、「上位の要素の値*100+n」がサブメニューのID番号となります。

メニューが選択されなかった場合は、0が返ります。

引数

String menu

メニューの選択肢を文字列で指定します。

"-"を指定すると、セパレータが表示されます。

先頭の1文字に"*"を付加するとチェックマークが表示されます。

先頭の1文字に"~"を付加すると無効表示となり、選択できなくなります。

下位に子オブジェクトを持つオブジェクトを指定すると、階層化されたサブメニューが表示されます。サブメニューは最大4階層まで指定できます。

配列を指定すると、配列要素がメニュー項目として展開されます。

例外

なし

使用例

例1）文字列での指定

var m1 = new String("menu1");  /* id=1 */
var m2 = new String("menu2");  /* id=2 */
var m3 = new String("-");
var m4 = new String("menu3");  /* id=4 */

var s1 = new String("*sub-menu1");  /* id=201 */
var s2 = new String("sub-menu2");   /* id=202 */
var s3 = new String("~sub-menu3");  /* id=203 */
m2.Append(s1);
m2.Append(s2);
m2.Append(s3);

var id = PopupMenu(m1, m2, m3, m4);

関連項目

Appendメソッド

XmlDocumentクラス


DisplayObject.RemoveTimerメソッド

説明

SetTimerメソッドで設定したタイマーを解除します。

呼出形式

obj.RemoveTimer( )

戻り値

なし

引数

なし

例外

なし

使用例

SetTimer(2.5);
var count = 0;
Function OnTimer(e) {
    count++;
    if (count >= 5) {
        RemoveTimer();
    }
    print(sysdate(), "\n");
}

関連項目

SetTimerメソッド

Timerイベント


DisplayObject.ResetCursorメソッド

説明

SetCursorメソッドによるウェイトカーソル表示を中止します。

PC版と異なりオブジェクト毎の区別は行いません

呼出形式

obj.ResetCursor( )

戻り値

なし

引数

なし

例外

PKG-57

配列定義に対してSetCursorまたはResetCursorを行うことはできません

使用例

function OnTouch(e) {
    //.SetCursor("wait.cur");
    :
    //.ResetCursor();
}

関連項目

SetCursorメソッド


DisplayObject.SetCursorメソッド

説明

ウェイトダイアログを表示します。
ウェイトダイアログは常に画面中央に表示され、表示中は他の操作を行うことはできません。

また、各オブジェクト毎の区別も行いません。どのオブジェクトからこのメソッドを呼び出しても同様の結果となります。

ウェイトダイアログ表示を中止する場合はResetCursorメソッドを呼び出します。

呼出形式

obj.SetCursor( [ message [, title ]] )

戻り値

なし

引数

String message

ウェイトダイアログのメッセージ部分の文字列を指定します。

省略した場合、「しばらくお待ちください」と表示します。

空文字列を指定した場合、メッセージは表示されません。

String title

ウェイトダイアログのタイトル部分の文字列です。

省略した場合、「処理中です」と表示します。

空文字列を指定した場合、タイトルは表示されません。

例外

PKG-57

配列定義に対してSetCursorまたはResetCursorを行うことはできません

使用例

Function OnTouch(e) {
    //.SetCursor("wait.cur");
    :
    //.ResetCursor();
}

関連項目

ResetCursorメソッド


DisplayObject.SetTimerメソッド

説明

sec間隔でTimerイベントを発生させます。1つのオブジェクトに対して1個のタイマー設定が可能です。タイマーの分解能は0.01秒です。

タイマーを設定すると、指定間隔で繰り返しイベントが発生します。設定したタイマーを解除するためにはRemoveTimerメソッドを呼び出します。

secの間隔がOnTimerイベントハンドラの処理に要する時間よりも短い場合、Timerイベントがイベントキューに蓄積して動作不能になる場合があります。secの指定間隔には十分注意してください。

また、１回のみの実行を期待してTimerイベントにRemoveTimerメソッドを記述すると、非常に短いsecの間隔を指定した場合、Timerイベント内のRemoveTimerメソッドが実行される前に、次のTimerイベントが発生してしまう場合がありますので、1回のみの実行には必ずoneshotを$TRUEに指定するようにしてください。

呼出形式

obj.SetTimer( sec [, oneshot ] )

戻り値

なし

引数

Number sec

Timerイベントの発行間隔を秒単位で指定します。

boolean oneshot

$TRUEを指定するとTimerイベントが一度だけ発生します。この場合はRemoveTimerメソッドを呼び出す必要はありません。

省略時は$FALSEです。

例外

なし

使用例

SetTimer(2.5);
var count = 0;
Function OnTimer(e) {
    count++;
    if (count >= 5) {
        RemoveTimer();
    }
    print(sysdate(), "\n");
}

関連項目

RemoveTimerメソッド

Timerイベント


DisplayObjectイベント

API version 4

イベント

iOSAndroidWindows

DisplayObjectクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | OkSelected | メッセージボックスの[OK]ボタンの選択で発生します
4 | CancelSelected | メッセージボックスの[キャンセル]ボタンの選択で発生します
4 | YesSelected | メッセージボックスの[はい]ボタンの選択で発生します
4 | NoSelected | メッセージボックスの[いいえ]ボタンの選択で発生します
4 | RetrySelected | メッセージボックスの[再試行]ボタンの選択で発生します
4 | Timer | タイマー時間の経過で発生します

クラス概要

基本クラスのイベント


DisplayObject.OkSelectedイベント

メッセージボックスで[OK]ボタンを選択した場合に発生します。

MessageBoxメソッドは発生するイベントと同じ値の戻り値を返します。メッセージボックスの選択状態は、戻り値とイベントハンドラのどちらでも取得することができます。


DisplayObject.CancelSelectedイベント

メッセージボックスで[キャンセル]ボタンを選択した場合に発生します。

MessageBoxメソッドは発生するイベントと同じ値の戻り値を返します。メッセージボックスの選択状態は、戻り値とイベントハンドラのどちらでも取得することができます。


DisplayObject.YesSelectedイベント

メッセージボックスで[はい]ボタンを選択した場合に発生します。

MessageBoxメソッドは発生するイベントと同じ値の戻り値を返します。メッセージボックスの選択状態は、戻り値とイベントハンドラのどちらでも取得することができます。


DisplayObject.NoSelectedイベント

メッセージボックスで[いいえ]ボタンを選択した場合に発生します。

MessageBoxメソッドは発生するイベントと同じ値の戻り値を返します。メッセージボックスの選択状態は、戻り値とイベントハンドラのどちらでも取得することができます。


DisplayObject.RetrySelectedイベント

メッセージボックスで[再試行]ボタンを選択した場合に発生します。

MessageBoxメソッドは発生するイベントと同じ値の戻り値を返します。メッセージボックスの選択状態は、戻り値とイベントハンドラのどちらでも取得することができます。


DisplayObject.Timerイベント

SetTimerメソッドにより設定した時間が経過した場合に発生します。

Timerイベントのイベントハンドラで時間を要する処理を行う場合は注意が必要です。Timerイベントは指定した間隔で繰り返し発生するため、Timerイベントの発生間隔よりも長い時間を要する処理を行うと、Timerイベントがイベントキューに蓄積して動作不能になる場合があります。

Timerイベントを停止するには、RemoveTimerメソッドを呼び出します。


EditBoxクラス

Object |  |  |  |  |
 | NetObject |  |  |  |
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | EditObject
 |  |  |  |  | EditBox

複数行入力エディットボックスを表示するクラスです。

表示する文字はValueプロパティの値となります。ValueTypeにはString、Number、Dateを指定することができますが、エディットボックスの利用目的からString型が有用です。

String型の指定では、内部文字コードはプラットホームに依存したマルチバイト文字コード（日本語環境ではShift-JIS）となります。

画面表示例

改行コード

OSによって、改行コードで実際に改行されるかどうかが異なります。
OS | \r (¥r) | \n (¥n) | \r\n (¥r¥n)
Android版 | 改行しない | 改行する | 改行する

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。

スケーリング時の注意点

特にありません


EditBoxプロパティ

API version 4

プロパティ

iOSAndroidWindows

EditBoxクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Border | CR | boolean | $TRUE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | HorizontalAlign | CR | integer | $STD | 水平方向の位置合わせ
4 | InputMode | CR | integer |  | 入力可能な文字種の指定
4 | MaxLength | CR | integer |  | 入力可能な文字文字数
4 | ScrollBarPosition | CR | integer | $STD | スクロールバーの表示位置
4 | Value | CRW | String Number Date |  | 表示する値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


EditBox.HorizontalAlignプロパティ

水平方向の位置合わせを行います。$STDはデータ型がNumber型の場合は右寄せ、それ以外の場合は左寄せになります。

定数 | 値 | 説明
$STD | 0 | データ型により決定します
$LEFT | 1 | 左寄せ
$CENTER | 2 | 中央寄せ
$RIGHT | 3 | 右寄せ

$CENTERまたは$RIGHTを指定した場合は、ScrollBarPositionプロパティの指定にかかわらず横スクロールバーは表示されません。


InputModeプロパティ

入力可能な文字種を指定します。

定数

値

説明

Unicodeにおける文字コード

$STD

0

全文字種

‐

$NUMERIC

1

半角数字、半角スペース

0〜9

U+0030〜U+0039

$ALPHA

2

半角英字、半角スペース

a〜z、A〜Z

U+0041〜U+005A、U+0061〜U+007A

$SYMBOL

4

半角記号（半角数字、半角英字以外の半角）、半角スペース

!"#$%&'()=~|\^-@[]:;,./\_?><+*{}`

U+0021〜U+002F、U+003A〜U+0040、

U+005B〜U+0060、U+007B〜U+00FE、

U+F8F0、U+FF61〜U+FF65

$KANA

8

半角カタカナ、半角スペース

ｱ〜ﾝ

U+FF66〜U+FF9F

$DNUMERIC

16

全角数字、全・半角スペース

０〜９

U+FF10〜U+FF19

$DALPHA

32

全角英字、全・半角スペース

ａ〜ｚ、Ａ〜Ｚ

U+FF21〜U+FF3A、U+FF41〜U+FF5A

$DSYMBOL

64

全角記号（全角カタカナ、全角ひらがな、全角漢字、全角数字、全角英字以外の全角）、全・半角スペース

！“＃＄％＆‘（）＝〜｜｀｛｝
＊＋＜＞？＿\・。、「」：；＠

他に該当しないもの

$DKANA

128

全角カタカナ、全・半角スペース

U+30A1〜U+30FA、U+30FC〜U+30FF、

U+31F0〜U+31FF

$DHIRA

256

全角ひらがな、全・半角スペース

U+3041〜U+3096、U+3099〜U+309F

$DKANJI

512

全角漢字、全・半角スペース

U+4E00〜U+ABFF、U+F900〜U+FAFF

$HANKAKU

15

半角

$NUMERIC、$ALPHA、$SYMBOL、$KANA

に該当するもの

$ZENKAKU

1008

全角、全・半角スペース

$DNUMERIC、$DALPHA、$DSYMBOL、$DKANA、

$DHIRA、$DKANJIに該当するもの

$KANJI

944

全角記号以外の全角文字、全・半角スペース

$DNUMERIC、$ DALPHA、$DKANA、$DHIRA、

$DKANJIに該当するもの

$EXSPACE

0x40000000

上記指定に追加するオプションです。半角スペース除外を指定します。

$STDとの組み合わせや単独で指定しても効果がありません。

例)$DKANA+$EXSPACE

全角カタカナ、全角スペースの入力のみを許可

文字種の判断は、OSの機能を利用しています。

OSにより異なる判断が行われる場合があります。

「々」の文字は、OSにより記号と判断される場合と、漢字と判断される場合がありますので、実際に利用するOSにより、正しく判断されることを必ず確認してください。


EditBox.MaxLengthプロパティ

最大入力文字数を設定します。

最大値は3000です。


EditBox.ScrollBarPositionプロパティ

スクロールバーの表示位置およびスクロールの可否を制御します。

Android版
スクロールバーは表示されません。
このプロパティは表示範囲を超えた部分にスクロールさせることができるかどうかのみを制御することができます。
また、横スクロールはできません。

定数 | 値 | 説明
$STD | 0 | 縦横スクロールバーを表示する
$VSCROLL | 2 | 縦スクロールバーを表示する
$HSCROLL | 3 | 横スクロールバーを表示する
$NONE | 1 | スクロールバーを表示しない

$NONEを指定した場合、画面からの入力は表示される文字数までとなります。

HorizontalAlignプロパティが$CENTERまたは$RIGHTの場合、本プロパティの指定にかかわらず横スクロールバーは表示されません。


EditBox.Valueプロパティ

表示する値です。ValueTypeに指定したデータ型の値を保持します。

スクリプトによる値の設定ではInputModeプロパティの影響は受けません。

画面上の入力値は即座には反映されません。詳細はValueプロパティが更新されるタイミングを参照してください。


EditBoxメソッド

API version 4

メソッド

iOSAndroidWindows

EditBoxクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | AppendCR | 改行コードの変換を行います
HT(12) | GetSelection | カーソル位置、選択位置を取得します
HT(12) | SetSelection | カーソル位置、選択位置を設定します
4 | SetMargins | 左右マージンを設定します。

クラス概要

基本クラスのメソッド


EditBox.AppendCRメソッド

説明

改行コードの整形を行い、CR+LFに統一します。

呼出形式

var s = EditBox1.AppendCR( )

戻り値

改行コードが整形された文字列

引数

なし

例外

なし

使用例

EditBox1.Value = data;
EditBox1.AppendCR();

関連項目


EditBox.GetSelectionメソッド

説明

現在のカーソルの位置、選択範囲を取得します。

呼出形式

var n = EditBox1.GetSelection( [ lengthMode ] )

戻り値

カーソル位置または選択バイト数

引数

boolean lengthMode

&取得する値

$FALSE：カーソル位置を取得します

$TRUE：選択されているバイト数（UString時またはMobile互換モードがOFFの時は文字数）を取得します

省略時は$FALSEです。

例外

なし

使用例

var pos = EditBox1.GetSelection();

関連項目

SetSelectionメソッド


EditBox.SetSelectionメソッド

説明

現在のカーソルの位置、選択範囲を設定します。

呼出形式

EditBox1.SetSelection( pos [, length ] )

戻り値

なし

引数

integer pos

0を先頭とするカーソル位置を指定します。

範囲外を指定した場合、範囲内に補正されます。

integer length

選択文字長を指定します。省略時は0（無選択）となります。

特殊な指定

SetSelection(0, -1) 全選択

SetSelection(-1) 選択解除

例外

なし

使用例

EditBox1.SetSelection(1, 4);

関連項目

GetSelectionメソッド


EditBox.SetMarginsメソッド

説明

左右マージンを設定します。

初期状態では左右マージンはOS標準の位置となります。

マージンを設定する場合、左右マージンの合計値がEditBoxの文字表示域に収まるように指定してください。

呼出形式

EditBox1.SetMargins( leftMargin, rightMargin )

戻り値

なし

引数

integer leftMargin

左マージンを0〜32767の間で指定します。

integer rightMargin

右マージンを0〜32767の間で指定します。

例外

FUNC-4

引数が不正です

使用例

EditBox1.SetMargins(2, 2);

関連項目


EditBoxイベント

API version 4

イベント

iOSAndroidWindows

EditBoxクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Touch | エディットボックスに入力した値が確定したとき発生します

クラス概要

基本クラスのイベント


EditBox.Touchイベント

画面からの入力操作によりエディットボックスの値が確定したときに発生するイベントです。

Touchイベントは、値の変更がEnterキーやファンクションキーの押下により確定したとき、またはフォーカスを失って確定したときに発生します。キー入力1文字単位では発生しません。


EditObjectクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | EditObject

文字入力クラスの基底クラスです。キーボードによる文字編集処理の基本機能があります。

EditObjectクラスは仮想クラスで、それ自体をインスタンス化することはできません。

EditObjectの派生クラスに文字列と見なされないバイナリデータを代入した場合は、表示が不定となります。

Valueプロパティが更新されるタイミング

EditObjectの派生クラスでは、画面上の入力値はValueプロパティに格納されますが、実際にValueプロパティが変化するのは以下の契機になります。

1. オブジェクトがキーボードフォーカスを失ったとき

2. Enterキーを押したとき

従って、TimerイベントやLabelクラスのClickedイベントなど、フォーカス移動を伴わないイベントハンドラでオブジェクトのValueプロパティを参照しても入力途中のデータを取得できないことに注意してください。このような場面で入力中のデータを取得する必要がある場合は、Valueプロパティを参照する前にRootクラスのDecideValueメソッドを呼び出して、画面上の値をValueプロパティに反映させてください。


EditObjectプロパティ

API version 4

プロパティ

iOSAndroidWindows

EditObjectクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | BgColor | CRW | integer | $STD | 背景の色
4 | Editable | CRW | boolean | $TRUE | 編集の可否
4 | FgColor | CRW | integer | $STD | 文字の色
4 | FontFace | CR | integer | $STD | フォントの装飾属性
4 | FontKind | CR | integer | $STD | フォントの種類
4 | FontSize | CR | integer | 10 | フォントサイズ
4 | IMEMode | CR | integer | $STD | IMEモードの指定
5 | SIPMode | CR | String API version 5以前 integer | API version 5以前 $STD | SIP(Software Input Panel)の外観や動作の指定
6 | Title | CRW | String |  | プレースホルダー表示文字列の指定
HT(10) | UseTapAndHold | CRW | boolean | $FALSE | タップ＆ホールド操作を使用するか

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


EditObject.Editableプロパティ

編集の許可と禁止を指定します。

$TRUEを指定すると編集を許可します。

$FALSEを指定すると編集を禁止します。


EditObject.IMEModeプロパティ

指定を行うとキーボードフォーカスを受けたときに指定したモードに切り替わります。また、キーボードフォーカスを失ったときに以前の状態に復帰します。

Biz/Browser HTでの制限

Biz/Browser HTではOSの制約によりIMEの変換モード(半角カナ入力や無変換入力等)を制御することはできません。

IMEModeプロパティではSIP(Software Input Panel)の表示/非表示のみ制御できます。

ただし、AndroidではIMEによってはSIP(Software Input Panel)の表示/非表示が正しく行われない場合があります。

Biz/Browser HTにおいてSIP(Software Input Panel)の入力モードを制御するにはSIPModeプロパティが使用できます。

IMEModeプロパティに値が設定された時のSIP(Software Input Panel)の表示/非表示制御は下記のとおりです。

なお、SIPを表示する値と表示しない値を同時に指定した場合、SIPは表示されません。

定数 | 値 | 動作
$STD | 0 | デフォルトの動作(SIPの表示)を行います。 API verion 5以前 SIPの表示状態はフォーカスの移動元、自身の型や直前の状態によって 下記のように制御されます。 ・自身がNumberEdit, DateEditの場合 → SIPを表示する ・移動元が非DisplayObjectの場合 → SIPを表示する ・それ以外場合 → 直前の表示状態に従う
$CLOSE | 4096 | 初回フォーカス移動時にSIPを表示しない
$OPEN | 8192 | 初回フォーカス移動時にSIPを表示する

なお、他のBiz/Browser製品との互換性のため、下記の定数も指定可能です。

定数 | 値 | 動作
$SIP_CLOSE | 0x10000000 | 初回フォーカス移動時にSIPを表示しない
$ALPHA | 2 | 初回フォーカス移動時にSIPを表示する
$KANA | 8
$DALPHA | 32
$DKANA | 128
$DHIRA | 256
$SIP_OPEN | 0x20000000


EditObject.SIPModeプロパティ

表示されるSIP(Software Input Panel)の外観や動作を指定します。

オブジェクトがキーボードフォーカスを受けた際のSIP(Software Input Panel)の表示制御については、IMEModeプロパティを使用して下さい。

Android版

以下の定数を組み合わせて使用します

キーボード種別

0～1個指定できます。

定数 | 値 | 説明
(指定なし) |  | デフォルトモード
$SIP_TYPE_DATETIME | [TYPE_DATETIME] | 日付/時刻入力モード ※1
$SIP_TYPE_DATE | [TYPE_DATE] | 日付入力モード ※1
$SIP_TYPE_TIME | [TYPE_TIME] | 時刻入力モード ※1
$SIP_TYPE_NUMBER | [TYPE_NUMBER] | 数値入力モード ※1
$SIP_TYPE_PHONE | [TYPE_PHONE] | 電話番号入力モード ※1
$SIP_TYPE_NAME | [TYPE_NAME] | 名前(人名)入力モード
$SIP_TYPE_EMAIL | [TYPE_EMAIL] | メールアドレス入力モード
$SIP_TYPE_URL | [TYPE_URL] | URL入力モード

※1 : このキーボードタイプを指定した場合、EditBoxでは複数行入力は行えません(OS, SIPの制約のため)。

TextBox.Passwordプロパティが$TRUEの場合、SIPModeプロパティによるキーボード種別の指定は無視されます(OS, SIPの制約のため)。

リターンキー種別

0～1個指定できます。 ※2

定数 | 値 | 説明
(指定なし)EditBox |  | "改行"ボタン
(指定なし)TextBoxの時 |  | "完了"ボタン
$SIP_RETURNKEY_DONE | [RETURNKEY_DONE] | "完了"ボタン
$SIP_RETURNKEY_GO | [RETURNKEY_GO] | "開く"ボタン
$SIP_RETURNKEY_NONE | [RETURNKEY_NONE] | "改行"ボタン
$SIP_RETURNKEY_PREVIOUS | [RETURNKEY_PREVIOUS] | "戻る"ボタン
$SIP_RETURNKEY_SEARCH | [RETURNKEY_SEARCH] | "検索"ボタン
$SIP_RETURNKEY_SEND | [RETURNKEY_SEND] | "送信"ボタン

※2 : EditBoxかつ、※1に該当する場合はリターンキータイプは無視されます(OS, SIPの制約のため)。

変更履歴
*1　API version 9から追加されました。


EditObject.Titleプロパティ

表示文字列が空の場合、プレースホルダー(入力に関するヒント文字列)を表示します。

プレースホルダーの文字色はFgColorプロパティによらず、グレーで表示されます。


UseTapAndHoldプロパティ

$TRUEを設定するとタップ＆ホールド操作を可能にします。

ただし、Mobile互換モード時のみ設定値が有効となります。
そうでない場合は設定値に関わらず、画面上のオブジェクトをタップしてそのまま維持すると、RClickedイベントが発生します。

Mobile互換モード
画面上のオブジェクトをタップしてそのまま維持すると、RClickedイベントが発生します。


EditObjectメソッド

API version 4

メソッド

iOSAndroidWindows

EditObjectクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


EditObjectイベント

API version 4

イベント

iOSAndroidWindows

EditObjectクラスには以下のイベントが定義されています。

API | 名前 | 説明
HT(10) | RClicked | ロングタップで発生します

クラス概要

基本クラスのイベント


EditObject.RClickedイベント

ロングタップ操作されたときに発生します。

Mobile互換モード
UseTapAndHoldプロパティが$TRUEに設定されているときだけ発生します。そうでないときは発生しません。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Number | ShiftKey | 互換性のために残されています。値は常に0です。
Number | CtrlKey | 互換性のために残されています。値は常に0です。
Number | AltKey | 互換性のために残されています。値は常に0です。
Number | xPos | マウスポインタのX座標
Number | yPos | マウスポインタのY座標


FocusObjectクラス

Object
 | NetObject
 |  | DisplayObject
 |  |  | FocusObject

フォーカスを受けるクラスの基底クラスです。フォーカスに関する基本機能があり、フォーカスを受ける画面表示クラスはすべてFocusObjectクラスから派生しています。

FocusObjectクラスは仮想クラスで、それ自体をインスタンス化することはできません。


FocusObjectプロパティ

API version 4

プロパティ

iOSAndroidWindows

FocusObjectクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
HT(10) | AutoTabFocus | CRW | boolean | $TRUE | キー操作によるフォーカス移動の制御
HT(10) | NextTabKey | CRW | integer | $STD | 次のオブジェクトへキーボードフォーカスを移動するキー
HT(10) | PrevTabKey | CRW | integer | $STD | 前のオブジェクトへキーボードフォーカスを移動するキー
4 | SkipTabFocus | CRW | boolean | $FALSE | キー操作によるフォーカス受入れの抑止

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


FocusObject.AutoTabFocusプロパティ

$TRUEを設定すると、以下の操作時に次のタブ順のオブジェクトにフォーカスを移動します。

・TabキーまたはNextTabKey、PrevTabKeyプロパティに設定したキーの押下

・AutoTabプロパティがあるクラスについてはAutoTabプロパティによる動作が実行される操作

$FALSEを設定すると、フォーカスを自動的に移動することはなくなり、ユーザのマウスオペレーションまたはスクリプトからのSetFocusメソッド、MoveFocusメソッドでのみフォーカスが移動します。

ただし、ウィンドウの切り替え（ダイアログやメッセージボックスなど、Biz/Browser自身からのポップアップ表示を含みます）によるLostFocusイベントは発生します。また、フォーカスを受けているオブジェクトを削除するなど、フォーカスを維持できない状態になった場合はフォーカスは別のオブジェクトに移動します。

$FALSEに設定した状態でTabキーまたはNextTabKey、PrevTabKeyプロパティに設定したキーの押下、AutoTabプロパティの操作を行うと、FocusOperationイベントが発生します。

初期値は$TRUEです。


FocusObject.NextTabKeyプロパティ

キーボードフォーカスを受けている場合は、NextTabKeyプロパティに指定されているキーの押下で次のオブジェクトにキーボードフォーカスを移動します。

FocusObjectから派生する各クラスに独自に処理するキーが定義されている場合は、そのキーと重複した指定を行ってもキーボードフォーカス移動は行われません。

NextTabKeyプロパティに指定できる値は、キーの指定を参照してください。

ひとつのキー操作に複数の意味が割り当てられた場合の優先順位については、キー操作における優先順位を参照してください。


FocusObject.PrevTabKeyプロパティ

キーボードフォーカスを受けている場合は、PrevTabKeyプロパティに指定されているキーの押下で前のオブジェクトにキーボードフォーカスを移動します。

FocusObjectから派生する各クラスに独自に処理するキーが定義されている場合は、そのキーと重複した指定を行ってもキーボードフォーカス移動は行われません。

PrevTabKeyプロパティに指定できる値は、キーの指定を参照してください。

ひとつのキー操作に複数の意味が割り当てられた場合の優先順位については、キー操作における優先順位を参照してください。


FocusObject.SkipTabFocusプロパティ

$TRUEを設定すると、キーボードによるフォーカス移動の対象外となります。

$FALSEを設定すると、キーボードによるフォーカス移動の対象となります。

補助的な機能を持つボタンなどでSkipTabFocusプロパティに$TRUEを設定することにより、入力の中心となるオブジェクトだけにキーボードによるフォーカス移動を制限することができ、入力操作の効率を向上させることができます。


FocusObjectメソッド

API version 4

メソッド

iOSAndroidWindows

FocusObjectクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | MoveFocus | フォーカス移動順序に従ってフォーカスを移動します
4 | SetFocus | オブジェクトにフォーカスを設定します

クラス概要

基本クラスのメソッド


FocusObject.MoveFocusメソッド

説明

フォーカス移動順序に従ってフォーカスを移動します。

以下の場合は正しくフォーカスが移動しない場合があります。

・MoveFocusメソッドを呼び出したオブジェクト以外にキーボードフォーカスが設定されている場合

・選択されていないオプションボタンなど本来フォーカスを受け取らない状態にあるオブジェクトの場合

・ダイアログに隠れている非活性のウィンドウ内のオブジェクトの場合

呼出形式

obj.MoveFocus( [ direction ] )

戻り値

なし

引数

integer direction

移動する方向

以下の値を指定します。省略すると$NEXTFOCUSになります。

定数 | 値 | 説明
$NEXTFOCUS | 1 | 次のオブジェクト Tabキーと同じ順序でフォーカスが移動します。
$PREVFOCUS | 2 | 前のオブジェクト Shift+Tabキーと同じ順序でフォーカスが移動します。

例外

なし

使用例

if (MessageBox("確認してください", "確認", $OkCancel) == OkSelected) {
    TextBox1.MoveFocus($PREVFOCUS);
}

関連項目


FocusObject.SetFocusメソッド

説明

オブジェクトにキーボードフォーカスを設定します。

SetFocusメソッドを実行しても即座にフォーカスが移動しません。

オブジェクトは優先的にフォーカスを受ける状態に変更され、実行中の処理の完了後にフォーカスが設定されます。

同一の画面内で一度に複数のオブジェクトでSetFocusメソッドを実行した場合は、最後に実行したSetFocusメソッドが有効となります。

オブジェクトがフォーカスを受け取れない状態にある場合は無効です。

呼出形式

obj.SetFocus( )

戻り値

なし

引数

なし

例外

なし

使用例

if (MessageBox("確認してください", "確認", $OkCancel) == OkSelected) {
    TextBox1.SetFocus();
}

関連項目


FocusObjectイベント

API version 4

イベント

iOSAndroidWindows

FocusObjectクラスには以下のイベントが定義されています。

API | 名前 | 説明
HT(10) | FocusOperation | フォーカス移動を起こす操作によって発生します
4 | GetFocus | キーボードフォーカスを受けたときに発生します
4 | LostFocus | キーボードフォーカスを失ったときに発生します

クラス概要

基本クラスのイベント


FocusObject.FocusOperationイベント

オブジェクトがキーボードフォーカスを受けている際に、フォーカスの移動を起こすキー入力操作を行ったときに発生するイベントです。

Eventオブジェクトには下記の変数が付加されています。

名前

型

説明

Direction

integer

フォーカスをどの方向に移動する操作を行ったかを示す以下の値が格納されます
Directionプロパティの値は、FocusObjectクラスのMoveFocusメソッドに渡すことで、本来のフォーカス移動と同じようにフォーカスを移す事ができます。

定数 | 値 | 説明
$NEXTFOCUS | 1 | 次のオブジェクト
$PREVFOCUS | 2 | 前のオブジェクト

Key

String

FocusOperationイベントの発生要因となったキーを示す文字列が設定されます。
設定される文字列は、KeyDownイベントでKeyに設定される文字列と同じです。

フォーカスの移動を起こす操作とは、TabキーまたはNextTabKey、PrevTabKeyプロパティに設定したキーの押下、AutoTabプロパティがあるクラスについてはAutoTabプロパティによるフォーカス移動が実行される操作を指します。

これら以外の操作ではFocusOperationイベントは発生しません。

FocusOperationイベントは、自動的なフォーカス移動を指示するAutoTabFocusプロパティの指定に従い、フォーカス移動とは排他的に発生します。

AutoTabFocusプロパティが$TRUEの場合には、フォーカス移動を起こす操作でフォーカスが移動し、FocusOperationイベントは発生しません。

AutoTabFocusプロパティが$FALSEの場合、フォーカスは移動せずにFocusOperationイベントが発生します。


FocusObject.GetFocusイベント

キーボードフォーカスを受け取ったときに発生します。


FocusObject.LostFocusイベント

キーボードフォーカスを失ったときに発生します。


Formクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | ContainerObject
 |  |  |  | Form

フォームを表示するクラスです。

フォームの下位には別のオブジェクトを配置して管理します。下位のオブジェクトは自分が所属する親Formオブジェクトの領域を超えて表示されることはなく、親Formオブジェクトの大きさでクリッピングされます。

画面表示例

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。

スケーリング時の注意点

◆ 自身は上位のFormオブジェクトのスケーリング値によりスケーリングされます

◆ 下位のオブジェクトは上位のFormオブジェクトのスケーリング値に自身のスケーリング値を乗じた値でスケーリングされます

ジェスチャ操作の注意点

UseGestureプロパティ、Gestureイベントを利用して、タッチ操作によるジェスチャをイベントとして取得できます。

詳しくはジェスチャ操作についてをご参照下さい。


Formプロパティ

API version 4

プロパティ

iOSAndroidWindows

Formクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | BgColor | CRW | integer | $STD | 背景の色
4 | Border | CR | boolean | $FALSE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | FontScale | CRW | Number | 1.0 | フォント拡大縮小率
4 | HorizontalScale | CRW | Number | 1.0 | 横方向拡大縮小率
4 | Scroll | CR | integer | $AUTO | スクロールバーの表示制御
4 | UseGesture | CRW | integer | $STD | 捕捉するジェスチャイベントの指定
HT(10) | UseMouseMove | CRW | integer | $STD | MouseMoveイベントの発生条件
HT(10) | UseTapAndHold | CRW | boolean | $FALSE | タップ＆ホールド操作を使用するか
4 | Value | CRW | String Number Date |  | オブジェクトの値
4 | VerticalScale | CRW | Number | 1.0 | 縦方向拡大縮小率

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Form.FontScaleプロパティ

フォーム上に所属するオブジェクトのフォントの拡大縮小倍率を指定します。

範囲は0.1〜1(等倍)〜10までです。

各オブジェクトのFontSizeプロパティに指定の倍率を掛けた表示となります。

この指定によりフォーム上のオブジェクトのプロパティが変更されることはありません。


Form.HorizontalScaleプロパティ

フォーム上に所属するオブジェクトの横方向の拡大縮小倍率を指定します。

範囲は0.1〜1(等倍)〜10までです。

この指定によりフォーム上のオブジェクトのプロパティが変更されることはありません。

拡大縮小されるオブジェクトは単純に表示が拡大縮小される訳ではなく、各クラス独自の表示が行われます。


Form.UseGestureプロパティ

Gestureイベントで捕捉するジェスチャの種類を指定します。

以下の値を組み合わせて発生条件を指定します。

定数 | 値 | 説明
$STD | 0 | Gestureイベントは発生しません。
$FLICK | 1 | フリック操作を捕捉し、Gestureイベントを発生させます。
$SWIPE | 2 | スワイプ操作を捕捉し、Gestureイベントを発生させます。
$PINCH | 4 | ピンチ操作を捕捉し、Gestureイベントを発生させます。

$FLICK, $SWIPEのどちらかを指定を指定した場合、自身の領域に対するパンの操作(スクロール,フリック,スワイプ等の操作)を捕捉します。
指定しない場合、フリック,スワイプ操作は親フォーム転送されます。
また、スクロール操作については自身がスクロールする場合は自身が捕捉し、そうでなければ親フォームに転送されます。

フリック操作とスワイプ操作を捕捉するには

UseGesture = $FLICK + $SWIPE;

と指定します。

ピンチ操作を捕捉するには

UseGesture = $PINCH;

と指定します。

スワイプ操作,ピンチ操作によるジェスチャイベントは、操作に連動して大量のイベントが発生します。イベントハンドラの処理に時間がかかる場合は端末の応答性が大きく低下することがありますので、必要なときに必要な条件で最小限のイベント発生に抑えるように配慮してください。


Form.UseMouseMoveプロパティ

このプロパティは互換性のために残されています。操作しても何も起きません。


Form.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


Form.VerticalScaleプロパティ

フォーム上に所属するオブジェクトの縦方向の拡大縮小倍率を指定します。

範囲は0.1〜1(等倍)〜10までです。

この指定によりフォーム上のオブジェクトのプロパティが変更されることはありません。

拡大縮小されるオブジェクトは単純に表示が拡大縮小される訳ではなく、各クラス独自の表示が行われます。


Formメソッド

API version 4

メソッド

iOSAndroidWindows

Formクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


Formイベント

API version 4

イベント

iOSAndroidWindows

Formクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Clicked | タップされたときに発生します
4 | DoubleClicked | ダブルタップされたときに発生します
4 | Gesture | ジェスチャ操作時に発生します
HT(10) | KeyDown | キーが押されたときに発生します
HT(15) | KeyUp | キーが離されたときに発生します
4 | LButtonUp | タップ時に指が離されたときに発生します
HT(10) | MouseMove | 互換性のために残されています。発生しません。
4 | RButtonUp | ロングタップ時に指が離されたときに発生します
4 | RClicked | ロングタップされたときに発生します

クラス概要

基本クラスのイベント


Clickedイベント

タップ操作されたときに発生します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Number | ShiftKey | 互換性のために残されています。値は常に0です。
Number | CtrlKey | 互換性のために残されています。値は常に0です。
Number | AltKey | 互換性のために残されています。値は常に0です。
Number | xPos | マウスポインタのX座標
Number | yPos | マウスポインタのY座標

使用例

Function OnClicked(e) {
    MessageBox(strf("(%1,%2)でタップされました", e.xPos, e.yPos));
}


DoubleClickedイベント

ダブルタップ操作されたときに発生します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Number | ShiftKey | 互換性のために残されています。値は常に0です。
Number | CtrlKey | 互換性のために残されています。値は常に0です。
Number | AltKey | 互換性のために残されています。値は常に0です。
Number | xPos | マウスポインタのX座標
Number | yPos | マウスポインタのY座標

使用例

Function OnDoubleClicked(e) {
    MessageBox(strf("(%1,%2)でダブルタップされました", e.xPos, e.yPos));
}


Form.Gestureイベント

UseGestureプロパティに指定された条件に合致するジェスチャ操作で発生します。OnGestureイベントハンドラで処理することにより、ジェスチャ操作を検知することができます。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型

名前

説明

Number

action

発生したイベントの種類を示します。

値は下記の定数のいずれかがセットされます。

定数 | 値 | 説明
$FLICK | 1 | フリック操作によるイベント発生を示します。
$SWIPE | 2 | スワイプ操作によるイベント発生を示します。
$PINCH | 4 | ピンチ操作によるイベント発生を示します。

Number

xPos

イベントが発生したX座標

Number

yPos

イベントが発生したY座標

Number

direction

※Action=$FLICK時のみ付加

フリック方向を表します。

値は下記のいずれかがセットされます。

値 | 説明
0 | 上方向へのフリック操作を示します。
1 | 下方向へのフリック操作を示します。
2 | 左方向へのフリック操作を示します。
3 | 右方向へのフリック操作を示します。

Number

xDelta

※Action=$FLICK時のみ付加

横方向のフリック速度を表します。

値の単位はプラットフォームごとに異なります。

Number

yDelta

※Action=$FLICK時のみ付加

縦方向のフリック速度を表します。

値の単位はプラットフォームごとに異なります。

Number

delta

※Action=$PINCH時のみ付加

ピンチの移動量を表します。

ピンチアウト(拡大)操作時はプラス値、ピンチイン(縮小)操作時はマイナス値で示されます。

値の単位はプラットフォームごとに異なります。

Number

scaleDelta

※Action=$PINCH時のみ付加

スケール(現在の指の幅/ピンチ操作開始時の指の幅)の変化量を表します。

以前のスケール値と、現在のスケール値の比が格納されます。

ピンチアウト(拡大)操作時は1.0より大きい値、ピンチイン(縮小)操作時は1.0より小さい値で示されます。


Form.KeyDownイベント

KeyDownイベントは、キーボードの押下で発生します。KeyDownイベントをOnKeyDownイベントハンドラで処理することにより、ショートカットキーのような表現をすることができます。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Number | ShiftKey | Shiftキーが押されている場合は1、それ以外は0
Number | CtrlKey | Ctrlキーが押されている場合は1、それ以外は0
Number | AltKey | Altキーが押されている場合は1、それ以外は0
String | Key | 押されたキー

特殊キーに関しては後述の表を参照してください。

使用例

Function OnKeyDown(e) {
    if (e.Key == "G") {
        /* Gを押したときForm2に画面を切り替えます */
        //.Form1.Delete();
        //.Get("Form2.crs");
    }
}

Keyオブジェクトに格納される値（特殊キー）

キーの種類 | 格納される値
Esc | "ESCAPE"
BackSpace | "BACK"
ENTER | "RETURN"
Space | "SPACE"
Insert | "INSERT"
Home | "HOME"
PageUp | "PRIOR"
Delete | "DELETE"
End | "END"
PageDown | "NEXT"
方向キー左 | "LEFT"
方向キー上 | "UP"
方向キー右 | "RIGHT"
方向キー下 | "DOWN"
テンキー 0～9 | "NUMPAD0"～"NUMPAD9"
テンキー ． | "DECIMAL"
テンキー * | "MULTIPLY"
テンキー + | "ADD"
テンキー / | "DIVIDE"
テンキー - | "SUBTRACT"
NumLock | "NUMLOCK"
F1～F12 | "F1"～"F12"
ScrollLock | "SCROLL"

KeyDownイベントは、Biz/Browserの画面内でキーボードフォーカスがどのオブジェクトにあたっているかで、発生するキー操作の種類や、イベントの送信元となるオブジェクトが決まります。

KeyDownイベントの発生元オブジェクトは、オブジェクトにキーボードフォーカスがあたっている場合、そのオブジェクトが置かれているFormオブジェクトから発生します。キーボードフォーカスがどのオブジェクトにもあたっていない場合、最も上位のFormオブジェクトから発生します。

キー操作における優先順序

ひとつのキー操作に対して複数の意味が割り当てられている状態で、実際にそのキー操作を行った場合、実行の優先順序は以下のようになっています。

1. Tabキー、Shift+Tabキー、またはNextTabKeyプロパティ、PrevTabKeyプロパティに設定されているキー操作は、優先的にフォーカス移動が実行されます。

2. オブジェクト固有のキー操作が実行されます。

3. Button系オブジェクトのAltKeyプロパティに割り当てられているキー操作が実行されます。

4. KeyDownイベントが発生します。

※ 1回のキー操作で起こる動作は、フォーカス移動、オブジェクト固有操作、AltKeyプロパティの動作、KeyDownイベント発行のいずれか1つです。

KeyDownイベント利用時の注意点

・文字入力で使用される特殊キー（BackSpaceなど）はIMEの種類やオブジェクトの状態の影響を強く受けるため、KeyDownイベントでは使用しないことを推奨します。

・OSによってシステムキーやショートカットキーとして割り当てられているキーを使用すると操作性の混乱を招きますので使用しないことを推奨します。

・システムキーやショートカットキーとして割り当てられている場合（あるいは将来のために予約されている場合）、KeyDownイベントが発生しない場合があります。

・CapsLockやNumLockなど、キーに固有の意味のあるキーは、操作に混乱を招きますので使用しないことを推奨します。

・KeyDownイベントは、端末やOSが認識したキー操作に対して発生します。これらはキーボードのハードウェアの影響を受けます。ハードウェアによっては、キーの組み合わせによってBiz/BrowserでKeyDownイベントが発生しないことがあります。

・キーによっては、機種によってCtrl、Shift、Altキーと同時に押下したとき、別のキーとして認識されることがあります。これらの特殊なキーを利用する場合、実際に使用するキーボードで、KeyDownイベントが正しく発生することを必ず確認してください。

・ハードウェアとキーの組み合わせによっては、Ctrl、Shift、Altキーと同時に押下したにも関わらず、CtrlKey、ShiftKey、AltKeyが1($TRUE)とならないことがあります。

・キー押下にフォーカスのあたっているオブジェクトの種類により、KeyDownイベントが発生しないことがあります。

・Bluetoothキーボード等の外付けHID機器を使用した場合、OSの設定に寄らず英語配列のキーボードとして認識される場合があります。


Form.KeyUpイベント

KeyUpイベントは、キーボードを離した時に発生します。KeyDownイベントを処理開始の契機、KeyUpイベントを処理終了の契機とすることで、ハードウェアによるトリガー操作のような表現をすることができます。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Number | ShiftKey | Shiftキーが押されている場合は1、それ以外は0
Number | CtrlKey | Ctrlキーが押されている場合は1、それ以外は0
Number | AltKey | Altキーが押されている場合は1、それ以外は0
String | Key | 押されたキー

特殊キーに関しては後述の表を参照してください。

使用例

Function OnKeyDown(e) {
    if (e.Key == "G") {
        /* Gを押している間、カウントアップを行います */
        count = 0;
        SetTimer(1.0);
    }
}
Function OnKeyUp(e) {
    if (e.Key == "G") {
        RemoveTimer();
    }
}
Function OnTimer(e) {
    count++;
    print(count);
}

Keyオブジェクトに格納される値（特殊キー）

キーの種類 | 格納される値
Esc | "ESCAPE"
BackSpace | "BACK"
ENTER | "RETURN"
Space | "SPACE"
Insert | "INSERT"
Home | "HOME"
PageUp | "PRIOR"
Delete | "DELETE"
End | "END"
PageDown | "NEXT"
方向キー左 | "LEFT"
方向キー上 | "UP"
方向キー右 | "RIGHT"
方向キー下 | "DOWN"
テンキー 0～9 | "NUMPAD0"～"NUMPAD9"
テンキー ． | "DECIMAL"
テンキー * | "MULTIPLY"
テンキー + | "ADD"
テンキー / | "DIVIDE"
テンキー - | "SUBTRACT"
NumLock | "NUMLOCK"
F1～F12 | "F1"～"F12"
ScrollLock | "SCROLL"

KeyUpイベントは、Biz/Browserの画面内でキーボードフォーカスがどのオブジェクトにあたっているかで、発生するキー操作の種類や、イベントの送信元となるオブジェクトが決まります。

KeyUpイベントの発生元オブジェクトは、オブジェクトにキーボードフォーカスがあたっている場合、そのオブジェクトが置かれているFormオブジェクトから発生します。キーボードフォーカスがどのオブジェクトにもあたっていない場合、最も上位のFormオブジェクトから発生します。

KeyUpイベント利用時の注意点

・文字入力で使用される特殊キー（BackSpaceなど）はIMEの種類やオブジェクトの状態の影響を強く受けるため、KeyUpイベントでは使用しないことを推奨します。

・OSによってシステムキーやショートカットキーとして割り当てられているキーを使用すると操作性の混乱を招きますので使用しないことを推奨します。

・システムキーやショートカットキーとして割り当てられている場合（あるいは将来のために予約されている場合）、KeyUpイベントが発生しない場合があります。

・CapsLockやNumLockなど、キーに固有の意味のあるキーは、操作に混乱を招きますので使用しないことを推奨します。

・KeyUpイベントは、端末やOSが認識したキー操作に対して発生します。これらはキーボードのハードウェアの影響を受けます。ハードウェアによっては、キーの組み合わせによってBiz/BrowserでKeyUpイベントが発生しないことがあります。

・キーによっては、機種によってCtrl、Shift、Altキーと同時に押下したとき、別のキーとして認識されることがあります。これらの特殊なキーを利用する場合、実際に使用するキーボードで、KeyUpイベントが正しく発生することを必ず確認してください。

・ハードウェアとキーの組み合わせによっては、Ctrl、Shift、Altキーと同時に押下したにも関わらず、CtrlKey、ShiftKey、AltKeyが1($TRUE)とならないことがあります。

・キー押下にフォーカスのあたっているオブジェクトの種類により、KeyUpイベントが発生しないことがあります。

・Bluetoothキーボード等の外付けHID機器を使用した場合、OSの設定に寄らず英語配列のキーボードとして認識される場合があります。


LButtonUpイベント

タップ時に指が離されたときに発生します。

互換性のために残されているイベントで、実際にはClickedイベントと同時に発生します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Number | xPos | タップした場所のX座標
Number | yPos | タップした場所のY座標

使用例

Function OnLButtonUp(e) {
    MessageBox(strf("(%1,%2)でLButtonUpが発生しました。", e.xPos, e.yPos));
}


Form.MouseMoveイベント

このイベントは互換性のために残されています。操作しても何も起きません。


RButtonUpイベント

ロングタップ時に指が離されたときに発生します。

互換性のために残されているイベントで、実際にはRClickedイベントと同時に発生します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Number | xPos | ロングタップした場所のX座標
Number | yPos | ロングタップした場所のY座標

使用例

Function OnRButtonUp(e) {
    MessageBox(strf("(%1,%2)でRButtonUpが発生しました。", e.xPos, e.yPos));
}


Labelクラス

Object
 | NetObject
 |  | DisplayObject
 |  |  | Label

文字ラベルを表示するクラスです。

Valueプロパティの値をFormatプロパティの指定に従ってフォーマットして画面に表示します。

表示範囲の右端までに文字が収まらないときは改行して次の行に表示されます。改行位置はワードラップが考慮され、英字で単語の切れ目が見つからない場合は改行は行われません。

表示範囲の下端までに行が収まらない場合はクリッピングされ後続の行は表示されません。

画面表示例

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。

スケーリング時の注意点

特にありません


Labelプロパティ

API version 4

プロパティ

iOSAndroidWindows

Labelクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | BgColor | CRW | integer | $STD | 背景の色
4 | Border | CRW | boolean | $FALSE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | BorderStyle | CRW | integer | $SUNKEN | 枠線の種類
28 | BorderWidth | CRW | Number | 0 | 枠の太さ
16 | CornerRadius | CRW | integer | 0 | 角丸の半径
4 | FgColor | CRW | integer | $STD | 文字の色
4 | FontFace | CR | integer | $STD | フォントの装飾属性
4 | FontKind | CR | integer | $STD | フォントの種類
4 | FontSize | CR | integer | 10 | フォントサイズ
4 | Format | CR | String |  | 書式指定文字列
4 | HorizontalAlign | CR | integer | $STD | 水平方向の位置合わせ
HT(10) | NoPrefix | CRW | boolean | $FALSE | &を解釈しないモード
23 | TapEventMode | CRW | integer |  | タップ時に発生するイベントをどのようにイベントキューに追加するか
4 | Transparent | CRW | boolean | $FALSE | 背景の透過
HT(10) | UseTapAndHold | CRW | boolean | $FALSE | タップ＆ホールド操作を使用するか
4 | Value | CRW | String Number Date |  | ラベルに表示する値
4 | VerticalAlign | CR | integer | $STD | 垂直方向の位置合わせ

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Label.Borderプロパティ

$TRUEを指定するとBorderStyleプロパティで指定された種類の枠を表示します。$FALSEの場合は枠は表示されません。


Label.BorderStyleプロパティ

枠線の種類を指定します。Borderプロパティが$TRUEの場合のみ有効です。

定数 | 値 | 説明
$SUNKEN | 0 | 全体を凹形状で表示します
$RISED | 1 | 全体を凸形状で表示します
$ETCHED | 2 | 枠の線を凹形状で表示します
$BUMP | 3 | 枠の線を凸形状で表示します
$GRAYFRAME | 4 | 2色の灰色で枠線を表示します
$SOFT | 5 | 白と黒で枠を表示します
$SOFTETCHED | 6 | 枠線をやわらかい凹形状で表示します
$SOFTBUMP | 7 | 枠線をやわらかい凸形状で表示します
$PLANE | 8 | 黒い一本線で表示します
$DASH | 9 | 長めの点線で表示します
$DOT | 10 | 細かい点線で表示します
$FLATSUNKEN | 11 | 全体を低い凹形状で表示します
$FLATRISED | 12 | 全体を低い凸形状で表示します

表示例


BorderWidthプロパティ

枠線の幅を指定します。

0.0-5.0の範囲で指定します。0を指定した場合はデフォルトの幅で枠線を表示します。

デフォルト値は0です。


Label.CornerRadiusプロパティ

角丸の半径を指定します。

0より大きい値を指定すると、ラベルの形状が角の丸い四角形になります。プロパティの値は角丸の半径となります。

プロパティの値がボタンの幅、高さの半分より大きい場合、短辺の半分の値に丸められます。

親のFormでHorizontalScaleプロパティやVerticalScaleプロパティが指定された場合、拡大、縮小後にプロパティの値が適用されます。

プロパティの値が0以下の場合は通常のデザインになります。


Formatプロパティ

データ型ごとに編集文字列のフォーマットを指定します。

すべての形式で共通して使用できる指定文字
指定文字 | 例 | 説明
@ | "\"最大\"@" | デフォルトの書式で指定位置に表示します。データ型がDateの場合には、@dで日付のみ、@tで日付と秒なしの時刻、@sで日付と秒付の時刻を表示します。
"TEXT" | "9990\"円\"" | ""で括った文字を指定位置に表示します。Number型のデータに指定した場合、数字の並びを区切る位置には指定できません。

データ型がStringの場合
指定文字 | 例 | 説明
Sn.m | "S2.3" | 文字列の左端を0として数え、n文字目からm文字を表示します。

データ型がNumberの場合
指定文字 | 例 | 説明
9 | "999" | 9を記述した数は桁数を示し、先行0は削除されます。小数点以下に指定した場合桁数だけを意味し、ゼロサプレスは行われません。
0 | "0999" "9990" | 先行0は0となります。
$ | "$9990" | 先頭に$マークを付加します。
MI | "999MI" "MI999" | 負数の場合に、指定位置（右か左）にマイナス記号（-）を表示します。
S | "S9990" "9990S" | 指定位置（右か左）に符号を表示します。
D または .（ピリオド） | "99D99" "99.99" | 指定の位置に小数点を表示します。小数点以下の桁数を指定しない場合は有効精度の範囲内で最後の数字までを表示します。
L | "L9990" "9990L" | 指定位置（右か左）にローカル通貨記号を表示します。
,（カンマ） | "999,990" | 3桁ごとにカンマを表示します。
" "(スペース) | " 99" | スペースを記述した数は桁数を示し、先行0は空白文字（スペース）に置き換えられます。小数点以下に指定した場合は無効で意味を持ちません。
! | "999!" | 指定桁数の範囲で桁あふれが発生した場合に書式化した結果に!が付与されて表示されますが、!を指定すると桁あふれした場合でも!の表示が抑止されます。

データ型がDateの場合
指定文字 | 例 | 説明
Y | "YYYY,MM,DD" | 西暦の年を表示します。Yを記述した数は西暦の表示桁数を示します。
WS | "WSWYY.MM.DD" | 和暦の年号を省略形（M ,T, S, H...）で表示します。
WR | "WRWYY\"年\"MM\"月\"DD\"日\"" | 和暦の年号を（明治、大正、昭和、平成..）表示します。
WYY | "WRWYY\"年\"MM\"月\"DD\"日\"" | 和暦の年を表示します。
MM | "YYYY/MM" | 月（1〜12）を表示します。
MONTH | "MONTH DD YYYY" | 月の名前（JANUARY...）を表示します。9桁で表示されます。
month | "month DD YYYY" | キャピタライズされた月の名前（January...）を表示します。9桁で表示されます。
MON | "dy, DD MON YYYY" | 月の名前の省略形（JAN...）を表示します。
mon | "dy, DD mon YYYY" | キャピタライズされた月の名前の省略形（Jan...）を表示します。
DD | "YY/MM/DD" | 日（1〜31）を表示します。
DAY | "YY/MM/DD DAY" | 曜日（SUNDAY...）を表示します。
day | "YY/MM/DD day" | キャピタライズされた曜日（Sunday...）を表示します。
DY | "YY/MM/DD DY" | 曜日の省略形（SUN...）を表示します。
dy | "dy, DD mon YYYY" | キャピタライズされた曜日の省略形（Sun...）を表示します。
DJ | "YY/MM/DD DJ" | 曜日のローカル形（月、火...）を表示します。
HH | "HH:MI:SS" | 12時間制の時（0〜11）を表示します。
HH24 | "HH24:MI:SS" | 24.時間制の時（0〜23）を表示します。
MI | "HH:MI:SS" | 分（0〜59）を表示します。
SS | "HH:MI:SS" | 秒（0〜59）を表示します。
TZ | "HH24:MI:SS TZ" | タイムゾーンを +0900の形式で表示します。
u | "YY/MM/DD uHH24:MI:SS" | 指定箇所より後ろの値をUTC形式で表示します。
-/,.;: | "HH:MI:SS" | 指定の文字を指定した位置に表示します。

※ WS、WR、WYYは和暦が有効な地域でのみ使用可能です。

※ WS、WR、WYYによって和暦の年、年号を利用する場合は、Root.SetWarekiメソッドであらかじめ年号情報を設定する必要があります。明治から平成は自動的に設定されています。

※ DAYなどの曜日を表す指定や、-/,.;:などを単独で指定することはできません。これらは、必ず入力可能なフォーマットと組み合わせで使用してください。


Label.HorizontalAlignプロパティ

水平方向の位置合わせを行います。$STDはデータ型がNumber型の場合は右寄せ、それ以外の場合は左寄せになります。

定数 | 値 | 説明
$STD | 0 | データ型により決定します
$LEFT | 1 | 左寄せ
$CENTER | 2 | 中央寄せ
$RIGHT | 3 | 右寄せ


Label.TapEventModeプロパティ

タップ時に発生するイベントをどのようにイベントキューに追加するかを指定します。

Clicked、DoubleClicked、RClickedイベントが該当します。

Object.PostEventメソッドで発生させたイベントには影響しません。

以下の値の組み合わせを指定します。省略した場合はObject.POST_DEFAULTとなります。

定数 | 値 | 説明
Object.POST_DEFAULT | 0 | 従来通りイベントをイベントキューの一番後ろに追加します。
Object.POST_FRONT | 1 | イベントをイベントキューの先頭に追加します。 イベントを即時に発生させたい場合に指定します。
Object.POST_UNIQUE | 2 | 発信元オブジェクトが同じで同種のイベントがイベントキューに存在する場合、イベントをキューに追加しません。


Label.Transparentプロパティ

$TRUEにするとBgColorプロパティが無効になり、背景が透過色になります。


Label.Valueプロパティ

ラベルに表示する値です。ValueTypeに指定したデータ型の値を保持します。


Label.VerticalAlignプロパティ

垂直方向の位置合わせを行います。$STDは上寄せになります。

定数 | 値 | 説明
$STD | 0 | $TOPと同じ
$TOP | 1 | 上寄せ
$CENTER | 2 | 中央寄せ
$BOTTOM | 3 | 下寄せ

VerticalAlignプロパティを指定した場合、印刷時を除いてLabel内の文字を折り返し表示することはできません。VerticalAlignプロパティを指定しない場合、Label内の文字は折り返し表示されます。


Labelメソッド

API version 4

メソッド

iOSAndroidWindows

Labelクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


Labelイベント

API version 4

イベント

iOSAndroidWindows

Labelクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Clicked | タップされたときに発生します
4 | DoubleClicked | ダブルタップされたときに発生します
4 | RClicked | ロングタップされたときに発生します

クラス概要

基本クラスのイベント


ListBoxクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | ListBox

リストボックスを表示するクラスです。

ListBoxクラスはListItemクラスと協調して動作します。

選択肢として表示するデータを設定するには、ListBoxオブジェクトの下位に定められた構造でListItemまたはその派生クラスのオブジェクトを配置する必要があります。

オブジェクトの構造

画面表示例

キーボード操作

このオブジェクトはキーボード操作に対応しています。下記のキー操作を行うことができます。

キー | 説明
UP | 一つ手前の選択肢に移動
LEFT | 一つ手前の選択肢に移動
BOTTOM | 一つ後ろの選択肢に移動
RIGHT | 一つ後ろの選択肢に移動

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。

スケーリング時の注意点

特にありません


ListBoxプロパティ

API version 4

プロパティ

iOSAndroidWindows

ListBoxクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | BgColor | CRW | integer | $STD | 背景の色
4 | Border | CR | boolean | $FALSE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | FgColor | CRW | integer | $STD | 文字の色
4 | FontFace | CR | integer | $STD | フォントの装飾属性
4 | FontKind | CR | integer | $STD | フォントの種類
4 | FontSize | CR | integer | 10 | フォントサイズ
5 | ItemHeight | CR | integer | 0 | アイテムの高さ
4 | Scroll | CR | integer | $AUTO | スクロールバーの表示制御
4 | SelectionMode | CR | integer | $STD | 選択モード
4 | Value | CRW | integer |  | 選択位置

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


ListBox.BgColorプロパティ

背景の色を色定数で指定します。


ListBox.FgColorプロパティ

文字の色を色定数で指定します。


ListBox.ItemHeightプロパティ

ListItemのアイテムの高さを指定します。
デフォルト値は0で、0が指定されている場合はデフォルトの高さになります。

このプロパティで指定した高さはフォントサイズによって拡大されず、ListItemは常に設定された高さで表示されます。


ListBox.SelectionModeプロパティ

選択モードです。単一選択または複数選択を設定します。

定数 | 値 | 説明
$STD | 0 | 単一選択
$MULTI | 4 | 複数選択


ListBox.Valueプロパティ

現在選択されているリスト項目の配列番号です。

-1は非選択状態を示します。

SelectionModeプロパティが$MULTIの場合は複数の項目を選択できますが、Valueプロパティの値は最後に選択した項目の配列番号となります。


ListBoxメソッド

API version 4

メソッド

iOSAndroidWindows

ListBoxクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


ListBoxイベント

API version 4

イベント

iOSAndroidWindows

ListBoxクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


ListItemクラス

Object
 | NetObject
 |  | ListItem

ListBoxクラスの選択肢を定義するクラスです。必ずListBoxクラスの子オブジェクトとして配列化して利用します。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


ListItemプロパティ

API version 4

プロパティ

iOSAndroidWindows

ListItemクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Selected | CRW | boolean | $FALSE | 項目の選択状態
4 | Title | CRW | String |  | 選択肢に表示される文字列
4 | Value | CRW | String Number Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


ListItem.Selectedプロパティ

項目の選択状態です。

選択されている場合は$TRUE、選択されていない場合は$FALSEになります。


ListItem.Titleプロパティ

リストに表示する文字です。


ListItem.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。

選択肢の選択状態はSelectedプロパティ、選択肢として表示する文字はTitleプロパティで指定できます。


ListItemメソッド

API version 4

メソッド

iOSAndroidWindows

ListItemクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


ListItemイベント

API version 4

イベント

iOSAndroidWindows

ListItemクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Touch | リストボックスの項目を選択したときに発生します
4 | DoubleClicked | ダブルタップされたときに発生します

クラス概要

基本クラスのイベント


ListItem.Touchイベント

リストボックスの項目を選択したときに発生するイベントです。

画面からの操作およびスクリプトからの操作に関わらず発生します。

ListBoxクラスのSelectionModeプロパティが$STDの場合は、OFFからONに変化した場合に発生します。

ListBoxクラスのSelectionModeプロパティが$MULTIの場合は、OFFからON、ONからOFFの両方の変化で発生します。

注意

ListItemクラスで発生したイベントのハンドラ内では、選択された項目番号の参照に親オブジェクトであるListBoxクラスのValueプロパティを利用しないでください。（選択された項目番号が反映されていない場合があります。）

選択された項目番号は、イベントハンドラの引数として渡されるEventオブジェクトのFromプロパティ（ListItemオブジェクト）のIndexプロパティ（配列の添え字）を参照してください。項目の選択状態は、FromプロパティからSelectedプロパティを参照してください。


ListItem.DoubleClickedイベント

ダブルタップされたときに発生します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Number | ShiftKey | 互換性のために残されています。値は常に0です。
Number | CtrlKey | 互換性のために残されています。値は常に0です。
Number | AltKey | 互換性のために残されています。値は常に0です。
Number | xPos | マウスポインタのX座標
Number | yPos | マウスポインタのY座標

注意

ListItemクラスで発生したイベントのハンドラ内では、選択された項目番号の参照に親オブジェクトであるListBoxクラスのValueプロパティを利用しないでください。（選択された項目番号が反映されていない場合があります。）

選択された項目番号は、イベントハンドラの引数として渡されるEventオブジェクトのFromプロパティ（ListItemオブジェクト）のIndexプロパティ（配列の添え字）を参照してください。項目の選択状態は、FromプロパティからSelectedプロパティを参照してください。


OptionButtonクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | ContainerObject
 |  |  |  | OptionButton

複数の選択肢から1つを選択するオプションボタンを表示するクラスです。

OptionButtonクラスはOptionItemクラスと協調して動作します。

選択肢として表示するデータを設定するには、OptionButton オブジェクトの下位に定められた構造でOptionItemクラスまたはその派生クラスのオブジェクトを配置する必要があります。

オブジェクトの構造

画面表示例

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。

スケーリング時の注意点

特にありません


OptionButtonプロパティ

API version 4

プロパティ

iOSAndroidWindows

OptionButtonクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | BgColor | CRW | integer | $STD | 背景の色
4 | Border | CR | boolean | $FALSE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | FgColor | CRW | integer | $STD | 文字の色
4 | FontFace | CR | integer | $STD | フォントの装飾属性
4 | FontKind | CR | integer | $STD | フォントの種類
4 | FontSize | CR | integer | 10 | フォントサイズ
24 | Scalable | CR | boolean | $FALSE | オプションボタンが拡大/縮小可能かどうか
4 | Scroll | CR | integer | $AUTO | スクロールバーの表示制御
4 | Value | CRW | integer |  | 選択位置

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


OptionButton.Scalableプロパティ

$TRUEの場合、オプションボタンのサイズがForm.HorizontalScaleプロパティ、Form.VerticalScaleプロパティに従って拡大、縮小されます。

$FALSEの場合は拡大、縮小されません。

デフォルトは$FALSEです。

オプションボタンは縦横比を維持したまま拡大、縮小されます。Form.HorizontalScaleプロパティ、Form.VerticalScaleプロパティの値が異なる場合、拡大率は小さい値が採用されます。


OptionButton.Valueプロパティ

現在選択されているリスト項目の配列番号です。

-1は非選択状態を示します。


OptionButtonメソッド

API version 4

メソッド

iOSAndroidWindows

OptionButtonクラスには以下のメソッドが定義されています。

API | 名前 | 説明
24 | ResetCheckedImage | SetCheckedImageメソッドで設定した画像を破棄します。
24 | ResetUncheckedImage | SetUncheckedImageメソッドで設定した画像を破棄します。
24 | SetCheckedImage | チェック状態のオプションボタンの画像を設定します。
24 | SetUncheckedImage | 非チェック状態のオプションボタンの画像を設定します。

クラス概要

基本クラスのメソッド


OptionButton.ResetCheckedImageメソッド

説明

SetCheckedImageメソッドで設定した画像を破棄します。

呼出形式

OptionButton1.ResetCheckedImage( )

戻り値

なし

引数

なし

例外

なし

使用例

OptionButton1.ResetCheckedImage();

関連項目

SetCheckedImageメソッド


OptionButton.ResetUncheckedImageメソッド

説明

SetUncheckedImageメソッドで設定した画像を破棄します。

呼出形式

OptionButton1.ResetUncheckedImage( )

戻り値

なし

引数

なし

例外

なし

使用例

OptionButton1.ResetUncheckedImage();

関連項目

SetUncheckedImageメソッド


OptionButton.SetCheckedImageメソッド

説明

チェック状態のオプションボタンに表示する画像を設定します。

呼出形式

OptionButton1.SetCheckedImage( img )

戻り値

なし

引数

Object img

Imageオブジェクト、ImageListオブジェクト、またはURLを設定します。

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

URLで設定する場合、画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

OptionButton1.SetCheckedImage(ImageList1.GetImage(0));
OptionButton2.SetCheckedImage("img/sample.png");

関連項目

ResetCheckedImageメソッド

Image、ImageListクラス


OptionButton.SetUncheckedImageメソッド

説明

非チェック状態のオプションボタンに表示する画像を設定します。

呼出形式

OptionButton1.SetUncheckedImage( img )

戻り値

なし

引数

Object img

Imageオブジェクト、ImageListオブジェクト、またはURLを設定します。

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

URLで設定する場合、画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

OptionButton1.SetUncheckedImage(ImageList1.GetImage(0));
OptionButton2.SetUncheckedImage("img/sample.png");

関連項目

ResetUncheckedImageメソッド

Image、ImageListクラス


OptionButtonイベント

API version 4

イベント

iOSAndroidWindows

OptionButtonクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


OptionItemクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | OptionItem

OptionButtonクラスの選択肢を定義するクラスです。必ずOptionButtonクラスの子オブジェクトとして配列化して利用します。

画面表示例

キーボード操作

このオブジェクトはキーボード操作に対応しています。下記のキー操作を行うことができます。

キー | 説明
SPACE | 選択状態にする
UP | 一つ手前の選択肢に移動
LEFT | 一つ手前の選択肢に移動
BOTTOM | 一つ後ろの選択肢に移動
RIGHT | 一つ後ろの選択肢に移動

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。

スケーリング時の注意点

◆ 選択ボタンをスケーリングしたいときは、OptionButton.Scalableプロパティを$TRUEを設定してください。


OptionItemプロパティ

API version 4

プロパティ

iOSAndroidWindows

OptionItemクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Selected | CRW | boolean | $FALSE | 項目の選択状態
4 | Title | CRW | String |  | 選択肢に表示される文字列
4 | Value | CRW | String Number Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


OptionItem.Selectedプロパティ

項目の選択状態です。

選択されている場合は$TRUE、選択されていない場合は$FALSEになります。

常に1つの選択肢だけが選択状態にある状態が維持されます。


OptionItem.Titleプロパティ

選択肢として表示する文字です。


OptionItem.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。

選択肢の選択状態はSelectedプロパティ、選択肢として表示する文字はTitleプロパティで指定できます。


OptionItemメソッド

API version 4

メソッド

iOSAndroidWindows

OptionItemクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


OptionItemイベント

API version 4

イベント

iOSAndroidWindows

OptionItemクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Touch | オプションボタンの選択肢を変更したときに発生します

クラス概要

基本クラスのイベント


OptionItem.Touchイベント

オプションボタンの選択肢を変更したときに発生するイベントです。

画面からの操作およびスクリプトからの操作に関わらず発生します。

注意

OptionItemクラスで発生したイベントのハンドラ内では、選択された項目番号の参照に親オブジェクトであるOptionButtonクラスのValueプロパティを利用しないでください。（選択された項目番号が反映されていない場合があります。）

選択された項目番号は、イベントハンドラの引数として渡されるEventオブジェクトのFromプロパティ（OptionItemオブジェクト）のIndexプロパティ（配列の添え字）を参照してください。


PulldownItemクラス

Object
 | NetObject
 |  | PulldownItem

PulldownListクラスの選択肢を定義するクラスです。必ずPuldownListクラスの子オブジェクトとして配列化して利用します。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


PulldownItemプロパティ

API version 4

プロパティ

iOSAndroidWindows

PulldownItemクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Selected | CRW | boolean | $FALSE | 項目の選択状態
4 | Title | CRW | String |  | 選択肢に表示される文字列
4 | Value | CRW | String Number Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


PulldownItem.Selectedプロパティ

項目の選択状態です。

選択されている場合は$TRUE、選択されていない場合は$FALSEになります。


PulldownItem.Titleプロパティ

リストに表示する文字です。


PulldownItem.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。

選択肢の選択状態はSelectedプロパティ、選択肢として表示する文字はTitleプロパティで指定できます。


PulldownItemメソッド

API version 4

メソッド

iOSAndroidWindows

PulldownItemクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


PulldownItemイベント

API version 4

イベント

iOSAndroidWindows

PulldownItemクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Touch | プルダウンリストの項目を選択したときに発生します

クラス概要

基本クラスのイベント


PulldownItem.Touchイベント

プルダウンリストの項目を選択したときに発生するイベントです。

画面からの操作およびスクリプトからの操作に関わらず発生します。

注意

PulldownItemクラスで発生したイベントのハンドラ内では、選択された項目番号の参照に親オブジェクトであるPulldownListクラスのValueプロパティを利用しないでください。（選択された項目番号が反映されていない場合があります。）

選択された項目番号は、イベントハンドラの引数として渡されるEventオブジェクトのFromプロパティ（PulldownItemオブジェクト）のIndexプロパティ（配列の添え字）を参照してください。


PulldownListクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | PulldownList

プルダウンリストを表示するクラスです。

PulldownListクラスはPulldownItemクラスと協調して動作します。

選択肢として表示するデータを設定するには、PulldownListオブジェクトの下位に定められた構造でPulldownItemクラスまたはその派生クラスのオブジェクトを配置する必要があります。

プルダウンリストの見かけ上の高さ（ボタン部分の高さ）は他のDisplayObjectと異なり、フォントサイズによって変動します。

なお、TitleHeightプロパティを指定することによって、直接高さを設定することが可能です。

Biz/Browser HTではBgColorプロパティによる色指定は無効です。

オブジェクトの構造

画面表示例

Biz/Browser HTではHeightプロパティ値は無視されます。

リスト部分の高さはPulldownItem配列の要素数に応じて調整されます。

DropdownStyleプロパティが$STDの場合、高さは最大で画面の縦幅の約1/3、$FLOATINGの場合は画面の縦幅の約80%です。

キーボード操作

このオブジェクトはキーボード操作に対応しています。下記のキー操作を行うことができます。

キー | 説明
F4 | リストを表示（DropdownKey=0の時のみ）
UP | 一つ手前の選択肢に移動
BOTTOM | 一つ後ろの選択肢に移動

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。

スケーリング時の注意点

◆ TitleHeightプロパティが指定されていない場合、見かけ上の高さ(プルダウンしていない高さ)はVerticalScaleの影響は受けず、FontScaleによるフォントサイズの変更に影響されます

◆ プルダウンボタンの幅はOSで規定されておりスケーリングの対象になりません


PulldownListプロパティ

API version 4

プロパティ

iOSAndroidWindows

PulldownListクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | BgColor | CRW | integer | $STD | 背景の色 (過去との互換性のために残されており、指定は無効です)
HT(10) | DropdownKey | CR | integer |  | ドロップダウンするキー
HT(10) | DropdownStyle | CR | integer | $STD | 選択リストの表示方法
5 | DropdownWidth | CR | integer | 0 | ドロップダウン部分の幅
20 | FloatingHeight | CR | integer | $STD | ポップアップの高さ
20 | FloatingWidth | CR | integer | $STD | ポップアップの幅
4 | FgColor | CRW | integer | $STD | 文字の色
4 | FontFace | CR | integer | $STD | フォントの装飾属性
4 | FontKind | CR | integer | $STD | フォントの種類
4 | FontSize | CR | integer | 10 | フォントサイズ
5 | TitleHeight | CR | integer | 0 | ボタン部分の高さ
4 | Value | CRW | integer |  | 選択位置

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


PulldownList.DropdownKeyプロパティ

ドロップダウンを行うキーを設定します。

未設定時はF4キーがドロップダウンキーとなります。

DropdownKeyプロパティに指定できる値は、キーの指定を参照してください。


PulldownList.DropdownStyleプロパティ

選択リスト部の表示スタイルを指定します。

以下の定数を指定します。

定数 | 値 | 説明
$STD | 0 | 標準。オブジェクト下部へリスト表示
$FLOATING | 1 | リストを画面中央へ拡大・ポップアップ表示

$FLOATING指定時のリストの表示位置は画面サイズにより自動的に調整されます。

またフォントは現在指定しているフォントを自動的にサイズ調整して使用します。


PulldownList.DropdownWidthプロパティ

プルダウンリストのドロップダウン（ポップアップ）の幅を指定します。
デフォルトの値は0で、デフォルトの場合はドロップダウンはデフォルトの幅で表示されます。


PulldownList.FloatingHeightプロパティ

DropdownStyleプロパティに$FLOATINGを指定した場合のポップアップの高さを指定します。

デフォルト値は0で、0が指定されている場合はデフォルトの高さになります。

また、高さの最大は画面の高さの約80%までとなり、それ以上は高くなりません。

このプロパティで指定した高さはフォントサイズによって拡大されず、PulldownListは常に設定された高さで表示されます。


PulldownList.FloatingWidthプロパティ

DropdownStyleプロパティに$FLOATINGを指定した場合のポップアップの幅を指定します。
デフォルト値は0で、0が指定されている場合はデフォルトの幅になります。

このプロパティで指定した幅はフォントサイズによって拡大されず、PulldownListは常に設定された幅で表示されます。


PulldownList.TitleHeightプロパティ

PulldownListのボタン部分の高さを指定します。
デフォルト値は0で、0が指定されている場合はデフォルトの高さになります。

このプロパティで指定した高さはフォントサイズによって拡大されず、PulldownListは常に設定された高さで表示されます。


PulldownList.Valueプロパティ

現在選択されているリスト項目の配列番号です。

-1は非選択状態を示します。


PulldownListメソッド

API version 4

メソッド

iOSAndroidWindows

PulldownListクラスには以下のメソッドが定義されています。

API | 名前 | 説明
24 | ResetImage | SetImageメソッドで設定した画像を破棄します。
24 | ResetPushedImage | SetPushedImageメソッドで設定した画像を破棄します。
24 | SetButtonArea | PulldownListでテキストを表示しない領域を指定します。
24 | SetImage | PulldownListの背景画像を設定します。
24 | SetPushedImage | PulldownListが押された状態の背景画像を設定します。
20 | ShowDropdown | プルダウンリストを表示します。

クラス概要

基本クラスのメソッド


PulldownList.ResetImageメソッド

説明

SetImageメソッドで設定した画像を破棄します。

呼出形式

PulldownList1.ResetImage( )

戻り値

なし

引数

なし

例外

なし

使用例

PulldownList1.ResetImage();

関連項目

SetImageメソッド


PulldownList.ResetPushedImageメソッド

説明

SetPushedImageメソッドで設定した画像を破棄します。

呼出形式

PulldownList1.ResetPushedImage( )

戻り値

なし

引数

なし

例外

なし

使用例

PulldownList1.ResetPushedImage();

関連項目

SetPushedImageメソッド


PulldownList.SetButtonAreaメソッド

説明

SetImageメソッドやSetPushedImageメソッドで設定した画像内で、テキストを表示しない領域を指定します。

SetImageメソッドとSetPushedImageメソッドの両方で画像を設定した場合のみ有効になります。

呼出形式

PulldownList1.SetButtonArea( width )

戻り値

なし

引数

integer width

テキストを表示しない領域のサイズ

例外

なし

使用例

PulldownList1.SetButtonArea(25);

関連項目

SetImage、SetPushedImageメソッド


PulldownList.SetImageメソッド

説明

プルダウンリストのボタン部分の背景画像を設定します。

呼出形式

PulldownList1.SetImage( img )

戻り値

なし

引数

Object img

Imageオブジェクト、ImageListオブジェクト、またはURLを設定します。

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

URLで設定する場合、画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

PulldownList1.SetImage(ImageList1.GetImage(0));
PulldownList1.SetImage("img/sample.png");

関連項目

ResetImageメソッド

Image、ImageListクラス


PulldownList.SetPushedImageメソッド

説明

プルダウンリストのボタン部分が押された状態の背景画像を設定します。

呼出形式

PulldownList1.SetPushedImage( img )

戻り値

なし

引数

Object img

Imageオブジェクト、ImageListオブジェクト、またはURLを設定します。

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

URLで設定する場合、画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

PulldownList1.SetPushedImage(ImageList1.GetImage(0));
PulldownList1.SetPushedImage("img/sample.png");

関連項目

ResetPushedImageメソッド

Image、ImageListクラス


PulldownList.ShowDropdownメソッド

説明

プルダウンリストを表示状態にします。

呼出形式

PulldownList.ShowDropdown( )

戻り値

なし

引数

なし

例外

なし

使用例

PulldownList1.ShowDropdown( );

関連項目


PulldownListイベント

API version 4

イベント

iOSAndroidWindows

PulldownListクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Rootクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | ContainerObject
 |  |  |  | Root

RootクラスはBiz/Browser自体のウィンドウに対応したクラスであり、Biz/Browserの動作を決める機能があります。

Rootオブジェクトはすべてのオブジェクトの最上位にあり、オブジェクトツリーの基点になります。

Rootオブジェクトはアプリケーション内で１つだけ作成され、CRSスクリプト上で "//" によりどこからでもアクセスできます。

例えば、ウィンドウのタイトルバーの値は

//.Title

で取得できます。

RootオブジェクトにはSYSオブジェクトという特別な子オブジェクトがあり、システム固有の情報を取得できます。

また、OnExceptionというグローバル例外を処理する特殊な関数が用意されています。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


Rootプロパティ

API version 4

プロパティ

iOSAndroidWindows

Rootクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
9 | AllowUntrustCertificate | CRW | boolean | $FALSE | 信頼できないSSL/TLS サーバ証明書を通信に使用できるか否かを指定します
HT(10) | AutoDial | CRW | integer | Root.Up+Root.Down | 互換性のために残されています。動作しません。
4 | BackKeyMode | CRW | integer | Root.ConfirmClose | 「戻る」ボタン押下時の挙動を指定します
4 | BgColor | CRW | integer | $STD | 背景の色
4 | CacheMode | CRW | integer | Root.CacheNetwork | キャッシュ対象となる通信方法の選択
HT(10) | DialEntry | CRW | String |  | 互換性のために残されています。動作しません。
4 | DisplayOrient | CRW | integer | Root.UNSPECIFIED | 画面の回転方向
4 | Height | CRW | integer |  | ルートウィンドウ内側の表示領域の垂直方向サイズ
28 | HighlightBgColor | CRW | integer | $STD | フォーカスが当たったオブジェクトの背景の色
28 | HighlightBorderColor | CRW | integer | $STD | フォーカスが当たったオブジェクトの枠の色
28 | HighlightOnFocus | CRW | boolean | $FALSE | フォーカスが当たった時に枠の色や背景色を変更するかどうか
HT(10) | HttpRetryTime | CRW | integer | 0 | 互換性のために残されています。動作しません。
4 | HttpTimeout | CRW | integer | 0 | 通信のタイムアウト値
4 | Indicator | CRW | integer | Root.indAll | 画面下部に表示される状態インジケータの表示
HT(10) | MinimizeBox | CR | boolean | $TRUE | 互換性のために残されています。動作しません。
4 | ReloggedIn | R | boolean | $FALSE | Biz/Browser HT プロセスが外的な要因によって強制終了されたか否か
HT(12) | SelectAllOnFocus | CR | integer | $NONE | タップ以外の操作でフォーカスを受けた際に既存のテキストを全選択するかどうかを指定します
20 | ShowCoredumpProgress | CRW | Integer | 0 | 例外発生時にコアダンプのプログレスを表示するかどうか
HT(15) | ShowSIPOnFocus | CR | integer | $STD | キーボードフォーカスを受けたときにSIPを表示するかどうかを指定します
4 | Title | CRW | String |  | ルートウィンドウのタイトルの文字
HT(10) | UseHttpPreconfig | CRW | boolean | $TRUE | 互換性のために残されています。動作しません。
16 | UserLanguage | CRW | Integer | $STD | アプリ内で使用するロケールIDを指定します
4 | Value | CRW | String |  | オブジェクトの値
4 | Width | CRW | integer |  | ルートウィンドウ内側の表示領域の水平方向サイズ
4 | X | CRW | integer |  | ルートウィンドウの水平表示位置
4 | Y | CRW | integer |  | ルートウィンドウの垂直表示位置

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Root.AllowUntrustCertificateプロパティ

信頼できないSSL/TLS サーバ証明書を通信に使用できるか否かを指定します。

開発中などで自己証明書や期限切れの証明書での通信を行いたい場合は$TRUEを指定します。

なお、信頼できないSSL/TLS サーバ証明書を用いた通信は安全ではないため、本番環境など運用フェーズでの使用は推奨されません。

デフォルト値は$FALSEです。


Root.BackKeyModeプロパティ

「戻る」ボタン押下時の挙動を指定します。

下記の定数を組み合わせて指定するか、0を指定します。

定数 | 説明
Root.ConfirmClose = 1 | ボタン押下時に終了確認メッセージを表示します。

0を指定した場合、終了確認メッセージを表示しない、という動作となります。

Root.ConfirmClose指定時は、一度目のボタン押下で終了確認メッセージを表示し、二度目のボタン押下でCloseイベントを発行します。

指定しない場合は即座にCloseイベントを発行します。

初期値はRoot.ConfirmCloseです。


Root.CacheModeプロパティ

キャッシュ対象となる通信方法を選択します。

下記の定数を組み合わせて指定します。

定数 | 説明
Root.CacheOff = 0 | キャッシュを許可しません
Root.CacheNetwork = 1 | http, httpsプロトコルでの通信時のキャッシュを許可します
Root.CacheLocalFile = 2 | fileプロトコルでの通信時のキャッシュを許可します

なお、Biz/Browserメニューの「表示」→「設定」で表示される設定画面上で「ローカルキャッシュを使用する」オプションが有効となっていない場合、本プロパティの値によらずキャッシュは行われません。

初期値はRoot.CacheNetworkです。

関連項目

CacheSetupメソッド

NetObject.Cacheメソッド


Root.DisplayOrientプロパティ

API version 4

Root.DisplayOrientプロパティ 変更履歴

iOSAndroidWindows

画面の回転方向を取得、または設定するプロパティです。指定値は相対値ではなく絶対値です。

設定が有効かどうか、また0度状態の向きは機種依存となります。

以下の値のいずれか指定します

定数 | 説明
Root.UNSPECIFIED | 制御しません(標準状態)
Root.LANDSCAPE | 横方向に固定します。（180度の回転は制御されません）
Root.PORTRAIT | 縦方向に固定します。（180度の回転は制御されません）
Root.LANDSCAPE_FIX *1 | 横方向に固定します。（180度の回転も制御します）
Root.LANDSCAPE_REVERSE_FIX *1 | 横方向に固定します。Root.LANDSCAPE_FIXから180度回転した向きになります。（180度の回転も制御します）
Root.PORTRAIT_FIX *1 | 縦方向に固定します。（180度の回転も制御します）
Root.PORTRAIT_REVERSE_FIX *1 | 縦方向に固定します。Root.PORTRAIT_FIXから180度回転した向きになります。（180度の回転も制御します）
Root.deg0 | 互換性のために残されています。Root.PORTRAIT設定時と同じ挙動となります。
Root.deg90 | 互換性のために残されています。Root.LANDSCAPE設定時と同じ挙動となります。
Root.deg180 | 互換性のために残されています。Root.PORTRAIT設定時と同じ挙動となります。
Root.deg270 | 互換性のために残されています。Root.LANDSCAPE設定時と同じ挙動となります。

デフォルト値はRoot.UNSPECIFIEDです。

制限事項
Root.LANDSCAPE、Root.PORTRAITを指定した場合、回転方向はそれぞれ縦方向/横方向で固定されますが、180度の回転は制御できません。
例えば、端末の上下を逆さまにした場合、180度の回転が行われます。
画面の向きを固定したい場合は、Orientプロパティは設定せずにOSの設定で縦/横固定にするか、
Root.LANDSCAPE_FIX、Root.LANDSCAPE_REVERSE_FIX、Root.PORTRAIT_FIX、Root.PORTRAIT_REVERSE_FIXを指定してください。
また、Root.PORTRAIT_REVERSE_FIXを有効にするには、OSの設定で画面の自動回転を有効にする必要があります。

変更履歴
*1　API version 19から仕様変更されました。


Root.Heightプロパティ

ルートウィンドウ内側の表示領域の垂直方向サイズを示します。

このプロパティは読取専用で更新することはできません。

変更履歴
*1　API version 9から仕様変更されました。


Root.HighlightBgColorプロパティ

HighlightOnFocusプロパティが$TRUEの場合に、ルート以下に配置されているオブジェクトにフォーカスが当たったときの背景色を色定数で指定します。

FocusObjectクラスの派生クラスが対象です。

$STDを指定した場合、BgColorプロパティの指定値で描画します。

デフォルト値は$STDです。


Root.HighlightBorderColorプロパティ

HighlightOnFocusプロパティが$TRUEの場合に、ルート以下に配置されているオブジェクトにフォーカスが当たったときの枠の色を色定数で指定します。

FocusObjectクラスの派生クラスが対象です。

ただし、以下のクラスは対象外となります。

  • CanvasViewクラス
  • CheckItemクラス
  • MediaPlayerクラス
  • MediaRecorderクラス
  • OptionItemクラス
  • SwitchItemクラス

$STDを指定した場合、BorderColorプロパティの指定値で描画します。

デフォルト値は$STDです。


Root.HighlightOnFocusプロパティ

ルート以下に配置されているオブジェクトにフォーカスが当たったときに、枠線の色や背景の色を変えるかどうかを指定します。

FocusObjectクラスの派生クラスが対象です。

枠線の色、および背景の色はそれぞれHighlightBgColorおよびHighlightBorderColorプロパティで指定します。

デフォルト値は$FALSEです。


Root.HttpTimeoutプロパティ

Biz/Browserによる通信のデフォルトのタイムアウト値を秒数で指定します。

0を指定すると設定は解除され、OSの標準タイムアウト時間となります。

設定値のデフォルトは0です。

指定したタイムアウト値はLoginメソッドによりBiz/Browserが初期化されても解除されません。Biz/Browserのプロセスが終了するまで、接続先に関わらず有効です。

Biz/Browserの再起動後は初期化される（保存はされない）ため、通常は起動後の最初に実行するCRSでHttpTimeoutプロパティを設定します。

※OSの標準タイムアウト値に関しては、OSの仕様に準じます。


Root.Indicatorプロパティ

画面下部の状態インジケータの表示を制御します。

以下の値で表示・非表示を指定します

定数 | 説明
Root.indOff | 表示しない
Root.indAll | すべて表示
Root.indEngine | CRSコンパイル中、および実行中を表示
Root.indFile | ファイルアクセス中を表示
Root.indNet | 通信中を表示

初期値はindAllです。


Root.ReLoggedInプロパティ

Biz/Browser HT プロセスが外的な要因によって強制終了された後に自動的に再起動された場合true となります。

初期値は$FALSEです。

値はLoginメソッドによりBiz/Browserが初期化された場合リセットされます。

初期値は$FALSEとなります。


Root.SelectAllOnFocusプロパティ

画面上のすべてのEditObject(NumberEdit, DateEdit除く)に対して、タップ以外の操作でフォーカスを受けた際に既存のテキストを全選択するかどうかを指定します。

設定可能な値は下記の値です。

定数 | 値 | 説明
$STD | 0 | 全選択します
$NONE | 1 | 全選択しません (デフォルト値)


Root.ShowCoredumpProgressプロパティ

例外が発生しコアダンプを出力する際に、出力中を示すプログレスを表示するかどうかを設定します。

定数 | 値 | 説明
$HIDE | 0 | 常に非表示
$EXCEPT_UNCAUGHT | 1 | OnException関数が実装されておらず、例外が捕捉されていないとき表示
$SHOW | 2 | 常に表示

デフォルト値は$HIDEです。


Root.ShowSIPOnFocusプロパティ

画面上のすべてのTextBox, EditBox, NumberEdit, DateEdit, MaskEdit, FlexTextBoxに対して、キーボードフォーカスを受けたときにSIPを表示するかどうかを指定します。

設定可能な値は下記の値です。

定数 | 値 | 説明
$STD | 0 | IMEModeのデフォルトの動作に従います (デフォルト値)
$CLOSE | 4096 | EditObject.IMEModeプロパティに$OPEN,$SIP_OPENが設定されていないとき、SIPを表示しません
$OPEN | 8192 | 将来のために予約されています。動作しません


Root.MinimizeBoxプロパティ

このプロパティは互換性のために残されています。操作しても何も起きません。


Root.Titleプロパティ

ルートウィンドウのタイトルバーに表示される文字です。


Root.UserLanguageプロパティ

ロケールIDを指定し、アプリ内で使用する言語を切り替えます。

定数 | 値 | 説明
$STD | 0 | システムのロケール
$EN | 1033 | 英語
$JA | 1041 | 日本語
$ZH | 2052 | 中国語(簡体)

リソースIDを指定した後にNetObject.GetメソッドでロードしたCRSから有効になります。

認識できないリソースIDが指定された場合、英語として扱います。

ただし、FileSystem.OpenDialogメソッドやFileSystem.SaveDialogメソッドで表示されるダイアログなど、一部の文言はUserLanguageプロパティの影響を受けません。

Logoutメソッドを呼び出すと、システムのロケールに戻ります。

デフォルト値は$STDです。


Root.Valueプロパティ

オブジェクトの値です。

このプロパティの値はオブジェクトの動作には影響を与えません。


Root.Widthプロパティ

ルートウィンドウ内側の表示領域の水平方向サイズを示します。

このプロパティは読取専用で更新することはできません。

変更履歴
*1　API version 9から仕様変更されました。


Root.Xプロパティ

このプロパティは他バージョンとの整合性のために残されています。

Xプロパティの値は常に0となります。

変更履歴
*1　API version 9から仕様変更されました。


Root.Yプロパティ

このプロパティは他バージョンとの整合性のために残されています。

Yプロパティの値は常に0となります。

変更履歴
*1　API version 9から仕様変更されました。


Root.AutoDialプロパティ

このプロパティは互換性のために残されています。操作しても何も起きません。


Root.DialEntryプロパティ

このプロパティは互換性のために残されています。操作しても何も起きません。


Root.HttpRetryTimeプロパティ

このプロパティは互換性のために残されています。操作しても何も起きません。


Root.UseHttpPreconfigプロパティ

このプロパティは互換性のために残されています。操作しても何も起きません。


Rootメソッド

API version 4

メソッド

iOSAndroidWindows

Rootクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | CacheSetup | キャッシュ設定ダイアログを表示します
HT(10) | CopyString | クリップボードに文字列をコピーします
4 | DecideValue | 入力が未確定状態のオブジェクトの値を強制的に確定します
4 | DeleteCache | キャッシュを削除します
HT(10) | Dial | 互換性のために残されています。動作しません。
4 | GetBookmark | ブックマークの一覧を取得します
9 | GetClientCertificateList | インポートされているクライアント証明書の一覧を取得します
4 | GetDesktopHeight | デスクトップの垂直サイズを取得します この機能はAPI version 6から廃止されました。
4 | GetDesktopWidth | デスクトップの水平サイズを取得します この機能はAPI version 6から廃止されました。
6 | GetFocus | 現在フォーカスが当たっているオブジェクトを返します
9 | GetUsingClientCertificate | 通信時に使用するクライアント証明書を取得します
9 | ImportClientCertificate | クライアント証明書(PKCS#12形式)をインポートします
9 | IsClientCertificateAutoSelect | 通信時に使用するクライアント証明書が自動的に選択されるか否かを取得します
9 | IsNetworkAccessible | ネットワークが有効か否かを返します
4 | Login | 指定したサーバにログインします
4 | Logout | ログアウトします
HT(10) | PasteString | クリップボードから文字列を取得します
HT(16) | RemapKeyName | キーボードからの任意のキー入力を、別のキー入力として扱えるようにします
4 | RemBookmark | ブックマークのエントリを削除します
19 | ScreenShot | 画面のスクリーンショットを取得します
4 | SetBookmark | ブックマークのエントリを追加、変更します
9 | SetClientCertificate | 通信時に使用するクライアント証明書を指定します
HT(10) | SetCompatibleMode | Mobile互換モードを有効にするかを指定します
19 | SetFullScreenMode | ナビゲーションバー、ステータスバーの表示を制御します
HT(10) | SetUserSIP | 互換性のために残されています。動作しません。
4 | SetWareki | 和暦の年号および期間を指定します
4 | ShowMenu | メニューバーの表示、非表示を指定します
4 | SLogin | 指定したサーバに単一セッションモードでログインします
4 | SetRelogInURL | 自動再起動時の再ログイン先を指定します。
4 | SetMemoryLimitThreshold | メモリ使用警告イベントを発行する閾値を設定します。 この機能はAPI version 6から廃止されました。
4 | GetPowerState | 電源やバッテリーの状態を取得します
4 | ShowSIP | SIP(Software Input Panel)の表示制御を行います

クラス概要

基本クラスのメソッド


Root.CacheSetupメソッド

説明

キャッシュ設定ダイアログを表示します。

呼出形式

//.CacheSetup( )

戻り値

なし

引数

なし

例外

なし

使用例

Function OnTouch(e) {
    //.CacheSetup();
}

関連項目

CacheModeプロパティ

NetObject.Cacheメソッド


Root.CopyStringメソッド

説明

クリップボードに文字列をコピーします。

呼出形式

//.CopyString( text )

戻り値

なし

引数

String text

コピーする文字列を指定します

例外

なし

使用例

//.CopyString("text data");

関連項目

PasteStringメソッド


Root.DecideValueメソッド

説明

入力が未確定状態のオブジェクトの値を強制的に確定します。

EditObjectクラスの派生クラスは、キーボードフォーカスが失われたときや、Enterキーを押したときに入力中の値が確定します。それ以前は、画面上で入力している値はValueプロパティに設定されることはなく、未確定状態となります。

DecideValueメソッドは、このような未確定状態のオブジェクトの値を、強制的にValueプロパティに設定します。

LabelオブジェクトのClickedイベントやTimerイベントなど、入力の確定動作を伴わないイベントハンドラで、入力値を扱う場合に使用します。

DecideValueメソッドの呼び出しにより、Touchイベント、Changeイベントなど値の変更に関わるイベントが発生することがあります。

呼出形式

//.DecideValue( )

戻り値

なし

引数

なし

例外

なし

使用例

Form frm1 {
   :
   TextBox tb {
      :
   }
   Function OnClicked(e) {
      //.DecideValue();
      MessageBox("入力値は" + tb.Value + "です");
   }
}

関連項目


Root.DeleteCacheメソッド

説明

URIで示されるキャッシュを削除します。

DeleteCacheメソッドを呼び出したCRSファイルをダウンロードしたサーバ以外のサーバから生成されているキャッシュを削除することはできません。

URIにはプロトコル（http://）とホスト名を指定することはできず、含めた場合でも無視されます。これは、意図せずに別のアプリケーションで利用されているキャッシュを削除しないようにするために設けられた制約です。

この制約による注意すべき点として、イメージファイルのキャッシュ制御があります。ImageLabelオブジェクトなどにURLでロードされるイメージファイルもキャッシュの対象となりますが、イメージファイルをアプリケーションとは異なるサーバからダウンロードしている場合、スクリプトからそのイメージファイルのキャッシュを削除する方法がなくなります。

呼出形式

//.DeleteCache( [ URI ] )

戻り値

なし

引数

String URI

削除するURIを指定します。

省略した場合はDeleteCacheメソッドを呼び出したCRSファイルをダウンロードしたサーバからのキャッシュをすべて削除します。

URIの末尾に *（アスタリスク）を指定した場合、前方一致するURLを全て削除します。削除対象となるキャッシュは、URLの文字列比較での前方一致で決定されるため、ディレクトリ名やファイル名の区別は行われません。

例外

なし

使用例

//.DeleteCache("/app1/form1.crs");

関連項目

cachedate関数


Root.GetBookmarkメソッド

説明

ブックマークの一覧を取得します。

ブックマークはBiz/Browserが保存する接続先URLのリストで、ログイン時に自動的に登録されます。Biz/Browserを終了してもブックマークは保持され、次回起動時にも同じように使用できます。

Biz/Browserの標準ログイン画面ではブックマーク一覧が表示され、ログイン先のURLを選択できます。

ブックマークにはタイトル文字列を付加できます。ブックマークの編集はSetBookmark、RemBookmarkメソッドで行います。

呼出形式

var list = //.GetBookmark( )

戻り値

以下の子オブジェクトを持つRecordオブジェクトの配列を返します。

型 | 名前 | 説明
String | url | ブックマークのURL
String | title | ブックマークのタイトル

引数

なし

例外

なし

使用例

var list = //.GetBookmark();
for (var n = 0; n < list.length; n++) {
    print(list[n].url, list[n].title, "\n");
}

関連項目

SetBookmark、RemBookmarkメソッド


Root.GetClientCertificateListメソッド

説明

インポートされているクライアント証明書の一覧を取得します。

呼出形式

var certList = //.GetClientCertificateList( )

戻り値

証明書情報を格納したRecordオブジェクトの配列を返します。

証明書情報が取得できなかった場合、空のRecordオブジェクトの配列を返します。

証明書の情報の形式は下記の通りです。

Record certificateInfoList[] {
    /* 証明書のSHA-256ハッシュ。証明書を一意に特定可能。setClientCertificateで使用 */
    ByteArray Digest;

    /* 証明書のシリアル値 */
    ByteArray SerialNumber;

    /* 証明書の有効期間(開始日) */
    Date EffectiveDate;

    /* 証明書の有効期間(終了日) */
    Date ExpiryDate;

    / サブジェクト(発行された人)情報 : コモンネーム, 国名, 組織名, Eメールアドレス */
    String SubjectCommonName;
    String SubjectCountryName;
    String SubjectOrganization;
    String SubjectEmailAddress;

    /* 発行者(発行した人)情報 : コモンネーム, 国名, 組織名, Eメールアドレス */
    String IssuerCommonName;
    String IssuerCountryName;
    String IssuerOrganization;
    String IssuerEmailAddress;
}

引数

なし

例外

なし

使用例

var digest = null;
var certList = //.GetClientCertificateList();
for(var idx in certList) {
    var cert = certList[idx];
    /*コモンネームが一致する発行者を探す*/
    if(cert.IssuerCommonName == "ExampleCommonName") {
        digest = cert.Digest;
        break;
    }
}
/* 発見したクライアント証明書を使用する */
if(digest != null) //.SetClientCertificate(digest);

関連項目

SetClientCertificateメソッド


Root.GetDesktopHeightメソッド

iOSAndroid

この機能はAPI version 6から廃止されました。


Root.GetDesktopWidthメソッド

iOSAndroid

この機能はAPI version 6から廃止されました。


Root.GetFocusメソッド

説明

現在表示されているフォームの中でフォーカスが当たっているオブジェクトを取得します。

呼出形式

var obj = //.GetFocus( )

戻り値

現在フォーカスが当たっているオブジェクトを返します。

引数

なし

例外

なし

使用例

var obj = //.GetFocus();
obj.Title = "Focus Now.";

関連項目

FocusObject.SetFocusメソッド


Root.GetUsingClientCertificateメソッド

説明

通信時に使用するクライアント証明書を取得します。

このメソッドの呼び出しはIsClientCertificateAutoSelectメソッドが$TRUEを返す場合、常にnullを返します。

呼出形式

var cert = //.GetUsingClientCertificate( )

戻り値

通信時に使用するクライアント証明書が取得された場合はその証明書の情報が、そうでなければnullが返ります。

証明書の情報の形式は下記の通りです。

Record certificateInfo {
    /* 証明書のSHA-256ハッシュ。証明書を一意に特定可能。setClientCertificateで使用 */
    ByteArray Digest;

    /* 証明書のシリアル値 */
    ByteArray SerialNumber;

    /* 証明書の有効期間(開始日) */
    Date EffectiveDate;

    /* 証明書の有効期間(終了日) */
    Date ExpiryDate;

    / サブジェクト(発行された人)情報 : コモンネーム, 国名, 組織名, Eメールアドレス */
    String SubjectCommonName;
    String SubjectCountryName;
    String SubjectOrganization;
    String SubjectEmailAddress;

    /* 発行者(発行した人)情報 : コモンネーム, 国名, 組織名, Eメールアドレス */
    String IssuerCommonName;
    String IssuerCountryName;
    String IssuerOrganization;
    String IssuerEmailAddress;
}

引数

なし

例外

なし

使用例

var cert = //.GetUsingClientCertificate();
if(cer != null) {
    MessageBox("現在使用中の証明書の有効期限は" + cert.ExpiryDate.toString() + "迄です");
}

関連項目

GetClientCertificateListメソッド

IsClientCertificateAutoSelectメソッド


Root.ImportClientCertificateメソッド

説明

クライアント証明書(PKCS#12形式)をインポートします。

インポートされた証明書は各プラットフォームの証明書管理機構に保存されます。

Android版

キーストア(KeyStore)に保存されます。

Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、

OSに対してユーザー操作で許可をとる必要があります。

詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

//.ImportClientCertificate( URL or Reader [, password ] )

戻り値

なし

引数

String URL or reader

証明書のURLまたはReaderオブジェクト。

String password

証明書のパスワードを指定します。

省略時は空文字列と見なします。

例外

FUNC-4

引数が不正です

PKG-65

クライアント証明書のインポートに失敗しました

使用例

//.ImportClientCertificate("http://test.example.com/cert/certificate.p12");

関連項目

GetClientCertificateListメソッド


Root.IsClientCertificateAutoSelectメソッド

説明

通信時に使用するクライアント証明書が自動的に選択されるか否かを取得します。

このメソッドが$FALSEを返す場合、クライアント証明書を用いた通信を行うには使用するクライアント証明書をSetClientCertificateメソッドで指定する必要があります。

このメソッドが$TRUEを返す場合、SetClientCertificateメソッドの呼び出しは無視され、自動的に適切なクライアント証明書を選択します。

呼出形式

var autoSelect = //.IsClientCertificateAutoSelect( )

戻り値

自動的に選択される場合は$TRUE, そうでなければ$FALSEを返します。

引数

なし

例外

なし

使用例

if(!//.IsClientCertificateAutoSelect()) {
    //.SetClientCertificate( ... );
}

関連項目

GetUsingClientCertificateメソッド

SetClientCertificateメソッド


Root.IsNetworkAccessibleメソッド

説明

ネットワークが有効か否かを返します。

このメソッドでは端末が何らかのネットワークに接続されているかを返します。

通信が途切れやすい環境やオフラインが前提の場面では、このメソッドを用いて予め通信可能かを判定することでスムーズな処理が実現可能です。

このメソッドが$TRUEを返しても、全ての場面で全てのサーバに通信できるかまでは判定できません。

そのため、このメソッドを用いていても、通信時の例外処理やHTTPステータスコードの確認は引き続き適切に処理することを推奨します。

呼出形式

var accessible = //.IsNetworkAccessible( )

戻り値

ネットワークが有効であれば$TRUEを、そうでなければ$FALSEを返します。

引数

なし

例外

なし

使用例

if(//.IsNetworkAccessible()) {
    /* ネットワーク接続状態 */
    try {
        csvdoc.get("data.csv");
    } catch(e) {
        ...
    }
    ...
} else {
    //.MessageBox("ネットワークに接続されていません。処理を中止します。");
}

関連項目


Root.Loginメソッド

説明

指定したサーバにログインします。

ログインについては、Biz/Browserのログイン時の動作を参照ください。

すべてのパラメータを省略した場合はログイン画面を表示します。

現在のすべてのセッションは切断され、既存オブジェクトはすべて削除されます。

Loginメソッドの呼び出しによりBiz/Browserが初期化されるため、Loginメソッド以降に記述したCRSプログラムは実行されません。

ログイン後の動作については、URIに指定したCRSプログラム内で記述してください。

Android版
Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、OSに対してユーザー操作で許可をとる必要があります。
詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

//.Login( [ server [, URI ] ] )

戻り値

なし

引数

String server

接続先のサーバURL

String URI

接続するリソースのパス

例外

なし

使用例

Login("http://server1:81", "/app1/mainmenu.crs");

関連項目

Logout、SLoginメソッド


Root.Logoutメソッド

説明

ログアウトして、ログイン画面を表示します。

現在のすべてのセッションは切断され、既存オブジェクトはすべて削除されます。

Logoutメソッドの呼び出しによりBiz/Browserが初期化されるため、Logoutメソッド以降に記述したCRSプログラムは実行されません。

呼出形式

//.Logout( )

戻り値

なし

引数

なし

例外

なし

使用例

Function OnTouch(e) {
    //.Logout();
}

関連項目

Login、SLoginメソッド


Root.PasteStringメソッド

説明

クリップボードから文字列を取得します。

クリップボードに文字列が格納されていない場合は空文字列が返されます。

呼出形式

var t = //.PasteString( )

戻り値

クリップボードから取り出した文字列

引数

なし

例外

なし

使用例

vat t = //.PasteString();
print(t, "\n");

関連項目

CopyStringメソッド


Root.RemapKeyNameメソッド

説明

キーボードからの任意のキー入力を、別のキー入力として扱えるようにします。

例えば、Form.KeyDownイベントは発生しないが、OSが認識するハードウェアキー「KEYCODE_BUTTON_1」を押したときに「F1」キーが押されたものとしてKeyDownイベントを発生できるようにします。

Form.KeyDownイベントがもともと発生するキーについても設定を上書きする形で設定可能ですが、期待した通りにプログラムが動作しない可能性がありますので、十分に動作確認を行ってから使用してください。

本機能による設定は、ログアウトするかBiz/Browserを終了させるまで有効です。

Biz/Browser HT(Android) 1.2.2時点では、Form.KeyDownイベント、Form.KeyUpイベントのみ有効です。

呼出形式

//.RemapKeyName( keyCode, keyName )

戻り値

なし

引数

Integer keyCode

Android OSが認識するキーのキーコードを指定します。

Android Developersサイトの「KeyEventクラス」ページに記載のキーコードの値が指定可能です。

String keyName

keyCodeで指定したキーの入力に対して割り当てるキーを、Form.KeyDownイベントのe.key変数が示すキーの名称で指定します。

キー名以外にも空文字以外の任意の文字列を指定することができます。

例外

FUNC-4

引数が不正です。

使用例

/* BUTTON1を押したときTESTキーとして扱う */
//.RemapKeyName(188, "TEST");

/* Aを押したときF1キーとして扱う */
//.RemapKeyName(29, "F1");

Function OnKeyDown(e){
 //.MessageBox("KeyDown: " + e.key);
}

関連項目


Root.RemBookmarkメソッド

説明

ブックマークのエントリを削除します。

既にブックマークに登録されているURLを指定して、そのブックマークを削除します。

Biz/Designerからのテスト実行時は、編集したブックマークは保存されず、テスト実行の終了時に元に戻ります。

呼出形式

//.RemBookmark( [ URL ] )

戻り値

なし

引数

String URL

削除するブックマークのURL

省略した場合、または空文字列を指定した場合は、すべてのブックマークが削除されます。

例外

なし

使用例

//.RemBookmark("http://server/app/menu.crs");

関連項目

SetBookmark、GetBookmarkメソッド


Root.ScreenShotメソッド

説明

画面のスクリーンショットを取得します。

Android版
本機能を使用する際、画面をキャプチャするかどうかを確認する画面が表示されますが
Android 14以降のOSのビルドバージョンによってはキャプチャの対象を「１つのアプリ」と「画面全体」の中から選ぶ画面が表示されます。
この画面が表示された場合は「画面全体」を選択してください。

呼出形式

var img = //.ScreenShot( )

戻り値

スクリーンショットの画像を格納したImageオブジェクト

引数

なし

例外

PKG-68

スクリーンショットの取得に失敗しました。

使用例

Function OnTouch(e) {
    var img = //.ScreenShot();
    ^.imageLabel.SetImage(img);
}

関連項目


Root.SetBookmarkメソッド

説明

ブックマークのエントリを追加、変更します。

新しいURLを指定した場合は、ブックマークリストの最後に追加されます。

既に登録されているURLと同じURLを指定した場合は、そのブックマークのタイトルを置き換えます。

Biz/Designerからのテスト実行時は、編集したブックマークは保存されず、テスト実行の終了時に元に戻ります。

呼出形式

//.SetBookmark( URL [, title ] )

戻り値

なし

引数

String URL

追加、変更するブックマークのURL

URLとして認識できる文字列以外は、正しく登録できません。

String title

ブックマークのタイトル

省略すると、タイトルは空欄になります。

例外

なし

使用例

//.SetBookmark("http://server/app/menu.crs", "業務メニュー");

関連項目

RemBookmark、GetBookmarkメソッド


Root.SetClientCertificateメソッド

説明

通信時に使用するクライアント証明書を指定します。

このメソッドの呼び出しはIsClientCertificateAutoSelectメソッドが$TRUEを返す場合無視されます。

IsClientCertificateAutoSelectメソッドが$FALSEを返す場合、ログイン直後は最初に発見されたクライアント証明書が指定されています。

呼出形式

//.SetClientCertificate( digest )

戻り値

なし

引数

ByteArray digest

使用するクライアント証明書のdigest値(SHA-256ハッシュ)を指定します。

digest値は、GetClientCertificateListメソッドで返されるRecordオブジェクトの"digest"子オブジェクトから取得できます。

nullまたは空のByteArrayを渡した場合、通信時にクライアント証明書を選択しないように指定されます。

例外

FUNC-4

引数が不正です

使用例

var digest = null;
var certList = //.GetClientCertificateList();
for(var idx in certList) {
    var cert = certList[idx];
    /*コモンネームが一致する発行者を探す*/
    if(cert.IssuerCommonName == "ExampleCommonName") {
        digest = cert.Digest;
        break;
    }
}
/* 発見したクライアント証明書を使用する */
if(digest != null) //.SetClientCertificate(digest);

関連項目

GetClientCertificateListメソッド

GetUsingClientCertificateメソッド


Root.SetCompatibleModeメソッド

説明

Mobile互換モードを有効化するかどうかを指定します。

このメソッドを呼び出してからBiz/Browserのアプリが実行終了するまでの間、次回以降のログインから互換モードをON/OFFにしてCRSを起動するようになります。

Biz/Browserのアプリを終了させるとこの設定はリセットされます。アプリ起動直後は互換モードがOFFの状態になっています。

この設定を有効化すると、主に次のような動作が変化します。

  (1)　文字列およびStringクラスが指す文字コードがShift-JISとして振る舞うようになります。　※GUIコントロール表示はUnicodeのままであることに注意してください。

  (2)　一部のGUIコントロール系のオブジェクトがBiz/Browser Mobile製品に準拠した動作に変わります。

呼出形式

//.SetCompatibleMode( mode )

戻り値

なし

引数

boolean mode

互換モードをONにするかどうかを指定します。

$TRUEを設定するとそれ以降のログインに関して互換モードで起動するようになります。$FALSEのときは無効化します。

例外

なし

使用例

//.SetCompatibleMode(true);
//.Login("http://path/to/Login.crs");

関連項目


Root.SetFullScreenModeメソッド

説明

システムが表示するステータスバー、ナビゲーションバーの表示を制御します。

呼出形式

//.SetFullScreenMode( mode )

戻り値

なし

引数

Integer mode

ステータスバー、ナビゲーションバーの制御方法を指定します。
指定できる値は下記の通りです。

定数 | 値 | 説明
Root.FullScreenMode_NotFullScreen | 0 | ナビゲーションバー、ステータスバーの制御を行わず、表示状態にします。
Root.FullScreenMode_ImmersiveSticky | 4 | ナビゲーションバー、ステータスバーを非表示にします。 画面の上部、もしくは下部でスワイプ操作を行うと、バーが半透明で表示状態になります。 一定時間が経過すると、バーが非表示になります。

例外

FUNC-4

引数の値が不正です

使用例

//.SetFullScreenMode(Root.FullScreenMode_ImmersiveSticky);

関連項目


Root.SetWarekiメソッド

説明 | 和暦の年号および期間を指定します。 本メソッドを用いて指定された年号は、Biz/Browserの再起動またはLoginメソッドが呼ばれるまで適用されます。実行途中に年号を削除したり変更することはできないためご注意ください。
呼出形式 | //.SetWareki( sym, sym2, from )
戻り値 | なし
引数 | String sym | 年号文字列
 | String sym2 | 年号省略形
 | Date from | symで指定した年号の開始日をDate型で指定します。指定した日はsymで指定した年号に含まれます。
例外 | なし |
使用例 | //.SetWareki("年号", "N", "2080/1/1");
関連項目 |


Root.ShowMenuメソッド

説明

コマンドバーやステータスバーの表示を指定します。

起動直後の初期状態ではメニューは表示されています。Login、Logoutメソッドが実行されると初期状態に戻ります。

modeに値を指定することで表示、非表示状態を変更します。起動直後の初期状態では表示状態です。

呼出形式

//.ShowMenu( mode )

戻り値

なし

引数

integer mode

以下の値の組み合わせで指定します。

定数 | 値 | 説明
Root.Hide | 0 | 非表示
Root.CommandBar | 1 | メインメニューボタンを表示
Root.StatusBar | 2 | ステータスバーを表示
Root.TaskBar | 4 | 互換性のために残されています。動作しません
Root.SIPBar | 8 | 互換性のために残されています。動作しません
Root.TitleBar | 16 | タイトルバーを表示

例外

なし

使用例

//.ShowMenu(Root.CommandBar + Root.StatusBar);

関連項目


Root.SLoginメソッド

説明

指定したサーバに単一セッションモードでログインします。

現在のすべてのセッションは切断され、既存オブジェクトはすべて削除されます。

SLoginメソッドの呼び出しによりBiz/Browserが初期化されるため、SLoginメソッド以降に記述したCRSプログラムは実行されません。

ログイン後の動作については、URLに指定したCRSプログラム内で記述してください。

単一セッションモード

SLoginメソッドにより開始されたセッションが有効な間は、Biz/Browserは単一セッションモードとなり、URLで指定した接続先以外のサーバとは通信を行うことができなくなります。

また、単一セッションモードの間はトラップされない例外が発生しても、デバッグ情報（コアダンプ）を出力しなくなります。

これらの制約は、高度なセキュリティを必要とするアプリケーションのために設けられており、HttpSession.IsLoginSessionメソッドとの併用により、アプリケーションが意図していないCRSプログラムが同時にロードされてしまうことを抑止することができます。

ただし、SLoginメソッドの効力はアプリケーションを構成する個々のURLに対して働く訳ではないことに注意してください。

正しく高度なセキュリティを実現するためには、HTTPS通信を行うことが必須となり、また、アプリケーションが意図していないURLへの接続を抑止するための仕組みをサーバ側で構築する必要があります。

Android版
Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、OSに対してユーザー操作で許可をとる必要があります。
詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

//.SLogin( URL )

戻り値

なし

引数

String URL

接続先URL

Loginメソッドと異なり、接続先はServerとURIを個別に指定するのではなくURLで一括指定します。

例外

なし

使用例

var session = getHttpSession();
if (session.IsLoginSession($TRUE)) {
    //.Get("main.crs");
} else {
    //.SLogin("https://server/login.crs");
}

関連項目

Login、Logoutメソッド

HttpSession.IsLoginSessionメソッド


Root.Dialメソッド

このメソッドは互換性のために残されています。操作しても何も起きません。


Root.GetPowerStateメソッド

説明

電源やバッテリーの状態を取得します。

取得できる項目は機種に依存します。

呼出形式

var state = //.GetPowerState( )

戻り値

以下の子オブジェクトを持つRecordオブジェクトを返します。

型 | 名前 | 説明
Number | ACPower | -1:不明、0:電源接続なし、1:電源接続中
Number | BatteryLifeLevel | -1:不明、0(最小)〜100(最大)
Number | BatteryLifeTime | -1:不明、0以上:残り時間(秒) Android版 残り時間は取得できません。

引数

なし

例外

なし

使用例

var state = //.GetPowerState();
if (state.BatteryLifeLevel >= 0) {
    print("バッテリレベル ", state.BatteryLifeLevel, "%\n");
}

関連項目


Root.SetUserSipメソッド

このメソッドは互換性のために残されています。操作しても何も起きません。


Root.ShowSIPメソッド

説明

SIP(Software Input Panel)の表示制御を行います。

呼出形式

//.ShowSIP( mode )

戻り値

なし

引数

integer mode

SIPの表示・非表示を設定します。

OSの制約によりSIPの入力モードを制御することはできません。

Android版
IMEアプリケーションによってはSIPが正しく制御できない場合があります。

ShowSIPメソッドに値が設定された時のSIPの表示制御は下記のとおりです。

なお、SIPを表示する値と表示しない値を同時に指定した場合、SIPは表示されません。

定数 | 値 | 動作
$CLOSE | 4096 | SIPを表示しない
$OPEN | 8192 | SIPを表示する

また、他のBiz/Browser製品との互換性のため、下記の定数も指定可能です。

定数 | 値 | 動作
$SIP_CLOSE | 0x10000000 | SIPを表示しない
$ALPHA | 2 | SIPを表示する
$KANA | 8
$DALPHA | 32
$DKANA | 128
$DHIRA | 256
$SIP_OPEN | 0x20000000

例外

なし

使用例

//.ShowSIP($OPEN);

関連項目


Root.SetReLoginURLメソッド

説明

Biz/Browser HT プロセスが外的な要因によって強制終了された後、自動的に再起動された場合にログイン処理を行うURLを指定します。

再ログイン先が指定されていない場合、次回起動した際は標準のログイン画面が表示されます。

本メソッドで設定された自動再起動時の再ログイン先は、再ログイン後も同じものが自動的に設定されますが、アプリケーションを正常終了した場合や異なるCRS にログインし直した場合はリセットされます。

なお、安全なタイミングでデータを保存したい場合、WindowStateChanged イベントの$ACTIVITY_ON_PAUSE や$BACK を受け取ったタイミングでデータを保存してください。

詳細についてはAndroid版の特徴と制約を参照してください。

呼出形式

//.SetReLoginURL( URL )

戻り値

なし

引数

String URL

ログイン先CRSのURLを絶対パスで指定します。

例外

なし

使用例

//.SetReLoginURL("http://test.example.com/crs/relogin.crs");

関連項目

ReloggedInプロパティ


Root.SetMemoryLimitThresholdメソッド

iOSAndroid

この機能はAPI version 6から廃止されました。

説明

メモリ使用量警告イベントを発行するための閾値を設定します。

Biz/Browser SmartDevice が使用可能なメモリは一般的なAndroidアプリと同様16MB〜48MB程度と非常に限られており、かつ端末ごとに最大メモリサイズが異なるため、メモリの使用量に気を配る必要があります。

そのため、本メソッドを用いて閾値を設定した状態で閾値を超えるメモリ使用量となった場合、一度だけMemoryLimitExceededイベントを発行し、閾値をリセットします。

継続してメモリ使用量を監視したい場合、再度本メソッドを呼び出してください。

なお、閾値を設定した場合でも、MemoryLimitExceededイベントが発生するまでに最大メモリ使用量に到達した場合はOutOfMemoryエラーが発生しますため、メモリ不足で停止する前に確実にイベントが発生するものではありません。ご注意ください。

呼出形式

//.SetMemoryLimitThreshold( threshold )

戻り値

なし

引数

Number threshold

メモリ使用量警告イベントを発行するための閾値を設定します。

単位はMBです。

0または負の値の場合はしきい値の設定をリセットします。

例外

なし

使用例

//.SetMemoryLimitThreshold( 24.0 );

関連項目

ReloggedInプロパティ、MemoryLimitExceededイベント


Rootイベント

API version 4

イベント

iOSAndroidWindows

Rootクラスには以下のイベントが定義されています。

API | 名前 | 説明
15 | BluetoothBondingFinished | Bluetoothデバイスとのボンディング(ペアリング)処理が終了した時に発生します
15 | BluetoothDeviceFound | Bluetoothデバイスのスキャンによりデバイスが検出された時に発生します
15 | BluetoothScanFinished | Bluetoothデバイスのスキャンが終了、あるいはキャンセルされた時に発生します
15 | BluetoothScanStarted | Bluetoothデバイスのスキャンが開始された時に発生します。
4 | Close | ルートウィンドウを閉じるときに発生します
HT(10) | ExternalCall | 互換性のために残されています。発生しません。
HT(10) | PowerStateChanged | 端末がスリープ状態から復帰したときに発生します
4 | WindowStateChanged | ルートウィンドウの状態の変化時に発生します
4 | MemoryLimitExceeded | MemoryLimitThresholdプロパティで設定したメモリ使用量を超えた時に発生します この機能はAPI version 6から廃止されました。
4 | ExternalMessage | ExternalObject.getMessageHandlerで取得した メッセージハンドラでメッセージを受けた時に発生します
4 | ExternalIntent | 他のアプリからのIntent受信時に発生します
23 | SmaPriPrinterConnectionChanged | SmaPriPrinterクラスでプリンタと接続、もしくは接続解除を行った場合に発生します
23 | SmaPriPrintFinished | SmaPriクラスによる印刷に成功した場合に発生します
23 | SmaPriPrintFailed | SmaPriクラスによる印刷に失敗した場合に発生します
23 | SmaPriPrintCommandFinished | SmaPriクラスによる印字コマンドの送信に成功した場合に発生します
23 | SmaPriPrintCommandFailed | SmaPriクラスによる印字コマンドの送信に失敗した場合に発生します
23 | SmaPriPrintSendDataFinished | SmaPriクラスによるデータの送信に成功した場合に発生します
23 | SmaPriPrintSendDataFailed | SmaPriクラスによるデータの送信に失敗した場合に発生します

クラス概要

基本クラスのイベント


Root.BluetoothBondingFinishedイベント

RequestBondingメソッドによるBluetoothデバイスとのボンディング(ペアリング)処理が終了した場合に発行されます。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
String | DeviceId | 対象のBluetoothデバイスのBDアドレスが格納されます。 (BDアドレスの形式はMACアドレスと同じです)
String | Name | 対象のBluetoothデバイスの名称が格納されます。
Number | ConnectableAsBluetoothClassic | Bluetooth Classicデバイスとして接続できるデバイスであれば$TRUEが、接続できなければ$FALSEが格納されます。
Number | ConnectableAsBluetoothLE | BLE(Bluetooth Low Energy)デバイスとして接続できるデバイスであれば$TRUEが、接続できなければ$FALSEが格納されます。
Number | HasRssi | RSSI値(Received Signal Strength Indication)を持つ場合は$TRUEが、持たない場合は$FALSEが格納されます。 BLEデバイスでも稀にRSSI値を持たないものがあります。
Number | Rssi | HasRssiが$TRUEの場合、RSSI値が格納されます。単位はdBmです。 HasRssiが$FALSEの場合、このオブジェクトは付加されません。
Number | HasTxPowerLevel | 送信出力値を持つ場合は$TRUEが、持たない場合は$FALSEが格納されます。
Number | TxPowerLevel | HasTxPowerLevelが$TRUEの場合、送信出力値が格納されます。単位はdBmです。 HasTxPowerLevelが$FALSEの場合、このオブジェクトは付加されません。
Array | ServiceUuidList | アドバタイズされているサービス一覧が格納されます。 なお、アドバタイズされていないだけで使用できるサービスがある場合があります。
Number | Bonded | ボンディングに成功した場合は$TRUEが、失敗した場合は$FALSEが格納されます。


Root.BluetoothDeviceFoundイベント

API version 15

Root.BluetoothDeviceFoundイベント変更履歴

iOSAndroidWindows

Bluetoothデバイスのスキャンにより、Bluetoothデバイスが検出されたときに発生するイベントです。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型

名前

説明

String

DeviceId

対象のBluetoothデバイスのBDアドレスが格納されます。

(BDアドレスの形式はMACアドレスと同じです)

String

Name

対象のBluetoothデバイスの名称が格納されます。

Number

ConnectableAsBluetoothClassic

Bluetooth Classicデバイスとして接続できるデバイスであれば$TRUEが、接続できなければ$FALSEが格納されます。

Number

ConnectableAsBluetoothLE

BLE(Bluetooth Low Energy)デバイスとして接続できるデバイスであれば$TRUEが、接続できなければ$FALSEが格納されます。

Number

HasRssi

RSSI値(Received Signal Strength Indication)を持つ場合は$TRUEが、持たない場合は$FALSEが格納されます。

BLEデバイスでも稀にRSSI値を持たないものがあります。

Number

Rssi

HasRssiが$TRUEの場合、RSSI値が格納されます。単位はdBmです。

HasRssiが$FALSEの場合、このオブジェクトは付加されません。

Number

HasTxPowerLevel

送信出力値を持つ場合は$TRUEが、持たない場合は$FALSEが格納されます。

Number

TxPowerLevel

HasTxPowerLevelが$TRUEの場合、送信出力値が格納されます。単位はdBmです。

HasTxPowerLevelが$FALSEの場合、このオブジェクトは付加されません。

Array

ServiceUuidList

アドバタイズされているサービス一覧が格納されます。

なお、アドバタイズされていないだけで使用できるサービスがある場合があります。

Array

ManufacturerSpecificDataList *1

メーカー固有の情報(Manufacturer Specific Data)が格納されます。

下記Recordの配列となります。

型 | 名前 | 説明
Number | CompanyId | メーカー固有のID
ByteArray | Data | Manufacturer Specific Dataのバイト列

Array

ServiceDataList *1

Service Dataの情報が格納されます。

下記Recordの配列となります。

型 | 名前 | 説明
String | uuid | サービスのUUID
ByteArray | Data | Service Dataのバイト列

BluetoothデバイスのスキャンについてはStartBluetoothScanningメソッドを参照してください。

同一のデバイスが何度も検出される場合があります。RSSI値の変化を見るために利用することができます。

変更履歴
*1　API version 20で追加されました。


Root.BluetoothScanFinishedイベント

Bluetoothデバイスのスキャンが終了した、あるいはCancelBluetoothScanningメソッドによりキャンセルされた時に発生するイベントです。

BluetoothデバイスのスキャンについてはStartBluetoothScanningメソッドを参照してください。


Root.BluetoothScanStartedイベント

StartBluetoothScanningメソッドによりBluetoothデバイスのスキャンを開始した時に発生するイベントです。


Root.Closeイベント

ルートウィンドウの右上のクローズボタンを押したときに発生します。

このイベントをイベントハンドラで捕らえるとウィンドウを閉じる動作はキャンセルされます。ウィンドウを閉じる場合は、イベントハンドラ内でRootオブジェクトを削除してください。

例

Function OnClose(e) {
    if (...) {
        //.Delete();
    }
}


Root.ExternalIntentイベント

API version 4

Root.ExternalIntentイベント変更履歴

iOSAndroidWindows

Biz/Browser HTで下記の条件を満たすインテントを受信した時に発生するイベントです。

・action = "jp.co.opst.bizsd.external.EXTERNAL_INTENT"*1 *2

・data = 規定なし (指定した場合、値や端末の環境によっては他のアプリも受信可能と表示されることがありますのでご注意下さい)

・category = "android.intent.category.DEFAULT"

Biz/Browserが起動していない状態でこのインテントを受信した場合、Biz/Browserの起動やCRSの実行、ロードなどは行われません。

また、このイベントはセキュリティレベルが0(最低)以外では発生しません。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Intent | extIntent | 受信したインテントです。詳細はIntentクラスを参照してください。 インテントの送信元アプリ内にてIntent.PutExtraメソッドを用いて データを格納した場合、Intent.GetExtraメソッドを用いることでデータの取得可能です。
変更履歴
*1　API Ver.6以前では、"jp.co.opst.bizai.external.EXTERNAL_INTENT"が使用可能です。
*2　API Ver.7以降でも、互換のため"jp.co.opst.bizai.external.EXTERNAL_INTENT"を使用可能です。


Root.ExternalMessageイベント

API version 4

Root.ExternalMessageイベント変更履歴

iOSAndroidWindows

外部デバイスや外部アプリケーションから何らかのメッセージが送信された時に発生します。*1

このイベントはセキュリティレベルが0(最低)以外では発生しません。

Android版
ExternalObject.getMessageHandlerメソッドで取得した
ハンドラに対しメッセージ(android.os.Messageインスタンス)を送信した際に発生します。

この場合、Eventオブジェクトには以下の子オブジェクトが付加されています。
型 | 名前 | 説明
Number | what | メッセージの種類を表します。 送信したMessageインスタンスのwhatフィールドと等価です。
Number | arg1 | 整数値のパラメータです。 送信したMessageインスタンスのarg1フィールドと等価です。
Number | arg2 | 整数値のパラメータです。 送信したMessageインスタンスのarg2フィールドと等価です。
ExternalObject | obj | 送信したMessageインスタンスのobjフィールドと等価です。 なお、objフィールドの値がnull値の場合、null参照を示すExternalObjectオブジェクトが付加されます。 null参照のオブジェクトか否かはExternalObject.IsNullRefプロパティを用いることで確認できます。
変更履歴
*1　プラットフォーム固有のメッセージに限定せず、より広義的なメッセージを受け取るためのイベントになりました。


Root.SmaPriPrinterConnectionChangedイベント

SmaPriPrinter.Connect、SmaPriPrinter.Disconnectメソッド、およびメニューの「プリンタ接続状態」によりサトー製プリンタとの接続状態が変わったときに発生します。

メニューの「プリンタ接続状態」についてはこちらを参照してください。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型

名前

説明

Number

State

プリンタの接続状態が格納されます。以下の値を取ります。

値 | 説明
3 | プリンタと接続しました。
4 | プリンタとの接続を切断しました。
5 | プリンタとの接続に失敗しました。

String

Message

接続に失敗した場合のエラーメッセージが格納されます。

Stateが5の場合に含まれます。


Root.SmaPriPrintFinishedイベント

SmaPri.PrintFormatメソッドによるフォーマット印刷に成功した場合に発生します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
String | JobName | 印刷ジョブ名が格納されます。 SmaPriInputItem.JobNameプロパティで指定した値になります。


Root.SmaPriPrintFailedイベント

SmaPri.PrintFormatメソッドによるフォーマット印刷に失敗した場合に発生します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
String | JobName | 印刷ジョブ名が格納されます。 SmaPriInputItem.JobNameプロパティで指定した値になります。
String | Message | エラーメッセージが格納されます。


Root.SmaPriPrintCommandFinishedイベント

SmaPri.SendCommandメソッドによる印字コマンドの送信に成功した場合に発生します。


Root.SmaPriPrintCommandFailedイベント

SmaPri.SendCommandメソッドによる印字コマンド送信に失敗した場合に発生します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
String | Message | エラーメッセージが格納されます。


Root.SmaPriPrintSendDataFinishedイベント

SmaPri.SendRawDataメソッドによるデータ送信に成功した場合に発生します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
String | RawData | Base64で表現した受信データのバイト列が格納されます。


Root.SmaPriPrintSendDataFailedイベント

SmaPri.SendRawDataメソッドによるデータ送信に失敗した場合に発生します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
String | Message | エラーメッセージが格納されます。


Root.WindowStateChangedイベント

ルートウィンドウの最大化、最小化など、状態に変化が起きたときに発生します。

Android版
Eventオブジェクトには以下の子オブジェクトが付加されています。

型

名前

説明

Number

state

以下の値が設定されます。

アクティビティ(android.app.Activityクラス)と、その状態遷移に関する詳細な情報はAndroid Developers(Android開発者向けサイト)のリファレンスマニュアルをご参照ください。

定数 | 値 | 説明
$RESTORE | 3 | Rootウィンドウのサイズが変化した時
$FRONT | 8 | $ACTIVITY_ON_RESUMEと同時に発生します
$BACK | 16 | $ACTIVITY_ON_PAUSEと同時に発生します
$ACTIVITY_ON_START | 33 | Biz/Browser HTが動作しているアクティビティの onStartメソッドが呼ばれた時
$ACTIVITY_ON_RESUME | 34 | Biz/Browser HTが動作しているアクティビティの onResumeメソッドが呼ばれた時
$ACTIVITY_ON_PAUSE | 35 | Biz/Browser HTが動作しているアクティビティの onPauseメソッドが呼ばれた時
$ACTIVITY_ON_STOP | 36 | Biz/Browser HTが動作しているアクティビティの onStopメソッドが呼ばれた時
$ACTIVITY_ON_RESTART | 37 | Biz/Browser HTが動作しているアクティビティの onRestartメソッドが呼ばれた時


Root.ExternalCallイベント

このイベントは互換性のために残されています。操作しても何も起きません。


Root.PowerStateChangedイベント

端末がスリープ状態から復帰したときに発生します。


Root.MemoryLimitExceededイベント

iOSAndroid

この機能はAPI version 6から廃止されました。


SYSオブジェクト

SYSオブジェクト変更履歴

Biz/Browserは、起動時にRootオブジェクトの下にSYSオブジェクトを構築します。アプリケーションのCRSがロードされる前に生成されるため、いつでも"//.SYS"で参照できます。

SYSオブジェクトは参照専用です。値の変更、Deleteメソッドによる削除、Appendメソッドによる下位オブジェクトの追加はできません。

以下にSYSオブジェクトのプロパティについて説明します。

名前

型

説明

OS

String

クライアントのOSを識別する文字列

OS_VERSION

Number

クライアントのOSのバージョン番号

Android版
OSのAPIレベルが取得されます。

CLIENT

String

クライアントのブラウザ名
具体的な値は下記リンク先を参照してください。
Android版

CLIENT_VERSION

Number

クライアントのブラウザのバージョン番号

ただし、CLIENT_VERSIONは2桁のマイナーバージョンを表現できません。バージョン番号が1.2.10の場合、CLIENT_VERSIONは1.29となります。

2桁のマイナーバージョンを正しく区別したい場合は、CLIENT_LONG_VERSIONをご使用ください。

CLIENT_LONG_VERSION *1

Number

クライアントのブラウザのバージョン番号

CLIENT_VERSIONと異なり、CLIENT_LONG_VERSIONは2桁のマイナーバージョンを区別できます。バージョン番号が1.2.10の場合、CLIENT_VERSIONは1.021となります。

PROXY

String

プロキシサーバのホスト名

PROXY_PORT

Number

プロキシサーバの接続ポート番号

SERVER

String

サーバのホスト名

SERVER_PORT

Number

サーバの接続ポート番号

USERNAME

String

（常に空欄です。過去との互換性のために残されています。）

APPROOT

String

（過去との互換性のために残されています）

HOSTNAME

String

クライアントのコンピュータ名

Android版
Android APIのBuild.HOSTの文字列が取得されます。

MODELNAME

String

メーカー名、機種名など（メーカー設定値）

PLATFORM

String

プラットフォーム種別

DEVICEID

String

機体固有のID

プラットフォーム毎に取得方法が異なるためご注意下さい。

また、取得できる値の一意性や不変性は保証していませんのでご注意下さい。

Android 10未満
端末に設定されているシリアル番号が取得できます。
このシリアル番号は原則変化しません。

Android 10
ユニークなIDが自動生成され、端末ストレージ内にファイルとして保存されます。
Android 10未満の端末で取得可能なシリアル番号とは異なるものですのでご注意下さい。
このIDは保存されたファイルの変更や削除、端末のファクトリーリセットなどを行わない限り変化しません。

なお、Biz/Browser HT(Android) 1.1.1以降を起動したことがある端末でAndroid 10未満のOSをAndroid 10以降にアップグレードした場合、Android 10未満の時に取得し保存されていた端末のシリアル番号を引き続き取得可能です。

Android 11以降
ユニークなIDが自動生成され、端末ストレージ内にファイルとして保存されます。
Android 10未満の端末で取得可能なシリアル番号とは異なるものですのでご注意下さい。
Android 10の場合と異なり、このIDはアプリをアンインストールすると変化します。

LoginParam

String

カスタムURLスキームにより渡されたログイン時パラメータが取得できます。

LANGUAGEID

Number

実行中のOSの言語ID(ロケールID・LCID)が取得できます。
この値を用いるとCRS中で動作言語を判断し、処理を分岐させることが可能になります。

使用例

var message = strf("OSは %1 です", //.SYS.OS);
var title = strf("%1 Ver.%2", //.SYS.CLIENT, //.SYS.CLIENT_VERSION);
MessageBox(message, title);

APPROOTプロパティについて

APPROOTプロパティは過去のBiz/Browserとの互換性のために残されています。このプロパティの使用はできるだけ避けてください。

サーバ上のリソースで、"/"として扱う位置を取得、設定します。このプロパティは例外的に値を変更できます。

例えば、"/APP1"が設定されている場合、相対パスでGet("Proc1")とすると、http://server-name/APP1/Proc1のURLでリクエストが送信されます。また、絶対パスでGet("/Proc1")とすると、http://server-name/Proc1のURLでリクエストが送信されます。

バージョン3.0以降では、実行中のCRSがプライマリセッション（ログインした時のプロトコル、サーバ、ポート）と同じプロトコル、サーバ、ポートによりダウンロードされており、かつAPPROOTプロパティが指定されている場合に限り、APPROOTプロパティを使ってURLを決定します。それ以外はGetメソッドの仕様に基いてURLが決定します。

なお、CARファイル内のURLもAPPROOTプロパティの影響を受けるため、APPROOTプロパティを設定するとほとんどの場合でCARファイルを意図したようにロードできなくなります。従ってAPPROOTの指定とCARファイルの利用は同時にはできません。

変更履歴
*1　API version 22から追加されました。


Root.OnException関数

CRS実行エンジンから直接呼び出される、特殊な関数です。

try...catchによりハンドリングされない例外が発生した場合、この関数が呼び出されます。

戻り値としてtrueをreturnした場合、CRSエンジンは停止せず処理を継続します。

true以外の値をreturnした場合、CRS実行エンジンは停止します。

詳細は「例外ハンドリング」−「グローバル例外ハンドラ」の項目を参照してください。


TextBoxクラス

Object |  |  |  |  |
 | NetObject |  |  |  |
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | EditObject
 |  |  |  |  | TextBox

1行の文字を入力可能なテキストボックスを表示するクラスです。

テキストボックスにはValueプロパティの値をFormatプロパティの指定に従ってフォーマットして表示します。

入力する際には、Format プロパティの指定は無効となりValueのデータ型に対応した形式で入力します。

画面表示例

データ型に応じた入力形式

TextBoxクラスはValueTypeに応じた入力をサポートするため、キーボードフォーカスを受けるとFormatプロパティの指定を無効として、データ型に対応した形式での入力を促します。

以下にValueType別の入力形式を示します。

1. String

Valueプロパティの値がそのまま表示され、入力します。

2. Date

入力開始時点でValueプロパティの値がどのような値となっているかにより、入力形式は変動します。

(1) Valueプロパティの値の時分秒がすべて00の場合

"YYYY/MM/DD"形式となる

(2) Valueプロパティの値の秒が00の場合

"YYYY/MM/DD HH24:MI"形式となる

(3) 上記以外の場合

"YYYY/MM/DD HH24:Mi:SS"形式となる

3. Number

Valueプロパティの値が小数点以下を含めて全桁表示され、入力します。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。

スケーリング時の注意点

特にありません


TextBoxプロパティ

API version 4

プロパティ

iOSAndroidWindows

TextBoxクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
HT(10) | AutoTab | CRW | boolean | $FALSE | 全桁入力で自動的にフォーカス移動
4 | Border | CR | boolean | $TRUE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | Format | CR | String |  | 書式指定文字列
4 | HorizontalAlign | CR | integer | $STD | 水平方向の位置合わせ
4 | InputMode | CR | integer |  | 入力可能な文字種の指定
4 | MaxLength | CR | integer |  | 入力可能な文字数
4 | Password | CR | boolean | $FALSE | ＊による入力文字のマスク
4 | Value | CRW | String Number Date |  | テキストボックスに表示する値
5 | VerticalAlign | CR | integer | $STD | 垂直方向の位置合わせ

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


TextBox.AutoTabプロパティ

$TRUEを設定すると、キーボードからの入力がFormatプロパティで指定した桁数に達したとき、またはMaxLengthプロパティの桁数に達したときに、次のタブ順のオブジェクトに自動的にフォーカスを移動します。


TextBox.HorizontalAlignプロパティ

水平方向の位置合わせを行います。$STDはデータ型がNumber型の場合は右寄せ、それ以外の場合は左寄せになります。

定数 | 値 | 説明
$STD | 0 | データ型により決定します
$LEFT | 1 | 左寄せ
$CENTER | 2 | 中央寄せ
$RIGHT | 3 | 右寄せ


TextBox.MaxLengthプロパティ

最大入力文字数を設定します。

ValueTypeがNumberの場合は符号、小数点を含みます。

最大値は3000です。


TextBox.Passwordプロパティ

入力した文字が＊表示されます。

定数 | 説明
$FALSE | ＊表示しない
$TRUE | ＊表示する

Android版
Passwordプロパティが$TRUEの場合、SIPModeプロパティの指定は無視されます(OS, SIPの制約のため)。


TextBox.Valueプロパティ

テキストボックスに表示する値です。ValueTypeに指定したデータ型の値を保持します。

スクリプトによる値の設定ではInputModeプロパティの影響は受けません。

画面上の入力値は即座には反映されません。詳細はValueプロパティが更新されるタイミングを参照してください。


VerticalAlignプロパティ

垂直方向の位置合わせを行います。$STDは上寄せになります。

定数 | 値 | 説明
$STD | 0 | $TOPと同じ
$TOP | 1 | 上寄せ
$CENTER | 2 | 中央寄せ
$BOTTOM | 3 | 下寄せ


TextBoxメソッド

API version 4

メソッド

iOSAndroidWindows

TextBoxクラスには以下のメソッドが定義されています。

API | 名前 | 説明
HT(12) | GetSelection | カーソル位置、選択位置を取得します
HT(12) | SetSelection | カーソル位置、選択位置を設定します
4 | SetMargins | 左右マージンを設定します。

クラス概要

基本クラスのメソッド


TextBox.GetSelectionメソッド

説明

現在のカーソルの位置、選択範囲を取得します。

呼出形式

var n = TextBox1.GetSelection( [ lengthMode ] )

戻り値

カーソル位置または選択バイト数

引数

boolean lengthMode

&取得する値

$FALSE：カーソル位置を取得します

$TRUE：選択されているバイト数（UString時またはMobile互換モードがOFFの時は文字数）を取得します

省略時は$FALSEです。

例外

なし

使用例

var pos = TextBox1.GetSelection();

関連項目

SetSelectionメソッド


TextBox.SetSelectionメソッド

説明

現在のカーソルの位置、選択範囲を設定します。

呼出形式

TextBox1.SetSelection( pos [, length ] )

戻り値

なし

引数

integer pos

0を先頭とするカーソル位置を指定します。

範囲外を指定した場合、範囲内に補正されます。

integer length

選択文字長を指定します。省略時は0（無選択）となります。

特殊な指定

SetSelection(0, -1) 全選択

SetSelection(-1) 選択解除

例外

なし

使用例

TextBox1.SetSelection(1, 4);

関連項目

GetSelectionメソッド


TextBox.SetMarginsメソッド

説明

左右マージンを設定します。

初期状態では左右マージンはOS標準の位置となります。

マージンを設定する場合、左右マージンの合計値がTextBoxの文字表示域に収まるように指定してください。

呼出形式

TextBox.SetMargins( leftMargin, rightMargin )

戻り値

なし

引数

integer leftMargin

左マージンを0〜32767の間で指定します。

integer rightMargin

右マージンを0〜32767の間で指定します。

例外

FUNC-4

引数が不正です

使用例

TextBox1.SetMargins(2, 2);

関連項目


TextBoxイベント

API version 4

イベント

iOSAndroidWindows

TextBoxクラスには以下のイベントが定義されています。

API | 名前 | 説明
HT(10) | Clicked | タップされたときに発生します
4 | Touch | テキストボックスに入力した値が確定したとき発生します

クラス概要

基本クラスのイベント


TextBox.Clickedイベント

タップされたときに発生します。
フォーカスが当たっている状態でタップした場合のみ発生します。


TextBox.MaxlengthReachedイベント

このイベントは互換性のために残されています。操作しても何も起きません。


TextBox.Touchイベント

画面からの入力操作によりテキストボックスの値が確定したときに発生するイベントです。

Touchイベントは、値の変更がEnterキーやファンクションキーの押下により確定したとき、またはフォーカスを失って確定したときに発生します。キー入力1文字単位では発生しません。


Extension3パッケージ

Biz/Browser Ver3.0で追加された拡張GUIパッケージです。

クラス

API | 名前 | 説明
4 | DateEdit | 日付入力専用のテキストボックスを表示します
4 | NumberEdit | 数値入力専用のテキストボックスを表示します
4 | TabForm | TabFrameクラスの各タブを定義します
4 | TabFrame | タブコントロールを表示します


DateEditクラス

Object |  |  |  |  |
 | NetObject |  |  |  |
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | EditObject
 |  |  |  |  | DateEdit

日付入力専用のテキストボックスを表示するクラスです。
DateEditではキーボード入力のほか、日付の入力をサポートする日付入力ポップアップ機能があります。

画面表示例

Formatプロパティに時刻を含むフォーマットを指定した場合、日付入力ポップアップに日付と時刻の切り替えスイッチが表示されます。

キーボード操作

このオブジェクトはキーボード操作に対応しています。下記のキー操作を行うことができます。

キー | 説明
0～9 | 数字1桁を入力
SPACE | 入力ポップアップを表示
BACK | 1文字削除
RETURN | 入力中の値を確定
UP | 現在カーソルがある位置の数字をインクリメント(+1)
LEFT | カーソル位置を一つ左へ
BOTTOM | 現在カーソルがある位置の数字をデクリメント(-1)
RIGHT | カーソル位置を一つ右へ

日付入力ポップアップの操作

DateEdit上でのタップ操作で日付入力ポップアップを表示します。

日付または時刻の値を変更するとDateEditに値が反映され、「閉じる」ボタンを押すか、ポップアップ外をタップすると日付入力ポップアップを閉じて値が確定します。

・「今日」ボタンを押すと、現在の日付および時刻がセットされます。

・「クリア」ボタンを押すと、入力中の日付および時刻がクリアされます。

Formatプロパティの指定により入力可能な日付に制約がある場合、日付入力ポップアップに表示できる日付もその範囲内となります。例えば、年が2桁の場合は1950年から2049年が表示範囲となります。

フォーマット

Formatプロパティを指定しない場合は、"YYYY/MM/DD"が指定されたものとして動作します。

西暦は4桁から2桁の範囲で指定でき、それぞれ以下の範囲の入力が可能です。

2桁：1950年〜2049年

0〜49は2000年から2049年、50〜99は1950年から1999年と解釈されます。

3桁：1900年〜2099年

0〜499は2000年から2499年、500〜999は1500年から1999年と解釈されます。

ただし、Date型の表現範囲内となる1900年から2099年の範囲が有効です。

4桁：1900年〜2099年

入力値がそのまま西暦として解釈されます。

ただし、Date型の表現範囲内となる1900年から2099年の範囲が有効です。

年をFormatプロパティの複数の箇所に指定することも可能ですが（"YY/MM/DD YY"など）、"YY(YYYY)"など桁数の異なる指定はできません。

年には和暦を使用できます。和暦は必ず暦（"WR"）と年（"WYY"）を組み合わせて使用します。

西暦と組み合わせて使用する場合（"WRWYY(YYYY)"など）は、入力値の解釈は西暦または和暦の入力を行った方を優先して解釈します。年以外の要素を入力した場合は、画面上で左側に指定されているほうを優先的に解釈します。

非表示要素の補完

Formatプロパティで入力項目として指定されていない項目がある場合（年月だけを入力項目とした"YY/MM"など）は、不足部分は自動的に補完されます。Valueプロパティがスクリプトで事前に設定されている場合は、その日付時刻で補完されます。設定されていない場合は、年月は今日の値、日は1日、時刻は00:00:00で補完されます。

補完された日付が不正な日付となる場合は、正当な日付となるように以下のルールで補正が行われます。

・補正される項目は、入力項目よりも単位の小さい部分だけです。

例えば、月が入力項目の場合は年は補正されません。日が入力項目の場合は、年と月は補正されません。

・補正はより小さい単位を優先して行われます。

例えば、スクリプトで

Value = "2000/2/29";
Format = "YYYY";

が指定されている場合は、月と日が補正候補となります。

この状態で2005を入力すると、月と日がValueプロパティから補完されて2005/2/29となりますが、不正な日付です。

月の補正では2005/3/29、日の補正では2005/2/28となりますが、このような場合はより単位の小さい日の補正（2005/2/28）により正当な日付に変換されます。

・補正はできるだけ入力値に近い日付になるように行われます。

例えば、スクリプトで

Value = "1989/1/5";
Format = "WRWYY\"年 \"MM\"月\"";

が指定されている場合は、"昭和64年01月"となります。

この状態で平成1年と入力すると、平成1年でもっと近い日付である1989/1/8に補正されます。

また、

Value = "2005/3/31";
Format = "YY/MM";

が指定されているの場合は、4、6、9、11月の入力では30日に、2月の入力では28日または29日に補正されます。

その他の制限事項

Formatプロパティに以下の指定を行うことはできません。

・TZの指定

タイムゾーンを表示するTZの指定を行うことはできません。

・uの指定

時刻をUTCで表示するオプションuを指定することはできません。常にローカル時刻となります。

・日付時刻の要素を含まない指定

日付時刻の要素を含まない場合（"/DAY,."など）は、PKG-37例外が発生します。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。

スケーリング時の注意点

◆ 日付入力ポップアップはスケーリングの対象外です


DateEditプロパティ

API version 4

プロパティ

iOSAndroidWindows

DateEditクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
HT(10) | AutoTab | CRW | boolean | $FALSE | 全桁の入力で自動的にフォーカス移動
4 | Border | CR | boolean | $TRUE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | EditText | CR | String |  | 画面に表示されている文字列
4 | Format | CR | String |  | 書式指定文字列
4 | HorizontalAlign | CR | integer | $STD | 水平方向の位置合わせ
HT(10) | InvalidDate | R | boolean | $FALSE | 不正日付の確認
26 | PopupBorder | CR | boolean | $FALSE | 日付入力ポップアップの枠の表示
25 | PopupScale | CRW | Number | 1.0 | 日付入力ポップアップの表示サイズの拡大/縮小率
HT(10) | ShowFormat | CR | boolean | $FALSE | Formatプロパティの指定内容を表示
HT(10) | UndecidedStyle | CR | integer | $STD | 無効な値を入力したときの動作
HT(10) | UseHelper | CR | integer | $STD | 入力ポップアップを自動的に起動するかどうか
4 | Value | CRW | Date |  | DateEditオブジェクトに表示する値
5 | VerticalAlign | CR | integer | $STD | 垂直方向の位置合わせ

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


DateEdit.AutoTabプロパティ

$TRUEを設定すると、キーボードからの入力が最大桁数に達したときに、次のタブ順のオブジェクトに自動的にフォーカスを移動します。


DateEdit.EditTextプロパティ

画面に表示されている文字列（Formatプロパティによるフォーマット適用後の文字列）をそのまま取得します。


DateEdit.Formatプロパティ

編集文字列のフォーマットを指定します。

指定文字 | 例 | 説明
Y | "YYYY,MM,DD" | 西暦の年を表示します。Yを記述した数は西暦の表示桁数を示します。
WS | "WSWYY.MM.DD" | 和暦の年号を省略形（M ,T, S, H...）で表示します。
WR | "WRWYY\"年\"MM\"月\"DD\"日\"" | 和暦の年号を（明治、大正、昭和、平成..）表示します。
WYY | "WRWYY\"年\"MM\"月\"DD\"日\"" | 和暦の年を表示します。
MM | "YYYY/MM" | 月（1〜12）を表示します。
MONTH | "MONTH DD YYYY" | 月の名前（JANUARY...）を表示します。9桁で表示されます。
month | "month DD YYYY" | キャピタライズされた月の名前（January...）を表示します。9桁で表示されます。
MON | "dy, DD MON YYYY" | 月の名前の省略形（JAN...）を表示します。
mon | "dy, DD mon YYYY" | キャピタライズされた月の名前の省略形（Jan...）を表示します。
DD | "YY/MM/DD" | 日（1〜31）を表示します。
DAY | "YY/MM/DD DAY" | 曜日（SUNDAY...）を表示します。
day | "YY/MM/DD day" | キャピタライズされた曜日（Sunday...）を表示します。
DY | "YY/MM/DD DY" | 曜日の省略形（SUN...）を表示します。
dy | "dy, DD mon YYYY" | キャピタライズされた曜日の省略形（Sun...）を表示します。
DJ | "YY/MM/DD DJ" | 曜日のローカル形（月、火...）を表示します。
HH24 | "HH24:MI:SS" | 24.時間制の時（0〜23）を表示します。
HH | "HH:MI:SS" | 24時間制の時（0〜23）を表示します。 （HH24と同じです。12時間制の表示はできません。）
MI | "HH:MI:SS" | 分（0〜59）を表示します。
SS | "HH:MI:SS" | 秒（0〜59）を表示します。
-/,.;: | "HH:MI:SS" | 指定の文字を指定した位置に表示します。

※ WS、WR、WYYは和暦が有効な地域でのみ使用可能です。

※ WS、WR、WYYによって和暦の年、年号を利用する場合は、Root.SetWarekiメソッドであらかじめ年号情報を設定する必要があります。明治から平成は自動的に設定されています。

※ DAYなどの曜日を表す指定や、-/,.;:などを単独で指定することはできません。これらは、必ず入力可能なフォーマットと組み合わせで使用してください。


HorizontalAlignプロパティ

水平方向の位置合わせを行います。$STDは左寄せになります。

定数 | 値 | 説明
$STD | 0 | $LEFTと同じ
$LEFT | 1 | 左寄せ
$CENTER | 2 | 中央寄せ
$RIGHT | 3 | 右寄せ


DateEdit.InvalidDateプロパティ

画面から入力した日付が不正な場合に$TRUEとなります。正しい日付または未入力の場合は$FALSEとなります。

このプロパティとValueプロパティを確認することにより、どのような入力が行われたかを知ることができます。

Value | InvalidDate | 説明
0より大きい | $FALSE | 正しく日付が入力されている
0より大きい | $TRUE | 不正な日付が入力されている
0 | $FALSE | 何も入力されていない
0 | $TRUE | 不正な日付が入力されている

このプロパティは、画面より入力した値が確定した時点でその値により設定されます。

スクリプトからValueプロパティの書き換えを行ったときは設定されません。


DateEdit.ShowFormatプロパティ

Formatプロパティの指定内容を表示して、何を入力すればよいか分かりやすくします。

日付要素（YYYY、MMなど）を_で表示します。

例

Format = "WRWYY\"年\"MM\"月\"DD\"日\""
「＿＿__年__月__日」と表示します。


DateEdit.PopupBorderプロパティ

$TRUEを設定すると日付入力ポップアップの枠を表示します。


DateEdit.PopupScaleプロパティ

日付入力ポップアップの表示サイズの拡大率を指定します。

最大値はありませんが、実際に拡大されるのは画面に収まるサイズまでとなります（画面幅の95%、画面高さの90%）。

最小値は0.5です。0.5未満の値を指定した場合は0.5になります。

デフォルト値は1.0です。


DateEdit.UndecidedStyleプロパティ

日付としては無効な値を入力して確定させたときの動作を設定します。

定数 | 値 | 説明
$STD | 0 | 何もしない
$BgColor | 1 | 背景を赤色で表示
$FgColor | 2 | 文字を赤色で表示
$Reverse | 3 | 背景と文字の色を反転
$Clear | 4 | 値をクリアする


DateEdit.UseHelperプロパティ

オブジェクトから表示可能な入力ポップアップをタッチ操作などで起動するかどうかを選択します。

定数 | 値 | 説明
$STD | 0 | 起動するが、Mobile互換モードなら起動しない
$POPUP_OFF | 1 | モードに関わらず起動しない
$POPUP_ON | 2 | モードに関わらず起動する


DateEdit.Valueプロパティ

DateEditオブジェクトに表示する値です。Date型の値を保持します。

画面上の入力値は即座には反映されません。詳細はValueプロパティが更新されるタイミングを参照してください。


DateEditメソッド

API version 4

メソッド

iOSAndroidWindows

DateEditクラスには以下のメソッドが定義されています。

API | 名前 | 説明
HT(10) | ShowHelper | 入力ポップアップを表示します。
4 | SetMargins | 左右マージンを設定します。

クラス概要

基本クラスのメソッド


DateEdit.SetMarginsメソッド

説明

左右マージンを設定します。

初期状態では左右マージンはOS標準の位置となります。

マージンを設定する場合、左右マージンの合計値がDateEditの文字表示域に収まるように指定してください。

呼出形式

DateEdit.SetMargins( leftMargin, rightMargin )

戻り値

なし

引数

integer leftMargin

左マージンを0〜32767の間で指定します。

integer rightMargin

右マージンを0〜32767の間で指定します。

例外

FUNC-4

引数が不正です

使用例

DateEdit1.SetMargins(2, 2);

関連項目


DateEdit.ShowHelperメソッド

説明

入力ポップアップを表示します。

表示するポップアップは、DateEditをタップしたときに表示されるものと同じです。

呼出形式

DateEdit.ShowHelper()

戻り値

なし

引数

なし

例外

なし

使用例

DateEdit.ShowHelper();

関連項目


DateEditイベント

API version 4

イベント

iOSAndroidWindows

DateEditクラスには以下のイベントが定義されています。

API | 名前 | 説明
HT(10) | Clicked | タップされたときに発生します
4 | Touch | DateEditに入力した値が確定したときに発生します

クラス概要

基本クラスのイベント


DateEdit.Clickedイベント

タップされたときに発生します。


DateEdit.Touchイベント

画面からの入力操作により値が変化したときに発生するイベントです。

Touchイベントは、値の変更がEnterキーやファンクションキーの押下により確定したとき、またはフォーカスを失って確定したときに発生します。キー入力1文字単位では発生しません。


NumberEditクラス

Object |  |  |  |  |
 | NetObject |  |  |  |
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | EditObject
 |  |  |  |  | NumberEdit

数値入力専用のテキストボックスを表示するクラスです。
NumberEditではキーボード入力のほか、数値の入力をサポートするタッチ操作できるテンキー機能があります。

Mobile互換モード
NumberEditをタップしたりフォーカスを受けたりしたとき通常テンキーのポップアップが起動しますが、Mobile互換モードでは起動しません。
ただし、スペースキーの押下、およびShowHelperメソッドの呼び出しでは起動できます。

画面表示例

キーボード操作

このオブジェクトはキーボード操作に対応しています。下記のキー操作を行うことができます。

キー | 説明
0～9 | 数字1桁を入力
SPACE | 入力ポップアップを表示
BACK | 1文字削除
RETURN | 入力中の値を確定
- | ±符号の反転
. | '.'を入力

テンキー

NumberEdit上でのタップ操作でテンキーが起動します。

符号、小数点を除く15桁まで入力できます。

・「<X」ボタンは入力中の数値を1桁削除します。また、長押しするとゼロクリアされます。

・「+/-」ボタンは入力中の数値の符号を反転させます。

・「確定」ボタンは入力中の数値を確定しテンキーを閉じます。また、ポップアップ外のタップでも確定しテンキーを閉じます。

・「クリア」ボタンはゼロクリアします。

テンキーの利用上の注意

Formatプロパティにて編集文字列のフォーマットを指定した場合も簡易電卓にはFormatプロパティの内容は反映されません。

そのため、簡易電卓上では設定されたフォーマットに沿わない入力が可能ですが、簡易電卓上の値がNumberEditへ反映された際に設定されたフォーマットに変更されるため電卓上の入力値とは異なる値が表示される場合があります。

(例)

フォーマット：Format = "999,990";　※小数点以下の入力不可

簡易電卓上での入力：1.05

NumberEditに反映された場合の表示：105

入力桁数制限

入力桁数の制限には、FormatプロパティとMaxLengthプロパティの指定があります。

Formatプロパティで"999."や".00"などの小数点や整数の桁数が未設定の場合は、MaxLengthプロパティを元に入力制限がかかります。例えばMaxLengthプロパティが初期値（15）のときは、"999."の場合は小数点以下の桁は12桁（15-3）、".00"の場合は整数の桁は13桁（15-2）となります。

Formatプロパティの桁数以下の値がMaxLengthプロパティに設定されていた場合は、Formatプロパティの桁数が優先されます。

Formatプロパティでどちらの桁数も指定がなかった場合は、全体の長さがMaxLengthプロパティを超えない制限がかかります。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。

スケーリング時の注意点

◆ テンキーはスケーリングの対象外です


NumberEditプロパティ

API version 4

プロパティ

iOSAndroidWindows

NumberEditクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
HT(10) | AutoTab | CRW | boolean | $FALSE | 全桁の入力で自動的にフォーカス移動
4 | Border | CR | boolean | $TRUE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | Format | CR | String |  | 書式指定文字列
4 | HorizontalAlign | CR | integer | $STD | 水平方向の位置合わせ
4 | IsNull | CRW | boolean |  | Valueプロパティが0のときの判別
4 | MaxLength | CR | integer | 15 | 入力可能な文字数
26 | PopupBorder | CR | boolean | $FALSE | テンキーの枠の表示
25 | PopupScale | CRW | Number | 1.0 | テンキーの表示サイズの拡大/縮小率
HT(10) | UseHelper | CR | integer | $STD | 入力ポップアップを自動的に起動するかどうか
4 | Value | CRW | Number | 0 | NumberEditオブジェクトに表示する値
5 | VerticalAlign | CR | integer | $STD | 垂直方向の位置合わせ

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


NumberEdit.AutoTabプロパティ

$TRUEを設定すると、キーボードからの入力がFormatプロパティで指定した桁数に達したとき、またはMaxLengthプロパティの桁数に達したときに、次のタブ順のオブジェクトに自動的にフォーカスを移動します。


NumberEdit.Formatプロパティ

編集文字列のフォーマットを指定します。

指定文字 | 例 | 説明
@ | "\"最大\"@" | デフォルトの書式で指定位置に表示します。
"TEXT" | "9990\"円\"" | ""で括った文字を指定位置に表示します。数字の並びを区切る位置には指定できません。
9 | "999" | 9を記述した数は桁数を示し、先行0は削除されます。小数点以下に指定した場合桁数だけを意味し、ゼロサプレスは行われません。
0 | "0999" "9990" | 先行0は0となります。
$ | "$9990" | 先頭に$マークを付加します。
MI | "999MI" "MI999" | 負数の場合に、指定位置（右か左）にマイナス記号（-）を表示します。
S | "S9990" "9990S" | 指定位置（右か左）に符号を表示します。
D または .（ピリオド） | "99D99" "99.99" | 指定の位置に小数点を表示します。小数点以下の桁数を指定しない場合は有効精度の範囲内で最後の数字までを表示します。
L | "L9990" "9990L" | 指定位置（右か左）にローカル通貨記号を表示します。
,（カンマ） | "999,990" | 3桁ごとにカンマを表示します。
" "(スペース) | " 99" | スペースを記述した数は桁数を示し、先行0は空白文字（スペース）に置き換えられます。小数点以下に指定した場合は無効で意味を持ちません。
N | "990N" | 空のデータは表示しません。


NumberEdit.HorizontalAlignプロパティ

水平方向の位置合わせを行います。$STDは右寄せになります。

定数 | 値 | 説明
$STD | 0 | $RIGHTと同じ
$LEFT | 1 | 左寄せ
$CENTER | 2 | 中央寄せ
$RIGHT | 3 | 右寄せ


NumberEdit.IsNullプロパティ

Formatプロパティに空のデータは表示しないフォーマット（N）を指定されていてValueプロパティが0のときに、入力した0なのか、Deleteキーでクリアされて0なのかを判別するために使用します。

プロパティを参照したときは、以下の値になります。

値 | 説明
$TRUE | Deleteキーによりクリアされた状態です
$FALSE | 0が入力された状態です

プロパティに値を設定したときは、以下の動作になります。

値 | 説明
$TRUE | 0を表示せず空白にします
$FALSE | 0を表示します

例）

NumberEdit num1 {
    Format = "990N";
    Function OnTouch(e) {
        if (Value == 0 && IsNull == $TRUE) {
            MessageBox("何か入力してください");
        }
    }
}
Button btn {
    Title="クリア";
    Function OnTouch(e) {
        ^.num1.IsNull = $TRUE;
    }
}

Formatプロパティに空のデータは表示しないフォーマット（N）が指定されていない場合は、このプロパティに$TRUEを設定しても空白になることはありません。また画面操作があったときは$FALSEになります。


NumberEdit.MaxLengthプロパティ

最大入力文字数を設定します。小数点、符号は含みません。

Formatプロパティが設定された場合は、Formatプロパティの桁数が優先されます。


NumberEdit.PopupBorderプロパティ

$TRUEを設定するとテンキーの枠を表示します。


NumberEdit.PopupScaleプロパティ

テンキーの表示サイズの拡大率を指定します。

最大値はありませんが、実際に拡大されるのは画面に収まるサイズまでとなります（画面幅の95%、画面高さの90%）。

最小値は0.5です。0.5未満の値を指定した場合は0.5になります。

デフォルト値は1.0です。


NumberEdit.UseHelperプロパティ

オブジェクトから表示可能な入力ポップアップをタッチ操作などで起動するかどうかを選択します。

定数 | 値 | 説明
$STD | 0 | 起動するが、Mobile互換モードなら起動しない
$POPUP_OFF | 1 | モードに関わらず起動しない
$POPUP_OFF | 2 | モードに関わらず起動する


NumberEdit.Valueプロパティ

NumberEditオブジェクトに表示する値です。Number型の値を保持します。

画面上の入力値は即座には反映されません。詳細はValueプロパティが更新されるタイミングを参照してください。


NumberEditメソッド

API version 4

メソッド

iOSAndroidWindows

NumberEditクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | SetMargins | 左右マージンを設定します。
4 | ShowHelper | 入力ポップアップを表示します。

クラス概要

基本クラスのメソッド


NumberEdit.SetMarginsメソッド

説明

左右マージンを設定します。

初期状態では左右マージンはOS標準の位置となります。

マージンを設定する場合、左右マージンの合計値がNumberEditの文字表示域に収まるように指定してください。

呼出形式

NumberEdit.SetMargins( leftMargin, rightMargin )

戻り値

なし

引数

integer leftMargin

左マージンを0〜32767の間で指定します。

integer rightMargin

右マージンを0〜32767の間で指定します。

例外

FUNC-4

引数が不正です

使用例

NumberEdit1.SetMargins(2, 2);

関連項目


NumberEdit.ShowHelperメソッド

説明

入力ポップアップを表示します。

表示するポップアップは、NumberEditをタップしたときに表示されるものと同じです。

呼出形式

NumberEdit.ShowHelper()

戻り値

なし

引数

なし

例外

なし

使用例

NumberEdit1.ShowHelper();

関連項目


NumberEditイベント

API version 4

イベント

iOSAndroidWindows

NumberEditクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Clicked | タップされたときに発生します
4 | Touch | NumberEditに入力した値が確定したときに発生します

クラス概要

基本クラスのイベント


NumberEdit.Clickedイベント

タップされたときに発生します。


NumberEdit.Touchイベント

画面からの入力操作により値が変化したときに発生するイベントです。

Touchイベントは、値の変更がEnterキーやファンクションキーの押下により確定したとき、またはフォーカスを失って確定したときに発生します。キー入力1文字単位では発生しません。

Formatプロパティに空のデータは表示しないフォーマット（N）を指定した場合に、空白から0を入力したときや、0を表示中にDeleteキーで空白にしたときには、値の変化はありませんがTouchイベントの発生条件になります。


TabFormクラス

Object |  |  |  |  |
 | NetObject |  |  |  |
 |  | DisplayObject
 |  |  | ContainerObject
 |  |  |  | Form
 |  |  |  |  | TabForm

TabFrameクラスの各タブを定義するクラスです。必ずTabFrameクラスの子オブジェクトとして利用します。

TabFormクラスはFormクラスの機能を継承しているため、下位にオブジェクトを配置できます。下位のオブジェクトは自分が所属するTabFormオブジェクトの領域を超えて表示されることはなく、TabFormオブジェクトの大きさでクリッピングされます。

画面表示例

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。

スケーリング時の注意点

◆ TabFormはTabFrameの大きさにより自動的にサイズが決定されますが、TabFrameに生じる拡大縮小誤差補正のため更にサイズに補正が行われます。具体的には拡大時は理論値よりサイズが大きくなります。


TabFormプロパティ

API version 4

プロパティ

iOSAndroidWindows

TabFormクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Height | R | integer |  | 垂直方向の表示サイズ
4 | Selected | CRW | boolean |  | 選択状態
HT(10) | Title | CRW | String |  | タブ部分に表示するタイトル
4 | Width | R | integer |  | 水平方向の表示サイズ
4 | X | R | integer |  | 水平方向の表示位置
4 | Y | R | integer |  | 垂直方向の表示位置

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

※ FormクラスのHorizontalScale、VerticalScale、FontScaleプロパティはこのクラスでは継承されません。これらの機能を使用したい場合は、TabForm内にFormを配置してください。

クラス概要

基本クラスのプロパティ


TabForm.Heightプロパティ

垂直方向の表示サイズを示します。

このプロパティは読み取り専用です。値の変更はできません。


TabForm.Selectedプロパティ

タブが選択されてTabFormオブジェクトが表示されているかどうかを表します。

タブが選択されている場合は$TRUE、それ以外は$FALSEになります。


TabForm.Titleプロパティ

タブ部分に表示する値です。詳細はTabFrameクラスを参照ください。


TabForm.Widthプロパティ

水平方向の表示サイズを示します。

このプロパティは読み取り専用です。値の変更はできません。


TabForm.Xプロパティ

水平方向の表示位置を示します。

このプロパティは読み取り専用です。値の変更はできません。


TabForm.Yプロパティ

垂直方向の表示位置を示します。

このプロパティは読み取り専用です。値の変更はできません。


TabFormメソッド

API version 4

メソッド

iOSAndroidWindows

TabFormクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


TabFormイベント

API version 4

イベント

iOSAndroidWindows

TabFormクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


TabFrameクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | ContainerObject
 |  |  |  | TabFrame

タブコントロールを表示するクラスです。

TabFrameクラスはTabFormクラスと協調して動作します。

TabFrameオブジェクトの下位に定められた構造でTabFormクラスまたはその派生クラスのオブジェクトを配置する必要があります。

TabFormオブジェクトは自分が所属するTabFrameオブジェクトの領域を超えて表示されることはなく、TabFrameオブジェクトの大きさでクリッピングされます。

TabFrameクラスのタブ部分は表示されません。

Mobile互換モード
タブの代わりに、タブの現在位置を示す「マーカー」と、現在表示されているTabFormオブジェクトのTitleプロパティの値を示す「タイトル」の2つのオーバーレイ表示が、TabFormの中の表示の上に重なって追加されます。
このオーバーレイ表示はタッチ操作を捕捉せず、タッチ操作は現在表示されているTabFormまたはTabForm上のオブジェクトに伝わります。例えば、ボタンの上にオーバーレイ表示がある場合でも、そのボタンをタップすることができます。
オーバーレイ表示は、TabHeightプロパティ、TabStyleプロパティで表示方法を制御することができます。

（表示例）

オブジェクトの構造

画面表示例

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。

スケーリング時の注意点

◆ 特にありません。


TabFrameプロパティ

API version 4

プロパティ

iOSAndroidWindows

TabFrameクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
HT(10) | Arrangement | CR | integer | $STD | 互換性のために残されています。動作しません。
4 | BgColor | CRW | integer | $STD | 背景の色
4 | Border | CR | boolean | $FALSE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
HT(10) | FontFace | CR | integer | $STD | 互換性のために残されています。動作しません。
HT(10) | FontKind | CR | integer | $STD | 互換性のために残されています。動作しません。
HT(10) | FontSize | CR | integer | 10 | 互換性のために残されています。動作しません。
HT(10) | TabHeight | CRW | integer |  | タブの高さ
HT(10) | TabPosition | CR | integer | $STD | 互換性のために残されています。動作しません。
HT(10) | TabStyle | CR | integer | $FLAT | タブの表示スタイル
HT(10) | TabWidth | CR | integer |  | 互換性のために残されています。動作しません。
5 | UsePageTurning | CR | integer | TabFrame.TurningNone | ジェスチャによるタブ切り替え
HT(10) | UseTapAndHold | CRW | boolean | $FALSE | 互換性のために残されています。動作しません。
4 | Value | CRW | integer |  | 選択位置

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


TabFrame.Arrangementプロパティ

このプロパティは互換性のために残されています。操作しても何も起きません。


TabFrame.TabHeightプロパティ

このプロパティはMobile互換モードで動作させている場合のみ有効です。

Mobile互換モード
タブを示す、オーバーレイ表示全体の高さを指定します。


TabFrame.TabPositionプロパティ

このプロパティは互換性のために残されています。操作しても何も起きません。


TabFrame.TabStyleプロパティ

このプロパティはMobile互換モードで動作させている場合のみ有効です。

Mobile互換モード
タブを示す、オーバーレイ表示の表示スタイルを設定します。

定数 | 値 | 動作
$FLAT | 0 | マーカーとタイトルを表示
$NONE | 1 | 何も表示しない
$TITLEONLY | 10 | タイトルのみ表示


TabFrame.TabWidthプロパティ

このプロパティは互換性のために残されています。操作しても何も起きません。


TabFrame.UsePageTurningプロパティ

ジェスチャ操作によるタブの切り替えモードを設定します。

定数 | 値 | 説明
TabFrame.TurningNone | 0 | ジェスチャ操作によるタブの切り替えを行いません
TabFrame.TurningHorz | 1 | 水平方向へのスクロール(スワイプ)操作でタブを切り替えます
TabFrame.TurningVert | 2 | 垂直方向へのスクロール(スワイプ)操作でタブを切り替えます


TabFrame.Valueプロパティ

現在表示しているTabFormオブジェクトの番号です。

すべてのTabFormオブジェクトが非表示の場合は-1、それ以外は0以上になります。

Valueプロパティを変更すると表示されるTabFormオブジェクトも変化しますが、非表示のTabFormオブジェクトは選択できません。


TabFrameメソッド

API version 4

メソッド

iOSAndroidWindows

TabFrameクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


TabFrameイベント

API version 4

イベント

iOSAndroidWindows

TabFrameクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Clicked | 発生しません
4 | RClicked | 発生しません

クラス概要

基本クラスのイベント


Extension4パッケージ

Biz/Browser Ver4.0で追加された拡張GUIパッケージです

クラス

API | 名前 | 説明
4 | GroupBox | グループボックスを表示します
4 | Image | 画像を保持します
4 | ImageButton | イメージボタンを表示します
4 | ImageLabel | イメージラベルを表示します
4 | ImageList | 複数の画像を保持するイメージリストを定義します
HT(10) | MaskEdit | マスクエディットを表示します

FlexView関連クラス

API | 名前 | 説明
4 | FlexButton | FlexViewクラスのボタンを定義します
4 | FlexButtonCell | FlexButtonクラスの各セルへのアクセッサです
4 | FlexCell | フレックスビューのアクセッサクラスの基底クラスです
4 | FlexCheckButton | FlexViewクラスのチェックボックスを定義します
4 | FlexCheckButtonCell | FlexCheckButtonクラスの各セルへのアクセッサです
4 | FlexColumnSet | FlexViewクラスの列の表示方法を定義するクラスです
4 | FlexData | フレックスビューのデータを持つ画面表示クラスの基底クラスです
4 | FlexGroupHeader | FlexViewクラスのグループヘッダを定義します
4 | FlexGroupHeaderCell | FlexGroupHeaderクラスの各セルへのアクセッサです
4 | FlexHeader | FlexViewクラスのヘッダを定義します
4 | FlexHeaderCell | FlexHeaderクラスの各セルへのアクセッサです
4 | FlexIndentLabel | FlexViewクラスのインデントラベルを定義します
4 | FlexIndentLabelCell | FlexIndentLabelクラスの各セルへのアクセッサです
4 | FlexItem | フレックスビューの画面表示クラスの基底クラスです
4 | FlexLabel | FlexViewクラスのラベルを定義します
4 | FlexLabelCell | FlexLabelクラスの各セルへのアクセッサです
4 | FlexListBox | FlexViewクラスのリストボックスを定義します
4 | FlexListBoxCell | FlexListBoxクラスの各セルへのアクセッサです
4 | FlexRecord | FlexViewクラスの行を定義します
4 | FlexRow | FlexViewクラスの個々の行を操作します
4 | FlexRowSet | FlexViewクラスの列の表示方法を定義するクラスです
4 | FlexTextBox | FlexViewクラスのテキストボックスを定義します
4 | FlexTextBoxCell | FlexTextBoxクラスの各セルへのアクセッサです
4 | FlexTreeHeader | FlexViewクラスのツリーヘッダを定義します
4 | FlexTreeHeaderCell | FlexTreeHeaderクラスの各セルへのアクセッサです
4 | FlexView | フレックスビューを表示します


FlexViewクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | FlexView

表形式のデータを表示するためのクラスです。

SpreadクラスやListViewクラスに似ていますが、データの内容に応じたグルーピング表示や、セルの分割結合に似た表示を行うことができます。また、セルにはテキストボックスやボタンなどを直接配置することが可能です。

FlexViewクラスは他の表形式のクラスとは異なり、個々のセルに対応するオブジェクトはありません。CSVDocumentと同じように個々のセルはFlexViewの内部データとして管理され、メソッドを通してアクセスする必要があります。行数が大きい場合でも生成されるオブジェクト数が少なくなるため、SpreadやListViewよりも多くの行数を扱うことができます。

画面表示例

キーボード操作

このオブジェクトはキーボード操作に対応しています。下記のキー操作を行うことができます。

キー | 説明
RETURN | CursorMoveプロパティと連動した処理
UP | 一つ上のセルに移動
LEFT | 一つ左のセルに移動
BOTTOM | 一つ下のセルに移動
RIGHT | 一つ右のセルに移動
NEXT(PAGE_DOWN) | 一つ次のページに移動
PROIR(PAGE_UP) | 一つ前のページに移動

デフォルトプロパティとValueType

デフォルトプロパティはRowPositionです。ValueTypeの指定は無効です。

FlexViewの概要

FlexViewオブジェクトは単独では機能しない複合オブジェクトであり、FlexRecordとFlexItemの派生クラスを下位に配置して利用します。

FlexViewの下位には１個のFlexRecordを配置します。複数のFlexRecordや配列化したFlexRecordを配置することはできません。FlexRecordは、表の行の表示形態を定義するオブジェクトで、行そのものを現したオブジェクトではないことに注意してください。

FlexRecordの下位にはFlexItemから派生している、以下のオブジェクトを複数配置することができます。これらのオブジェクトは列の表示形態とセルの初期値を定義するオブジェクトで、セルそのものを表したオブジェクトではありません。

クラス | セルアクセッサクラス | 説明
FlexRowSet | なし | 下位のFlexItemを複数行に配置して表示します。
FlexColumnSet | なし | 下位のFlexItemを複数列に配置して表示します。
FlexHeader | FlexHeaderCell | 行ヘッダ
FlexGroupHeader | FlexGroupHeaderCell | グループ化行ヘッダ
FlexTreeHeader | FlexTreeHeaderCell | ツリー表示行ヘッダ
FlexLabel | FlexLabelCell | セルをラベルのように表示します
FlexIndentLabel | FlexIndentLabelCell | インデントラベル
FlexButton | FlexButtonCell | セルをボタンのように表示します。タップでボタンを押すことが可能です。
FlexCheckButton | FlexCheckButtonCell | セルをチェックボックスのように表示します。タップで選択状態を変更することができます。
FlexTextBox | FlexTextBoxCell | セルをテキストボックスのように表示します。キー入力による編集が可能です。
FlexListBox | FlexListBoxCell | セルをプルダウンリストのように表示します。タップで選択状態を変更することができます。

セルアクセッサクラスにクラス名が記述されているクラスは、FlexDataクラスからの派生クラスで、表データの１列に対応するデータをセルに表示します。「なし」とあるクラスは表データとの関連はありません。

FlexRowSetとFlexColumnSetクラスは、セルの配置を定義するクラスで、列方向または行方向に下位のFlexItemを配置します。下位には、FlexItemの派生クラスを配置することができ、複数のFlexRowSetやFlexColumnSetを下位階層に置くことで、任意の分割を行うことができます。

FlexRecord R {
    FlexRowSet Row1 {
        FlexColumnSet Col1 {
            FlexLabel Label1;
            FlexLabel Label2;
            FlexLabel Label3;
        }
        FlexColumnSet Col2 {
            FlexLabel Label4;
            FlexLabel Label5;
            FlexLabel Label6;
        }
    }
}

FlexDataとセルの関係

セルに表示されるデータは、FlexView.InsertRowメソッドなどで行が生成される際に、FlexRecordオブジェクトの下位に置かれているFlexDataクラスからの派生オブジェクトを参照して構成されFlexViewオブジェクトの内部データとして管理されます。

FlexLabel.Valueなどに指定した値は、セルを構成する際に複写されFlexLabel.Valueとは別のインスタンスとして維持されます。従って、個々のセルの値を更新してもその結果がFlexLabelオブジェクトに影響することはありません。

InsertRowにより表示される結果

① | ③ | ④
②

この例では、FlexRecordの下位に1個のFlexRowSetと4個のFlexLabelが配置されています。FlexRowSetはFlexDataクラスから派生していないため対応するセルが作られることはありません。FlexLabelはFlexDataからの派生クラスなので、4個のFlexLabelに対応した①~④の4個のセルが生成されます。

これらの生成されたセルには、FlexLabelに設定されているValue値やFgColorなどの一部のプロパティが複写され、個々のセル単位に維持管理されます。また、VerticalAlignやBorderStyleなど、他のプロパティは複写されず、全てのセルから参照され共有されます。

セル単位に管理されないプロパティは、個々のセルごとに設定を変更することはできないことに注意してください。例えば、FlexLebel.BorderStyleで指定するセルの枠の表示スタイルをセル単位で変更することはできません。どのプロパティがセル単位に管理され、どのプロパティが共有されるかは、クラスごとに異なります。詳細は各クラスのドキュメントを参照してください。

アクセッサオブジェクト

セルはオブジェクトではないため、直接個々のセルを操作することはできませんが、FlexCellクラスの派生クラスが、セルへのアクセッサとして定義されています。アクセッサとは、一種のポインタでアクセッサへの操作は、アクセッサがポイントしているセルへ伝えられます。例えばFlexLabelから構成されたセルのアクセッサ、FlexLabelCellのBgColorを変更すると、FlexLabelCellのポイントしているセルの背景色が変更されます。

アクセッサはセルそのものではないため、アクセッサに対する全ての操作がセルに影響することはありません。例えば、アクセッサをDeleteメソッドにより削除することはできますが、セルが削除されることはありません。また、FlexView.DeleteRowメソッドなどでアクセッサがポイントしているセルが失われた場合でも、アクセッサオブジェクトは維持されます。

アクセッサの生成

アクセッサを直接スクリプトから生成することはできず、FlexView.GetRowメソッド、FlexView.InsertRowメソッド、FlexView.DeleteRowメソッドの戻り値や、各種のイベントの付加データとして得られるFlexRowオブジェクトの子オブジェクトとして生成されます。

FlexRowは表の特定の行をポイントしており、セルの元となったFlexDataの派生オブジェクトと同じ名前をもつFlexCell派生オブジェクトを子オブジェクトに持っています。それぞれのFlexCell派生オブジェクトは、FlexRowがポイントしている行の対応するセルをポイントします。

InsertRowにより返されるアクセッサ例

A | C | D
B

var row = FlexView1.InsertRow(1,1);

rowに戻されるFlexRowの構造。Rowは挿入した新しい行を指している。

row.Aを更新すると、Aに対応したセルに反映されます。

row.A.BgColor = $RED;
row.C.Value = "123";

A | 123 | D
B

アクセッサ利用の制約

アクセッサは、FlexRowの直接の子として生成されるため、すべて一意の名前をもっている必要があります。それに対して、FlexItemはFlexRowSet、FlexColumnSetの子とすることで階層を持って定義することができますが、そのときに同じ名前のFlexData派生オブジェクトが複数ある場合、2番目以降に定義された同名オブジェクトに対応するアクセッサを名前で利用することはできなくなります。

この例の場合、後続のLabelA、LabelB(黄色部分)を名前で操作することはできなくなります。FlexRowに用意されるGetColumn、GetHeaderColumnメソッドを利用すると、名前ではなく位置でFlexCellを取得することができ、後続のLabelA、LabelBを操作する場合、

var lb_a = row.GetColumn(2); /* 3列目 LabelA */
var lb_b = row.GetColumn(3); /* 4列目 LabelB */

となりますが、表示位置を変更するとプログラムを合わせて修正する必要が発生します。

また、名前付CSVをロードする際にも後続の LabelA、LabelBにはデータが割り当てられることはありません。

同一の列名を使うとこのような制約が多く発生します。できる限り個々の列には一意な名前を付けるようにしてください。

アクセッサ利用の有効範囲

アクセッサは、行を指すFlexRowオブジェクトに従属して生成され、内部的FlexRowオブジェクトと連携して実際にセルにアクセスします。従って、アクセッサオブジェクトはFlexRowオブジェクトが失われた場合、機能する事はできません。アクセッサを利用する間は、常にFlexRowオブジェクトを維持するようにしてください。

表示順序とカーソル移動順序における制約

FlexRecordの下位に配置するFlexDataの派生クラスは、その定義順に左から右、上から下に表示されます。また、定義した順序で左右の矢印キーでカーソルが移動します。定義順序と異なる順序で表示したり、カーソル移動順序を変更することはできません。

FlexData派生クラスの配置における制約

FlexRecordの下位に配置するFlexData派生クラスは、その種類によって配置順序に制約があります。左から順に、FlexTreeHeader、FlexGroupHeader、FlexHeader、その他のFlexData派生クラスの順とする必要があります。

右端にFlexTreeHeaderを表示したり、FlexGroupHeaderの左側にFlexHeaderを表示することはできません。

FlexHeaderおよび派生クラスの配置における制約

FlexHeaderおよび派生クラスは、FlexLabelなどFlexHeaderから派生していないクラスとFlexRowSetまたはFlexColumnSetの下位に同居することはできません。ヘッダ系の列は常に1行を占有します。

FlexTreeHeaderクラスの配置における制約

FlexTreeHeaderクラスは、FlexRowSetの下位に配置することはできません。常に1行を占有します。

スケーリング時の注意点

◆ 拡大時の内部有効領域の誤差をなくすためFlexViewを拡大した場合、論理的な計算値より僅かに小さいサイズに調整されます

◆ FlexCheckButtonのチェックボックスはスケーリングの対象外です

◆ FlexListBoxのドロップダウンボタンの幅はスケーリングの対象外です

◆ FlexIndentLabelの折り畳みボタンはスケーリングの対象外です


FlexButtonクラス

Object
 | FlexItem
 |  | FlexData
 |  |  | FlexButton

FlexButtonクラスは、FlexViewのセルの表示方法を定義するクラスで、対応するセルは、ボタンのように表示されます。

FlexButtonオブジェクトは、FlexRecordオブジェクト、FlexColumnSetオブジェクトまたは、FlexRowSetオブジェクトの下位に配置します。

HorizontalAlignプロパティに$STDがセットされている場合、水平位置は$CENTERとなります。

VerticalAlignプロパティに$STDがセットされている場合、垂直位置は$CENTERとなります。

標準のボタンのスタイルが優先されるため、BgColorプロパティによる色指定は無効になります。

画面表示例

キーボード操作

このオブジェクトはキーボード操作に対応しています。下記のキー操作を行うことができます。

キー | 説明
SPACE | ボタンを押下

配置の制約

FlexButtonオブジェクトは、FlexHeaderクラスおよびその派生クラスのオブジェクトよりも左側(定義順で前)に配置することはできません。

FlexRowSetおよびFlexColumnSetの子として位置する場合、FlexHeaderクラスおよびその派生クラスのオブジェクトと同居することはできません。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


FlexButtonプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexButtonクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Active | CRW | boolean | $TRUE | 活性の指定
27 | PushedColor | CRW | integer | $STD | StyleプロパティがFlexView.StyleFlatの場合の、ボタンが押された状態の色
27 | Style | CRW | integer | 0 | ボタンの表示スタイル
4 | Value | CRW | String Number Date |  | セルの初期値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexButton.Activeプロパティ

セル上のボタンの活性の初期値を指定します。

Activeプロパティの値は、FlexView.InsertRowメソッドにより生成される各行のセルに表示する活性の初期値として使用されます。また、Activeプロパティを更新することで、既存の全ての行の活性を一括して変更することができます。

特定のセルの活性を変更するためには、変更したい行のFlexRowオブジェクトを取得し、対応するFlexButtonオブジェクトと同じ名前でFlexRowの子オブジェクトとして配置されるFlexButtonCellオブジェクトのActiveプロパティを設定します。

trueに指定すると、ボタンの操作が可能となります。

falseを指定すると、ボタンの操作は禁止されます。


FlexButton.PushedColorプロパティ

StyleプロパティがFlexView.StyleFlatの時に、ボタンが押されたときの背景色を、色定数で指定します。

$STDを指定すると、FlexData.BgColorと同じになります。

デフォルトは$STDです。


FlexButton.Styleプロパティ

ボタン表示のスタイルを指定します。下記の値のいずれかになります。

定数 | 値 | 説明
FlexView.StyleStd | 0 | 通常のボタン表示を行います。
FlexView.StyleFlat | 1 | フラットなデザインでボタンを表示します。 背景色はFlexData.BgColorプロパティの指定値と同じになります。

表示例

デフォルトはFlexView.StyleStdです。


FlexButton.Valueプロパティ

セルの初期値を指定します。ValueTypeに指定したデータ型の値を保持します。

Valueプロパティの動作については、FlexData.Valueプロパティを参照してください。


FlexButtonメソッド

API version 4

メソッド

iOSAndroidWindows

FlexButtonクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexButtonイベント

API version 4

イベント

iOSAndroidWindows

FlexButtonクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Pushed | タップ等によるボタンの押下で発生します
4 | RClicked | ロングタップされたときに発生します

クラス概要

基本クラスのイベント


FlexButton.Pushedイベント

FlexButtonに対応するセルのボタン押下で発生するイベントです。Pushedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、FlexViewのRowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトは、その時点でセルカーソルが置かれている位置とは異なる行をポイントしていることがあります。従って、イベントが発生した位置のデータを操作するためには、イベントのrowにより行を特定するようにしてください。


FlexButton.RClickedイベント

FlexButtonに対応するセルのボタン上のロングタップで発生するイベントです。RClickedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、FlexViewのRowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトは、その時点でセルカーソルが置かれている位置とは異なる行をポイントしていることがあります。従って、イベントが発生した位置のデータを操作するためには、イベントのrowにより行を特定するようにしてください。


FlexButtonCellクラス

Object
 | FlexCell
 |  | FlexButtonCell

FlexButtonCellクラスは、FlexButtonより生成されたFlexViewのセルを操作するためのアクセッサです。

FlexButtonCellのプロパティ操作により、ポイントしているセルを操作することができます。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


FlexButtonCellプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexButtonCellクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Active | CRW | boolean | $TRUE | 活性状態
27 | PushedColor | CRW | integer | $STD | StyleプロパティがFlexView.StyleFlatの場合の、ボタンが押された状態の色
27 | Style | CRW | integer | 0 | ボタンの表示スタイル

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


FlexButtonCell.Activeプロパティ

セル上のボタンの活性を指定します。

trueに指定すると、ボタンの操作が可能となります。

falseを指定すると、ボタンの操作は禁止されます。


FlexButtonCell.PushedColorプロパティ

StyleプロパティがFlexView.StyleFlatの時に、ボタンが押されたときの背景色を、色定数で指定します。

$STDを指定すると、FlexData.BgColorと同じになります。


FlexButtonCell.Styleプロパティ

ボタン表示のスタイルを指定します。下記の値のいずれかになります。

定数 | 値 | 説明
FlexView.StyleStd | 0 | 通常のボタン表示を行います。
FlexView.StyleFlat | 1 | フラットなデザインでボタンを表示します。 背景色はFlexData.BgColorプロパティの指定値と同じになります。

表示例


FlexButtonCellメソッド

API version 4

メソッド

iOSAndroidWindows

FlexButtonCellクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexButtonCellイベント

API version 4

イベント

iOSAndroidWindows

FlexButtonCellクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexCellクラス

Object
 | FlexCell

FlexCellクラスは、FlexViewのセルを操作するためのアクセッサです。FlexCellのプロパティ操作により、ポイントしているセルを操作することができます。

FlexCellオブジェクトは、他のアクセッサクラスの基礎となる仮想的なクラスで、実体はありません。FlexCellの派生クラスはスクリプトから直接作成することはできず、FlexRowを戻り値とするメソッドにより、FlexRowオブジェクトの子オブジェクトとして生成されます。


FlexCellプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexCellクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | BgColor | CRW | integer | $STD | 背景色
4 | Data | CRW | String |  | 汎用データ
4 | FgColor | CRW | integer | $STD | 文字色
4 | Value | CRW | ※ |  | セルの値

※元となるFlexData継承クラスのValueTypeにより決定します。

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexCell.BgColorプロパティ

セルの背景色を指定します。

実際に表示される背景色は、セルの種類や状態により変わります。


FlexCell.Dataプロパティ

汎用文字列プロパティです。アプリケーションで任意の目的に利用できます。


FlexCell.FgColorプロパティ

セルの文字色を指定します。

実際に表示される色は、セルの種類や状態で変わります。


FlexCell.Valueプロパティ

セルの値です。

セルの値はセルに表示されますが、どのように表示されるかはセルの種類によります。


FlexCellメソッド

API version 4

メソッド

iOSAndroidWindows

FlexCellクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexCellイベント

API version 4

イベント

iOSAndroidWindows

FlexCellクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexCheckButtonクラス

Object
 | FlexItem
 |  | FlexData
 |  |  | FlexCheckButton

FlexCheckButtonクラスは、FlexViewのセルの表示方法を定義するクラスで、対応するセルは、チェックボックスのように表示されます。

FlexCheckButtonオブジェクトは、FlexRecordオブジェクト、FlexColumnSetオブジェクトまたは、FlexRowSetオブジェクトの下位に配置します。

VerticalAlignプロパティに$STDがセットされている場合、垂直位置は$CENTERとなります。

チェックを行うタップ操作は、FlexCheckButton全体で有効です。

画面表示例

キーボード操作

このオブジェクトはキーボード操作に対応しています。下記のキー操作を行うことができます。

キー | 説明
SPACE | チェックの状態を反転

配置の制約

FlexCheckButtonオブジェクトは、FlexHeaderクラスおよびその派生クラスのオブジェクトよりも左側(定義順で前)に配置することはできません。

FlexRowSetおよびFlexColumnSetの子として位置する場合、FlexHeaderクラスおよびその派生クラスのオブジェクトと同居することはできません。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


FlexCheckButtonプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexCheckButtonクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Active | CRW | boolean | $TRUE | 活性状態
4 | Border | CRW | boolean | $FALSE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | BorderStyle | CRW | integer | $SUNKEN | 枠線の種類
28 | BorderWidth | CRW | Number | 0 | 枠の太さ
27 | FlatCheckColor | CRW | integer | $STD | StyleプロパティがFlexView.StyleFlatの場合の、チェックボックスの色
4 | Selected | CRW | boolean | $TRUE | チェック状態
27 | Style | CRW | integer | 0 | チェックボックスの表示スタイル
HT(10) | UseTapAndHold | CRW | boolean | $FALSE | タップ＆ホールド操作を使用するか
4 | Value | CRW | String Number Date |  | セルの初期値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexCheckButton.Activeプロパティ

セル上のチェックボタンの活性の初期値を指定します。

Activeプロパティの値は、FlexView.InsertRowメソッドにより生成される各行のセルに表示する活性の初期値として使用されます。また、Activeプロパティを更新することで、既存の全ての行の活性を一括して変更することができます。

特定のセルの活性を変更するためには、変更したい行のFlexRowオブジェクトを取得し、対応するFlexCheckButtonオブジェクトと同じ名前でFlexRowの子オブジェクトとして配置されるFlexCheckButtonCellオブジェクトのActiveプロパティを設定します。

trueに指定すると、ボタンの操作が可能となります。

falseを指定すると、ボタンの操作は禁止されます。


BorderStyleプロパティ

枠線の種類を指定します。Borderプロパティが$TRUEの場合のみ有効です。

定数 | 値 | 説明
$SUNKEN | 0 | 全体を凹形状で表示します
$RISED | 1 | 全体を凸形状で表示します
$ETCHED | 2 | 枠線を凹形状で表示します
$BUMP | 3 | 枠線を凸形状で表示します
$GRAYFRAME | 4 | 2色の灰色で枠線を表示します
$SOFT | 5 | 白と黒で枠を表示します
$SOFTETCHED | 6 | 枠線をやわらかい凹形状で表示します
$SOFTBUMP | 7 | 枠線をやわらかい凸形状で表示します
$PLANE | 8 | 黒い一本線で表示します
$DASH | 9 | 長めの点線で表示します
$DOT | 10 | 細かい点線で表示します
$FLATSUNKEN | 11 | 全体を低い凹形状で表示します
$FLATRISED | 12 | 全体を低い凸形状で表示します

表示例


FlexCheckButton.FlatCheckColorプロパティ

StyleプロパティがFlexView.StyleFlatの時の、チェックボックスの色を、色定数で指定します。

$STDを指定すると、FlexData.FgColorと同じになります。

デフォルトは$STDです。


FlexCheckButton.Selectedプロパティ

チェックボックスの選択状態の初期値を指定します。

Selectedプロパティの値は、FlexView.InsertRowメソッドにより生成される各セルの選択状態の初期値として使用されます。

また、Selectedプロパティを更新することで、既存の全ての行のセルの値を一括して更新することができます。

特定のセルの値を更新するためには、変更したい行のFlexRowオブジェクトを取得し、変更したい列のFlexItemオブジェクトと同じ名前でFlexRowの子オブジェクトとして配置されるFlexCellオブジェクトのSelectedプロパティを設定します。


FlexCheckButton.Styleプロパティ

チェックボックスの表示スタイルを指定します。下記の値のいずれかになります。

定数 | 値 | 説明
FlexView.StyleStd | 0 | 通常のチェックボックス表示を行います。
FlexView.StyleFlat | 1 | フラットなデザインでチェックボックスを表示します。 背景色はFlexData.BgColorプロパティの指定値と同じになります。 アイコンの色はFlexData.FgColorプロパティの指定値と同じになります。

表示例

デフォルトはFlexView.StyleStdです。


FlexCheckButton.Valueプロパティ

セルの初期値を指定します。ValueTypeに指定したデータ型の値を保持します。

Valueプロパティの動作については、FlexData.Valueプロパティを参照してください。


FlexCheckButtonメソッド

API version 4

メソッド

iOSAndroidWindows

FlexCheckButtonクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexCheckButtonイベント

API version 4

イベント

iOSAndroidWindows

FlexCheckButtonクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | CheckChanged | タップ等によるチェックのON/OFFで発生します
4 | RClicked | ロングタップされたときに発生します

クラス概要

基本クラスのイベント


FlexCheckButton.CheckChangedイベント

FlexCheckButtonに対応するセルのチェック状態の変更操作で発生するイベントです。CheckChangedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、FlexViewのRowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトは、その時点でセルカーソルが置かれている位置とは異なる行をポイントしていることがあります。従って、イベントが発生した位置のデータを操作するためには、イベントのrowにより行を特定するようにしてください。


FlexCheckButton.RClickedイベント

FlexCheckButtonに対応するセル上のロングタップで発生するイベントです。RClickedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、FlexViewのRowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトは、その時点でセルカーソルが置かれている位置とは異なる行をポイントしていることがあります。従って、イベントが発生した位置のデータを操作するためには、イベントのrowにより行を特定するようにしてください。


FlexCheckButtonCellクラス

Object
 | FlexCell
 |  | FlexCheckButtonCell

FlexCeckButtonCellクラスは、FlexCehckButtonより生成されたFlexViewのセルを操作するためのアクセッサです。

FlexCheckButtonCellのプロパティ操作により、ポイントしているセルを操作することができます。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


FlexCheckButtonCellプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexCheckButtonCellクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Active | CRW | boolean | $TRUE | 活性の指定
27 | FlatCheckColor | CRW | integer | $STD | StyleプロパティがFlexView.StyleFlatの場合の、チェックボックスの色
4 | Selected | CRW | boolean | $TRUE | チェック状態
27 | Style | CRW | integer | 0 | チェックボックスの表示スタイル

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


FlexCheckButtonCell.Activeプロパティ

セル上のチェックボタンの活性を指定します。

trueに指定すると、チェックボタンの操作が可能となります。

falseを指定すると、チェックボタンの操作は禁止されます。


FlexCheckButtonCell.FlatCheckColorプロパティ

StyleプロパティがFlexView.StyleFlatの時の、チェックボックスの色を、色定数で指定します。

$STDを指定すると、FlexData.FgColorと同じになります。


FlexCheckButtonCell.Selectedプロパティ

チェックボックスの選択状態を指定します。


FlexCheckButtonCell.Styleプロパティ

チェックボックスの表示スタイルを指定します。下記の値のいずれかになります。

定数 | 値 | 説明
FlexView.StyleStd | 0 | 通常のチェックボックス表示を行います。
FlexView.StyleFlat | 1 | フラットなデザインでチェックボックスを表示します。 背景色はFlexData.BgColorプロパティの指定値と同じになります。 アイコンの色はFlexData.FgColorプロパティの指定値と同じになります。

表示例


FlexCheckButtonCellメソッド

API version 4

メソッド

iOSAndroidWindows

FlexCheckButtonCellクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexCheckButtonCellイベント

API version 4

イベント

iOSAndroidWindows

FlexCheckButtonCellクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexColumnSetクラス

Object
 | FlexItem
 |  | FlexColumnSet

FlexColumnSetは、FlexViewクラスの列の表示方法を定義するクラスで、下位に配置されるFlexItemの派生クラスを横方向に並べて表示します。

画面表示例

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


FlexColumnSetプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexColumnSetクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Value | CRW | String Number Date | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexColumnSet.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


FlexColumnSetメソッド

API version 4

メソッド

iOSAndroidWindows

FlexColumnSetクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexColumnSetイベント

API version 4

イベント

iOSAndroidWindows

FlexColumnSetクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexDataクラス

Object
 | FlexItem
 |  | FlexData

FlexDataは、FlexViewクラスのセルの表示方法を定義するクラスです。FlexDataは、他のクラスの基礎となる仮想的なクラスで実体はありません。


FlexDataプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexDataクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | BgColor | CRW | integer | $STD | 背景色
4 | Data | CRW | String |  | 汎用データ
4 | FgColor | CRW | integer | $STD | 文字色
4 | Format | CR | String |  | 書式指定文字列
4 | HorizontalAlign | CR | integer | $STD | 水平方向の配置
4 | Value | CRW | ※ |  | セルの初期値
4 | VerticalAlign | CR | integer | $STD | 垂直方向の配置

※継承クラスのValueTypeにより異なります

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexData.BgColorプロパティ

セルの背景色の初期値を指定します。省略時の値 $STD の場合、FlexDataから派生したクラスごとに表示色が異なります。

BgColorプロパティの値は、FlexView.InsertRowメソッドにより生成される各セルの背景色の初期値として使用されます。また、BgColorプロパティを更新することで、既存の全ての行のセルの背景色を一括して変更することができます。

特定のセルの値を更新するためには、変更したい行のFlexRowオブジェクトを取得し、変更したい列のFlexItemオブジェクトと同じ名前でFlexRowの子オブジェクトとして配置されるFlexCellオブジェクトのBgColorプロパティを設定します。


FlexData.Dataプロパティ

汎用的に使用できる文字列プロパティです。アプリケーションの任意の用途で利用可能です。Dataプロパティは、FlexViewの列を生成する際に各セルにもつDataプロパティの初期値として複写されます。


FlexData.FgColorプロパティ

セルの文字色の初期値を指定します。省略時の値 $STD の場合、FlexDataから派生した各クラスにより表示色が異なります。

FgColorプロパティの値は、FlexView.InsertRowメソッドにより生成される各セルの文字色の初期値として使用されます。また、FgColorプロパティを更新することで、既存の全ての行のセルの文字色を一括して変更することができます。

特定のセルの値を更新するためには、変更したい行のFlexRowオブジェクトを取得し、変更したい列のFlexItemオブジェクトと同じ名前でFlexRowの子オブジェクトとして配置されるFlexCellオブジェクトのFgColorプロパティを設定します。


FlexData.HorizontalAlignプロパティ

水平方向の位置合わせを行います。$STDは左寄せになります。

定数 | 値 | 説明
$STD | 0 | $LEFTと同じ ※
$LEFT | 1 | 左寄せ
$CENTER | 2 | 中央寄せ
$RIGHT | 3 | 右寄せ

※オブジェクトによりデフォルトの位置合わせが異なることがあります。各クラスのページも参照してください。


FlexData.Valueプロパティ

セルの初期値を指定します。ValueTypeに指定したデータ型の値を保持します。

Valueプロパティの値は、FlexView.InsertRowメソッドにより生成される各行のセルの初期値として使用されます。Valueプロパティそのものがセルに表示されるのではなく、セルの初期値として複写された値が表示されることに注意してください。

Valueプロパティを更新することで、既存の全ての行のセルの値を一括して更新できます。

特定のセルの値を更新するためには、変更したい行のFlexRowオブジェクトを取得し、変更したい列のFlexItemオブジェクトと同じ名前でFlexRowの子オブジェクトとして配置されるFlexCellオブジェクトのValueプロパティを設定します。


FlexData.VerticalAlignプロパティ

垂直方向の位置合わせを行います。$STDは上寄せになります。

定数 | 値 | 説明
$STD | 0 | $TOPと同じ ※
$TOP | 1 | 上寄せ
$CENTER | 2 | 中央寄せ
$BOTTOM | 3 | 下寄せ

FlexLabelのVerticalAlignプロパティを指定した場合、FlexLabel内の文字を折り返し表示することはできません。
VerticalAlignを指定しない場合、FlexLabel内の文字は折り返し表示されます。

※オブジェクトによりデフォルトの位置合わせが異なることがあります。各クラスのページも参照してください。


FlexDataメソッド

API version 4

メソッド

iOSAndroidWindows

FlexDataクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexDataイベント

API version 4

イベント

iOSAndroidWindows

FlexDataクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexGroupHeaderクラス

Object |  |  |  |
 | FlexItem
 |  | FlexData
 |  |  | FlexHeader
 |  |  |  | FlexGroupHeader

FlexGroupHeaderクラスは、FlexViewの行ヘッダの表示方法を定義するクラスです。

対応するヘッダセルは、FlexHeaderと同様にセル値を表示したり行番号を表示することができます。また、横方向のスクロールが固定され、常に左側に表示されカーソルを置くことはできません。

FlexGroupHeaderに対応するセルは、セル値のキーブレークまたは、指定した行数単位にグループ化されて表示されます。

FlexGroupHeaderオブジェクトは、FlexRecordオブジェクトまたは、FlexColumnSetオブジェクトの下位に配置します。

HorizontalAlignプロパティに$STDがセットされている場合、水平位置は$CENTERとなります。

VerticalAlignプロパティに$STDがセットされている場合、垂直位置は$CENTERとなります。

画面表示例

配置の制約

FlexGroupHeaderオブジェクトは、FlexHeaderおよびFlexHeader以外から派生したクラスのオブジェクトよりも右側(定義順で後)に配置することはできません。

FlexColumnSetの子として位置する場合、FlexHeader以外から派生したクラスのオブジェクトと同居することはできません。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


FlexGroupHeaderプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexGroupHeaderクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | GroupCount | CRW | integer | 0 | グループ単位
4 | HorizontalAlign | CR | integer | $STD | 水平方向の位置合わせ
4 | Value | CRW | String Number Date |  | セルの初期値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexGroupHeader.GroupCountプロパティ

グループ化する行数を指定します。

0を指定すると、行数によるグループ化は行われず、セル値によるキーブレークによるグループ化が行われます。

0より大きな値を指定すると、セル値は考慮されず、指定した行数でグループ化されます。

表示例

GroupCount = 0

GroupCount = 2


FlexGroupHeader.HorizontalAlignプロパティ

水平方向の位置合わせを行います。$STDは中央寄せになります。

定数 | 値 | 説明
$STD | 0 | $CENTERと同じ
$LEFT | 1 | 左寄せ
$CENTER | 2 | 中央寄せ
$RIGHT | 3 | 右寄せ


FlexGroupHeader.Valueプロパティ

セルの初期値を指定します。ValueTypeに指定したデータ型の値を保持します。

Valueプロパティの動作については、FlexData.Valueプロパティを参照してください。


FlexGroupHeaderメソッド

API version 4

メソッド

iOSAndroidWindows

FlexGroupHeaderクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexGroupHeaderイベント

API version 4

イベント

iOSAndroidWindows

FlexGroupHeaderクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexGroupHeaderCellクラス

Object
 | FlexCell
 |  | FlexGroupHeaderCell

FlexGroupHeaderCellクラスは、FlexGroupHeaderより生成されたFlexViewのセルを操作するためのアクセッサです。

FlexGroupHeaderCellのプロパティ操作により、ポイントしているセルを操作することができます。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


FlexGroupHeaderCellプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexGroupHeaderCellクラスで定義されるプロパティはありません。

クラス概要

基本クラスのプロパティ


FlexGroupHeaderCellメソッド

API version 4

メソッド

iOSAndroidWindows

FlexGroupHeaderCellクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexGroupHeaderCellイベント

API version 4

イベント

iOSAndroidWindows

FlexGroupHeaderCellクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexHeaderクラス

Object
 | FlexItem
 |  | FlexData
 |  |  | FlexHeader

FlexHeaderクラスは、FlexViewの行ヘッダの表示方法を定義するクラスです。

対応するヘッダセルは、セル値を表示したり行番号を表示することができます。また、横方向のスクロールが固定され、常に左側に表示されカーソルを置くことはできません。

FlexHeaderオブジェクトは、FlexRecordオブジェクト、FlexColumnSetオブジェクトまたは、FlexRowSetオブジェクトの下位に配置します。

HorizontalAlignプロパティに$STDがセットされている場合、水平位置は$CENTERとなります。

VerticalAlignプロパティに$STDがセットされている場合、垂直位置は$CENTERとなります。

画面表示例

配置の制約

FlexHeaderオブジェクトは、FlexHeader以外から派生したクラスのオブジェクトよりも右側(定義順で後)に配置することはできません。

FlexRowSetおよびFlexColumnSetの子として位置する場合、FlexHeader以外から派生したクラスのオブジェクトと同居することはできません。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


FlexHeaderプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexHeaderクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Border | CRW | boolean | $FALSE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | BorderStyle | CRW | integer | $SUNKEN | 枠線の種類
28 | BorderWidth | CRW | Number | 0 | 枠の太さ
4 | HorizontalAlign | CR | integer | $STD | 水平方向の位置合わせ
4 | Icon | CRW | integer | 0 | アイコン番号
4 | Numbered | CRW | boolean | $FALSE | 行番号表示
HT(10) | UseTapAndHold | CRW | boolean | $FALSE | タップ＆ホールド操作を使用するか
4 | Value | CRW | String Number Date |  | セルの初期値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexHeader.HorizontalAlignプロパティ

水平方向の位置合わせを行います。$STDは中央寄せになります。

定数 | 値 | 説明
$STD | 0 | $CENTERと同じ
$LEFT | 1 | 左寄せ
$CENTER | 2 | 中央寄せ
$RIGHT | 3 | 右寄せ


FlexHeader.Iconプロパティ

セルに表示するアイコンの初期値を指定します。

Iconプロパティの値は、FlexView.InsertRowメソッドにより生成される各行のセルに表示するアイコンの初期値として使用されます。また、Iconプロパティを更新することで、既存の全ての行のセルのアイコンを一括して変更することができます。

指定する値はsetImageメソッドにより設定されたImegaListのうち、何番目のアイコンを表示するか0から始まる番号で指定します。

特定のセルを別のアイコンで表示するためには、変更したい行のFlexRowオブジェクトを取得し、対応するFlexHeaderオブジェクトと同じ名前でFlexRowの子オブジェクトとして配置されるFlexHeaderCellオブジェクトのIconプロパティを設定します。

表示例


FlexHeader.Numberedプロパティ

セルにValueプロパティ値を表示するか、行番号を表示するか選択します。

$FALSEの場合、Value値をFormatプロパティで書式化して表示します。

$TRUEの場合、Valueプロパティの値は維持されますが表示されず、１から始まる行番号が表示されます。行番号の表示ではFormatプロパティによる書式化は行われません。

表示例

Numbered = $FALSE

Numbered = $TRUE


FlexHeader.Valueプロパティ

セルの初期値を指定します。ValueTypeに指定したデータ型の値を保持します。

Valueプロパティの動作については、FlexData.Valueプロパティを参照してください。


FlexHeaderメソッド

API version 4

メソッド

iOSAndroidWindows

FlexHeaderクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | ResetImage | SetImageメソッドで設定したイメージリストを破棄します
4 | SetImage | セルのアイコン表示に使用するイメージリストを設定します

クラス概要

基本クラスのメソッド


FlexHeader.ResetImageメソッド

説明

SetImageメソッドで設定したイメージリストを破棄します。

呼出形式

FlexHeader1.ResetImage( )

戻り値

なし

引数

なし

例外

なし

使用例

FlexHeader1.ResetImage();

関連項目

SetImageメソッド


FlexHeader.SetImageメソッド

説明

セルのアイコン表示に使用するイメージリストを設定します。

表示例

表示するアイコンが行の高さよりも大きい場合、縦横比を維持したまま縮小されます。

呼出形式

FlexHeader1.SetImage( img )

戻り値

なし

引数

ImageList img

表示したいイメージリストを保持するImageListオブジェクト

例外

なし

使用例

FlexHeader FlexHeader1 {
    :
}
var img = new ImageList {
    MaskUse = $TRUE;
    MaskColR = 1;
    LoadImage("icons.png");
}
FlexHeader1.SetImage(img);
FlexHeader1.Icon = 0;

関連項目

Iconプロパティ

ResetImageメソッド

ImageListクラス


FlexHeaderイベント

API version 4

イベント

iOSAndroidWindows

FlexHeaderクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Clicked | タップされたときに発生します
4 | DoubleClicked | ダブルタップされたときに発生します
4 | RClicked | ロングタップされたときに発生します

クラス概要

基本クラスのイベント


FlexHeader.Clickedイベント

FlexHeaderに対応するセル上のタップで発生するイベントです。

Clickedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、FlexViewのRowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトは、その時点でセルカーソルが置かれている位置とは異なる行をポイントしていることがあります。従って、イベントが発生した位置のデータを操作するためには、イベントのrowにより行を特定するようにしてください。


FlexHeader.DoubleClickedイベント

FlexHeaderに対応するセル上のダブルタップで発生するイベントです。

DoubleClickedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、FlexViewのRowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトは、その時点でセルカーソルが置かれている位置とは異なる行をポイントしていることがあります。従って、イベントが発生した位置のデータを操作するためには、イベントのrowにより行を特定するようにしてください。


FlexHeader.RClickedイベント

FlexHeaderに対応するセル上のロングタップで発生するイベントです。

RClickedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、FlexViewのRowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトは、その時点でセルカーソルが置かれている位置とは異なる行をポイントしていることがあります。従って、イベントが発生した位置のデータを操作するためには、イベントのrowにより行を特定するようにしてください。


FlexHeaderCellクラス

Object
 | FlexCell
 |  | FlexHeaderCell

FlexHeaderCellクラスは、FlexHeaderより生成されたFlexViewのセルを操作するためのアクセッサです。

FlexHeaderCellのプロパティ操作により、ポイントしているセルを操作することができます。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


FlexHeaderCellプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexHeaderCellクラスで定義されるプロパティはありません。

クラス概要

基本クラスのプロパティ


FlexHeaderCellメソッド

API version 4

メソッド

iOSAndroidWindows

FlexHeaderCellクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexHeaderCellイベント

API version 4

イベント

iOSAndroidWindows

FlexHeaderCellクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexIndentLabelクラス

Object |  |  |  |
 | FlexItem
 |  | FlexData
 |  |  | FlexLabel
 |  |  |  | FlexIndentLabel

FlexIndentLabelクラスは、FlexViewのセルの表示方法を定義するクラスです。

FlexIndentLabelはFlexLabelからの派生クラスで、FlexLabelと同じように文字列の表示やアイコンの表示を行うことができます。さらに、KeyプロパティとParentKeyプロパティの指定によりインデント付けした表示を行うことができます。この表示は、FlexTreeHeaderと似ていますが、FlexIndentLabelは、1列の中で階層化した表示となり、階層の深さはKeyとParentKeyプロパティに設定するデータにより動的に変化します。また、折り畳むことができる部分はインデントの先頭のみとなりますが、後続の列の内容が折畳んだ行にも表示されます。

FlexIndentLabelオブジェクトは、FlexRecordオブジェクトの下位に配置します。

VerticalAlignプロパティに$STDがセットされている場合、垂直位置は$CENTERとなります。

Clickedイベントの発生および後続の列の折り畳みを行うタップ操作は、FlexIndentLabel全体で有効です。

画面表示例

配置の制約

FlexIndentLabelオブジェクトは、FlexHeaderおよびその派生クラスのオブジェクトよりも左側(定義順で前)に配置することはできません。

FlexIndentLabelは2列以上に利用する事はできません。

FlexColumnSetの子として配置することも可能ですが、インデントの接続線は接続されません。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


FlexIndentLabelプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexIndentLabelクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Foldable | CRW | boolean | $TRUE | 折畳み操作の可否
4 | Folding | CRW | boolean | $FALSE | 折畳み状態
4 | Indent | CRW | boolean | $TRUE | インデント状態
4 | Key | CRW | String |  | 自分のキー
4 | ParentKey | CRW | String |  | 親のキー
4 | Value | CRW | String Number Date |  | セルの初期値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexIndentLabel.Foldableプロパティ

画面操作により折畳みを許可するか指定します。

$TRUEを指定すると折畳み可能となり、各セルに折畳み状態を示すボックスが表示されます。$FALSEを指定すると折畳みは不可となり折畳み状態を示すボックスは表示されません。

Foldable = $TRUE

Foldable = $FALSE


FlexIndentLabel.Foldingプロパティ

折畳み状態を指定します。

Trueを指定すると折畳み状態となり、Falseを指定すると開いた状態になります。Foldingプロパティによる折畳みと展開は、Foldableプロパティの指定に関わらず利用可能です。


FlexIndentLabel.Indentプロパティ

インデント表示の状態を指定します。

Trueを指定するとインデント表示状態となり、Falseを指定するとインデント表示は行われません。


FlexIndentLabel.Keyプロパティ

インデント表示のキーとなる値です。通常、このプロパティは個々のセルに対してのみ指定します。

Keyプロパティは、ParentKeyプロパティとあわせて利用します。Keyプロパティに指定した値と同じ値をParentKeyプロパティに持つ後続の行は、親子として接続されて表示されます。

表示例

行 | Keyプロパティの値 | ParentKeyプロパティの値
1 | 関東 |
2 | 東京 | 関東
3 | 池袋 | 東京
4 | 新宿 | 東京
5 | 上野 | 東京
6 | 品川 | 東京
7 | 千葉 | 関東
8 | 船橋 | 千葉
9 | 成田 | 千葉


FlexIndentLabel.ParentKeyプロパティ

インデント表示のキーとなる値です。通常、このプロパティは個々のセルに対してのみ指定します。

ParentKeyプロパティは、Keyプロパティとあわせて利用します。Keyプロパティに指定した値と同じ値をParentKeyプロパティに持つ後続の行は、親子として接続されて表示されます。

表示例

行 | Keyプロパティの値 | ParentKeyプロパティの値
1 | 関東 |
2 | 東京 | 関東
3 | 池袋 | 東京
4 | 新宿 | 東京
5 | 上野 | 東京
6 | 品川 | 東京
7 | 千葉 | 関東
8 | 船橋 | 千葉
9 | 成田 | 千葉


FlexIndentLabel.Valueプロパティ

セルの初期値を指定します。ValueTypeに指定したデータ型の値を保持します。

Valueプロパティの動作については、FlexData.Valueプロパティを参照してください。


FlexIndentLabelメソッド

API version 4

メソッド

iOSAndroidWindows

FlexIndentLabelクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexIndentLabelイベント

API version 4

イベント

iOSAndroidWindows

FlexIndentLabelクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexIndentLabelCellクラス

Object
 | FlexCell
 |  | FlexILabelCell
 |  |  | FlexIndentLabelCell

FlexIndentLabelCellクラスは、FlexIndentLabelより生成されたFlexViewのセルを操作するためのアクセッサです。

FlexIndentLabelCellのプロパティ操作により、ポイントしているセルを操作することができます。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


FlexIndentLabelCellプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexIndentLabelCellクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Folding | CRW | boolean | $FALSE | 折畳み状態
4 | Key | CRW | String |  | 自身のキー
4 | ParentKey | CRW | String |  | 親のキー

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


FlexIndentLabelCell.Foldingプロパティ

折畳み状態を示します。

Trueの場合、折畳まれた状態を示し、Falseの場合、展開された状態を示します。

折畳むことができない行では、意味を持ちません。


FlexIndentLabelCell.Keyプロパティ

インデント表示のキーとなる値です。

Keyプロパティは、ParentKeyプロパティとあわせて利用します。Keyプロパティに指定した値と同じ値をParentKeyプロパティに持つ後続の行は、親子として接続されて表示されます。

表示例

行 | Keyプロパティの値 | ParentKeyプロパティの値
1 | 関東 |
2 | 東京 | 関東
3 | 池袋 | 東京
4 | 新宿 | 東京
5 | 上野 | 東京
6 | 品川 | 東京
7 | 千葉 | 関東
8 | 船橋 | 千葉
9 | 成田 | 千葉


FlexIndentLabelCell.ParentKeyプロパティ

インデント表示のキーとなる値です。

ParentKeyプロパティは、Keyプロパティとあわせて利用します。Keyプロパティに指定した値と同じ値をParentKeyプロパティに持つ後続の行は、親子として接続されて表示されます。

表示例

行 | Keyプロパティの値 | ParentKeyプロパティの値
1 | 関東 |
2 | 東京 | 関東
3 | 池袋 | 東京
4 | 新宿 | 東京
5 | 上野 | 東京
6 | 品川 | 東京
7 | 千葉 | 関東
8 | 船橋 | 千葉
9 | 成田 | 千葉


FlexIndentLabelCellメソッド

API version 4

メソッド

iOSAndroidWindows

FlexIndentLabelCellクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexIndentLabelCellイベント

API version 4

イベント

iOSAndroidWindows

FlexIndentLabelCellクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexItemクラス

Object
 | FlexItem

FlexItemは、FlexViewクラスの列の表示方法を定義するクラスです。FlexItemは、他のクラスの基礎となる仮想的なクラスで実体はありません。


FlexItemプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexItemクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Title | CRW | String |  | 列タイトル
4 | TitleBgColor | CRW | integer | $STD | タイトルの背景色
4 | TitleFgColor | CRW | integer | $STD | タイトルの文字色
4 | TitleHorzAlign | CR | integer | $STD | タイトルの水平方向の割付
4 | TitleMarker | CRW | integer | 0 | タイトルマーカーの指定
HT(10) | TitleResize | CRW | boolean | $FALSE | 列幅の変更可否
4 | TitleRows | CR | integer | 0 | タイトルの占有率
27 | TitleStyle | CRW | integer | -1 | タイトルのスタイル
4 | TitleVertAlign | CR | integer | $STD | タイトルの垂直方向の割付
4 | Width | CRW | integer | 100 | 列の幅

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


FlexItem.Titleプロパティ

列のタイトルを指定します。

FlexColumnSetやFlexRowSetのタイトルは下位に配置されたFlexItemとは別に表示されます。

タイトルを表示しない場合、文字列"null"をセットします。nullをセットしても文字列変換により"null"となるため同義です。

"null"をセットした場合、タイトルの枠を含めて非表示となり、可能であれば表示領域も割り当てられなくなります。

Title = nullを指定しない場合の表示例

Title = nullを指定した場合の表示例

スクリプト例

FlexRecord FlexRecord1 {
    FlexHeader header {
        Numbered = $TRUE;
    }
    FlexLabel FlexLabel4 {
        Title = "Label4";
    }
    FlexRowSet RowSet1 {
        Title = null;
        FlexColumnSet ColSet1 {
            Title = null;
            FlexLabel FlexLabel2 {
                Title = "Label2";
            }
            FlexLabel FlexLabel3 {
                Title = "Label3";
            }
        }
        FlexLabel FlexLabel4 {
            Title = "Label4";
        }
    }
}


FlexItem.TitleBgColorプロパティ

列のタイトルの背景色を指定します。

タイトルの背景色は、TitleBgColorプロパティのほかにFlexViewで定義されるTitleBgColorの影響も受けます。次の表のように、FlexItemのTitleBgColorの指定が優先されます。

FlexItem.TitleBgColor | FlexView.TitleBgColor | 表示色
指定なし | 指定なし | デフォルト色
指定なし | 指定あり | FlexView.TitleBgColor
指定あり | 指定なし | FlexItem.TitleBgColor
指定あり | 指定あり | FlexItem.TitleBgColor

TitleBgColor指定例

FlexView FlexView1 {
    :
    TitleBgColor = $6666FF;
    :
    FlexRecord FlexRecord1 {
        :
        FlexColumnSet FlexColumnSet1 {
            :
            Title = "TreeSet";
            TitleBgColor = $33FF33;
            :
            FlexTreeHeader FlexTreeHeader1 {
                Title = "Tree1";
                :
            }
            FlexTreeHeader FlexTreeHeader2 {
                Title = "Tree2";
                :
            }
        }
    }
}


FlexItem.TitleFgColorプロパティ

列のタイトルの文字色を指定します。

タイトルの文字色は、TitleFgColorプロパティのほかにFlexViewで定義されるTitleFgColorの影響も受けます。次の表のように、FlexItemのTitleFgColorの指定が優先されます。

FlexItem.TitleFgColor | FlexView.TitleFgColor | 表示色
指定なし | 指定なし | デフォルト色
指定なし | 指定あり | FlexView.TitleFgColor
指定あり | 指定なし | FlexItem.TitleFgColor
指定あり | 指定あり | FlexItem.TitleFgColor

TitleFgColor指定例

FlexView FlexView1 {
    :
    TitleFgColor = $3333FF;
    :
    FlexRecord FlexRecord1 {
        :
        FlexColumnSet FlexColumnSet1 {
            :
            Title = "TreeSet";
            TitleFgColor = $FF0000;
            :
            FlexTreeHeader FlexTreeHeader1 {
                Title = "Tree1";
                :
            }
            FlexTreeHeader FlexTreeHeader2 {
                Title = "Tree2";
                :
            }
        }
    }
}


FlexItem.TitleHorzAlignプロパティ

列のタイトルの水平方向の割付を指定します。

タイトルの割付は、TitleHorzAlignプロパティのほかにFlexLabelやFlexTextBoxなどで定義されるHorizontalAlignプロパティの影響も受けます。次の表のように、TitleHorzAlignの指定が優先されます。

TitleHorzAlign | HorizontalAlign | 割付け
指定なし | 指定なし | 中央寄せ
指定なし | 指定あり | HorizontalAlignに従う
指定あり | 指定なし | TitleHorzAlignに従う
指定あり | 指定あり | TitleHorzAlignに従う

TitleHorzAlign指定例


FlexItem.TitleMarkerプロパティ

列タイトルに表示するマーカーを指定します。

$UPMARKERと$DOWNMARKERを指定することができます。0を指定するとマーカーは表示されません。

定数 | 説明
$UPMARKER | タイトル文字の右側に△を表示します
$DOWNMARKER | タイトル文字の右側に▽を表示します

TitleMarker指定例


FlexItem.TitleResizeプロパティ

列タイトルのマウス操作で列幅をリサイズするか指定します。

trueを指定すると、列の境界線をマウスでドラッグすることにより列幅を変更することができます。

falseを指定すると列幅は固定されます。

列幅の変更は、単一のFlexItemで構成されている列に限定されます。FlexColumnSetやFlexRowSetを組み合わせて複数の列が関係する境界線はTitleResizeプロパティの指定に関わらず変更する事はできません。


FlexItem.TitleRowsプロパティ

複数行の列タイトルが表示される場合の、占有量を行数で指定します。

複数行の列タイトルが表示される場合、標準では各行は均等の高さで表示されます。TitleRowsプロパティを指定すると、指定したFlexItemにより表示されるタイトルが指定した行数を占有して表示されるようになります。実際に表示される高さは、FlexView.TitleHeightで定義されるタイトル全体の高さを、TitleRowsプロパティの値を使った全体の行数で按分されて決定します。例えば、2行のタイトルが表示されるとき、一方のTitleRowsプロパティに2と指定されていると、TitelHeightの2/3と1/3で按分されます。

TitleRows指定例

FlexView FlexView1 {
    :
    FlexRecord FlexRecord1 {
        :
        FlexRowSet FlexRowSet1 {
            :
            Title = "TitleRows=3";
            TitleRows = 3;
            :
            FlexCheckButton FlexCheckButton1 {
                :
                Title = "TitleRows=2";
                TitleRows = 2;
                :
            }
            FlexTextBox FlexTextBox1 {
                :
                Title = "TitleRows=1";
                TitleRows = 1;
                :
            }
        }
    }
}


FlexItem.TitleStyleプロパティ

タイトルの表示方法を指定します。下記の値のいずれかになります。

定数 | 値 | 説明
FlexView.StyleNone | -1 | FlexView.TitleStyleプロパティの指定に従います。
FlexView.StyleStd | 0 | 通常のタイトル表示を行います。
FlexView.StyleFlat | 1 | フラットなデザインでタイトルを表示します。

表示例

デフォルトはFlexView.StyleNoneです。


FlexItem.TitleVertAlignプロパティ

列のタイトルの垂直方向の割付を指定します。

タイトルの割付は、TitleVertAlignプロパティのほかにFlexLabelやFlexTextBoxなどで定義されるVerticalAlignプロパティの影響も受けます。次の表のように、TitleVertAlignの指定が優先されます。

TitleVertAlign | VerticalAlign | 割付け
指定なし | 指定なし | 中央寄せ
指定なし | 指定あり | VerticalAlignに従う
指定あり | 指定なし | TitleVertAlignに従う
指定あり | 指定あり | TitleVertAlignに従う

TitleVertAlign指定例


FlexItem.Widthプロパティ

列の幅を指定します。

FlexColumnSetやFlexRowSetの下位に配置されたFlexItemは、上位の幅を超えて表示されることはありません。必ず、下位に配置されるFlexItemが収まる大きさで上のWidthを指定してください。

この例では、Label2とLabel3のWidth合計とLabel4のWidthを一致させる必要があります。


FlexItemメソッド

API version 4

メソッド

iOSAndroidWindows

FlexItemクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexItemイベント

API version 4

イベント

iOSAndroidWindows

FlexItemクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | TitleDClicked | タイトル上のダブルタップで発生します
4 | TitleLClicked | タイトル上のタップで発生します
4 | TitleRClicked | タイトル上のロングタップで発生します

クラス概要

基本クラスのイベント


FlexItem.TitleDClickedイベント

タイトル上のダブルタップで発生するイベントです。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Number | ShiftKey | 互換性のために残されています。値は常に0です。
Number | CtrlKey | 互換性のために残されています。値は常に0です。
Number | AltKey | 互換性のために残されています。値は常に0です。


FlexItem.TitleLClickedイベント

タイトル上のタップで発生するイベントです。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Number | ShiftKey | 互換性のために残されています。値は常に0です。
Number | CtrlKey | 互換性のために残されています。値は常に0です。
Number | AltKey | 互換性のために残されています。値は常に0です。


FlexItem.TitleRClickedイベント

タイトル上のロングタップで発生するイベントです。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Number | ShiftKey | 互換性のために残されています。値は常に0です。
Number | CtrlKey | 互換性のために残されています。値は常に0です。
Number | AltKey | 互換性のために残されています。値は常に0です。


FlexLabelクラス

Object
 | FlexItem
 |  | FlexData
 |  |  | FlexLabel

FlexLabelクラスは、FlexViewのセルの表示方法を定義するクラスで、対応するセルは、ラベルのように表示されます。

FlexLabelオブジェクトは、FlexRecordオブジェクト、FlexColumnSetオブジェクトまたは、FlexRowSetオブジェクトの下位に配置します。

VerticalAlignプロパティを指定した場合、FlexLabel内の文字を折り返し表示することはできません。

VerticalAlignプロパティを指定しない場合、FlexLabel内の文字は折り返し表示されます。その際、改行位置はワードラップが考慮され、英字で単語の切れ目が見つからない場合は改行は行われません。

表示範囲の右端までに文字が収まらないとき、改行して次の行に表示されます。改行位置はワードラップが考慮され、英字で単語の切れ目が見つからない場合、改行は行われません。

画面表示例

配置の制約

FlexLabelオブジェクトは、FlexHeaderクラスおよびその派生クラスのオブジェクトよりも左側(定義順で前)に配置することはできません。

FlexRowSetおよびFlexColumnSetの子として位置する場合、FlexHeaderクラスおよびその派生クラスのオブジェクトと同居することはできません。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


FlexLabelプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexLabelクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Border | CRW | boolean | $FALSE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | BorderStyle | CRW | integer | $SUNKEN | 枠線の種類
28 | BorderWidth | CRW | Number | 0 | 枠の太さ
4 | Icon | CRW | integer | 0 | セルに表示するアイコン番号の初期値
HT(10) | UseTapAndHold | CRW | boolean | $FALSE | タップ＆ホールド操作を使用するか
4 | Value | CRW | String Number Date |  | セルの初期値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexLabel.Iconプロパティ

セルに表示するアイコンの初期値を指定します。

Iconプロパティの値は、FlexView.InsertRowメソッドにより生成される各行のセルに表示するアイコンの初期値として使用されます。また、Iconプロパティを更新することで、既存の全ての行のセルのアイコンを一括して変更することができます。

指定する値はsetImageメソッドにより設定されたImegaListのうち、何番目のアイコンを表示するか0から始まる番号で指定します。

特定のセルを別のアイコンで表示するためには、変更したい行のFlexRowオブジェクトを取得し、対応するFlexLabelオブジェクトと同じ名前でFlexRowの子オブジェクトとして配置されるFlexLabelCellオブジェクトのIconプロパティを設定します。

表示例


FlexLabel.Valueプロパティ

セルの初期値を指定します。ValueTypeに指定したデータ型の値を保持します。

Valueプロパティの動作については、FlexData.Valueプロパティを参照してください。


FlexLabelメソッド

API version 4

メソッド

iOSAndroidWindows

FlexLabelクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | ResetImage | SetImageメソッドで設定したイメージリストを破棄します
4 | SetImage | セルのアイコン表示に使用するイメージリストを設定します

クラス概要

基本クラスのメソッド


FlexLabel.ResetImageメソッド

説明

SetImageメソッドで設定したイメージリストを破棄します。

呼出形式

FlexLabel1.ResetImage( )

戻り値

なし

引数

なし

例外

なし

使用例

FlexLabel1.ResetImage();

関連項目

SetImageメソッド


FlexLabel.SetImageメソッド

説明

セルのアイコン表示に使用するイメージリストを設定します。

表示例

表示するアイコンが行の高さよりも大きい場合、縦横比を維持したまま縮小されます。

呼出形式

FlexLabel1.SetImage( img )

戻り値

なし

引数

ImageList img

表示したいイメージリストを保持するImageListオブジェクト

例外

なし

使用例

FlexLabel FlexLabel1 {
    :
}
var img = new ImageList {
    MaskUse = $TRUE;
    MaskColR = 1;
    LoadImage("icons.png");
}
FlexLabel1.SetImage(img);
FlexLabel1.Icon = 0;

関連項目

Iconプロパティ

ResetImageメソッド

ImageListクラス


FlexLabelイベント

API version 4

イベント

iOSAndroidWindows

FlexLabelクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Clicked | タップされたときに発生します
4 | DoubleClicked | ダブルタップされたときに発生します
4 | RClicked | ロングタップされたときに発生します

クラス概要

基本クラスのイベント


FlexLabel.Clickedイベント

FlexLabelに対応するセル上のタップで発生するイベントです。

Clickedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、FlexViewのRowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトは、その時点でセルカーソルが置かれている位置とは異なる行をポイントしていることがあります。従って、イベントが発生した位置のデータを操作するためには、イベントのrowにより行を特定するようにしてください。


FlexLabel.DoubleClickedイベント

FlexLabelに対応するセル上のダブルタップで発生するイベントです。

DoubleClickedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、FlexViewのRowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトは、その時点でセルカーソルが置かれている位置とは異なる行をポイントしていることがあります。従って、イベントが発生した位置のデータを操作するためには、イベントのrowにより行を特定するようにしてください。


FlexLabel.RClickedイベント

FlexLabelに対応するセル上のロングタップで発生するイベントです。

RClickedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、FlexViewのRowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトは、その時点でセルカーソルが置かれている位置とは異なる行をポイントしていることがあります。従って、イベントが発生した位置のデータを操作するためには、イベントのrowにより行を特定するようにしてください。


FlexLabelCellクラス

Object
 | FlexCell
 |  | FlexLabelCell

FlexLabelCellクラスは、FlexLabelより生成されたFlexViewのセルを操作するためのアクセッサです。

FlexLabelCellのプロパティ操作により、ポイントしているセルを操作することができます。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


FlexLabelCellプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexLabelCellクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Icon | CRW | integer | 0 | セルに表示するアイコン番号の初期値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


FlexLabelCell.Iconプロパティ

セルに表示するアイコンを指定します。

指定する値はsetImageメソッドにより設定されたImegaListのうち、何番目のアイコンを表示するか0から始まる番号で指定します。

表示例


FlexLabelCellメソッド

API version 4

メソッド

iOSAndroidWindows

FlexLabelCellクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexLabelCellイベント

API version 4

イベント

iOSAndroidWindows

FlexLabelCellクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexListBoxクラス

Object
 | FlexItem
 |  | FlexData
 |  |  | FlexListBox

FlexListBoxクラスは、FlexViewのセルの表示方法を定義するクラスで、対応するセルは、プルダウンリストのように表示されます。

FlexListBoxオブジェクトは、FlexRecordオブジェクト、FlexColumnSetオブジェクトまたは、FlexRowSetオブジェクトの下位に配置します。

Clickedイベントの発生およびリストの開閉を行うタップ操作は、FlexListBox全体で有効です。
標準のリストのスタイルが優先されるため、BgColorプロパティによる色指定は無効です。

画面表示例

キーボード操作

このオブジェクトはキーボード操作に対応しています。下記のキー操作を行うことができます。

キー | 説明
F4 | 選択肢の表示
SPACE | 選択肢の表示

配置の制約

FlexListBoxオブジェクトは、FlexHeaderクラスおよびその派生クラスのオブジェクトよりも左側(定義順で前)に配置することはできません。

FlexRowSetおよびFlexColumnSetの子として位置する場合、FlexHeaderクラスおよびその派生クラスのオブジェクトと同居することはできません。


FlexListBoxプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexListBoxクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Active | CRW | boolean | $TRUE | 活性の指定
HT(10) | AutoCursorMove | CR | boolean | $FALSE | セルカーソルの自動移動
4 | Border | CRW | boolean | $FALSE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | BorderStyle | CRW | integer | $SUNKEN | 枠線の種類
28 | BorderWidth | CRW | Number | 0 | 枠の太さ
HT(10) | DropdownKey | CR | integer |  | ドロップダウンするキーを指定
HT(10) | DropdownStyle | CR | integer | $STD | 選択リスト部の表示方法
27 | FlatIconColor | CRW | integer | $STD | リストボックスのアイコンの色
HT(10) | KeySelect | CRW | boolean | $FALSE | キー入力による項目選択の可否
4 | ListData | CRW | String |  | リストの選択肢
27 | Style | CRW | integer | 0 | リストボックスの表示スタイル
HT(10) | UseTapAndHold | CRW | boolean | $FALSE | タップ＆ホールド操作を使用するか
4 | Value | CRW | String |  | セルの初期値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexListBox.Activeプロパティ

セル上のボタンの活性の初期値を指定します。

Activeプロパティの値は、FlexView.InsertRowメソッドにより生成される各行のセルに表示する活性の初期値として使用されます。また、Activeプロパティを更新することで、既存の全ての行の活性を一括して変更することができます。

特定のセルの活性を変更するためには、変更したい行のFlexRowオブジェクトを取得し、対応するFlexListBoxオブジェクトと同じ名前でFlexRowの子オブジェクトとして配置されるFlexListBoxCellオブジェクトのActiveプロパティを設定します。

trueに指定すると、ボタンの操作が可能となります。

falseを指定すると、ボタンの操作は禁止されます。


FlexListBox.AutoCursorMoveプロパティ

セルカーソルの移動を自動的に行う場合trueに設定します。

trueに指定した場合、次の契機で右矢印キーを押下したときと同じようにセルカーソルを移動します。

・Enterキーにより入力内容を確定したとき。

行の末尾など、右矢印キーを押下してもカーソルが移動しない場合、AutoCursorMoveプロパティをtrueに指定してもセルカーソルは移動しませんが、入力内容は確定され変更があればSelectChangedイベントが発生します。


FlexListBox.DropdownKeyプロパティ

ドロップダウンを行うキーを設定します。

未設定時はF4キーがドロップダウンキーとなります。

DropdownKeyプロパティに指定できる値は、キーの指定を参照してください。


FlexListBox.DropdownStyleプロパティ

選択リスト部の表示スタイルを指定します。

以下の定数を指定します。

定数 | 値 | 説明
$STD | 0 | 標準。オブジェクト下部へリスト表示
$FLOATING | 1 | リストを画面中央へ拡大・ポップアップ表示

$FLOATING指定時のリストの表示位置は画面サイズにより自動的に調整されます。

またフォントは現在指定しているフォントを自動的にサイズ調整して使用します。


FlexListBox.FlatIconColorプロパティ

StyleプロパティがFlexView.StyleFlatの時の、リストボックスのアイコンの色を、色定数で指定します。

$STDを指定すると、FlexData.FgColorと同じになります。

デフォルトは$STDです。


FlexListBox.KeySelectプロパティ

キー入力による項目選択を行うかどうかを指定します。

デフォルトはfalseです。


FlexListBox.ListDataプロパティ

リストボックス内に表示される選択肢を指定します。

選択肢は、カンマ区切りの文字列で指定します。改行やタブを含むことはできません。

選択肢中にカンマを含めたい場合、1要素をダブルコーテーション( " )で括るか、\でエスケープします。

選択肢中にダブルコーテーション( " )を含めたい場合、1要素をダブルコーテーション( “ )で括らずにダブルコーテーション( " )を記述するか、\でエスケープします。

指定例

FlexListBox1.ListData = "選択肢1,選択肢2,選択肢3";
FlexListBox2.ListData = "\"1,000\",\"2,000\",\"3,000\"";
FlexListBox3.ListData = "1\\,売上,2\\,仕入,3\\,破棄";

表示例

ListData = "選択肢1,選択肢2,選択肢3"

ListData = "\"1,000\",\"2,000\",\"3,000\""

ListData = "1\\,売上,2\\,仕入,3\\,破棄"


FlexListBox.Styleプロパティ

リストボックスの表示スタイルを指定します。下記の値のいずれかになります。

定数 | 値 | 説明
FlexView.StyleStd | 0 | 通常のリストボックス表示を行います。
FlexView.StyleFlat | 1 | フラットなデザインでリストボックスを表示します。 背景色はFlexData.BgColorプロパティの指定値と同じになります。 アイコンの色はFlexData.FgColorプロパティの指定値と同じになります。

表示例

デフォルトはFlexView.StyleStdです。


FlexListBox.Valueプロパティ

セルの初期値を指定します。

Valueプロパティの動作については、FlexData.Valueプロパティを参照してください。


FlexListBoxメソッド

API version 4

メソッド

iOSAndroidWindows

FlexListBoxクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexListBoxイベント

API version 4

イベント

iOSAndroidWindows

FlexListBoxクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Clicked | タップされたときに発生します
4 | RClicked | ロングタップされたときに発生します
4 | SelectChanged | 選択肢の選択で発生します

クラス概要

基本クラスのイベント


FlexListBox.Clickedイベント

FlexListBoxに対応するセル上のタップで発生するイベントです。リストボックスを表示するアイコン上では発生しません。

Clickedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、RowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたClickedイベントのrow,colの値は、その時点でセルカーソルが置かれている位置とは異なることがあります。従って、Clickedイベントが発生した位置のデータを操作するためには、イベントのrowとcolによりセルを特定するようにしてください。


FlexListBox.RClickedイベント

FlexListBoxに対応するセル上のロングタップで発生するイベントです。

RClickedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、RowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトは、その時点でセルカーソルが置かれている位置とは異なる行をポイントしていることがあります。従って、イベントが発生した位置のデータを操作するためには、イベントのrowにより行を特定するようにしてください。


FlexListBox.SelectChangedイベント

FlexListBoxに対応するセルのリスト選択操作で発生するイベントです。SelectChangedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、FlexViewのRowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトは、その時点でセルカーソルが置かれている位置とは異なる行をポイントしていることがあります。従って、イベントが発生した位置のデータを操作するためには、イベントのrowにより行を特定するようにしてください。


FlexListBoxCellクラス

Object
 | FlexCell
 |  | FlexListBoxCell

FlexListBoxCellクラスは、FlexListBoxより生成されたFlexViewのセルを操作するためのアクセッサです。

FlexListBoxCellのプロパティ操作により、ポイントしているセルを操作することができます。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


FlexListBoxCellプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexListBoxCellクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Active | CRW | boolean | $TRUE | リスト選択の可否
27 | FlatIconColor | CRW | integer | $STD | リストボックスのアイコンの色
27 | Style | CRW | integer | 0 | リストボックスの表示スタイル

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


FlexListBoxCell.Activeプロパティ

セル上のリストボックスの活性を指定します。

trueに指定すると、リストボックスの操作が可能となります。

falseを指定すると、リストボックスの操作は禁止されます。


FlexListBoxCell.FlatIconColorプロパティ

StyleプロパティがFlexView.StyleFlatの時の、リストボックスのアイコンの色を、色定数で指定します。

$STDを指定すると、FlexData.FgColorと同じになります。


FlexListBoxCell.Styleプロパティ

リストボックスの表示スタイルを指定します。下記の値のいずれかになります。

定数 | 値 | 説明
FlexView.StyleStd | 0 | 通常のリストボックス表示を行います。
FlexView.StyleFlat | 1 | フラットなデザインでリストボックスを表示します。 背景色はFlexData.BgColorプロパティの指定値と同じになります。 アイコンの色はFlexData.FgColorプロパティの指定値と同じになります。

表示例


FlexListBoxCellメソッド

API version 4

メソッド

iOSAndroidWindows

FlexListBoxCellクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexListBoxCellイベント

API version 4

イベント

iOSAndroidWindows

FlexListBoxCellクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexRecordクラス

Object
 | FlexRecord

FlexRecordは、FlexViewクラスのための行の表示方法を定義するクラスです。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


FlexRecordプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexRecordクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | BgColor | CRW | integer | $STD | 背景色
4 | Border | CRW | boolean | $FALSE | 枠の表示（使用できません。将来のために予約されています。）
4 | BorderStyle | CRW | integer | 0 | 枠線の種類（使用できません。将来のために予約されています。）
4 | Height | CRW | integer | 20 | 行の高さ
4 | StripedOpacity | CRW | integer | 100 | ストライプ表示の透明度
4 | Value | CRW | String Number Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexRecord.BgColorプロパティ

行の背景色を指定します。

実際に表示される色は、StripedOpacityプロパティにより透過演算された色となります。

奇数行の場合：白にBgColorをStripedOpacityに比率で透過した色となります。

偶数行の場合：BgColorとなります。

表示例

BgColor = $CCFFFF

StripedOpacity = 80


FlexRecord.BorderStyleプロパティ

（使用できません。将来のために予約されています。）


FlexRecord.Heightプロパティ

1行の高さを指定します。

表示例

Height = 40

Height = 60

FlexRowSetを使用している場合、1行に複数行のデータが表示されることがあります。各データの高さは、その列に表示されるデータの行数でHeightプロパティに指定した高さを等分した高さになります。


FlexRecord.StripedOpacityプロパティ

行をストライプ表示する際の奇数行の透過率を0から100の比率で指定します。

0を指定すると、不透明となり偶数行と同じ色となります。100を指定すると完全透過となり白くなります。

奇数行の場合：白にBgColorをStripedOpacityに比率で透過した色となります。

偶数行の場合：BgColorとなります。

表示例

BgColor = $CCFFFF

StripedOpacity=80


FlexRecord.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


FlexRecordメソッド

API version 4

メソッド

iOSAndroidWindows

FlexRecordクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexRecordイベント

API version 4

イベント

iOSAndroidWindows

FlexRecordクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexRowクラス

Object
 | FlexRow

FlexRowクラスはFlexViewに表示されている個々の行を表現するクラスです。

FlexRowオブジェクトの下位に配置されるFlexCellの派生オブジェクトによりFlexRowオブジェクトがポイントする行の個々のセルにアクセスすることができます。

FlexRowオブジェクトは、FlexView.InsertRow、FlexView.DeleteRow、FlexView.GetRowの各メソッドの戻り値、または、各種のイベントの付加情報として取得することができます。直接スクリプトから生成することはできません。

FlexRowオブジェクトを取得した後、行の追加削除を含む操作を行うと、FlexRowオブジェクトが指す行が影響を受けることがあります。以下の影響を受ける操作と内容を説明します。

FlexRowが指している行より前の行を削除した場合

FlexRowは、削除した行数だけ前の行をポイントします。

FlexRowが指している行より後の行を削除した場合

FlexRowは影響を受けません。

FlexRowが指している行を削除した場合

FlexRowは無効となり、どの行もポイントしていない状態となります。

FlexRowが指している行より前に新しい行を追加した場合

FlexRowは追加した行数だけ後の行をポイントします

FlexRowが指している行より後に新しい行を追加した場合

FlexRowは影響を受けません

列構造を変更した場合

FlexRowは無効となり、どの行もポイントしていない状態となります。

FlexViewを削除した場合

FlexRowは無効となり、どの行もポイントしていない状態となります。

FlexRowオブジェクトが無効状態となっている場合、InvalidStateプロパティが$TRUEに設定され、メソッドの呼び出しは失敗します。

利用例 既存行のLabel1の背景色を条件により変更する

var row = FlexView1.GetRow();
while( !row.end ) {
    if( row.Label1.Value >= 0 ) {
        row.Label1.BgColor = $WHITE;
    } else {
        row.Label1.BgColor = $RED;
    }
    row.MoveNext();
}

デフォルトプロパティとValueType

デフォルトプロパティはPositionです。ValueTypeの指定は無効です。


FlexRowプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexRowクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | End | R | boolean | 終端を示す
4 | InvalidState | R | boolean | 無効状態を示す
4 | Position | R | integer | 行位置

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexRow.Endプロパティ

FlexRowのポイントする行が終端を越えたとき$TRUEとなります。

MoveNextメソッドにより最終行を超えた場合、およびMovePrevメソッドにより先頭行を超えた場合に$TRUEとなります。

また、FlexRowオブジェクトを取得するメソッドでポイントするべき行が見つからない場合、$TRUEとなります。

Endプロパティが$TRUEの場合でも、MoveNext、MovePrevメソッドを呼び出すことができます。例えば、最終行を検索するために以下のような処理を行うことができます。

var row = FlexView1.GetRow();
while( !row.End ) {
    row.MoveNext();
}
row.MovePrev();

注 このサンプルはEndプロパティの説明のために記述されているため非効率です。最終行をポイントするためには、FlexView.GetRow(-1)を呼び出す方が高速に動作します。

InvalidStateプロパティが$TRUEの場合、Endプロパティを参照すると例外 EXT-12が発生します。


FlexRow.InvalidStateプロパティ

FlexRowが、もはやどの行もポイントしていない場合$TRUEとなります。

InvalidStateプロパティが$TRUEに場合、MoveNextなどで行を移動したり、positionプロパティを参照するなど、ポイントしている行に依存する操作を行うと例外が発生します。

InvalidStateプロパティは、以下の操作で$TRUEに設定されます。

・FlexRowオブジェクトがポイントしている行を削除したとき。

・FlexViewオブジェクトを削除したとき。


FlexRow.Positionプロパティ

現在ポイントしている行番号を示します。

行番号は、Positionプロパティを参照した時点での行番号です。FlexRowオブジェクトを取得後、FlexViewの行操作により行番号が変化することがあります。

InvalidStateプロパティが$TRUEの場合、Positionプロパティを参照すると例外 EXT-12が発生します。

MovePrevにより先頭行の前をポイントしている場合、FlexView.PrevEndPosition(-900)となります。

MoveNextにより最終行の次をポイントしている場合、FlexView.NextEndPosition(-901)となります。


FlexRowメソッド

API version 4

メソッド

iOSAndroidWindows

FlexRowクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | GetColumn | 指定位置のFlexCellを取得します
4 | GetHeaderColumn | 指定位置のFlexCellを取得します
4 | MoveNext | 次の行へ移動します
4 | MovePrev | 前の行へ移動します

クラス概要

基本クラスのメソッド


FlexRow.GetColumnメソッド

説明

指定位置のFlexCellオブジェクトのリファレンスを返します

GetColumnメソッドは、ヘッダ列を除いたデータ列を取得することができます。ヘッダ列を取得するためにはGetHeaderColumnメソッドを使用してください。

InvalidStateプロパティが$TRUEの場合、例外 EXT-12が発生します。

呼出形式

var col = row.GetColumn( pos )

戻り値

正常にFlexCellを取得できた場合、FlexCellのリファレンスを返します。

取得できない場合、nullを返します。

引数

integer pos

ヘッダ列を除いた左端のデータを0から始まる列番号を指定します。

例外

EXT-12

無効なアクセッサです

使用例

var row = FlexView1.GetRow();
var key = null;
var sum = 0;
while (!row.End) {
    var col = row.GetColumn(1);
    col.BgColor = $STD;
    row.MoveNext();
}

関連項目


FlexRow.GetHeaderColumnメソッド

説明

指定位置のFlexCellオブジェクトのリファレンスを返します

GetColumnとは異なり、左端のヘッダ列を0として位置を指定し、ヘッダ列、データ列とも取得することができます。

InvalidStateプロパティが$TRUEの場合、例外 EXT-12が発生します。

呼出形式

var col = row.GetHeaderColumn( pos )

戻り値

正常にFlexCellを取得できた場合、FlexCellのリファレンスを返します。

取得できない場合、nullを返します。

引数

integer pos

0から始まる列番号を指定します。列番号は先頭のヘッダ列が0、次のヘッダ列を1と指定します。データ列はヘッダの続き番号で指定します。

例外

EXT-12

無効なアクセッサです

使用例

var row = FlexView1.GetRow();
var key = null;
var sum = 0;
while (!row.End) {
    var col = row.GetHeaderColumn(1);
    col.BgColor = $STD;
    row.MoveNext();
}

関連項目


FlexRow.MoveNextメソッド

説明

次の行をポイントします

ポイントする行を進める場合、FlexView.GetRow(n)メソッドよりも高速です。

InvalidStateプロパティが$TRUEの場合、例外 EXT-12が発生します。

呼出形式

var ret = row.MoveNext( )

戻り値

正常に移動した場合、trueを返します。移動できない場合falseを返します。

引数

なし

例外

EXT-12

無効なアクセッサです

使用例

var row = FlexView1.GetRow();
while (!row.End) {
    if (row.lbDeleteFlag) {
        row = FlexView1.DeleteRow(row);
    } else {
        row.MoveNext();
    }
}

関連項目

MovePrevメソッド


FlexRow.MovePreviousメソッド

API version 4

FlexRow.MovePrevメソッド

iOSAndroidWindows

説明

前の行をポイントします

ポイントする行を戻る場合、FlexView.GetRow(n)メソッドよりも高速です。

InvalidStateプロパティが$TRUEの場合、例外 EXT-12が発生します。

呼出形式

var ret = row.MovePrev( )

戻り値

正常に移動した場合、trueを返します。移動できない場合falseを返します。

引数

なし

例外

EXT-12

無効なアクセッサです

使用例

var row = FlexView1.GetRow();
var key = null;
var sum = 0;
while (!row.End) {
    if (key != null && key != row.keyItem) {
        row.MovePrev();
        row.subTotal = sum;
        row.MoveNext();
        key = row.keyItem.ValueOf();
        sum = 0;
    }
    row.MoveNext();
}
row.MovePrev();
row.subTotal = sum;

関連項目

MoveNextメソッド


FlexRowイベント

API version 4

イベント

iOSAndroidWindows

FlexRowクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexRowSetクラス

Object
 | FlexItem
 |  | FlexRowSet

FlexRowSetは、FlexViewクラスの列の表示方法を定義するクラスで、下位に配置されるFlexItemの派生クラスを縦方向に並べて表示します。

画面表示例

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


FlexRowSetプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexRowSetクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Value | CRW | String Number Date | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexRowSet.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


FlexRowSetメソッド

API version 4

メソッド

iOSAndroidWindows

FlexRowSetクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexRowSetイベント

API version 4

イベント

iOSAndroidWindows

FlexRowSetクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexTextBoxクラス

Object
 | FlexItem
 |  | FlexData
 |  |  | FlexTextBox

FlexTextBoxクラスは、FlexViewのセルの表示方法を定義するクラスで、対応するセルは、テキストボックスのように表示されます。

FlexTextBoxオブジェクトは、FlexRecordオブジェクト、FlexColumnSetオブジェクトまたは、FlexRowSetオブジェクトの下位に配置します。

画面表示例

編集状態

編集状態では、白の背景に黒の文字に変化し文字カーソルが点滅してキー入力やマウスにより編集操作を行うことができます。

編集状態には、新規入力モードと再編集モードがあります。セルのダブルタップにより編集状態に遷移した場合は再編集モードとなり、それ以外では新規入力モードです。再編集モードでは現在の値が表示され編集を行うことができ、左右の矢印キーで文字カーソルが移動します。新規入力モードでは、編集前の値は表示されず、左右の矢印キーでセルを移動します。

Formatプロパティによる書式指定は、編集状態では解除されデータの型に対応した形式で入力します。入力できる文字種はInputModeプロパティの指定にのみ制限されデータタイプによる制限はありません。例えば、Number型のFlexTextBoxでもInputModeで規制されていなければ"A"や"B"を入力することができます。ただし、入力値が確定される際にデータタイプに応じた変換が行われ、不正な文字は無効となります。

Enterキーの押下、セルカーソルの移動、フォーカスの移動で編集内容が確定され通常状態に戻ります。また、ESCキーの押下、スクロール操作で編集状態はキャンセルされ通常状態に戻り、入力途中の内容は失われます。

入力した値はFlexCellオブジェクトのValueプロパティで取得できますが、Valueプロパティが変化するのは編集状態が解除されたときです。編集状態でValueプロパティを参照した場合は、編集状態に入る前の値が取得されることに注意してください。TimerイベントやLabelクラスのClickedイベントなど、編集状態が解除されないイベントハンドラで値を参照する必要がある場合は、RootクラスのDecideValueメソッドを利用してください。強制的に編集状態が解除され、入力途中の値がValueプロパティに格納されます。

通常状態

編集操作を行うことはできません。FlexLabelセルと似た表示になりますが、セルカーソルの色指定は無視され、常にセルに指定されている表示色を維持します。セルカーソルの位置は、周囲に表示される点線により確認してください。

配置の制約

FlexTextBoxオブジェクトは、FlexHeaderクラスおよびその派生クラスのオブジェクトよりも左側(定義順で前)に配置することはできません。

FlexRowSetおよびFlexColumnSetの子として位置する場合、FlexHeaderクラスおよびその派生クラスのオブジェクトと同居することはできません。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


FlexTextBoxプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexTextBoxクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
HT(10) | AutoCursorMove | CR | boolean | $FALSE | セルカーソルの自動移動
4 | Border | CRW | boolean | $FALSE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | BorderStyle | CRW | integer | $SUNKEN | 枠線の種類
28 | BorderWidth | CRW | Number | 0 | 枠の太さ
4 | Editable | CRW | boolean | $TRUE | 編集の可否
27 | EditBySingleTap | CR | boolean | $FALSE | シングルタップで編集状態にするかどうか
4 | IMEMode | CR | integer |  | IMEの制御
4 | InputMode | CR | integer |  | 入力可能文字種の指定
4 | MaxLength | CR | integer |  | 最大入力可能文字数
5 | SIPMode | CR | integer | $STD | SIP(Software Input Panel)の外観や動作の指定
HT(10) | UseTapAndHold | CRW | boolean | $FALSE | タップ＆ホールド操作を使用するか
4 | Value | CRW | String Number Date |  | セルの初期値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexTextBox.AutoCursorMoveプロパティ

セルカーソルの移動を自動的に行う場合trueに設定します。

trueに指定した場合、次の契機で右矢印キーを押下したときと同じようにセルカーソルを移動します。

・Enterキーにより入力内容を確定したとき。

・MaxLengthプロパティに指定した文字数のキー入力が行われたとき。

行の末尾など、右矢印キーを押下してもカーソルが移動しない場合、AutoCursorMoveプロパティをtrueに指定してもセルカーソルは移動しませんが、入力内容は確定され変更があればSelectChangedイベントが発生します。


FlexTextBox.Editableプロパティ

編集の許可・禁止を設定します。

定数 | 説明
$FALSE | 編集禁止
$TRUE | 編集許可


FlexTextBox.EditBySingleTapプロパティ

セルをシングルタップで編集状態にするかどうかを指定します。

$TRUEの場合、セルをシングルタップすると編集状態になります。

$FALSEの場合、セルをダブルタップすると編集状態になります。

またEditBySingleTapプロパティが$TRUEの場合、シングルタップをしたときにClickedイベントは発生しません。

デフォルトは$FALSEです。


FlexTextBox.IMEModeプロパティ

指定を行うとキーボードフォーカスを受けたときに指定したモードに切り替わります。また、キーボードフォーカスを失ったときに以前の状態に復帰します。

Biz/Browser HTでの制限

Biz/Browser HTではOSの制約によりIMEの変換モード(半角カナ入力や無変換入力等)を制御することはできません。

IMEModeプロパティではSIP(Software Input Panel)の表示/非表示のみ制御できます。

ただし、AndroidではIMEによってはSIP(Software Input Panel)の表示/非表示が正しく行われない場合があります。

Biz/Browser HTにおいてSIP(Software Input Panel)の入力モードを制御するにはSIPModeプロパティが使用できます。

IMEModeプロパティに値が設定された時のSIP(Software Input Panel)の表示/非表示制御は下記のとおりです。

なお、SIPを表示する値と表示しない値を同時に指定した場合、SIPは表示されません。

定数 | 値 | 動作
$STD | 0 | デフォルトの動作(SIPの表示)を行います。
$CLOSE | 4096 | SIPを表示しない
$OPEN | 8192 | SIPを表示する

なお、他のBiz/Browser製品との互換性のため、下記の定数も指定可能です。

定数 | 値 | 動作
$SIP_CLOSE | 0x10000000 | SIPを表示しない
$ALPHA | 2 | SIPを表示する
$KANA | 8
$DALPHA | 32
$DKANA | 128
$DHIRA | 256
$SIP_OPEN | 0x20000000


FlexTextBox.MaxLengthプロパティ

最大入力文字数を指定します。

MaxLengthプロパティで指定した文字数より多い文字を画面から入力することはできません。ただし、スクリプトによりMaxLengthよりも多い文字列をセットすることは可能です。

ValueTypeがNumberの場合は符号、小数点を含みます。


FlexTextBox.SIPModeプロパティ

表示されるSIP(Software Input Panel)の外観や動作を指定します。

オブジェクトがキーボードフォーカスを受けた際のSIP(Software Input Panel)の表示制御については、IMEModeプロパティを使用して下さい。

Android版

以下の定数を組み合わせて使用します

キーボード種別

0～1個指定できます。

定数 | 値 | 説明
(指定なし) |  | デフォルトモード
$SIP_TYPE_DATETIME | [TYPE_DATETIME] | 日付/時刻入力モード
$SIP_TYPE_DATE | [TYPE_DATE] | 日付入力モード
$SIP_TYPE_TIME | [TYPE_TIME] | 時刻入力モード
$SIP_TYPE_NUMBER | [TYPE_NUMBER] | 数値入力モード
$SIP_TYPE_PHONE | [TYPE_PHONE] | 電話番号入力モード
$SIP_TYPE_NAME | [TYPE_NAME] | 名前(人名)入力モード
$SIP_TYPE_EMAIL | [TYPE_EMAIL] | メールアドレス入力モード
$SIP_TYPE_URL | [TYPE_URL] | URL入力モード

リターンキー種別

0～1個指定できます。

定数 | 値 | 説明
(指定なし) |  | "完了"ボタン
$SIP_RETURNKEY_DONE | [RETURNKEY_DONE] | "完了"ボタン
$SIP_RETURNKEY_GO | [RETURNKEY_GO] | "開く"ボタン
$SIP_RETURNKEY_NONE | [RETURNKEY_NONE] | "改行"ボタン
$SIP_RETURNKEY_PREVIOUS | [RETURNKEY_PREVIOUS] | "戻る"ボタン
$SIP_RETURNKEY_SEARCH | [RETURNKEY_SEARCH] | "検索"ボタン
$SIP_RETURNKEY_SEND | [RETURNKEY_SEND] | "送信"ボタン


FlexTextBox.Valueプロパティ

セルの初期値を指定します。ValueTypeに指定したデータ型の値を保持します。

Valueプロパティの動作については、FlexData.Valueプロパティを参照してください。


FlexTextBoxメソッド

API version 4

メソッド

iOSAndroidWindows

FlexTextBoxクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexTextBoxイベント

API version 4

イベント

iOSAndroidWindows

FlexTextBoxクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | Clicked | タップで発生します
4 | RClicked | ロングタップで発生します
4 | TextChanged | テキストの入力で発生します

クラス概要

基本クラスのイベント


FlexTextBox.Clickedイベント

FlexTextBoxに対応するセル上のタップで発生するイベントです。
Clickedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、FlexViewのRowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトは、その時点でセルカーソルが置かれている位置とは異なる行をポイントしていることがあります。従って、イベントが発生した位置のデータを操作するためには、イベントのrowにより行を特定するようにしてください。


FlexTextBox.RClickedイベント

FlexLabelに対応するセル上のロングタップで発生するイベントです。

RClickedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、FlexViewのRowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトは、その時点でセルカーソルが置かれている位置とは異なる行をポイントしていることがあります。従って、イベントが発生した位置のデータを操作するためには、イベントのrowにより行を特定するようにしてください。


FlexTextBox.TextChangedイベント

FlexTextBoxに対応するセルの編集操作でValueに変化があったときに発生するイベントです。TextChangedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
}

セルカーソルは、FlexViewのRowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトは、その時点でセルカーソルが置かれている位置とは異なる行をポイントしていることがあります。従って、イベントが発生した位置のデータを操作するためには、イベントのrowにより行を特定するようにしてください。


FlexTextBoxCellクラス

Object
 | FlexCell
 |  | FlexTextBoxCell

FlexTextBoxCellクラスは、FlexTextBoxより生成されたFlexViewのセルを操作するためのアクセッサです。

FlexTextBoxCellのプロパティ操作により、ポイントしているセルを操作することができます。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


FlexTextBoxCellプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexTextBoxCellクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Editable | CRW | boolean | $TRUE | 編集の可否

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


FlexTextBoxCell.Editableプロパティ

編集の許可・禁止を設定します。

定数 | 説明
$FALSE | 編集禁止
$TRUE | 編集許可


FlexTextBoxCellメソッド

API version 4

メソッド

iOSAndroidWindows

FlexTextBoxCellクラスには以下のメソッドが定義されています。

API | 名前 | 説明
27 | StartEditMode | セルを編集状態にします

クラス概要

基本クラスのメソッド


FlexTextBoxCell.StartEditModeメソッド

説明

セルを編集状態にします。

呼出形式

cell.StartEditMode( )

戻り値

なし

引数

なし

例外

なし

使用例

var row = FlexView1.GetRow(FlexView1.RowPosition);
var col = row.GetColumn(1);
col.StartEditMode();

関連項目


FlexTextBoxCellイベント

API version 4

イベント

iOSAndroidWindows

FlexTextBoxCellクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexTreeHeaderクラス

Object |  |  |  |  |
 | FlexItem |  |  |  |
 |  | FlexData
 |  |  | FlexHeader
 |  |  |  | FlexGroupHeader
 |  |  |  |  | FlexTreeHeader

FlexTreeHeaderクラスは、FlexViewの行ヘッダの表示方法を定義するクラスです。対応するヘッダセルは、FlexGroupHeaderと同様に、セル値のキーブレークまたは、指定した行数単位にグループ化されて表示されます。

FlexTreeHeaderは、グループをツリー形式で表示して画面操作によりグループを折畳んだり元に戻したりすることができます。

FlexTreeHeaderオブジェクトは、FlexRecordオブジェクトまたは、FlexColumnSetオブジェクトの下位に配置します。

VerticalAlignプロパティに$STDがセットされている場合、垂直位置は$CENTERとなります。

Clickedイベントの発生およびグループの折り畳みを行うタップ操作は、FlexTreeHeader全体で有効です。

画面表示例

配置の制約

FlexTreeHeaderオブジェクトは、FlexHeader、FlexGroupHeaderおよびFlexHeader以外から派生したクラスのオブジェクトよりも右側(定義順で後)に配置することはできません。

FlexColumnSetの子として位置する場合、FlexTreeHeader以外から派生したクラスのオブジェクトと同居することはできません。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


FlexTreeHeaderプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexTreeHeaderクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | BgStyle | CRW | integer | $INDENT | 背景の表示方法
4 | Foldable | CRW | boolean | $TRUE | 折畳み操作の可否
4 | HorizontalAlign | CR | integer | $STD | 水平方向の位置合わせ
4 | Value | CRW | String Number Date |  | セルの初期値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexTreeHeader.BgStyleプロパティ

ツリーの背景部分の表示方法を指定します。

表示例

BgStyle = $INDENT

BgStyle = $NONE

BgStyle = $LINE

BgStyle = $PANEL

BgStyle = $FILL


FlexTreeHeader.Foldableプロパティ

ツリーを画面操作で折畳み可能とする指定します。

$TRUEを指定した場合、折畳みアイコン [image] が表示され、タップでツリーを折畳んだり、元に戻すことができます。

$FALSEを指定した場合、折畳みアイコンは表示されず、画面操作でツリーを折畳むことはできません。

Foldableプロパティは、個々の行に対して個別に指定することはできません。

表示例

Foldable = $TRUE

Foldable = $FALSE


FlexTreeHeader.HorizontalAlignプロパティ

水平方向の位置合わせを行います。$STDは中央寄せになります。

定数 | 値 | 説明
$STD | 0 | $LEFTと同じ
$LEFT | 1 | 左寄せ
$CENTER | 2 | 中央寄せ
$RIGHT | 3 | 右寄せ


FlexTreeHeader.Valueプロパティ

セルの初期値を指定します。ValueTypeに指定したデータ型の値を保持します。

Valueプロパティの動作については、FlexData.Valueプロパティを参照してください。


FlexTreeHeaderメソッド

API version 4

メソッド

iOSAndroidWindows

FlexTreeHeaderクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexTreeHeaderイベント

API version 4

イベント

iOSAndroidWindows

FlexTreeHeaderクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexTreeHeaderCellクラス

Object
 | FlexCell
 |  | FlexTreeHeaderCell

FlexTreeHeaderCellクラスは、FlexTreeHeaderより生成されたFlexViewのセルを操作するためのアクセッサです。

FlexTreeHeaderCellのプロパティ操作により、ポイントしているセルを操作することができます。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


FlexTreeHeaderCellプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexTreeHeaderCellクラスで定義されるプロパティはありません。

クラス概要

基本クラスのプロパティ


FlexTreeHeaderCellメソッド

API version 4

メソッド

iOSAndroidWindows

FlexTreeHeaderCellクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


FlexTreeHeaderCellイベント

API version 4

イベント

iOSAndroidWindows

FlexTreeHeaderCellクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FlexViewプロパティ

API version 4

プロパティ

iOSAndroidWindows

FlexViewクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | BgColor | CRW | integer | 0 | 背景色
4 | Border | CR | boolean | $FALSE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | ColumnPosition | CRW | integer | -1 | カーソル列
4 | CursorCellOpacity | CRW | integer | 0 | カーソルセルのカーソル透明度
4 | CursorColor | CRW | integer | 0 | カーソルの色
4 | CursorLineOpacity | CRW | integer | 100 | カーソル行のカーソル透明度
HT(10) | CursorMove | CRW | integer | $STD | カーソルの移動方法
4 | CursorTextColor | CRW | integer | 0 | カーソルセルの文字色
4 | FontFace | CR | integer | $STD | フォントの装飾属性
4 | FontKind | CR | integer | $STD | フォントの種類
4 | FontSize | CR | integer | 10 | フォントサイズ
4 | HScroll | CR | integer | $AUTO | 水平スクロールバーの表示方法
HT(10) | NoPrefix | CRW | boolean | $FALSE | &を解釈しないモード
4 | RowCount | CR | integer | 0 | 現在行数
4 | RowPosition | CRW | integer | -1 | カーソル行
27 | RuledLine | CRW | boolean | $TRUE | 罫線を表示するかどうか
27 | RuledLineColor | CRW | integer | $STD | 罫線の色
4 | ShowTitle | CRW | boolean | $TRUE | タイトルの表示制御
4 | TitleBgColor | CRW | integer | 0 | タイトルの背景色
4 | TitleFgColor | CRW | integer | 0 | タイトルの文字色
5 | TitleFontFace | CR | integer | $STD | タイトルのフォント装飾属性
5 | TitleFontKind | CR | integer | $STD | タイトルのフォントの種類
5 | TitleFontSize | CR | integer | $STD | タイトルのフォントサイズ
4 | TitleHeight | CRW | integer | 20 | タイトルの高さ
27 | TitleRuledLine | CRW | boolean | $TRUE | TitleStyleプロパティがFlexView.StyleFlatの場合に罫線を表示するかどうか
27 | TitleRuledLineColor | CRW | integer | $STD | TitleStyleプロパティがFlexView.StyleFlatの場合の罫線の色
27 | TitleStyle | CRW | integer | 0 | タイトルのスタイル
5 | UseTitleFont | CR | boolean | $FALSE | タイトル個別のフォント指定をするかどうか
4 | VScroll | CR | integer | $AUTO | 垂直スクロールバーの表示方法

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FlexView.ColumnPositionプロパティ

現在選択されている列位置を示します。列位置は、FlexHeaderおよび派生クラスにより構成された列を除き、定義順(左側から)に0,1,2...となります。

FlexTreeHeader上にカーソルが移動した場合、以前の値を維持します。

選択されている列がない場合、-1となります。

現存する列以外の値を指定すると例外、Ext-14が発生します。


FlexView.CursorCellOpacityプロパティ

カーソルセルのカーソル透明度を0から100の比率で指定します。

実際に表示される色は、CursorCellOpacityによりCursorColorとFlexRowの背景色を透過演算された色となります。

0を指定すると不透明となり、背景色とは無関係にCursorColorで表示されます。

100を指定すると完全透過となり、カーソルは表示されなくなります。

FlexRow.BgColor = $CCFFFF、CursorColor=$0000FF時の表示例

CursorCellOpacity = 0

CursorCellOpacity = 20

CursorCellOpacity = 60


FlexView.CursorColorプロパティ

カーソルの色を指定します。

実際に表示される色は、CursorCellOpacityとCursorLineOpacityプロパティによりFlexRowの背景色と透過演算された色となります。


FlexView.CursorLineOpacityプロパティ

カーソル行のカーソル透明度を0から100の比率で指定します。

実際に表示される色は、CursorLineOpacityによりCursorColorとFlexRowの背景色を透過演算された色となります。

0を指定すると不透明となり、背景色とは無関係にCursorColorで表示されます。

100を指定すると完全透過となり、行カーソルは表示されなくなります。

FlexRow.BgColor = $CCFFFF、CursorColor=$0000FF時の表示例

CursorLineOpacity = 100

CursorLineOpacity = 80

CursorLineOpacity = 60


FlexView.CursorMoveプロパティ

左右の矢印キーによるセルカーソルの移動方法を指定します。

$STD

ヘッダ系を除く、個々のセルに移動します。

$INPUTITEM

ユーザにより操作可能なセルに選択的に移動します。操作可能なセルとは、FlexButton,FlexTextBoxなどから生成されたセルです。

$ENTER

Enterキーにより右矢印キーと同じようにセルカーソルを移動します。また、Shift＋Enterキーにより左矢印キーと同じようにセルカーソルを移動します。

$LINEFEED

行末から自動的に次の行の先頭へ、または行頭から前行の行末へ移動します。

次行がFlexTreeHeaderのヘッダ行の場合はヘッダ行はスキップされます。

$LINEUP

自動的に右にセルカーソルが移動する次の操作で、下矢印キーと同じようにセルカーソルを移動します。$LINEUPは、$INPUTITEM、$LINEFEEDと同時に指定することはできません。

オブジェクト | 動作
FlexTextBox | AutoCursorMove=$TRUEのENTERキーによる確定操作 AutoCursorMove=$TRUEかつMaxLengthによる入力確定動作
FlexView | CursorMove=$ENTER+$LINEUPでのENTERキーの押下

$SKIPHIDDENCOL

Widthが0の列はスキップします

上記の複数の動作を同時に指定したい場合、加算して指定します。例えば、$INPUTITEM+$LINEFEEDを指定すると、$INPUTITEMの動作と$LINEFEEDの動作を両方行います。また、$INPUTITEM+$ENTERと指定すると、$INPUTITEMの動作と$ENTERの動作を両方行います。


FlexView.CursorTextColorプロパティ

カーソル位置の文字色を指定します。

FlexRow.BgColor = $CCFFFF、CursorColor=$0000FF時の表示例

CursorTextColor = $WHITE


FlexView.HScrollプロパティ

横スクロールバーの表示および横スクロールの可否を制御します。

Android版
スクロールバーは表示されません。
このプロパティは表示範囲を超えた部分にスクロールさせることができるかどうかのみを制御することができます。

定数 | 値 | 説明
$AUTO | 0 | 自動表示 表示内容の大きさに応じて自動的にスクロールバーの表示、非表示を行う。
$NONE | 1 | なし 表示内容の大きさに関わらず、常に表示しない。表示範囲を超えた部分の内容にスクロールさせることは出来ない。
$STATIC | 2 | 固定表示 表示内容の大きさに関わらず、常に表示する。


FlexView.RowCountプロパティ

現在の総行数を示します。


FlexView.RowPositionプロパティ

現在選択されている行位置を示します。

FlexTreeHeader上にカーソルが移動した場合、表示上は行が異なりますがRowPositionはFlexTreeHeaderが指している先頭行と同じ値になります。

選択されている行がない場合、-1となります。

FlexTreeHeaderにより折畳まれて表示されていない行を指定した場合、指定行の折畳みは解除され画面に表示されます。

現存する行以外の値を指定すると例外、Ext-13が発生します。


FlexView.RuledLineプロパティ

罫線(セルの区切り線)の有無を指定します。

$TRUE時はセルの境界に区切り線を表示します。

$FALSE時は区切り線を表示しません。

デフォルト値は$TRUEです。


FlexView.RuledLineColorプロパティ

罫線(セルの区切り線)の色を色定数で指定します。


FlexView.ShowTitleプロパティ

タイトルの表示、非表示を指定します。

ShowTitle = $TRUE

ShowTitle = $FALSE


FlexView.TitleBgColorプロパティ

タイトル部分の背景色を指定します。

表示例

TitleBgColor = $STD

TitleBgColor = $FFFFCC


FlexView.TitleFgColorプロパティ

タイトル部分の文字色を指定します。

表示例

TitleFgColor = $STD

TitleFgColor = $000099


FlexView.TitleFontFaceプロパティ

タイトルのフォント装飾属性を指定します。UseTitleFontプロパティが$TRUEの時のみ有効です。

指定値はFontFaceプロパティと同様です。


FlexView.TitleFontKindプロパティ

タイトルのフォントの種類を指定します。UseTitleFontプロパティが$TRUEの時のみ有効です。

指定値はFontKindプロパティと同様です。


FlexView.TitleFontSizeプロパティ

タイトルのフォントサイズを指定します。UseTitleFontプロパティが$TRUEの時のみ有効です。

指定値はFontSizeプロパティと同様です。


FlexView.TitleHeightプロパティ

タイトル部分の高さを指定します。デフォルト値は20です。

表示例

TitleHeight = 40

TitleHeight = 60

FlexRowSetまたはFlexColumnSetを使用している場合、複数行のタイトルが表示されることがあります。各タイトル行の高さは、その列に表示されるタイトルの行数でTitleHeightプロパティに指定した高さを等分した高さになります。


FlexView.TitleRuledLineプロパティ

TitleStyleプロパティにFlexView.StyleFlatが指定されている場合の、タイトル部分の罫線(セルの区切り線)の有無を指定します。

$TRUE時はセルの境界に区切り線を表示します。

$FALSE時は区切り線を表示しません。

デフォルト値は$TRUEです。


FlexView.TitleRuledLineColorプロパティ

TitleStyleプロパティにFlexView.StyleFlatが指定されている場合の、タイトル部分の罫線(セルの区切り線)の色を色定数で指定します。


FlexView.TitleStyleプロパティ

タイトルの表示方法を指定します。下記の値のいずれかになります。

定数 | 値 | 説明
FlexView.StyleStd | 0 | 通常のタイトル表示を行います。
FlexView.StyleFlat | 1 | フラットなデザインでタイトルを表示します。

表示例

デフォルトはFlexView.StyleStdです。


FlexView.UseTitleFontプロパティ

タイトル個別フォント指定の有効・無効を指定します。

$FALSE時はFontFace、FontKind、FontSizeの指定が有効になります。

$TRUE時はTitleFontFace、TitleFontKind、TitleFontSizeの指定が有効になります。

デフォルト値は$FALSEです。


FlexView.VScrollプロパティ

縦スクロールバーの表示および縦スクロールの可否を制御します。

Android版
スクロールバーは表示されません。
このプロパティは表示範囲を超えた部分にスクロールさせることができるかどうかのみを制御することができます。

定数 | 値 | 説明
$AUTO | 0 | 自動表示 表示内容の大きさに応じて自動的にスクロールバーの表示、非表示を行う。
$NONE | 1 | なし 表示内容の大きさに関わらず、常に表示しない。表示範囲を超えた部分の内容にスクロールさせることは出来ない。
$STATIC | 2 | 固定表示 表示内容の大きさに関わらず、常に表示する。


FlexViewメソッド

API version 4

メソッド

iOSAndroidWindows

FlexViewクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | ClearRows | 全ての行を削除します
4 | DeleteRow | 指定位置の行を削除します
4 | GetRow | 指定位置の行を取得します
4 | GetScrollPos | スクロール位置を取得します
4 | IndentSort | FlexIndentLabel列をソートします
4 | InsertRow | 指定位置に行を追加します
4 | SetScrollPos | スクロール位置を設定します
4 | Sort | 行をソートします

クラス概要

基本クラスのメソッド


FlexView.ClearRowsメソッド

説明

全ての行を削除します

呼出形式

FlexView1.ClearRows( )

戻り値

なし

引数

なし

例外

なし

使用例

FlexView1.ClearRows();

関連項目


FlexView.DeleteRowメソッド

説明

指定位置の行を削除します

呼出形式

var row = FlexView1.DeleteRow( position )

戻り値

削除した行の次の行を指す、FlexRowオブジェクトのリファレンスを返します。

引数

integer position

削除する位置を0から始まる行番号で指定します。

例外

EXT-6

FlexRecordが見つかりません

EXT-13

行が見つかりません

使用例

var row = FlexView1.GetRow();
while (!row.End) {
    if (row.item1.Value == "X") {
        row = FlexView1.DeleteRow(row.Position);
    } else {
        row.MoveNext();
    }
}

関連項目


FlexView.GetRowメソッド

説明

指定位置の行を取得します

呼出形式

var row = FlexView1.GetRow( [ position ] )

戻り値

指定した行を指す、FlexRowオブジェクトのリファレンスを返します。

引数

integer position

取得する位置を0から始まる行番号で指定します。

負数を指定すると最終行を返します。

省略時は、先頭行を戻します。

例外

EXT-6

FlexRecordが見つかりません

EXT-13

行が見つかりません

使用例

var row = FlexView1.GetRow();
while (!row.End) {
    if (row.item1.Value == "X") {
        row = FlexView1.DeleteRow(row.Position);
    } else {
        row.MoveNext();
    }
}

関連項目


FlexView.GetScrollPosメソッド

説明

スクロールバーのスクロール位置を取得します。

呼出形式

var pos = FlexView1.GetScrollPos( )

戻り値

現在のスクロール位置（先頭行の行番号）を返します。

引数

なし

例外

なし

使用例

FlexView1.GetScrollPos();

関連項目


ListView.IndentSortメソッド

API version 4

FlexView.IndentSortメソッド

iOSAndroidWindows

説明

FlexIndentLabel列をインデントが接続できるようにソートします。

FlexIndentLabel列は、FlexIndentLabelCellに持つkeyプロパティとParentKeyプロパティにより親子の関係を表現することができ、連続する行に置かれている親と子をインデント表示しますが、IndentSortメソッドによりできるだけ多くの行がインデント表示できるように、KeyとParentKeyプロパティの内容をキーにソートします。

col、ad、propの引数が指定可能となりました。col以降を指定した場合、インデント接続の前に指定条件でソートが行われます。

呼出形式

FlexView1.IndentSort( [ col [, arr [, prop ] ] ] )

戻り値

なし

引数

integer col

ソートする列の番号を指定します

String arr

ソート方向を指定します。

"d"を指定すると降順にソートします。

それ以外は昇順にソートします。

String prop

ソートキーとして使用するプロパティを文字列で指定します。省略した場合、"value"が指定されたときと同じ動作となります。

例外

EXT-6

FlexRecordが見つかりません

EXT-14

列が見つかりません

使用例

FlexView1.IndentSort();

関連項目


FlexView.InsertRowメソッド

説明

指定位置に行を追加します

呼出形式

var row = FlexView1.InsertRow( [ count [, position ] ] )

戻り値

挿入した先頭行を指す、FlexRowオブジェクトのリファレンスを返します。

引数

integer count

挿入する行数を指定します。

省略すると1行追加されます。

integer position

挿入する位置を0から始まる行番号で指定します。-1または省略すると最後に追加されます。

例外

EXT-1

引数が不正です

EXT-6

FlexRecordが見つかりません

EXT-13

行が見つかりません

使用例

var row = FlexView1.InsertRow(10);
for (var i = 0; i < 10; i++) {
    row.item1.Value = "a";
    row.MoveNext();
}

関連項目


FlexView.SetScrollPosメソッド

説明

スクロールバーのスクロール位置を設定します。

呼出形式

FlexView1.SetScrollPos( scrollpos )

戻り値

なし

引数

integer scrollpos

スクロール位置（先頭行の行番号）を指定します。

例外

EXT-1

SetScrollPosの引数が不正です

EXT-13

行が見つかりません

使用例

FlexView1.SetScrollPos(5);

関連項目


FlexView.Sortメソッド

説明

指定位置の列で行をソートします

呼出形式

FlexView1.Sort( col [ ,arr [ , prop ] ] )

戻り値

なし

引数

integer col

ソートする列の番号を指定します

String arr

ソート方向を指定します。

値 | 説明
"a" | 昇順にソートします
"d" | 降順にソートします
"aq" | クイックソートで昇順にソートします
"dq" | クイックソートで降順にソートします

省略時や上記以外の場合は、昇順にソートします。

String prop

ソートキーとして使用するプロパティを文字列で指定します。

省略した場合は、"value"が指定されたときと同じ動作となります。

例外

EXT-6

FlexRecordが見つかりません

EXT-14

列が見つかりません

EXT-17

プロパティが見つかりません

使用例

FlexView1.Sort(1, "a", "data");
FlexView1.Sort(1, "aq", "data");

関連項目


FlexViewイベント

API version 4

イベント

iOSAndroidWindows

FlexViewクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | CursorMoved | セルカーソル位置の変化で発生します
4 | Scrolled | 垂直スクロールバーの移動時に発生します

クラス概要

基本クラスのイベント


FlexView.CursorMovedイベント

セルカーソルの移動で発生するイベントです。CursorMovedイベントは次の構造をもちます。

Event {
    FlexRow row; /* 移動した行をポイントするFlexRowオブジェクト */
    Number col; /* 移動した列番号 */
}

セルカーソルは、RowPositionプロパティとColumnPositionプロパティで参照することができますが、イベントはイベントキューを経由するため、イベントハンドラで捕らえたイベントに付属するFlexRowオブジェクトやcolは、その時点でセルカーソルが置かれている位置とは異なる位置をポイントしていることがあります。従って、イベントが発生したセルのデータを操作するためには、イベントに付属するrowとcolによりセルを特定するようにしてください。

行または列を全て削除すると、セルカーソルは無効な位置に移動します。無効な位置で発生したイベントに付属するrowは、無効状態となっています。また、colはFlexView.InvalidPosition(-999)が設定されています。


FlexView.Scrolledイベント

垂直スクロールバーの移動時に発生します。

Scrolledイベントは次の構造を持ちます。

Event{
    Number row;
}


FlexViewオペレータ

API version 4

オペレータ

iOSAndroidWindows

FlexViewクラスには以下のオペレータが定義されています。

API | オペレータ | 説明
4 | FlexView << CSVDocument | FlexViewへCSVDocumentをロードします
4 | CSVDocument << FlexView | FlexViewをCSVDocumentへ出力します

クラス概要


FlexView << CSVDocument オペレータ

API version 4

FlexView << CSVDocumentオペレータ

iOSAndroidWindows

このオペレータは、左辺のFlexViewオブジェクトに対して、右辺のCSVDocumentオブジェクトをロードします。

既存のデータは削除され、CSVDocumentオブジェクトのデータに置き換わります。

CSVDocumentに列名が1件でも定義されている場合、FlexViewの対応するFlexDataへ割り当てられます。無名の列が混在する場合、無名の列は無視されます。

CSVDocumentに列名が1件も定義されていない場合、CSVDocumentの並び順にFlexViewの対応するFlexDataへ割り当てられます。

使用例

/* CSVをサーバからダウンロード後FlexViewへ表示する */
var csvdoc = new CSVDocument;
csvdoc.get("test.csv");
FlexView1 << csvdoc;

/* CSV定数をFlexViewへ表示する */
FlexView1 << new CSVDocument << csv {
item1, item2, item3
item1, item2, item3
item1, item2, item3
item1, item2, item3
};


CSVDocument << FlexView オペレータ

API version 4

CSVDocument << FlexViewオペレータ

iOSAndroidWindows

このオペレータは、左辺のCSVDocumentオブジェクトに対して、右辺のFlexViewオブジェクトをロードします。

CSVDocumentの列には、FlexData派生クラスのValueプロパティが対応します。

使用例

/* FlexViewの内容をCSVで保存する */
var csvdoc = new CSVDocument;
csvdoc << FlexView1;
var fs = new FileSystem;
var fp = fs.open("test.csv", FileSystem.OPEN_WRITE);
csvdoc.save(fp);
fp.close();


GroupBoxクラス

Object
 | NetObject
 |  | DisplayObject
 |  |  | GroupBox

グループボックスを表示するクラスです。

表示されるタイトルの位置（上下左右）はTitilePositionプロパティで設定できます。

タイトルがない場合の枠は、表示範囲と同等のサイズで描画されます。

ボックス型、ライン型の表示が可能です。

画面表示例

BoxStyle = $BOX

BoxStyle = $ROUND

BoxStyle = $HORZLINE

BoxStyle = $VERTLINE

ボックス型のタイトル表示

BoxStyleプロパティに$BOX、$ROUNDを指定するとボックス型の表示になります。

通常、タイトルは枠線に重なって表示されますが、$SUNKEN、$RISED、$SOFTBUMP、$FLATSUNKEN、$FLATRISEDでは枠線の外側に表示されます。

ライン型のタイトル表示

BoxStyleプロパティに$HORZLINE、$VERTLINEを指定するとライン型の表示になります。

通常、タイトルは線に重なって表示されますが、BorderStyleプロパティが$SUNKEN、$RISED、$SOFTBUMP、$FLATSUNKEN、$FLATRISEDの場合は線の上または下（$VERTLINEでは左または右）に表示されます。このときの表示位置はTitlePositionプロパティの$TOPと$BOTTOM（$VERTLINEでは$LEFTSIDEと$RIGHTSIDE）で指定できます。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。

スケーリング時の注意点

特にありません


GroupBoxプロパティ

API version 4

プロパティ

iOSAndroidWindows

GroupBoxクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
28 | BorderColor | CRW | integer | $STD | 枠の色
4 | BorderStyle | CRW | integer | $ETCHED | 枠線の種類
28 | BorderWidth | CRW | Number | 0 | 枠の太さ
4 | BoxStyle | CRW | integer | $BOX | グループボックスの種類
4 | FgColor | CRW | integer | $STD | 文字の色
4 | FontFace | CR | integer | $STD | フォントの装飾属性
4 | FontKind | CR | integer | $STD | フォントの種類
4 | FontSize | CR | integer | 10 | フォントサイズ
4 | Title | CRW | String |  | 表示するタイトル
4 | TitleAlign | CRW | integer | $LEFT | タイトル文字列の位置合わせ
4 | TitlePosition | CRW | integer | $TOP | タイトルの表示位置
4 | Value | CRW | String Number Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


GroupBox.BorderStyleプロパティ

枠線の種類を指定します。

定数 | 値 | 説明
$SUNKEN | 0 | 全体を凹形状で表示します
$RISED | 1 | 全体を凸形状で表示します
$ETCHED | 2 | 枠の線を凹形状で表示します
$BUMP | 3 | 枠の線を凸形状で表示します
$GRAYFRAME | 4 | 2色の灰色で枠線を表示します
$SOFT | 5 | 白と黒で枠を表示します
$SOFTETCHED | 6 | 枠線をやわらかい凹形状で表示します
$SOFTBUMP | 7 | 枠線をやわらかい凸形状で表示します
$PLANE | 8 | 黒い一本線で表示します
$DASH | 9 | 長めの点線で表示します
$DOT | 10 | 細かい点線で表示します
$FLATSUNKEN | 11 | 全体を低い凹形状で表示します
$FLATRISED | 12 | 全体を低い凸形状で表示します

表示例

$SUNKEN、$RISED、$SOFTBUMP、$FLATSUNKEN、$FLATRISEDではタイトルは枠線の外側に表示されます。


GroupBox.BoxStyleプロパティ

グループボックスの種類を指定します。

定数 | 値 | 説明
$BOX | 0 | ボックス型
$ROUND | 1 | 角丸のボックス型
$HORZLINE | 2 | 水平のライン型
$VERTLINE | 3 | 垂直のライン型


GroupBox.Titleプロパティ

タイトルに表示する値です。

タイトルは必ず1行で表示されます。折り返して複数行で表示することはできません。


GroupBox.TitleAlignプロパティ

タイトル文字列の位置合わせを行います。

定数 | 値 | 説明
$LEFT | 1 | 左寄せ
$CENTER | 2 | 中央寄せ
$RIGHT | 3 | 右寄せ

タイトルの表示位置はTitlePositionプロパティで指定します。


GroupBox.TitlePositionプロパティ

タイトルの表示位置を指定します。

定数 | 値 | 説明
$TOP | 1 | 上側
$LEFTSIDE | 2 | 左側
$BOTTOM | 3 | 下側
$RIGHTSIDE | 4 | 右側

タイトル文字列の位置合わせはTitleAlignプロパティで行います。


GroupBox.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。

表示する文字はTitleプロパティで設定します。


GroupBoxメソッド

API version 4

メソッド

iOSAndroidWindows

GroupBoxクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


GroupBoxイベント

API version 4

イベント

iOSAndroidWindows

GroupBoxクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Imageクラス

Object
 | Image

画像を保持するクラスです。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。


Imageプロパティ

API version 4

プロパティ

iOSAndroidWindows

Imageクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Height | R | integer | 読み込まれた画像の高さ
4 | Width | R | integer | 読み込まれた画像の幅

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


Image.Heightプロパティ

読み込まれた画像の高さです。


Image.Widthプロパティ

読み込まれた画像の幅です。


Imageメソッド

API version 4

メソッド

iOSAndroidWindows

Imageクラスには以下のメソッドが定義されています。

API | 名前 | 説明
8 | GetInformation | 画像の各種情報を取得します
4 | Loadimage | 画像ファイルを読み込みます
4 | RemoveImage | LoadImageメソッドで読み込んだ画像を破棄します
5 | Rotate | 画像を回転します
5 | Save | 画像を指定フォーマットで保存します
21 | Scale | 画像を拡大、縮小します
27 | Trimming | 画像の一部を切り取ります

クラス概要

基本クラスのメソッド


Image.GetInformationメソッド

説明

画像の各種情報を取得します。

呼出形式

img.GetInformation ( type )

戻り値

なし

引数

integer type

取得する情報の種類を以下の値から指定します。

定数 | 値 | 説明
Image.INFO_LUMINANCE | 1 | 画像の平均輝度

例外

EXT-1

Image: GetInformationの引数が不正です

EXT-26

イメージの実体が無いため実行できません

使用例

/* 画像から輝度を取得して更新 */
var lum = img1.GetInformation( Image.INFO_LUMINANCE);
print("輝度：" + Str(round(lum, 4) );

関連項目


Image.LoadImageメソッド

説明

画像ファイルを読み込みます。

画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

繰り返し呼び出した場合は以前の画像は上書きされ、最後の画像が有効になります。

呼出形式

img.LoadImage( URL or reader )

戻り値

なし

引数

URL or reader

画像ファイルのURLまたはReaderオブジェクト

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

img.LoadImage("http://localhost/picture.jpg");

関連項目

RemoveImageメソッド


Image.RemoveImageメソッド

説明

LoadImageメソッドで読み込んだ画像を破棄します。

呼出形式

img.RemoveImage( )

戻り値

なし

引数

なし

例外

なし

使用例

img.RemoveImage();

関連項目

LoadImageメソッド


Image.Rotateメソッド

説明

画像を回転します。

ただし、ImageListクラスのGetImageメソッドで取得したImageオブジェクトでは無効です。

呼出形式

img.Rotate( direction )

戻り値

なし

引数

integer direction

回転する量を以下の値から指定します。

定数 | 値 | 説明
Image.deg90 | 0 | 時計回りに90度回転します
Image.deg180 | 1 | 180度回転します
Image.deg270 | 2 | 時計回り270度回転します

例外

EXT-1

Image: Rotateの引数が不正です

使用例

Image img;
img.LoadImage("biz.jpg");
img.Rotate(Image.deg180);

関連項目


Image.Saveメソッド

説明

Writerオブジェクトに画像を指定フォーマットで保存します。
ただし、ImageListクラスのGetImageメソッドで取得したImageオブジェクトでは無効です。

呼出形式

img.Save ( writer, format [, option1 ] )

戻り値

なし

引数

integer writer

保存先のWriterオブジェクト

Integer format

画像フォーマットを以下の値から指定します。

定数 | 値 | 説明
Image.FORMAT_JPEG | 1 | JPEG
Image.FORMAT_PNG | 2 | PNG

Any option1

FORMAT_JPEG指定時、画質100(最高)～1(最低)を指定します。

省略時は100(最高)が指定されます。

例外

EXT-1

Image: Saveの引数が不正です

EXT-26

イメージの実体が無いため実行できません

使用例

var fs = new FileSystem;
var fp = fs.Open("sample.jpg", FileSystem.OPEN_WRITE);
img.Save(fp, Image.FORMAT_JPEG, 80);

関連項目


Image.Scaleメソッド

説明

画像を拡大、縮小します。

ただし、ImageListクラスのGetImageメソッドで取得したImageオブジェクトでは無効です。

呼出形式

img.Scale( size )

戻り値

なし

引数

Number size

拡大率、縮小率を、0より大きい値で指定します。

例外

EXT-1

Image: Scaleの引数が不正です

使用例

Image img;
img.LoadImage("biz.jpg");
img.Scale(0.5);

関連項目


Image.Trimmingメソッド

説明

画像の一部を切り取ります。このメソッドを呼び出すと、呼び出し元のImageオブジェクトの内容が変わります。

ただし、ImageListクラスのGetImageメソッドで取得したImageオブジェクトでは無効です。

呼出形式

img.Trimming( leftX , topY , width , height )

戻り値

なし

引数

integer leftX

切り取る領域の左上のX座標

画像の左上を(0, 0)とした座標を指定します。

integer topY

切り取る領域の左上のY座標

integer width

切り取る領域の幅

integer height

切り取る領域の高さ

例外

EXT-1

Image: Trimmingの引数が不正です

EXT-26

イメージの実体がないため実行できません

使用例

Image img;
img.LoadImage("biz.jpg");
img.Trimming(10, 10, 200, 200);

関連項目


Imageイベント

API version 4

イベント

iOSAndroidWindows

Imageクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


ImageButtonクラス

Object |  |  |  |  |
 | NetObject |  |  |  |
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | Button
 |  |  |  |  | ImageButton

イメージボタンを表示するクラスです。ボタンの表面には画像とタイトルを表示できます。

画面表示例

ButtonStyle = $STD

ButtonStyle = $SURFACE

ButtonStyle = $ICON

キーボード操作

このオブジェクトはキーボード操作に対応しています。下記のキー操作を行うことができます。

キー | 説明
SPACE | ボタンを押下

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。

画像と文字の表示位置の関係

設定した画像と、Titleプロパティに指定した文字との表示位置の関係は、VertPlacement、HorzPlacementプロパティの指定により以下のようになります。

HorzPlacement

VertPlacement

$BEFORETEXT

$CENTERED

$AFTERTEXT

$ABOVETEXT

Image |
 | Text

Image

Text

 | Image
Text |

$CENTERED

Image

Text

Image

Text

Text

Image

$BELOWTEXT

 | Text
Image |

Text

Image

Text |
 | Image

VerticalAlignプロパティ、HorizontalAlignプロパティによる垂直、水平方向の位置合わせは、上記の位置関係を維持したまま行われます。

ButtonStyleプロパティが$ICONで、VertPlacement、HorzPlacementプロパティが両方とも$CENTEREDが指定された場合は、画像の内側に文字は表示されず、画像の下に文字が表示されます。（VertPlacementプロパティが$ABOVETEXTと同じ表示位置）

なお、ボタンの周囲の余白（Spacingプロパティ）の初期値が5に設定されています。余白を無しにしたい場合はSpacingプロパティに0を設定してください。

スケーリング時の注意点

◆ 内部で表示されているイメージもスケーリングの対象となります


ImageButtonプロパティ

API version 4

プロパティ

iOSAndroidWindows

ImageButtonクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | BgColor | CRW | integer | $STD | 背景の色
4 | ButtonMode | CRW | integer | $PUSH | ボタンの動作モード
4 | ButtonStyle | CRW | integer | $STD | ボタンの外観
4 | FgColor | CRW | integer | $STD | 文字の色
4 | HorzPlacement | CRW | integer | $STD | 画像と文字の水平方向の表示位置
4 | ImageHeight | CRW | integer | 32 | 画像の拡大／縮小時の高さ
4 | ImageWidth | CRW | integer | 32 | 画像の拡大／縮小時の幅
HT(10) | NoPrefix | CRW | boolean | $FALSE | &を解釈しないモード
4 | Resize | CRW | integer | $STD | 画像の拡大／縮小の方法
4 | Spacing | CRW | integer | 5 | 外周の余白
4 | Toggle | CRW | integer | 0 | トグルボタンの状態
4 | VerticalAlign | CR | integer | $STD | 垂直方向の位置合わせ
4 | VertPlacement | CRW | integer | $STD | 画像と文字の垂直方向の表示位置

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


ImageButton.ButtonModeプロパティ

ボタンの動作モードです。

定数 | 値 | 説明
$TOGGLE | 1 | トグルボタン ボタンを押すと押し込まれた状態で固定され、もう一度押すと元に戻ります。
$PUSH | 2 | 通常ボタン ボタンを押すと押し込まれた状態になり、離すと元に戻ります。

トグルボタンの状態はToggleプロパティで取得できます。


ImageButton.ButtonStyleプロパティ

ボタンの外観です。

定数 | 値 | 説明
$STD | 0 | 通常 通常の立体的なボタンとして表示します。
$SURFACE | 1 | 平面 マウスカーソルが上にあるときは立体的な表示になり、それ以外は平面的な表示になります。
$ICON | 2 | アイコン ボタンの大きさが画像サイズと同じになります。


ImageButton.DisableFgColorプロパティ

非アクティブ時の文字色を指定します。$STD時はFgColorの値を使用します。

この指定を行うと、通常の非アクティブ時の彫り込まれたような表現より優先されます。


ImageButton.HorzPlacementプロパティ

画像と文字の水平方向の表示位置を指定します。

定数 | 値 | 説明
$STD | 0 | $BEFORETEXTと同じ
$BEFORETEXT | 1 | テキストより左位置
$CENTERED | 2 | 中央
$AFTERTEXT | 3 | テキストより右位置

詳細は画像と文字の表示位置の関係を参照してください。


ImageButton.ImageHeightプロパティ

画像の拡大／縮小時の高さを指定します。

Resizeプロパティが$FREEの場合は、画像の表示サイズはImageWidth、ImageHeightプロパティで指定したサイズになります。

Resizeプロパティが$KEEPRATIO（縦横比固定）の場合は、ImageWidth、ImageHeightプロパティに指定された値を基準にして自動的にサイズが決定します。


ImageButton.ImageWidthプロパティ

画像の拡大／縮小時の幅を指定します。

Resizeプロパティが$FREEの場合は、画像の表示サイズはImageWidth、ImageHeightプロパティで指定したサイズになります。

Resizeプロパティが$KEEPRATIO（縦横比固定）の場合は、ImageWidth、ImageHeightプロパティに指定された値を基準にして自動的にサイズが決定します。


ImageButton.Resizeプロパティ

画像の拡大／縮小の方法を指定します。

定数 | 値 | 説明
$STD | 0 | 元の画像サイズ（拡大／縮小なし）
$KEEPRATIO | 1 | 縦横比固定で指定サイズに拡大／縮小
$FREE | 2 | 指定サイズに拡大／縮小

拡大／縮小はImageWidth、ImageHeightプロパティに指定した値を元に行われます。


ImageButton.Spacingプロパティ

ボタンに表示する画像とボタンの外周の間の余白です。

初期値には5が設定されていて、画像とボタンの外周の間には余白があります。

余白を無しにしたい場合は0を設定します。


ImageButton.Toggleプロパティ

トグルボタンの状態です。0は通常の状態、1は押し込まれた状態を表します。

ButtonModeプロパティが$TOGGLEの場合のみ有効です。


ImageButton.VerticalAlignプロパティ

垂直方向の位置合わせを行います。$STDは中央寄せになります。

定数 | 値 | 説明
$STD | 0 | $CENTEREDと同じ
$TOP | 1 | 上寄せ
$CENTER | 2 | 中央寄せ
$BOTTOM | 3 | 下寄せ


ImageButton.VertPlacementプロパティ

画像と文字の垂直方向の表示位置を指定します。

定数 | 値 | 説明
$STD | 0 | $CENTEREDと同じ
$ABOVETEXT | 1 | テキストより上位置
$CENTERED | 2 | 中央
$BELOWTEXT | 3 | テキストより下位置

詳細は画像と文字の表示位置の関係を参照してください。


ImageButtonメソッド

API version 4

メソッド

iOSAndroidWindows

ImageButtonクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | ResetImage | SetImageメソッドで設定した画像を破棄します
4 | ResetPushedImage | SetPushedImageメソッドで設定した画像を破棄します
4 | SetImage | ボタンに表示する画像を設定します
4 | SetPushedImage | 押された状態のボタンに表示する画像を設定します

クラス概要

基本クラスのメソッド


ImageButton.ResetImageメソッド

説明

SetImageメソッドで設定した画像を破棄します。

呼出形式

ImageButton1.ResetImage( )

戻り値

なし

引数

なし

例外

なし

使用例

ImageButton1.ResetImage();

関連項目

SetImageメソッド


ImageButton.ResetPushedImageメソッド

説明

SetPushedImageメソッドで設定した画像を破棄します。

呼出形式

ImageButton1.ResetPushedImage( )

戻り値

なし

引数

なし

例外

なし

使用例

ImageButton1.ResetPushedImage();

関連項目

SetPushedImageメソッド


ImageButton.SetImageメソッド

説明

ボタンに表示する画像を設定します。

呼出形式

ImageButton1.SetImage( img )

戻り値

なし

引数

Object img

Imageオブジェクト、ImageListオブジェクト、またはURLを設定します。

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

URLで設定する場合、画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

ImageButton1.SetImage(ImageList1.GetImage(0));
ImageButton2.SetImage("img/sample.png");

関連項目

ResetImageメソッド

Image、ImageListクラス


ImageButton.SetPushedImageメソッド

説明

押された状態のボタンに表示する画像を設定します。

呼出形式

ImageButton1.SetPushedImage( img )

戻り値

なし

引数

Object img

Imageオブジェクト、ImageListオブジェクト、またはURLを設定します。

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

URLで設定した場合は、画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

ImageButton1.SetPushedImage(ImageList1.GetImage(0));
ImageButton2.SetPushedImage("img/sample.png");

関連項目

ResetPushedImageメソッド

Image、ImageListクラス


ImageButtonイベント

API version 4

イベント

iOSAndroidWindows

ImageButtonクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


ImageLabelクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | Label
 |  |  |  | ImageLabel

イメージラベルを表示するクラスです。ラベルの表面には画像と文字を表示できます。

画面表示例

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。

画像と文字の表示位置の関係

設定した画像と、Valueプロパティに指定した文字との表示位置の関係は、VertPlacement、HorzPlacementプロパティの指定により以下のようになります。

HorzPlacement

VertPlacement

$BEFORETEXT

$CENTERED

$AFTERTEXT

$ABOVETEXT

Image |
 | Text

Image

Text

 | Image
Text |

$CENTERED

Image

Text

Image

Text

Text

Image

$BELOWTEXT

 | Text
Image |

Text

Image

Text |
 | Image

VerticalAlign、HorizontalAlignプロパティによる垂直、水平方向の位置合わせは、上記の位置関係を維持したまま行われます。

スケーリング時の注意点

◆ 内部で表示されているイメージもスケーリングの対象となります


ImageLabelプロパティ

API version 4

プロパティ

iOSAndroidWindows

ImageLabelクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | BoxStyle | CRW | integer | $BOX | ラベルの枠線の形
4 | HorzPlacement | CRW | integer | $STD | 画像と文字の水平方向の表示位置
4 | ImageHeight | CRW | integer | 32 | 画像の拡大／縮小時の高さ
4 | ImageWidth | CRW | integer | 32 | 画像の拡大／縮小時の幅
HT(10) | NoPrefix | CRW | boolean | $FALSE | &を解釈しないモード
4 | Resize | CRW | integer | $STD | 画像の拡大／縮小の方法
4 | Spacing | CRW | integer | 0 | 外周の余白
4 | VertPlacement | CRW | integer | $STD | 画像と文字の垂直方向の表示位置

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


ImageLabel.BoxStyleプロパティ

API version 4

ImageLabel.BoxStyleプロパティ変更履歴

iOSAndroidWindows

ラベルの枠線の形を指定します。

定数 | 値 | 説明
$BOX | 0 | 通常の四角形
$ROUND | 1 | 角の丸い四角形

Borderプロパティが$TRUEの場合のみ有効です。

枠線の種類はBorderStyleプロパティで指定します。

また、$ROUNDと同時にCornerRadiusプロパティに0以上の値が指定されている場合、CornerRadiusプロパティが優先されます。*1

変更履歴
*1　API version 16から仕様変更されました。


ImageLabel.HorzPlacementプロパティ

画像と文字の水平方向の表示位置を指定します。

定数 | 値 | 説明
$STD | 0 | $BEFORETEXTと同じ
$BEFORETEXT | 1 | テキストより左位置
$CENTERED | 2 | 中央
$AFTERTEXT | 3 | テキストより右位置

詳細は画像と文字の表示位置の関係を参照してください。


ImageLabel.ImageHeightプロパティ

画像の拡大／縮小時の幅を指定します。

Resizeプロパティが$FREEの場合は、画像の表示サイズはImageWidth、ImageHeightプロパティで指定したサイズになります。

Resizeプロパティが$KEEPRATIO（縦横比固定）の場合は、ImageWidth、ImageHeightプロパティに指定された値を基準にして自動的にサイズが決定します。


ImageLabel.ImageWidthプロパティ

画像の拡大／縮小時の幅を指定します。

Resizeプロパティが$FREEの場合は、画像の表示サイズはImageWidth、ImageHeightプロパティで指定したサイズになります。

Resizeプロパティが$KEEPRATIO（縦横比固定）の場合は、ImageWidth、ImageHeightプロパティに指定された値を基準にして自動的にサイズが決定します。


ImageLabel.Resizeプロパティ

画像の拡大／縮小の方法を指定します。

定数 | 値 | 説明
$STD | 0 | 元の画像サイズ（拡大／縮小なし）
$KEEPRATIO | 1 | 縦横比固定で指定サイズに拡大／縮小
$FREE | 2 | 指定サイズに拡大／縮小

拡大／縮小はImageWidth、ImageHeightプロパティに指定した値を元に行われます。


ImageLabel.Spacingプロパティ

ラベルに表示する画像とラベルの外周の間の余白です。


ImageLabel.VertPlacementプロパティ

画像と文字の垂直方向の表示位置を指定します。

定数 | 値 | 説明
$STD | 0 | $CENTEREDと同じ
$ABOVETEXT | 1 | テキストより上位置
$CENTERED | 2 | 中央
$BELOWTEXT | 3 | テキストより下位置

詳細は画像と文字の表示位置の関係を参照してください。


ImageLabelメソッド

API version 4

メソッド

iOSAndroidWindows

ImageLabelクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | ResetImage | SetImageメソッドで設定した画像を破棄します
4 | SetImage | ラベルに表示する画像を設定します

クラス概要

基本クラスのメソッド


ImageLabel.ResetImageメソッド

説明

SetImageメソッドで設定した画像を破棄します。

呼出形式

ImageLabel1.ResetImage( )

戻り値

なし

引数

なし

例外

なし

使用例

ImageLabel1.ResetImage();

関連項目

SetImageメソッド


ImageLabel.SetImageメソッド

説明

ラベルに表示する画像を設定します。

呼出形式

ImageLabel1.SetImage( img )

戻り値

なし

引数

Object img

Imageオブジェクト、ImageListオブジェクト、またはURLを設定します。

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

URLで設定する場合、画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

ImageLabel1.SetImage(ImageList1.GetImage(0));
ImageLabel1.SetImage("img/sample.png");

関連項目

ResetImageメソッド

Image、ImageListクラス


ImageLabelイベント

API version 4

イベント

iOSAndroidWindows

ImageLabelクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


ImageListクラス

Object
 | Image
 |  | ImageList

複数の画像を保持するイメージリストを定義するクラスです。

1つの画像ファイルを指定サイズで複数に分割し、個別の画像として管理する機能があります。

FlexHeaderクラスなど、複数のアイコン用画像を表示するクラスで使用します。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です


ImageListプロパティ

API version 4

プロパティ

iOSAndroidWindows

ImageListクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | IconCount | R | integer | 0 | 読み込まれた画像の総数
4 | IconHeight | CRW | integer | 16 | イメージリストに含まれる画像の高さ
4 | IconWidth | CRW | integer | 16 | イメージリストに含まれる画像の幅
4 | LargeImage | CRW | integer | $FALSE | LoadIconメソッドのアイコンの種類
4 | MaskColR | CRW | integer | 0 | 透明色の赤色成分の値
4 | MaskColG | CRW | integer | 0 | 透明色の緑色成分の値
4 | MaskColB | CRW | integer | 0 | 透明色の青色成分の値
4 | MaskUse | CRW | boolean | $FALSE | 画像の透過処理の使用

基本クラスImageのHeight、Widthプロパティはこのクラスでは常に0になります。

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


ImageList.IconCountプロパティ

読み込まれた画像の総数です。

IconWidth、IconHeightプロパティのサイズで分割された画像ファイルは、分割後の数になります。


ImageList.IconHeightプロパティ

イメージリストに含まれる画像の高さです。16〜1024を指定できます。

画像の幅はIconWidthプロパティで指定します。

LoadImageメソッドで読み込んだ画像ファイルは、このプロパティで指定したサイズで自動的に分割されます。


ImageList.IconWidthプロパティ

イメージリストに含まれる画像の幅です。16〜1024を指定できます。

画像の高さはIconHeightプロパティで指定します。

LoadImageメソッドで読み込んだ画像ファイルは、このプロパティで指定したサイズで自動的に分割されます。


ImageList.LargeImageプロパティ

$TRUEは大きいアイコン、$FALSEは小さいアイコンを表します。


ImageList.MaskColRプロパティ

MaskUseプロパティを$TRUEにした場合の透過処理に使われる透過色（赤色成分）の値です。

MaskColG、MaskColBプロパティと合わせて、0から255の値を指定します。


ImageList.MaskColGプロパティ

MaskUseプロパティを$TRUEにした場合の透過処理に使われる透過色（緑色成分）の値です。

MaskColR、MaskColBプロパティと合わせて、0から255の値を指定します。


ImageList.MaskColBプロパティ

MaskUseプロパティを$TRUEにした場合の透過処理に使われる透過色（青色成分）の値です。

MaskColR、MaskColGプロパティと合わせて、0から255の値を指定します。


ImageList.MaskUseプロパティ

画像の透過処理をする場合は$TRUEを指定します。

MaskColR、MaskColG、MaskColBで指定した色の部分が透過色になります。

例えば、

MaskUse = $TRUE;
MaskColR = 255;
MaskColG = 0;
MaskColB = 0;

とすると、画像の赤色部分が透過色となり、赤色で表示せずに透明になります。

透明色を利用したい画像にはPNG形式を使用してください。JPEG形式は画像の特性上、透過部分を1色にできません。


ImageListメソッド

API version 4

メソッド

iOSAndroidWindows

ImageListクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | ImageListオブジェクトを初期化します
4 | GetImage | 指定したインデックス番号の画像を取得します
HT(10) | LoadIcon | 互換性のために残されています。動作しません。
4 | LoadImage | 画像ファイルを読み込みます
4 | RemoveImage | 読み込まれた画像をすべて破棄します

クラス概要

基本クラスのメソッド


ImageListコンストラクタ

説明

ImageListオブジェクトを初期化します。

画像ファイルの形式はJPEG、PNG（透過PNGを含む）、

BMP、GIF、TIFF、EXIF形式などのイメージファイルに対応しています。

画像ファイルはwidth、heightに指定したサイズで自動的に分割され、それぞれ個別の画像としてGetImageメソッドで取得できます。

width、heightの値に満たない部分は黒く塗りつぶされます。

呼出形式

var img = new ImageList( [ URL or reader [, width, height ] ] )

戻り値

初期化されたImageListオブジェクト

引数

URL or reader

画像ファイルのURLまたはReaderオブジェクト

省略時は空のイメージリストとなり、LoadImageメソッドを呼び出して画像を読み込む必要があります。

integer width

画像の幅

指定可能な範囲は16〜1024で、省略時は16です。指定した値はIconWidthプロパティに設定されます。

integer height

画像の高さ

指定可能な範囲は16〜1024で、省略時は16です。指定した値はIconHeightプロパティに設定されます。

例外

EXT-1

URLの引数が不正です

EXT-4

イメージリストの横幅が32767ドットを超えました

EXT-7

無効なリファレンスです

EXT-11

Readメソッドが見つかりません

使用例

var img = new ImageList("sample.png", 32, 32);
ImageLabel1.SetImage(img.GetImage(0));

関連項目

IconWidth、IconHeightプロパティ

GetImage、LoadImage


ImageList.GetImageメソッド

説明

指定したインデックス番号の画像を取得します。

呼出形式

var img = ImageList1.GetImage( no )

戻り値

Imageオブジェクト

引数

integer no

イメージリストのインデックス番号

0から始まる整数で指定します。

例外

なし

使用例

var img = new ImageList("sample.png", 32, 32);
ImageLabel1.SetImage(img.GetImage(0));

関連項目

LoadImageメソッド

Imageクラス


ImageList.LoadIconメソッド

このメソッドは互換性のために残されています。操作しても何も起きません。


ImageList.LoadImageメソッド

説明

画像ファイルを読み込みます。

画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

画像ファイルはIconWidth、IconHeightプロパティに指定したサイズで自動的に分割され、それぞれ個別の画像としてGetImageメソッドで取得できます。

IconWidth、IconHeightプロパティの値に満たない部分は黒く塗りつぶされます。

LoadImageメソッドを繰り返し呼び出した場合は、読み込み済みのイメージリストの後ろに追加されます。上書きされることはありません。

呼出形式

var num = ImageList1.LoadImage( URL or Reader )

戻り値

新たに追加された画像のインデックス番号

複数の画像が追加された場合は先頭のインデックス番号が返ります。

引数

URL or Reader

画像ファイルのURLまたはReaderオブジェクトを指定します。

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

ImageList ImageList1 {
    IconWidth = 32;
    IconHeight = 32;
    LoadImage("http://localhost/picture.jpg");
}

関連項目

IconWidth、IconHeightプロパティ

GetImage、RemoveImageメソッド


ImageList.RemoveImageメソッド

説明

読み込まれた画像をすべて破棄します。

呼出形式

ImageList1.RemoveImage( )

戻り値

なし

引数

なし

例外

なし

使用例

ImageList1.RemoveImage();

関連項目

LoadImageメソッド


ImageListイベント

API version 4

イベント

iOSAndroidWindows

ImageListクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


MaskEditクラス

Object |  |  |  |  |
 | NetObject |  |  |  |
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | EditObject
 |  |  |  |  | MaskEdit

マスクエディットは、Maskプロパティの指定により、入力形式や出力形式をカスタマイズ可能な固定長の文字列を入力するためのテキストボックスです。

Maskプロパティによる表示のフォーマットは、編集中でないときのみ反映されます。編集中は、TextBoxと同様の操作になります。

Maskプロパティを指定しない場合はTextBoxクラスと同様の操作性となります。

MaskEditクラスは、各入力フィールドの関連性を検査することはできません。例えば、日付の年月日の関連性などです。正確な日付の入力が必要な場合にはDateEditクラスを、正確な数値の入力が必要な場合にはNumberEditクラスを使用してください。

入力した値が確定するときに、入力状況に応じて以下のプロパティが更新されます。

Valueプロパティ

入力値がMaskプロパティの指定を満たしている場合、入力値で更新されます。Maskプロパティの指定を満たさない場合、空文字列に更新されます。その結果、Valueプロパティが以前の内容と変化した場合はTouchイベントが発生します。また、UseChangeプロパティが$TRUEに設定されている場合はChangeイベントが発生します。

EditTextプロパティ

画面に表示されている文字列に更新されます。

InvalidTextプロパティ

入力値がMaskプロパティの指定を満たしている場合は$FALSEに更新されます。Maskプロパティの指定を満たさない場合は$TRUEに更新されます。

画面表示例

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


MaskEditプロパティ

HT API version 10

プロパティ

iOSAndroidWindows

MaskEditクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
HT(10) | AutoTab | CRW | boolean |  | 全桁入力で自動的にフォーカス移動
HT(10) | Border | CR | boolean | $TRUE | 枠の表示
HT(28) | BorderColor | CRW | integer | $STD | 枠の色
HT(10) | EditText | R | integer | $STD | 画面に表示されている文字列
HT(10) | HorizontalAlign | CR | integer | $STD | 水平方向の位置合わせ
HT(10) | InputMode | CR | integer |  | 入力可能な文字種の指定
HT(10) | InvalidText | R | boolean | $FALSE | 不正な入力の有無
HT(10) | Mask | CRW | String |  | マスク文字列
HT(10) | UndecidedColor | CR | integer |  | 不正入力時の表示形式
HT(10) | Value | CRW | String |  | マスクエディットに表示する値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


MaskEdit.AutoTabプロパティ

$TRUEを指定すると、キーボードからの入力が最後の入力フィールドを満たしたときに、次のタブ順のオブジェクトに自動的にフォーカスを移動します。

Maskプロパティが設定されている場合のみ有効です。


MaskEdit.EditTextプロパティ

Maskプロパティにより付加される編集用リテラル文字を含んだ、画面に表示されている文字列をそのまま取得します。

このプロパティは、画面より入力した値が確定した時点でその値により設定されます。

スクリプトからのValueプロパティの設定では反映されません。


MaskEdit.InputModeプロパティ

入力可能な文字種の指定をします。

指定できる値についてはInputModeを参照してください。

InputModeプロパティの指定は、Maskプロパティの指定とは関連しません。

MaskプロパティとInputModeプロパティの両方の条件を満たす文字だけが入力可能となります。

例えば、Maskプロパティで文字入力フィールドを示す"CC"、InputModeプロパティで$ZENKAKUを指定すると、全角文字だけが指定位置にのみ入力できます。


MaskEdit.InvalidTextプロパティ

入力した文字がMaskプロパティによる指定条件を満たしているかを表します。正しい入力が行われているかを確認できます。

満たさない場合は$TRUE、満たしている場合または何も入力されていない場合は$FALSEとなります。

このプロパティは、画面より入力した値が確定した時点でその値により設定されます。

スクリプトからのValueプロパティの設定では反映されません。


MaskEdit.Maskプロパティ

マスクエディットの編集動作を決めるマスク文字列です。

マスク文字列にはマスク文字、制御用文字、編集用リテラル文字の組み合わせを指定します。詳細は下記の表を参照してください。

例

"009999-0999-000" 電話番号

"000-0000" 郵便番号

"9999年99月99日" 日付

"Seri\\a\\l No." エスケープを使う場合

マスク文字

文字 | 必須入力 | 入力可能な文字
# |  | 半角の数字（0～9）、'-'、'+'、半角スペース
0 | ○ | 半角の数字（0～9）
9 |
A(大文字) | ○ | 半角の英字（A～Z、a～z）、半角の数字（0～9）
a(小文字) |
L(大文字)、? | ○ | 半角の英字（A～Z、a～z）
l(小文字) |
C(大文字)、& | ○ | 任意の文字
c(小文字) |

制御用文字

文字 | 説明
< | この記号以降の英字を小文字に変換して入力します。（全角の英字は変換されません）
> | この記号以降の英字を大文字に変換して入力します。（全角の英字は変換されません）
<> | この記号以降は大文字小文字変換を無効にして、キー入力に従います。
\ | エスケープ文字です。次の1文字を編集用リテラル文字として扱います。 例）\A、\0、\<
; | ブランク文字指定時の区切り文字です。

編集用リテラル文字

上記以外の文字は編集用リテラル文字になります。

カーソルは自動的にスキップされます。削除や変更を画面操作で行うことはできません。

全角文字の半角変換

半角文字の入力フィールドに全角文字を入力した場合は、自動的に半角文字に変換されます。

変換の対象となる全角文字は、英数字、＋符号、－符号、スペースです。

ブランク文字の指定

マスク文字列の末尾にセミコロン";"と半角1文字を指定することで、未入力の位置に表示されるブランク文字を変更できます。

この指定は省略可能で、省略時はアンダースコア"_"になります。

例

"009999-0999-000;*"

ブランク文字に使用される文字は、入力値として入力することもできますが、ブランク文字に指定した文字がキー入力により設定されたものか、未入力によるものかを判断することはできません。


MaskEdit.UndecidedColorプロパティ

入力した文字がMaskプロパティによる指定条件を満たさない場合の表示形式です。

定数 | 値 | 説明
$STD | 0 | 何もしない
$BgColor | 1 | 背景を赤色で表示
$FgColor | 2 | 文字を赤色で表示
$Reverse | 3 | 背景と文字の色を反転


MaskEdit.Valueプロパティ

マスクエディットに表示する値です。

入力された値がMaskプロパティの指定条件を満たさない場合は空文字列となります。

Maskプロパティにより付加される編集用リテラル文字は含まれません。

入力フィールドに入力された文字と、未入力の位置に表示されるブランク文字（デフォルトはアンダースコア"_"） が含まれます。

編集用リテラル文字を含む文字列はEditTextプロパティで取得できます。

スクリプトによる値の設定では、Maskプロパティによる整合性検証は行われず、InputModeプロパティの影響も受けません。

Maskプロパティの指定内容と整合性のある文字列を指定してください。

画面上の入力値は即座には反映されません。詳細はValueプロパティが更新されるタイミングを参照してください。


MaskEditメソッド

HT API version 10

メソッド

iOSAndroidWindows

MaskEditクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


MaskEdit.SetMarginsメソッド

このメソッドは互換性のために残されています。操作しても何も起きません。


MaskEditイベント

HT API version 10

イベント

iOSAndroidWindows

MaskEditクラスには以下のイベントが定義されています。

API | 名前 | 説明
HT(10) | Clicked | タップされたときに発生します
HT(10) | Touch | MaskEditに入力した値が確定したときに発生します

クラス概要

基本クラスのイベント


MaskEdit.Clickedイベント

タップされたときに発生します。
フォーカスが当たっている状態でタップした場合のみ発生します。


MaskEdit.Touchイベント

画面からの入力操作によりマスクエディットの値が確定したときに発生するイベントです

Touchイベントは、値の変更がEnterキーやファンクションキーの押下により確定したとき、またはフォーカスを失って確定したときに発生します。キー入力1文字単位では発生しません。


Extension5パッケージ

Biz/Browser Ver5.0で追加された拡張GUIパッケージです

クラス

API | 名前 | 説明
10 | CanvasView | 描画キャンバスを表示します
9 | HtmlView | HTMLを表示します
21 | MediaPlayer | メディアを再生します
21 | MediaRecorder | 端末のカメラとマイクを使用して動画を録画します


CanvasViewクラス

API version 10

CanvasViewクラス 変更履歴

iOSAndroidWindows

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | CanvasView

描画キャンバスを表示するクラスです。

CanvasViewクラスでは、ドラッグ/スワイプ動作で書かれた軌跡を描画する事が可能です。

また、描画されたものをImageオブジェクトとして取得する事が可能です。

このクラス独自の色の扱い（#RRGGBB形式, #AARRGGBB形式）

このクラスでは、標準の色定数（$BLACK、$FF0000など）とは別に、任意の色が利用できます。

色情報は以下の形式の文字列で表します。

"#RRGGBB"

1文字目 | #
2,3文字目(RR) | 赤色成分を表す16進数(00～FF)
4,5文字目(GG) | 緑色成分を表す16進数(00～FF)
6,7文字目(BB) | 青色成分を表す16進数(00～FF)

(例）オレンジ色 : "#FFA500"

"#AARRGGBB"

1文字目 | #
2,3文字目(AA) | アルファ値(不透明度)を表す16進数(00～FF)
4,5文字目(RR) | 赤色成分を表す16進数(00～FF)
6,7文字目(GG) | 緑色成分を表す16進数(00～FF)
8,9文字目(BB) | 青色成分を表す16進数(00～FF)

例）半透明のライムグリーン : "#8032CD32"

色定数に定義されている色の場合、文字列形式を指定しても色定数が優先されます。

$STDを指定すると、標準の色(黒:#000000)が設定されます。

Undo/Redoバッファについて

CanvasViewクラスでは、描画操作を記録し取り消しや再生を行う事が出来るバッファを持っています。 これをUndo/Redoバッファと呼びます。

Undoバッファは操作を取り消す方法を、Redoバッファは取り消した操作を再生する手順を記録しています。

何らかの描画操作を行った際(例えば手書き描画で一画を書くなど)、その操作は記録はUndoバッファに登録されます。

この状態でUndoメソッドを呼び出すと、その操作は取り消されます。取り消された操作はRedoバッファに登録されます。

Redoバッファに操作が登録されている場合、Redoメソッドを呼び出すことでその操作を再生できます。

Undo/Redoバッファは、最大50件まで登録されます。 この中には現在の状態も1件としてカウントされています。

Undoバッファに何らかの操作を記録した際、Redoバッファの中身はリセットされます。

ピンチ操作による拡大表示について

CanvasViewクラスでは、ピンチ操作により最大5倍まで拡大表示することができます（画像の高さか幅が5pixel未満の場合、拡大率の最大値は5.0より小さくなります）。 *1

拡大表示されている間は、二本指でのパン操作により表示位置を移動させることができます。

拡大率の取得と指定にはZoomRatioプロパティを使用します。

また、SetImage、ResetImageメソッドで背景画像を変更した場合、拡大率は元に戻ります。

Snapshotメソッドで画像を取得する際、ピンチ操作で拡大表示された画像を取得するかどうかを指定することができます。

プロパティ | メソッド | イベント

変更履歴
*1　API version 25から仕様変更されました。


CanvasViewプロパティ

API version 10

プロパティ

iOSAndroidWindows

CanvasViewクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
25 | ZoomRatio | CRW | Number | 1.0 | 拡大率

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


CanvasView.ZoomRatioプロパティ

拡大率を示します。

1.0から5.0の範囲を指定可能です（画像の高さか幅が5pixel未満の場合、拡大率の最大値は5.0より小さくなります）。

指定可能な範囲外の値を指定すると、指定可能な値に収められます。


CanvasViewメソッド

API version 10

メソッド

iOSAndroidWindows

CanvasViewクラスには以下のメソッドが定義されています。

API | 名前 | 説明
10 | Erase | 描画内容およびUndo/Redoバッファを消去します。
10 | Redo | Undoで取り消された操作を再生します。
10 | ResetImage | SetImageメソッドで設定した画像を破棄します。
10 | SetImage | 背景に表示する画像を設定します。
10 | SetStroke | 描画する線の色および太さを指定します。
10 | Snapshot | CanvasViewに描画された画像を取得します。
10 | Undo | 直前の描画操作を取り消します。

クラス概要

基本クラスのメソッド


CanvasView.Eraseメソッド

説明

描画内容およびUndo/Redoバッファを消去します。

このメソッドの呼び出しでは、SetImageメソッドでセットした画像やSetStrokeメソッドで指定した情報は消去されません。

呼出形式

CanvasView1.Erase( )

戻り値

なし

引数

なし

例外

なし

使用例

Button1 btnErase {
    X = 10;
    Y = 10;
    Width = 100;
    Height = 30;
    Title = "描画内容消去";
    Function OnTouch(e) {
        ^.CanvasView1.Erase();
    }
}

関連項目


CanvasView.Redoメソッド

説明

直前に取り消された操作を再生します。

再生された操作は、そうではない普通の操作と同じくUndoメソッドで再び取り消しできます。

Redoバッファが空の場合、このメソッドは何もしません。

呼出形式

var succeeded = CanvasView1.Redo( )

戻り値

boolean

Redo成否

Redo出来た場合はtrueを、そうではない場合はfalseを返します。

引数

なし

例外

なし

使用例

Button1 btnRedo {
    X = 10;
    Y = 10;
    Width = 100;
    Height = 30;
    Title = "やり直し";
    Function OnTouch(e) {
        ^.CanvasView1.Redo();
    }
}

関連項目

Undoメソッド


CanvasView.ResetImageメソッド

説明

SetImageメソッドで設定した背景画像を破棄します。

呼出形式

CanvasView1.ResetImage( )

戻り値

なし

引数

なし

例外

なし

使用例

CanvasView1.ResetImage();

関連項目

SetImageメソッド


CanvasView.SetImageメソッド

説明

背景画像を設定します。

設定された背景画像は、CanvasViewオブジェクトの描画領域にあわせて自動的に拡大/縮小されます。

呼出形式

CanvasView1.SetImage( img )

戻り値

なし

引数

Object img

Imageオブジェクトを設定します。

例外

EXT-7

無効なリファレンスです

使用例

var img = new Image();
img.loadImage("backgroundImage.png");
CanvasView1.SetImage(img);

関連項目

ResetImageメソッド

Imageクラス


CanvasView.SetStrokeメソッド

説明

描画する線の色および太さを指定します。

この設定は新たに描画される線に対し有効です。 既に描画済みの線に対する設定は保持されます。

呼出形式

CanvasView1.SetStroke( strokeWidth, colorId )

または

CanvasView1.SetStroke( strokeWidth, colorCode )

戻り値

なし

引数

Number strokeWidth

描画する線の幅を0以上の値で指定します

単位はピクセルです。

integer colorId

線の色を色定数で指定します。

$STDを指定した場合、黒色(#000000)が指定されたものとみなします。

String colorCode

線の色をカラーコード形式で指定します。

カラーコードは"#AARRGGBB"形式および"#RRGGBB"形式が使用可能です。

例外

FUNC-4

引数が不正です

使用例

CanvasView1.SetStroke(3.0, "#80FF0000"); /* 太さ3px, 半透明の赤色をセットします。 */

関連項目


CanvasView.Snapshotメソッド

API version 10

CanvasView.Snapshotメソッド 変更履歴

iOSAndroidWindows

説明

CanvasViewに描画された画像を取得します。

取得される画像のサイズは、CanvasViewの画面上の表示サイズ(単位:ピクセル)にscale引数の値を掛けたものとなります。

計算式は下記の通りです。

(保存画像の)Image.Width = CanvasView.Width * (横方向の合計スケーリング倍率) * scale引数値

(保存画像の)Image.Height = CanvasView.Height * (縦方向の合計スケーリング倍率) * scale引数値

合計スケーリング倍率は、「スケーリング設定」で適用した倍率と、自身の祖先のFormオブジェクトのスケーリング倍率を乗算したものとなります。

例として、Width=300, Height=200のCanvasViewに、水平スケールが0.5倍適用されている場合、取得される画像のサイズは150×200ピクセルとなります。

呼出形式

CanvasView.Snapshot( [scale [, drawBackgroundImage [, applyZoom]]] )

戻り値

Imageオブジェクト

引数

Number scale

表示サイズに対する取得される画像の倍率を0倍より大きい値で指定します。

画像の拡大/縮小加工が必要な場合、scale引数で倍率を指定することで、より高精細な画像を得ることが出来ます。

1.0の場合は等倍で取得されます。

デフォルトは1.0です。

boolean drawBackgroundImage

保存する画像に背景画像を含めるか否かを指定します。

trueを指定した場合、SetImageメソッドでセットされた背景画像が含まれます。また、背景色は白(#FFFFFFFF)となります。

falseを指定した場合、背景画像は描画されません。また、背景色は透明(#00000000)となります。

デフォルトはfalseです。

boolean applyZoom

ピンチ操作で拡大表示されている画像を出力するかどうかを指定します。 *1

全体画像の一部が切り出されて出力されます。

trueを指定した場合、ピンチ操作で拡大表示されている画像を出力します。

falseを指定した場合、ピンチ操作による拡大表示が無視された画像が出力されます。

デフォルトはfalseです。

例外

FUNC-4

引数が不正です

使用例

var img = CanvasView1.Snapshot(); /* 等倍, 背景無しの透過画像で出力 */

関連項目

変更履歴
*1　API version 25から追加されました。


CanvasView.Undoメソッド

説明

直前の描画操作を取り消します。

取り消した操作は、次に何らかの描画操作を行う前にRedoメソッドを呼ぶことで再生できます。

Undoバッファが空の場合、このメソッドは何もしません。

呼出形式

var succeeded = CanvasView1.Undo( )

戻り値

boolean

Undo成否

Undo出来た場合はtrueを、そうではない場合はfalseを返します。

引数

なし

例外

なし

使用例

Button1 btnUndo {
    X = 10;
    Y = 10;
    Width = 100;
    Height = 30;
    Title = "元に戻す";
    Function OnTouch(e) {
        ^.CanvasView1.Undo();
    }
}

関連項目

Redoメソッド


CanvasViewイベント

API version 10

イベント

iOSAndroidWindows

CanvasViewクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


HtmlViewクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | HtmlView

Biz/Browser上でHTMLを表示するクラスです。

1つのオブジェクトで1つのWebページを表示させることができます。

通常のWebサイトの表示の他、ParseHtmlメソッドを使用することでHTMLを表示するラベルとしても使用できます。

AllowActionプロパティの設定によりセキュリティ制限を行えます。これにより従来のWebブラウザベースのアプリケーションと異なり、セキュアなWebアプリケーションの構築が可能です。

Android版

HTML実行エンジンとしてAndroid標準のWebコンポーネントであるWebKit(Android 4.2～4.3)およびBlink(Android 4.4以降)を使用しています。

Android 4.3以前ではExecJavascriptメソッドの使用に制限があります。

OSのセキュリティの問題でデフォルトではPDFファイルを開くことができません。PDFファイルをHtmlView上で開きたい場合は、AllowActionプロパティを$ALLOW_SCRIPTに指定する必要があります。

表示可能なHTMLの仕様に関してはインストールされているWebコンポーネントに依存します。そのためInternet ExplorerやChrome, Safariなど他のWebブラウザと動作結果が一致しない場合があります。

そのためHtmlViewは既存のWebサイトが他のブラウザと同様に動作することは保証できません。既存のHTMLコンテンツやWebサイトを表示させる場合は、必ずBiz/Browser上での動作確認を実施してください。

WebコンポーネントとHtmlViewの連携について

また、HtmlViewクラスではJavascriptを用いてHtmlView内との連携が可能です。

ExecJavascriptメソッドではHtmlViewからWebページへ、MessageFromJavascriptイベントではWebページからHtmlViewへの連携が行えます。

JavascriptからCRSへの値変換ルール

ExecJavascriptメソッドの戻り値やMessageFromJavascriptイベントの子オブジェクトなどに適用されるルールです。

変換元(Javascript) | 変換先(CRS)
object | Array (連想配列)
array | Array (通常配列:0起算)
string | String
number | Number
boolean | boolean
null | null


HtmlViewプロパティ

API version 9

プロパティ

iOSAndroidWindows

HtmlViewクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
9 | AllowAction | CRW | integer | 許可する動作を指定します
28 | BorderColor | CRW | integer | 枠の色
9 | Border | CR | boolean | 枠の表示を指定します
9 | IsBusy | R | boolean | 現在の状態がページ読込中かどうかを示します
9 | Silent | CR | boolean | HtmlViewから出力される警告ダイアログの抑止を指定します
9 | Title | R | String | 現在表示中のページのタイトルを示します
9 | URL | R | String | 現在表示中のページのURLを示します

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


HtmlView.AllowActionプロパティ

許可する動作を指定します。

定数 | 値 | 説明
$ALLOW_NONE | 0 | 下記の動作を許可しません
$ALLOW_SCRIPT | 1 | スクリプトを許可します

初期値は$ALLOW_NONEです。


HtmlView.IsBusyプロパティ

現在の状態がページ読込中かどうかを示します。

このプロパティは読取専用で更新することはできません。


HtmlView.Silentプロパティ

HtmlViewから出力される警告ダイアログの抑止を指定します。

$TRUEに指定すると、認証の警告、スクリプトエラーなどの警告ダイアログに対し、自動的に「キャンセル」の選択が実行され表示が抑止されます。

$TRUEに指定した場合、セキュリティ警告などでユーザが継続の選択をする必要がある場合、ページの遷移ができなくなります。

初期値は$TRUEです。


HtmlView.Titleプロパティ

現在表示中のページのタイトルを示します。

このプロパティは読取専用で更新することはできません。


HtmlView.URLプロパティ

現在表示中のページのURLを示します。

このプロパティは読取専用で更新することはできません。


HtmlViewメソッド

API version 9

メソッド

iOSAndroidWindows

HtmlViewクラスには以下のメソッドが定義されています。

API | 名前 | 説明
9 | ClearCache | Webブラウザがキャッシュするリソースを解放します
9 | ExecJavascript | Webブラウザ上で指定のJavascriptを実行します
9 | GoBack | 現在表示中のページから1つ前のページに戻ります
9 | GoForward | 現在表示中のページから1つ後のページに進みます
9 | GoUrl | 表示するWebページのURLを指定します
9 | Refresh | 現在表示中のページを更新します
9 | ParseHtml | 表示するHTMLソースを指定します
9 | ScrollBy | 表示中のページを現在位置から相対スクロールします
9 | Stop | 現在読込中のHTMLソースおよび画像等のリソースの読み込みを中止します
9 | Zoom | 表示を拡大縮小します

クラス概要

基本クラスのメソッド


HtmlView.ClearCacheメソッド

説明

HtmlViewがキャッシュするリソースを解放します。

Cookieや履歴などは削除されません。

呼出形式

HtmlView1.ClearCache( )

戻り値

なし

引数

なし

例外

なし

使用例

^.HtmlView1.ClearCache();

関連項目


HtmlView.ExecJavascriptメソッド

説明

Webブラウザ上で指定のJavascriptを実行します。

Android版

Android 4.4以降でのみ使用可能です。 それより前のOSではCRS例外が発生します。

呼出形式

HtmlView1.ExecJavascript( js )

戻り値

Object

Javascriptの実行結果

JavascriptからCRSへの値変換ルールに従って変換された値が返ります。

引数

String js

実行するJavascriptソースを指定します。

例外

EXT-27

初期化が完了していません

EXT-32

Javascriptの呼び出しに失敗しました

使用例

^.HtmlView1.ExecJavascript("document.body.style.backgroundColor = '#ccffcc';");

関連項目


HtmlView.GoBackメソッド

説明

現在表示中のページから1つ前のページに戻ります。

戻ることが出来ない場合、何も行いません。

GoBackメソッドでページ遷移した場合、GoForwardメソッドで１つ次のページに進むことができます。

呼出形式

HtmlView1.GoBack( )

戻り値

なし

引数

なし

例外

EXT-27

初期化が完了していません

使用例

^.HtmlView1.GoBack();

関連項目

GoUrlメソッド

GoForwardメソッド


HtmlView.GoForwardメソッド

説明

現在表示中のページから1つ先のページに進みます。

進むことが出来ない場合、何も行いません。

GoBackメソッドでページ遷移した場合に使用することができます。

GoUrlメソッドやハイパーリンクからのページ遷移ではGoForwardメソッドでページ遷移可能な状態にはなりません。

呼出形式

HtmlView1.GoBack( )

戻り値

なし

引数

なし

例外

EXT-27

初期化が完了していません

使用例

^.HtmlView1.GoForward();

関連項目

GoUrlメソッド

GoBackメソッド


HtmlView.GoUrlメソッド

説明

表示するWebページのURLを指定します。

このメソッドによって、CRSプログラムから表示するページを切り替えることができます。

なお、表示されるHTMLのハイパーリンクからもページ遷移が可能です。

呼出形式

HtmlView1.GoUrl( url )

戻り値

なし

引数

String url

開くページのURL（URI）文字列を指定します。

http、ftp、https、file（ローカルパス）等が開けます。

例外

CRS-125

関数'GoURL'が異常終了しました

使用例

Button b {
    X = 8;
    Y = 8;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        ^.HtmlView1.GoUrl("http://google.co.jp/");
    }
}

関連項目


HtmlView.Refreshメソッド

説明

現在表示中のページを更新します。

呼出形式

HtmlView1.Refresh( )

戻り値

なし

引数

なし

例外

EXT-27

初期化が完了していません

使用例

^.HtmlView1.Refresh();

関連項目


HtmlView.ParseHtmlメソッド

説明

表示するHTMLソースを指定します。

呼出形式

HtmlView1.ParseHtml( html )

戻り値

なし

引数

String html

表示するHTMLソースを指定します。

例外

CRS-125

関数'ParseHtml'が異常終了しました

使用例

^.HtmlView1.ParseHtml(
    "<b><i>テスト文字列</i></b>"
);

^.HtmlView1.ParseHtml(
    "<html><head><title>タイトル</title></head><body><p>1行目</p><p>2行目</p><p>3行目</p></body></html>"
);

関連項目


HtmlView.ScrollByメソッド

説明

表示中のページを現在位置から相対スクロールします。
スクロールする単位はプラットフォームごとに異なります。

呼出形式

HtmlView1.ScrollBy( dx, dy )

戻り値

なし

引数

Number dx

横方向にスクロールする移動量を指定します。
正は右方向、負の値は左方向となります。

Number dy

縦方向にスクロールする移動量を指定します。
正は下方向、負の値は上方向となります。

例外

EXT-27

初期化が完了していません

使用例

^.HtmlView1.ScrollBy(0, 100); /* 下方向にスクロール */

関連項目


HtmlView.Stopメソッド

説明

現在読込中のHTMLソースおよび画像等のリソースの読み込みを中止します。

呼出形式

HtmlView1.Stop( )

戻り値

なし

引数

なし

例外

EXT-27

初期化が完了していません

使用例

^.HtmlView1.Stop();

関連項目


HtmlView.Zoomメソッド

説明

表示を拡大縮小します。

Android版
有効な拡大縮小率の範囲は、表示しているWebページによって異なります。

呼出形式

HtmlView1.Zoom( [ ratio ] )

戻り値

なし

引数

Number ratio

拡大縮小率を指定します。
省略時は1.0倍と見なします。

例外

EXT-27

初期化が完了していません

使用例

^.HtmlView1.Zoom(1.5); /* 倍率150% */

関連項目


HtmlViewイベント

API version 9

イベント

iOSAndroidWindows

HtmlViewクラスには以下のイベントが定義されています。

API | 名前 | 説明
9 | CloseWindow | ブラウザ内で'window.close()'が呼ばれた際に発生します
9 | DocumentComplete | ページ読み込み完了時に発生します
9 | MessageFromJavascript | Javascript側で発行したイベントを受信した際に発生します
9 | NavigateError | 指定URLへの移動に失敗した場合に発生します

クラス概要

基本クラスのイベント


HtmlView.CloseWindowイベント

ブラウザ内で'window.close()'が呼ばれた際に発生します。

このイベントが発生しても、HtmlViewおよびHtmlViewを表示しているウィンドウが閉じることはありません。

このイベントはAllowActionプロパティにてJavascriptを有効化している時のみ発生します。


HtmlView.DocumentCompleteイベント

ページ読み込み完了時に発生します。


HtmlView.MessageFromJavascriptイベント

Javascript側で発行したイベントを受信した際に発生します。

このイベントはAllowActionプロパティにてJavascriptを有効化している時のみ発生します。

イベントを発行するには、Javascript内で以下のように記述します。

bizsd.postMessage(obj); // obj : 任意のオブジェクト

変数"obj"に指定されたオブジェクトは内部的にJSONに変換された後、JavascriptからCRSへの値変換ルールに従って変換されます。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Object | param | Javascript側のpostMessage関数の引数に指定した値 JavascriptからCRSへの値変換ルールに従って変換された値がセットされます。


HtmlView.NavigateErrorイベント

指定URLへの移動に失敗した場合に発生します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
String | url | 移動に失敗したURL
String | description | 失敗理由 失敗理由が取得出来なかった場合、空文字列が格納されます。


MediaPlayerクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | MediaPlayer

Biz/Browser上で動画ファイルを再生するためのクラスです。

指定した領域上に、動画のアスペクト比を維持した状態で再生します。

端末を縦向きにして録画した場合等動画に回転情報がある場合は、回転情報に応じて動画の向きを回転させます。

サポートしているビデオフォーマット、オーディオフォーマット、および動画のコンテナフォーマットは端末やOSのバージョンによって異なります。


MediaPlayerプロパティ

API version 21

プロパティ

iOSAndroidWindows

MediaPlayerクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
21 | IsLooping | CRW | boolean | ループ再生を行うかどうか
21 | IsPlaying | R | boolean | 再生中かどうか
21 | IsScreenOnWhilePlaying | CRW | boolean | 再生中に自動で画面が消えないようにするかどうか

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


MediaPlayer.IsLoopingプロパティ

ループ再生を行うかどうかを指定します。

$TRUEを指定するとループ再生になり、最後まで再生すると自動的にメディアの先頭から再生を再開します。

設定した値は、LoadFromURL、LoadFromFileメソッド呼び出し時に有効になります。

初期値は$FALSEです。


MediaPlayer.IsPlayingプロパティ

MediaPlayerが再生中の場合は$TRUE、そうでない場合は$FALSEとなります。

このプロパティは読取専用で変更することはできません。


MediaPlayer.IsScreenOnWhilePlayingプロパティ

再生中に自動で画面が消えないようにするかどうかを指定します。

$TRUEを指定すると、メディアの再生中は自動で画面が消えません。ただし、電源ボタンを押す等ユーザー操作によって画面が消えることを妨ぐことはできません。

また、画面が消えるとその時点で再生が停止します。

設定した値は、LoadFromURL、LoadFromFileメソッド呼び出し時に有効になります。

初期値は$FALSEです。


MediaPlayerメソッド

API version 21

メソッド

iOSAndroidWindows

MediaPlayerクラスには以下のメソッドが定義されています。

API | 名前 | 説明
21 | GetCurrentPos | 現在の再生位置を取得します
21 | GetDuration | メディアの再生時間を取得します
21 | LoadFromFile | 再生するメディアをファイルパスで指定します
21 | LoadFromURL | 再生するメディアをURLで指定します
21 | Pause | 一時停止します
21 | Seek | メディアの再生位置を指定します
21 | Start | メディアの再生を開始/再開します
21 | Stop | メディアの再生を停止します

クラス概要

基本クラスのメソッド


MediaPlayer.GetCurrentPosメソッド

説明

現在の再生位置を秒単位で取得します。

呼出形式

MediaPlayer1.GetCurrentPos()

戻り値

現在の再生位置（秒単位）

引数

なし

例外

なし

使用例

SetTimer(1.0);
Function OnTimer(e) {
    var pos = MediaPlayer1.GetCurrentPos();
    Label1.Value = "再生位置:" + str(pos) + "秒";
}

関連項目


MediaPlayer.GetDurationメソッド

説明

メディアの再生時間を秒単位で取得します。

呼出形式

var time = MediaPlayer1.GetDuration()

戻り値

メディアの再生時間（秒単位）

引数

なし

例外

なし

使用例

Button btnDuration {
    X = 8;
    Y = 8;
    Width = 200;
    Height = 200;
    Function OnTouch(e) {
        var time = ^.MediaPlayer1.GetDuration();
        ^.Label1.Value = "再生時間:" + str(time) + " 秒";
    }
}

関連項目


MediaPlayer.LoadFromFileメソッド

説明

再生するメディアをファイルパスで指定します。

呼出形式

MediaPlayer1.LoadFromFile( fs, path )

戻り値

なし

引数

FileSystem fs

参照するFileSystemオブジェクト

String path

メディアファイルのファイルパス

fsで指定したファイルシステムのルートフォルダを基点とした相対パスを指定します。

例外

EXT-33

メディアのロードに失敗しました

使用例

MediaPlayer MediaPlayer1 {
    X = 8;
    Y = 8;
    Width = 150;
    Height = 150;
}
Button btnStart {
    X = 8;
    Y = 180;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        var fs = new FileSystem;
        ^.MediaPlayer1.LoadFromFile(fs, "sample.mp4");
        ^.MediaPlayer1.Start();
    }
}

関連項目

LoadFromURLメソッド


MediaPlayer.LoadFromURLメソッド

説明

再生するメディアをURLで指定します。

呼出形式

MediaPlayer1.LoadFromURL( url )

戻り値

なし

引数

String url

再生するメディアのURL（URI）文字列を指定します。

http、https、file（ローカルパス）等が開けます。

例外

EXT-33

メディアのロードに失敗しました

使用例

MediaPlayer MediaPlayer1 {
    X = 8;
    Y = 8;
    Width = 150;
    Height = 150;
}
Button btnStart {
    X = 8;
    Y = 180;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        ^.MediaPlayer1.LoadFromURL("http://localhost/sample.mp4");
        ^.MediaPlayer1.Start();
    }
}

関連項目

LoadFromFileメソッド


MediaPlayer.Pauseメソッド

説明

メディアの再生を一時停止します。

再生を再開するには

Startメソッドを呼び出します。

呼出形式

MediaPlayer1.Pause()

戻り値

なし

引数

なし

例外

EXT-34

メディアがロードされていません

EXT-35

メディアの再生制御に失敗しました

使用例

MediaPlayer MediaPlayer1 {
    X = 8;
    Y = 8;
    Width = 150;
    Height = 150;
}
Button btnPause {
    X = 8;
    Y = 250;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        ^.MediaPlayer1.Pause();
    }
}

関連項目

Startメソッド


MediaPlayer.Seekメソッド

説明

再生位置を指定した位置に移動させます。

再生位置は絶対位置、もしくは現在の再生位置からの相対位置を指定します。

呼出形式

MediaPlayer1.Seek( pos [, isRelative] )

戻り値

なし

引数

Number pos

再生位置を秒単位で指定します。

isRelativeが$TRUEの場合、現在の再生位置からの相対位置となります。負の値を指定すると再生位置が後ろに移動します。

boolean isRelative

posで指定する再生位置が相対位置かどうかを指定します。

デフォルトは$FALSEです。

例外

EXT-34

メディアがロードされていません

EXT-35

メディアの再生制御に失敗しました

使用例

Button b1 {
    X = 8;
    Y = 8;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        /* 先頭から5秒の位置に移動する */
        ^.MediaPlayer1.Seek(5.0);
    }
}
Button b2 {
    X = 8;
    Y = 90;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        /* 現在の再生位置から5秒後の位置に移動する */
        ^.MediaPlayer1.Seek(5.0, $TRUE);
    }
}
Button b3 {
    X = 110;
    Y = 90;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        /* 現在の再生位置から5秒前の位置に移動する */
        ^.MediaPlayer1.Seek(-5.0, $TRUE);
    }
}

関連項目

GetDurationメソッド

GetCurrentPosメソッド


MediaPlayer.Startメソッド

説明

メディアの再生を開始します。

また、Pauseメソッドで一時停止した状態から、再生を再開します。

呼出形式

MediaPlayer1.Start()

戻り値

なし

引数

なし

例外

EXT-34

メディアがロードされていません

EXT-35

メディアの再生制御に失敗しました

使用例

MediaPlayer MediaPlayer1 {
    X = 8;
    Y = 8;
    Width = 150;
    Height = 150;
}
Button btnStart {
    X = 8;
    Y = 180;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        var fs = new FileSystem;
        ^.MediaPlayer1.LoadFromFile(fs, "sample.mp4");
        ^.MediaPlayer1.Start();
    }
}

関連項目

Stopメソッド

Pauseメソッド


MediaPlayer.Stopメソッド

説明

メディアの再生を停止します。

停止後に再度Startメソッドで再生を開始すると、メディアの先頭から再生が始まります。

呼出形式

MediaPlayer1.Stop()

戻り値

なし

引数

なし

例外

EXT-34

メディアがロードされていません

EXT-35

メディアの再生制御に失敗しました

使用例

MediaPlayer MediaPlayer1 {
    X = 8;
    Y = 8;
    Width = 150;
    Height = 150;
}
Button btnStop {
    X = 100;
    Y = 180;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        ^.MediaPlayer1.Stop();
    }
}

関連項目

Startメソッド


MediaPlayerイベント

API version 21

イベント

iOSAndroidWindows

MediaPlayerクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


MediaRecorderクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | MediaRecorder

Biz/Browser上で、端末のカメラとマイクを使用して動画を録画するためのクラスです。

指定した領域上に、動画のアスペクト比を維持した状態でプレビュー映像を表示します。

録画に関する設定はプロファイルとして設定します。プロファイルを設定することで、画像サイズに応じた適切な画質等の設定を行うことができます。

動画のコンテナフォーマットもプロファイルに依存します。


MediaRecorderプロパティ

API version 21

プロパティ

iOSAndroidWindows

MediaRecorderクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
21 | IsRecording | R | boolean | 録画中かどうか
21 | IsScreenOnWhileRecording | CRW | boolean | 録画中に自動で画面が消えないようにするかどうか

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


MediaRecorder.IsRecordingプロパティ

MediaRecorderが録画中の場合は$TRUE、そうでない場合は$FALSEとなります。

このプロパティは読取専用で変更することはできません。


MediaRecorder.IsScreenOnWhileRecordingプロパティ

録画中に自動で画面が消えないようにするかどうかを指定します。

$TRUEを指定すると、メディアの録画中は自動で画面が消えません。ただし、電源ボタンを押す等ユーザー操作によって画面が消えることを妨ぐことはできません。

また、画面が消えるとその時点で録画が停止します。

設定した値は、Startメソッド呼び出し時に有効になります。

初期値は$FALSEです。


MediaRecorderメソッド

API version 21

メソッド

iOSAndroidWindows

MediaRecorderクラスには以下のメソッドが定義されています。

API | 名前 | 説明
21 | GetProfile | 現在のプロファイルを取得します
21 | GetVideoBitrate | 設定しているビデオビットレートを取得します
27 | GetVideoCodec | 設定しているビデオコーデックを取得します
21 | Pause | 録画を一時停止します
21 | Resume | 録画を再開します
21 | SetCameraSource | 使用するカメラを指定します
21 | SetOutputPath | 出力ファイルのパスを指定します
21 | SetProfile | プロファイルを設定します
21 | SetVideoBitrate | ビデオビットレートを設定します
27 | SetVideoCodec | ビデオコーデックを設定します
21 | Start | 録画を開始します
21 | Stop | 録画を終了します

クラス概要

基本クラスのメソッド


MediaRecorder.GetProfileメソッド

説明

SetProfileメソッドで設定したプロファイルを取得します。

呼出形式

var profile = MediaRecorder1.GetProfile()

戻り値

設定されているプロファイルが返ります。

以下の値が返ります。未設定の場合は0が返ります。

定数 | 値 | 説明
MediaPlayer.ProfileCameraHigh | 1 | カメラが対応している最大サイズで録画します。
MediaPlayer.ProfileCameraLow | 2 | カメラが対応している最小サイズで録画します。
MediaPlayer.ProfileCameraQVGA | 3 | 320x240で録画します。
MediaPlayer.ProfileCameraCIF | 4 | 352x288で録画します。
MediaPlayer.ProfileCamera480P | 5 | 720x480、704x480、もしくは640x480で録画します。
MediaPlayer.ProfileCamera720P | 6 | 1280x720で録画します。
MediaPlayer.ProfileCamera1080P | 7 | 1920x1080、もしくは1920x1088で録画します。

引数

なし

例外

なし

使用例

Button b {
    X = 8;
    Y = 8;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        var profile = ^.MediaRecorder1.GetProfile();
        print("profile:", profile, "\n");
    }
}

関連項目

SetProfileメソッド


MediaRecorder.GetVideoBitrateメソッド

説明

SetVideoBitrateメソッドで指定したビデオビットレートを取得します。

呼出形式

var bitrate = MediaRecorder1.GetVideoBitrate()

戻り値

ビデオビットレート（bps単位）

未設定の場合は0が返ります。

引数

なし

例外

なし

使用例

Button b {
    X = 8;
    Y = 8;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        var bitrate = ^.MediaRecorder1.GetVideoBitrate();
        print("video bitrate:", bitrate, "\n");
    }
}

関連項目

SetVideoBitrateメソッド


MediaRecorder.GetVideoCodecメソッド

説明

設定しているビデオコーデックを取得します。

呼出形式

var codec = MediaRecorder1.GetVideoCodec()

戻り値

ビデオコーデック

以下の値が返ります。

定数 | 値 | 説明
MediaRecorder.VideoCodecDefault | 0 | OSのデフォルトのコーデック
MediaRecorder.VideoCodecH264 | 1 | H.264
MediaRecorder.VideoCodecHEVC | 2 | HEVC(H.265)

引数

なし

例外

なし

使用例

Button b {
    X = 8;
    Y = 8;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        var codec = ^.MediaRecorder1.GetVideoCodec();
        print("video codec:", codec, "\n");
    }
}

関連項目

SetVideoCodecメソッド


MediaRecorder.Pauseメソッド

説明

録画を一時停止します。

録画の再開はResumeメソッドで行い、再開後は同じファイルに続けて出力されます。

Android版
Android 6以下のOSでは使用できません。

呼出形式

MediaRecorder1.Pause()

戻り値

なし

引数

なし

例外

EXT-37

録画制御に失敗しました

EXT-38

録画が開始されていません

使用例

Button btnPause {
    X = 8;
    Y = 260;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        ^.MediaRecorder1.Pause();
    }
}
Button btnResume {
    X = 120;
    Y = 260;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        ^.MediaRecorder1.Resume();
    }
}

関連項目

Resumeメソッド


MediaRecorder.Resumeメソッド

説明

Pauseメソッドによって一時停止した録画を再開します。

録画の再開後は同じファイルに続けて出力されます。

Android版
Android 6以下のOSでは使用できません。

呼出形式

MediaRecorder1.Resume()

戻り値

なし

引数

なし

例外

EXT-37

録画制御に失敗しました

EXT-38

録画が開始されていません

使用例

Button btnPause {
    X = 8;
    Y = 260;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        ^.MediaRecorder1.Pause();
    }
}
Button btnResume {
    X = 120;
    Y = 260;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        ^.MediaRecorder1.Resume();
    }
}

関連項目

Pauseメソッド


MediaRecorder.SetCameraSourceメソッド

説明

録画に使用するカメラを設定します。

呼出形式

MediaRecorder1.SetCameraSource( source )

戻り値

なし

引数

integer source

録画に使用するカメラ

以下の値を指定します。

定数 | 値 | 説明
Runtime.SourceTypeRearCamera | 2 | リアカメラ(端末背面側)を使用します。
Runtime.SourceTypeFrontCamera | 3 | フロントカメラ(液晶側)を使用します。

デフォルトはRuntime.SourceTypeRearCameraです。

例外

EXT-39

既に録画中です

使用例

Button b {
    X = 8;
    Y = 8;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        var fs = new FileSystem;
        ^.MediaRecorder1.LoadFromFile(fs, "sample.mp4");
        ^.MediaRecorder1.SetProfile(MediaRecorder.ProfileCamera480P);
        ^.MediaRecorder1.SetCameraSource(Runtime.SourceTypeRearCamera);
        ^.MediaRecorder1.Start();
    }
}

関連項目


MediaRecorder.SetOutputPathメソッド

説明

録画結果を出力するファイルのパスを指定します。

呼出形式

MediaRecorder1.SetOutputPath( fs , path )

戻り値

なし

引数

FileSystem fs

参照するFileSystemオブジェクト

String path

出力ファイルのファイルパス

fsで指定したファイルシステムのルートフォルダを基点とした相対パスを指定します。

例外

なし

使用例

MediaRecorder MediaRecorder1 {
    X = 8;
    Y = 8;
    Width = 150;
    Height = 150;
}
Button btnStart {
    X = 8;
    Y = 180;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        var fs = new FileSystem;
        ^.MediaRecorder1.SetOutputPath(fs, "sample.mp4");
        ^.MediaRecorder1.SetProfile(MediaRecorder.ProfileCamera480P);
        ^.MediaRecorder1.Start();
    }
}

関連項目


MediaRecorder.SetProfileメソッド

説明

録画設定をプロファイルとして指定します。

プロファイルを指定することで、端末のカメラに適した録画の設定を自動で行います。

呼出形式

MediaRecorder1.SetProfile( profile )

戻り値

なし

引数

integer profile

録画設定のプロファイル

以下の値を指定します。

定数 | 値 | 説明
MediaPlayer.ProfileCameraHigh | 1 | カメラが対応している最大サイズで録画します。
MediaPlayer.ProfileCameraLow | 2 | カメラが対応している最小サイズで録画します。
MediaPlayer.ProfileCameraQVGA | 3 | 320x240で録画します。
MediaPlayer.ProfileCameraCIF | 4 | 352x288で録画します。
MediaPlayer.ProfileCamera480P | 5 | 720x480、704x480、もしくは640x480で録画します。
MediaPlayer.ProfileCamera720P | 6 | 1280x720で録画します。
MediaPlayer.ProfileCamera1080P | 7 | 1920x1080、もしくは1920x1088で録画します。

指定しない場合、MediaPlayer.ProfileCamera480P以下の画像サイズのなかで、端末が対応している一番サイズが大きいプロファイルに設定されます。

カメラが対応していないプロファイルが設定されると、StartメソッドでEXT-36例外が発生します。

例外

EXT-39

既に録画中です

使用例

MediaRecorder MediaRecorder1 {
    X = 8;
    Y = 8;
    Width = 150;
    Height = 150;
}
Button btnStart {
    X = 8;
    Y = 180;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        var fs = new FileSystem;
        ^.MediaRecorder1.SetOutputPath(fs, "sample.mp4");
        ^.MediaRecorder1.SetProfile(MediaRecorder.ProfileCamera480P);
        ^.MediaRecorder1.Start();
    }
}

関連項目

Start、GetProfileメソッド


MediaRecorder.SetVideoBitrateメソッド

説明

動画のビデオビットレートをbps(bit per second)単位で指定します。

0を設定すると、SetProfileメソッドで指定した録画設定に応じたビットレートが自動で設定されます。

Android版
Android 12以降のOSでは、低いビットレート値を設定しても反映されない場合があります。

呼出形式

MediaRecorder1.SetVideoBitrate( bitrate )

戻り値

なし

引数

integer bps

ビデオビットレート（bps単位）

デフォルトは0（自動で設定）です。

例外

EXT-39

既に録画中です

使用例

Button b {
    X = 8;
    Y = 8;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        var fs = new FileSystem;
        ^.MediaRecorder1.SetOutputPath(fs, "sample.mp4");
        ^.MediaRecorder1.SetProfile(MediaRecorder.ProfileCamera480P);
        ^.MediaRecorder1.SetVideoBitrate(10000000);
        ^.MediaRecorder1.Start();
    }
}

関連項目

SetProfile、GetVideoBitrateメソッド


MediaRecorder.SetVideoCodecメソッド

説明

ビデオコーデックを設定します。

呼出形式

MediaRecorder1.SetVideoCodec( codec )

戻り値

なし

引数

integer codec

ビデオコーデック

以下の値を指定します。

定数 | 値 | 説明
MediaRecorder.VideoCodecDefault | 0 | OSのデフォルトのコーデックを使用します。 定義されていない値が指定された場合の動作は、MediaRecorder.VideoCodecDefaultを指定した場合と同じになります。
MediaRecorder.VideoCodecH264 | 1 | ビデオコーデックとしてH.264を使用します。
MediaRecorder.VideoCodecHEVC | 2 | ビデオコーデックとしてHEVC(H.265)を使用します。

デフォルトはMediaRecorder.VideoCodecDefaultです。

例外

EXT-39

既に録画中です

使用例

Button b {
    X = 8;
    Y = 8;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        var fs = new FileSystem;
        ^.MediaRecorder1.LoadFromFile(fs, "sample.mp4");
        ^.MediaRecorder1.SetProfile(MediaRecorder.ProfileCamera480P);
        ^.MediaRecorder1.SetCameraSource(Runtime.SourceTypeRearCamera);
        ^.MediaRecorder1.SetVideoCodec(MediaRecorder.VideoCodecH264);
        ^.MediaRecorder1.Start();
    }
}

関連項目

GetVideoCodecメソッド


MediaRecorder.Startメソッド

説明

録画を開始します。

呼出形式

MediaRecorder1.Start()

戻り値

なし

引数

なし

例外

EXT-36

録画準備に失敗しました

EXT-37

録画制御に失敗しました

EXT-39

既に録画中です

使用例

MediaRecorder MediaRecorder1 {
    X = 8;
    Y = 8;
    Width = 150;
    Height = 150;
}
Button btnStart {
    X = 8;
    Y = 180;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        var fs = new FileSystem;
        ^.MediaRecorder1.SetOutputPath(fs, "sample.mp4");
        ^.MediaRecorder1.SetProfile(MediaRecorder.ProfileCamera480P);
        ^.MediaRecorder1.Start();
    }
}

関連項目

Stop、Pauseメソッド


MediaRecorder.Stopメソッド

説明

録画を停止します。

呼出形式

MediaRecorder1.Stop()

戻り値

なし

引数

なし

例外

EXT-37

録画制御に失敗しました

EXT-38

録画が開始されていません

使用例

MediaRecorder MediaRecorder1 {
    X = 8;
    Y = 8;
    Width = 150;
    Height = 150;
}
Button btnStop {
    X = 100;
    Y = 180;
    Width = 95;
    Height = 70;
    Function OnTouch(e) {
        ^.MediaRecorder1.Stop();
    }
}

関連項目

Startメソッド


MediaRecorderイベント

API version 21

イベント

iOSAndroidWindows

MediaRecorderクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Extension6パッケージ

Biz/Browser HTで追加された拡張GUIパッケージです。

クラス

API | 名前 | 説明
24 | ExpandableList | 開閉可能なリスト(アコーディオンリスト)を表示します
24 | ExpandableListItem | ExpandableListの選択肢を定義します
27 | ImageFilter | Imageオブジェクトを加工する機能を提供します
28 | SlideMenu | スライドメニューを操作します
28 | SlideMenuContent | スライドメニュー内のコンテンツを表示します
24 | SwitchButton | スイッチコントロールを表示します
24 | SwitchItem | SwitchButtonの選択肢を定義します


ExpandableListクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | ExpandableList

開閉可能なリスト（アコーディオンリスト）を表示するクラスです。

ExpandableListクラスはExpandableListItemクラスと協調して動作します。

選択肢として表示するデータを設定するには、ExpandableListオブジェクトの下位に定められた構造でExpandableListItemまたはその派生クラスのオブジェクトを配置する必要があります。

オブジェクトの構造

画面表示例

キーボード操作

このオブジェクトはキーボード操作に対応しています。下記のキー操作を行うことができます。

キー | 説明
UP | 一つ手前の選択肢に移動
LEFT | 一つ手前の選択肢に移動
BOTTOM | 一つ後ろの選択肢に移動
RIGHT | 一つ後ろの選択肢に移動

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。

スケーリング時の注意点

特にありません


ExpandableListプロパティ

API version 24

プロパティ

iOSAndroidWindows

ExpandableListクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
24 | BgColor | CRW | integer | $STD | 背景の色
24 | Border | CR | boolean | $FALSE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
24 | Divider | CRW | boolean | $FALSE | 区切り線の表示
24 | DividerColor | CRW | integer | $STD | 区切り線の色
HT(24) | ExpandKey | CR | integer |  | グループの開閉状態を切り替えるキー
24 | FontFace | CR | integer | $STD | フォントの装飾属性
24 | FontKind | CR | integer | $STD | フォントの種類
24 | GroupBgColor | CRW | integer | $STD | グループの親アイテムの背景色
24 | GroupFgColor | CRW | integer | $STD | グループの親アイテムの文字の色
24 | GroupFontSize | CR | integer | 10 | グループの親アイテムのフォントサイズ
24 | GroupHeight | CR | integer | 0 | グループの親アイテムの高さ
24 | ImagePos | CR | integer | $LEFT | 開閉状態アイコンの表示位置
24 | Indent | CRW | integer | -1 | 字下げ幅
24 | ItemBgColor | CRW | integer | $STD | アイテムの背景色
24 | ItemFgColor | CRW | integer | $STD | アイテムの文字の色
24 | ItemFontSize | CR | integer | 10 | アイテムのフォントサイズ
24 | ItemHeight | CR | integer | 0 | アイテムの高さ
24 | Scroll | CR | integer | $AUTO | スクロールバーの表示制御
24 | SelectedBgColor | CRW | integer | $STD | 選択時のアイテムの背景色
24 | SelectedFgColor | CRW | integer | $STD | 選択時のアイテムの文字色
24 | Value | CRW | integer |  | 選択位置

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


ExpandableList.BgColorプロパティ

背景の色を色定数で指定します。

アイテムの色はItemBgColorプロパティで、グループの親アイテムの色はGroupBgColorプロパティで指定します。


ExpandableList.Dividerプロパティ

$TRUEに設定すると、アイテムの間に区切り線を表示します。

$FALSEに設定すると、アイテムの間に区切り線を非表示にします。


ExpandableList.DividerColorプロパティ

区切り線の色を色定数で指定します。


ExpandableList.ExpandKeyプロパティ

グループの開閉状態を切り替えるキーを設定します。

未設定時はF4キーが開閉キーとなります。

現在選択されているアイテムが所属しているグループの開閉状態が切り替わります。

ExpandKeyプロパティに指定できる値は、キーの指定を参照してください。


ExpandableList.GroupBgColorプロパティ

グループの親アイテムの背景色を色定数で指定します。


ExpandableList.GroupFgColorプロパティ

グループの親アイテムの文字色を色定数で指定します。


ExpandableList.GroupFontSizeプロパティ

グループの親アイテムに表示するテキストに対し、フォントの大きさを0から100の範囲のポイント数で指定します。0を指定すると初期値の10ポイントで表示されます。

負の値は設定できません。


ExpandableList.GroupHeightプロパティ

グループの親アイテムの高さを指定します。

デフォルト値は0で、0が指定されている場合はデフォルトの高さになります。

このプロパティで指定した高さはフォントサイズによって拡大されず、グループの親アイテムは常に設定された高さで表示されます。


ExpandableList.ImagePosプロパティ

開閉アイコンの表示位置を指定します。下記の値のいずれかを設定します。

定数 | 値 | 説明
$LEFT | 1 | アイコンを左に表示します。
$RIGHT | 3 | アイコンを右に表示します。

Indentプロパティが-1の時の字下げ幅は、ImagePosプロパティによって異なります。


ExpandableList.Indentプロパティ

アイテムの表示内容の字下げ幅を指定します。

グループ内に配置されているアイテムは、Indentプロパティで指定した幅だけ字下げされます。

Indentプロパティに-1が指定されている場合の字下げ幅は、ImagePosプロパティに応じて下記のようになります。

ImagePosプロパティの値 | 字下げ幅
$LEFT | 開閉アイコンの横幅
$RIGHT | 0


ExpandableList.ItemBgColorプロパティ

アイテムの背景色を色定数で指定します。


ExpandableList.ItemFgColorプロパティ

アイテムの文字色を色定数で指定します。


ExpandableList.ItemFontSizeプロパティ

アイテムに表示するテキストに対し、フォントの大きさを0から100の範囲のポイント数で指定します。0を指定すると初期値の10ポイントで表示されます。

負の値は設定できません。


ExpandableList.ItemHeightプロパティ

アイテムの高さを指定します。

デフォルト値は0で、0が指定されている場合はデフォルトの高さになります。

このプロパティで指定した高さはフォントサイズによって拡大されず、アイテムは常に設定された高さで表示されます。


ExpandableList.SelectedBgColorプロパティ

選択状態のアイテムの背景色を色定数で指定します。


ExpandableList.SelectedFgColorプロパティ

選択状態のアイテムの文字色を色定数で指定します。


ExpandableList.Valueプロパティ

現在選択されているリスト項目の配列番号です。

-1は非選択状態を示します。


ExpandableListメソッド

API version 24

メソッド

iOSAndroidWindows

ExpandableListクラスには以下のメソッドが定義されています。

API | 名前 | 説明
24 | ResetClosedImage | SetClosedImageメソッドで設定した画像を破棄します。
24 | ResetExpandedImage | SetExpandedImageメソッドで設定した画像を破棄します。
24 | SetClosedImage | 項目のグループが閉じている状態で表示されるアイコンの画像を設定します。
24 | SetExpandedImage | 項目のグループが開いている状態で表示されるアイコンの画像を設定します。

クラス概要

基本クラスのメソッド


ExpandableList.ResetClosedImageメソッド

説明

SetClosedImageメソッドで設定した画像を破棄し、デフォルトのアイコンを表示します。

呼出形式

ExpandableList1.ResetClosedImage( )

戻り値

なし

引数

なし

例外

なし

使用例

ExpandableList1.ResetClosedImage();

関連項目

SetClosedImageメソッド


ExpandableList.ResetExpandedImageメソッド

説明

SetExpandedImageメソッドで設定した画像を破棄し、デフォルトのアイコンを表示します。

呼出形式

ExpandableList1.ResetExpandedImage( )

戻り値

なし

引数

なし

例外

なし

使用例

ExpandableList1.ResetExpandedImage();

関連項目

SetExpandedImageメソッド


ExpandableList.SetClosedImageメソッド

説明

項目グループの開閉状態を示すアイコンのうち、グループが閉じている状態で表示されるアイコンの画像を設定します。

呼出形式

ExpandableList1.SetClosedImage( img )

戻り値

なし

引数

Object img

Imageオブジェクト、ImageListオブジェクト、またはURLを設定します。

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

URLで設定する場合、画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

nullを指定すると、アイコンが非表示になります。

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

ExpandableList1.SetClosedImage(ImageList1.GetImage(0));
ExpandableList1.SetClosedImage("img/sample.png");

関連項目

ResetClosedImageメソッド

Image、ImageListクラス


ExpandableList.SetExpandedImageメソッド

説明

項目グループの開閉状態を示すアイコンのうち、グループが開いている状態で表示されるアイコンの画像を設定します。

呼出形式

ExpandableList1.SetExpandedImage( img )

戻り値

なし

引数

Object img

Imageオブジェクト、ImageListオブジェクト、またはURLを設定します。

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

URLで設定する場合、画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

nullを指定すると、アイコンが非表示になります。

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

ExpandableList1.SetExpandedImage(ImageList1.GetImage(0));
ExpandableList1.SetExpandedImage("img/sample.png");

関連項目

ResetExpandedImageメソッド

Image、ImageListクラス


ExpandableListイベント

API version 24

イベント

iOSAndroidWindows

ExpandableListクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


ExpandableListItemクラス

Object
 | NetObject
 |  | ExpandableListItem

ExpandableListクラスの選択肢を定義するクラスです。必ずExpandableListクラスの子オブジェクトとして配列化して利用します。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


ExpandableListItemプロパティ

API version 24

プロパティ

iOSAndroidWindows

ExpandableListItemクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
24 | Expandable | CRW | boolean | $TRUE | タップした時に開閉可能かどうか
24 | Expanded | CRW | boolean | $TRUE | グループの開閉状態
24 | GroupKey | CR | String |  | グループの親キー
24 | Key | CR | String |  | 自分のキー
24 | Selected | CRW | boolean | $FALSE | 項目の選択状態
24 | Title | CRW | String |  | 選択肢に表示される文字列
24 | Value | CRW | String Number Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


ExpandableListItem.Expandableプロパティ

タップ操作で開閉可能かどうかを指定します。

開閉可能な場合は$TRUE、開閉不可能な場合は$FALSEを指定します。


ExpandableListItem.Expandedプロパティ

グループの開閉状態です。

開いている場合は$TRUE、開いていない場合は$FALSEになります。


ExpandableListItem.GroupKeyプロパティ

グループ表示のキーとなる値です。

GroupKeyプロパティは、Keyプロパティと合わせて利用します。Keyプロパティに指定した値と同じ値のGroupKeyプロパティを持つ後続の行は、同じグループとして接続されて表示されます。

表示例

行 | Keyプロパティの値 | GroupKeyプロパティの値 | Titleプロパティの値
1 | Group1 |  | Group1
2 |  | Group1 | item1-1
3 | Group1-2 | Group1 | Group1-2
4 |  | Group1-2 | item1-2-1
5 |  | Group1-2 | item1-2-2


ExpandableListItem.Keyプロパティ

グループ表示のキーとなる値です。Keyプロパティが指定されているアイテムは、グループの親アイテムとなります。

GroupKeyプロパティは、Keyプロパティと合わせて利用します。Keyプロパティに指定した値と同じ値のGroupKeyプロパティを持つ後続の行は、同じグループとして接続されて表示されます。

表示例

行 | Keyプロパティの値 | GroupKeyプロパティの値 | Titleプロパティの値
1 | Group1 |  | Group1
2 |  | Group1 | item1-1
3 | Group1-2 | Group1 | Group1-2
4 |  | Group1-2 | item1-2-1
5 |  | Group1-2 | item1-2-2


ExpandableListItem.Selectedプロパティ

項目の選択状態です。

選択されている場合は$TRUE、選択されていない場合は$FALSEになります。

グループの親アイテムのSelectedプロパティを変更した場合は、Touchイベントは発生しません。また、ExpandableList.Valueプロパティも変わりません。


ExpandableListItem.Titleプロパティ

リストに表示する文字です。


ExpandableListItem.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。

選択肢の選択状態はSelectedプロパティ、選択肢として表示する文字はTitleプロパティで指定できます。


ExpandableListItemメソッド

API version 24

メソッド

iOSAndroidWindows

ExpandableListItemクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


ExpandableListItemイベント

API version 24

イベント

iOSAndroidWindows

ExpandableListItemクラスには以下のイベントが定義されています。

API | 名前 | 説明
24 | Expand | グループの開閉状態が変わったときに発生します
24 | Touch | アイテムを選択したときに発生します
24 | DoubleClicked | ダブルタップされたときに発生します

クラス概要

基本クラスのイベント


ExpandableListItem.Expandイベント

グループの開閉状態が変化した時に発生するイベントです。

画面からの操作およびスクリプトからの操作に関わらず発生します。

注意

ExpandableListItemクラスで発生したイベントのハンドラ内では、選択された項目番号の参照に親オブジェクトであるExpandableListクラスのValueプロパティを利用しないでください。（選択された項目番号が反映されていない場合があります。）

選択された項目番号は、イベントハンドラの引数として渡されるEventオブジェクトのFromプロパティ（ExpandableListItemオブジェクト）のIndexプロパティ（配列の添え字）を参照してください。項目の選択状態は、FromプロパティからSelectedプロパティを参照してください。


ExpandableListItem.Touchイベント

項目を選択したときに発生するイベントです。

画面からの操作およびスクリプトからの操作に関わらず発生します。

グループの親アイテムをタップした場合、このイベントは発生しません。

注意

ExpandableListItemクラスで発生したイベントのハンドラ内では、選択された項目番号の参照に親オブジェクトであるExpandableListクラスのValueプロパティを利用しないでください。（選択された項目番号が反映されていない場合があります。）

選択された項目番号は、イベントハンドラの引数として渡されるEventオブジェクトのFromプロパティ（ExpandableListItemオブジェクト）のIndexプロパティ（配列の添え字）を参照してください。項目の選択状態は、FromプロパティからSelectedプロパティを参照してください。


ExpandableListItem.DoubleClickedイベント

ダブルタップされたときに発生します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Number | xPos | マウスポインタのX座標
Number | yPos | マウスポインタのY座標

注意

ExpandableListItemクラスで発生したイベントのハンドラ内では、選択された項目番号の参照に親オブジェクトであるExpandableListクラスのValueプロパティを利用しないでください。（選択された項目番号が反映されていない場合があります。）

選択された項目番号は、イベントハンドラの引数として渡されるEventオブジェクトのFromプロパティ（ExpandableListItemオブジェクト）のIndexプロパティ（配列の添え字）を参照してください。項目の選択状態は、FromプロパティからSelectedプロパティを参照してください。


ImageFilterクラス

Object
 | ImageFilter

Imageオブジェクトを加工する機能を提供するクラスです。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。


ImageFilterプロパティ

API version 27

プロパティ

iOSAndroidWindows

ImageFilterクラスで定義されるプロパティはありません。

クラス概要

基本クラスのプロパティ


ImageFilterメソッド

API version 27

メソッド

iOSAndroidWindows

ImageFilterクラスには以下のメソッドが定義されています。

スタティックメソッド

API | 名前 | 説明
27 | Composite | 2つの画像を合成します

クラス概要

基本クラスのメソッド


ImageFilter.Compositeメソッド

説明

2つのImageオブジェクトを重ね合わせて合成します。

dstImgの上にtgtImgの一部を切り出して重ね合わせます。重ね合わせる画像はdstWおよびdstHで指定したサイズに変形します。

重ね合わせる画像のアスペクト比を維持する場合は、重ね合わせ先のアスペクト比を画像に合わせるようにしてください。

呼出形式

img = ImageFilter.Composite( dstImg , dstX , dstY , dstW , dstH , tgtImg , tgtX , tgtY , tgtW , tgtH [, option] )

戻り値

合成された画像のImageオブジェクト

引数

Image dstImg

重ね合わせ先になるImageオブジェクト

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

integer dstX

dstImg内の切り出す領域の左上のX座標

integer dstY

dstImg内の切り出す領域の左上のY座標

integer dstW

dstImg内の切り出す領域の幅

integer dstH

dstImg内の切り出す領域の高さ

Image tgtImg

重ね合わせるImageオブジェクト

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

integer tgtX

tgtImg内の重ね合わせる領域の左上のX座標

integer tgtY

tgtImg内の重ね合わせる領域の左上のY座標

integer tgtW

tgtImg内の重ね合わせる領域の幅

integer tgtH

tgtImg内の重ね合わせる領域の高さ

引数の意味は下記の通りとなります。

dstImgの画像 | tgtImgの画像 | 合成結果

dstX、dstY、tgtX、およびtgtYには負の値を指定することができます。

dstX、dstYが負の値 | tgtX、tgtYが負の値

Integer option

合成方法を以下の値から指定します。

定数 | 値 | 説明
ImageFilter.CompositeOptionLayer | 0 | 画像を単純に重ね合わせます
ImageFilter.CompositeOptionMultiply | 1 | 乗算モードで画像を重ね合わせます

省略した場合はImageFilter.CompositeOptionLayerとなります。

合成方法の違いによる合成結果の一例です。

合成方法 | dstImg | tgtImg | 合成結果
ImageFilter.CompositeOptionLayer |  |  |
ImageFilter.CompositeOptionMultiply |  |  |

例外

FUNC-4

引数の値が不正です

EXT-1

引数が不正です

EXT-7

無効なリファレンスです

EXT-26

イメージの実体が無いため実行できません

使用例

/* tgtImg全体を、サイズ、アスペクト比を維持して重ね合わせる */
var img = ImageFilter.Composite(dstImg, 100, 100, tgtImg.Width, tgtImg.Height, tgtImg, 0, 0, tgtImg.Width, tgtImg.Height, ImageFilter.CompositeOptionMultiply);

関連項目


ImageFilterイベント

API version 27

イベント

iOSAndroidWindows

ImageFilterクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


SlideMenuクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | ContainerObject
 |  |  |  | SlideMenu

スライドメニューを操作するクラスです。

スライドメニューの下位にはSlideMenuContentオブジェクトを配置して管理します。

SlideMenuクラスのXプロパティ、Yプロパティ、Widthプロパティ、およびHeightプロパティは無効です。メニューのサイズはSlideMenuContentクラスのWidthプロパティ、Heightプロパティによって決まります。

スライドメニューはOpenメソッドで開きます。メニューを閉じるにはCloseメソッドを呼ぶか、メニュー外をタップします。

スワイプ操作によるメニューの開閉には対応していません。スワイプ操作でメニューの開閉を行いたい場合は、Form.Gestureイベントで実装することを検討してください。

画面表示例

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。


SlideMenuプロパティ

API version 28

プロパティ

iOSAndroidWindows

SlideMenuクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
28 | Position | CR | integer | 0 | スライドメニューを表示する位置

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


SlideMenu.Positionプロパティ

スライドメニューの表示位置を以下から指定します。

定数 | 値 | 説明
SlideMenu.Left | 0 | メニューを画面左に表示します。
SlideMenu.Top | 1 | メニューを画面上に表示します。
SlideMenu.Right | 2 | メニューを画面右に表示します。
SlideMenu.Bottom | 3 | メニューを画面下に表示します。

デフォルトはSlideMenu.Leftです。


SlideMenuメソッド

API version 28

メソッド

iOSAndroidWindows

SlideMenuクラスには以下のメソッドが定義されています。

API | 名前 | 説明
28 | Close | スライドメニューを閉じます
28 | Open | スライドメニューを開きます

クラス概要

基本クラスのメソッド


SlideMenu.Closeメソッド

説明

スライドメニューを非表示にします。

呼出形式

slidemenu.Close()

戻り値

なし

引数

なし

例外

なし

使用例

Form Form1 {
 X = 0;
 Y = 0;
 Width = 234;
 Height = 278;
 Button btnMenuOpen {
  X = 30;
  Y = 30;
  Width = 200;
  Height = 40;
  Title = "Open Slide Menu";
  Function OnTouch(e) {
   ^.slidemenu.Open();
  }
 }

 SlideMenu slidemenu {
  /* スライドメニューを配置する位置を指定する。*/
  Position = SlideMenu.Left;

  SlideMenuContent content {
   Width  = 300;
   Height &= //.Height;

   /* SlideMenuContent以下にオブジェクトを配置可能。*/
   Button btn {
    /* SlideMenuContent内ではX, Yで座標を指定可能。*/
    X = 0;
    Y = 0;
    Width  = 200;
    Height = 40;
    Title = "Close Slide Menu";
    Function OnTouch(e) {
     ^.^.Close();
    }
   }

  }

 }

}

関連項目

Openメソッド


SlideMenu.Openメソッド

説明

スライドメニューを表示します。

呼出形式

slidemenu.Open()

戻り値

なし

引数

なし

例外

なし

使用例

Form Form1 {
 X = 0;
 Y = 0;
 Width = 234;
 Height = 278;
 Button btnMenuOpen {
  X = 30;
  Y = 30;
  Width = 200;
  Height = 40;
  Title = "Open Slide Menu";
  Function OnTouch(e) {
   ^.slidemenu.Open();
  }
 }

 SlideMenu slidemenu {
  /* スライドメニューを配置する位置を指定する。*/
  Position = SlideMenu.Left;

  SlideMenuContent content {
   Width  = 300;
   Height &= //.Height;

   /* SlideMenuContent以下にオブジェクトを配置可能。*/
   Button btn {
    /* SlideMenuContent内ではX, Yで座標を指定可能。*/
    X = 0;
    Y = 0;
    Width  = 200;
    Height = 40;
    Title = "Close Slide Menu";
    Function OnTouch(e) {
     ^.^.Close();
    }
   }

  }

 }

}

関連項目

Closeメソッド


SlideMenuイベント

API version 28

イベント

iOSAndroidWindows

SlideMenuクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


SlideMenuContentクラス

Object |  |  |  |  |
 | NetObject |  |  |  |
 |  | DisplayObject
 |  |  | ContainerObject
 |  |  |  | Form
 |  |  |  |  | SlideMenuContent

スライドメニューの内容を表示するクラスです。

必ずSlideMenuクラスの子オブジェクトとして使用してください。

SlideMenuContentの下位には別のオブジェクトを配置して管理します。下位のオブジェクトは自分が所属する親SlideMenuContentオブジェクトの領域を超えて表示されることはなく、親SlideMenuContentオブジェクトの大きさでクリッピングされます。

Widthプロパティ、Heightプロパティにより表示するサイズを指定することができますが、Xプロパティ、Yプロパティの指定は無効です。

画面表示例

表示可能なサイズの制限について

SlideMenuContentのWidthプロパティ、Heightプロパティが端末の画面サイズを超えると、画面を超えた範囲を表示することはできません。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


SlideMenuContentプロパティ

API version 28

プロパティ

iOSAndroidWindows

SlideMenuContentクラスで定義されるプロパティはありません。

クラス概要

基本クラスのプロパティ


SlideMenuContentメソッド

API version 28

メソッド

iOSAndroidWindows

SlideMenuContentクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


SlideMenuContentイベント

API version 28

イベント

iOSAndroidWindows

SlideMenuContentクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


SwitchButtonクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | ContainerObject
 |  |  |  | SwitchButton

複数の選択肢より任意の数を選択できるスイッチコントロールを表示するクラスです。

SwitchButtonクラスはSwitchItemクラスと協調して動作します。

選択肢として表示するデータを設定するには、SwitchButtonオブジェクトの下位に定められた構造でSwitchItemクラスまたはその派生クラスのオブジェクトを配置する必要があります。

オブジェクトの構造

画面表示例

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。

スケーリング時の注意点

特にありません


SwitchButtonプロパティ

API version 24

プロパティ

iOSAndroidWindows

SwitchButtonクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
24 | BgColor | CRW | integer | $STD | 背景の色
24 | Border | CR | boolean | $FALSE | 枠の表示
28 | BorderColor | CRW | integer | $STD | 枠の色
24 | FgColor | CRW | integer | $STD | 文字の色
24 | FontFace | CR | integer | $STD | フォントの装飾属性
24 | FontKind | CR | integer | $STD | フォントの種類
24 | FontSize | CR | integer | 10 | フォントサイズ
24 | Scalable | CR | boolean | $FALSE | スイッチコントロールが拡大/縮小可能かどうか
24 | Scroll | CR | integer | $AUTO | スクロールバーの表示制御
24 | Value | CRW | integer |  | 選択位置

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


SwitchButton.Scalableプロパティ

$TRUEの場合、スイッチコントロールのサイズがForm.HorizontalScaleプロパティ、Form.VerticalScaleプロパティに従って拡大、縮小されます。

$FALSEの場合は拡大、縮小されません。

デフォルトは$FALSEです。

スイッチコントロールは縦横比を維持したまま拡大、縮小されます。Form.HorizontalScaleプロパティ、Form.VerticalScaleプロパティの値が異なる場合、拡大率は小さい値が採用されます。


SwitchButton.Valueプロパティ

最後に選択した項目の配列番号です。

-1は非選択状態を示します。

各選択肢の選択状態はSwitchItem.Selectedプロパティで取得してください。


SwitchButtonメソッド

API version 24

メソッド

iOSAndroidWindows

SwitchButtonクラスには以下のメソッドが定義されています。

API | 名前 | 説明
24 | ResetThumbImage | SetThumbImageメソッドで設定した画像を破棄します。
24 | ResetTrachCheckedImage | SetTrachCheckedImageメソッドで設定した画像を破棄します。
24 | ResetTrachUncheckedImage | SetTrachUncheckedImageメソッドで設定した画像を破棄します。
24 | SetThumbImage | スライダーコントロールのつまみ部分の画像を設定します。
24 | SetTrachCheckedImage | チェック状態の背景画像を設定します。
24 | SetTrachUncheckedImage | 非チェック状態の背景画像を設定します。

クラス概要

基本クラスのメソッド


SwitchButton.ResetThumbImageメソッド

説明

SetThumbImageメソッドで設定した画像を破棄します。

呼出形式

SwitchButton1.ResetThumbImage( )

戻り値

なし

引数

なし

例外

なし

使用例

SwitchButton1.ResetThumbImage();

関連項目

SetThumbImageメソッド


SwitchButton.ResetTrackCheckedImageメソッド

説明

SetTrackCheckedImageメソッドで設定した画像を破棄します。

呼出形式

SwitchButton1.ResetTrackCheckedImage( )

戻り値

なし

引数

なし

例外

なし

使用例

SwitchButton1.ResetTrackCheckedImage();

関連項目

SetTrackCheckedImageメソッド


SwitchButton.ResetTrackUncheckedImageメソッド

説明

SetTrackUncheckedImageメソッドで設定した画像を破棄します。

呼出形式

SwitchButton1.ResetTrackUncheckedImage( )

戻り値

なし

引数

なし

例外

なし

使用例

SwitchButton1.ResetTrackUncheckedImage();

関連項目

SetTrackUncheckedImageメソッド


SwitchButton.SetThumbImageメソッド

説明

スイッチコントロールのつまみ部分に表示する画像を設定します。

呼出形式

SwitchButton1.SetThumbImage( img )

戻り値

なし

引数

Object img

Imageオブジェクト、ImageListオブジェクト、またはURLを設定します。

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

URLで設定する場合、画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

SwitchButton1.SetThumbImage(ImageList1.GetImage(0));
SwitchButton1.SetThumbImage("img/sample.png");

関連項目

ResetThumbImageメソッド

Image、ImageListクラス


SwitchButton.SetTrackCheckedImageメソッド

説明

チェック状態のスイッチコントロールの背景に表示する画像を設定します。

呼出形式

SwitchButton1.SetTrackCheckedImage( img )

戻り値

なし

引数

Object img

Imageオブジェクト、ImageListオブジェクト、またはURLを設定します。

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

URLで設定する場合、画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

SwitchButton1.SetTrackCheckedImage(ImageList1.GetImage(0));
SwitchButton1.SetTrackCheckedImage("img/sample.png");

関連項目

ResetTrackCheckedImageメソッド

Image、ImageListクラス


SwitchButton.SetTrackUncheckedImageメソッド

説明

非チェック状態のスイッチコントロールの背景に表示する画像を設定します。

呼出形式

SwitchButton1.SetTrackUncheckedImage( img )

戻り値

なし

引数

Object img

Imageオブジェクト、ImageListオブジェクト、またはURLを設定します。

ImageListオブジェクトを指定した場合は、先頭の画像が使用されます。

URLで設定する場合、画像ファイルの形式はBMP, GIF, TIFF, JPEG、PNG（透過PNGを含む）などのイメージファイルに対応しています。

例外

EXT-1

URLの引数が不正です

EXT-7

無効なリファレンスです

使用例

SwitchButton1.SetTrackUncheckedImage(ImageList1.GetImage(0));
SwitchButton1.SetTrackUncheckedImage("img/sample.png");

関連項目

ResetTrackUncheckedImageメソッド

Image、ImageListクラス


SwitchButtonイベント

API version 24

イベント

iOSAndroidWindows

SwitchButtonクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


SwitchItemクラス

Object |  |  |  |
 | NetObject
 |  | DisplayObject
 |  |  | FocusObject
 |  |  |  | SwitchItem

SwitchButtonクラスの選択肢を定義するクラスです。必ずSwitchButtonクラスの子オブジェクトとして配列化して利用します。

画面表示例

キーボード操作

このオブジェクトはキーボード操作に対応しています。下記のキー操作を行うことができます。

キー | 説明
SPACE | 選択状態を反転

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。

スケーリング時の注意点

◆ 選択ボタンをスケーリングしたいときは、SwitchButton.Scalableプロパティを$TRUEに設定してください。


SwitchItemプロパティ

API version 24

プロパティ

iOSAndroidWindows

SwitchItemクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
24 | Selected | CRW | boolean | $FALSE | 項目の選択状態
24 | Title | CRW | String |  | 選択肢に表示される文字列
24 | Value | CRW | String Number Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


SwitchItem.Selectedプロパティ

項目の選択状態です。

チェックされている状態では$TRUE、チェックされていない状態では$FALSEになります。


SwitchItem.Titleプロパティ

選択肢として表示する文字です。


SwitchItem.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。

選択肢の選択状態はSelectedプロパティ、選択肢として表示する文字はTitleプロパティで指定できます。


SwitchItemメソッド

API version 24

メソッド

iOSAndroidWindows

SwitchItemクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


SwitchItemイベント

API version 24

イベント

iOSAndroidWindows

SwitchItemクラスには以下のイベントが定義されています。

API | 名前 | 説明
24 | Touch | スイッチコントロールの選択状態を変更したときに発生します

クラス概要

基本クラスのイベント


SwitchItem.Touchイベント

スイッチコントロールの選択状態を変更したときに発生するイベントです。

画面からの操作およびスクリプトからの操作に関わらず発生します。

注意

SwitchItemクラスで発生したイベントのハンドラ内では、選択された項目番号の参照に親オブジェクトであるSwitchButtonクラスのValueプロパティを利用しないでください。（選択された項目番号が反映されていない場合があります。）

選択された項目番号は、イベントハンドラの引数として渡されるEventオブジェクトのFromプロパティ（SwitchItemオブジェクト）のIndexプロパティ（配列の添え字）を参照してください。項目の選択状態は、FromプロパティからSelectedプロパティを参照してください。


CSVパッケージ

CSV（カンマ区切りテキスト）形式のデータを扱うためのパッケージです。

クラス

API | 名前 | 説明
4 | CSVDocument | CSVデータを保持します


CSVDocumentクラス

Object
 | CSVDocument

CSVデータを保持するクラスです。

CSVDocumentクラスには以下の特徴があります。

1. 1個のCSVDocumentオブジェクトにすべてのセルデータが格納され、軽量です。

2. 行、列とも自由に追加、削除ができます。

3. ソートやマージ、ファイル入出力が可能です。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


CSVDocumentプロパティ

API version 4

プロパティ

iOSAndroidWindows

CSVDocumentクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Columns | R | integer | CSVデータの列数です
4 | Rows | R | integer | CSVデータの行数です
4 | Value | CRW | String Number Date | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


CSVDocument.Columnsプロパティ

CSVデータの列数です。

このプロパティは読み込み専用で変更することはできません。


CSVDocument.Rowsプロパティ

CSVデータの行数です。

このプロパティは読み込み専用で変更することはできません。


CSVDocument.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


CSVDocumentメソッド

API version 4

メソッド

iOSAndroidWindows

CSVDocumentクラスには以下のメソッドが定義されています。

API | 名前 | 概要
4 | (コンストラクタ) | CSVDocumentオブジェクトを初期化します
4 | Clear | すべての行と列を削除します
4 | ClearColumnName | すべての列の名前を削除します
29 | CreateIndex | インデックスを作成します
4 | DeleteColumn | 列を削除します
4 | DeleteRow | 行を削除します
4 | Find | CSVを検索します
4 | Get | URLからCSVを読み込みます
4 | GetCell | セルのデータを取得します
4 | GetCellByName | 列名を指定してセルのデータを取得します
4 | GetCells | 指定した行の複数列のデータを一括取得します
4 | GetColumnName | 列の名前を取得します
4 | InsertColumn | 列を挿入します
4 | InsertRow | 行を挿入します
4 | Load | ReaderオブジェクトからCSVを読み込みます
4 | Merge | 2個のCSVを結合します
4 | Parse | 文字列からCSVを読み込みます
4 | Replace | 複数のセルのデータを一括で置き換えます
4 | Save | WriterオブジェクトにCSVを保存します
4 | SetCell | セルのデータを設定します
4 | SetCellByName | 列名を指定してセルのデータを設定します
4 | SetCells | 指定した行の複数列のデータを一括更新します
4 | SetColumnName | 列の名前を設定します
4 | Splice | CSVを分割します
4 | Sort | CSVをソートします
4 | Truncate | 複数の行をまとめて削除します

クラス概要

基本クラスのメソッド


CSVDocumentコンストラクタ

説明

CSVDocumentオブジェクトを初期化します。

内部文字コードはUTF-8です。

呼出形式

var csvdoc = new CSVDocument( [ enc ] )

戻り値

CSVDocumentオブジェクト

引数

integer enc

互換性のために残されています。

指定は無視されます。

例外

なし

使用例

var csvdoc = new CSVDocument();
var res = session.Get("/test/sample.csv");
csvdoc.Load(res);

関連項目

Biz/Browser HTにおけるCSVDocumentの文字コードについて

CSVDocumentの内部文字コードは常にUTF-8となります。そのため、Getメソッド、Loadメソッドで読み込むCSVファイルはUTF-8形式で保存されている必要があります。他の文字コード（Shift-JISやUnicode(UTF-16)など）で保存されたCSVファイルは読み込めません。また、Saveメソッドによる保存もUTF-8形式になります。


CSVDocument.Clearメソッド

説明

すべての行と列を削除して、完全に空の状態にします。

呼出形式

csvdoc.Clear( )

戻り値

なし

引数

なし

例外

なし

使用例

var csvdoc = new CSVDocument;
var res = session.Get("/test/sample.csv");
csvdoc.Load(res);
csvdoc.Clear();

関連項目

Truncateメソッド


CSVDocument.ClearColumnNameメソッド

説明

すべての列の名前を削除します。

呼出形式

csvdoc.ClearColumnName( )

戻り値

なし

引数

なし

例外

なし

使用例

var csvdoc = new CSVDocument;
csvdoc << CSV(c1,c2,c3) {
1,2,3
4,5,6
};
for (var c = 0; c < csvdoc.Columns; c++) {
    print(csvdoc.GetColumnName(c), "\n");
}
csvdoc.ClearColumnName();

関連項目

GetColumnName、SetColumnNameメソッド


CSVDocument.CreateIndexメソッド

説明

Findメソッドによる検索を高速化するため、インデックスを作成します。

本メソッドでインデックスを作成後、Findメソッドで与えられた検索条件がインデックスで検索可能な条件の場合、検索の実行時間が短くなります。

以下のメソッドを呼び出すと、インデックスは消去されます。

Clearメソッド

Parseメソッド

Getメソッド

Loadメソッド

以下のメソッドを呼び出すと、メソッドによるCSVデータの変更に合わせてインデックスが更新されます。

DeleteColumnメソッド（ただし、インデックスを作成した列を削除した場合は、インデックスも削除されます）

DeleteRowメソッド

InsertColumnメソッド

InsertRowメソッド

Replaceメソッド

SetCellメソッド

SetCellByNameメソッド

SetCellsメソッド

Spliceメソッド

Sortメソッド

Truncateメソッド

また、MergeメソッドやSpliceメソッドの戻り値で生成されるCSVDocumentクラスオブジェクトはインデックスを持ちません。

呼出形式

csvdoc.CreateIndex( column )

戻り値

なし

引数

integer column

インデックスを作成する行の0で始まる行番号

例外

CSV-14

列の位置が不正です

使用例

var csvdoc = new CSVDocument;
csvdoc.Get("/test/sample.csv");
csvdoc.CreateIndex(0);

関連項目

Findメソッド


CSVDocument.DeleteColumnメソッド

説明

指定した位置の列を削除します。

呼出形式

csvdoc.DeleteColumn( column )

戻り値

なし

引数

integer column

削除する列の0で始まる列番号

0を指定すると最初の列、1を指定すると2列目が削除されます。

例外

CSV-4

指定の列を削除することはできませんでした

使用例

var csvdoc = new CSVDocument;
var res = session.get("/test/sample.csv");
csvdoc.Load(res);
csvdoc.DeleteColumn(0);

関連項目

InsertColumn、InsertRow、DeleteRowメソッド


CSVDocument.DeleteRowメソッド

説明

指定した位置の行を削除します。

呼出形式

csvdoc.DeleteRow( row )

戻り値

なし

引数

integer row

削除する行の0で始まる行番号

0を指定すると最初の行、1を指定すると2行目が削除されます。

例外

CSV-6

指定の行を削除することはできませんでした

使用例

var csvdoc = new CSVDocument;
var res = session.Get("/test/sample.csv");
csvdoc.Load(res);
csvdoc.DeleteRow(0);

関連項目

InsertRow、InsertColumn、DeleteColumnメソッド


CSVDocument.Findメソッド

説明

指定の条件でCSVデータを検索し、最初に発見した行の行番号を返します。

呼出形式

var ret = csvdoc.Find( row [, cond1 [, cond2, … ] ] )

戻り値

最初に条件に一致した0で始まる行番号

一致する行が見つからない場合は-1を返します。

引数

integer row

検索を開始する行の0で始まる行番号

rowで指定した行以降が検索の対象となります。

String cond

検索条件

Loadメソッドと同様の書式で指定します。

検索条件は、最大で列の数と同じだけ指定することができ、複数指定した場合はANDにより結合されます。

例外

なし

使用例

var csvdoc = new CSVDocument;
csvdoc << Form1.Spread1.row;
var row = csvdoc.Find(0, "0==X11", "3n<100");
Form1.Spread1.Value = row;

関連項目

Load、Replaceメソッド


CSVDocument.Getメソッド

説明

指定のURLからCSVデータを読み込みます。

Getメソッドを実行する前のデータは失われます。

取得するCSVデータはキャッシュの対象にはなりません。常にサーバから取得します。

paramを指定しない場合は、リクエストはHTTPのGETで送られます。

paramを指定した場合は、リクエストはHTTPのPOSTで送られます。

WEBサーバがHTTPステータスコードに200（$HTTP_OK）を返さない場合は、CRS-331の例外が発生します。

また、HTTPレスポンスヘッダを利用して任意の例外を発生させることが可能です。

詳細はNetObject.Getを参照してください。

WEBサーバがHTTPレスポンスヘッダのContent-Type内にcharsetが指定されている場合、受け取ったCSVデータを指定された文字コードの文字列として解析します。

文字コードが指定されていないか、不明な文字コードの場合、UTF-8の文字列として解析します。

Android版
Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、OSに対してユーザー操作で許可をとる必要があります。
詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

csvdoc.Get( URL [, param1 [, param2, … ] ] )

戻り値

なし

引数

String URL

CSVデータを読み込むURL

NetObject.GetメソッドのURLと同じです。

Object param

リクエストに付加するパラメータ

NetObject.Getメソッドのparamと同じです。

例外

CSV-1

CSVの形式が不正です

CSV-10

列数が一定していません

CRS-331

通信エラー

NetObject.Getメソッドの例外と同じです。

使用例

var csvdoc = new CSVDocument;
csvdoc.Get("/test/sample.cgi", "KEY=126", "MODE=A");

関連項目

Load、Parse、NetObject.Getメソッド


CSVDocument.GetCellメソッド

説明

行と列を指定して、セルのデータを取得します。

呼出形式

var data = csvdoc.GetCell( row, column )

戻り値

セルの文字列

該当セルが存在しない場合はnullを返します。

引数

integer row

取得するセルの0で始まる行番号

integer column

取得するセルの0で始まる列番号

例外

なし

使用例

var csvdoc = new CSVDocument;
var res = session.Get("/test/sample.csv");
csvdoc.Load(res);
var cell = csvobj.GetCell(0, 1);
print(cell, "\n");

関連項目

SetCell、GetCells、GetCellByNameメソッド


CSVDocument.GetCellByNameメソッド

説明

列名と行番号を指定して、セルのデータを取得します。

列名はSetColumnNameメソッドや、CSV定数で設定します。

呼出形式

var cell = csvdoc.GetCellByName( row, columnName )

戻り値

取得したセルの文字列

該当セルが存在しない場合はnullを返します。

引数

integer row

取得する行の0で始まる行番号

String columnName

取得する列の名前

例外

CSV-13

行の位置が不正です

CSV-14

列の位置が不正です

使用例

var csvdoc = new CSVDocument;
csvdoc.Get("/test/sample.csv");
csvdoc.SetColumnName(2, "Type");
var cell = csvdoc.GetCellByName(0, "Type");
print(cell, "\n");

関連項目

SetCellByName、GetCell、GetColumnName、SetColumnNameメソッド


CSVDocument.GetCellsメソッド

説明

指定した行の複数列のデータを一括取得します。

呼出形式

csvdoc.GetCells( row [, startcol [, endcol ] ] )

戻り値

取得したセルのStringオブジェクトの配列

引数

integer row

取得する行の0で始まる行番号

integer startcol

取得を開始する列の0で始まる列番号

startcolが実際に存在する列数よりも大きい場合は、１列も取得されません。startcolを省略するか、負数を指定した場合は、先頭列から取得します。

integer endcol

取得を終了する列の0で始まる列番号

指定した列の１個手前の列まで取得されます。endcolがstartcol以下の場合は、1列も取得されません。endcolを省略するか、実際に存在する列数よりも大きい値を指定した場合は、最終列まで取得します。

例外

CSV-13

行の位置が不正です

使用例

var csvdoc = new CSVDocument;
csvdoc.Load(robj);

/* 2行目の3列目から5列目を取得 */
var cells = csvdoc.GetCells(1, 2, 5);
for (var i = 0; i < cells.Length; i++) {
    print(cells[i], "\n");
}

関連項目

SetCells、GetCellメソッド


CSVDocument.GetColumnNameメソッド

説明

列の名前を取得します。

SetColumnNameメソッドや、CSV定数で設定された名前を取得できます。

呼出形式

var name = csvdoc.GetColumnName( column )

戻り値

指定した列の名前

引数

integer column

名前を取得する列の0で始まる列番号

例外

CSV-14

列の位置が不正です

使用例

var csvdoc = new CSVDocument;
csvdoc << CSV(c1,c2,c3) {
1,2,3
4,5,6
};
for (var c = 0; c < csvdoc.Columns; c++) {
    print(csvdoc.GetColumnName(c), "\n");
}

関連項目

SetColumnName、ClearColumnName、GetCellByName、SetCellByNameメソッド


CSVDocument.InsertColumnメソッド

説明

指定の位置に列を挿入します。

挿入された列の各セルのデータは、空文字列で初期化されます。

呼出形式

csvdoc.InsertColumn( column )

戻り値

なし

引数

integer column

挿入位置の0で始まる列番号

0を指定すると先頭列、1を指定すると2列目に新しい列が作成されます。-1または現在の列数よりも大きな番号を指定すると、最後の列として挿入されます。

例外

なし

使用例

var csvdoc = new CSVDocument;
csvdoc.InsertColumn(-1);
csvdoc.InsertColumn(-1);
csvdoc.InsertRow(-1);
csvdoc.InsertRow(-1);
csvdoc.SetCell(1, 1, "sample");

関連項目

DeleteColumn、InsertRow、DeleteRowメソッド


CSVDocument.InsertRowメソッド

説明

指定の位置に行を挿入します。

挿入された行の各セルのデータは、空文字列で初期化されます。

呼出形式

csvdoc.InsertRow( row )

戻り値

なし

引数

integer row

挿入位置の0で始まる行番号

0を指定すると先頭行、1を指定すると2行目に新しい行が作成されます。-1または現在の行数よりも大きな番号を指定すると、最後の行として挿入されます。

例外

なし

使用例

var csvdoc = new CSVDocument;
csvdoc.InsertColumn(-1);
csvdoc.InsertColumn(-1);
csvdoc.InsertRow(-1);
csvdoc.InsertRow(-1);
csvdoc.SetCell(1, 1, "sample");

関連項目

DeleteRow、InsertColumn、DeleteColumnメソッド


CSVDocument.Loadメソッド

説明

ReaderオブジェクトからCSVデータを読み込みます。

Loadメソッドを実行する前のデータは失われます。

WEBサーバやファイルからCSVデータを読み込む場合、Getメソッドを利用することもできますが、Loadメソッドの方が、読み込む行を選択できるなど、機能に柔軟性があります。

呼出形式

csvdoc.Load( reader [, cond1 [, cond2, … ] ] )

戻り値

なし

引数

Object reader

読み込み元のReaderオブジェクト（ReadLineメソッドを利用できるオブジェクト）

String cond

読み込む行を指定する検索条件

次の書式で指定します。

column [mode] operator value

column

検索キーとなる列を0から始まる列番号で指定します

mode

検索キーを数値として比較する場合は "n" を指定します（省略した場合は文字列として比較）

operator

以下の比較演算子を指定します

operator | 説明
== | valueに一致
!= | valueに不一致
> | valueよりも大きい
>= | value以上
< | value未満
<= | value以下

value

比較対象の値を指定します

同じ行の別の列と比較する場合は、[ ]で列番号を指定します。

例

"0==A"         1列目がAの行に一致します。
"1n>100"       2列目が100より大きい行に一致します。
"2==[3]"       3列目と4列目が等しい行に一致します。

検索条件は、最大で列の数と同じだけ指定することができ、複数指定した場合はANDにより結合されます。

例外

CSV-8

有効なReadオブジェクトが指定されていません

CSV-9

ReadLine()メソッドをサポートしていません

使用例

var csvdoc = new CSVDocument;
var res = session.get("/test/sample.csv");
csvdoc.Load(res, "1n>100", "2==[3]");

関連項目

Save、Get、Parseメソッド


CSVDocument.Mergeメソッド

説明

2個のCSVデータを結合します。

結合した2個のCSVデータの列数は、大きい方に合わせられます。

呼出形式

var csvdoc3 = csvdoc2.Merge( csvdoc )

戻り値

2個のCSVDocumentを結合した新しいCSVDocumentオブジェクト

引数

CSVDocument csvdoc

結合するCSVDocumentオブジェクト

例外

CSV-15

引数が有効なCSVDocumentオブジェクトではありません

使用例

var csvdoc1 = new CSVDocument;
var csvdoc2 = new CSVDocument;
csvdoc1.Get("http://server/data1.csv");
csvdoc2.Get("http://server/data2.csv");
var csvdoc3 = csvdoc1.Merge(csvdoc2);
csvdoc3.Save(file);

関連項目

Spliceメソッド


CSVDocument.Parseメソッド

説明

文字列からCSVデータを読み込みます。

Parseメソッドを実行する前のデータは失われます。

Parseメソッドは、読み込む機能はLoadメソッドと同じですが、引数にStringオブジェクトを指定できます。

呼出形式

csvdoc.Parse( str [, cond1 [, cond2, … ] ] )

戻り値

なし

引数

String str

CSV文字列

String cond

読み込む行を指定する検索条件

Loadメソッドと同様の書式で指定します。

検索条件は、最大で列の数と同じだけ指定することができ、複数指定した場合はANDにより結合されます。

例外

なし

使用例

var csvdoc = new CSVDocument;
var str = "aaa,bbb,ccc";
csvdoc.Parse(str);

関連項目

Save、Get、Loadメソッド


CSVDocument.Replaceメソッド

説明

指定された列の複数のセルのデータを一括で置き換えます。

検索条件を指定して置き換えるセルを選択できます。

呼出形式

var ret = csvdoc.Replace( row, col, val [, cond1 [, cond2, … ] ] )

戻り値

更新されたセルの数

引数

integer row

置き換えを開始する行の0で始まる行番号

rowで指定した行以降が置き換えの対象となります。

integer col

置き換える列の0で始まる列番号

String val

設定する文字列

文字列を直接指定するか、以下の書式で別の列の値を指定できます。

"[列番号]"

例

"[3]"

この例では、条件に一致したセルを、同じ行の4列目の値で置き換えます。

置き換える文字列が"["で始まる場合、"\["でエスケープします。\はCRS言語のエスケープ文字となるため、CRSスクリプト中に文字列定数で指定する場合には、2重に\を指定する必要がある点に注意してください。

例

"\\[12\\]"

String cond

置き換えるセルの検索条件

Loadメソッドと同様の書式で指定します。

検索条件は、最大で列の数と同じだけ指定することができ、複数指定した場合はANDにより結合されます。

例外

CSV-14

列の位置が不正です

使用例

var csvdoc = new CSVDocument;
csvdoc.Get("http://server/data1.csv");

/* すべての行の1列目を"new data"に更新 */
csvdoc.Replace(0, 0, "new data");

/* すべての行の2列目を3列目と同じ値に更新 */
csvdoc.Replace(0, 1, "[2]");

/* 4列目が"1"の行の5列目を3列目と同じ値に更新 */
csvdoc.Replace(0, 4, "[2]", "3==1");

/* 6列目が7列目と同じ行のを8列目を3列目と同じ値に更新 */
csvdoc.Replace(0, 7, "[2]", "5==[6]");

関連項目

Load、Findメソッド


CSVDocument.Saveメソッド

説明

WriterオブジェクトにCSVデータを保存します。

内部文字コードはUTF-8です。

呼出形式

csvdoc.Save( writer [, cond1 [, cond2, … ] ] )

または

csvdoc.Save( writer [, delimiter [, cond1 [, cond2, … ] ] ] )

戻り値

なし

引数

Object writer

保存先のWriterオブジェクト

String delimiter

出力時のデリミタ文字をデフォルトのカンマ(,)から変更します。

"d=[デリミタ文字]"で指定します。デリミタに指定できるものは1文字だけです。

タブ区切りの場合"d=\t"のように指定します。

デリミタを変更した場合、クォート処理は実行されません。

第2引数がデリミタ指定と見なされなかった場合、検索条件指定として見なされます。

String cond

保存する行を指定する検索条件

Loadメソッドと同様の書式で指定します。

検索条件は、最大で列の数と同じだけ指定することができ、複数指定した場合はANDにより結合されます。

例外

CSV-11

有効なWriteオブジェクトが指定されていません

CSV-12

WriteString(string)メソッドをサポートしていません

使用例

var csvdoc = new CSVDocument;
var res = session.Get("http://server/sample.csv");
csvdoc.Load(res);
var fs = new FileSystem;
var fp = fs.Open("sample.csv", FileSystem.OPEN_WRITE);
csvdoc.Save(fp);
fp.Close();

関連項目

Loadメソッド


CSVDocument.SetCellメソッド

説明

行と列を指定して、セルのデータを設定します。

呼出形式

csvdoc.SetCell( row, column, text )

戻り値

なし

引数

integer row

設定するセルの0で始まる行番号

integer column

設定するセルの0で始まる列番号

String text

セルに設定する文字列

例外

CSV-13

行の位置が不正です

CSV-14

列の位置が不正です

使用例

var csvdoc = new CSVDocument;
csvdoc.InsertColumn(0);
csvdoc.InsertRow(0);
csvdoc.SetCell(0, 0, "sample");

関連項目

GetCell、SetCells、SetCellByNameメソッド


CSVDocument.SetCellByNameメソッド

説明

列名と行番号を指定して、セルのデータを設定します。

列名はSetColumnNameメソッドや、CSV定数で設定します。

呼出形式

csvdoc.SetCellByName( row, columnName, text )

戻り値

なし

引数

integer row

設定する行の0で始まる行番号

String columnName

設定する列の名前

String text

セルに設定する文字列

例外

CSV-13

行の位置が不正です

CSV-14

列の位置が不正です

使用例

var csvdoc = new CSVDocument;
csvdoc.InsertColumn(0);
csvdoc.InsertRow(0);
csvdoc.SetColumnName(0, "Data");
csvdoc.SetCellByName(0, "Data", "sample");

関連項目

GetCellByName、SetCell、GetColumnName、SetColumnNameメソッド


CSVDocument.SetCellsメソッド

説明

指定した行の複数列のデータを一括更新します。

呼出形式

csvdoc.SetCells( row, column [, data1 [, data2 ... ] ] )

戻り値

なし

引数

integer row

更新する行の0で始まる行番号

integer col

更新を開始する列の0で始まる列番号

colで指定した列からdata1, data2, ...と列順に更新されます。

String data

セルに設定する文字列

例外

CSV-13

行の位置が不正です

CSV-14

列の位置が不正です

使用例

var csvdoc = new CSVDocument;
csvdoc.Load(robj);

/* 2行目の3列目に"a"、4列目に"b"、5列目に"c"をセット */
csvdoc.SetCells(1, 2, "a", "b", "c");

関連項目

GetCells、SetCellメソッド


CSVDocument.SetColumnNameメソッド

説明

列の名前を設定します。

列の名前は、単に名前として使用するほかに、オブジェクト名やプロパティ名を表すことができ、[ ] << CSV定数オペレータや[ ] << CSVDocumentオペレータでCSVデータを配列へコピーする際に、コピー先のオブジェクトやプロパティを明示的に指定できます。

呼出形式

csvdoc.SetColumnName( column, name )

戻り値

なし

引数

integer column

名前を設定する列の0で始まる列番号

String name

列の名前

空文字列を指定すると列名は削除されます。

例外

CSV-14

列の位置が不正です

使用例

var csvdoc = new CSVDocument;
csvdoc.Get("http://server/test.csv");
csvdoc.SetColumnName(0, "c1");
csvdoc.SetColumnName(1, "c2");
csvdoc.SetColumnName(2, "c3");

var csvdoc = new CSVDocument;
csvdoc.Get("http://server/test2.csv");
csvdoc.SetColumnName(0, ".Title");
csvdoc.SetColumnName(1, ".Value");
ListBox1.ListItem1 << csvdoc;

関連項目

GetColumnName、ClearColumnName、GetCellByName、SetCellByNameメソッド

[ ] << CSV定数、[ ] << CSVDocumentオペレータ


CSVDocument.Spliceメソッド

説明

指定の条件でCSVデータを分割します。

条件に一致した行はCSVDocumentオブジェクトから削除され、新しいCSVDocumentオブジェクトに格納されます。

呼出形式

var csvdoc2 = csvdoc.Splice( row [, cond1 [, cond2, … ] ] )

戻り値

条件に一致した行だけからなる新しいCSVDocumentオブジェクト

引数

integer row

分割を開始する行の0で始まる行番号

rowで指定した行以降が分割の対象となります。

String cond

分割する行を指定する検索条件

Loadメソッドと同様の書式で指定します。

検索条件は、最大で列の数と同じだけ指定することができ、複数指定した場合はANDにより結合されます。

例外

なし

使用例

/* 第1列が数値で2001より大きく、かつ第2列が空欄の行はcsvdoc2に格納されます。 */
/* それ以外の行はcsvdoc1に残ります。 */
var csvdoc1 = new CSVDocument;
csvdoc1.Get("http://server/data1.csv");
var csvdoc2 = csvdoc1.Splice(0, "0n>2001", "1==");

関連項目

Merge、Loadメソッド


CSVDocument.Sortメソッド

説明

CSVデータをソートします。

ソート順序はキー指定文字列により任意に指定することができます。

呼出形式

csvdoc.Sort( key1 [, key2 [, key3, … ] ] )

戻り値

なし

引数

String key

ソート順序を指定するキー指定文字列

最低1個、最大で列の数と同じだけ指定することができ、複数指定した場合は、指定した順に優先されます。

次の書式で指定します。

column [mode] [arrangement]

column | ソートキーとなる列を0から始まる列番号で指定します
mode | ソートキーを数値として比較する場合は "n" を指定します（省略した場合は文字列として比較）
arrangement | 降順にソートする場合は "d" を指定します（省略した場合は昇順）

例

"0d"   1列目を文字列比較で降順
"3nd"  4列目を数値比較で降順
"1"    2列目を文字列比較で昇順

例外

なし

使用例

var csvdoc = new CSVDocument;
csvdoc << Form1.Spread1.row;
csvdoc.Sort("0d", "3nd", "1");
Form1.Spread1.row << csvdoc;

関連項目


CSVDocument.Truncateメソッド

説明

複数の行をまとめて削除します。列は維持されます。

呼出形式

csvdoc.Truncate( [ row ] )

戻り値

なし

引数

integer row

削除を開始する行の0で始まる行番号

rowで指定した行以降が削除されます。省略した場合は、すべての行が削除されます。

例外

CSV-13

行の位置が不正です

使用例

var csvdoc = new CSVDocument;
var res = session.Get("/test/sample.csv");
csvdoc.Load(res);
csvdoc.Truncate(5);

関連項目

Clearメソッド


CSVDocumentイベント

API version 4

イベント

iOSAndroidWindows

CSVDocumentクラスには以下のイベントが定義されています。

CSVDocumentクラスで定義されるイベントは、[ ] << CSV定数オペレータや[ ] << CSVDocumentオペレータによりCSVデータを配列オブジェクトに対して代入する過程で発生します。

CSVDocumentクラスで定義されるイベントは、代入先のオブジェクトの種類に関わらず発生します、代入先のオブジェクトにより定義されるわけではないので、Biz/Designerのイベントビューにはこれらのイベントは表示されることはありません。CSVDocumentクラスのイベントを処理するイベントハンドラは、スクリプトエディタで直接記述してください。

API | 名前 | 説明
4 | LoadBreak | すべてのCSVデータの代入が完了したとき発生します

クラス概要

基本クラスのイベント


CSVDocument.LoadBreakイベント

配列オブジェクトに対するCSVデータのロードが終了した時点で、代入先のオブジェクトに対して発生します。


CSVDocumentオペレータ

API version 4

オペレータ

iOSAndroidWindows

CSVDocumentクラスにはCSV定数と配列をサポートする以下のオペレータが定義されています。

API | オペレータ | 説明
4 | [ ] << CSV定数 | 左辺の配列オブジェクトに右辺のCSV定数をロードします
4 | [ ] << CSVDocument | 左辺の配列オブジェクトに右辺のCSVDocumentのデータをロードします
4 | CSVDocument << CSVDocument | 左辺のCSVDocumentオブジェクトに右辺のCSVDocumentオブジェクトのデータをロードします
4 | CSVDocument << [ ] | 左辺のCSVDocumentオブジェクトに右辺の配列オブジェクトのデータをロードします
4 | CSVDocument << CSV定数 | 左辺のCSVDocumentオブジェクトに右辺のCSV定数をロードします

クラス概要


[ ] << CSV定数 オペレータ

左辺の配列オブジェクトに対して、右辺のCSV定数をロードします。左辺にRecord配列、ListItemなどを利用することでCSVデータを使い効率的にオブジェクトを初期化できます。

ListBox初期化の例

ListBox ListBox1 {
    ListItem ListItem1[];
    ListItem1 << CSV(.Title, .Value) {
    第1営業部,10021
    第2営業部,10022
    製造管理部,20030
    };
}

CSVデータをロード可能なオブジェクト構造

左辺に指定できる配列オブジェクトは、以下の構造をもつ必要があります。

種類

例

説明

1次元配列

String data[];

配列の要素数がCSVデータの行数に相当します。

列数は１列となり、data自体が列に相当します。

2次元相当の配列

Record rec[] {
    String data1;
    String data2;
}

配列の要素数がCSVデータの行数に相当します。

列数は子オブジェクトの個数となり、data1、data2が列に相当します。

CSVデータのロードにおける行方向の動作

左辺のオブジェクトが配列の要素数を明示して定義されていない場合、代入前の要素数に関わらず配列の要素数はCSVデータの行数と同じになります。

Record rec[] {
    Number SURYO;
    Number TANKA;
}
rec << CSV {
1,100
2,200
2,200
1,100
};

→

 | SURYO | TANKA
[0] | 1 | 100
[1] | 2 | 200
[2] | 2 | 200
[3] | 1 | 100

左辺のオブジェクトが配列の要素数を明示して定義されている場合、CSVデータの代入では固定長の配列として扱われます。CSVデータの行数に関わらず、配列の要素数は変更されません。

要素数よりもCSVデータの行数が多い場合は、要素数を超えたCSVデータの行は切り捨てられます。CSVデータの行数が少ない場合は、後続の配列要素の値は変更されず、CSVデータのロード前の値を保持します。

配列の要素数 ＜ CSVデータの行数の場合

Record rec[4] {
    Number SURYO;
    Number TANKA;
}
rec << CSV {
1,100
2,200
2,200
1,100
3,300  ←切り捨て
4,400  ←切り捨て
};

→

 | SURYO | TANKA
[0] | 1 | 100
[1] | 2 | 200
[2] | 2 | 200
[3] | 1 | 100

配列の要素数 ＞ CSVデータの行数の場合

Record rec[6] {
    Number SURYO;
    Number TANKA;
}
    :
rec << CSV {
1,100
2,200
2,200
1,100
};

→

 | SURYO | TANKA |
[0] | 1 | 100 |
[1] | 2 | 200 |
[2] | 2 | 200 |
[3] | 1 | 100 |
[4] | 6 | 600 | ←変化しない
[5] | 7 | 700 | ←変化しない

要素数が明示されている配列でも、InsertメソッドやDeleteメソッドの実行により異なる件数の要素を持つことがあります。この場合は、CSVデータのロードにより明示した要素数まで配列は拡張されますが、明示されている要素数を超えて拡張されたり、既に明示した要素数を超えている要素が削除されることはありません。

Record rec[4] {
    Number SURYO;
    Number TANKA;
}
rec[3].Delete();

rec << CSV {
1,100
2,200
2,200
1,100
3,300  ←切り捨て
};

→

 | SURYO | TANKA |
[0] | 1 | 100 |
[1] | 2 | 200 |
[2] | 2 | 200 |
[3] | 1 | 100 | ←拡張される

Record rec[4] {
    Number SURYO;
    Number TANKA;
}
rec.Insert();
    :
rec << CSV {
1,100
2,200
2,200
1,100
};

→

 | SURYO | TANKA |
[0] | 1 | 100 |
[1] | 2 | 200 |
[2] | 2 | 200 |
[3] | 1 | 100 |
[4] | 6 | 600 | ←削除はされない

既に明示した要素数を超える要素を持った状態でCSVデータのロードした場合は、明示した要素数は関係なく現在の要素数までCSVデータを代入します。

Record rec[4] {
    Number SURYO;
    Number TANKA;
}
rec.Insert(2);

rec << CSV {
1,100
2,200
2,200
1,100
3,300
4,400
};

→

 | SURYO | TANKA
[0] | 1 | 100
[1] | 2 | 200
[2] | 2 | 200
[3] | 1 | 100
[4] | 3 | 300
[5] | 4 | 400

CSVデータのロードにおける列方向の動作

CSVデータの列は、代入先のオブジェクトの定義順に代入されます。

CSVデータの列数よりも代入先のオブジェクトが多い場合は、CSVデータの列数を超えたオブジェクトは変化しません。

また、CSVデータの列数のほうが多い場合は、代入先のオブジェクトに対応しない列は切り捨てられます。

Record rec[4] {
    Number SURYO;
    Number TANKA;
    Number KINGAKU;
}
rec << CSV {
1,100,100
2,200,400
2,200,400
1,100,100
};

→

 | SURYO | TANKA | KINGAKU
[0] | 1 | 100 | 100
[1] | 2 | 200 | 400
[2] | 2 | 200 | 400
[3] | 1 | 100 | 100

列の名前をオブジェクト名、プロパティ名として使用する

列の名前付きのCSVデータを配列オブジェクトにロードする場合は、列の名前により代入先のオブジェクトやプロパティが決定されます。CSVデータの列の並び順は意味を持ちません。

列の名前は、SetColumnNameメソッドやCSV定数で設定します。

オブジェクト名として使用する例

Record rec[] {
    String SURYO;
    String TANKA;
    String KINGAKU;
}
var csvdoc = new CSVDocument;
csvdoc << CSV {
100,1,100
200,2,400
300,3,900
};
csvdoc.SetColumnName(0, "TANKA");
csvdoc.SetColumnName(1, "SURYO");
csvdoc.SetColumnName(2, "KINGAKU");
rec << csvdoc;

→

 | SURYO | TANKA | KINGAKU
[0] | 1 | 100 | 100
[1] | 2 | 200 | 400
[2] | 3 | 300 | 900

この例では、列の名前にオブジェクト名を指定しています。その結果、各列が同名のオブジェクトに代入されます。

列の名前に一致するオブジェクトが代入先のオブジェクトツリーに見つからない場合、その列は切り捨てられ、代入結果に影響を与えません。

プロパティ名として使用する例

ListBox lbData {
    ListItem item[];
}
lbData.item << CSV( item.Title, item.Value ) {
選択肢１,値１
選択肢２,値２
選択肢３,値３
};

→

 | item.Title | item.Value
[0] | 選択肢１ | 値１
[1] | 選択肢２ | 値２
[2] | 選択肢３ | 値３

この例では、列の名前にオブジェクト名とプロパティ名を指定しています。オブジェクト名とプロパティ名はピリオドで区切ります。

その結果、第1列がListItemクラスのTitleプロパティに代入され、第2列がListItemクラスのValueプロパティに代入されます。

注意

・複数のピリオドは使用できません。2つ目のピリオド以降の文字列は無視されます。

・オブジェクト名を省略した場合（".Title"、".Value"のような列名）は、代入先オブジェクトのプロパティと見なされます。

・ピリオド以降の名前が子オブジェクトの名前と一致する場合は、その子オブジェクトのデフォルトプロパティが対象になります。

代入先の子オブジェクトのプロパティに設定する例

Spread Spread1 {
    SpreadRow row[] {
        SpreadColumn c1;
        SpreadColumn c2;
        SpreadColumn c3;
    }
    row << CSV( c1.Value, c2.Value, c3.Value ) {
    100,1,100
    200,2,400
    300,3,900
    };
}

→

 | c1.Value | c2.Value | c3.Value
[0] | 100 | 1 | 100
[1] | 200 | 2 | 400
[2] | 300 | 3 | 900

この例では、子オブジェクトの名前とプロパティ名を指定しています。その結果、第1列がc1（SpreadColumnクラス）、第2列がc2、第3列がc3のValueプロパティに代入されます。


[ ] << CSVDocument オペレータ

左辺の配列オブジェクトに対して、右辺のCSVDocumentのデータをロードします。

CSVデータのロードにおける動作は、[ ] << CSV定数オペレータと同じです。詳細は、[ ] << CSV定数オペレータの解説を参照してください。


CSVDocument << CSVDocument オペレータ

左辺のCSVDocumentオブジェクトに対して、右辺のCSVDocumentオブジェクトのデータをロードします。


CSVDocument << [ ] オペレータ

左辺のCSVDocumentオブジェクトに対して、右辺の配列オブジェクトのデータをロードします。

右辺に指定できる配列オブジェクトは、以下の構造をもつ必要があります。

種類

例

説明

1次元配列

String data[];

配列の要素数がCSVデータの行数に相当します。

列数は１列となり、data自体が列に相当します。

2次元相当の配列

Record rec[] {
    String data1;
    String data2;
}

配列の要素数がCSVデータの行数に相当します。

列数は子オブジェクトの個数となり、data1、data2が列に相当します。


CSVDocument << CSV定数 オペレータ

左辺のCSVDocumentオブジェクトに対して、右辺のCSV定数をロードします。


CSV定数

CSVDocumentクラスはCSV定数を定義しています。CSV定数は、[ ] << CSV定数オペレータ、CSVDocument << CSV定数オペレータによるデータの設定に利用できます。

CSV定数ブロック内は、CRSスクリプトとは文法的な関連性はないため、CRSの文法(文字列を""で括るなど)、定数($REDなど)、演算子(+や-など)、関数などは使用できません。CSVとしての書式に従う必要があります。

CSVの書式は以下のようになります。

1. 列の数は一定している必要があります。ただし、先頭行以外で列数があわない場合は、先頭行と同じ列数になるように補完されます。

2. 列と列はエスケープされないカンマで区切られます。

3. 行と行はエスケープされない改行で区切られます。

4. データにカンマまたは改行を含む場合、"（ダブルクォーテーション）でデータを括りエスケープします。

5. "（ダブルクォーテーション）で括ったデータの中に"（ダブルクォーテーション）自体を含める場合は、""のように2個連続して記述します。

使用例

var csvdata = new CSVDocument;
csvdata << CSV {
A,1200,3000,100,C,XX1
A,1200,3000,100,C,XX1
A,1200,3000,100,C,XX1
    :
};

以下の書式でCRSスクリプト内にCSVデータを直接記述することができます。

CSV {
列1,列２,列３
列1,列２,列３
列1,列２,列３
列1,列２,列３
    :
};

CSV定数は、列に対して名前を付加することができます。

名前付きのCSV定数

CSV( name1, name2, name3 ) {
列1,列２,列３
列1,列２,列３
列1,列２,列３
列1,列２,列３
    :
};

付加した列名は、GetColumnNameメソッドで取得でき、SetColumnNameメソッドで変更できます。

列の名前は、単に名前として使用するほかに、オブジェクト名やプロパティ名を表すことができ、[ ] << CSV定数オペレータで配列へコピーする際に、コピー先のオブジェクトやプロパティを明示的に指定できます。


XMLパッケージ

XML形式のデータを扱うためのパッケージです。

XMLパッケージはW3C（World Wide Web Consortium）で策定されているDOM（Document Object Model）Level2の一部の機能を除いたサブセットです。

SVG（Scalable Vector Graphics）の操作は、このXMLパッケージによりSVGを構成するXMLノードを操作することで実現します。

クラス

API | 名前 | 説明
4 | XmlAttr | Attrノードを定義します
4 | XmlCDATASection | CDATASectionノードを定義します
4 | XmlCharacterData | 文字列を格納するノードの基底クラスです
4 | XmlComment | Commentノードを定義します
4 | XmlDocument | DOMツリーのルートノード（Documentノード）を定義します
4 | XmlDocumentFragment | ドキュメントの断片を維持するクラスです
4 | XmlDOMException | DOMの例外を定義します
4 | XmlDOMImplementation | DOMの実装を定義します
4 | XmlElement | Elementノードを定義します
4 | XmlNamedNodeMap | ノードの集合を名前付きマップで管理します
4 | XmlNode | すべてのノードの基底クラスです
4 | XmlNodeList | ノードの集合をノードリストで管理します
4 | XmlProcessingInstruction | 処理命令ノード（ProcessingInstructionノード）を定義します
4 | XmlText | Textノードを定義します

XMLパッケージは、W3CのDOM Level2 Core Specificationに従い、各クラスは次の継承関係で構成されます。

W3C DOM Level2との互換性について

Biz/Browserが内蔵するXMLパッケージは、XMLを画面に表示、または印刷するためのビジネスデータ表現として利用することを想定し設計されています。そのため、DOM Level2で定められる仕様のうち、この目的には通常必要としない機能や著しく実行性能を損なう仕様が削除されています。また、XMLテキストのロード、セーブ機能や、SelectNodesメソッドなど、W3C DOMには定義されていない便利な機能を付加しています。

W3C DOM Level3対応について

W3Cにより公開されているDocument Object Model (DOM) Level 3 Core Specification Version 1.0 W3C Working Draft 26 February 2003の一部の機能をサポートしています。

サポートされないオブジェクト

W3C DOM Level2に含まれる以下のオブジェクトは、Biz/Browserではサポート外となり利用することはできません。

DocumentType

Notation

Entity

EntityReference

DTD

DTDの解釈を行いません。したがって、XMLテキストのパース時およびDOM APIによるXML DOMツリーの生成、変更時に構造の妥当性を検証することはありません。

また、DTDにより定義されるデフォルト値やアクセス制御は無効となります。

外部参照の解決

外部参照は、SVGの<image>エレメント以外は解決されません。

文字コード

DOMツリーに含まれる文字はCRSスクリプトとの親和性を考慮し、UTF-8文字コードに変換され構築されます。XmlDocument.Saveメソッドで保存できるencodingはUTF-8のみです。


XmlAttrクラス

Object
 | XmlNode
 |  | XmlAttr

Attrノードを定義するクラスです。AttrノードはDOMツリーには属さないため、XmlAttrクラスはXmlNodeクラスから派生していますがParentNode、PreviousSibling、NextSiblingなどのプロパティはnullになります。

デフォルトプロパティとValueType

デフォルトプロパティはNodeNameです。ValueTypeの指定は無効です。


XmlAttrプロパティ

API version 4

プロパティ

iOSAndroidWindows

XmlAttrクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Name | R | String | Attrノードの属性名
4 | OwnerElement | R | XmlElement | Attrノードの所属するElementノード
4 | Specified | R | Boolean | Attrノードの値が明示的に設定されているかどうか
4 | Value | RW | String | Attrノードの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


XmlAttr.Nameプロパティ

Attrノードの属性名です。

このプロパティは読み込み専用で変更することはできません。


XmlAttr.OwnerElementプロパティ

Attrノードの所属するXmlElementオブジェクトです。どのElementノードにも属していない場合はnullになります。

このプロパティは読み込み専用で変更することはできません。


XmlAttr.Specifiedプロパティ

Attrノードの値が明示的に設定されている場合は$TRUE、それ以外は$FALSEとなります。Biz/BrowserはDTDをサポートしないので、Specifiedプロパティは常に$FALSEとなります。

このプロパティは読み込み専用で変更することはできません。


XmlAttr.Valueプロパティ

Attrノードの値です。

Valueプロパティの設定で、XmlDOMException例外（NO_MODIFICATION_ALLOWED_ERR）がthrowされることがあります。


XmlAttrメソッド

API version 4

メソッド

iOSAndroidWindows

XmlAttrクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


XmlAttrイベント

API version 4

イベント

iOSAndroidWindows

XmlAttrクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


XmlCDATASectionクラス

Object |  |  |  |
 | XmlNode
 |  | XmlCharacterData
 |  |  | XmlText
 |  |  |  | XmlCDATASection

CDATASectionノードを定義するクラスです。XmlCDATASectionクラスはXmlTextクラスから派生しており、XmlTextクラスのプロパティ、メソッドを継承しています。

デフォルトプロパティとValueType

デフォルトプロパティはNodeNameです。ValueTypeの指定は無効です。


XmlCDATASectionプロパティ

API version 4

プロパティ

iOSAndroidWindows

XmlCDATASectionクラスで定義されるプロパティはありません。

クラス概要

基本クラスのプロパティ


XmlCDATASectionメソッド

API version 4

メソッド

iOSAndroidWindows

XmlCDATASectionクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


XmlCDATASectionイベント

API version 4

イベント

iOSAndroidWindows

XmlCDATASectionクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


XmlCharacterDataクラス

Object
 | XmlNode
 |  | XmlCharacterData

文字列を格納するノードの基底クラスです。文字列を格納するノードの基本機能があります。

XmlCharacterDataクラスは仮想クラスで、それ自体をインスタンス化することはできません。

XmlCharacterDataクラスはXmlNodeクラスから派生しており、XmlNodeクラスのプロパティとメソッドも利用することができます。同様に、XmlCharacterDataクラスから派生したクラスは、XmlCharacterDataクラスで定義されるプロパティとメソッドおよびXmlNodeクラスで定義されるプロパティとメソッドを引き継ぎ、同じように利用することができます。

XmlCharacterDataから派生するクラスには、

XmlText

XmlComment

XmlCDATASection

があります。


XmlCharacterDataプロパティ

API version 4

プロパティ

iOSAndroidWindows

XmlCharacterDataクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Data | CRW | String | 文字列データ
4 | Length | R | integer | 文字列データの長さ

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


XmlCharacterData.Dataプロパティ

文字列データです。

このプロパティのアクセスで、XmlDOMException例外（NO_MODIFICATION_ALLOWED_ERR、DOMSTRING_SIZE_ERR）がthrowされることがあります。


XmlCharacterData.Lengthプロパティ

文字列データの長さです。文字単位（１バイト文字、２バイト文字とも１文字）で数えます。

このプロパティは読み込み専用で変更することはできません。


XmlCharacterDataメソッド

API version 4

メソッド

iOSAndroidWindows

XmlCharacterDataクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | AppendData | 文字列を追加します
4 | DeleteData | 文字列を削除します
4 | InsertData | 文字列を挿入します
4 | ReplaceData | 文字列を置き換えます
4 | SubstringData | 文字列の一部を取り出します

クラス概要

基本クラスのメソッド


XmlCharacterData.AppendDataメソッド

説明

文字列を追加します。

呼出形式

cd.AppendData( text )

戻り値

なし

引数

String text

追加する文字列

例外

DOM-7

NO_MODIFICATION_ALLOWED_ERR

使用例

var text = elm.FirstChild;
text.AppendData("abcdefg");

関連項目

XmlTextクラス


XmlCharacterData.DeleteDataメソッド

説明

文字列を削除します。

呼出形式

cd.DeleteData( offset, count )

戻り値

なし

引数

integer offset

削除する位置（文字数で指定）

integer count

削除する長さ（文字数で指定）

例外

DOM-1

INDEX_SIZE_ERR

DOM-7

NO_MODIFICATION_ALLOWED_ERR

使用例

var text = elm.FirstChild;
text.DeleteData(10, 3);

関連項目

XmlTextクラス


XmlCharacterData.InsertDataメソッド

説明

文字列を挿入します。

呼出形式

cd.InsertData( offset, text )

戻り値

なし

引数

integer offset

追加する位置（文字数で指定）

String text

追加する文字列

例外

DOM-1

INDEX_SIZE_ERR

DOM-7

NO_MODIFICATION_ALLOWED_ERR

使用例

var text = elm.FirstChild;
text.InsertData(10, "abcdefg");

関連項目

XmlTextクラス


XmlCharacterData.ReplaceDataメソッド

説明

文字列を置き換えます。

呼出形式

cd.ReplaceData( offset, count, text )

戻り値

なし

引数

integer offset

置き換える位置（文字数で指定）

integer count

置き換える長さ（文字数で指定）

String text

新しい文字列

例外

DOM-1

INDEX_SIZE_ERR

DOM-7

NO_MODIFICATION_ALLOWED_ERR

使用例

var text = elm.FirstChild;
text.ReplaceData(10, 3, "new text");

関連項目

XmlTextクラス


XmlCharacterData.SubstringDataメソッド

説明

文字列の一部を取り出します。

呼出形式

var s = cd.SubstringData( offset, count )

戻り値

取り出した文字列

引数

integer offset

取り出す位置（文字数で指定）

integer count

取り出す長さ（文字数で指定）

例外

DOM-1

INDEX_SIZE_ERR

DOM-2

DOMSTRING_SIZE_ERR

使用例

var text = elm.FirstChild;
var s = text.SubstringData(2, 10);

関連項目

XmlTextクラス


XmlCharacterDataイベント

API version 4

イベント

iOSAndroidWindows

XmlCharacterDataクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


XmlCommentクラス

Object
 | XmlNode
 |  | XmlCharacterData
 |  |  | XmlComment

Commentノードを定義するクラスです。XmlCommentクラスはXmlCharacterDataクラスから派生しており、XmlCharacterDataクラスのプロパティ、メソッドを継承しています。

デフォルトプロパティとValueType

デフォルトプロパティはNodeNameです。ValueTypeの指定は無効です。


XmlCommentプロパティ

API version 4

プロパティ

iOSAndroidWindows

XmlCommentクラスで定義されるプロパティはありません。

クラス概要

基本クラスのプロパティ


XmlCommentメソッド

API version 4

メソッド

iOSAndroidWindows

XmlCommentクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


XmlCommentイベント

API version 4

イベント

iOSAndroidWindows

XmlCommentクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


XmlDocumentクラス

Object
 | XmlNode
 |  | XmlDocument

DOMツリーのルートノード（Documentノード）を定義するクラスです。

デフォルトプロパティとValueType

デフォルトプロパティはNodeNameです。ValueTypeの指定は無効です。


XmlDocumentプロパティ

API version 4

プロパティ

iOSAndroidWindows

XmlDocumentクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | DocType | R | XmlDocumentType | DocumentTypeノード
4 | DocumentElement | R | XmlElement | ドキュメントの先頭Elementノード
4 | DocumentURI | CRW | String | CRSの取得元のURL
4 | Implementation | R | XmlDOMImplementation | このDocumentノードを作成したXmlDOMImplementationオブジェクト
4 | IndexAttributeName | CRW | String | GetElementByIdメソッドで使用するID属性の名前

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


XmlDocument.DocTypeプロパティ

DocumentTypeノードです。Biz/BrowserではDocumentTypeをサポートしていません。このプロパティは常にnullとなります。

このプロパティは読み込み専用で変更することはできません。


XmlDocument.DocumentElementプロパティ

ドキュメントの先頭ElementノードのXmlElementオブジェクトです。

このプロパティは読み込み専用で変更することはできません。


XmlDocument.DocumentURIプロパティ

参考情報です。

XmlDocumentオブジェクトの構築時にCRSの取得元のURLが設定されます。


XmlDocument.Implementationプロパティ

このDocumentノードを作成したXmlDOMImplementationオブジェクトです。

このプロパティは読み込み専用で変更することはできません。


XmlDocument.IndexAttributeNameプロパティ

GetElementByIdメソッドで使用するID属性の名前を設定します。

未設定時はID属性の名前は”ID”となります。

例えば、小文字の"id"をID属性の名前にしたい場合は、"id"を設定します。


XmlDocumentメソッド

API version 4

メソッド

iOSAndroidWindows

XmlDocumentクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | CreateAttribute | Attrノードを作成します
4 | CreateAttributeNS | 名前空間URIを指定してAttrノードを作成します
4 | CreateCDATASection | CDATASectionノードを作成します
4 | CreateComment | Commentノードを作成します
4 | CreateDocumentFragment | DocumentFragmentノードを作成します
4 | CreateElement | Elementノードを作成します
4 | CreateElementNS | 名前空間URIを指定してElementノードを作成します
4 | CreateProsessingInstruction | ProcessingInstructionノードを作成します
4 | CreateTextNode | Textノードを作成します
4 | GetElementById | ID属性からElementノードを検索します
4 | GetElementsByTagName | タグ名でElementノードを検索します
4 | GetElementsByTagNameNS | 名前空間URIとタグ名でElementノードを検索します
4 | ImportNode | ノードをインポートします
4 | Save | WriterオブジェクトにXMLを保存します

クラス概要

基本クラスのメソッド


XmlDocument.CreateAttributeメソッド

説明

Attrノードを作成します。

呼出形式

var attr = xmldoc.CreateAttribute( name )

戻り値

XmlAttrオブジェクト

引数

String name

属性名

例外

DOM-5

INVALID_CHARACTER_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.CreateElement("rect");
var attr = xmldoc.CreateAttribute("x");
attr.Value = "10";
elm.SetAttributeNode(attr);

関連項目

XmlAttrクラス

CreateAttributeNSメソッド


XmlDocument.CreateAttributeNSメソッド

説明

名前空間URIを指定してAttrノードを作成します。

呼出形式

var attr = xmldoc.CreateAttributeNS( namespaceURI, qualifiedName )

戻り値

XmlAttrオブジェクト

引数

String namespaceURI

作成するAttrノードの名前空間URI

String qualifiedName

作成するAttrノードの属性名

例外

DOM-5

INVALID_CHARACTER_ERR

DOM-14

NAMESPACE_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.CreateElement("rect");
var attr = xmldoc.CreateAttributeNS("http://www.w3.org/2000/svg", "svg:x");
attr.Value = "10";
elm.SetAttributeNodeNS(attr);

関連項目

XmlAttrクラス

CreateAttributeメソッド


XmlDocument.CreateCDATASectionメソッド

説明

CDATASectionノードを作成します。

呼出形式

var cd = xmldoc.CreateCDATASection( data )

戻り値

XmlCDATASectionオブジェクト

引数

String data

CDATASectionノードの初期値となる文字列

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var cd = xmldoc.CreateCDATASectione("ABC");
xmldoc.DocumentElement.AppendChild(cd);

関連項目

XmlCDATASectionクラス


XmlDocument.CreateCommentメソッド

説明

Commentノードを作成します。

呼出形式

var comment = xmldoc.CreateComment( data )

戻り値

XmlCommentオブジェクト

引数

String data

Commentノードの初期値となる文字列

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var comment = xmldoc.CreateComment("ABC");
xmldoc.DocumentElement.AppendChild(comment);

関連項目

XmlCommentクラス


XmlDocument.CreateDocumentFragmentメソッド

説明

DocumentFragmentノードを作成します。

呼出形式

var df = xmldoc.CreateDocumentFragment( )

戻り値

XmlDocumentFragmentオブジェクト

引数

なし

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domImpl.Load(res);
var df = xmldoc.CreateDocumentFragment();

関連項目

XmlDocumentFragmentクラス


XmlDocument.CreateElementメソッド

説明

Elementノードを作成します。

呼出形式

var elm = xmldoc.CreateElement( tagName )

戻り値

XmlElementオブジェクト

引数

String tagName

作成するElementノードのタグ名

例外

DOM-5

INVALID_CHARACTER_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.CreateElement("TAG1");

関連項目

XmlElementクラス

CreateElementNSメソッド


XmlDocument.CreateElementNSメソッド

説明

名前空間URIを指定してElementノードを生成します。

呼出形式

var elm = xmldoc.CreateElementNS( namespaceURI, qualifiedName )

戻り値

XmlElementオブジェクト

引数

String namespaceURI

作成するElementノードの名前空間URI

String qualifiedName

作成するElementノードのタグ名

例外

DOM-5

INVALID_CHARACTER_ERR

DOM-14

NAMESPACE_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.CreateElementNS("http://www.w3.org/2000/svg", "svg:rect");

関連項目

XmlElementクラス

CreateElementメソッド


XmlDocument.CreateProcessingInstructionメソッド

説明

ProcessingInstructionノードを作成します。

呼出形式

var pi = xmldoc.CreateProcessingInstruction( target, data )

戻り値

XmlProcessingInstructionオブジェクト

引数

String target

処理命令のターゲット部分

String data

処理命令のデータ部分

例外

DOM-5

INVALID_CHARACTER_ERR

DOM-9

NOT_SUPPORTED_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var pi = xmldoc.CreateProcessingInstruction("xml", "version=\"1.0\"");
xmldoc.AppendChild(pi);

関連項目

XmlProcessingInstructionクラス


XmlDocument.CreateTextNodeメソッド

説明

Textノードを作成します。

呼出形式

var text = xmldoc.CreateTextNode( data )

戻り値

XmlTextオブジェクト

引数

String data

Textノードの初期値となる文字列

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var text = xmldoc.CreateTextNode("ABC");
xmldoc.DocumentElement.AppendChild(text);

関連項目

XmlTextクラス


XmlDocument.GetElementByIdメソッド

説明

ID属性からElementノードを検索します。

検索対象になるID属性の名前はIndexAttributeNameプロパティで変更することが可能です。

IndexAttributeNameプロパティ未設定時は、”ID”という名前の属性（大文字小文字の区別あり）をID属性として検索します。

呼出形式

var elm = xmldoc.GetElementById( elementId )

戻り値

指定したID属性を持つXmlElementオブジェクト

見つからない場合はnullが返ります。

引数

String elementId

検索するID属性に指定されている値

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
xmldoc.IndexAttributeName = "id";
var elm = xmldoc.GetElementById("1001");

関連項目

XmlElementクラス

IndexAttributeNameプロパティ

GetElementsByTagName、GetElementsByTagNameNSメソッド


XmlDocument.GetElementsByTagNameメソッド

説明

タグ名でElementノードを検索し、一致するElementノードのリストを取得します。

呼出形式

var list = xmldoc.GetElementsByTagName( tagName )

戻り値

条件に一致するタグ名のElementノードを含むXmlNodeListオブジェクト

見つからない場合は空のXmlNodeListオブジェクトを返します。

引数

String tagName

検索するタグ名

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var list = xmldoc.GetElementsByTagName("rect");

関連項目

XmlNodeList、XmlElementクラス

GetElementsByTagNameNS、GetElementByIdメソッド


XmlDocument.GetElementsByTagNameNSメソッド

説明

名前空間URIとタグ名でElementノードを検索し、一致するElementノードのリストを取得します。

呼出形式

var list = xmldoc.GetElementsByTagNameNS( namespaceURI, qualifiedName )

戻り値

条件に一致するElementノードを含むXmlNodeListオブジェクト

見つからない場合は空のXmlNodeListオブジェクトを返します。

引数

String namespaceURI

検索する名前空間URI

String qualifiedName

検索するタグ名

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var list = xmldoc.GetElementsByTagNameNS("http://www.w3.org/2000/svg", "rect");

関連項目

XmlNodeList、XmlElementクラス

GetElementsByTagName、GetElementByIdメソッド


XmlDocument.ImportNodeメソッド

説明

別のDOMツリーからノードをインポートします。

呼出形式

var cnode = xmldoc.ImportNode( node, deep )

戻り値

インポートされたXmlNodeオブジェクト

このノードは、まだドキュメントのツリーには接続されておらず親はいません。

引数

XmlNode node

インポートするノード

boolean deep

再帰的にインポートする場合は$TRUE、それ以外は$FALSE

例外

DOM-9

NOT_SUPPORTED_ERR

使用例

var orgnode = xmldocA.DocumentElement.FirstChild;
var copynode = xmldocB.ImportNode(orgnode, $TRUE);
xmldocB.DocumentElement.FirstChild.AppendChild(copynode);

関連項目

XmlDocument、XmlNodeクラス


XmlDocument.Saveメソッド

説明

WriterオブジェクトにXMLを保存します。

呼出形式

xmldoc.Save( writer [, encoding ] )

戻り値

なし

引数

Object writer

保存先のWriterオブジェクト（WriteStringメソッドを利用できるオブジェクト）

String encoding

エンコーディング方式

指定できる文字列は、”UTF-8”のみ指定可能で、省略時も”UTF-8”となります。

例外

XML-4

有効なWriteオブジェクトが指定されていません

XML-5

WriteString(string)メソッドをサポートしていません

XML-18

encodingはサポートされていません

XML-19

encodingに失敗しました

使用例

var session = findHttpSession("http://host");
var req = session.CreateRequest("path");
xmldoc.Save(req);

関連項目


XmlDocumentイベント

API version 4

イベント

iOSAndroidWindows

XmlDocumentクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


XmlDocumentオペレータ

API version 4

オペレータ

iOSAndroidWindows

XmlDocumentクラスには以下のオペレータが定義されています。

API | オペレータ | 説明
4 | XmlDocument << XML定数 | XmlDocumentへXML定数をロードします
4 | XmlDocument << XmlDocument | XmlDocumentを別のXmlDocumentにコピーします

クラス概要


XmlDocument << XML定数 オペレータ

このオペレータは、左辺のXmlDocumentオブジェクトに対して、右辺のXML定数をロードします。

使用例

var x = new XmlDocument();
x << xml <<-
<?xml version="1.0" encoding="SHIFT_JIS"?>
<data>
    <record title="レコード１">
        <item1>アイテム１</item1>
        <item2>アイテム１</item2>
        <item3>アイテム１</item3>
    </record>
</data>
->>;


XmlDocument << XmlDocument オペレータ

このオペレータは、左辺のXmlDocumentオブジェクトに対して、右辺のXmlDocumentをコピーします。

使用例

var impl = new XmlDOMImplementation;
var res = GetHttpSession().Get("sample.xml");
var xml1 = impl.Load(res);

var xml2 = new XmlDocument();
xml2 << xml1;


XML定数

XMLパッケージはXML定数を定義しています。XML定数は、<<オペレータによりXmlDocumentオブジェクトへデータを設定するために利用することができます。

XML定数ブロック内は、CRSスクリプトとは文法的な関連性はないため、CRSの文法(文字列を""で括るなど)、定数($REDなど)、演算子(+や-など)、関数などは使用できません。XMLとしての書式に従う必要があります。

以下の書式でCRSスクリプト内にXMLデータを直接記述することができます。

xml <<-
（XMLデータ）
->>;

使用例

var x = new XmlDocument();
x << xml <<-
<?xml version="1.0" encoding="SHIFT_JIS"?>
<data>
    <record title="レコード１">
        <item1>アイテム１</item1>
        <item2>アイテム１</item2>
        <item3>アイテム１</item3>
    </record>
</data>
->>;


XmlDocumentFragmentクラス

Object
 | XmlNode
 |  | XmlDocumentFragment

ドキュメントの断片を維持するクラスです。

DOMツリーはDocumentノードの下に構築しますが、ツリー構造を大きく変更するような場合、Documentノード以外の場所に一時的にツリーを構築できれば効率的です。XmlDocumentFragmentクラスは、こうした場合にXmlDocumentクラスの代わりにDOMツリーのルート要素として機能することができます。

XmlDocumentFragmentクラス自体はプレースホルダとしての機能しかなく、他のノードのようにXMLデータを保持している訳ではありません。そのためXmlDocumentFragmentオブジェクトに対してデータを参照したり、設定することできません。

XmlDocumentFragmentクラスはすべてのプロパティ、メソッドをXmlNodeクラスより継承します。固有のプロパティ、メソッドは定義されていませんが、上記のような理由からXMLデータを参照、または操作するプロパティ、メソッドは無効となります。

デフォルトプロパティとValueType

デフォルトプロパティはNodeNameです。ValueTypeの指定は無効です。


XmlDocumentFragmentプロパティ

API version 4

プロパティ

iOSAndroidWindows

XmlDocumentFragmentクラスで定義されるプロパティはありません。

クラス概要

基本クラスのプロパティ


XmlDocumentFragmentメソッド

API version 4

メソッド

iOSAndroidWindows

XmlDocumentFragmentクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


XmlDocumentFragmentイベント

API version 4

イベント

iOSAndroidWindows

XmlDocumentFragmentクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


XmlDOMExceptionクラス

Object
 | Exception
 |  | XmlDOMException

DOMの例外を定義するクラスです。

デフォルトプロパティとValueType

デフォルトプロパティはMessageです。ValueTypeの指定は無効です。


XmlDOMExceptionプロパティ

API version 4

プロパティ

iOSAndroidWindows

XmlDOMExceptionクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Code | R | integer | 例外の種類
4 | Message | R | String | 例外の内容を示す説明文
4 | Method | R | String | 例外を起こした機能

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


XmlDOMException.Codeプロパティ

例外の種類です。以下の値となります。

定数 | 値 | 説明
XmlDOMException.INDEX_SIZE_ERR | 1 | インデックスまたはサイズが負、あるいは許可された値より大きい場合
XmlDOMException.DOMSTRING_SIZE_ERR | 2 | 指定されたテキストの範囲がDOMStringに適合しない場合
XmlDOMException.HIERARCHY_REQUEST_ERR | 3 | 任意のノードが所属しない場所に挿入された場合
XmlDOMException.WRONG_DOCUMENT_ERR | 4 | ノードが、作成したドキュメントと別のサポートしないドキュメントで使用された場合
XmlDOMException.INVALID_CHARACTER_ERR | 5 | 名前などに、無効または不正な文字が指定された場合
XmlDOMException.NO_DATA_ALLOWED_ERR | 6 | データをサポートしないノードでデータが指定された場合
XmlDOMException.NO_MODIFICATION_ALLOWED_ERR | 7 | 変更を許可されていない場所でオブジェクトを変更しようとした場合
XmlDOMException.NOT_FOUND_ERR | 8 | 存在しないコンテキストでノードを参照しようとした場合
XmlDOMException.NOT_SUPPORTED_ERR | 9 | 要求された種類のオブジェクトや処理を実装がサポートしない場合
XmlDOMException.INUSE_ATTRIBUTE_ERR | 10 | すでに他の場所で使用されている属性を追加しようとした場合
XmlDOMException.INVALID_STATE_ERR | 11 | すでに存在しないか、使用されていないオブジェクトを使用しようとした場合
XmlDOMException.SYNTAX_ERR | 12 | 無効または不正な文字列を指定した場合
XmlDOMException.INVALID_MODIFICATION_ERR | 13 | 基本オブジェクトの型を変更しようとした場合
XmlDOMException.NAMESPACE_ERR | 14 | 名前空間に関して不正な方法でオブジェクトを作成または変更しようとした場合
XmlDOMException.INVALID_ACCESS_ERR | 15 | パラメータまたは処理が基本オブジェクトでサポートされていない場合

このプロパティは読み込み専用で変更することはできません。


XmlDOMException.Messageプロパティ

例外の内容を示す説明文です。

このプロパティは読み込み専用で変更することはできません。


XmlDOMException.Methodプロパティ

例外を起こした機能を識別します。常に"DOM"となります。

このプロパティは読み込み専用で変更することはできません。


XmlDOMExceptionメソッド

API version 4

メソッド

iOSAndroidWindows

XmlDOMExceptionクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


XmlDOMExceptionイベント

API version 4

イベント

iOSAndroidWindows

XmlDOMExceptionクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


XmlDOMImplementationクラス

Object
 | XmlDOMImplementation

DOMの実装を定義するクラスです。

DOMツリーのルートノードとなるXmlDocumentオブジェクトの生成や、DOM APIの対応バージョンを管理します。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


XmlDOMImplementationプロパティ

API version 4

プロパティ

iOSAndroidWindows

XmlDOMImplementationクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Value | CRW | String Number Date | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


XmlDOMImplementation.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


XmlDOMImplementationメソッド

API version 4

メソッド

iOSAndroidWindows

XmlDOMImplementationクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | XmlDOMImplementationオブジェクトを初期化します
4 | CreateDocument | Documentノードを生成します
4 | CreateDocumentType | DocumnetTypeノードを生成します
4 | DecodeXML | XMLエスケープされた文字列を元の文字列に戻します
4 | EncodeXML | 文字列をXMLエスケープします
4 | HasFeature | DOM対応バージョンの確認に利用します
4 | Load | ReaderオブジェクトからXMLを読み込みます
4 | Parse | XML文字列データを読み込みます

クラス概要

基本クラスのメソッド


XmlDOMImplementationコンストラクタ

説明

XmlDOMImplementationオブジェクトを初期化します。

呼出形式

var domimpl = new XmlDOMImplementation( )

戻り値

XmlDOMImplementationオブジェクト

引数

integer enc

互換性のため残されています。

指定は無視されます。

例外

なし

使用例

var domimpl = new XmlDOMImplementation();
var xmldoc = domimpl.CreateDocument(NULL, “data”, NULL);

関連項目

XmlDocumentクラス

CreateDocument、Parse、Loadメソッド


XmlDOMImplementation.CreateDocumentメソッド

説明

Documentノードを作成します。

呼出形式

var xmldoc = domimpl.CreateDocument( namespaceURI, qualifiedName, doctype )

戻り値

XmlDocumentオブジェクト

引数

String namespaceURI

作成するDocumentノードの名前空間URI

String qualifiedName

先頭Elementノードのタグ名

XmlDocumentType doctype

将来の拡張用に予約されています。nullを指定してください。

例外

DOM-5

INVALID_CHARACTER_ERR

DOM-14

NAMESPACE_ERR

DOM-4

WRONG_DOCUMENT_ERR

使用例

var domimpl = new XmlDOMImplementation;
var xmldoc = domimpl.CreateDocument("http://www.w3.org/2000/svg", "svg", null);

関連項目

XmlDocumentクラス

CreateDocumentTypeメソッド


XmlDOMImplementation.CreateDocumentTypeメソッド

将来の拡張用に予約されています、呼び出すことはできません。


XmlDOMImplementation.DecodeXMLメソッド

説明

XMLエスケープされた文字列を、元の文字列に戻します。

呼出形式

var s = domimpl.DecodeXML( str )

戻り値

XMLエスケープを解除した文字列

引数

String str

XMLエスケープされた文字列

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var enc = domimpl.EncodeXML("a >= 1 && b <= 1 || c == \"abc\"");
print(enc, "\n");
var dec = domimpl.DecodeXML(enc);
print(dec, "\n");

関連項目

EncodeXMLメソッド


XmlDOMImplementation.EncodeXMLメソッド

説明

文字列をXMLエスケープします。

呼出形式

var s = domimpl.EncodeXML( str )

戻り値

XMLエスケープされた文字列

引数

String str

XMLエスケープする文字列

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var enc = domimpl.EncodeXML("a >= 1 && b <= 1 || c == \"abc\"");
print(enc, "\n");
var dec = domimpl.DecodeXML(enc);
print(dec, "\n");

関連項目

DecodeXMLメソッド


XmlDOMImplementation.HasFeatureメソッド

説明

featureで指定された機能のversionで指定されるバージョンに対応するか調べます。

呼出形式

var ret = domImpl.HasFeature( feature, version )

戻り値

指定したバージョンに対応する場合は$TRUE、未対応の場合は$FALSE

引数

String feature

バージョンを調べる機能

"xml"と"dom"に対応します。

String version

対応バージョン（"1.0"の形式で指定）

例外

なし

使用例

if (!domimpl.HasFeature("dom", "2.0")) {
    print("DOM Level2 未対応\n");
}

関連項目

CreateDocumentメソッド


XmlDOMImplementation.Loadメソッド

説明

ReaderオブジェクトからXMLを読み込みます。

WEBサーバやファイルからXMLファイルをロードする場合に利用します。

呼出形式

var xmldoc = domimpl.Load( reader )

戻り値

XmlDocumentオブジェクト

引数

Object reader

読み込み元のReaderオブジェクト（ReadLineメソッドを利用できるオブジェクト）

例外

XML-1

XMLパースエラー

XML-2

有効なReadオブジェクトが指定されていません

XML-3

ReadLine()メソッドをサポートしていません

XML-13

入力XMLが空です

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);

関連項目

XmlDocumentクラス

Parseメソッド


XmlDOMImplementation.Parseメソッド

説明

XML文字列データを読み込みます。

呼出形式

var xmldoc = domimpl.Parse( xmltext )

戻り値

XmlDocumentオブジェクト

引数

String xmltext

XML文字列データ

例外

XML-1

XMLパースエラー

XML-13

入力XMLが空です

使用例

var src = "<?xml version=\"1.0\" … ";
var domimpl = new XmlDOMImplementation;
var xmldoc = domimpl.Parse(src);

関連項目

XmlDocumentクラス

Loadメソッド


XmlDOMImplementationイベント

API version 4

イベント

iOSAndroidWindows

XmlDOMImplementationクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


XmlElementクラス

Object
 | XmlNode
 |  | XmlElement

Elementノードを定義するクラスです。

デフォルトプロパティとValueType

デフォルトプロパティはNodeNameです。ValueTypeの指定は無効です。


XmlElementプロパティ

API version 4

プロパティ

iOSAndroidWindows

XmlElementクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | TagName | R | String | Elementノードのタグ名

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


XmlElement.TagNameプロパティ

Elementノードのタグ名です。

このプロパティは読み込み専用で変更することはできません。


XmlElementメソッド

API version 4

メソッド

iOSAndroidWindows

XmlElementクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | GetAttribute | 指定した属性名のAttrノードの値を取得します
4 | GetAttributeNS | 指定した名前空間URIと属性名のAttrノードの値を取得します
4 | GetAttributeNode | 属性名を指定してAttrノードを取得します
4 | GetAttributeNodeNS | 名前空間URIと属性名を指定してAttrノードを取得します
4 | GetElementsByTagName | タグ名でElementノードを検索します
4 | GetElementsByTagNameNS | 名前空間URIとタグ名でElementノードを検索します
4 | HasAttribute | 指定した属性名のAttrノードの有無を確認します
4 | HasAttributeNS | 指定した名前空間URIと属性名のAttrノードの有無を確認します
4 | RemoveAttribute | 属性名を指定してAttrノードを削除します
4 | RemoveAttributeNS | 名前空間URIと属性名を指定してAttrノードを削除します
4 | RemoveAttributeNode | XmlAttrオブジェクトを指定してAttrノードを削除します
4 | SetAttribute | 属性名を指定してAttrノードの値を設定します
4 | SetAttributeNS | 名前空間URIと属性名を指定してAttrノードの値を設定します
4 | SetAttributeNode | XmlAttrオブジェクトを指定してAttrノードを設定します
4 | SetAttributeNodeNS | XmlAttrオブジェクトを指定してAttrノードを設定します

クラス概要

基本クラスのメソッド


XmlElement.GetAttributeメソッド

説明

指定した属性名のAttrノードの値を取得します。

呼出形式

var s = elm.GetAttribute( name )

戻り値

Attrノードの値の文字列

Attrノードが見つからない場合、空文字列を返します。

引数

String name

値を取得するAttrノードの属性名

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.DocumentElement;
var s = elm.GetAttribute("width");
print(s, "\n");

関連項目

XmlAttrクラス

SetAttribute、RemoveAttribute、HasAttribute、GetAttributeNode、GetAttributeNS、GetAttributeNodeNSメソッド


XmlElement.GetAttributeNSメソッド

説明

指定した名前空間URIと属性名のAttrノードの値を取得します。

呼出形式

var s = elm.GetAttributeNS( namespaceURI, name )

戻り値

Attrノードの値の文字列

Attrノードが見つからない場合、空文字列を返します。

引数

String namespaceURI

値を取得するAttrノードの名前空間URI

String name

値を取得するAttrノードの属性名

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.DocumentElement;
var s = elm.GetAttributeNS("http://www.w3.org/2000/svg ", "width");
print(s, "\n");

関連項目

XmlAttrクラス

SetAttributeNS、RemoveAttributeNS、HasAttributeNS、GetAttribute、GetAttributeNode、GetAttributeNodeNSメソッド


XmlElement.GetAttributeNodeメソッド

説明

属性名を指定してAttrノードを取得します。

呼出形式

var attr = elm.GetAttributeNode( name )

戻り値

XmlAttrオブジェクト

見つからない場合はnullを返します。

引数

String name

Attrノードの属性名

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.DocumentElement;
var attr = elm.GetAttributeNode("width");
print(attr.Value, "\n");

関連項目

XmlAttrクラス

SetAttributeNode、RemoveAttributeNode、HasAttribute、GetAttribute、GetAttributeNS、GetAttributeNodeNSメソッド


XmlElement.GetAttributeNodeNSメソッド

説明

名前空間URIと属性名を指定してAttrノードを取得します。

呼出形式

var attr = elm.GetAttributeNodeNS( namespaceURI, name )

戻り値

XmlAttrオブジェクト

見つからない場合はnullを返します。

引数

String namespaceURI

Attrノードの名前空間URI

String name

Attrノードの属性名

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.DocumentElement;
var attr = elm.GetAttributeNodeNS("http://www.w3.org/2000/svg", "width");
print(attr.Value, "\n");

関連項目

XmlAttrクラス

SetAttributeNodeNS、HasAttributeNS、GetAttribute、GetAttributeNode、GetAttributeNSメソッド


XmlElement.GetElementsByTagNameメソッド

説明

タグ名でElementノードを検索し、一致するElementノードのリストを取得します。

呼出形式

var list = elm.GetElementsByTagName( tagName )

戻り値

条件に一致するタグ名のElementノードを含むXmlNodeListオブジェクト

見つからない場合は空のXmlNodeListオブジェクトを返します。

引数

String tagName

検索するタグ名

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.DocumentElement;
var list = elm.GetElementsByTagName("rect");

関連項目

XmlNodeList、XmlElementクラス

GetElementsByTagNameNSメソッド


XmlElement.GetElementsByTagNameNSメソッド

説明

名前空間URIとタグ名でElementノードを検索し、一致するElementノードのリストを取得します。

呼出形式

var list = elm.GetElementByTagNameNS( namespaceURI, tagName )

戻り値

条件に一致するElementノードを含むXmlNodeListオブジェクト

見つからない場合は空のXmlNodeListオブジェクトを返します。

引数

String namespaceURI

検索する名前空間URI

String tagName

検索するタグ名

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.DocumentElement;
var list = elm.GetElementByTagNameNS("http://www.w3.org/2000/svg", "rect");

関連項目

XmlNodeList、XmlElementクラス

GetElementsByTagNameメソッド


XmlElement.HasAttributeメソッド

説明

指定した属性名のAttrノードの有無を確認します。

呼出形式

var ret = elm.HasAttribute( name )

戻り値

Attrノードが存在する場合は$TRUE、存在しない場合は$FALSE

引数

String name

属性名

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.DocumentElement;
var ret = elm.HasAttribute("style");

関連項目

HasAttributeNS、GetAttribute、SetAttribute、RemoveAttribute、GetAttributeNodeメソッド


XmlElement.HasAttributeNSメソッド

説明

指定した名前空間URIと属性名のAttrノードの有無を確認します。

呼出形式

var ret = elm.HasAttributeNS( namespaceURI, name )

戻り値

Attrノードが存在する場合は$TRUE、存在しない場合は$FALSE

引数

String namespaceURI

名前空間URI

String name

属性名

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.DocumentElement;
var ret = elm.HasAttributeNS("http://www.w3.org/2000/svg", "style");

関連項目

HasAttribute、GetAttributeNS、SetAttributeNS、RemoveAttributeNS、GetAttributeNodeNSメソッド


XmlElement.RemoveAttributeメソッド

説明

属性名を指定してAttrノードを削除します。

呼出形式

elm.RemoveAttribute( name )

戻り値

なし

引数

String name

Attrノードの属性名

例外

DOM-7

NO_MODIFICATION_ALLOWED_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.DocumentElement;
elm.RemoveAttribute("style");

関連項目

XmlAttrクラス

GetAttribute、SetAttribute、HasAttribute、RemoveAttributeNode、RemoveAttributeNSメソッド


XmlElement.RemoveAttributeNSメソッド

説明

名前空間URIと属性名を指定してAttrノードを削除します。

呼出形式

elm.RemoveAttributeNS( namespaceURI, name )

戻り値

なし

引数

String namespaceURI

Attrノードの名前空間URI

String name

Attrノードの属性名

例外

DOM-7

NO_MODIFICATION_ALLOWED_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.DocumentElement;
elm.RemoveAttributeNS("http://www.w3.org/2000/svg", "style");

関連項目

XmlAttrクラス

GetAttributeNS、SetAttributeNS、HasAttributeNS、RemoveAttribute、RemoveAttributeNodeメソッド


XmlElement.RemoveAttributeNodeメソッド

説明

XmlAttrオブジェクトを指定してAttrノードを削除します。

呼出形式

var attr2 = elm.RemoveAttributeNode( attr )

戻り値

削除したXmlAttrオブジェクト

削除されなかった場合はnullを返します。

引数

XmlAttr attr

削除するXmlAttrオブジェクト

例外

DOM-7

NO_MODIFICATION_ALLOWED_ERR

DOM-8

NOT_FOUND_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.DocumentElement;
var attr = elm.GetAttributeNode("width");
elm.RemoveAttributeNode(attr);

関連項目

XmlAttrクラス

GetAttributeNode、SetAttributeNode、RemoveAttribute、RemoveAttributeNSメソッド


XmlElement.SetAttributeメソッド

説明

属性名を指定してAttrノードの値を設定します。

呼出形式

elm.SetAttribute( name, value )

戻り値

なし

引数

String name

値を設定するAttrノードの属性名

String value

設定する値

例外

DOM-5

INVALID_CHARACTER_ERR

DOM-7

NO_MODIFICATION_ALLOWED_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.DocumentElement;
elm.SetAttribute("width", "100");

関連項目

XmlAttrクラス

GetAttribute、RemoveAttribute、HasAttribute、SetAttributeNode、SetAttributeNS、SetAttributeNodeNSメソッド


XmlElement.SetAttributeNSメソッド

説明

名前空間URIと属性名を指定してAttrノードの値を設定します。

呼出形式

elm.SetAttributeNS( namespaceURI, name, value )

戻り値

なし

引数

String namespaceURI

値を設定するAttrノードの名前空間URI

String name

値を設定するAttrノードの属性名

String value

設定する値

例外

DOM-5

INVALID_CHARACTER_ERR

DOM-7

NO_MODIFICATION_ALLOWED_ERR

DOM-14

NAMESPACE_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.DocumentElement;
elm.SetAttributeNS("http://www.w3.org/2000/svg ", "width", "100");

関連項目

XmlAttrクラス

GetAttributeNS、RemoveAttributeNS、HasAttributeNS、SetAttribute、SetAttributeNode、SetAttributeNodeNSメソッド


XmlElement.SetAttributeNodeメソッド

説明

XmlAttrオブジェクトを指定してAttrノードを設定します。

指定したXmlAttrオブジェクトと同じ属性名のAttrノードがある場合は、Attrノードを置き換えます。

呼出形式

var attr2 = elm.SetAttributeNode( attr )

戻り値

置き換えられたXmlAttrオブジェクト

置き換えがなかった場合はnullを返します。

引数

XmlAttr attr

設定するXmlAttrオブジェクト

すでに別のElementノードに設定されているAttrノードを指定することはできません。

例外

DOM-4

WRONG_DOCUMENT_ERR

DOM-7

NO_MODIFICATION_ALLOWED_ERR

DOM-10

INUSE_ATTRIBUTE_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.DocumentElement;
var attr = elm.GetAttributeNode("width");
var attr2 = attr.CloneNode(true);
elm.SetAttributeNode(attr2);

関連項目

XmlAttrクラス

GetAttributeNode、RemoveAttributeNode、SetAttribute、SetAttributeNS、SetAttributeNodeNSメソッド


XmlElement.SetAttributeNodeNSメソッド

説明

XmlAttrオブジェクトを指定してAttrノードを設定します。

指定したXmlAttrオブジェクトと同じ名前空間URI、属性名のAttrノードがある場合は、Attrノードを置き換えます。

呼出形式

var attr2 = elm.SetAttributeNodeNS( attr )

戻り値

置き換えられたXmlAttrオブジェクト

置き換えがなかった場合はnullを返します。

引数

XmlAttr attr

設定するXmlAttrオブジェクト

すでに別のElementノードに設定されているAttrノードを指定することはできません。

例外

DOM-4

WRONG_DOCUMENT_ERR

DOM-7

NO_MODIFICATION_ALLOWED_ERR

DOM-10

INUSE_ATTRIBUTE_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var elm = xmldoc.DocumentElement;
var attr = elm.GetAttributeNodeNS("http://www.w3.org/2000/svg", "width");
var attr2 = attr.CloneNode($TRUE);
elm.SetAttributeNodeNS(attr2);

関連項目

XmlAttrクラス

GetAttributeNodeNS、SetAttribute、SetAttributeNode、SetAttributeNSメソッド


XmlElementイベント

API version 4

イベント

iOSAndroidWindows

XmlElementクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


XmlNamedNodeMapクラス

Object
 | XmlNamedNodeMap

ノードの集合を名前付きマップで管理するクラスです。ノードマップは複数のノードを内部に持ちますが、そのうち同一の名前を持つノードは1つだけとなります。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。


XmlNamedNodeMapプロパティ

API version 4

プロパティ

iOSAndroidWindows

XmlNamedNodeMapクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Length | R | integer | ノードマップに含まれるノードの数

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


XmlNamedNodeMap.Lengthプロパティ

ノードマップに含まれるノードの数を表します。

このプロパティは読み込み専用で変更することはできません。


XmlNamedNodeMapメソッド

API version 4

メソッド

iOSAndroidWindows

XmlNamedNodeMapクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | GetNamedItem | 名前を指定してノードを取り出します
4 | GetNamedItemNS | 名前空間URIと名前を指定してノードを取り出します
4 | Item | インデックスを指定してノードを取り出します
4 | NextNode | 次のノードを取り出します
4 | RemoveNamedItem | 名前を指定してノードを削除します
4 | RemoveNamedItemNS | 名前空間URIと名前を指定してノードを削除します
4 | Reset | NextNodeメソッドの取り出し位置をリセットします
4 | SetNamedItem | XmlNodeオブジェクトを指定してノードを設定します
4 | SetNamedItemNS | XmlNodeオブジェクトを指定してノードを設定します

クラス概要

基本クラスのメソッド


XmlNamedNodeMap.GetNamedItemメソッド

説明

名前を指定してノードを取り出します。

呼出形式

var node = map.GetNamedItem( name )

戻り値

XmlNodeオブジェクト

ノードが見つからない場合はnullを返します。

引数

String name

ノードの名前

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var map = xmldoc.DocumentElement.Attributes;
print(map.GetNameItem("width").NodeValue, "\n");

関連項目

XmlNodeクラス

SetNamedItem、RemoveNamedItem、GetNamedItemNSメソッド

[ ] オペレータ


XmlNamedNodeMap.GetNamedItemNSメソッド

説明

名前空間URIと名前を指定してノードを取り出します。

呼出形式

var node = map.GetNamedItemNS( namespaceURI, localName )

戻り値

XmlNodeオブジェクト

ノードが見つからない場合はnullを返します。

引数

String namespaceURI

ノードの名前空間URI

String localName

ノードの名前

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var map = xmldoc.DocumentElement.Attributes;
var attr = map.GetNamedItemNS("http://www.w3.org/2000/svg", "x");
print(attr.NodeValue, "\n");

関連項目

XmlNodeクラス

SetNamedItemNS、RemoveNamedItemNS、GetNamedItemメソッド


XmlNamedNodeMap.Itemメソッド

説明

インデックスを指定してノードを取り出します。

呼出形式

var node = map.Item( index )

戻り値

XmlNodeオブジェクト

Lengthプロパティ以上のindexを指定するなど、該当するノードが見つからない場合はnullを返します。

引数

integer index

取り出すノードの位置（0から始まるインデックスで指定します）

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var map = xmldoc.DocumentElement.Attributes;
for (var n = 0; n < map.Length; n++) {
    print(map.Item(n).NodeName, "\n");
}

関連項目

XmlNodeクラス

Lengthプロパティ


XmlNamedNodeMap.NextNodeメソッド

説明

次のノードを取り出します。

呼出形式

var node = map.NextNode( )

戻り値

XmlNodeオブジェクト

これ以上ノードが見つからない場合はnullを返します。

引数

なし

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var map = xmldoc.DocumentElement.Attributes;
while (var n = map.NextNode()) {
    print(n.NodeName, "\n");
}

関連項目

XmlNodeクラス

Resetメソッド


XmlNamedNodeMap.RemoveNamedItemメソッド

説明

名前を指定してノードを削除します。

呼出形式

var node = map.RemoveNamedItem( name )

戻り値

削除されたXmlNodeオブジェクト

ノードが見つからない場合はnullを返します。

引数

String name

ノードの名前

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var map = xmldoc.DocumentElement.Attributes;
map.RemoveNamedItem("width");

関連項目

XmlNodeクラス

GetNamedItem、SetNamedItem、RemoveNamedItemNSメソッド


XmlNamedNodeMap.RemoveNamedItemNSメソッド

説明

名前空間URIと名前を指定してノードを削除します。

呼出形式

var node = map.RemoveNamedItemNS( namespaceURI, name )

戻り値

削除されたXmlNodeオブジェクト

ノードが見つからない場合はnullを返します。

引数

String namespaceURI

ノードの名前空間URI

String name

ノードの名前

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var map = xmldoc.DocumentElement.Attributes;
map.RemoveNamedItemNS("http://www.w3.org/2000/svg", "width");

関連項目

XmlNodeクラス

GetNamedItemNS、SetNamedItemNS、RemoveNamedItemメソッド


XmlNamedNodeMap.Resetメソッド

説明

NextNodeメソッドの取り出し位置をリセットします。

呼出形式

map.Reset( )

戻り値

なし

引数

なし

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var map = xmldoc.DocumentElement.Attributes;
while (var n = map.NextNode()) {
    print(n.NodeName, "\n");
}
map.Reset();

関連項目

NextNodeメソッド


XmlNamedNodeMap.SetNamedItemメソッド

説明

XmlNodeオブジェクトを指定してノードを設定します。

指定したノードと同じ名前のノードがすでにノードマップに含まれていた場合、そのノードは置き換えられます。

呼出形式

var node = map.SetNamedItem( newNode )

戻り値

置き換えられたXmlNodeオブジェクト

置き換えが起こらなかった場合はnullを返します。

引数

XmlNode newNode

設定するノード

例外

DOM-4

WRONG_DOCUMENT_ERR

DOM-7

NO_MODIFICATION_ALLOWED_ERR

DOM-10

INUSE_ATTRIBUTE_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var map = xmldoc.DocumentElement.Attributes;
var attr = xmldoc.CreateAttribute("width");
attr.Value = "10";
map.SetNamedItem(attr);

関連項目

XmlNodeクラス

GetNamedItem、RemoveNamedItem、SetNamedItemNSメソッド

[ ] オペレータ


XmlNamedNodeMap.SetNamedItemNSメソッド

説明

XmlNodeオブジェクトを指定してノードを設定します。

指定したノードと同じ名前空間URI、名前のノードがすでにノードマップに含まれていた場合、そのノードは置き換えられます。

呼出形式

var node = map.SetNamedItemNS( newNode )

戻り値

置き換えられたXmlNodeオブジェクト

置き換えが起こらなかった場合はnullを返します。

引数

XmlNode newNode

設定するノード

例外

DOM-4

WRONG_DOCUMENT_ERR

DOM-7

NO_MODIFICATION_ALLOWED_ERR

DOM-10

INUSE_ATTRIBUTE_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var map = xmldoc.DocumentElement.Attributes;
var attr = dom.CreateAttributeNS("http://www.w3.org/2000/svg", "width");
attr.Value = "10";
map.SetNamedItemNS(attr);

関連項目

XmlNodeクラス

GetNamedItemNS、RemoveNamedItemNS、SetNamedItemメソッド


XmlNamedNodeMapイベント

API version 4

イベント

iOSAndroidWindows

XmlNamedNodeMapクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


XmlNamedNodeMapオペレータ

API version 4

オペレータ

iOSAndroidWindows

XmlNamedNodeMapクラスには、ノードマップに含まれるノードを配列形式で（map["name"]のように）取り出すためのオペレータと、for in ループなどでイテレートするためのオペレータが定義されています。

オペレータ | 説明
XmlNamedNodeMap[ ] | ノードを配列形式で取り出します
XmlNamedNodeMap Iterate | ノードを連続して取り出します

クラス概要


XmlNamedNodeMap[ ] オペレータ

説明

ノードを配列形式で取り出します。

呼出形式

map[ name ]

戻り値

XmlNodeオブジェクト

ノードが見つからない場合はnullを返します。

引数

String name

取り出すノードの名前

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var map = xmldoc.DocumentElement.Attributes;
print(map["width"].NodeName, "\n");
map["width"].NodeValue = "100";

関連項目

XmlNodeクラス

GetNamedItem、SetNamedItemメソッド


XmlNamedNodeMap Iterateオペレータ

説明

ノードを連続して取り出します。

Iterateオペレータは通常のオペレータとは異なり、実行エンジン内部でオブジェクトに内包するデータを連続アクセスする際に利用されます。Iterateを持つオブジェクトは、for in ループやsum関数などで、配列化されたオブジェクトと同等の操作を行うことができます。

呼出形式

Iterateオペレータを直接呼び出すことはできません。

戻り値

Iterateオブジェクト

引数

なし

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var map = xmldoc.DocumentElement.Attributes;
for (var n in map) {
    print(map[n].NodeName, "\n");
}

関連項目

XmlNodeクラス


XmlNodeクラス

Object
 | XmlNode

すべてのノードの基底クラスです。DOMツリーを構成するノードの基本機能があります。

XmlNodeクラスは仮想クラスで、それ自体をインスタンス化することはできません。

XmlNodeクラスから派生したクラスは、XmlNodeクラスで定義されるプロパティとメソッドを引き継ぎ、同じように利用することができます。

XmlNodeから派生するクラスには

XmlDocumentFragment

XmlDocument

XmlAttr

XmlElement

XmlCharacterData

XmlText

XmlCDATASection

XmlComment

XmlProcessingInstruction

があります。

デフォルトプロパティとValueType

デフォルトプロパティはNodeNameです。ValueTypeの指定は無効です。


XmlNodeプロパティ

API version 4

プロパティ

iOSAndroidWindows

XmlNodeクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Attributes | R | XmlNamedNodeMap | ノードに所属するAttrノード
4 | ChildNodes | R | XmlNodeList | 子ノード
4 | FirstChild | R | XmlNode | 先頭の子ノード
4 | LastChild | R | XmlNode | 最後の子ノード
4 | LocalName | R | String | ノードのローカル名
4 | NamespaceURI | R | String | ノードの名前空間URI
4 | NextSibling | R | XmlNode | 次のノード
4 | NodeName | R | String | ノードの名前
4 | NodeType | R | Intger | ノードの種類
4 | NodeValue | CRW | String | ノードの値
4 | OwnerDocument | R | XmlDocument | ノードが所属するDOMツリーの頂点となるDocumentノード
4 | ParentNode | R | XmlNode | 親ノード
4 | Prefix | CRW | String | ノードの名前空間URIのプレフィックス
4 | PreviousSibling | R | XmlNode | 前のノード
4 | Text | R | String | 子ノードを集約したテキスト
4 | Xml | R | String | ノードを表すXMLテキスト

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


XmlNode.Attributesプロパティ

ノードに所属するAttrノードを含むXmlNamedNodeMapオブジェクトです。

このプロパティは読み込み専用で変更することはできません。


XmlNode.ChildNodesプロパティ

子ノードを表すXmlNodeListオブジェクトです。子ノードを持たない場合、空のXmlNodeListオブジェクトとなります。

このプロパティは読み込み専用で変更することはできません。


XmlNode.FirstChildプロパティ

先頭の子ノードです。子ノードを持たない場合はnullとなります。

このプロパティは読み込み専用で変更することはできません。


XmlNode.LastChildプロパティ

最後の子ノードです。子ノードを持たない場合はnullとなります。

このプロパティは読み込み専用で変更することはできません。


XmlNode.LocalNameプロパティ

ノードのローカル名です。

このプロパティは読み込み専用で変更することはできません。


XmlNode.NamespaceURIプロパティ

ノードの名前空間URIです。

このプロパティは読み込み専用で変更することはできません。


XmlNode.NextSiblingプロパティ

次のノードです。次のノードを持たない場合はnullとなります。

このプロパティは読み込み専用で変更することはできません。


XmlNode.NodeNameプロパティ

ノードの名前です。

このプロパティは読み込み専用で変更することはできません。


XmlNode.NodeTypeプロパティ

ノードの種類です。以下の種類があります。

定数 | 値 | 説明
XmlNode.ELEMENT_NODE | 1 | Elementノード
XmlNode.ATTRIBUTE_NODE | 2 | Attrノード
XmlNode.TEXT_NODE | 3 | Textノード
XmlNode.CDATA_SECTION_NODE | 4 | CDATASectionノード
XmlNode.ENTITY_REFERENCE_NODE | 5 | EntityReferenceノード
XmlNode.ENTITY_NODE | 6 | Entityノード
XmlNode.PROCESSING_INSTRUCTION_NODE | 7 | ProcessingInstructionノード
XmlNode.COMMENT_NODE | 8 | Commentノード
XmlNode.DOCUMENT_NODE | 9 | Documentノード
XmlNode.DOCUMENT_TYPE_NODE | 10 | DocumentTypeノード
XmlNode.DOCUMENT_FRAGMENT_NODE | 11 | DocumentFragmentノード
XmlNode.NOTATION_NODE | 12 | Notationノード

このプロパティは読み込み専用で変更することはできません。


XmlNode.NodeValueプロパティ

ノードの値です。

このプロパティはNodeTypeプロパティの値により動作が異なります。

NodeTypeプロパティ | 説明
ATTRIBUTE_NODE | アトリビュートの値となる子ノードの値を連結した文字列となります。 この値を変更すると子ノードは一度削除され、設定する値を含む単一のTextノードが作成されます。
COMMENT_NODE | 内容を示す文字列となります。値の設定も可能です。
TEXT_NODE
CDATA_SECTION_NODE
PROCESSING_INSTRUCTION_NODE
DOCUMENT_NODE | 書き込み、読み出しともに可能ですが、DOMツリーおよびXML文書に影響を与えることはありません。
DOCUMENT_TYPE_NODE
DOCUMENT_FRAGMENT_NODE
ELEMENT_NODE
ENTITY_NODE
ENTITY_REFERENCE_NODE
NOTATION_NODE


XmlNode.OwnerDocumentプロパティ

ノードが所属するDOMツリーの頂点となるXmlDocumentオブジェクトです。

このプロパティは読み込み専用で変更することはできません。


XmlNode.ParentNodeプロパティ

親のノードです。親を持たないノードの場合nullとなります。

このプロパティは読み込み専用で変更することはできません。


XmlNode.Prefixプロパティ

ノードの名前空間URIのプレフィックスです。


XmlNode.PreviousSiblingプロパティ

前のノードです。前のノードを持たない場合はnullとなります。

このプロパティは読み込み専用で変更することはできません。


XmlNode.Textプロパティ

子ノードを集約したテキストです。

このプロパティは読み込み専用で変更することはできません。


XmlNode.Xmlプロパティ

ノードを表すXMLテキストです。

このプロパティは読み込み専用で変更することはできません。


XmlNodeメソッド

API version 4

メソッド

iOSAndroidWindows

XmlNodeクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | AppendChild | 子ノードを末尾に追加します
4 | CloneNode | ノードの複製を作成します
4 | HasAttributes | Attrノードの有無を確認します
4 | HasChildNodes | 子ノードの有無を確認します
4 | InsertBefore | 指定位置にノードを追加します
4 | IsSupported | 機能の実装を確認します
4 | LookupNamespaceURI | 指定したプレフィックスに対応する名前空間URIを取得します
4 | LookupPrefix | 指定した名前空間URIに対応するプレフィックスを取得します
4 | Normalize | Textノードを正規化します
4 | RemoveChild | 子ノードをノードツリーから切り離します
4 | ReplaceChild | 子ノードを入れ替えます
4 | SelectNodes | XPathでノードを検索します
4 | SelectSingleNode | XPathで単一ノードを検索します

クラス概要

基本クラスのメソッド


XmlNode.AppendChildメソッド

説明

子ノードを末尾に追加します。

呼出形式

var node2 = node.AppendChild( child )

戻り値

追加されたXmlNodeオブジェクト

引数

XmlNode child

追加するノード

例外

DOM-3

HIERARCHY_REQUEST_ERR

DOM-7

NO_MODIFICATION_ALLOWED_ERR

DOM-8

NOT_FOUND_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var parent = xmldoc.DocumentElement;
var child = xmldoc.CreateElement("C3");
parent.AppendChild(child);

関連項目

InsertBefore、ReplaceChild、RemoveChildメソッド


XmlNode.CloneNodeメソッド

説明

ノードの複製を作成します。

このメソッドは、XmlDocumentクラスでは使用できません。

呼出形式

var node2 = node.CloneNode( deep )

戻り値

複製されたXmlNodeオブジェクト

引数

boolean deep

ノードの子ノードを再帰的に複写する場合は$TRUE、それ以外は$FALSE

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var parent = xmldoc.DocumentElement;
var list = parent.ChildNodes;
for (var n in list) {
    var node = list.Item(n);
    if (node.NodeName == "C1") {
        var node2 = node1.CloneNode(true);
        parent.AppendChild(node2);
        break;
    }
}

関連項目

XmlDocumentクラス


XmlNode.HasAttributesメソッド

説明

Attrノードの有無を確認します。

呼出形式

var ret = node.HasAttributes( )

戻り値

ノードにAttrノードがある場合は$TRUE、ない場合は$FALSE

引数

なし

例外

なし

使用例

if (node.HasAttributes()) {
    return;
}

関連項目

Attributesプロパティ


XmlNode.HasChildNodesメソッド

説明

子ノードの有無を確認します。

呼出形式

var ret = node.HasChildNodes( )

戻り値

子ノードがある場合は$TRUE、ない場合は$FALSE

引数

なし

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var parent = xmldoc.DocumentElement;
if (parent.HasChildNodes()) {
    var list = parent.ChildNodes;
    for (var n in list) {
        print(list.Item(n).NodeName, "\n");
    }
}

関連項目

ChildNodesプロパティ


XmlNode.InsertBeforeメソッド

説明

指定位置にノードを追加します。

呼出形式

var node2 = node.InsertBefore( newChild, refChild )

戻り値

追加したXmlNodeオブジェクト

引数

XmlNode newChild

追加するノード

newChildがXmlDocumentFragmentオブジェクトの場合、newChildのすべての子ノードが同じ順序で追加されます。newChildが別のツリーに接続されている場合、ツリーから切り離された後に追加されます。

XmlNode refChild

追加位置を示す子ノード

refChildがnullの場合、newChildは最後に追加されます。

例外

DOM-3

HIERARCHY_REQUEST_ERR

DOM-4

WRONG_DOCUMENT_ERR

DOM-7

NO_MODIFICATION_ALLOWED_ERR

DOM-8

NOT_FOUND_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var parent = xmldoc.DocumentElement;
var list = parent.ChildNodes;
for (var n in list) {
    var refChild = list.Item(n);
    if (refChild.NodeName == "C2") {
        var newChild = xmldoc.CreateElement("C1");
        parent.InsertBefore(newChild, refChild);
        break;
    }
}

関連項目

XmlDocumentFragmentクラス

ReplaceChild、RemoveChild、AppendChildメソッド


XmlNode.IsSupportedメソッド

説明

機能の実装を確認します。

呼出形式

var ret = node.IsSupported( feature, version )

戻り値

featureで指定した機能のversionで指定したバージョンがサポートされている場合は$TRUE、それ以外は$FALSE

引数

String feature

調べる機能

機能には以下のような文字列で指定します。

"Core"

"XML"

"HTML"

"Views"

"CSS"

String version

調べるバージョン

バージョンは次のような文字列です。

"1.0"

"2.0"

例外

なし

使用例

if (node.IsSupported("XML", "2.0")) {
    return;
}

関連項目


XmlNode.LookupNamespaceURIメソッド

説明

指定したプレフィックスに対応する名前空間URIを取得します。

呼出形式

var namespaceURI = node.LookupNamespaceURI( prefix )

戻り値

対応する名前空間URI

見つからない場合はnullを返します。

引数

String prefix

名前空間URIのプレフィックス

例外

なし

使用例

var namespaceURI = node.LookupNamespaceURI("svg");

関連項目

NamespaceURI、Prefixプロパティ

LookupPrefixメソッド


XmlNode.LookupPrefixメソッド

説明

名前空間URIに対応するプレフィックスを取得します。

呼出形式

var prefix = node.LookupPrefix( namespaceURI )

戻り値

対応するプレフィックス

見つからない場合はnullを返します。

引数

String namespaceURI

名前空間URI

例外

なし

使用例

var prefix = node.LookupPrefix("http://www.w3.org/2000/svg");

関連項目

NamespaceURI、Prefixプロパティ

LookupNamespaceURIメソッド


XmlNode.Normalizeメソッド

説明

Textノードを正規化します。

空のTextノードは削除され、隣り合ったTextノードは連結され1個のTextノードとなります。

呼出形式

node.Normalize( )

戻り値

なし

引数

なし

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var parent = xmldoc.DocumentElement;
parent.AppendChild(xmldoc.CreateTextNode("aaaaa\n"));
parent.AppendChild(xmldoc.CreateTextNode("bbbbb\n"));
parent.AppendChild(xmldoc.CreateTextNode("ccccc\n"));
parent.Normalize();
xmldoc.Save(file);

関連項目

XmlTextクラス


XmlNode.RemoveChildメソッド

説明

子ノードをノードツリーから切り離します。

呼出形式

var node2 = node.RemoveChild( child )

戻り値

切り離されたXmlNodeオブジェクト

引数

XmlNode child

切り離すノード

例外

DOM-7

NO_MODIFICATION_ALLOWED_ERR

DOM-8

NOT_FOUND_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var parent = xmldoc.DocumentElement;
var list = parent.ChildNodes;
for (var n in list) {
    var child = list.Item(n);
    if (child.NodeName == "C2") {
        parent.RemoveChild(child);
        break;
    }
}

関連項目

InsertBefore、ReplaceChild、AppendChildメソッド


XmlNode.ReplaceChildメソッド

説明

子ノードを入れ替えます。

呼出形式

var node2 = node.ReplaceChild( newChild, oldChild )

戻り値

入れ替えられたXmlNodeオブジェクト

引数

XmlNode newChild

新しいノード

newChildがXmlDocumentFragmentオブジェクトの場合、newChildのすべての子ノードが同じ順序で追加されます。newChildが別のツリーに接続している場合、ツリーから切り離された後で挿入されます。

XmlNode oldChild

元の子ノード

例外

DOM-3

HIERARCHY_REQUEST_ERR

DOM-4

WRONG_DOCUMENT_ERR

DOM-7

NO_MODIFICATION_ALLOWED_ERR

DOM-8

NOT_FOUND_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var parent = xmldoc.DocumentElement;
var list = parent.ChildNodes;
for (var n in list) {
    var oldChild = list.Item(n);
    if (oldChild.NodeName == "C2") {
        var newChild = xmldoc.CreateElement("C1");
        parent.ReplaceChild(newChild, oldChild);
        break;
    }
}

関連項目

XmlDocumentFragmentクラス

InsertBefore、RemoveChild、AppendChildメソッド


XmlNode.SelectNodesメソッド

説明

XPathで指定した条件に一致するノードを検索します。

呼出形式

var list = node.SelectNodes( xpath )

戻り値

条件に一致したすべてのノードを含むXmlNodeListオブジェクト

引数

String xpath

検索条件をXPath形式で指定します。

XPathには以下の要素を指定することができます。

/name | 先頭のnameエレメントを選択します。
//name | 現在の子と子孫のエレメントからnameエレメントを選択します。
../name | 現在の親エレメントの子からnameのエレメントを選択します。
name/* | 現在の子エレメントからnameエレメントの子エレメントをすべて選択します。
name@id | 現在の子エレメントからnameエレメントのidアトリビュートを選択します。
name[.="data"] | 現在の子エレメントから値がdataのnameエレメントを選択します。
name[@id="data"] | 現在の子エレメントからidアトリビュートがdataのnameエレメントを選択します。
name[2] | 現在の子エレメントから3番目のnameエレメントを選択します。

#textなどNodeTypeを指定した検索に対応しました。

例外

なし

使用例

/*
SelectNodes("//CODE");
    DOMツリー全体からCODEエレメントを検索します。
SelectNodes("/DATA/USER_REC/USERNAME[.="tanaka"]");
    /DATA/USER_REC/USERNAMEの内、値がtanakaのエレメントを検索します。
SelectNodes("//CODE/USER_REC[0]");
    DOMツリー全体からCODEエレメントを検索して、その子USER_RECの先頭を選択します。
*/

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var list = xmldoc.DocumentElement.SelectNodes("//CODE");
for (var n in list) {
    print(list.Item(n).NodeName, "\n");
}

関連項目

XmlNodeListクラス

SelectSingleNodeメソッド


XmlNode.SelectSingleNodeメソッド

説明

XPathで指定した条件に一致するノードを検索します。

呼出形式

var node2 = node.SelectSingleNode( xpath )

戻り値

検索条件に一致するノードのうち、最初に発見したXmlNodeオブジェクト

一致するノードが見つからない場合はnullを返します。

引数

String xpath

検索条件をXPath形式で指定します。

XPathの書式はSelectNodesメソッドに準じます。

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var node = xmldoc.DocumentElement.SelectSingleNode("//CODE");
if (node != null) {
    print(node.NodeName, "\n");
}

関連項目

SelectNodesメソッド


XmlNodeイベント

API version 4

イベント

iOSAndroidWindows

XmlNodeクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


XmlNodeListクラス

Object
 | XmlNodeList

ノードの集合をノードリストで管理するクラスです。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。


XmlNodeListプロパティ

API version 4

プロパティ

iOSAndroidWindows

XmlNodeListクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Length | R | integer | ノードリストに含まれるノードの数

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


XmlNodeList.Lengthプロパティ

ノードリストに含まれるノードの数を表します。

このプロパティは読み込み専用で変更することはできません。


XmlNodeListメソッド

API version 4

メソッド

iOSAndroidWindows

XmlNodeListクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | Item | インデックスを指定してノードを取り出します
4 | NextNode | 次のノードを取り出します
4 | Reset | NextNodeメソッドの取り出し位置をリセットします

クラス概要

基本クラスのメソッド


XmlNodeList.Itemメソッド

説明

インデックスを指定してノードを取り出します。

呼出形式

var node = list.Item( index )

戻り値

XmlNodeオブジェクト

Lengthプロパティ以上のindexを指定するなど、該当するノードが見つからない場合はnullを返します。

引数

integer index

取り出すノードの位置（0から始まるインデックスで指定します）

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var list = xmldoc.DocumentElement.ChildNodes;
for (var n = 0; n < list.Length; n++) {
    print(list.Item(n).NodeName, "\n");
}

関連項目

XmlNodeクラス

Lengthプロパティ

[ ] オペレータ


XmlNodeList.NextNodeメソッド

説明

次のノードを取り出します。

呼出形式

var node = list.NextNode( )

戻り値

XmlNodeオブジェクト

これ以上ノードが見つからない場合はnullを返します。

引数

なし

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var list = xmldoc.DocumentElement.ChildNodes;
while (var n = list.NextNode()) {
    print(n.NodeName, "\n");
}

関連項目

XmlNodeクラス

Resetメソッド


XmlNodeList.Resetメソッド

説明

NextNodeメソッドの取り出し位置をリセットします。

呼出形式

list.Reset( )

戻り値

なし

引数

なし

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var list = xmldoc.DocumentElement.ChildNodes;
while (var n = list.NextNode()) {
    print(n.NodeName, "\n");
}
list.Reset();

関連項目

NextNodeメソッド


XmlNodeListイベント

API version 4

イベント

iOSAndroidWindows

XmlNodeListクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


XmlNodeListオペレータ

API version 4

オペレータ

iOSAndroidWindows

XmlNodeListクラスには、ノードリストに含まれるノードを配列形式で（list[n]のように）取り出すためのオペレータと、for in ループなどでイテレートするためのオペレータが定義されています。

オペレータ | 説明
XmlNodeList[ ] | ノードを配列形式で取り出します
XmlNodeList Iterate | ノードを連続して取り出します

クラス概要


XmlNodeList[ ] オペレータ

説明

ノードを配列形式で取り出します。

呼出形式

list[ index ]

戻り値

XmlNodeオブジェクト

indexが有効な範囲にない場合はnullを返します。

引数

Integer index

ノードを取り出す位置

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var list = xmldoc.DocumentElement.ChildNodes;
for (var n = 0; n < list.Length; n++) {
    print(list[n].NodeName, "\n");
}

関連項目

XmlNodeクラス

Itemメソッド


XmlNodeList Iterateオペレータ

説明

ノードを連続して取り出します。

Iterateオペレータは通常のオペレータとは異なり、実行エンジン内部でオブジェクトに内包するデータを連続アクセスする際に利用されます。Iterateを持つクラスのオブジェクトは、for in ループやsum関数などで、配列化されたオブジェクトと同等の操作を行うことができます。

呼出形式

Iterateオペレータを直接呼び出すことはできません。

戻り値

Iterateオブジェクト

引数

なし

例外

なし

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var list = xmldoc.DocumentElement.ChildNodes;
for (var n in list) {
    print(nodeList[n].nodeName, "\n");
}

関連項目

XmlNodeクラス


XmlProcessingInstructionクラス

Object
 | XmlNode
 |  | XmlProcessingInstruction

処理命令ノード（ProcessingInstructionノード）を定義するクラスです。

XMLのプロローグ(<?xml version="1.0" ?>の部分)もXMLの構文上では処理命令ですが、特別に処理されるため対応するProcessingInstructionノードは生成されません。また、Biz/Browser固有の仕様であるXmlNode.XmlプロパティでXMLソースを参照した場合、プロローグ部は自動的に付加されます。従って、XMLをファイル等に出力する場合、プロローグのためにProcessingInstructionノードを付加する必要はありません。

DOMツリーの一部として独自の処理命令を組み込む場合、XmlProcessingInstructionオブジェクトをXmlDocument.CreateProcessingInstructionメソッドにより生成し、XmlNode.AppendChild、XmlNode.InsertBefore、XmlNode.ReplaceChildなどのメソッドでDOMツリーに接続します。

デフォルトプロパティとValueType

デフォルトプロパティはNodeNameです。ValueTypeの指定は無効です。


XmlProcessingInstructionプロパティ

API version 4

プロパティ

iOSAndroidWindows

XmlProcessingInstructionクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Data | CRW | String | 処理命令のデータ部分
4 | Target | R | String | 処理命令のターゲット部分

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


XmlProcessingInstruction.Dataプロパティ

処理命令のデータ部分です。


XmlProcessingInstruction.Targetプロパティ

処理命令のターゲット部分です。

このプロパティは読み込み専用で変更することはできません。


XmlProcessingInstructionメソッド

API version 4

メソッド

iOSAndroidWindows

XmlProcessingInstructionクラスで定義されるメソッドはありません。

クラス概要

基本クラスのメソッド


XmlProcessingInstructionイベント

API version 4

イベント

iOSAndroidWindows

XmlProcessingInstructionクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


XmlTextクラス

Object
 | XmlNode
 |  | XmlCharacterData
 |  |  | XmlText

Textノードを定義するクラスです。XmlTextクラスはXmlCharacterDataクラスから派生しており、XmlCharacterDataクラスのプロパティ、メソッドを継承しています。

デフォルトプロパティとValueType

デフォルトプロパティはNodeNameです。ValueTypeの指定は無効です。


XmlTextプロパティ

API version 4

プロパティ

iOSAndroidWindows

XmlTextクラスで定義されるプロパティはありません。

クラス概要

基本クラスのプロパティ


XmlTextメソッド

API version 4

メソッド

iOSAndroidWindows

XmlTextクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | SplitText | Textノードを分割して2個のTextノードにします

クラス概要

基本クラスのメソッド


XmlText.SplitTextメソッド

説明

指定の位置でTextノードを分割して2個のTextノードにします。

呼出形式

var text2 = text.SplitText( offset )

戻り値

分割した後半のテキストを含むXmlTextオブジェクト

引数

integer offset

分割位置（文字数で指定）

例外

DOM-1

INDEX_SIZE_ERR

DOM-7

NO_MODIFICATION_ALLOWED_ERR

使用例

var domimpl = new XmlDOMImplementation;
var res = session.Get("/test/sample.xml");
var xmldoc = domimpl.Load(res);
var text1 = xmldoc.DocumentElement.FirstChild;
var text2 = text1.SplitText(20);
print(text1.Data, "\n");
print(text2.Data, "\n");

関連項目


XmlTextイベント

API version 4

イベント

iOSAndroidWindows

XmlTextクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


DBパッケージ

データベースを操作するためのパッケージです。

クラス

API | 名前 | 説明
9 | LocalDB | 軽量データベース(SQLite)を操作するクラスです
9 | LocalDBStatement | 軽量データベース(SQLite)のクエリを操作するクラスです


LocalDBクラス

Object
 | LocalDB

ローカルDBの本体となるクラスで、SQLite3データベースを操作する機能を提供します。
データ型、型変換規則、構文、その他各種概念はSQLite3のものに準じます。

開くときにモードを指定し、書き込み可能なときにファイルが存在していなければ、自動的に新たに作成します。
ファイルを作成することができない、ロックされている等の理由により開けなければ、例外をスローします。
データベースへの変更操作が反映されない等の問題を起こす可能性があるため、LocalDBオブジェクトは使用後は必ずcloseメソッドを呼んでクローズしてください。

デフォルトでは、データベースは自動コミットモードがオンの状態で動作します。つまり、データベースの変更操作は即座に反映され、永続化されます。この操作はロールバックできません。
トランザクションを行いたい場合はbegin, commit, rollbackメソッドを使用します。
トランザクション中にLocalDBオブジェクトが削除された場合、未コミット状態なら自動的にロールバックします。

データ型について

CRSの各型の値は、データベース型に応じて適切に変換されます。
SQLite3データベースの型とCRSの型は下記のように対応づけて変換されます。

CRS型 | SQLite型
整数 | INT
文字列 | TEXT
Number | REAL
null | NULL
ByteArray | BLOB

SQLite3には日付時刻型に対応するデータベース型が存在しないため、日付や時刻はいずれかの型にあわせて変換する必要があります。
一般的には下記の方法を選択し、日付や時刻型をデータベース上で表現します。

  • ISO8601形式の文字列で表現する　（例：2014-10-10T13:50:40+09:00）
  • UNIXタイムスタンプ型の整数で表現する
  • グレゴリオ暦の紀元前4714年11月24日を基点とするユリウス通日を、1日を1.0とした浮動小数点で表現する

SQLite3ではデータベースで使用可能な型のほかに、他のデータベースマネジメントシステムで使用可能な型を指定することができます。その場合、指定された型はSQLite3のいずれかの型に置き換えて用いられます。
たとえば、varchar(255)を型として指定した場合は、TEXT型が指定されたものとして見なします。
その場合、その型の列には256文字以上の文字を指定することができます。

Dateオブジェクトを直接LocalDBStatement.bindメソッドに指定した場合は、CRSにおいてDateオブジェクトを文字列に変換したものとして扱います。
この文字列はISO8601形式のフォーマットではないことに注意してください。

注意事項

SQLiteは、性質上カラム型と異なる型のデータを格納することができます。このため、ある型のカラムから取得したデータが必ずその型の値であるとは限らないことに注意して下さい。

データベースファイルの暗号化について

LocalDBクラスは暗号化されたデータベースファイルを開いて操作したり新たに作成したりすることができます。
これにより、よりセキュアにデータベースにアクセスすることができ、データの改ざんや盗聴を防止できます。
なお、暗号化を解除したり、逆に暗号化されていないデータベースファイルを新たに暗号化することはできません。

暗号化されたデータベースファイルを開く、および新たに作成する場合はコンストラクタ引数に暗号化キーを指定します。
下記の指定の場合、暗号化されたデータベースファイルを暗号化キー「1234」で開きます。データベースファイルが存在しない場合は、新たにデータベースファイルを作成します。

var db = new LocalDB(new FileSystem(), "testdb.sqlite", LocalDB.OPEN_READWRITE, "1234");

注意事項

データベースファイルはBiz/Browser HT、Biz/Browser SmartDevice（iOS, Android, Windows）の他、SQLite3をサポートする各種ソフトウェアと互換性があり、相互に開くことができます。
ただし、暗号化されたデータベースファイルの場合は、wxSQLite(AES-128)版の暗号化がサポートされた各種ソフトウェア以外では互換性がなくなり、開くことができなくなることに注意して下さい。

典型的な使用方法

いくつかの各データの参照方法が用意されており、LocalDBStatementクラスを使用することで全件一括でCSV形式で取得するオペレータも用意されています。
これにより、指定条件にて全件のレコードを取得し表形式で表示可能なデータであれば、非常に簡単な操作で取得することができます。
特別に制御が必要でなければシンプルに記述することができます。

var st = db.createStatement("select * from testtable");
var records  = new CSVDocument();
^.FlexView1 << records << st;　　/* FlexView ← CSVDocument  ← 全件データ */


LocalDBプロパティ

API version 9

プロパティ

iOSAndroidWindows

LocalDBクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
9 | FileName | R | String | ファイル名

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


LocalDB.FileNameプロパティ

データベース接続を行うファイル名を示します。

このプロパティは、コンストラクタで指定したファイル名がコピーされています。


LocalDBメソッド

API version 9

メソッド

iOSAndroidWindows

LocalDBクラスには以下のメソッドが定義されています。

API | 名前 | 説明
9 | (コンストラクタ) | LocalDBオブジェクトを初期化します
9 | Begin | トランザクションを開始します
9 | Close | データベースへの接続をクローズします
9 | Commit | コミットします
9 | CreateStatement | クエリ実行用のステートメントを作成します
9 | Exec | クエリを実行します
9 | IsTableExists | テーブルが存在するかどうかを調べます
9 | Rollback | ロールバックします

クラス概要

基本クラスのメソッド


LocalDBコンストラクタ

説明

LocalDBを初期化します。

データベースファイルを開いてオブジェクトを初期化します。データベースファイルが存在しない場合は作成を試みます。

呼出形式

var db = new LocalDB( filesystem, filename [, mode[, key]])

戻り値

LocalDBオブジェクト

引数

FileSystem filesystem

filenameで解決するパスの基準となるFileSystemオブジェクト

String filename

開くデータベースファイル名

integer mode

接続モード
指定できる値は下記の通りです。

定数 | 値 | 説明
LocalDB.OPEN_READ | 0 | 読み取り専用
LocalDB.OPEN_READWRITE | 1 | 読み書き両用（デフォルト） ファイルが存在しなければデータベースファイルを作成

String key

暗号化されたSQLiteデータベースファイルのキー
読み書きするために使用され、さらにデータベースの作成時は作成時のキーにも使用します。

例外

DB-1

データベース操作中にエラーが発生しました

DB-2

データベースファイルが開けません

DB-3

コンストラクタ引数が少なすぎます

CRS-16

引数が不正です

使用例

var db = new LocalDB(new FileSystem(), "testdb.sqlite", LocalDB.OPEN_READWRITE, "1234");

関連項目


LocalDB.Beginメソッド

説明

トランザクションを開始します。

トランザクション中は自動コミットがオフになり、commitメソッドが呼ばれるまで変更内容を永続化しません。
この操作は、以下のクエリを送信したものと等価です。

begin

呼出形式

db.begin( )

戻り値

なし

引数

なし

例外

DB-1

データベース操作中にエラーが発生しました

DB-4

データベースは開かれていません

DB-5

トランザクション中に実行することはできません

使用例

var db = new LocalDB(new FileSystem(), "testdb.sqlite");
try{
    db.begin();
    db.exec("create table test (id integer primary key, value text)");
    db.exec("insert into test values (0, 'tanaka')");
    db.exec("insert into test values (1, 'yamada')");
    db.exec("insert into test values (2, 'suzuki')");
    db.commit();
}catch(e){
    db.rollback();
    //.MessageBox("データベースエラー：" + Str(e.message));
}
db.close();

関連項目

Commitメソッド

Rollbackメソッド


LocalDB.Closeメソッド

説明

このデータベースへの接続を明示的にクローズします。

トランザクション中に未コミットのものはロールバックされます。
クローズした場合は以降LocalDBに対してデータベース操作が行なえません。
通常、このメソッドはLocalDBオブジェクトを使用し終わったタイミングで呼ぶ必要があります。

呼出形式

db.Close( )

戻り値

なし

引数

なし

例外

DB-4

データベースは開かれていません

使用例

var db = new LocalDB(new FileSystem(), "testdb.sqlite");
/* 各種操作 */
db.close();

関連項目


LocalDB.Commitメソッド

説明

データベースへの変更操作をコミットします。

また、トランザクションを終了します。
この操作は、以下のクエリを送信したものと等価です。

commit

呼出形式

db.Commit( )

戻り値

なし

引数

なし

例外

DB-1

データベース操作中にエラーが発生しました

DB-4

データベースは開かれていません

DB-6

トランザクション中ではありません

使用例

var db = new LocalDB(new FileSystem(), "testdb.sqlite");
try{
    db.begin();
    db.exec("create table test (id integer primary key, value text)");
    db.exec("insert into test values (0, 'tanaka')");
    db.exec("insert into test values (1, 'yamada')");
    db.exec("insert into test values (2, 'suzuki')");
    db.commit();
}catch(e){
    db.rollback();
    //.MessageBox("データベースエラー：" + Str(e.message));
}
db.close();

関連項目

Beginメソッド

Rollbackメソッド


LocalDB.CreateStatementメソッド

説明

ステートメントを作成します。

Execメソッドと比較して、select文などクエリの実行結果を取得したり高度な制御することができます。
引数のクエリ文字列にはバインド変数を「?」という記号で指定することができます。
バインド変数は作成したLocalDBStatementオブジェクトのbindメソッドを用いることで値をセットすることができます。

呼出形式

var st = db.CreateStatement( query )

戻り値

LocalDBStatementオブジェクト

引数

String query

クエリ文字列（バインド変数が使用可能）

例外

DB-1

データベース操作中にエラーが発生しました

DB-4

データベースは開かれていません

使用例

var db = new LocalDB(new FileSystem(), "testdb.sqlite");
var st = db.createStatement("select * from test where id < ?");
st.bind(0, 42);

関連項目

Execメソッド


LocalDB.Execメソッド

説明

クエリを実行します。
このメソッドはただクエリを実行するだけで処理が十分な場合に使用します。
insert文やupdate文などに向いていて、select文などには向いていません。

より高度な操作を行う場合は、CreateStatementメソッドを実行してステートメントを操作します。

呼出形式

var result = db.Exec( query )

戻り値

実行の結果として変更されたレコードの行数

引数

String query

クエリ文字列

例外

DB-1

データベース操作中にエラーが発生しました

DB-4

データベースは開かれていません

使用例

var db = new LocalDB(new FileSystem(), "testdb.sqlite");
try{
    db.begin();
    db.exec("create table test (id integer primary key, value text)");
    db.exec("insert into test values (0, 'tanaka')");
    db.exec("insert into test values (1, 'yamada')");
    db.exec("insert into test values (2, 'suzuki')");
    db.commit();
}catch(e){
    db.rollback();
    //.MessageBox("データベースエラー：" + Str(e.message));
}
db.close();

関連項目

CreateStatementメソッド


LocalDB.IsTableExistsメソッド

説明

テーブルが存在するかどうかを調べます。

呼出形式

var res = db.IsTableExists( name )

戻り値

存在する場合はtrue、そうでなければfalseを返します。

引数

String name

テーブル名

例外

DB-1

データベース操作中にエラーが発生しました

DB-4

データベースは開かれていません

使用例

var db = new LocalDB(new FileSystem(), "testdb.sqlite");
if(db.isTableExists("test")){
    /* テーブルがあるときの処理 */
}

関連項目


LocalDB.Rollbackメソッド

説明

データベースへの変更操作をロールバックします。

また、トランザクションを終了します。
この操作は、以下のクエリを送信したものと等価です。

rollback

呼出形式

db.Rollback( )

戻り値

なし

引数

なし

例外

DB-1

データベース操作中にエラーが発生しました

DB-4

データベースは開かれていません

DB-6

トランザクション中ではありません

使用例

var db = new LocalDB(new FileSystem(), "testdb.sqlite");
try{
    db.begin();
    db.exec("create table test (id integer primary key, value text)");
    db.exec("insert into test values (0, 'tanaka')");
    db.exec("insert into test values (1, 'yamada')");
    db.exec("insert into test values (2, 'suzuki')");
    db.commit();
}catch(e){
    db.rollback();
    //.MessageBox("データベースエラー：" + Str(e.message));
}
db.close();

関連項目

Beginメソッド

Commitメソッド


LocalDBイベント

API version 9

イベント

iOSAndroidWindows

LocalDBクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


LocalDBStatementクラス

Object
 | LocalDBStatement

ローカルDBのクエリを操作するクラスです。バインド変数処理やエスケープ処理などが使用可能です。
また、クエリを送信して結果データを取得することができます。

LocalDBStatementオブジェクトはLocalDB.CreateStatementメソッドにより作成します。


LocalDBStatementプロパティ

API version 9

プロパティ

iOSAndroidWindows

LocalDBStatementクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
9 | Query | R | String | クエリ文

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


LocalDBStatement.Queryプロパティ

初期化時のクエリ文を取得します。バインド変数に設定した値は展開されません。

このプロパティは読み取り専用です。後から変更することはできません。


LocalDBStatementメソッド

API version 9

メソッド

iOSAndroidWindows

LocalDBStatementクラスには以下のメソッドが定義されています。

API | 名前 | 説明
9 | Bind | バインド変数に値を設定します
9 | Exec | ステートメントに設定されているクエリを実行します
9 | GetColumn | 現在のカーソル位置の指定列のデータを取得します
9 | GetColumns | クエリの実行結果の列数を取得します
9 | GetRow | 現在のカーソル位置のすべての列のデータを一括で取得します
9 | GetRows | クエリの実行結果の行数を取得します
9 | Next | クエリを実行してカーソル位置を1行進めます
29 | ToArray | 指定した列の値をキー、および値として連想配列を出力します

クラス概要

基本クラスのメソッド


LocalDBStatement.Bindメソッド

説明

バインド変数に値を設定します。

バインド変数はクエリ文の「?」記号で表現され、先頭から順番に0, 1, 2...のインデックスに対応しています。
クエリ文のバインド変数の数を超えたインデックスに対し値を設定しようとした場合は例外が発生します。
Bindメソッドに指定した値は自動的にエスケープされます。
設定する値は任意の型を指定することができ、データベースの型にあわせて変換されます。CRS型との型変換規則はLocalDBクラスを参照して下さい。

呼出形式

var st = st.Bind( index, value )

戻り値

常に自身のLocalDBStatementオブジェクトへの参照を返します。

引数

Integer index

バインド変数のインデックス

Object value

バインド変数に設定する値

例外

DB-7

バインド変数に指定できない値です

DB-8

無効なステートメントです

DB-9

パラメータの指定可能範囲外です

使用例

st.bind(0, "hoge").bind(1, "huga").bind(2, "piyo");

関連項目


LocalDBStatement.Execメソッド

説明

ステートメントに設定されているクエリを実行します。
バインド変数に設定されている値が反映されます。

呼出形式

var result = st.Exec( )

戻り値

実行の結果として変更されたレコードの行数

引数

なし

例外

DB-1

データベース操作中にエラーが発生しました

DB-8

無効なステートメントです

使用例

var result = st.Exec();

関連項目


LocalDBStatement.GetColumnメソッド

説明

ステートメントが指す現在のカーソル位置の指定列データを取得します。
nextメソッドの実行後にのみ呼ぶことができます。

※nextメソッドによく似た性質を持つexecメソッドがありますが、execメソッドの実行後には呼べません。

呼出形式

var data = st.GetColumn( index or name )

戻り値

指定された列のデータ

引数

Integer index

列のインデックス

String name

列名

例外

DB-1

データベース操作中にエラーが発生しました

DB-8

無効なステートメントです

DB-9

パラメータの指定可能範囲外です

使用例

var db = new LocalDB(new FileSystem(), "testdb.sqlite");
var st = db.createStatement("select * from test where value like ?");
try{
    st.bind(0, "%Android%");
    while(st.next()){
        print(st.getColumn(0), ":", st.getColumn(1));
    }
}catch(e){
    //.MessageBox("データベース操作に失敗しました。");
    return;
}

関連項目

Nextメソッド


LocalDBStatement.GetColumnsメソッド

説明

クエリの実行結果の列数を取得します。
実行結果の行数が0件でも、行がある場合の列数を返します。

呼出形式

var num = st.GetColumns( )

戻り値

クエリの実行結果の列数を返します。

引数

なし

例外

DB-1

データベース操作中にエラーが発生しました

DB-8

無効なステートメントです

使用例

var num = st.getColumns();

関連項目


LocalDBStatement.GetRowメソッド

説明

現在のカーソルのある行のすべての列をArrayオブジェクトで一括で取得します。

取得される各列のデータ型は、型変換規則に従いデータベースの型に基づき決定されます。
nextメソッドの実行後にのみ呼ぶことができます。

※nextメソッドによく似た性質を持つexecメソッドがありますが、execメソッドの実行後には呼べません。

呼出形式

var datas = st.GetRow( )

戻り値

現在のカーソルのある行のすべての列データ
配列要素名が列名で、値が列データに対応している連想配列が返ります。

引数

なし

例外

DB-1

データベース操作中にエラーが発生しました

DB-8

無効なステートメントです

使用例

var db = new LocalDB(new FileSystem(), "testdb.sqlite");
var st = db.createStatement("select * from test where value like ?");
try{
    st.bind(0, "%Android%");
    while(st.next()){
        var ar = st.getRow();
        print(ar["id"], ":", ar["value"]);
    }
}catch(e){
    //.MessageBox("データベース操作に失敗しました。");
    return;
}

関連項目


LocalDBStatement.GetRowsメソッド

説明

クエリの実行結果の行数を取得します。

それまでにnextメソッドによりカーソル位置が移動している場合は先頭に戻します。
また、実行後にnextメソッドで進んでいるカーソルを初期状態に戻します。

呼出形式

var num = st.GetRows( )

戻り値

クエリの実行結果の行数を返します。

引数

なし

例外

DB-1

データベース操作中にエラーが発生しました

DB-8

無効なステートメントです

使用例

var num = st.getRows();

関連項目


LocalDBStatement.Nextメソッド

説明

クエリを実行してカーソル位置を1行進めます。

一部の他のメソッドは、実行後に進んでいるカーソル位置が初期状態に戻るものがあることに注意してください。

呼出形式

var res = st.next( )

戻り値

次の行があればtrue、そうでなければfalseを返します。

引数

なし

例外

DB-1

データベース操作中にエラーが発生しました

DB-8

無効なステートメントです

使用例

var db = new LocalDB(new FileSystem(), "testdb.sqlite");
var st = db.createStatement("select * from test where value like ?");
try{
    st.bind(0, "%Android%");
    while(st.next()){
        print(st.getColumn(0), ":", st.getColumn(1));
    }
}catch(e){
    //.MessageBox("データベース操作に失敗しました。");
    return;
}

関連項目


LocalDBStatement.ToArrayメソッド

説明

指定した列の値をキー、および値として連想配列を出力します。

それまでにnextメソッドによりカーソル位置が移動している場合は先頭に戻してから実行します。

また、実行後にnextメソッドで進んでいるカーソルを初期状態に戻します。

keyColで指定した列の値が重複している場合、後から見つかった行の値が採用されます。

呼出形式

var arr = st.ToArray( keyCol, valueCol )

戻り値

連想配列を返します。

クエリ結果と連想配列の構造の関係は以下の通りです。

行数 | a列 | b列 | c列 | ...
1行目 | 値1-a | 値1-b | 値1-c | ...
2行目 | 値2-a | 値2-b | 値2-c | ...
3行目 | 値3-a | 値3-b | 値3-c | ...
4行目 | 値3-a | 値4-b | 値4-c | ...
⋮ | ⋮ | ⋮ | ⋮ | ...

↓

ToArrayメソッドでkeyColにa列の列名、valueColにb列の列名を指定した場合の、戻り値のArrayの構造

arr[値1-a]=値1-b
arr[値2-a]=値2-b
arr[値3-a]=値4-b
⋮

上記の例では、a列の3行目と4行目の値が重複しているため、値4-bが採用されます。

引数

string keyCol

連想配列の添え字にする列の名前を指定します。空文字を指定した場合、0から開始する行番号が添え字となります。

string valueCol

連想配列の値にする列の名前を指定します。

例外

DB-1

データベース操作中にエラーが発生しました

DB-8

無効なステートメントです

使用例

var fs = new FileSystem();
var db = new LocalDB(fs, "sample.sqlite3");
try {
    db.begin();
    db.exec("create table test (id integer primary key, color text, value integer, nullablevalue)");
    var ret = db.exec("insert into test values (1, 'Red', 100, null)");
    ret = db.exec("insert into test values (2, 'Red', 110, null)");
    ret = db.exec("insert into test values (3, 'Blue', 200, null)");
    db.commit();

    var st = db.CreateStatement("select * from test");
    var arr = st.ToArray("id", "color");
} catch ( e ) {
    db.rollback();
    return;
}

関連項目


LocalDBStatementイベント

API version 9

イベント

iOSAndroidWindows

LocalDBStatementクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


LocalDBStatementオペレータ

API version 9

オペレータ

iOSAndroidWindows

LocalDBStatementクラスには以下のオペレータが定義されています。

API | オペレータ | 説明
29 | Array << LocalDBStatement | 全件データをArrayへ出力します
9 | CSVDocument << LocalDBStatement | 全件データをCSVDocumentへ出力します

クラス概要


Array << LocalDBStatement オペレータ

このオペレータは、LocalDBStatementのクエリを実行して得られたすべての結果データを左辺のArrayへ出力します。

既存のデータは削除され、Arrayオブジェクトのデータに置き換わります。

それまでにnextメソッドによりカーソル位置が移動している場合は先頭に戻してから実行します。
また、実行後にnextメソッドで進んでいるカーソルを初期状態に戻します。

クエリ結果と出力されたArrayの構造の関係は以下の通りです。

クエリ結果

行数 | a列 | b列 | c列 | ...
1行目 | 値1-a | 値1-b | 値1-c | ...
2行目 | 値2-a | 値2-b | 値2-c | ...
3行目 | 値3-a | 値3-b | 値3-c | ...
⋮ | ⋮ | ⋮ | ⋮ | ...

↓

Arrayの構造

/* 1列目 */
arr[0][a列の列名]=値1-a
arr[0][b列の列名]=値1-b
arr[0][c列の列名]=値1-c
arr[0][d列の列名]=値1-d
⋮
/* 2列目 */
arr[1][a列の列名]=値2-a
arr[1][b列の列名]=値2-b
arr[1][c列の列名]=値2-c
arr[1][d列の列名]=値2-d
⋮
/* 3列目 */
arr[2][a列の列名]=値3-a
arr[2][b列の列名]=値3-b
arr[2][c列の列名]=値3-c
arr[2][d列の列名]=値3-d
⋮

使用例

var st = db.createStatement("select * from testtable");
var arr  = new Array();
arr << st;　　/* Array  ← 全件データ */


CSVDocument << LocalDBStatement オペレータ

このオペレータは、LocalDBStatementのクエリを実行して得られたすべての結果データを左辺のCSVDocumentへ出力します。

既存のデータは削除され、CSVDocumentオブジェクトのデータに置き換わります。

それまでにnextメソッドによりカーソル位置が移動している場合は先頭に戻してから実行します。
また、実行後にnextメソッドで進んでいるカーソルを初期状態に戻します。

データベースから取得されたデータはすべて文字列に変換されます。
文字列でないデータは、getRowやgetColumnから取得したデータを文字列に変換したものと若干異なることがあります。

使用例

var st = db.createStatement("select * from testtable");
var records  = new CSVDocument();
^.FlexView1 << records << st;　　/* FlexView ← CSVDocument  ← 全件データ */


HTTPパッケージ

WEBサーバと通信するためのパッケージです。

クラス

API | 名前 | 説明
4 | HttpAsyncSession | バックグラウンド非同期通信セッションを管理します
4 | HttpRequest | HTTPリクエストを保持します
4 | HttpResponse | HTTPレスポンスを保持します
4 | HttpSession | HTTPのセッション情報を保持します
20 | WebSocket | WebSocketプロトコルによる双方向通信を行います


HttpAsyncSessionクラス

Object
 | HttpAsyncSession

バックグラウンド非同期通信を管理するクラスです。

このクラスは複数の通信をIDにて生成・管理することができ、また通信はCRS実行エンジンとは別スレッドにて同時かつ非同期に行われます。通信の終了後イベントとしてIDと共に受信結果が通知されます。

HttpSessionクラスと同様にGet、Postメソッドによる単純な通信の他、HttpRequestクラスを利用した高度な通信も可能です。

このクラスのインスタンスは通信を行う間は常に保持されている必要があります。インスタンスが消滅すると通信中のセッションはすべて強制切断されます。

デフォルトプロパティとValueType

デフォルトプロパティはSessionsです。ValueTypeの指定は無効です。


HttpAsyncSessionプロパティ

API version 4

プロパティ

iOSAndroidWindows

HttpAsyncSessionクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Sessions | R | Integer | 保持しているセッション数

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


HttpAsyncSession.Sessionsプロパティ

現在HttpAsyncSessionオブジェクトが保持しているセッション数を取得します。このセッション数はアクティブ、非アクティブなもの両方を含みます。

アクティブなセッションのみを確認したい場合はIsBusyメソッドを使用します。

このプロパティは読み込み専用で変更することはできません。


HttpAsyncSessionメソッド

API version 4

メソッド

iOSAndroidWindows

HttpAsyncSessionクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | Abort | 通信を強制終了します
24 | AddCookie | クライアント側からのクッキーを設定します
4 | CreateRequest | HttpRequestオブジェクトを生成します
4 | Get | 非同期GETリクエストを開始します
4 | IsBusy | 通信中かどうかを取得します
4 | Post | 非同期POSTリクエストを開始します
24 | RemoveCookie | AddCookieメソッドで追加したクッキーを削除します

クラス概要

基本クラスのメソッド


HttpAsyncSession.Abortメソッド

説明

通信セッションを強制切断します。

引数を指定しない場合、すべてのセッションを切断します。

呼出形式

session.Abort( [ id ] )

戻り値

なし

引数

String id

切断するセッションIDを指定します。

例外

HTTP-101

指定のIDのセッションはありません

使用例

httpAsyncSession session {
    Function OnSessionEnd(e) {
        if (e.id == "Download1") {
            if (e.status == 0) {
                //.MessageBox("切断されました", "ERROR", $OK);
            }
        }
    }
}
Button btnDownload {
    Function OnTouch(e) {
        ^.session.Get("Download1", "/test/prog1?code=1283&name=biz");
    }
}
Button btnAbort {
    Function OnTouch(e) {
        ^.session.Abort("Download1");
    }
}

関連項目


HttpAsyncSession.AddCookieメソッド

説明

クライアント側からのクッキーを追加します。

CreateRequestメソッド、Getメソッド等で指定するURLとAddCookieメソッドで指定するpathが一致する場合のみ、クッキーをリクエストヘッダに追加します。

pathを省略した場合、URLに関わらずクッキーを追加します。

nameとvalueが既に追加済みのクッキーと一致する場合、追加済みのvalueを更新します。

呼出形式

session.AddCookie( name, value [, path])

戻り値

なし

引数

String name

クッキーの名前

String value

クッキーの値

String path

クッキーの追加対象となるURL

省略した場合、CreateRequestメソッド、Getメソッド等で指定するURLに関わらずクッキーを追加します。

例外

HTTP-11

不正なヘッダ情報です

使用例

HttpAsyncSession session {
    Function OnSessionEnd(e) {
        if (e.id == "Download1") {
            if (e.status != $HTTP_OK) {
                //.MessageBox("通信エラー:" + str(e.status), "ERROR", $OK);
            }
        }
    }
}
Button btnAddCookie {
    Function OnTouch(e) {
        ^.session.AddCookie("name1", "value1", "/sample.txt");
        ^.session.AddCookie("name2", "value2", "/sample2.txt");
        ^.session.AddCookie("name3", "value3");
    }
}
Button btnDownload {
    Function OnTouch(e) {
        /* Getメソッドで指定するURLとAddCookieメソッドで指定したpathが一致するname1, value1と */
        /* AddCookieメソッドでpathを省略したname3, value3がクッキーとして追加される */
        ^.session.Get("Download1", "/sample1");
    }
}

関連項目

RemoveCookieメソッド


HttpAsyncSession.CreateRequestメソッド

API version 4

HttpAsyncSession.CreateRequestメソッド 変更履歴

iOSAndroidWindows

説明

新しい非同期リクエストを作成します。作成したリクエストは、リクエストパラメータなどのプロパティ設定を行った後、PostまたはGetメソッドによりサーバへ送信します。

HttpRequestオブジェクトは１回だけ通信を行うことができます。複数の通信を行う場合、それぞれCreateRequestメソッドにより別々のHttpRequestオブジェクトを作成してください。

HttpAsyncSessionオブジェクトとHttpRequestオブジェクトは密接に関連しています。HttpRequestオブジェクトを作成したときのHttpAsyncSessionオブジェクト以外でGet、Postを行うことはできません。

リクエストパラメータが不要な場合、CreateRequestメソッドは使用せず、GetメソッドにURLを直接記述する形式を利用した方が効率的です。

呼出形式

var req = session.CreateRequest( id, URL [, enc ] )

戻り値

HttpRequestオブジェクトのリファレンスを返します。

引数

String id

ユニークなセッションIDを指定します。すでに同じIDでリクエストが作成されていたり、通信が行われている場合、例外が発生します。

String URL

要求するURL。絶対パス、相対パスどちらでも指定可能です。

パスの解釈はCRSの一般的なルールに従います。

integer enc

POST要求を送信するときの、POSTパラメータのエンコード方法を指定します。 *1

指定できる値は下記のとおりです。省略した場合のデフォルト値はHttpAsyncSession.DEFAULT_ENCODEです。

定数 | 値 | 説明
HttpAsyncSession.DEFAULT_ENCODE | 0 | Mobile互換モードの指定に従います
HttpAsyncSession.UTF8_ENCODE | 1 | UTF-8にエンコードします

例外

HTTP-100

すでに指定のIDは使用されています

HTTP-102

IDが無効です

HTTP-103

セッションを生成できません

使用例

httpAsyncSession session;
var req = session.CreateRequest("Download1", "http://biz-browser.jp/test/prog1.asp");
req.AddParam("code", "0452");
req.AddParam("name", "biz");
session.Post(req);

関連項目

Get、Postメソッド

HttpRequest、HttpResponseクラス

変更履歴
*1　API version 24から追加されました。


HttpAsyncSession.Getメソッド

説明

指定先のサーバへ非同期GETリクエストを開始します。メソッドは実行後直ちに終了します。

HTTPレイヤーの実行結果は、SessionEndイベントで返されるstatusの値で確認します。

Android版
Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、OSに対してユーザー操作で許可をとる必要があります。
詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

session.Get( id, URL )

または

session.Get( req )

戻り値

なし

引数

String id

ユニークなセッションIDを指定します。すでに同じIDでリクエストが作成されていたり、通信が行われている場合、例外が発生します。

String URL

要求するURL。絶対パス、相対パスどちらでも指定可能です。パスの解釈はCRSの一般的なルールに従います。

HttpRequest req

要求リクエストを示すHttpRequestオブジェクト。CreateRequestメソッドで作成します。

例外

HTTP-2

指定のhttpRequestはコネクション先が異なります

HTTP-4

GETまたはPOSTに指定のリクエストオブジェクトは不正です

HTTP-100

すでに指定のIDは使用されています

HTTP-102

IDが無効です

HTTP-103

セッションを生成できません

HTTP-104

通信スレッドの作成に失敗しました

使用例

HttpAsyncSession session {
    Function OnSessionEnd(e) {
        if (e.id == "Download1") {
            if (e.status != $HTTP_OK) {
                //.MessageBox("通信エラー:" + str(e.status), "ERROR", $OK);
            }
        }
    }
}
Button btnDownload {
    Function OnTouch(e) {
        ^.session.Get("Download1", "/test/prog1?code=1283&name=biz");
    }
}

関連項目

CreateRequestメソッド

SessionEndイベント

HttpRequestクラス


HttpAsyncSession.IsBusyメソッド

説明

セッションが通信中かどうか調べます。

引数を指定しない場合、1つでも通信中のセッションが存在すれば$TRUEとなります。

このメソッドでは存在しないセッションIDを指定しても例外は発生せず$FALSEを返します。

呼出形式

var ret = session.IsBusy( [ id ] )

戻り値

セッションが通信中なら$TRUEを返します。

それ以外の場合は$FALSEを返します。

引数

String id

調べたいセッションIDを指定します。

例外

なし

使用例

HttpAsyncSession session;

Button btnNext {
    Function OnTouch(e) {
        if (^.session.IsBusy()) {
            MessageBox("ダウンロード中です", "ERROR", $OK);
            return;
        } else {
            ^.Get("frmNext.crs");
        }
    }
}

関連項目


HttpAsyncSession.Postメソッド

説明

指定先のサーバへ非同期POSTリクエストを開始します。メソッドは実行後直ちに終了します。

リクエストに含めるリクエストパラメータは、HttpRequest.AddParamメソッドで設定します。

HTTPレイヤーの実行結果は、SessionEndイベントで返されるstatusの値で確認します。

呼出形式

session.Post( req )

戻り値

なし

引数

HttpRequest req

要求リクエストを示す、HttpRequestオブジェクト。CreateRequestメソッドで作成します。

例外

HTTP-2

指定のhttpRequestはコネクション先が異なります

HTTP-4

GETまたはPOSTに指定のリクエストオブジェクトは不正です

HTTP-103

セッションを生成できません

HTTP-104

通信スレッドの作成に失敗しました

使用例

HttpAsyncSession session {
    Function OnSessionEnd(e) {
        if (e.id == "Download2") {
            if (e.status != $HTTP_OK) {
                //.MessageBox("通信エラー:" + str(e.status), "ERROR", $OK);
            }
        }
    }
}
Button btnDownload {
    Function OnTouch(e) {
        var req = ^.session.CreateRequest("Download2", "/test/prog1");
        req.AddParam("code", "0452");
        req.AddParam("name", "biz");
        ^.session.Post(req);
    }
}

関連項目

CreateRequestメソッド

SessionEndイベント

HttpRequestクラス


HttpAsyncSession.RemoveCookieメソッド

説明

AddCookieメソッドで追加したクッキー情報を削除します。

指定したnameとpathが一致するクッキー情報を削除します。

呼出形式

session.RemoveCookie( name [, path] )

戻り値

なし

引数

String name

クッキーの名前

String path

クッキーの削除対象となるURL

AddCookieメソッドでpathを省略したクッキー情報を削除する場合、RemoveCookieメソッドでもpathを省略します。

使用例

HTTP-11

不正なヘッダ情報です

使用例

HttpAsyncSession session {
    Function OnSessionEnd(e) {
        if (e.id == "Download1") {
            if (e.status != $HTTP_OK) {
                //.MessageBox("通信エラー:" + str(e.status), "ERROR", $OK);
            }
        }
    }
}
Button btnAddCookie {
    Function OnTouch(e) {
        ^.session.AddCookie("name1", "value1", "/sample.txt");
    }
}
Button btnRemoveCookie {
    Function OnTouch(e) {
        ^.session.RemoveCookie("name1", "/sample.txt");
    }
}
Button btnDownload {
    Function OnTouch(e) {
        /* RemoveCookieメソッド呼び出し後は、name1のクッキーは追加されません */
        ^.session.Get("Download1", "/sample1");
    }
}

関連項目

AddCookieメソッド


HttpAsyncSessionイベント

API version 4

イベント

iOSAndroidWindows

HttpAsyncSessionクラスには以下のイベントが定義されています。

API | 名前 | 説明
4 | SessionEnd | 通信の終了後に発生します

クラス概要

基本クラスのイベント


HttpAsyncSession.SessionEndイベント

通信の１つが終了するたびに発生します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
String | id | Get、Post、CreateRequestメソッドで指定したIDです。 このIDによりどの通信が終了したか判断します。
Number | status | 通信が正常終了した場合HTTPステータスコードです。 通信が異常終了した場合statusは0になります。
HttpResponse | response | 通信結果のHttpResponseオブジェクトを保持しています。 通信の異常終了時このresponseは無効になります。
String | message | 通信の異常終了時のエラーメッセージを保持します。 正常終了時は空です。

HttpAsyncSessionオブジェクトが消滅し、接続が強制終了した場合このイベントは発生しません。


HttpRequestクラス

Object
 | HttpRequest

HTTPリクエストを保持するクラスです。

HttpRequestはHttpSession.CreateRequestメソッドにより作成します。

デフォルトプロパティとValueType

デフォルトプロパティはURLです。ValueTypeの指定は無効です。


HttpRequestプロパティ

API version 4

プロパティ

iOSAndroidWindows

HttpRequestクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | Timeout | CRW | integer | 0 | リクエスト固有のタイムアウト値を指定
4 | URL | R | String |  | リクエストのURLを表します

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


HttpRequest.Timeoutプロパティ

リクエスト固有のタイムアウト値を秒数で指定します。

初期値は、Root.HttpTimeoutプロパティ（//.HttpTimeout）の指定値となります。//.HttpTimeoutでの設定がない場合、または、本指定値に0を指定した場合は、OSの標準タイムアウト時間となります。

使用例

var session = getHttpSession();
var req = session.CreateRequest("xxx.jsp");
req.Timeout = 180; /* この通信のタイムアウト3分 */
try {
    res = session.Post(req);
} catch (exp) {
}

通信リクエスト固有のタイムアウト設定は、HttpReqestクラスによる指定となるため、これを使わない通信では、固有のタイムアウトを設定することはできません。常に//.HttpTimeoutでの設定値が有効となります。

※OSの標準タイムアウト値に関しては、OSの仕様に準じます。


HttpRequest.URLプロパティ

リクエストのURLを表します。HttpSession.CreateRequestメソッドで指定したURLが格納されます。

このプロパティは読み込み専用で変更することはできません。


HttpRequestメソッド

API version 4

メソッド

iOSAndroidWindows

HttpRequestクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | AddBody | リクエストのメッセージボディに文字列を追加します
4 | AddParam | リクエストパラメータを追加します
21 | SetBodyFile | リクエストのメッセージボディにファイルを設定します
4 | SetHeader | リクエストのHTTPヘッダを設定します
4 | WriteString | リクエストのメッセージボディに文字列を追加します

クラス概要

基本クラスのメソッド


HttpRequest.AddBodyメソッド

説明

リクエストのメッセージボディに文字列を追加します。

追加した内容はGET、POST、もしくはDELETEに関わり無くメッセージボディにapplication/x-www-form-urlencoded形式とみなして付加されます。必要な場合には、AddBodyメソッドに渡す文字列は事前にエンコードしてください。

また、このメソッドではContent-Typeは自動的に指定されません。HTTPリクエストボディにデータを追加する場合はContent-Typeを明示的に指定してください。

また、WriteStringメソッド、AddBodyメソッドを混在または繰返し実行した場合、実行順序に従い単純結合され、AddParamメソッドで指定した内容の前に’&’で結合されます。

呼出形式

req.AddBody( body )

戻り値

なし

引数

String body

メッセージボディに追加する文字列

例外

HTTP-8

httpRequestオブジェクトが異常です

使用例

var session = findHTTPSession("http://biz-browser.jp");
var req = session.CreateRequest("/test/prog1");
req.AddBody("code=0452&name=Biz");
var res = session.Post(req);

関連項目

AddParam、WriteStringメソッド

HttpSessionクラス

encodeURL関数


HttpRequest.AddParamメソッド

説明

リクエストパラメータを追加します。パラメータで指定する名前と値は、必要に応じて自動的にエンコードされます。

このパラメータはGET、POST、あるいはDELETEに関わり無くメッセージボディにapplication/x-www-form-urlencoded形式にエンコードされ付加されます。

Content-Typeを指定しない場合、Content-Typeはapplication/x-www-form-urlencodedとなります。

また、WriteStringメソッド、AddBodyメソッドにより書き込む内容はAddParamメソッドで指定した内容の前に’&’により結合されます。

呼出形式

req.AddParam( name, value )

戻り値

なし

引数

String name

パラメータの名前を指定します

String value

パラメータの値を指定します

例外

HTTP-8

httpRequestオブジェクトが異常です

使用例

var session = findHTTPSession("http://biz-browser.jp");
var req = session.CreateRequest("/test/prog1");
req.AddParam("code", "0452");
req.AddParam("name", "Biz");
var res = session.Post(req);

関連項目

AddBody、WriteStringメソッド、

HttpSessionクラス


HttpRequest.SetBodyFileメソッド

説明

リクエストのメッセージボディにファイルを設定します。

サイズが大きいためにHttpSession.Putメソッドで扱うことができないファイルをアップロードする際に使用します。

また、このメソッドではContent-Typeは自動的に指定されません。HTTPリクエストボディにデータを追加する場合はContent-Typeを明示的に指定してください。

AddBodyメソッドやWriteStringメソッドが呼ばれた場合、このメソッドの指定値は無視されます。

呼出形式

req.SetBodyFile( fs , path )

戻り値

なし

引数

FileSystem fs

参照するFileSystemオブジェクト

String path

ファイルのパス

fsで指定したファイルシステムのルートフォルダを基点とした相対パスを指定します。

例外

なし

使用例

var session = findHTTPSession("http://biz-browser.jp");
var req = session.CreateRequest("/test/prog1");
var fs = new FileSystem;
req.SetBodyFile(fs, "large_movie.mp4");
var res = session.Put(req);

関連項目

AddBody、WriteStringメソッド


HttpRequest.SetHeaderメソッド

説明

リクエストのHTTPヘッダを設定します。

既に同じ名前のヘッダが存在する場合、新しい内容で変更されます。

HTTPプロトコルで規定されるヘッダは自動的に設定されます。SetHeaderメソッドは、特別に必要なヘッダを付加する場合に使用してください。

呼出形式

req.SetHeader( name, value )

戻り値

なし

引数

String name

ヘッダの名前

HTTP/1.1で定められているヘッダ名の仕様範囲で指定できます。

String value

ヘッダの値

HTTP/1.1で定められているヘッダ値の仕様範囲で指定できます。但し、空文字列を指定することはできません。

例外

HTTP-8

httpRequestオブジェクトが異常です

HTTP-11

不正なヘッダ情報です

使用例

var session = findHTTPSession("http://biz-browser.jp");
var req = session.CreateRequest("/test/prog1");
req.AddBody("code=0452&name=Biz");
req.SetHeader("appHeader","1");
var res = session.Post(req);

関連項目

HttpSessionクラス


HttpRequest.WriteStringメソッド

説明

リクエストのメッセージボディに文字列を追加します。

AddBodyメソッドと同じ動作を行いますが、エラーの有無を戻り値で識別することができます。

呼出形式

var result = req.WriteString( body )

戻り値

正常に書き込めた場合は$TRUE、エラーの場合は$FALSEを返します。

引数

String body

メッセージボディに追加する文字列

例外

HTTP-8

httpRequestオブジェクトが異常です

使用例

var session = findHTTPSession("http://biz-browser.jp");
var req = session.CreateRequest("/test/prog1");
if (req.WriteString("code=0452&name=Biz")) {
    var res = session.Post(req);
}

関連項目

AddBodyメソッド

HttpSessionクラス


HttpRequestイベント

API version 4

イベント

iOSAndroidWindows

HttpRequestクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


HttpResponseクラス

Object
 | HttpResponse

HTTPレスポンスを保持するクラスです。

HttpResponseオブジェクトはHttpSession.GetメソッドまたはHttpSession.Postメソッドの戻り値として取得します。

通信過程で発生したエラーの内、HTTPレイヤーで発生したエラーは、HttpResponseオブジェクトのStatusプロパティで識別します。HttpSession.Get、Postメソッドの結果としてHttpResponseオブジェクトを受け取れた場合でも通信が正常に完了していないことがあることに注意してください。

また、Statusプロパティが$HTTP_NOT_FOUNDなど、エラーを示している場合でも、BodyプロパティにはWEBサーバが返したエラーメッセージを含むHTMLなど、データとして無意味な値が格納されていることがあります。

デフォルトプロパティとValueType

デフォルトプロパティはBodyです。ValueTypeの指定は無効です。


HttpResponseプロパティ

API version 4

プロパティ

iOSAndroidWindows

HttpResponseクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Body | R | ByteArray | レスポンスのメッセージボディ
4 | Status | R | integer | レスポンスのHTTPステータスコード
4 | URL | R | String | レスポンスのURL

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


HttpResponse.Bodyプロパティ

レスポンスのメッセージボディを表します。

このプロパティは読み込み専用で変更することはできません。


HttpResponse.Statusプロパティ

レスポンスのHTTPステータスコードを表します。ステータスは200の場合が正常です。代表的なステータスコードは以下の定数で定義されています。

ステータスコード | 定数 | 説明
200 | $HTTP_OK | 正常
201 | $HTTP_CREATED | 正常 作成されました
202 | $HTTP_ACCEPTED | 正常 受け付けました
204 | $HTTP_NO_CONTENTS | 正常 応答はありません
400 | $HTTP_BAD_REQUEST | エラー リクエストが不正
401 | $HTTP_UNAUTHORIZED | エラー 認可されていません
403 | $HTTP_FORBIDDEN | エラー 禁止されています
404 | $HTTP_NOT_FOUND | エラー 対象はありません
405 | $HTTP_METHOD_NOT_ALLOW | エラー 許可されません
500 | $HTTP_SERVER_ERROR | エラー サーバのエラー
501 | $HTTP_NOT_IMPLEMENTED | エラー 未実装の機能
502 | $HTTP_BAD_GATEWAY | エラー ゲートウェイが不正
503 | $HTTP_SERVER_UNAVAILABLE | エラー サーバ利用不可
505 | $HTTP_VERSION_NOT_SUPPORTED | エラー HTTPバージョン未対応

その他のコードや詳細情報はWorld Wide Web Consortium (W3C) のホームページを参照してください。

このプロパティは読み込み専用で変更することはできません。


HttpResponse.URLプロパティ

レスポンスのURLを表します。リクエストと同じURLが格納されます。

このプロパティは読み込み専用で変更することはできません。


HttpResponseメソッド

API version 4

メソッド

iOSAndroidWindows

HttpResponseクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | GetHeader | レスポンスメッセージのHTTPヘッダを取り出します
4 | GetHeaderList | レスポンスメッセージのすべてのHTTPヘッダを取得します
4 | Read | リクエストのメッセージボディ全体を取り出します
4 | ReadBinary | リクエストのメッセージボディ全体をByteArrayで取り出します
4 | ReadLine | リクエストのメッセージボディから1行取り出します

クラス概要

基本クラスのメソッド


HttpResponse.GetHeaderメソッド

説明

レスポンスメッセージのHTTPヘッダを取り出します。

指定したヘッダが存在しない場合、nullを返します。

呼出形式

var str = res.GetHeader( name )

戻り値

ヘッダの値を示すStringを返します。

引数

String name

取得するヘッダの名前

例外

HTTP-9

httpResponseオブジェクトが異常です

使用例

var session = findHTTPSession("http://biz-browser.jp");
var res = session.Get("/test/prog1");
var len = val(res.GetHeader("Content-Length"));

関連項目

GetHeaderListメソッド

HttpRequest.SetHeaderメソッド

HttpSessionクラス


HttpResponse.GetHeaderListメソッド

説明

レスポンスメッセージのすべてのHTTPヘッダを取得します。

呼出形式

var list = res.GetHeaderList( )

戻り値

以下の子オブジェクトを持つRecordオブジェクトの配列

型 | 名前 | 説明
String | headerName | ヘッダの名前
String | headerValue | ヘッダの値

引数

なし

例外

HTTP-9

httpResponseオブジェクトが異常です

使用例

var session = findHTTPSession("http://biz-browser.jp");
var res = session.Get("/test/prog1");
var list = res.GetHeaderList();
for (var n in list) {
    print("name=", list[n].headerName);
    print("value=", list[n].headerValue, "\n");
}

関連項目

GetHeaderメソッド

HttpSessionクラス


HttpResponse.Readメソッド

説明

リクエストのメッセージボディ全体を取り出します。

呼出形式

var body = res.Read( )

戻り値

メッセージボディを格納したStringオブジェクト。

メッセージ中の改行などは加工されず、サーバから受け取った内容がそのまま返されます。

引数

なし

例外

HTTP-9

httpResponseオブジェクトが異常です

使用例

var session = findHTTPSession("http://biz-browser.jp");
var res = session.Get("/test/prog1");
var body = res.Read();
print(body);

関連項目

ReadBinary、ReadLineメソッド

HttpSessionクラス


HttpResponse.ReadBinaryメソッド

説明

リクエストのメッセージボディ全体をバイナリ形式で取り出します。

呼出形式

var body = res.ReadBinary( )

戻り値

メッセージボディを格納したByteArrayオブジェクト。

引数

なし

例外

HTTP-9

httpResponseオブジェクトが異常です

使用例

var session = findHTTPSession("http://biz-browser.jp");
var res = session.Get("/test/prog1");
var body = res.ReadBinary();

関連項目

Read、ReadLineメソッド

ByteArray、HttpSessionクラス


HttpResponse.ReadLineメソッド

説明

リクエストのメッセージボディから1行取り出します。

次のReadLineメソッドの呼び出しで次の行から読み出すことができます。

呼出形式

var line = res.ReadLine( )

戻り値

1行を格納したStringオブジェクト。行末の改行文字は含みません。

これ以上行がない場合、nullを返します。

引数

なし

例外

HTTP-9

httpResponseオブジェクトが異常です

使用例

var session = findHTTPSession("http://biz-browser.jp");
var res = session.Get("/test/prog1");
var line;
while((line = res.ReadLine()) != null) {
    print(line, "\n");
}

関連項目

Read、ReadBinaryメソッド

HttpSessionクラス


HttpResponseイベント

API version 4

イベント

iOSAndroidWindows

HttpResponseクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


HttpSessionクラス

Object
 | HttpSession

HTTPのセッション情報を保持するクラスです。WEBサーバとの接続を管理します。

このクラスはhttp,https,fileの各プロトコルをサポートし、ログイン時やForm.Getメソッドなどで、暗黙のうちに生成、使用されます。また、直接HttpSessionクラスやHttpRequestクラスを利用してより高度な通信を行うことも可能です。

Biz/BrowserはHttpSessionクラスのオブジェクトを接続先ごとに複数維持しています。同一の接続先に対する通信ではすでに維持されているHttpSessionオブジェクトが再利用されます。

HttpSessionオブジェクトは、スタティックメソッドGetSessionまたはFindSession、グローバル関数getHttpSessionまたはfindHttpSessionで取得することができます。

デフォルトプロパティとValueType

デフォルトプロパティはServerです。ValueTypeの指定は無効です。


HttpSessionプロパティ

API version 4

プロパティ

iOSAndroidWindows

HttpSessionクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
4 | LastURL | R | String |  | 最後に通信したURL
4 | Protocol | R | String |  | 現在の接続で利用しているプロトコル
16 | PreventMultipleURLEncoding | CRW | boolean | $TRUE | URLエンコードが2重で行われることを防ぐかどうか
4 | Proxy | R | String |  | セッションが利用しているプロキシサーバ
4 | Server | R | String |  | 接続しているサーバ

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


HttpSession.LastURLプロパティ

このセッションを利用して最後に通信したURLを表します。

このプロパティは読み込み専用で変更することはできません。


HttpSession.Protocolプロパティ

現在の接続で利用しているプロトコルを表します。"http"、"https"、"file"のどれかとなります。

このプロパティは読み込み専用で変更することはできません。


HttpSession.PreventMultipleURLEncodingプロパティ

Getメソッド、CreateRequestメソッドで、URLエンコードが二重に行われるのを防ぐかどうかを設定します。

PreventMultipleURLEncodingプロパティを$FALSEにし、上記メソッドにURLエンコード済みの文字列を指定すると、指定した文字列をさらにURLエンコードします。


HttpSession.Proxyプロパティ

現在セッションが利用しているプロキシサーバを表します。

このプロパティは読み込み専用で変更することはできません。


HttpSession.Serverプロパティ

現在接続しているサーバを表します。http://biz-browser.jp:82/biz/menu.crsを要求した場合、Serverプロパティは"biz-browser.jp:82"となります。

このプロパティは読み込み専用で変更することはできません。


HttpSessionメソッド

API version 4

メソッド

iOSAndroidWindows

HttpSessionクラスには以下のメソッドが定義されています。

API | 名前 | 説明
24 | AddCookie | クライアント側からのクッキーを設定します
4 | CreateRequest | HttpRequestオブジェクトを生成します
4 | Dele | サーバー上のファイルを削除します
4 | Get | GETリクエストをサーバへ送信します
4 | GetCookie | クッキーを検索します
4 | IsLoginSession | ログインセッションか確認します
4 | Post | POSTリクエストをサーバへ送信します
4 | Put | サーバー上にファイルを作成します
24 | RemoveCookie | AddCookieメソッドで追加したクッキーを削除します

スタティックメソッド

API | 名前 | 説明
4 | FindSession | 指定したURLに対応するHttpSessionオブジェクトを検索して返します
4 | GetSession | 実行中のCRSをダウンロードしたセッションをHttpSessionオブジェクトとして返します
4 | ToAbsoluteURL | 相対パスのURLを絶対パスに変換します

クラス概要

基本クラスのメソッド


HttpSession.AddCookieメソッド

説明

クライアント側からのクッキーを追加します。

CreateRequestメソッド、Getメソッド等で指定するURLとAddCookieメソッドで指定するpathが一致する場合のみ、クッキーをリクエストヘッダに追加します。

pathを省略した場合、URLに関わらずクッキーを追加します。

nameとvalueが既に追加済みのクッキーと一致する場合、追加済みのvalueを更新します。

呼出形式

session.AddCookie( name, value [, path])

戻り値

なし

引数

String name

クッキーの名前

String value

クッキーの値

String path

クッキーの追加対象となるURL

省略した場合、CreateRequestメソッド、Getメソッド等で指定するURLに関わらずクッキーを追加します。

例外

HTTP-11

不正なヘッダ情報です

使用例

var session = HttpSession.GetSession();
session.AddCookie("name1", "value1", "/sample.txt");
session.AddCookie("name2", "value2", "/sample2.txt");
session.AddCookie("name3", "value3");

/* Getメソッドで指定するURLとAddCookieメソッドで指定したpathが一致するname1, value1と */
/* AddCookieメソッドでpathを省略したname3, value3がクッキーとして追加される */
var res = session.Get("/sample.txt");
print(res.body);

関連項目

RemoveCookieメソッド


HttpSession.CreateRequestメソッド

API version 4

HttpSession.CreateRequestメソッド 変更履歴

iOSAndroidWindows

説明

現在の接続を利用する新しいリクエストを作成します。作成したリクエストは、リクエストパラメータなどのプロパティ設定を行った後、PostまたはGetメソッドによりサーバへ送信します。

HttpRequestオブジェクトは１回だけ通信を行うことができます。複数の通信を行う場合、それぞれCreateRequestメソッドにより別々のHttpRequestオブジェクトを作成してください。

HttpSessionオブジェクトとHttpRequestオブジェクトは密接に関連しています。HttpReuqestオブジェクトを作成したときのHttpSessionオブジェクト以外でGet、Postを行うことはできません。

リクエストパラメータが不要な場合、CreateRequestメソッドは使用せず、GetメソッドにURLを直接記述する形式を利用した方が効率的です。

呼出形式

var req = session.CreateRequest( URL [, enc ] )

戻り値

HttpRequestオブジェクトのリファレンスを返します。

引数

String URL

要求するURL。"/" から始まる絶対アドレスを指定します。プロトコルやサーバ、ポートも含めることができますが、Serverプロパティ、Protocolプロパティと一致している必要があります。

integer enc

POST要求を送信するときの、POSTパラメータのエンコード方法を指定します。 *1

指定できる値は下記のとおりです。省略した場合のデフォルト値はHttpSession.DEFAULT_ENCODEです。

定数 | 値 | 説明
HttpSession.DEFAULT_ENCODE | 0 | Mobile互換モードの指定に従います
HttpSession.UTF8_ENCODE | 1 | UTF-8にエンコードします

例外

HTTP-1

リクエストを生成できません

HTTP-2

URLは接続先と異なるサーバです

使用例

var session = findHTTPSession("http://biz-browser.jp");
var req = session.CreateRequest("/test/prog1");
req.AddParam("code", "0452");
req.AddParam("name", "Biz");
var res = session.Post(req);

関連項目

Protocol、Serverプロパティ

Get、Postメソッド

HttpRequest、HttpResponseクラス

変更履歴
*1　API version 24から仕様変更されました。


HttpSession.Deleメソッド

API version 4

HttpSession.Deleメソッド変更履歴

iOSAndroidWindows

説明

サーバー上のファイルを削除します。

内部的にHTTP1.1のDELETEメソッドを使用します。サーバー側の設定でDELETEメソッドの使用を許可する必要があります。

サーバー側で何らかのアクションが発生した場合そのステータスコードを戻します。

サーバーへの通信が成立しない場合0を戻します。

HttpRequest.AddBodyメソッドやHttpRequest.AddParamメソッドにより、リクエストボディを追加することができます。*2

呼出形式

var result = session.Dele( uri )

または

var result = session.Dele( req )*1

戻り値

HTTPステータスコード(引数にURIを指定した場合)

または

HttpResponseオブジェクトのリファレンス(引数にHttpRequestオブジェクトを指定した場合)*1

を返します。

引数

String uri

要求するURI。"/" から始まる絶対アドレスで指定します。プロトコルやサーバ、ポートも含めることができますが、Serverプロパティ、Protocolプロパティと一致している必要があります。

HttpRequest req

要求リクエストを示す、HttpRequestオブジェクト。CreateRequestメソッドで作成します。

例外

HTTP-3

リクエストを送信できません

HTTP-5

指定のリクエストURLはコネクション先と異なります

HTTP-6

リクエストがエラー終了しました

使用例

var session = getHttpSession();
var res = session.Dele("/upload/file.txt");

関連項目

Putメソッド

変更履歴
*1　API version 6から追加されました。
*2　API version 26から仕様変更されました。


HttpSession.Getメソッド

説明

接続先のサーバへGETリクエストを送信し、結果をHttpResponseオブジェクトのリファレンスで受け取ります。

HTTPレイヤーの実行結果は、戻り値で返されるHttpResponseオブジェクトのStatusプロパティで確認します。

Android版
Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、OSに対してユーザー操作で許可をとる必要があります。
詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

var res = session.Get( URL )

または

var res = session.Get( req )

戻り値

HttpResponseオブジェクトのリファレンスを返します。

引数

String URL

要求するURL。"/" から始まる絶対アドレスで指定します。プロトコルやサーバ、ポートも含めることができますが、Serverプロパティ、Protocolプロパティと一致している必要があります。

?で始まる検索文字列を指定する場合、HTTPの仕様に従い、自動的に特殊文字はエンコードされます。

HttpRequest req

要求リクエストを示す、HttpRequestオブジェクト。CreateRequestメソッドで作成します。

例外

HTTP-2

指定のhttpRequestはコネクション先が異なります

HTTP-3

リクエストを送信できません

HTTP-4

GETまたはPOSTに指定のリクエストオブジェクトは不正です

HTTP-5

指定のリクエストURLはコネクション先と異なります

HTTP-6

リクエストがエラー終了しました

使用例

var session = findHTTPSession("http://biz-browser.jp");
var res = session.Get("/test/prog1?code=1283&name=Biz");
if (res.Status != $HTTP_OK) {
    MessageBox("通信エラー:" + str(res.Status), "ERROR", $OK);
    return;
}

関連項目

Protocol、Serverプロパティ

CreateRequestメソッド

HttpRequest、HttpResponseクラス

encodeURL関数


HttpSession.GetCookieメソッド

説明

セッションに記録されているcookieを取得します。

cookieの記録はこのセッションを使った通信の都度、応答レスポンスに含まれるcookieを追記記録します。

呼出形式

var res = session.GetCookie( [ id ] )

戻り値

idを指定した場合には、クッキーの値を文字列で返します。

idを指定しない場合には、以下の子オブジェクトを持つRecodeオブジェクトの配列を返します。

型 | 名前 | 説明
String | cookieId | cookieの名前
String | cookieValue | cookieの値

cookieが何も記録されていない場合、Record配列の要素は0個となります。

引数

String id

取得するcookieの名前を指定します。

例外

HTTP-7

httpSessionオブジェクトが異常です

使用例

var session = findHTTPSession("http://biz-browser.jp");
var req = session.CreateRequest("/test/prog1");
req.AddParam("code", "0452");
req.AddParam("name", "Biz");
var res = session.Post(req);
var cookie = session.GetCookie();
for (var i in cookie) {
    print("id=", cookie[i].cookieId, "\n");
    print("value=", cookie[i].cookieValue, "\n");
}

関連項目

HttpRequest、HttpResponseクラス


HttpSession.IsLoginSessionメソッド

説明

セッションがLoginメソッドにより開始されたか調べます。

getHttpSession関数により取得したHttpSessionオブジェクトに対して、IsLoginSessionメソッドを呼び出すことで、そのCRSをロードしたセッションがLoginメソッドにより開始されたか、それともGetメソッドにより開始されたか知ることができます。

Getメソッドにより開始されたセッションの場合、他のサーバやローカルファイルからロードされたCRSが同時に実行されている可能性があり、それらのCRSプログラムにより、アプリケーションの内部データを意図しない形で処理される可能性があります。

このような状況を抑止するために、アプリケーションがLoginメソッドよって開始されたセッションでロードされているか調べることができます。

呼出形式

var res = session.IsLoginSession( [ SingleLogin ] )

戻り値

sessionオブジェクトがLoginメソッドまたはSLoginメソッドにより開始されたセッションの場合は$TRUE、それ以外は$FALSEを返します。

引数

boolean SingleLogin

$TRUEを指定した場合、SLoginメソッドにより開始されたセッションの場合のみ$TRUEを返します。

それ以外の場合はLoginメソッドまたはSLoginメソッドにより開始されたセッションのときに$TRUEを返します。

例外

なし

使用例

var session = getHttpSession();
if (session.IsLoginSession()) {
    Get("main.crs");
} else {
    Login("http://servser/main.crs");
}

関連項目

Root.Login、Root.SLoginメソッド

NetObject.Getメソッド

getHttpSession関数


HttpSession.Postメソッド

説明

接続先のサーバへPOSTリクエストを送信し、結果をHttpResponseオブジェクトのリファレンスで受け取ります。

リクエストに含めるリクエストパラメータは、HttpRequest.AddParamメソッドで設定します。

HTTPレイヤーの実行結果は、戻り値で返されるHttpResponseオブジェクトのStatusプロパティで確認します。

呼出形式

var res = session.Post( req )

戻り値

HttpResponseオブジェクトのリファレンスを返します。

引数

HttpRequest req

要求リクエストを示す、HttpRequestオブジェクト。CreateRequestメソッドで作成します。

例外

HTTP-2

指定のhttpRequestはコネクション先が異なります

HTTP-3

リクエストを送信できません

HTTP-4

GETまたはPOSTに指定のリクエストオブジェクトは不正です

HTTP-5

指定のリクエストURLはコネクション先と異なります

HTTP-6

リクエストがエラー終了しました

使用例

var session = findHTTPSession("http://biz-browser.jp");
var req = session.CreateRequest("/test/prog1");
req.AddParam("code", "0452");
req.AddParam("name", "Biz");
var res = session.Post(req);
if (res.Status != $HTTP_OK) {
    MessageBox("通信エラー:" + str(res.Status), "ERROR", $OK);
    return;
}

関連項目

CreateRequestメソッド

HttpRequest、HttpResponseクラス


HttpSession.Putメソッド

API version 4

HttpSession.Putメソッド変更履歴

iOSAndroidWindows

説明

サーバー上にファイルを作成します。

内部的にHTTP1.1のPUTメソッドを使用します。サーバー側の設定でPUTメソッドの使用を許可する必要があります。

すでにファイルが存在する場合の振る舞いはサーバーの実装に依存します。

サーバー側で何らかのアクションが発生した場合そのステータスコードを戻します。

呼出形式

var result = session.Put( uri, obj )

または

var result = session.Put( req )*1

戻り値

HTTPステータスコード(引数にURIを指定した場合)

または

HttpResponseオブジェクトのリファレンス(引数にHttpRequestオブジェクトを指定した場合)*1

を返します。

引数

String uri

要求するURI。"/" から始まる絶対アドレスで指定します。プロトコルやサーバ、ポートも含めることができますが、Serverプロパティ、Protocolプロパティと一致している必要があります。

String obj

Object obj

ファイルデータをStringオブジェクトまたはReaderオブジェクトで指定します。

HttpRequest req

要求リクエストを示す、HttpRequestオブジェクト。CreateRequestメソッドで作成します。

例外

HTTP-3

リクエストを送信できません

HTTP-5

指定のリクエストURLはコネクション先と異なります

HTTP-6

リクエストがエラー終了しました

EXT-7

無効なリファレンスです

EXT-11

Readメソッドが見つかりません

使用例

var session = getHttpSession();
var res = session.Put("/upload/file.txt", "test");

関連項目

Deleメソッド

変更履歴
*1　API version 6から追加されました。


HttpSession.RemoveCookieメソッド

説明

AddCookieメソッドで追加したクッキー情報を削除します。

指定したnameとpathが一致するクッキー情報を削除します。

呼出形式

session.RemoveCookie( name [, path] )

戻り値

なし

引数

String name

クッキーの名前

String path

クッキーの削除対象となるURL

AddCookieメソッドでpathを省略したクッキー情報を削除する場合、RemoveCookieメソッドでもpathを省略します。

使用例

HTTP-11

不正なヘッダ情報です

使用例

var session = HttpSession.GetSession();
session.AddCookie("name1", "value1", "/sample.txt");
session.RemoveCookie("name1", "/sample.txt");

/* name1のクッキーは追加されません */
var res = session.Get("/sample.txt");
print(res.body);

関連項目

AddCookieメソッド


HttpSession.FindSessionメソッド

説明

指定したURLに対応するHttpSessionオブジェクトを検索して返します。

もし、対応するHttpSessionがみつからない場合、新しくHttpSessionが生成されます。

呼出形式

var session = HttpSession.FindSession( URL )

戻り値

HttpSessionオブジェクト

引数

String URL

検索するURLを指定します。Biz/Browserが保持しているセッションのうち指定したURLのプロトコル、ホスト名とポート番号が完全に一致するセッションが検索されます。

例外

なし

使用例

var session = HttpSession.FindSession("http://biz-browser.jp");
var res = session.Get("/sample.txt");
print(res.body);

関連項目

GetSessionメソッド

HttpSession、HttpRequest、HttpResponseクラス


HttpSession.GetSessionメソッド

説明

実行中のCRSをダウンロードしたセッションをHttpSessionオブジェクトとして返します。

呼出形式

var session = HttpSession.GetSession( )

戻り値

HttpSessionオブジェクト

引数

なし

例外

なし

使用例

var session = HttpSession.GetSession();
var res = session.Get("/sample.txt");
print(res.body);

関連項目

FindSessionメソッド

HttpSession、HttpRequest、HttpResponseクラス


HttpSession.ToAbsoluteURLメソッド

説明

相対パスのURLを絶対パスに変換します。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

呼出形式

var abs = HttpSession.ToAbsoluteURL( path [, base ] )

戻り値

絶対パスに変換されたURLを返します。

引数

String path

変換するURLを指定します。http:、https:、file:から始まる絶対パスのURLはそのまま返します。

String base

相対パスの基点となるパスを指定します。

省略した場合、ToAbsoluteURLメソッドを呼び出したCRSのURLが基点となります。

例外

なし

使用例

var abs_path = HttpSession.ToAbsoluteURL("data.xml");
var session = getHttpSession();
var res = session.Get(abs_path);

関連項目


HttpSessionイベント

API version 4

イベント

iOSAndroidWindows

HttpSessionクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


WebSocketクラス

Object
 | WebSocket

WebSocketクライアントとして双方向通信を行うためのクラスです。

WS/WSSプロトコル通信、Basic認証、Digest認証、およびクライアント証明書による認証に対応しています。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。


WebSocketプロパティ

API version 20

プロパティ

iOSAndroidWindows

WebSocketクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
20 | IsConnected | R | boolean |  | WebSocketが接続中かどうか
20 | Port | R | integer |  | 接続先のポート番号
20 | Timeout | CRW | integer | 0 | Read、ReadLineメソッドのタイムアウト値
20 | Host | R | String |  | 接続先のホスト、もしくはIPアドレス
20 | Value | CRW | String Number Fixed Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


WebSocket.IsConnectedプロパティ

WebSocketが接続済みの場合は$TRUE、そうではない場合は$FALSEとなります。

このプロパティは読み込み専用で変更することはできません。


WebSocket.Portプロパティ

WebSocketクライアントが接続しているポート番号が格納されます。

このプロパティは読取専用で変更することはできません。


WebSocket.Timeoutプロパティ

Read、ReadLineメソッドのタイムアウト時間を秒単位で指定します。

デフォルトは0(受信待ちをしない)です。


WebSocket.Hostプロパティ

接続先のホスト、もしくはIPアドレスが格納されます。

このプロパティは読み込み専用で変更することはできません。


WebSocket.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


WebSocketメソッド

API version 20

メソッド

iOSAndroidWindows

WebSocketクラスには以下のメソッドが定義されています。

API | 名前 | 説明
20 | Close | サーバーとの接続を切断し、WebSocketを閉じます
20 | GetResponseHeader | Openメソッドによる接続のレスポンスヘッダを取得します
20 | GetResponseHeaderList | Openメソッドによる接続のレスポンスヘッダのリストを取得します
20 | GetHTTPStatusCode | Openメソッドによる接続のHTTPステータスコードを取得します
20 | Open | サーバーとの接続を行い、WebSocketを開きます
20 | Read | WebSocketからデータを読み込みます
20 | ReadLine | WebSocketから1行分の文字列データを読み込みます
20 | Write | WebSocketにデータを書き込みます
20 | WriteString | WebSocketに文字列データを書き込みます

クラス概要

基本クラスのメソッド


WebSocket.Closeメソッド

説明

サーバーとの接続を切断し、WebSocketを閉じます。

Openメソッド等で開いたソケットは、読み込み、書き込みが終わったら必ず閉じてください。

呼出形式

websock.Close()

戻り値

なし

引数

なし

例外

HTTP-71

ソケットは開いていません

使用例

var websock = new WebSocket;
websock.Open("wss://sample.com", 8000);
websock.WriteString("hello");
websock.Close();

関連項目

Openメソッド


WebSocket.GetResponseHeaderメソッド

説明

Openメソッドによる接続で、サーバーから受信したレスポンスヘッダを取得します。

呼出形式

var value = websock.GetResponseHeader( name )

戻り値

nameで指定したヘッダ名の値の文字列が返ります。

引数

String name

値を取得するヘッダ名

例外

なし

使用例

var websock = new WebSocket;
websock.Open("wss://sample.com", 8000);
print(websock.GetResponseHeader("Connection"),"\n");

関連項目

GetResponseHeaderList、GetHTTPStatusCodeメソッド


WebSocket.GetResponseHeaderListメソッド

説明

Openメソッドによる接続でサーバーから受信したレスポンスヘッダを

配列として取得します。

呼出形式

var headers = websock.GetResponseHeaderList( )

戻り値

以下の子オブジェクトを持つRecordの配列が返ります。

型 | 名前 | 説明
String | headerName | ヘッダの名前
String | headerValue | ヘッダの値

引数

なし

例外

なし

使用例

var websock = new WebSocket;
websock.Open("wss://sample.com", 8000);
var headers = websock.GetResponseHeaderList();
for (var n in headers) {
 print(headers[n].headerName, ":", headers[n].headerValue,"\n");
}

関連項目

GetResponseHeader、GetHTTPStatusCodeメソッド


WebSocket.GetHTTPStatusCodeメソッド

説明

Openメソッドによる接続時のステータスコードを取得します。

呼出形式

var statusCode = websock.GetHTTPStatusCode( )

戻り値

HTTPのステータスコードが返ります。

引数

なし

例外

なし

使用例

var websock = new WebSocket;
websock.Open("wss://sample.com", 8000);
var statusCode = websock.GetHTTPStatusCode();
print("Status Code:", str(statusCode),"\n");

関連項目

GetResponseHeader、GetResponseHeaderListメソッド


WebSocket.Openメソッド

説明

WebSocketサーバーに接続します。

呼出形式

websock.Open( url[, port ])

戻り値

なし

引数

String url

WebSocketサーバーのURL

integer port

ポート番号

1から65535の範囲で指定します。

指定しない場合、接続先がwssの場合は443、wsの場合は80となります。

例外

HTTP-6

リクエストがエラー終了しました

HTTP-68

ソケットは既に開いています

使用例

var websock = new WebSocket;
websock.Open("wss://sample.com", 8000);
websock.WriteString("hello");
websock.Close();

関連項目

Closeメソッド


WebSocket.Readメソッド

説明

WebSocketからデータを読み込みます。

指定したサイズのデータを受信するかタイムアウトまで処理を戻しません。

呼出形式

var data= websock.Read( size )

戻り値

読み込んだデータを格納したByteArrayオブジェクト

引数

integer size

読み込むサイズ。バイト単位で指定します。

省略時、マイナス値は4096とみなします。

例外

HTTP-71

ソケットは開いていません

HTTP-72

読み込み操作を完了できませんでした

使用例

var websock = new Socket;
websock.Open("wss://sample.com", 8000);
while (true) {
    var data = websock.Read(256);
    if (data.Length <= 0) {
        break;
    }
    print(data);
    websock.Write(data);
}
websock.Close();

関連項目

ReadLine、Writeメソッド


WebSocket.ReadLineメソッド

説明

WebSocketから1行分の文字列データを読み込みます。

ソケットの現在の読み込み位置から、次の改行文字までの文字列データを読み込みます。

一行分受信するかタイムアウトまで処理を戻しません。タイムアウト以外のエラーでは例外が発生します。

呼出形式

var data = websock.ReadLine()

戻り値

読み込んだ文字列データをStringオブジェクトとして返します。

行末の改行文字は含まれません。データの終わりに達して、これ以上読み込めない場合は空文字列を返します。

引数

なし

例外

HTTP-71

ソケットは開いていません

HTTP-72

読み込み操作を完了できませんでした

使用例

var websock = new WebSocket;
websock.Open("wss://sample.com", 8000);
while (true) {
    var data = websock.ReadLine();
    if (data.length <= 0) {
        break;
    }
    print(data);
    websock.WriteString(data);
}
websock.Close();

関連項目

Read、WriteStringメソッド


WebSocket.Writeメソッド

説明

WebSocketへデータを書き込みます。

データの型に応じてバイトデータへ自動変換します。

呼出形式

websock.Write( data )

戻り値

なし

引数

ByteArray data

書き込むデータ

例外

HTTP-71

ソケットは開いていません

HTTP-73

書き込み操作を完了できませんでした

使用例

var websock = new Socket;
websock.Open("wss://sample.com", 8000);
while (true) {
    var data = websock.Read(256);
    if (data.Length <= 0) {
        break;
    }
    print(data);
    websock.Write(data);
}
websock.Close();

関連項目

WriteString、Readメソッド

データ型ごとの書き込み形式の違いについて

dataに指定する変数のデータ型によって、書き込まれる形式が以下のようになります。

データ型 | 例 | 説明
String | Write("abc") Write(new String("abc")); | 文字列データ 文字列データがUTF-8で書き込まれます。
integer | Write(10) | 整数値データ 4バイトの符号付き整数データとして書き込まれます。
boolean | Write(true) | bool値データ 4バイトの符号付き整数データとして書き込まれます。 trueならば1, falseならば0となります。
Number | Write(1.2) Write(new Number(10)) | 数値（浮動小数点）データ 8バイトの浮動小数点データとして書き込まれます。
Date | Write(new Date()) | 日付データ Valueプロパティの値が8バイトの浮動小数点データとして書き込まれます
ByteArray | Readメソッドで 読み込んだ結果など | バイナリデータ バイナリデータがそのまま書き込まれます。

常に文字列として書き込みたい場合は、WriteStringメソッドを使用してください。


WebSocket.WriteStringメソッド

説明

WebSocketに文字列データを書き込みます。
データを文字列に変換して送信します。

呼出形式

websock.WriteString( data )

戻り値

なし

引数

String data

書き込む文字列データ

例外

HTTP-71

ソケットは開いていません

HTTP-73

書き込み操作を完了できませんでした

使用例

var websock = new WebSocket;
websock.Open("wss://sample.com", 8000);
while (true) {
    var data = websock.ReadLine();
    if (data.length <= 0) {
        break;
    }
    print(data);
    websock.WriteString(data);
}
websock.Close();

関連項目

Write、ReadLineメソッド


WebSocketイベント

API version 20

イベント

iOSAndroidWindows

WebSocketクラスには以下のイベントが定義されています。

API | 名前 | 説明
20 | Receive | データが受信可能状態になったことを通知します

クラス概要

基本クラスのイベント


WebSocket.Receiveイベント

データが受信可能状態になった時発生するイベントです。


FTPパッケージ

FTPサーバと通信するためのパッケージです。

クラス

API | 名前 | 説明
14 | FtpSession | FTPのセッション情報を保持します


FtpSessionクラス

Object
 | FtpSession

FTPのセッション情報を保持するクラスです。FTPサーバとの接続を管理します。

このクラスはFTP(RFC 959)に準拠したFTPサーバをサポートします。

SFTP/FTPS/SCPのプロトコルには対応していませんのでご注意ください。

FtpSessionオブジェクトは、スタティックメソッドConnectで取得することができます。

FTPサーバによる挙動の違いについて

本クラスはFTPの最も普及している規格であるRFC 959に準拠したサーバへの接続を想定しています。

しかし、実際のFTPサーバの振る舞いは標準から大きく外れて拡張されていたりデフォルトの振る舞いが異なるなどの違いがあるため注意が必要です。

(例えばデフォルトの文字コードの違いやワイルドカードでヒットするパスの違い、コピーやリネーム時の振る舞いの違いなど)

本クラスを用いてFTPサーバと通信を行う場合は、ご利用になるFTPサーバアプリケーションの振る舞いをよくご確認ください。

デフォルトプロパティとValueType

デフォルトプロパティはServerです。ValueTypeの指定は無効です。


FtpSessionプロパティ

API version 14

プロパティ

iOSAndroidWindows

FtpSessionクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
14 | CurrentDir | R | String | 現在のカレントディレクトリ
14 | Server | R | String | 接続しているサーバ
14 | SystemName | R | String | サーバのシステム名(SYSTコマンド戻り値)

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FtpSession.CurrentDirプロパティ

現在のカレントディレクトリを表します。

カレントディレクトリを変更する場合、ChangeDirメソッドを用います。

このプロパティは読み込み専用で変更することはできません。


FtpSession.Serverプロパティ

現在接続しているFTPサーバを表します。

このプロパティは読み込み専用で変更することはできません。


FtpSession.SystemNameプロパティ

サーバのシステム名(SYSTコマンド戻り値)を表します。

このプロパティは読み込み専用で変更することはできません。


FtpSessionメソッド

API version 14

メソッド

iOSAndroidWindows

FtpSessionクラスには以下のメソッドが定義されています。

API | 名前 | 説明
14 | Close | FTPサーバとの接続を切断します
14 | ChangeDir | カレントディレクトリを変更します
14 | CreateDir | ディレクトリを作成します
14 | DeleteDir | ディレクトリを削除します
14 | DeleteFile | ファイルを削除します
14 | FindFiles | ディレクトリ内のファイルおよびディレクトリの一覧を指定します
14 | GetSize | ファイルサイズを取得します
14 | Get | ファイルをダウンロードします
14 | Put | ファイルをアップロードします
14 | Rename | ファイル名またはディレクトリ名を変更します
14 | SetEncoding | サーバとのやりとりに使用する文字コードを指定します

スタティックメソッド

API | 名前 | 説明
14 | Connect | FTPサーバへ接続します

クラス概要

基本クラスのメソッド


FtpSession.Closeメソッド

説明

FTPサーバとの接続を切断します。

呼出形式

var session = FtpSession.Close( )

戻り値

なし

引数

なし

例外

なし

使用例

var session = FtpSession.Connect("ftp://example.com/");
session.SetEncoding("Shift_JIS");
session.ChangeDir("/path/to/directory")
var received = new ByteArray();
session.Get("foo.txt", received);
session.Close();

関連項目

Connectメソッド


FtpSession.ChangeDirメソッド

説明

カレントディレクトリを変更します。

カレントディレクトリの変更に成功した場合、CurrentDirプロパティが新たなカレントディレクトリに更新されます。

呼出形式

session.ChangeDir( path )

戻り値

なし

引数

String path

新たなカレントディレクトリを示すパスを相対パスまたは絶対パスで指定します。

例外

FUNC-4

引数が不正です

FTP-2

FTPサーバに接続されていません

FTP-3

FTPサーバへのリクエストに失敗しました

使用例

var session = FtpSession.Connect("ftp://example.com/");
session.SetEncoding("Shift_JIS");
session.ChangeDir("/path/to/directory")
var received = new ByteArray();
session.Get("foo.txt", received);
session.Close();

関連項目

CurrentDirプロパティ


FtpSession.Connectメソッド

API version 14

FtpSession.Connectメソッド 変更履歴

iOSAndroidWindows

説明

FTPサーバへ接続します。

正常に接続された場合、接続済のFtpSessionオブジェクトを返します。

呼出形式

var session = FtpSession.Connect( hostname [, username [, password ]] )

戻り値

FtpSessionオブジェクトのリファレンスを返します。

引数

String hostname

接続先FTPサーバのURLを指定します。

ポート番号は"ホスト名:ポート番号"の形で指定します。 *1

ポート番号は1から65535の範囲で指定します。

String username

FTPサーバへの接続する際のユーザ名を指定します。

省略時は"anonymous"が指定されます。

String password

FTPサーバへの接続する際のパスワードを指定します。

省略時は"biz-browser@"が指定されます。

例外

FUNC-4

引数の値が不正です

FTP-1

FTPサーバへの接続に失敗しました

使用例

var session = FtpSession.Connect("ftp://example.com");
session.SetEncoding("Shift_JIS");
session.ChangeDir("/path/to/directory")
var received = new ByteArray();
session.Get("foo.txt", received);
session.Close();

関連項目

SystemName、Serverプロパティ

Close、Get、Put、SetEncodingメソッド

変更履歴
*1　API version 23から仕様変更されました。
    それ以前のバージョンでポート番号を指定すると、FUNC-4例外が発生します。


FtpSession.CreateDirメソッド

説明

ディレクトリを作成します。

呼出形式

session.CreateDir( path )

戻り値

なし

引数

String path

作成するディレクトリのパスを相対パスまたは絶対パスで指定します。

例外

FUNC-4

引数が不正です

FTP-2

FTPサーバに接続されていません

FTP-3

FTPサーバへのリクエストに失敗しました

使用例

var session = FtpSession.Connect("ftp://example.com/");
session.CreateDir("/path/to/new_directory");
session.Close();

関連項目

DeleteDirメソッド


FtpSession.DeleteDirメソッド

説明

ディレクトリを削除します。

削除対象のディレクトリが空では無い場合、削除に失敗します。ご注意ください。

呼出形式

session.DeleteDir( path )

戻り値

なし

引数

String path

削除するディレクトリのパスを相対パスまたは絶対パスで指定します。

例外

FUNC-4

引数が不正です

FTP-2

FTPサーバに接続されていません

FTP-3

FTPサーバへのリクエストに失敗しました

使用例

var session = FtpSession.Connect("ftp://example.com/");
session.DeleteDir("/path/to/delete_directory");
session.Close();

関連項目

CreateDir、DeleteFileメソッド


FtpSession.DeleteFileメソッド

説明

ファイルを削除します。

呼出形式

session.DeleteFile( path )

戻り値

なし

引数

String path

削除するファイルのパスを相対パスまたは絶対パスで指定します。

例外

FUNC-4

引数が不正です

FTP-2

FTPサーバに接続されていません

FTP-3

FTPサーバへのリクエストに失敗しました

使用例

var session = FtpSession.Connect("ftp://example.com/");
session.DeleteFile("/path/to/delete_file");
session.Close();

関連項目

DeleteDirメソッド


FtpSession.FindFilesメソッド

説明

ディレクトリにあるファイルとフォルダの一覧を取得します。

呼出形式

var list = session.FindFiles( [ path ] )

戻り値

見つかったファイル、フォルダの一覧

仮想ファイル名の格納されたString配列が返ります。

引数

String path

一覧を取得するフォルダの仮想ファイル名

ファイル名の一部に"*"や"?"によるワイルドカードを指定することもできます。

フォルダ名に対するワイルドカード指定（"/dir/a*/data.txt"など）はできません。

pathを省略した場合、カレントディレクトリにあるすべてのファイルを検索します。

例外

FUNC-4

引数が不正です

FTP-2

FTPサーバに接続されていません

FTP-3

FTPサーバへのリクエストに失敗しました

使用例

var session = FtpSession.Connect("ftp://example.com/");
var list = session.FindFiles("/*.txt");
session.Close();

関連項目


FtpSession.GetSizeメソッド

説明

ファイルサイズを取得します。

呼出形式

var size = session.GetSize( path )

戻り値

指定したファイルのファイルサイズをinteger型で返します。

引数

String path

ファイルサイズを取得するファイルのパスを相対パスまたは絶対パスで指定します。

例外

FUNC-4

引数が不正です

FTP-2

FTPサーバに接続されていません

FTP-3

FTPサーバへのリクエストに失敗しました

使用例

var session = FtpSession.Connect("ftp://example.com/");
var size = session.GetSize("/path/to/exist_file");
session.Close();

関連項目


FtpSession.Getメソッド

説明

ファイルをダウンロードします。

ファイルはバイナリ転送モードで転送されます。

呼出形式

session.Get( path, writer_obj )

戻り値

なし

引数

String path

ダウンロードするファイルのパスを相対パスまたは絶対パスで指定します。

Object writer_obj

ダウンロードしたデータの出力先となるWriterオブジェクトを指定します。

ByteArrayも入出力オブジェクトとして指定できます。

例外

FUNC-4

引数が不正です

FTP-2

FTPサーバに接続されていません

FTP-3

FTPサーバへのリクエストに失敗しました

使用例

var session = FtpSession.Connect("ftp://example.com/");
session.SetEncoding("Shift_JIS");
session.ChangeDir("/path/to/directory")
var received = new ByteArray();
session.Get("foo.txt", received);
session.Close();

関連項目

Putメソッド


FtpSession.Putメソッド

説明

ファイルをアップロードします。

ファイルはバイナリ転送モードで転送されます。

呼出形式

session.Put( path, reader_obj )

戻り値

なし

引数

String path

アップロード先のファイルのパスを相対パスまたは絶対パスで指定します。

Object reader_obj

アップロードしたデータの入力先となるReaderオブジェクトを指定します。

ByteArrayも入出力オブジェクトとして指定できます。

例外

FUNC-4

引数が不正です

FTP-2

FTPサーバに接続されていません

FTP-3

FTPサーバへのリクエストに失敗しました

使用例

var session = FtpSession.Connect("ftp://example.com/");
session.SetEncoding("Shift_JIS");
session.ChangeDir("/path/to/directory")
var data = new ByteArray("abc");
session.Put("foo.txt", data);
session.Close();

関連項目

Getメソッド


FtpSession.Renameメソッド

説明

ファイル名またはディレクトリ名を変更します。

呼出形式

session.Rename( path_from, path_to )

戻り値

なし

引数

String path_from

変更する対象のファイルのパスを相対パスまたは絶対パスで指定します。

String path_to

変更後のファイルのパスを相対パスまたは絶対パスで指定します。

例外

FUNC-4

引数が不正です

FTP-2

FTPサーバに接続されていません

FTP-3

FTPサーバへのリクエストに失敗しました

使用例

var session = FtpSession.Connect("ftp://example.com/");
session.Rename("original_file.dat", "renamed_file.dat");
session.Close();

関連項目


FtpSession.SetEncodingメソッド

説明

サーバとのやりとりに使用する文字コードを指定します。

この設定はパスおよびサーバから受け取るエラーメッセージに対し影響します。取得するファイルの文字コードには影響を与えません。

デフォルトの文字コードにはUTF-8形式が設定されています。

呼出形式

session.SetEncoding( encoding )

戻り値

なし

引数

String encoding

文字コードを指定します。

指定可能な文字コードはTextConverterクラスで扱える文字コードと同一です。

例外

FUNC-4

引数が不正です

使用例

var session = FtpSession.Connect("ftp://example.com/");
session.SetEncoding("Shift_JIS");
session.ChangeDir("/path/to/directory")
var received = new ByteArray();
session.Get("foo.txt", received);
session.Close();

関連項目


FtpSessionイベント

API version 14

イベント

iOSAndroidWindows

FtpSessionクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Runtimeパッケージ

実行環境に依存した動作を行うクラスを集めたパッケージです。

クラス

API | 名前 | 説明
15 | BluetoothPeripheral | BLE(Bluetooth Low Energy)のペリフェラル(デバイス)にアクセスします
15 | BluetoothSocket | Bluetooth SPP通信のクライアント機能を実装します
15 | BluetoothSocketListener | Bluetooth SPP通信のサーバ機能を実装します
19 | CodeScannerView | Biz/Browserの画面内にカメラの映像を表示し、バーコードおよび二次元コードをスキャンします
4 | File | ローカルファイルを操作します
4 | FileSystem | クライアントPCのファイルシステムを操作します
4 | Runtime | 実行環境に依存した機能を集めたクラスです
14 | NfcTagConnection | NFCタグとの接続を管理するクラスです
22 | SerialPort | シリアル通信機能を実装します
15 | Socket | TCP/IPクライアント機能を実装します
15 | SocketListener | TCP/IPのサーバー機能を実装します


BluetoothPeripheralクラス

Object
 | BluetoothPeripheral

BLE(Bluetooth Low Energy)のペリフェラル(デバイス)にアクセスするためのクラスです。

BLEペリフェラルのキャラクタリスティック(≒プロパティ)の読み込み、書き込みをしたり、キャラクタリスティックの変化をイベントとして受け取ることができます。

BLEペリフェラルと接続するには、Bluetoothのペアリング後、Connectメソッドを呼び出します。

BLEペリフェラルとの接続後、Read、Writeメソッドでキャラクタリスティックを読み書きします。

キャラクタリスティックが変化した際にイベントを発生させるには、StartNotifyメソッドを使用します。

StopNotifyメソッドでイベントの発生を停止します。

BLEペリフェラルとの接続を切断するには、Disconnectメソッドを使用します。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Fixed、Dateを指定できます。


BluetoothPeripheralプロパティ

API version 15

プロパティ

iOSAndroidWindows

BluetoothPeripheralクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
15 | Timeout | CRW | Number | 30 | 接続や読取,書込のタイムアウト時間
15 | Value | CRW | String Number Fixed Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


BluetoothPeripheral.Timeoutプロパティ

接続や読取,書込のタイムアウト時間を指定します。

単位は秒です。

デフォルト値は30秒です。


BluetoothPeripheral.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


BluetoothPeripheralメソッド

API version 15

メソッド

iOSAndroidWindows

BluetoothPeripheralクラスには以下のメソッドが定義されています。

API | 名前 | 説明
15 | Connect | ペリフェラルに接続します
15 | Disconnect | ペリフェラルとの接続を切断します
15 | Read | キャラクタリスティックから値を読み出します
15 | Write | キャラクタリスティックに値を書き込みます
15 | StartNotify | キャラクタリスティックの変化のイベント受け取りを開始します
15 | StopNotify | キャラクタリスティックの変化のイベント受け取りを終了します

クラス概要

基本クラスのメソッド


BluetoothPeripheral.Connectメソッド

API version 15

BluetoothPeripheral.Connectメソッド変更履歴

iOSAndroidWindows

説明

BLEペリフェラル(デバイス)に接続します。

ペリフェラルに接続後、読み込み、書き込みが終わったら必ずDisconnectメソッドで切断してください。

接続が完了するかタイムアウトまで処理を返しません。

呼出形式

peripheral.Connect( deviceId )

戻り値

なし

引数

String deviceId

デバイスのBDアドレス(BDアドレスの形式はMACアドレスと同じです)

例外

FUNC-4

引数の値が不正です

RTM-123

既にデバイスに接続されています。

RTM-83

Bluetoothが有効になっていません。

RTM-78

Bluetoothデバイスとの通信がタイムアウトしました。

RTM-81

Bluetoothデバイスとの接続に失敗しました。

RTM-84

Bluetoothの使用が許可されていません。OSの設定でBluetoothの使用を許可してください。*1

使用例

BluetoothPeripheral peripheral {
    Function onCharacteristicChanged(e) {
        /*イベント処理*/
    }

}
Button btnBleConnect {
    X = 16;
    Y = 576;
    Width = 104;
    Height = 40;
    Title = "BLE 接続";

    Function OnTouch( e ) {
        //.peripheral.Connect(deviceId);
    }
};
Button btnBleDisconnect{
    X = 128;
    Y = 576;
    Width = 104;
    Height = 40;
    Title = "BLE 切断";

    Function OnTouch( e ) {
        //.peripheral.Disconnect();
    }
}

関連項目

Disconnectメソッド

変更履歴
*1　API version 26で追加されました。


BluetoothPeripheral.Disconnectメソッド

説明

Connectメソッドで接続したBLEペリフェラル(デバイス)との接続を切断します。

呼出形式

peripheral.Disconnect()

戻り値

なし

引数

なし

例外

なし

使用例

BluetoothPeripheral peripheral {
    Function onCharacteristicChanged(e) {
        /*イベント処理*/
    }

}
Button btnBleConnect {
    X = 16;
    Y = 576;
    Width = 104;
    Height = 40;
    Title = "BLE 接続";

    Function OnTouch( e ) {
        //.peripheral.Connect(deviceId);
    }
};
Button btnBleDisconnect{
    X = 128;
    Y = 576;
    Width = 104;
    Height = 40;
    Title = "BLE 切断";

    Function OnTouch( e ) {
        //.peripheral.Disconnect();
    }
}

関連項目

Connectメソッド


BluetoothPeripheral.Readメソッド

説明

指定のキャラクタリスティック(≒プロパティ)から値を読み出します。

データの読み込みが完了するかタイムアウトまで処理を戻しません。

呼出形式

ByteArray data= peripheral.Read( serviceUuid , characteristicUuid )

戻り値

読み込んだデータを格納したByteArrayオブジェクト

引数

String serviceUuid

サービスを識別するUUID

String characteristicUuid

キャラクタリスティックを識別するUUID

例外

FUNC-4

引数の値が不正です。

RTM-124

デバイスに接続されていません

RTM-83

Bluetoothが有効になっていません。

RTM-72

読み込み操作を完了できませんでした

RTM-78

Bluetoothデバイスとの通信がタイムアウトしました。

RTM-79

不明なサービスIDです。

RTM-80

不明なキャラクタリスティックIDです。

使用例

BluetoothPeripheral peripheral {
    Function onCharacteristicChanged(e) {
        /*イベント処理*/
    }

}
Button btnBleConnect {
    X = 16;
    Y = 576;
    Width = 104;
    Height = 40;
    Title = "BLE 接続";

    Function OnTouch( e ) {
        //.peripheral.Connect(deviceId);
    }
}
Button btnBleReadService {
    X = 16;
    Y = 624;
    Width = 104;
    Height = 40;
    Title = "BLE Read";

    Function OnTouch( e ) {
        var serviceUUID = "00000000-1111-2222-3333-4444-555555555555";
        var characteristicUUID = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee";
        var data = //.peripheral.Read(serviceUUID, characteristicUUID);
        //.peripheral.Write(serviceUUID, characteristicUUID, data);
    }
}

関連項目

Writeメソッド


BluetoothPeripheral.Writeメソッド

説明

指定のキャラクタリスティック(≒プロパティ)に値を書き込みます。

書き込み処理が完了するかタイムアウトまで処理を戻しません。

呼出形式

peripheral.Write( serviceUuid , characteristicUuid , data )

戻り値

なし

引数

String serviceUuid

サービスを識別するUUID

String characteristicUuid

キャラクタリスティックを識別するUUID

ByteArray data

書き込むデータ

例外

FUNC-4

引数の値が不正です。

RTM-124

デバイスに接続されていません

RTM-83

Bluetoothが有効になっていません。

RTM-73

書き込み操作を完了できませんでした

RTM-78

Bluetoothデバイスとの通信がタイムアウトしました。

RTM-79

不明なサービスIDです。

RTM-80

不明なキャラクタリスティックIDです。

使用例

BluetoothPeripheral peripheral {
    Function onCharacteristicChanged(e) {
        /*イベント処理*/
    }

}
Button btnBleConnect {
    X = 16;
    Y = 576;
    Width = 104;
    Height = 40;
    Title = "BLE 接続";

    Function OnTouch( e ) {
        //.peripheral.Connect(deviceId);
    }
}
Button btnBleReadService {
    X = 16;
    Y = 624;
    Width = 104;
    Height = 40;
    Title = "BLE Read";

    Function OnTouch( e ) {
        var serviceUUID = "00000000-1111-2222-3333-4444-555555555555";
        var characteristicUUID = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee";
        var data = //.peripheral.Read(serviceUUID, characteristicUUID);
        //.peripheral.Write(serviceUUID, characteristicUUID, data);
    }
}

関連項目

Readメソッド


BluetoothPeripheral.StartNotifyメソッド

説明

指定したキャラクタリスティック(≒プロパティ)の変化のイベント受け取りを開始します。

キャラクタリスティックの種別がNotify、Indicateの場合に対応しています。

指定したキャラクタリスティックが変化すると、CharacteristicChangedイベントが発生します。

呼出形式

peripheral.StartNotify( serviceUuid , characteristicUuid )

戻り値

なし

引数

String serviceUuid

サービスを識別するUUID

String characteristicUuid

キャラクタリスティックを識別するUUID

例外

FUNC-4

引数の値が不正です。

RTM-124

デバイスに接続されていません

RTM-83

Bluetoothが有効になっていません。

RTM-73

書き込み操作を完了できませんでした

RTM-78

Bluetoothデバイスとの通信がタイムアウトしました。

RTM-79

不明なサービスIDです。

RTM-80

不明なキャラクタリスティックIDです。

使用例

BluetoothPeripheral peripheral {
    Function onCharacteristicChanged(e) {
        /*イベント処理*/
    }

}
Button btnBleConnect {
    X = 16;
    Y = 576;
    Width = 104;
    Height = 40;
    Title = "BLE 接続";

    Function OnTouch( e ) {
        //.peripheral.Connect(deviceId);
    }
}
Button btnBleStartNotifyBatteryService {
    X = 128;
    Y = 624;
    Width = 104;
    Height = 40;
    Title = "BLE Start";

    Function OnTouch( e ) {
        var serviceUUID = "00000000-1111-2222-3333-4444-555555555555";
        var characteristicUUID = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee";
        var data = //.peripheral.StartNotify(serviceUUID, characteristicUUID);
    }
}
Button btnBleStopNotifyBatteryService {
    X = 240;
    Y = 624;
    Width = 104;
    Height = 40;
    Title = "BLE Stop";

    Function OnTouch( e ) {
        var serviceUUID = "00000000-1111-2222-3333-4444-555555555555";
        var characteristicUUID = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee";
        //.peripheral.StopNotify(serviceUUID, characteristicUUID);
    }
}

関連項目

StopNotifyメソッド、CharacteristicChangedイベント


BluetoothPeripheral.StopNotifyメソッド

説明

指定したキャラクタリスティック(≒プロパティ)の変化のイベント受け取りを終了します。

呼出形式

peripheral.StoptNotify( serviceUuid , characteristicUuid )

戻り値

なし

引数

String serviceUuid

サービスを識別するUUID

String characteristicUuid

キャラクタリスティックを識別するUUID

例外

FUNC-4

引数の値が不正です。

RTM-124

デバイスに接続されていません

RTM-83

Bluetoothが有効になっていません。

RTM-73

書き込み操作を完了できませんでした

RTM-78

Bluetoothデバイスとの通信がタイムアウトしました。

RTM-79

不明なサービスIDです。

RTM-80

不明なキャラクタリスティックIDです。

使用例

BluetoothPeripheral peripheral {
    Function onCharacteristicChanged(e) {
        /*イベント処理*/
    }

}
Button btnBleConnect {
    X = 16;
    Y = 576;
    Width = 104;
    Height = 40;
    Title = "BLE 接続";

    Function OnTouch( e ) {
        //.peripheral.Connect(deviceId);
    }
}
Button btnBleStartNotifyBatteryService {
    X = 128;
    Y = 624;
    Width = 104;
    Height = 40;
    Title = "BLE Start";

    Function OnTouch( e ) {
        var serviceUUID = "00000000-1111-2222-3333-4444-555555555555";
        var characteristicUUID = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee";
        var data = //.peripheral.StartNotify(serviceUUID, characteristicUUID);
    }
}
Button btnBleStopNotifyBatteryService {
    X = 240;
    Y = 624;
    Width = 104;
    Height = 40;
    Title = "BLE Stop";

    Function OnTouch( e ) {
        var serviceUUID = "00000000-1111-2222-3333-4444-555555555555";
        var characteristicUUID = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee";
        //.peripheral.StopNotify(serviceUUID, characteristicUUID);
    }
}

関連項目

StartNotifyメソッド


BluetoothPeripheralイベント

API version 15

イベント

iOSAndroidWindows

BluetoothPeripheralクラスには以下のイベントが定義されています。

API | 名前 | 説明
15 | CharacteristicChanged | キャラクタリスティックの変化を受け取った際に発行されます

クラス概要

基本クラスのイベント


BluetoothPeripheral.CharacteristicChangedイベント

StartNotifyメソッドで指定したキャラクタリスティックの変化を受け取った際に発行されます。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
String | ServiceUuid | サービスを識別するUUID
String | CharactaristicUuid | キャラクタリスティックを識別するUUID
ByteArray | Data | 変化後のキャラクタリスティックの値


BluetoothSocketクラス

Object
 | BluetoothSocket

Bluetooth SPPによる通信を行うクラスです。

単独で生成してクライアントとして使用する他、BluetoothSocketListenerクラスによりサーバーソケットとして自動的に生成される場合もあります。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Fixed、Dateを指定できます。


BluetoothSocketプロパティ

API version 15

プロパティ

iOSAndroidWindows

BluetoothSocketクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
15 | Host | R | String |  | 接続先のBDアドレス
15 | IsConnected | R | boolean |  | ソケットが接続中かどうか
15 | Timeout | CRW | integer | 0 | Read、ReadLineメソッドのタイムアウト値
15 | Value | CRW | String Number Fixed Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


BluetoothSocket.Hostプロパティ

接続先のBDアドレスが格納されます。(BDアドレスの形式はMACアドレスと同じです)

このプロパティは読み込み専用で変更することはできません。


BluetoothSocket.IsConnectedプロパティ

ソケットが接続済みの場合は$TRUE、そうではない場合は$FALSEとなります。

このプロパティは読み込み専用で変更することはできません。


BluetoothSocket.Timeoutプロパティ

Read、ReadLineメソッドのタイムアウト時間を秒単位で指定します。

デフォルトは0(受信待ちをしない)です。


BluetoothSocket.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


BluetoothSocketメソッド

API version 15

メソッド

iOSAndroidWindows

BluetoothSocketクラスには以下のメソッドが定義されています。

API | 名前 | 説明
15 | Close | ソケットを閉じます
15 | Open | ソケットを開きます
15 | Read | ソケットからデータを読み込みます
15 | ReadLine | ソケットから1行分の文字列データを読み込みます
15 | Write | ソケットにデータを書き込みます
15 | WriteString | ソケットに文字列データを書き込みます

クラス概要

基本クラスのメソッド


BluetoothSocket.Closeメソッド

説明

ソケットを閉じ、接続を切断します。

Openメソッド等で開いたソケットは、読み込み、書き込みが終わったら必ず閉じてください。

呼出形式

btSock.Close()

戻り値

なし

引数

なし

例外

RTM-71

ソケットは開いていません

使用例

BluetoothSocket btSock = new BluetoothSocket;
btSock.Timeout = 60;
btSock.Open("11:22:33:44:55:66");

while (true) {
    var data = btSock.Read(256);

    if (data.length <= 0) {
        break;
    }

    print(data);
    btSock.Write(data);
}
btSock.Close();

関連項目

Openメソッド


BluetoothSocket.Openメソッド

API version 15

BluetoothSocket.Openメソッド変更履歴

iOSAndroidWindows

説明

ホストとなるBluetoothデバイスに対してソケットを作成し、接続します。

呼出形式

btSock.Open( address )

戻り値

なし

引数

String address

接続先のBDアドレス(BDアドレスの形式はMACアドレスと同じです)

例外

RTM-68

ソケットは既に開いています

RTM-74

指定のデバイスに接続できません

RTM-84

Bluetoothの使用が許可されていません。OSの設定でBluetoothの使用を許可してください。 *1

使用例

BluetoothSocket btSock = new BluetoothSocket;
btSock.Timeout = 60;
btSock.Open("11:22:33:44:55:66");

while (true) {
    var data = btSock.Read(256);

    if (data.length <= 0) {
        break;
    }

    print(data);
    btSock.Write(data);
}
btSock.Close();

関連項目

Closeメソッド

変更履歴
*1　API version 26で追加されました。


BluetoothSocket.Readメソッド

説明

ソケットからデータを読み込みます。

指定したサイズのデータを受信するかタイムアウトまで処理を戻しません。

呼出形式

var data= btSock.Read( size )

戻り値

読み込んだデータを格納したByteArrayオブジェクト

引数

integer size

読み込むサイズ。バイト単位で指定します。

省略時、マイナス値は4096とみなします。

例外

RTM-71

ソケットは開いていません

RTM-72

読み込み操作を完了できませんでした

RTM-75

接続が拒否されました

使用例

BluetoothSocket btSock = new BluetoothSocket;
btSock.Timeout = 60;
btSock.Open("11:22:33:44:55:66");

while (true) {
    var data = btSock.Read(256);

    if (data.length <= 0) {
        break;
    }

    print(data);
    btSock.Write(data);
}
btSock.Close();

関連項目

ReadLine、Writeメソッド


BluetoothSocket.ReadLineメソッド

説明

ソケットから1行分の文字列データを読み込みます。

ソケットの現在の読み込み位置から、次の改行文字までの文字列データを読み込みます。

一行分受信するかタイムアウトまで処理を戻しません。タイムアウト以外のエラーでは例外が発生します。

呼出形式

var data = btSock.ReadLine()

戻り値

読み込んだ文字列データをStringオブジェクトとして返します。

行末の改行文字は含まれません。データの終わりに達して、これ以上読み込めない場合は空文字列を返します。

引数

なし

例外

RTM-71

ソケットは開いていません

RTM-72

読み込み操作を完了できませんでした

RTM-75

接続が拒否されました

使用例

BluetoothSocket btSock = new BluetoothSocket;
btSock.Timeout = 60;
btSock.Open("11:22:33:44:55:66");

while (true) {
    var data = btSock.ReadLine();

    if (data.length <= 0) {
        break;
    }

    print(data);
    btSock.WriteString(data);
}
btSock.Close();

関連項目

Read、WriteStringメソッド


BluetoothSocket.Writeメソッド

説明

ソケットへデータを書き込みます。

データの型に応じてバイトデータへ自動変換します。

呼出形式

btSock.Write( data )

戻り値

なし

引数

data

書き込むデータ

例外

RTM-10

出力データの型が不明です。出力するバイト数が不明です

RTM-73

書き込み操作を完了できませんでした

RTM-75

接続が拒否されました

使用例

BluetoothSocket btSock = new BluetoothSocket;
btSock.Timeout = 60;
btSock.Open("11:22:33:44:55:66");

while (true) {
    var data = btSock.Read(256);

    if (data.length <= 0) {
        break;
    }

    print(data);
    btSock.Write(data);
}
btSock.Close();

関連項目

WriteString、Readメソッド

データ型ごとの書き込み形式の違いについて

dataに指定する変数のデータ型によって、書き込まれる形式が以下のようになります。

データ型 | 例 | 説明
String | Write("abc") Write(new String("abc")); | 文字列データ 文字列データがUTF-8で書き込まれます。
integer | Write(10) | 整数値データ 4バイトの符号付き整数データとして書き込まれます。
boolean | Write(true) | bool値データ 4バイトの符号付き整数データとして書き込まれます。 trueならば1, falseならば0となります。
Number | Write(1.2) Write(new Number(10)) | 数値（浮動小数点）データ 8バイトの浮動小数点データとして書き込まれます。
Date | Write(new Date()) | 日付データ Valueプロパティの値が8バイトの浮動小数点データとして書き込まれます
ByteArray | Readメソッドで 読み込んだ結果など | バイナリデータ バイナリデータがそのまま書き込まれます。

常に文字列として書き込みたい場合は、WriteStringメソッドを使用してください。


BluetoothSocket.WriteStringメソッド

説明

ソケットに文字列データを書き込みます。

データを文字列に変換して送信します。

呼出形式

btSock.WriteString( data )

戻り値

なし

引数

String data

書き込む文字列データ

例外

RTM-71

ソケットは開いていません

RTM-73

書き込み操作を完了できませんでした

RTM-75

接続が拒否されました

使用例

BluetoothSocket btSock = new BluetoothSocket;
btSock.Timeout = 60;
btSock.Open("11:22:33:44:55:66");

while (true) {
    var data = btSock.ReadLine();

    if (data.length <= 0) {
        break;
    }

    print(data);
    btSock.WriteString(data);
}
btSock.Close();

関連項目

Write、ReadLineメソッド


BluetoothSocketイベント

API version 15

イベント

iOSAndroidWindows

BluetoothSocketクラスには以下のイベントが定義されています。

API | 名前 | 説明
15 | Receive | データが受信可能状態になったことを通知します

クラス概要

基本クラスのイベント


BluetoothSocket.Receiveイベント

データが受信可能状態になった時発生するイベントです。


BluetoothSocketListenerクラス

Object
 | BluetoothSocketListener

Bluetooth SPP通信のためのサーバーソケットを作成し、受信待機します。

クライアントから接続されると子オブジェクトとしてBluetoothSocketオブジェクトを生成します。

BluetoothSocketListenerオブジェクトを作成し、Startメソッドを呼び出すと、ソケットの待ち受け状態となります。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Fixed、Dateを指定できます。


BluetoothSocketListenerプロパティ

API version 15

プロパティ

iOSAndroidWindows

BluetoothSocketListenerクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
15 | IsListening | R | boolean | ソケットを待ち受け中かどうか
15 | Value | CRW | String Number Fixed Date | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


BluetoothSocketListener.IsListeningプロパティ

オブジェクトがソケットを待ち受け中の場合は$TRUE、そうではない場合は$FALSEとなります。

このプロパティは読み込み専用で変更することはできません。


BluetoothSocketListener.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


BluetoothSocketListenerメソッド

API version 15

メソッド

iOSAndroidWindows

BluetoothSocketListenerクラスには以下のメソッドが定義されています。

API | 名前 | 説明
15 | Start | 受信待機を開始します
15 | Stop | 受信待機を停止します

クラス概要

基本クラスのメソッド


BluetoothSocketListener.Startメソッド

API version 15

BluetoothSocketListener.Startメソッド変更履歴

iOSAndroidWindows

説明

ソケットの受信待機を開始します。

イベントの待ち受けは、Stopメソッドの呼び出しにより停止します。

BluetoothSocketListenerオブジェクトの消滅時にもイベントの待ち受けを停止しますが、オブジェクトの消滅は処理タイミングが不定です。必ずStopメソッドを呼び出して停止させてください。

呼出形式

btSockListener.Start()

戻り値

なし

引数

なし

例外

RTM-68

ソケットは既に開いています

RTM-70

受信待機に失敗しました

RTM-84

Bluetoothの使用が許可されていません。OSの設定でBluetoothの使用を許可してください。 *1

使用例

BluetoothSocketListener  btSoclListener {
    Function OnAccept(e) {
        Stop();
    }
    Function OnReceive(e) {
        var data = e.From.ReadLine();
        print(data);
    }
    if (!$DESIGNTIME) {
        Start();
    }
}

関連項目

Stopメソッド

変更履歴
*1　API version 26で追加されました。


BluetoothSocketListener.Stopメソッド

説明

ソケットの受信待機を停止します。

BluetoothSocketListenerオブジェクトの消滅時にもイベントの待ち受けを停止しますが、オブジェクトの消滅は処理タイミングが不定です。

Startメソッドで待ち受けを開始した場合は、必ずStopメソッドを呼び出して停止させてください。

呼出形式

btSockListener.Stop()

戻り値

なし

引数

なし

例外

なし

使用例

BluetoothSocketListener  btSoclListener {
    Function OnAccept(e) {
        Stop();
    }
    Function OnReceive(e) {
        var data = e.From.ReadLine();
        print(data);
    }
    if (!$DESIGNTIME) {
        Start();
    }
}

関連項目

Startメソッド


BluetoothSocketListenerイベント

API version 15

イベント

iOSAndroidWindows

BluetoothSocketListenerクラスには以下のイベントが定義されています。

API | 名前 | 説明
15 | Accept | クライアントソケットから接続されたとき発生します

クラス概要

基本クラスのイベント


BluetoothSocketListener.Acceptイベント

Startメソッドで待機中のサーバソケットにクライアントソケットから接続が確立した際に発生するイベントです。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
String | SocketName | 接続により生成されたBluetoothSocketオブジェクト名が格納されます。

SocketNameには接続によって生成されたBluetoothSocketオブジェクトの名前が設定されます。

BluetoothSocketオブジェクトは自動的に子オブジェクトとしてBluetoothSocketListenerに接続されます。

例えばFindChild(e.SocketName)で生成されたBluetoothSocketを取得できます。

BluetoothSocketオブジェクトは通信が終了し不要になった場合、Deleteメソッドで削除してください。

生成されたBluetoothSocketにデータが着信しReceiveイベントが発生した場合、親オブジェクトであるBluetoothSocketListenerにイベントは伝搬します。

BluetoothSocketListenerオブジェクトにイベントハンドラOnReceiveを記述し、e.FromによってBluetoothSocketオブジェクトを判別し受信処理を実装することが可能です。


CodeScannerViewクラス

Object
 | NetObject
 |  | DisplayObject
 |  |  | CodeScannerView

Biz/Browserの画面内にカメラの映像を表示し、映像に映っているバーコードおよび二次元コードを読み取るためのクラスです。

(以下、バーコードシンボルおよび二次元コードシンボルのことをシンボルと呼称します)

シンボルを読み取るには、ShowCameraメソッドでカメラの映像を表示した後、StartCodeScannerメソッドで読取用のUIを表示します。

読み取ったシンボルの情報はCodeScannedイベントで受け取ります。

シンボルの読取に際しては、Runtime.ShowCodeScannerメソッドと同様に、読み取るシンボルの種類や、読取に関するオプションを指定できます。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Fixed、Dateを指定できます。


CodeScannerViewプロパティ

API version 19

プロパティ

iOSAndroidWindows

CodeScannerViewクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
19 | Border | CR | boolean | $FALSE | 枠の表示を指定します
28 | BorderColor | CRW | integer | $STD | 枠の色
19 | Value | CRW | String Number Fixed Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


CodeScannerView.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


CodeScannerViewメソッド

API version 19

メソッド

iOSAndroidWindows

CodeScannerViewクラスには以下のメソッドが定義されています。

API | 名前 | 説明
19 | HideCamera | カメラを終了します
19 | ShowCamera | カメラを起動し映像を表示します
19 | StartCodeScanner | 読取用のUIを表示し、読取を開始します
19 | StopCodeScanner | 読取を終了します

クラス概要

基本クラスのメソッド


CodeScannerView.HideCameraメソッド

説明

ShowCameraメソッドで起動したカメラを終了します。

StartCodeScannerメソッドでスキャンを開始していた場合、スキャンも停止します。

呼出形式

codeScannerView.HideCamera( )

戻り値

なし

引数

なし

例外

RTM-46

カメラの操作に失敗しました

EXT-27

初期化が完了していません

使用例

CodeScannerView codeScannerView {
    X = 10;
    Y = 10;
    Width = 200;
    Height = 300;
    Function onCodeScanned(e) {
        print("Format:" + str(e.Format) + " Data:" + e.Data + "\n");
    }
}

Button btnStartScan {
    X = 10;
    Y = 320;
    Width = 100;
    Height = 40;
    Title = "スキャン開始";

    Function OnTouch( e ) {
        try {
            /* カメラ表示 */
            ^.codeScannerView.ShowCamera(Runtime.SourceTypeRearCamera, $TRUE);

            /* EAN13バーコードおよびQRコードのみを読み取ります */
            var format = Runtime.CODE_FORMAT_EAN13 + Runtime.CODE_FORMAT_QR_CODE;

            /* UPC-AバーコードをEAN13バーコードに読み替えます */
            var extraParams = new Array;
            extraParams["CONVERT_UPCA_TO_EAN13"] = true;

            /* 読み取り時の音声を指定します */
            var rtm = new Runtime;
            Number soundId = rtm.LoadSound("sound.wav");
            extraParams["SCAN_SOUND_ID"] = soundId;

            /* 読取開始 */
            ^.codeScannerView.StartCodeScanner(format, extraParams, rtm);
        } catch (e) {
            //.MessageBox(e.Method + "-" + str(e.Code));
            //.MessageBox(e.message);
        }
    }
}

Button btnStopScan{
    X = 120;
    Y = 320;
    Width = 100;
    Height = 40;
    Title = "スキャン停止";

 Function OnTouch( e ) {
        try {
            /* スキャン停止 */
            ^.codeScannerView.StopCodeScanner();

            /* カメラ停止 */
            ^.codeScannerView.HideCamera();
        } catch (e) {
            //.MessageBox(e.Method + "-" + str(e.Code));
            //.MessageBox(e.message);
        }
    }
}

関連項目

ShowCameraメソッド


CodeScannerView.ShowCameraメソッド

説明

カメラを起動し、カメラの映像を表示します。

映像内のバーコード、2次元バーコードを読み取るには、StartCodeScannerメソッドを呼び出します。

呼出形式

codeScannerView.ShowCamera( sourceType [, cameraFlash ])

戻り値

なし

引数

integer sourceType

画像を取得する対象を指定します。

指定できる値は下記のとおりです。

定数 | 値 | 説明
Runtime.SourceTypeRearCamera | 2 | リアカメラ(端末背面側)を起動し読取を行います
Runtime.SourceTypeFrontCamera | 3 | フロントカメラ(液晶側)を起動し読取を行います

boolean cameraFlash

カメラフラッシュ(LED)の初期状態を指定します。

点灯=true, 消灯=false。デフォルトはfalseです。

例外

FUNC-4

引数の値が不正です

RTM-46

カメラの操作に失敗しました

EXT-27

初期化が完了していません

使用例

CodeScannerView codeScannerView {
    X = 10;
    Y = 10;
    Width = 200;
    Height = 300;
    Function onCodeScanned(e) {
        print("Format:" + str(e.Format) + " Data:" + e.Data + "\n");
    }
}

Button btnStartScan {
    X = 10;
    Y = 320;
    Width = 100;
    Height = 40;
    Title = "スキャン開始";

    Function OnTouch( e ) {
        try {
            /* カメラ表示 */
            ^.codeScannerView.ShowCamera(Runtime.SourceTypeRearCamera, $TRUE);

            /* EAN13バーコードおよびQRコードのみを読み取ります */
            var format = Runtime.CODE_FORMAT_EAN13 + Runtime.CODE_FORMAT_QR_CODE;

            /* UPC-AバーコードをEAN13バーコードに読み替えます */
            var extraParams = new Array;
            extraParams["CONVERT_UPCA_TO_EAN13"] = true;

            /* 読み取り時の音声を指定します */
            var rtm = new Runtime;
            Number soundId = rtm.LoadSound("sound.wav");
            extraParams["SCAN_SOUND_ID"] = soundId;

            /* 読取開始 */
            ^.codeScannerView.StartCodeScanner(format, extraParams, rtm);
        } catch (e) {
            //.MessageBox(e.Method + "-" + str(e.Code));
            //.MessageBox(e.message);
        }
    }
}

Button btnStopScan{
    X = 120;
    Y = 320;
    Width = 100;
    Height = 40;
    Title = "スキャン停止";

 Function OnTouch( e ) {
        try {
            /* スキャン停止 */
            ^.codeScannerView.StopCodeScanner();

            /* カメラ停止 */
            ^.codeScannerView.HideCamera();
        } catch (e) {
            //.MessageBox(e.Method + "-" + str(e.Code));
            //.MessageBox(e.message);
        }
    }
}

関連項目

HideCamera、StartCodeScannerメソッド


CodeScannerView.StartCodeScannerメソッド

説明

バーコードおよび2次元バーコードのスキャンを開始します。

ShowCameraメソッド呼び出し後に本メソッドを呼び出すことで、バーコードおよび二次元コード読取用のUIが表示されます。

使用の際は下記の点にご注意下さい。

(以下、バーコードシンボルおよび二次元コードシンボルのことをシンボルと呼称します)

読取設定について

・誤検知の防止やパフォーマンスの向上のため、コード種別の絞り込みや読取データ長の指定、読取対象外エリアを設定することをおすすめします。

読取時の操作

・読取の際は読取画面内の読取エリアに読み取りたいシンボルがしっかりと映り込むように端末を動かして下さい。

・特に二次元コード(QRコード、DataMatrix等)を読み取る場合、できるだけシンボルを真上から撮影して下さい。

読み取り精度やパフォーマンスについて

・シンボルの認識精度や認識速度に関してはお使いの端末や使用環境、シンボルの状態などに依存します。

・シンボルが常に正しく読み取れることは保証しておりません。必要に応じて読取データ長の確認やチェックディジットの検証、マスタとの突合などの処理を追加して下さい。

・同時に認識できるシンボル数はコード種別や読取状況に依存します。 特に二次元コード(QRコード、DataMatrix等)の場合、同時に複数のシンボルを認識出来ない可能性があります。

呼出形式

codeScannerView.StartCodeScanner( [format [, extraParams [, rtm ]]] )

戻り値

なし

引数

integer format

読取対象のバーコード/二次元コード種別を組み合わせて指定します。

デフォルトではRuntime.CODE_FORMAT_ALLが指定されます。

定数 | 値 | 種別
Runtime.CODE_FORMAT_CODE128 | 0x0001 | CODE128
Runtime.CODE_FORMAT_CODE39 | 0x0002 | CODE39
Runtime.CODE_FORMAT_CODABAR | 0x0008 | CodaBar(NW-7) ※4
Runtime.CODE_FORMAT_DATA_MATRIX | 0x0010 | DataMatrix
Runtime.CODE_FORMAT_EAN13 | 0x0020 | EAN-13 (JAN-13) ※1
Runtime.CODE_FORMAT_EAN8 | 0x0040 | EAN-8 (JAN-8)
Runtime.CODE_FORMAT_ITF | 0x0080 | ITF (Interleaved Two of Five)
Runtime.CODE_FORMAT_QR_CODE | 0x0100 | QRコード ※5
Runtime.CODE_FORMAT_UPCA | 0x0200 | UPC-A ※1
Runtime.CODE_FORMAT_UPCE | 0x0400 | UPC-E
Runtime.CODE_FORMAT_PDF417 | 0x0800 | PDF417
Runtime.CODE_FORMAT_AZTEC | 0x1000 | Aztec
Runtime.CODE_FORMAT_ALL | 0xFFFF | 読み取り可能な全てのフォーマット ※2 ※3

※1 : EAN-13として認識されるシンボル内、先頭が0となっているものはUPC-Aとして扱われます。

※2 : 他の定数と組み合わせず、単体で指定して下さい。

※3 : 将来的に読取できるコード種別が追加された場合、そのコードも読取対象となります。

※4 : 6文字以上(スタートストップ文字入れて8文字以上)のみ読み取り可能です。

※5 : QRコード モデル1は読み取ることはできません。

Array extraParams

その他細かな設定を指定します。

引数のArrayのキー(文字列)に設定名を、値に設定値を格納します。

キー(文字列) | 値の型 | デフォルト値 | 説明
"ALLOW_SAME_SYMBOL" | boolean | true | 同一シンボル読取許可を指定します。 読取許可=true, 読取禁止=false
"CONTINUOUS_MODE" | boolean | false | 読取モードを指定します。 連続読取=true, 単発読取=false
"CONVERT_UPCA_TO_EAN13" | boolean | false | UPC-Aとして認識されたシンボルを、EAN-13に読み替えます。 (データ先頭に0を付加し、12桁→13桁に変換) 読替有効=true, 読替無効=false
"MAX_SCAN_COUNT" | integer | 0 | 最大読取数を指定します。 0(無制限)または1以上を指定します。 範囲外の値は0を指定した物と見なします。
"SAME_SYMBOL_SCAN_INTERVAL" | number | 1.0 | 同一シンボルの読み取りが可能になるまでの時間(単位:秒)を指定します。 0以上の値を指定可能です。 範囲外の値は0を指定した物と見なします。
"SCAN_DATA_LENGTH" | integer または Array | null | 読取対象のデータ長(コードの読取結果の文字列長)を指定します。 対象のデータ長がこの指定と異なる場合、そのシンボルは検出されても無視されます。 単一のデータ長のみ許可する場合、値には整数値を指定します。 複数のデータ長を許可する場合、値にはデータ長を整数で格納したArrayオブジェクトを指定します。 nullまたは空のArrayオブジェクトを指定した場合、全てのデータ長が許可されます。
"SCAN_AREA_MARGIN_LEFT" | number | 0 | 左端からの読取対象外エリアを指定します。 0.0～1.0の間を指定可能です。 例えば0.3を指定した場合、画面の左側30%は読取対象外エリアとなります。
"SCAN_AREA_MARGIN_TOP" | number | 0 | 上端からの読取対象外エリアを指定します。 0.0～1.0の間を指定可能です。 例えば0.3を指定した場合、画面の上側30%は読取対象外エリアとなります。
"SCAN_AREA_MARGIN_RIGHT" | number | 0 | 右端からの読取対象外エリアを指定します。 0.0～1.0の間を指定可能です。 例えば0.3を指定した場合、画面の右側30%は読取対象外エリアとなります。
"SCAN_AREA_MARGIN_BOTTOM" | number | 0 | 下端からの読取対象外エリアを指定します。 0.0～1.0の間を指定可能です。 例えば0.3を指定した場合、画面の下側30%は読取対象外エリアとなります。
"SCAN_SOUND_ID" | integer | (空値) | 読取時に再生する効果音を指定します。 指定できる値は、Runtime.LoadSoundメソッドで取得した効果音Idです。 このオプションを指定した場合、引数としてLoadSoundメソッドを呼び出したRuntimeオブジェクトを指定する必要があります。 省略時や0未満を指定したとき、読取時にロードされていないIdを指定したときには効果音を再生しません。
"SCAN_AREA_TOUCH_MODE" | boolean | false | 画面タッチによる読取領域指定を設定します。 trueを指定すると、画面をタッチした位置でシンボルを読み取ります。 読取領域のサイズはSCAN_AREA_TOUCH_SIZEで指定します。 読取領域の有効時間はSCAN_AREA_TOUCH_TIMEで指定します。
"SCAN_AREA_TOUCH_SIZE" | number | 0.2 | 画面タッチによる読取領域指定が有効な場合の、スキャン領域のサイズを指定します。 0.0～1.0の間を指定可能です。 画面の短辺に対する割合となります。 例えば端末が縦向きで0.3を指定した場合、画面のタップ位置を中心に、画面の横幅の30%の領域が読取対象となります。
"SCAN_AREA_TOUCH_TIME" | number | 5.0 | 画面タッチによる読取領域指定が有効な場合の、読取領域が有効な時間を秒単位で指定します。 0を指定すると、次に画面をタッチするまで読取領域は固定されます。
"SCAN_AREA_LINE_HORIZONTAL" | number | 0.0 | 画面上に水平線を引き、線と重なったシンボルだけを読み取ります。 0.0～1.0の間を指定可能です。0.0、もしくは1.0が指定された場合は水平線を引きません。 例えば0.3を指定した場合、画面上から30%の位置に水平線を引きます。 SCAN_AREA_LINE_VERTICALと同時に指定された場合は、線の交点と重なったシンボルだけを読み取ります。 SCAN_AREA_TOUCH_MODEがtrueの場合は無効となります。
"SCAN_AREA_LINE_VERTICAL" | number | 0.0 | 画面上に垂直線を引き、線と重なったシンボルだけを読み取ります。 0.0～1.0の間を指定可能です。0.0、もしくは1.0が指定された場合は垂直線を引きません。 例えば0.3を指定した場合、画面左から30%の位置に垂直線を引きます。 SCAN_AREA_LINE_HORIZONTALと同時に指定された場合は、線の交点と重なったシンボルだけを読み取ります。 SCAN_AREA_TOUCH_MODEがtrueの場合は無効となります。
"SHOW_DUPLICATED" | boolean | false | ALLOW_SAME_SYMBOLにfalseを指定した場合に、読取済みシンボル上にマークを表示するかどうかを指定します。 読取済みシンボルと同一かどうかを判定する間隔はSAME_SYMBOL_SCAN_INTERVALの指定値となります。 マークを表示する=true マークを表示しない=false
"DUPLICATED_SOUND_ID" | integer | (空値) | ALLOW_SAME_SYMBOLにfalseを指定した場合に、読取済みシンボルを再度読み取った際に再生する効果音を指定します。 指定できる値は、Runtime.LoadSoundメソッドで取得した効果音Idです。 このオプションを指定した場合、引数としてLoadSoundメソッドを呼び出したRuntimeオブジェクトを指定する必要があります。 省略時や0未満を指定したとき、読取時にロードされていないIdを指定したときには効果音を再生しません。 読取済みシンボルと同一かどうかを判定する間隔はSAME_SYMBOL_SCAN_INTERVALの指定値となります。

Runtime rtm

extraParamsで"SCAN_SOUND_ID"や"DUPLICATED_SOUND_ID"を指定した場合に、音声を再生するRuntimeオブジェクトを指定します。

例外

RTM-46

カメラの操作に失敗しました

EXT-27

初期化が完了していません

使用例

CodeScannerView codeScannerView {
    X = 10;
    Y = 10;
    Width = 200;
    Height = 300;
    Function onCodeScanned(e) {
        print("Format:" + str(e.Format) + " Data:" + e.Data + "\n");
    }
}

Button btnStartScan {
    X = 10;
    Y = 320;
    Width = 100;
    Height = 40;
    Title = "スキャン開始";

    Function OnTouch( e ) {
        try {
            /* カメラ表示 */
            ^.codeScannerView.ShowCamera(Runtime.SourceTypeRearCamera, $TRUE);

            /* EAN13バーコードおよびQRコードのみを読み取ります */
            var format = Runtime.CODE_FORMAT_EAN13 + Runtime.CODE_FORMAT_QR_CODE;

            /* UPC-AバーコードをEAN13バーコードに読み替えます */
            var extraParams = new Array;
            extraParams["CONVERT_UPCA_TO_EAN13"] = true;

            /* 読み取り時の音声を指定します */
            var rtm = new Runtime;
            Number soundId = rtm.LoadSound("sound.wav");
            extraParams["SCAN_SOUND_ID"] = soundId;

            /* 読取開始 */
            ^.codeScannerView.StartCodeScanner(format, extraParams, rtm);
        } catch (e) {
            //.MessageBox(e.Method + "-" + str(e.Code));
            //.MessageBox(e.message);
        }
    }
}

Button btnStopScan{
    X = 120;
    Y = 320;
    Width = 100;
    Height = 40;
    Title = "スキャン停止";

 Function OnTouch( e ) {
        try {
            /* スキャン停止 */
            ^.codeScannerView.StopCodeScanner();

            /* カメラ停止 */
            ^.codeScannerView.HideCamera();
        } catch (e) {
            //.MessageBox(e.Method + "-" + str(e.Code));
            //.MessageBox(e.message);
        }
    }
}

関連項目

ShowCamera、StopCodeScannerメソッド


CodeScannerView.StopCodeScannerメソッド

説明

StartCodeScannerメソッドで開始したスキャンを終了します。

呼出形式

codeScannerView.StopCodeScanner( )

戻り値

なし

引数

なし

例外

RTM-46

カメラの操作に失敗しました

EXT-27

初期化が完了していません

使用例

CodeScannerView codeScannerView {
    X = 10;
    Y = 10;
    Width = 200;
    Height = 300;
    Function onCodeScanned(e) {
        print("Format:" + str(e.Format) + " Data:" + e.Data + "\n");
    }
}

Button btnStartScan {
    X = 10;
    Y = 320;
    Width = 100;
    Height = 40;
    Title = "スキャン開始";

    Function OnTouch( e ) {
        try {
            /* カメラ表示 */
            ^.codeScannerView.ShowCamera(Runtime.SourceTypeRearCamera, $TRUE);

            /* EAN13バーコードおよびQRコードのみを読み取ります */
            var format = Runtime.CODE_FORMAT_EAN13 + Runtime.CODE_FORMAT_QR_CODE;

            /* UPC-AバーコードをEAN13バーコードに読み替えます */
            var extraParams = new Array;
            extraParams["CONVERT_UPCA_TO_EAN13"] = true;

            /* 読み取り時の音声を指定します */
            var rtm = new Runtime;
            Number soundId = rtm.LoadSound("sound.wav");
            extraParams["SCAN_SOUND_ID"] = soundId;

            /* 読取開始 */
            ^.codeScannerView.StartCodeScanner(format, extraParams, rtm);
        } catch (e) {
            //.MessageBox(e.Method + "-" + str(e.Code));
            //.MessageBox(e.message);
        }
    }
}

Button btnStopScan{
    X = 120;
    Y = 320;
    Width = 100;
    Height = 40;
    Title = "スキャン停止";

 Function OnTouch( e ) {
        try {
            /* スキャン停止 */
            ^.codeScannerView.StopCodeScanner();

            /* カメラ停止 */
            ^.codeScannerView.HideCamera();
        } catch (e) {
            //.MessageBox(e.Method + "-" + str(e.Code));
            //.MessageBox(e.message);
        }
    }
}

関連項目

StartCodeScannerメソッド


CodeScannerViewイベント

API version 19

イベント

iOSAndroidWindows

CodeScannerViewクラスには以下のイベントが定義されています。

API | 名前 | 説明
19 | CodeScanned | StartCodeScannerメソッドでバーコードをスキャンした際に発行します。

クラス概要

基本クラスのイベント


CodeScannerView.CodeScannedイベント

StartCodeScannerメソッドでバーコードをスキャンした際に発行します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Number | Format | 読み取ったコードの種別 StartCodeScannerメソッドの引数formatに指定した種別のうちいずれかが格納されます。
String | Data | コードの読取結果の文字列


Fileクラス

Object
 | File

ローカルファイルを操作するクラスです。

デフォルトプロパティとValueType

デフォルトプロパティはFileNameです。ValueTypeの指定は無効です。


Fileプロパティ

API version 4

プロパティ

iOSAndroidWindows

Fileクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | FileName | R | String | ファイル名
4 | PathName | R | String | 物理ファイルパス

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


File.FileNameプロパティ

ファイル名を表します。

FileSystem.Openメソッドで開いたファイルは、Openメソッドの引数で指定した仮想ファイル名が格納されます。それ以外はPathNameプロパティと同様に物理ファイルパスが格納されます。

このプロパティは読み込み専用で変更することはできません。


File.PathNameプロパティ

開いたファイルの物理ファイルパス（フルパス）が格納されています。

このプロパティは読み込み専用で変更することはできません。


Fileメソッド

API version 4

メソッド

iOSAndroidWindows

Fileクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | Close | ファイルを閉じます
4 | Read | ファイルからデータを読み込みます
4 | ReadBinary | ファイルからバイナリデータを読み込みます
4 | ReadLine | ファイルから1行分の文字列データを読み込みます
4 | Seek | ファイルの現在の読み込み、書き込み位置を移動します
4 | Write | ファイルにデータを書き込みます
4 | WriteString | ファイルに文字列データを書き込みます

クラス概要

基本クラスのメソッド


File.Closeメソッド

説明

ファイルを閉じます。

FileSystem.Openメソッド等で開いたファイルは、読み込み、書き込みが終わったら必ず閉じてください。

呼出形式

f.Close( )

戻り値

なし

引数

なし

例外

RTM-8

ファイルは開かれていません

使用例

var fs = new FileSystem;
var f = fs.Open("hello.txt", FileSystem.OPEN_WRITE);
f.WriteString("hello");
f.Close();

関連項目

FileSystem.Open、FileSystem.OpenDialog、FileSystem.SaveDialogメソッド


File.Readメソッド

説明

ファイルからデータを読み込みます。

ファイルの現在の読み込み位置から、指定したサイズのデータを読み込みます。

呼出形式

var data = f.Read( [ size ] )

戻り値

読み込んだデータをByteArrayオブジェクトで返します

読み込むデータが無い場合は空のByteArrayを返します。

引数

integer size

読み込むサイズ

バイト単位で指定します。省略するか-1を指定するとファイルの最後まで読み込みます。

例外

RTM-8

ファイルは開かれていません

使用例

var fs = new FileSystem;
var fr = fs.Open("hello1.txt", FileSystem.OPEN_READ);
var fw = fs.Open("hello2.txt", FileSystem.OPEN_WRITE);
while (true) {
    var data = fr.Read(256);
    if (data.Length <= 0) {
        break;
    }
    print(data);
    fw.Write(data);
}
fr.Close();
fw.Close();

関連項目

ReadLine、ReadBinary、Writeメソッド


File.ReadBinaryメソッド

説明

ファイルからバイナリデータを読み込みます。

ファイルの現在の読み込み位置から、指定したサイズのデータを読み込み、ByteArrayオブジェクトで返します。

呼出形式

var data = f.ReadBinary( [ size ] )

戻り値

読み込んだバイナリデータのByteArrayオブジェクト

引数

integer size

読み込むサイズ

バイト単位で指定します。省略するか-1を指定するとファイルの最後まで読み込みます。

例外

RTM-8

ファイルは開かれていません

使用例

var fs = new FileSystem;
var fr = fs.Open("hello1.dat", FileSystem.OPEN_READ);
var fw = fs.Open("hello2.dat", FileSystem.OPEN_WRITE);
while (true) {
    var data = fr.ReadBinary(256);
    if (data.Length <= 0) {
        break;
    }
    fw.Write(data);
}
fr.Close();
fw.Close();

関連項目

Read、ReadLine、Writeメソッド

ByteArrayクラス


File.ReadLineメソッド

説明

ファイルから1行分の文字列データを読み込みます。

ファイルの現在の読み込み位置から、次の改行文字までの文字列データを読み込みます。

呼出形式

var data = f.ReadLine( )

戻り値

読み込んだ文字列データ

行末の改行文字も含まれます。ファイルの終わりに達して、これ以上読み込めない場合はnullを返します。

引数

なし

例外

RTM-8

ファイルは開かれていません

使用例

var fs = new FileSystem;
var fr = fs.Open("hello1.txt", FileSystem.OPEN_READ);
var fw = fs.Open("hello2.txt", FileSystem.OPEN_WRITE);
while (true) {
    var data = fr.ReadLine();
    if (data == null) {
        break;
    }
    print(data);
    fw.WriteString(data);
}
fr.Close();
fw.Close();

関連項目

Read、ReadBinary、WriteStringメソッド


File.Seekメソッド

説明

ファイルの現在の読み込み、書き込み位置を移動します。

呼出形式

f.Seek( offset )

戻り値

なし

引数

integer offset

新しい位置

バイト単位で指定します。

例外

RTM-8

ファイルは開かれていません

使用例

var fs = new FileSystem;
var f = fs.Open("hello.txt", FileSystem.OPEN_READ);
f.Seek(100);
var data = f.Read(10);
print(data, "\n");
f.Close();

関連項目


File.Writeメソッド

説明

ファイルにデータを書き込みます。

ファイルの現在の書き込み位置に、指定したデータを書き込みます。

呼出形式

f.Write( data )

戻り値

なし

引数

data

書き込むデータ

例外

RTM-8

ファイルは開かれていません

使用例

var fs = new FileSystem;
var fr = fs.Open("hello1.txt", FileSystem.OPEN_READ);
var fw = fs.Open("hello2.txt", FileSystem.OPEN_WRITE);
while (true) {
    var data = fr.Read(256);
    if (data.Length <= 0) {
        break;
    }
    print(data);
    fw.Write(data);
}
fr.Close();
fw.Close();

関連項目

Read、ReadBinary、WriteStringメソッド

データ型ごとの書き込み形式の違いについて

dataに指定する変数のデータ型によって、書き込まれる形式が以下のようになります。

データ型 | 例 | 説明
String | Write("abc") Write(new String("abc")); | 文字列データ 文字列データがUTF-8で書き込まれます。
integer | Write(10) | 整数値データ 4バイトの符号付き整数データとして書き込まれます。
Number | Write(1.2) Write(new Number(10)) | 数値（浮動小数点）データ 8バイトの浮動小数点データとして書き込まれます。
Date | Write(new Date()) | 日付データ Valueプロパティの値が8バイトの浮動小数点データとして書き込まれます
ByteArray | ReadBinaryメソッドで 読み込んだ結果など | バイナリデータ バイナリデータがそのまま書き込まれます。

常に文字列として書き込みたい場合は、WriteStringメソッドを使用してください。


File.WriteStringメソッド

説明

ファイルに文字列データを書き込みます。

ファイルの現在の書き込み位置に、指定した文字列データを書き込みます。

呼出形式

f.WriteString( data )

戻り値

なし

引数

String data

書き込む文字列データ

例外

RTM-8

ファイルは開かれていません

使用例

var fs = new FileSystem;
var fr = fs.Open("hello1.txt", FileSystem.OPEN_READ);
var fw = fs.Open("hello2.txt", FileSystem.OPEN_WRITE);
while (true) {
    var data = fr.ReadLine();
    if (data == null) {
        break;
    }
    print(data);
    fw.WriteString(data);
}
fr.Close();
fw.Close();

関連項目

ReadLine、Writeメソッド


Fileイベント

API version 4

イベント

iOSAndroidWindows

Fileクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


FileSystemクラス

API version 4

FileSystemクラス変更履歴

iOSAndroidWindows

Object
 | FileSystem

クライアントPCのファイルシステムを操作するクラスです。

デフォルトプロパティとValueType

デフォルトプロパティはPathNameです。ValueTypeの指定は無効です。

仮想ファイル名

FileSystemクラスは、ファイル名を仮想ファイル名として扱います。仮想ファイル名とは、特定のフォルダをルートフォルダとしてマップした、アクセス範囲に制約のあるファイル名です。ルートフォルダ以下のファイルだけがアクセス可能であり、ユーザの許可なくコンピュータ上のすべてのファイルに直接アクセスすることはできません。

FileSystemオブジェクトの初期化時に指定する属性（パブリック、プライベート）により、ルートフォルダにマップするフォルダは異なります。

仮想ファイル名の形式は、ファイルやフォルダを"/"（スラッシュ）で区切るという点を除けば、Windowsのファイルシステムと同様です。

仮想ファイル名は、カレントフォルダを基点とした相対パスとして扱われます。"/"から始まる絶対パスを指定した場合は、カレントフォルダに関わらず、ルートフォルダからの絶対パスとして扱われます。初期状態では、カレントフォルダはルートフォルダを指しています。

カレントフォルダはPathNameプロパティで取得でき、ChangeDirメソッドで変更できます。

（例）

（ルートフォルダ）
  ├ file1.txt          ･･･ (1)
  └ folder1            ･･･ (2)
     ├ file2.txt       ･･･ (3)
     └ folder2         ･･･ (4)
        └ file3.txt    ･･･ (5)

 | カレントフォルダ | 相対パス | 絶対パス
(1) | / | file1.txt | /file1.txt
 | /folder1 | ../file1.txt
 | /folder1/folder2 | ../../file1.txt
(2) | / | folder1 | /folder1
 | /folder1 | .
 | /folder1/folder2 | ..
(3) | / | folder1/file2.txt | /folder1/file2.txt
 | /folder1 | file2.txt
 | /folder1/folder2 | ../file2.txt
(4) | / | folder1/folder2 | /folder1/folder2
 | /folder1 | folder2
 | /folder1/folder2 | .
(5) | / | folder1/folder2/file3.txt | /folder1/folder2/file3.txt
 | /folder1 | folder2/file3.txt
 | /folder1/folder2 | file3.txt

パブリック属性

コンストラクタにパブリック属性を指定したFileSystemオブジェクトは、以下のフォルダをルートフォルダとしてマップします。

OS | ルートフォルダ
Android | /storage/emulated/0/Android/data/jp.co.opst.bizht.v1/files/FileSystem/root*1 *2

パブリック属性でマップされるフォルダは、すべてのCRSアプリケーションで共通のため、複数のCRSアプリケーションの間でファイルを共有できますが、ファイル名が衝突したり、不正にファイルの内容を参照されてしまう可能性があります。

プライベート属性

コンストラクタにプライベート属性を指定したFileSystemオブジェクトは、以下のフォルダをルートフォルダにマップします。

OS | ルートフォルダ
Android OS | /data/data/jp.co.opst.bizht.v1/files/FileSystem/private_root/(サーバ名)*1 *3 本ディレクトリはBiz/Browser HT以外からはアクセスできません。

プライベート属性でマップされるフォルダは、CRSアプリケーションをダウンロードしたサーバ名を含むため、サーバごとに個別にファイルを管理できます。別のサーバからダウンロードしたCRSプログラムからアクセスすることはできません。

また、プライベート属性のFileSystemオブジェクトは、Mountメソッドによりユーザが許可した任意のフォルダを仮想ファイル名にマウントすることができます。

ルートフォルダ外へのアクセス

ルートフォルダ以外の任意のファイルをアクセスするには、以下の方法があります。

・OpenDialogメソッド、SaveDialogメソッドによりユーザが選択した特定のファイルを開く

・Mountメソッドによりユーザが許可したフォルダを仮想ファイル名にマウントする（プライベート属性の場合）

プロパティ | メソッド | イベント

変更履歴
*1　Android OSのバージョンやのマルチユーザ機能使用時ではパスが異なる場合がありますのでご注意下さい。
*2　Biz/Browser AI(API Ver.6以前)では、"/sdcard/Android/data/jp.co.opst.bizai.v2/files/FileSystem/root"となります。
*3　Biz/Browser AI(API Ver.6以前)では、"/data/data/jp.co.opst.bizai.v2/files/FileSystem/private_root/(サーバ名)"となります。


FileSystemプロパティ

API version 4

プロパティ

iOSAndroidWindows

FileSystemクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | PathName | R | String | カレントフォルダの仮想ファイル名

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


FileSystem.PathNameプロパティ

カレントフォルダの仮想ファイル名を表します。

このプロパティは読み込み専用で変更することはできません。

カレントフォルダの扱いについては仮想ファイル名の項を参照してください。


FileSystemメソッド

API version 4

メソッド

iOSAndroidWindows

FileSystemクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | FileSystemオブジェクトを初期化します
4 | ChangeDir | カレントフォルダを変更します
4 | Copy | ファイル／フォルダをコピーします
21 | CopyDirectoryFromExternalStorage | 外部ストレージからディレクトリをコピーします
21 | CopyFileFromExternalStorage | 外部ストレージからファイルをコピーします
4 | CreateDir | 新しいフォルダを作成します
4 | CreateTempFile | 一時ファイルを作成します
4 | DeleteFile | ファイル／フォルダを削除します
4 | Exists | ファイル／フォルダの有無を確認します
4 | FindFiles | フォルダにあるファイルとフォルダの一覧を取得します
20 | GetFileTime | ファイルの日付情報を取得します
4 | GetLength | ファイルサイズを取得します
4 | IsDirectory | 仮想ファイル名がフォルダかどうか調べます
4 | IsFile | 仮想ファイル名がファイルかどうか調べます
4 | List | フォルダにあるファイルとフォルダの一覧を取得します
4 | ListFiles | フォルダにあるファイルの一覧を取得します
4 | MakePath | 文字列から仮想ファイル名を作成します
12 | MapContentUri | 仮想ファイル名を Android OSの "content://" 形式のURIに変換します
4 | MapPath | 仮想ファイル名を物理ファイル名に変換します
4 | Mount | フォルダをマウントします
4 | Open | ファイルを開きます
4 | OpenDialog | ダイアログで開くファイルを選択します
4 | Rename | ファイル／フォルダ名の変更、ファイル／フォルダの移動をします
4 | SaveDialog | ダイアログで保存するファイルを選択します
4 | SplitPath | 仮想ファイル名を各要素に分割します
4 | Suffix | ファイル名から拡張子を取り出します
4 | Unmount | マウントを解除します

クラス概要

基本クラスのメソッド


FileSystemコンストラクタ

API version 4

FileSystemコンストラクタ変更履歴

iOSAndroidWindows

説明

FileSystemオブジェクトを初期化します。

FileSystemオブジェクトは、パブリック属性またはプライベート属性を指定できます。

パブリック属性は、アプリケーションに関わらず同じルートフォルダを共有します。

プライベート属性は、サーバごとに独立したルートフォルダを持ちます。

呼出形式

var fs = new FileSystem( [ attr ] )

戻り値

FileSystemオブジェクト

引数

integer attr

FileSystemオブジェクトの属性

以下の値を指定します。

定数 | 説明
FileSystem.PUBLIC_ROOT | パブリック属性で初期化します
FileSystem.PRIVATE_ROOT | プライベート属性で初期化します
FileSystem.REMOVABLE_PUBLIC_ROOT *1 | SDカード等、取り外し可能なストレージのアプリケーション固有ディレクトリをルートフォルダとして初期化します。 実際のパスは端末によって異なります。 USBで接続した外付けストレージには対応していません。

省略した場合は、パブリック属性で初期化されます。

例外

RTM-28

ルートフォルダが作成できません

RTM-29

属性が不正です

使用例

var fs = new FileSystem(FileSystem.PRIVATE_ROOT);

関連項目

変更履歴
*1　API version 21から仕様変更されました。


FileSystem.ChangeDirメソッド

説明

カレントフォルダを変更します。

カレントフォルダの扱いについては仮想ファイル名の項を参照してください。

呼出形式

var f = fs.ChangeDir( path )

戻り値

カレントフォルダが変更できた場合は$TRUE、それ以外は$FALSEを返します。

引数

String path

新しいカレントフォルダの仮想ファイル名

例外

なし

使用例

var fs = new FileSystem;
fs.ChangeDir("/app");
var size = fs.GetLength("sample.txt");
print(size, "\n");

関連項目

PathNameプロパティ


FileSystem.Copyメソッド

説明

ファイルまたはフォルダをコピーします。

フォルダ名を指定した場合は、フォルダに含まれるファイルおよびサブフォルダもすべてコピーされます。

コピー先の名前と同じ名前のファイルまたはフォルダが既に存在する場合は、以下の動作になります。

コピー元 | コピー先 | 動作
ファイル | ファイル | 上書き確認ダイアログが表示されます。OKを選択するとファイルが上書きされます。
ファイル | フォルダ | コピー元のファイルは、コピー先のフォルダ内にコピーされます。
フォルダ | ファイル | 上書き確認ダイアログが表示されます。OKを選択するとファイルが削除され、フォルダがコピーされます。
フォルダ | フォルダ | コピー元のフォルダは、コピー先のフォルダ内にコピーします。

フォルダを作成する必要がある場合は、確認ダイアログが表示されます。

ファイル操作でエラーが発生した場合は、メッセージボックスが表示されます。

呼出形式

var f = fs.Copy( srcFile, destFile [, flag ] )

戻り値

コピーが正常に完了した場合は$TRUE、それ以外は$FALSEを返します。

引数

String srcFile

コピー元の仮想ファイル名

String destFile

コピー先の仮想ファイル名

integer flag

動作を以下の組み合わせで指定します

定数 | 説明
FileSystem.NOCONFIRM | 確認ダイアログを表示しません
FileSystem.NOERRORUI | エラー表示を行いません

flagを省略した場合は、

・確認ダイアログを表示

・エラー時はメッセージボックスを表示

となります。

例外

なし

使用例

var fs = new FileSystem;
if (fs.Copy("/app1", "/app2", FileSystem.NOCONFIRM + FileSystem.NOERRORUI)) {
    MessageBox("コピーしました");
}

関連項目

DeleteFile、Renameメソッド


FileSystem.CopyDirectoryFromExternalStorageメソッド

説明

USBで接続したストレージ等の外部ストレージから、ディレクトリをコピーします。

このメソッドを呼び出すとディレクトリ選択画面が表示され、選択したディレクトリとディレクトリ以下のファイル/ディレクトリがコピーされます。

ただし、一部のディレクトリはOSの制限によりコピー元として選択できない場合があります。

呼出形式

fs.CopyDirectoryFromExternalStorage( path [, mode] )

戻り値

なし

引数

String path

保存先ディレクトリのパスを指定します。

存在するディレクトリのパスを指定した場合、指定したディレクトリ以下に保存します。

integer mode

上書き保存に関する動作を指定します。

以下の値を指定します。

定数 | 値 | 説明
FileSystem.ALWAYS_OVERWRITE | 0 | 常に上書きします。
FileSystem.NOT_COPY_FILE_EXISTS | 1 | 上書きが発生するかどうかを最初に確認し、発生する場合は例外RTM-131もしくはRTM-132を発生させてコピーしません。
FileSystem.STOP_COPY_FILE_EXISTS | 2 | コピー中に同名のファイルが見つかったら、その時点で例外RTM-131もしくはRTM-132を発生させてコピーを中止します。
FileSystem.NOT_OVERWRITE | 3 | コピー中に同名のファイルが見つかったら、上書きせずコピーを継続します。

省略した場合は、FileSystem.ALWAYS_OVERWRITEと同じ動作になります。

例外

FUNC-4

引数の値が不正です

RTM-24

パスが不正です

RTM-131

ファイル操作に失敗しました

RTM-132

このフォルダには既に’xxx’ファイルが存在します。

使用例

var fs = new FileSystem;
fs.CopyDirectoryFromExternalStorage("/temp", FileSystem.NOT_OVERWRITE);

関連項目

CopyFileFromExternalStorageメソッド


FileSystem.CopyFileFromExternalStorageメソッド

説明

USBで接続したストレージ等の外部ストレージから、ファイルをコピーします。

このメソッドを呼び出すとファイル選択画面が表示され、選択したファイルがコピーされます。

ただし、一部のディレクトリはOSの制限によりコピー元として選択できない場合があります。

呼出形式

fs.CopyFileFromExternalStorage( path [, mimeType [,mode]])

戻り値

なし

引数

String path

コピー先のファイルパスを指定します。

ディレクトリのパスが指定された場合、指定されたディレクトリ以下にファイルを保存します。

String mimeType

"image/jpeg"といったMIME Typeを指定します。

指定したMIME Typeに対応したファイルだけが表示されます。

省略した場合は、"*/*"を指定した場合と同じ動作になります。

integer mode

上書き保存に関する動作を指定します。

以下の値を指定します。

定数 | 値 | 説明
FileSystem.ALWAYS_OVERWRITE | 0 | 同名ファイルを上書きします。
FileSystem.NOT_COPY_FILE_EXISTS | 1 | コピー先に同名ファイルが存在する場合は例外RTM-132を発生させてコピーしません。
FileSystem.NOT_OVERWRITE | 3 | コピー先に同名ファイルが存在する場合、例外を発生させず処理を終了します。

省略した場合は、FileSystem.ALWAYS_OVERWRITEと同じ動作になります。

例外

FUNC-4

引数の値が不正です

RTM-24

パスが不正です

RTM-131

ファイル操作に失敗しました

RTM-132

このフォルダには既に’xxx’ファイルが存在します。

使用例

var fs = new FileSystem;
fs.CopyFileFromExternalStorage("/temp/sample.jpg", "image/jpeg", FileSystem.NOT_OVERWRITE);

関連項目

CopyDirectoryFromExternalStorageメソッド


FileSystem.CreateDirメソッド

説明

新しいフォルダを作成します。

呼出形式

var f = fs.CreateDir( path )

戻り値

フォルダが作成できた場合は$TRUE、それ以外は$FALSEを返します。

引数

String path

作成するフォルダの仮想ファイル名

例外

なし

使用例

var fs = new FileSystem;
if (fs.CreateDir("/newfolder")) {
    MessageBox("フォルダを作成しました");
}

関連項目


FileSystem.CreateTempFileメソッド

説明

一時ファイルを作成します。

一時ファイルはすでに存在するファイル名と重複しない名前で、/tempフォルダに作成されます。

CreateTempFileメソッドは、ファイル名を生成するだけではなく実際に空のファイルを作成します。

作成されたファイルは、自動的に削除されることはありませんので、不要になったらDeleteFileメソッドで削除してください。

呼出形式

var path = fs.CreateTempFile( prefix )

戻り値

一時ファイルの仮想ファイル名

ファイルを作成できない場合はnullを返します。

引数

String preix

作成する一時ファイルのファイル名の接頭文字

先頭3文字までが有効です。接頭文字として次の文字を使用することはできません。

\/:,;*?"<>| および ..（連続する2個のピリオド）

例外

RTM-12

ファイル名として不正な文字が指定されています

使用例

var fs = new FileSystem;
var temp = fs.CreateTempFile("app");
var f = fs.Open(temp, FileSystem.OPEN_WRITE);
f.Write("Hello");
f.Close();

関連項目

DeleteFile、Openメソッド


FileSystem.DeleteFileメソッド

説明

ファイルまたはフォルダを削除します。

フォルダ名を指定した場合は、フォルダに含まれるファイルおよびサブフォルダもすべて削除されます。

ファイルまたはフォルダを削除する前に、確認ダイアログが表示されます。OKを選択するとファイル、フォルダが削除されます。

ファイル操作でエラーが発生した場合は、メッセージボックスが表示されます。

呼出形式

var f = fs.DeleteFile( filename [, flag ] )

戻り値

削除が正常に完了した場合は$TRUE、それ以外は$FALSEを返します。

引数

String filename

削除するファイルの仮想ファイル名

integer flag

動作を以下の組み合わせで指定します

定数 | 説明
FileSystem.NOCONFIRM | 確認ダイアログを表示しません
FileSystem.NOERRORUI | エラー表示を行いません

flagを省略した場合は、

・確認ダイアログを表示

・エラー時はメッセージボックスを表示

となります。

例外

なし

使用例

var fs = new FileSystem;
if (fs.DeleteFile("/app", FileSystem.NOCONFIRM + FileSystem.NOERRORUI)) {
    MessageBox("削除しました");
}

関連項目

Rename、Copyメソッド


FileSystem.Existsメソッド

説明

ファイルまたはフォルダの有無を確認します。

呼出形式

var f = fs.Exists( filename )

戻り値

指定したファイルまたはフォルダが存在する場合は$TRUE、それ以外は$FALSEを返します。

引数

String filename

確認するファイルまたはフォルダの仮想ファイル名

例外

なし

使用例

var fs = new FileSystem;
var path = "/app";
if (fs.Exists(path)) {
    if (fs.IsDirectory(path)) {
        MessageBox(path + "はフォルダです");
    } else if (fs.IsFile(path)) {
        MessageBox(path + "はファイルです");
    }
} else {
    MessageBox(path + "は存在しません");
}

関連項目

IsDirectory、IsFileメソッド


FileSystem.FindFilesメソッド

説明

フォルダにあるファイルとフォルダの一覧を取得します。

呼出形式

var list = fs.FindFiles( [ path [, type ] ] )

戻り値

見つかったファイル、フォルダの一覧

仮想ファイル名の格納されたString配列が返ります。

引数

String path

一覧を取得するフォルダの仮想ファイル名

ファイル名の一部に"*"や"?"によるワイルドカードを指定することもできます。

フォルダ名に対するワイルドカード指定（"/dir/a*/data.txt"など）はできません。

pathを省略した場合、カレントフォルダにあるすべてのファイルを検索します。

integer type

一覧に含めるファイルのタイプ

以下の値を指定します。

定数 | 説明
FileSystem.FIND_FILE | 一般ファイルを含めます
FileSystem.FIND_FOLDER | フォルダを含めます

ファイルとフォルダの両方を含める場合は、

FileSystem.FIND_FILE + FileSystem.FIND_FOLDER

を指定します。

typeを省略した場合、検索可能なすべての種類が含まれます。

例外

なし

使用例

var fs = new FileSystem;
var list = fs.FindFiles("/*.txt", FileSystem.FIND_FILE);
for (var f in list) {
    print(list[f], "\n");
}

関連項目


FileSystem.GetFileTimeメソッド

説明

ファイルの日付情報を取得します。

呼出形式

var times = fs.GetFileTime( path )

戻り値

下記の情報を格納したRecord

型 | 名前 | 説明
Date | CreationTime | ファイル作成日
Date | LastAccessTime | 最終ファイルアクセス日 Fileクラスによる書き込み、読み込みを行った場合のみ更新されます。
Date | LastWriteTime | 最終ファイル変更日

引数

String path

タイムスタンプを取得する仮想ファイル名

例外

RTM-13

指定のファイル'xxxx'は見つかりませんでした

使用例

var fs = new FileSystem;
var dates = fs.GetFileTime("/sample.doc");
print("creation time:", dates.CreationTime.ToString(),"\n");
print("last access time:", dates.LastAccessTime.ToString(), "\n");
print("last write time:", dates.LastWriteTime.ToString(), "\n");

関連項目


FileSystem.GetLengthメソッド

説明

ファイルサイズを取得します。

呼出形式

var size = fs.GetLength( filename )

戻り値

指定したファイルのファイルサイズ

バイト単位の数値を返します。存在しないファイルやフォルダの場合など、サイズが取得できない場合は-1を返します。

符号付き64ビット整数の上限値までのファイルサイズを取得することができますが、値にはNumber型の有効桁数の制限があります。

引数

String filename

ファイルサイズを取得する仮想ファイル名

例外

なし

使用例

var fs = new FileSystem;
var path = "/sample.txt";
if (fs.Exists(path) && fs.IsFile(path)) {
    var len = fs.GetLength(path);
    MessageBox(strf("%1のファイルサイズは%2バイトです", path, len));
}

関連項目


FileSystem.IsDirectoryメソッド

説明

仮想ファイル名がフォルダかどうか調べます。

呼出形式

var f = fs.IsDirectory( filename )

戻り値

指定した仮想ファイル名がフォルダの場合は$TRUE、それ以外は$FALSEを返します。

引数

String filename

確認する仮想ファイル名

例外

なし

使用例

var fs = new FileSystem;
var path = "/app";
if (fs.Exists(path)) {
    if (fs.IsDirectory(path)) {
        MessageBox(path + "はフォルダです");
    } else if (fs.IsFile(path)) {
        MessageBox(path + "はファイルです");
    }
} else {
    MessageBox(path + "は存在しません");
}

関連項目

Exists、IsFileメソッド


FileSystem.IsFileメソッド

説明

仮想ファイル名がファイルかどうか調べます。

呼出形式

var f = fs.IsFile( filename )

戻り値

指定した仮想ファイル名がファイルの場合は$TRUE、それ以外のは$FALSEを返します。

引数

String filename

確認する仮想ファイル名

例外

なし

使用例

var fs = new FileSystem;
var path = "/app";
if (fs.Exists(path)) {
    if (fs.IsDirectory(path)) {
        MessageBox(path + "はフォルダです");
    } else if (fs.IsFile(path)) {
        MessageBox(path + "はファイルです");
    }
} else {
    MessageBox(path + "は存在しません");
}

関連項目

Exists、IsDirectoryメソッド


FileSystem.Listメソッド

説明

FindFilesメソッドに置き換えられました。

過去のバージョンとの互換性ために残されています。

フォルダにあるファイルとフォルダの一覧を取得します。

呼出形式

var list = fs.List( path )

戻り値

見つかったファイル、フォルダの一覧

仮想ファイル名の格納されたString配列が返ります。

引数

String path

一覧を取得するフォルダの仮想ファイル名

*や?によるワイルドカードも指定できます。

例外

なし

使用例

var fs = new FileSystem;
var list = fs.List("/");
for (var f in list) {
    print(list[f], "\n");
}

関連項目

FindFilesメソッド


FileSystem.ListFilesメソッド

説明

FindFilesメソッドに置き換えられました。

過去のバージョンとの互換性ために残されています。

フォルダにあるファイルの一覧を取得します。対象となるファイルは通常のファイルだけでフォルダや特殊ファイルは含まれません。

呼出形式

var list = fs.ListFiles( path )

戻り値

見つかったファイルの一覧

仮想ファイル名の格納されたString配列が返ります。

引数

String path

一覧を取得するフォルダの仮想ファイル名

*や?によるワイルドカードも指定できます。

例外

なし

使用例

var fs = new FileSystem;
var list = fs.ListFiles("/*.txt");
for (var f in list) {
    print(list[f], "\n");
}

関連項目

FindFilesメソッド


FileSystem.MakePathメソッド

説明

文字列から仮想ファイル名を作成します。

指定した各文字列を区切り文字"/"で接続します。

呼出形式

var path = fs.MakePath( path1 [, path2 [, path3 … ] ] )

戻り値

作成した仮想ファイル名

複数の"/"が連続しないように調整されます。

引数

String path

各要素を表す文字列

例外

なし

使用例

var fs = new FileSystem;
var path = fs.MakePath("/aaa/", "/bbb", "ccc.txt");
print(path, "\n");

関連項目

SplitPath、Suffixメソッド


FileSystem.MapContentUriメソッド

説明

仮想ファイル名を Android OSの "content://" 形式のURIに変換します。

Intentクラスなどで外部アプリに対しファイルパスを共有するなどの場合、このメソッドで生成したパスを用いる必要があります。

呼出形式

var path = fs.MapContentUri( path )

戻り値

変換した "content://" 形式のURI文字列

引数

String path

変換する仮想ファイル名

例外

RTM-1

ファイルは物理パスにマップできません

RTM-24

パスが不正です

使用例

var fs = new FileSystem;
var path = fs.MapContentUri("/temp/sample.doc");
print(path, "\n");

関連項目

Intent.Dataプロパティ、Intent.PutExtraメソッド


FileSystem.MapPathメソッド

説明

仮想ファイル名を物理ファイル名に変換します。

呼出形式

var path = fs.MapPath( path )

戻り値

変換した物理ファイル名

引数

String path

変換する仮想ファイル名

例外

RTM-1

ファイルは物理パスにマップできません

使用例

var fs = new FileSystem;
var path = fs.MapPath("/temp/sample.doc");
print(path, "\n");

関連項目

Mountメソッド


FileSystem.Mountメソッド

説明

任意のフォルダを仮想ファイル名にマウントします。

例えば、C:\tempに対して/app/dataのような仮想ファイル名でアクセスできるようになります。

Mountメソッドは、プライベート属性の場合のみ呼び出すことができ、パブリック属性の場合はRTM-16の例外が発生します。

マウントに成功すると、それ以降は仮想ファイル名でマウントしたフォルダにアクセスできます。Unmountメソッドでマウントを解除できます。

マウントされた状態は、マウントしたFileSystemオブジェクトのみ有効です。複数のFileSystemオブジェクト間でマウント状態が共有されることはありません。

セキュリティ警告ダイアログ

Mountメソッドを呼び出すと以下のセキュリティ警告ダイアログが表示されます。

このダイアログでユーザがOKを選択しない限りマウントは成功しません。キャンセルを選択した場合、RTM-19の例外が発生します。

マウントされるフォルダは「別のフォルダを選択」によりユーザが選択したフォルダです。マウント対象のフォルダ名を指定した場合はフォルダ選択の初期値となりますが、ユーザの選択が優先されます。実際にユーザがどの物理フォルダを選択したかはMapPathメソッドで確認できます。

セキュリティ上の理由から、システム属性のフォルダは選択できません。

なお、通常のフォルダにシステム属性のファイルやフォルダが含まれている場合は選択することができます。

セキュリティ警告ダイアログで「今後、このメッセージを表示しない」をチェックしてOKを選択した場合、以降のマウントでは後述のマウント情報の記録の条件が一致すれば、警告ダイアログを表示せずに前回と同じフォルダに自動的にマウントします。

ただし、フォルダが削除されていてアクセスできないなど、そのフォルダがマウントの対象として指定できない状態に変わっている場合は、再度セキュリティ警告ダイアログが表示されます。

マウントポイント

マウントするフォルダにアクセスするための仮想ファイル名がマウントポイントです。

マウントポイントにルートフォルダ（"/"）を指定することはできません。必ず、名前を指定する必要があります。

すでに同じマウントポイントにマウントが行われている場合は、RTM-17の例外が発生します。

マウントポイントは、実際のフォルダが存在する必要はありません。例えば、ルートフォルダ以外のフォルダが存在しない状態でも、/app/dataをマウントポイントにできます。マウントポイントに実際のフォルダが存在する場合は、マウントにより隠されてアクセスできなくなります。

マウント情報のローカルコンピュータへの記録

マウントに成功すると、マウントしたフォルダやセキュリティ警告ダイアログの情報が、マウント情報としてローカルコンピュータに記録され、以降、同じ条件でマウントするときに使用されます。

マウント情報は、以下の条件をキーにして記録されます。

・ログインユーザ

・CRSをダウンロードしたサーバ名

・マウントポイントの仮想ファイル名

例えば、セキュリティ警告ダイアログで「今後、このメッセージを表示しない」を選択した場合は、この記録されたマウント情報を使ってマウントします。

マウント情報は、セキュリティ警告ダイアログで「キャンセル」を選択したときや、Unmountメソッドでマウント記録の削除を指定したときに削除されます。

セキュリティレベルによる動作の違い

レベル | 説明
0 | 警告ダイアログは表示されません。 マウント情報がローカルコンピュータに記録されていない場合（初回マウント時など）は、folderに指定したフォルダに即座にマウントします。
1
2 | 「今後、メッセージを表示しない」を選択後は警告ダイアログは表示されません。
3
4 | 常に警告ダイアログを表示します。

noConfirmパラメータに$TRUEを指定すると警告ダイアログは表示されずにマウントされます。

また、警告ダイアログの「今後、このメッセージを表示しない」をチェックしたと見なされます。

Android版
Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、OSに対してユーザー操作で許可をとる必要があります。
詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

fs.Mount( purpose, path [, folder [, noConfirm ] ] )

戻り値

なし

引数

String purpose

マウント確認ダイアログの「利用目的」欄に表示される文字列

String path

マウントポイントとなる仮想ファイル名

String folder

マウント対象のフォルダ名

マウントポイントに対応するマウント情報がローカルコンピュータに記録されている場合は無視されます。

boolean noConfirm

マウント確認ダイアログを表示しない

例外

RTM-16

プライベートファイルシステム以外のマウント操作はできません

RTM-17

マウントポイントには既にフォルダがマウントされています

RTM-18

レジストリアクセスエラー

RTM-19

マウントはユーザにより中止されました

RTM-23

ルートフォルダにマウントすることはできません

RTM-24

パスが不正です

使用例

var fs = new FileSystem(FileSystem.PRIVATE_ROOT);
var path = "/app/data";
fs.Mount("データフォルダ", path, "c:\\temp");
var f = fs.Open(fs.MakePath(path, "sample.txt"), FileSystem.OPEN_WRITE);
f.WriteString("sample");
f.Close();
fs.Unmount(path);

関連項目

FileSystemコンストラクタ

MapPath、Unmountメソッド


FileSystem.Openメソッド

説明

ファイルを開きます。

開いたファイルはFileオブジェクトに割り当てられます。

呼出形式

var f = fs.Open( fileName, mode )

戻り値

開いたファイルのFileオブジェクト

引数

String fileName

開くファイルの仮想ファイル名

integer mode

オープンモード

以下の値を指定します。

定数 | 説明
FileSystem.OPEN_READ | 読み込みモード ファイルを読み込む場合に指定します。
FileSystem.OPEN_WRITE | 書き込みモード ファイルに書き込む場合に指定します。既存のファイルを開いた場合、そのファイルの内容は破棄して、ファイルの最初から書き込みます。
FileSystem.OPEN_APPEND | 追記モード ファイルに書き込む場合に指定します。既存のファイルを開いた場合、そのファイルの内容に追記します。

例外

RTM-3

ファイル'xxx'をオープンできませんでした

RTM-34

このコンピュータは、実行ブロック機能をサポートしていません

RTM-35

ファイル’xxx’のボリュームパスが見つかりませんでした

RTM-36

ボリュームパス’xxx’のボリューム情報にアクセスできませんでした

RTM-37

ボリュームパス’xxx’は実行ブロック機能をサポートしていません

RTM-38

ゾーン識別ファイル’xxx’が作成できませんでした

RTM-39

ゾーン識別ファイル’xxx’の書き込みに失敗しました

RTM-40

OPEN_WRITEモード以外でファイル属性を指定することはできません

使用例

var fs = new FileSystem;
var f = fs.Open("/sample.txt", FileSystem.OPEN_READ);
var data = f.Read();
f.Close();

関連項目

Fileクラス


FileSystem.OpenDialogメソッド

説明

ダイアログで開くファイルを選択します。

ファイルを開くダイアログを表示し、ユーザが開くファイルを選択します。選択したファイルは読み込みモードで開かれ、Fileオブジェクトに割り当てられます。

ダイアログでキャンセルが選択された場合は、PKG-21例外が発生します。

noConfirmパラメータに$TRUEを指定すると警告ダイアログは表示されずにマウントされます。

また、警告ダイアログの「今後、このメッセージを表示しない」をチェックしたと見なされます。

Android版
Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、OSに対してユーザー操作で許可をとる必要があります。
詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

var f = fs.OpenDialog( title, filter, suffix, fileName )

戻り値

開いたファイルのFileオブジェクト

引数

String title

ダイアログに表示するタイトル

String filter

ダイアログに表示するファイル名のフィルタ

表示する内容とワイルドカードのペアを"="で接続して指定します。

複数のワイルドカードを指定する場合は、";"で区切ります。複数のフィルタを指定する場合、"/"で区切ります。

ファイル名として有効な文字とワイルドカード文字"*"、"?"だけが指定できます。空白文字を含めることはできません。

（例）

フィルタ文字列 | 表示する内容 | 表示されるファイル
"テキストファイル(*.txt)=*.txt" | テキストファイル(*.txt) | 拡張子がtxtのファイル
"テキスト(*.txt,*.log)=*.txt;*.log" | テキスト(*.txt,*.log) | 拡張子がtxtとlogのファイル
"テキスト形式=*.txt/ワープロ形式=*.doc" | テキスト形式 | 拡張子がtxtのファイル
 | ワープロ形式 | 拡張子がdocのファイル
"すべてのファイル=*.*" | すべてのファイル | すべてのファイル

String suffix

標準の拡張子

ユーザがファイル名に拡張子を付加しない場合に、ピリオドとsuffixに指定した文字の左から3文字が拡張子として採用されます。suffixにはファイル名として有効な文字だけが指定できます。

String fileName

ファイル名の初期値

絶対パスを含んだファイル名を指定すると初期フォルダを指定することができます。

例外

RTM-3

ファイルをオープンできません

PKG-19

ファイル名が不正です

PKG-20

ファイルセレクションダイアログが開けません

PKG-21

ファイル選択はユーザにより中止されました

使用例

var fs = new FileSystem;
var f = fs.OpenDialog("ファイルを開く", "テキストファイル(*.txt)=*.txt", "txt", "Readme.txt");
var data = f.Read();
f.Close();

関連項目

Open、SaveDialogメソッド

Fileクラス


FileSystem.Renameメソッド

説明

ファイル名またはフォルダ名を変更します。

変更前と変更後で親フォルダが異なる場合、ファイルまたはフォルダは移動されます。

変更後の名前と同じ名前のファイルまたはフォルダが既に存在する場合は、以下の動作になります。

変更前 | 変更後 | 動作
ファイル | ファイル | 上書き確認ダイアログが表示されます。OKを選択するとファイルが上書きされます。
ファイル | フォルダ | 変更前のファイルは、変更後のフォルダ内に移動します。
フォルダ | ファイル | 上書き確認ダイアログが表示されます。OKを選択するとファイルが削除され、フォルダが移動（名前が変更）されます。
フォルダ | フォルダ | 変更前のフォルダは、変更後のフォルダ内に移動します。

フォルダを作成する必要がある場合は、確認ダイアログが表示されます。

ファイル操作でエラーが発生した場合は、メッセージボックスが表示されます。

呼出形式

var f = fs.Rename( oldName, newName [, flag ] )

戻り値

名前の変更が正常に完了した場合は$TRUE、それ以外は$FALSEを返します。

引数

String oldName

変更前の仮想ファイル名

String newName

変更後の仮想ファイル名

integer flag

動作を以下の組み合わせで指定します

定数 | 説明
FileSystem.NOCONFIRM | 確認ダイアログを表示しません
FileSystem.NOERRORUI | エラー表示を行いません

flagを省略した場合は、

・確認ダイアログを表示

・エラー時はメッセージボックスを表示

となります。

例外

なし

使用例

var fs = new FileSystem;
if (fs.Rename("/app1", "/app2", FileSystem.NOCONFIRM + FileSystem.NOERRORUI)) {
    MessageBox("名前を変更しました");
}

関連項目

DeleteFile、Copyメソッド


FileSystem.SaveDialogメソッド

説明

ダイアログで保存するファイルを選択します。

ファイル保存ダイアログを表示し、ユーザが保存するファイルを選択します。選択したファイルは書き込みモードで開かれ、Fileオブジェクトに割り当てられます。

ダイアログでキャンセルが選択された場合は、PKG-21例外が発生します。

Android版
Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、OSに対してユーザー操作で許可をとる必要があります。
詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

var f = fs.SaveDialog( title, filter, suffix, fileName )

戻り値

開いたファイルのFileオブジェクト

引数

String title

ダイアログに表示するタイトル

String filter

ダイアログに表示するファイル名のフィルタ

表示する内容とワイルドカードのペアを"="で接続して指定します。

複数のワイルドカードを指定する場合は、";"で区切ります。複数のフィルタを指定する場合、"/"で区切ります。

ファイル名として有効な文字とワイルドカード文字"*"、"?"だけが指定できます。空白文字を含めることはできません。

（例）

フィルタ文字列 | 表示する内容 | 表示されるファイル
"テキストファイル(*.txt)=*.txt" | テキストファイル(*.txt) | 拡張子がtxtのファイル
"テキスト(*.txt,*.log)=*.txt;*.log" | テキスト(*.txt,*.log) | 拡張子がtxtとlogのファイル
"テキスト形式=*.txt/ワープロ形式=*.doc" | テキスト形式 | 拡張子がtxtのファイル
 | ワープロ形式 | 拡張子がdocのファイル
"すべてのファイル=*.*" | すべてのファイル | すべてのファイル

String suffix

標準の拡張子

ユーザがファイル名に拡張子を付加しない場合に、ピリオドとsuffixに指定した文字の左から3文字が拡張子として採用されます。suffixにはファイル名として有効な文字だけが指定できます。

String fileName

ファイル名の初期値

絶対パスを含んだファイル名を指定すると初期フォルダを指定することができます。

例外

RTM-3

ファイルをオープンできません

PKG-19

ファイル名が不正です

PKG-20

ファイルセレクションダイアログが開けません

PKG-21

ファイル選択はユーザにより中止されました

RTM-34

このコンピュータは、実行ブロック機能をサポートしていません

RTM-35

ファイル’xxx’のボリュームパスが見つかりませんでした

RTM-36

ボリュームパス’xxx’のボリューム情報にアクセスできませんでした

RTM-37

ボリュームパス’xxx’は実行ブロック機能をサポートしていません

RTM-38

ゾーン識別ファイル’xxx’が作成できませんでした

RTM-39

ゾーン識別ファイル’xxx’の書き込みに失敗しました

RTM-40

OPEN_WRITEモード以外でファイル属性を指定することはできません

使用例

var fs = new FileSystem;
var f = fs.SaveDialog("保存", "テキストファイル(*.txt)=*.txt", "txt", "Readme.txt");
var data = "サンプル";
f.Write(data);
f.Close();

関連項目

Open、OpenDialogメソッド

Fileクラス


FileSystem.SplitPathメソッド

説明

仮想ファイル名を区切り文字"/"で各要素に分割します。

呼出形式

var f = fs.SplitPath( path )

戻り値

分割した各要素を格納したString配列

各要素に"/"は含まれません。

引数

String path

分割する仮想ファイル名

例外

なし

使用例

var fs = new FileSystem;
var n = fs.SplitPath("/aaa/bbb/ccc.txt");
for (var f = 0; f < n.Length; f++) {
    print(n[f], "\n");
}

関連項目

MakePath、Suffixメソッド


FileSystem.Suffixメソッド

説明

仮想ファイル名の拡張子を取り出します

最後のピリオド以降の文字列を拡張子と見なします。

呼出形式

var ex = fs.Suffix( path )

戻り値

仮想ファイル名の拡張子

ピリオドは含まれません。

引数

String path

拡張子を取り出す仮想ファイル名

例外

なし

使用例

var fs = new FileSystem;
var ext = fs.Suffix("/aaa/bbb/ccc.txt");
print(ext, "\n");

関連項目

MakePath、SplitPathメソッド


FileSystem.Unmountメソッド

説明

マウントを解除します。

マウントについては、Mountメソッドを参照してください。

呼出形式

fs.Unmount( path [, flag ] )

戻り値

なし

引数

String path

マウントを解除するマウントポイントの仮想ファイル名

boolean flag

マウント記録削除フラグ

$TRUEを指定するとマウント記録を削除します。それ以外は削除しません。

省略した場合は削除しません。

マウント記録については、Mountメソッドの説明を参照してください。

例外

RTM-16

プライベートファイルシステム以外のマウント操作はできません

RTM-20

マウントポイントにマウントされているフォルダはありません

使用例

var fs = new FileSystem(FileSystem.PRIVATE_ROOT);
var path = "/app/data";
fs.Mount("データフォルダ", path, "c:\\temp");
var f = fs.Open(fs.MakePath(path, "sample.txt"), FileSystem.OPEN_WRITE);
f.WriteString("sample");
f.Close();
fs.Unmount(path);

関連項目

Mountメソッド


FileSystemイベント

API version 4

イベント

iOSAndroidWindows

FileSystemクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


NfcTagConnectionクラス

API version 14

NfcTagConnectionクラス変更履歴

iOSAndroidWindows

Object
 | NfcTagConnection

NFCタグとの接続を管理するクラスです。

Runtime.DiscoverNfcTagメソッドの戻り値として返ります。

タグとのやりとりが終わった場合、確実にNfcTagConnection.Closeメソッドを呼び出してください。

NfcTagConnection.Closeメソッドが呼び出されるかNfcTagConnectionがガベージコレクションにより回収されるまで、Runtime.DiscoverNfcTagメソッドで表示されているダイアログは閉じられません。またRuntime.DiscoverNfcTagメソッドを続けて呼び出すこともできません。

NFCタグ探索ダイアログについて

Runtime.DiscoverNfcTagメソッドを呼び出した際、タグ探索中であることを示す下記のようなダイアログが表示されます。

※下記の画面はiOS 13が動作するiPhoneのものです。 実際の表示はOSバージョンやプラットフォームにより異なります。

図1 タグ探索時の表示

このダイアログが表示されている間に端末にNFCタグをかざすことで通信が開始されます。

キャンセルボタンを押すことでタグ探索を中断することが可能です。

ダイアログ下部に表示する文字列はRuntime.DiscoverNfcTagメソッドの第一引数で指定できます。

また、一通りの処理が終了した際にNfcTagConnection.Closeメソッドを呼び出すことで、下記のようなダイアログが表示されます。

図2 タグ読取成功を示す表示

図3 タグ読取失敗を示す表示

タグ読取成功時およびタグ読取失敗時のメッセージはNfcTagConnection.Closeメソッドの第二引数で指定できます。

なお、このダイアログは一定時間の経過か、下方向にスワイプすることで閉じることが可能です。

対応するNFCタグについて

Biz/Browser HTは、Felica、Mifare Classic（*1）に対応したタグと通信することができます。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。

プロパティ | メソッド | イベント

変更履歴
*1　API version 16で追加されました。


NfcTagConnectionプロパティ

API version 14

プロパティ

iOSAndroidWindows

NfcTagConnectionクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
14 | IsFelicaTag | R | boolean | 接続中のタグがFeliCaタグか否か
16 | IsMifareClassicTag | R | boolean | 接続中のタグがMifare Classicタグか否か
14 | TagId | R | ByteArray | 接続中のタグのID

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


NfcTagConnection.IsFelicaTagプロパティ

接続中のタグがFeliCaタグであれば$TRUEを、そうでなければ$FALSEを示します。

このプロパティは読み込み専用で変更することはできません。


NfcTagConnection.IsMifareClassicTagプロパティ

接続中のタグがMifare Classicタグであれば$TRUEを、そうでなければ$FALSEを示します。

このプロパティは読み込み専用で変更することはできません。


NfcTagConnection.TagIdプロパティ

接続中のタグのIDが格納されます。格納されるIDはタグの種類毎に異なります。

IsFelicaTagプロパティが$TRUEの場合は、デフォルトのシステムコードに対応するIDmが格納されます。

このプロパティは読み込み専用で変更することはできません。


NfcTagConnectionメソッド

API version 14

メソッド

iOSAndroidWindows

NfcTagConnectionクラスには以下のメソッドが定義されています。

API | 名前 | 説明
14 | Close | タグとの接続を終了し、NFCタグ探索ダイアログを閉じます
14 | Felica_Polling | NFCタグに対しFeliCaのPollingコマンドを発行します
14 | Felica_Read | NFCタグに対しFeliCaのRead Without Encryptionコマンドを発行します
14 | Felica_Write | NFCタグに対しFeliCaのWrite Without Encryptionコマンドを発行します
16 | Mifare_AuthenticateSectorWithKeyA | Mifare Classicタグに対しKeyAによる認証を行います
16 | Mifare_AuthenticateSectorWithKeyB | Mifare Classicタグに対しKeyBによる認証を行います
16 | Mifare_BlockCountInSector | Mifare Classicタグについて、指定したセクタに含まれるブロック数を取得します
16 | Mifare_BlockToSector | Mifare Classicタグの指定ブロックが含まれるセクタのインデックスを取得します
16 | Mifare_Decrement | Mifare ClassicタグのValue Blockをデクリメントし、カード内の一時バッファに書き込みます
16 | Mifare_Increment | Mifare ClassicタグのValue Blockをインクリメントし、カード内の一時バッファに書き込みます
16 | Mifare_ReadBlock | Mifare Classicタグから指定ブロックのデータを読み込みます
16 | Mifare_Restore | Mifare Classicタグ内の一時バッファの内容をカードの値に書き戻します
16 | Mifare_SectorCount | Mifare Classicタグに含まれるセクタ数を取得します
16 | Mifare_SectorToBlock | Mifare Classicタグのセクタに含まれる先頭ブロックのインデックスを取得します
16 | Mifare_Transfer | Mifare Classicタグ内の一時バッファの内容をカードに書き込みます
16 | Mifare_WriteBlock | Mifare Classicタグの指定ブロックにデータを書き込みます
14 | SetMessage | NFCタグ探索ダイアログに表示されるメッセージを設定します
14 | Transceive | NFCタグに対し任意のデータを送信し、その応答データを取得します

クラス概要

基本クラスのメソッド


NfcTagConnection.Closeメソッド

説明

タグとの接続を終了し、NFCタグ探索ダイアログを閉じます。

NfcTagConnection.DiscoverNfcTagメソッド等で開いたファイルは、読み込み、書き込みが終わったら必ず閉じてください。

呼出形式

nfc.Close( [ succeeded [, message ] ] )

戻り値

なし

引数

boolean succeeded

タグとのやりとりが成功したかを指定します。

これはNFCタグ探索ダイアログの表示にのみ影響します。

デフォルトはtrueです。

String message

タグ探索ダイアログに表示される文字列を指定します。

デフォルトは空文字列です。

例外

なし

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("交通系ICカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsFeliCaTag) {
    nfc.Close(false, "FeliCa以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("読取中...");

    /* システムコード0x0003(Suica)のIDmを取得*/
    var targetIDm = nfc.FeliCa_Polling(0x0003).IDm;

    /* サービス0x008B(カード情報)から1ブロック取得*/
    var blockData = nfc.FeliCa_Read(targetIDm, 0x008B, 0, 1);
    var balance = blockData.ByteAt(11) + blockData.ByteAt(12) * 256;

    /* NFCとの通信を終了 */
    nfc.Close(true, "Suica残高 : " + str(balance) + "円");

} catch(e) {
    nfc.Close(false, "読取エラー");
}

関連項目

Runtime.DiscoverNfcTagメソッド


NfcTagConnection.Felica_Pollingメソッド

説明

NFCタグに対しFeliCaのPollingコマンドを発行します。

詳細はFeliCaカードのリファレンスマニュアルなどを参照してください。

呼出形式

var result = nfc.Felica_Polling( systemCode )

戻り値

下記の子オブジェクトを持つRecordオブジェクトを返します

Record result {
    ByteArray IDm; /*対象システムのIDm*/
    ByteArray PMm; /*対象システムのPMm*/
}

引数

integer systemCode

対象のシステムコードを指定します

例外

RTM-48

端末にNFCリーダ/ライタが存在しません。

RTM-49

端末のNFCリーダ/ライタが有効になっていません。

RTM-50

NFCタグへのアクセスに失敗しました。

RTM-52

FeliCaコマンドの発行に失敗しました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("交通系ICカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsFeliCaTag) {
    nfc.Close(false, "FeliCa以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("読取中...");

    /* システムコード0x0003(Suica)のIDmを取得*/
    var targetIDm = nfc.FeliCa_Polling(0x0003).IDm;

    /* サービス0x008B(カード情報)から1ブロック取得*/
    var blockData = nfc.FeliCa_Read(targetIDm, 0x008B, 0, 1);
    var balance = blockData.ByteAt(11) + blockData.ByteAt(12) * 256;

    /* NFCとの通信を終了 */
    nfc.Close(true, "Suica残高 : " + str(balance) + "円");

} catch(e) {
    nfc.Close(false, "読取エラー");
}

関連項目

IsFelicaTagプロパティ

Felica_Read、Felica_Writeメソッド


NfcTagConnection.Felica_Readメソッド

説明

NFCタグに対しFeliCaのRead Without Encryptionコマンドを発行します。

詳細はFeliCaカードのリファレンスマニュアルなどを参照してください。

呼出形式

var result = nfc.Felica_Read( IDm, serviceCode, blockOffset, blockCount )

戻り値

読み取ったブロックデータをByteArrayで返します

引数

ByteArray IDm

対象のIDmを指定します

integer serviceCode

対象のサービスコードを指定します

integer blockOffset

読取を開始するブロック番号を指定します

integer blockCount

読み取るブロック数を指定します

例外

RTM-48

端末にNFCリーダ/ライタが存在しません。

RTM-49

端末のNFCリーダ/ライタが有効になっていません。

RTM-50

NFCタグへのアクセスに失敗しました。

RTM-52

FeliCaコマンドの発行に失敗しました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("交通系ICカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsFeliCaTag) {
    nfc.Close(false, "FeliCa以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("読取中...");

    /* システムコード0x0003(Suica)のIDmを取得*/
    var targetIDm = nfc.FeliCa_Polling(0x0003).IDm;

    /* サービス0x008B(カード情報)から1ブロック取得*/
    var blockData = nfc.FeliCa_Read(targetIDm, 0x008B, 0, 1);
    var balance = blockData.ByteAt(11) + blockData.ByteAt(12) * 256;

    /* NFCとの通信を終了 */
    nfc.Close(true, "Suica残高 : " + str(balance) + "円");

} catch(e) {
    nfc.Close(false, "読取エラー");
}

関連項目

IsFelicaTagプロパティ

Felica_Polling、Felica_Writeメソッド


NfcTagConnection.Felica_Writeメソッド

説明

NFCタグに対しFeliCaのWrite Without Encryptionコマンドを発行します。

詳細はFeliCaカードのリファレンスマニュアルなどを参照してください。

呼出形式

nfc.Felica_Write( IDm, serviceCode, blockOffset, blockData )

戻り値

なし

引数

ByteArray IDm

対象のIDmを指定します。

integer serviceCode

対象のサービスコードを指定します。

integer blockOffset

書込を開始するブロック番号を指定します。

ByteArray blockData

書き込むデータを指定します。

データは1ブロック(16バイト)単位である必要があります。

例外

RTM-48

端末にNFCリーダ/ライタが存在しません。

RTM-49

端末のNFCリーダ/ライタが有効になっていません。

RTM-50

NFCタグへのアクセスに失敗しました。

RTM-52

FeliCaコマンドの発行に失敗しました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("FeliCa Lite-Sタグをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsFeliCaTag) {
    nfc.Close(false, "FeliCa以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("接続済");

    /* システムコード0x88B4(FeliCa Lite-S)のIDmを取得*/
    /* (FeliCa Lite-Sでは通常不要だが、FeliCa Lite-Sであることを判定するために呼び出しています)*/
    var targetIDm = nfc.FeliCa_Polling(0x88B4).IDm;

    /* サービス0x0009(RW権限のブロック)に書き込み*/
    var blockData = new ByteArray(0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF);
    var blockOffset = 0;
    nfc.FeliCa_Write(targetIDm, 0x0009, blockOffset, blockData);

    /* NFCとの通信を終了 */
    nfc.Close(true, "書込終了");

} catch(e) {
    nfc.Close(false, "書き込みエラー");
}

関連項目

IsFelicaTagプロパティ

Felica_Polling、Felica_Readメソッド


NfcTagConnection.Mifare_AuthenticateSectorWithKeyAメソッド

説明

Mifare Classicタグのセクタに対し、KeyAによる認証を行います。

詳細はMifare Classicのドキュメントなどを参照してください。

呼出形式

nfc.Mifare_AuthenticateSectorWithKeyA( sectorIndex , keyType [, key ] )

戻り値

なし

引数

Integer sectorIndex

0から開始する、認証を行うセクタのインデックスを指定します。

Integer keyType

認証キーを自分で指定するか、よく知られているキーを使うかを指定します。

下記の値を指定します。

定数 | 値 | 説明
NfcTagConnection.MIFARE_KEY_USER | 0 | 指定されたkeyを使用して認証します
NfcTagConnection.MIFARE_KEY_FACTORY | 1 | 工場出荷時のキーで認証します
NfcTagConnection.MIFARE_KEY_MAD | 2 | MIFARE Application Directory (MAD) 規格にそってフォーマットされたタグでよく使われるキーで認証します
NfcTagConnection.MIFARE_KEY_NFC_FORUM | 3 | NDEF on MIFARE Classicに沿ってフォーマットされたタグでよく使われるキーで認証します

ByteArray key

6byteの認証キーを指定します。

keyTypeがMIFARE_KEY_USERの場合に使用します。

キーのサイズが6byteではない場合、FUNC-4例外が発生します。

例外

FUNC-4

引数が不正です。

RTM-50

NFCタグへのアクセスに失敗しました。

RTM-85

Mifare Classicコマンドの発行に失敗しました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("Mifare Classicのカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsMifareClassicTag) {
    nfc.Close(false, "Mifare Classic以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("読取中...");

    var key = new ByteArray(0,1,2,3,4,5);

    /* 0番目のセクタに対しKeyAで認証を行う*/
    nfc.Mifare_AuthenticateSectorWithKeyA(0,NfcTagConnection.MIFARE_KEY_USER,key);

    /* 0番目のブロックからデータを取得*/
    var blockData = nfc.Mifare_ReadBlock(0);
    var blockDataStr = "";

    var len = blockData.length;
    for (var i = 0; i < len; i++) {
        var b = blockData.ByteAt(i);
        blockDataStr += b.ToString(16) + str(" ");
    }

    /* NFCとの通信を終了 */
    nfc.Close(true, "ブロックデータ : " + blockDataStr);

} catch(e) {
    nfc.Close(false, "読取エラー");
}

関連項目

Mifare_AuthenticateSectorWithKeyBメソッド


NfcTagConnection.Mifare_AuthenticateSectorWithKeyBメソッド

説明

Mifare Classicタグのセクタに対し、KeyBによる認証を行います。

詳細はMifare Classicのドキュメントなどを参照してください。

呼出形式

nfc.Mifare_AuthenticateSectorWithKeyB( sectorIndex , keyType [, key ] )

戻り値

なし

引数

Integer sectorIndex

0から開始する、認証を行うセクタのインデックスを指定します。

Integer keyType

認証キーを自分で指定するか、よく知られているキーを使うかを指定します。

下記の値を指定します。

定数 | 値 | 説明
NfcTagConnection.MIFARE_KEY_USER | 0 | 指定されたkeyを使用して認証します
NfcTagConnection.MIFARE_KEY_FACTORY | 1 | 工場出荷時のキーで認証します
NfcTagConnection.MIFARE_KEY_MAD | 2 | MIFARE Application Directory (MAD) 規格にそってフォーマットされたタグでよく使われるキーで認証します
NfcTagConnection.MIFARE_KEY_NFC_FORUM | 3 | NDEF on MIFARE Classicに沿ってフォーマットされたタグでよく使われるキーで認証します

ByteArray key

6byteの認証キーを指定します。

keyTypeがMIFARE_KEY_USERの場合に使用します。

キーのサイズが6byteではない場合、FUNC-4例外が発生します。

例外

FUNC-4

引数が不正です。

RTM-50

NFCタグへのアクセスに失敗しました。

RTM-85

Mifare Classicコマンドの発行に失敗しました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("Mifare Classicのカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsMifareClassicTag) {
    nfc.Close(false, "Mifare Classic以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("読取中...");

    var key = new ByteArray(0,1,2,3,4,5);

    /* 0番目のセクタに対しKeyBで認証を行う*/
    nfc.Mifare_AuthenticateSectorWithKeyB(0,NfcTagConnection.MIFARE_KEY_USER,key);

    /* 0番目のブロックからデータを取得*/
    var blockData = nfc.Mifare_ReadBlock(0);
    var blockDataStr = "";

    var len = blockData.length;
    for (var i = 0; i < len; i++) {
        var b = blockData.ByteAt(i);
        blockDataStr += b.ToString(16) + str(" ");
    }

    /* NFCとの通信を終了 */
    nfc.Close(true, "ブロックデータ : " + blockDataStr);

} catch(e) {
    nfc.Close(false, "読取エラー");
}

関連項目

Mifare_AuthenticateSectorWithKeyAメソッド


NfcTagConnection.Mifare_BlockCountInSectorメソッド

説明

Mifare Classicタグについて、指定したセクタに含まれるブロックの数を取得します。

詳細はMifare Classicのドキュメントなどを参照してください。

呼出形式

var count = nfc.Mifare_BlockCountInSector( sectorIndex )

戻り値

指定したセクタに含まれるブロックの個数を返します

引数

Integer sectorIndex

0から開始するセクタのインデックスを指定します。

負の値や40以上を指定すると例外FUNC-4が発生します。

例外

FUNC-4

引数が不正です。

RTM-85

Mifare Classicコマンドの発行に失敗しました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("Mifare Classicのカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsMifareClassicTag) {
    nfc.Close(false, "Mifare Classic以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("読取中...");

    var sectorCount = nfc.Mifare_SectorCount();

    for (var sector = 0; sector < sectorCount; sector++) {
        nfc.Mifare_AuthenticateSectorWithKeyA(sector, NfcTagConnection.MIFARE_KEY_FACTORY);

        /* 各ブロックの情報を読み取る*/
        var blockCount = nfc.Mifare_BlockCountInSector(sector);
        var blockStart = nfc.Mifare_SectorToBlock(sector);
        for (var block = blockStart; block < blockStart + blockCount; block++) {
            var blockData = nfc.Mifare_ReadBlock(block);
            var blockDataStr = "Block " + str(block) + ":";

            var len = blockData.length;
            for (var i = 0; i < len; i++) {
                var b = blockData.ByteAt(i);
                blockDataStr += b.ToString(16) + str(" ");
            }
            print(blockDataStr);

        }

    }

    /* NFCとの通信を終了 */
    nfc.Close(true, "読取終了");

} catch(e) {
    nfc.Close(false, "読取エラー");
}

関連項目

Mifare_SectorCount、Mifare_SectorToBlockメソッド


NfcTagConnection.Mifare_BlockToSectorメソッド

説明

Mifare Classicタグについて、指定したブロックが含まれるセクタのインデックス値を取得します。

詳細はMifare Classicのドキュメントなどを参照してください。

呼出形式

var sectorIndex = nfc.Mifare_BlockToSector( blockIndex )

戻り値

指定したブロックが含まれるセクタのインデックス値を返します

引数

Integer blockIndex

0から開始するブロックのインデックスを指定します。

負の値や256以上を指定すると例外FUNC-4が発生します。

例外

FUNC-4

引数が不正です。

RTM-85

Mifare Classicコマンドの発行に失敗しました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("Mifare Classicのカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsMifareClassicTag) {
    nfc.Close(false, "Mifare Classic以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("接続済");

    /* 5番目のブロックをValue Blockにする*/
    var blockIndex = 5;
    var sectorIndex = nfc.Mifare_BlockToSector(blockIndex);

    nfc.Mifare_AuthenticateSectorWithKeyA(sectorIndex, NfcTagConnection.MIFARE_KEY_FACTORY);

    var valueBlock = new ByteArray(0x00, 0x00, 0x00 , 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF);
    nfc.Mifare_WriteBlock(blockIndex, valueBlock);

    /* NFCとの通信を終了 */
    nfc.Close(true, "書込終了");

} catch(e) {
    nfc.Close(false, "書込エラー");
}

関連項目


NfcTagConnection.Mifare_Decrementメソッド

説明

Mifare Classicタグに対し、指定ブロックの値をデクリメントしてカード内の一時バッファに保存します。

この操作はValue Block形式のブロックに対して有効です。

一時バッファの内容は、Mifare_Transferメソッドでカードに反映されます。

詳細はMifare Classicのドキュメントなどを参照してください。

呼出形式

nfc.Mifare_Decrement( blockIndex , value)

戻り値

なし

引数

Integer blockIndex

0から開始する、操作対象のブロックのインデックスを指定します。

Integer value

デクリメントする数を指定します。0以上である必要があります。

例外

FUNC-4

引数が不正です。

RTM-50

NFCタグへのアクセスに失敗しました。

RTM-85

Mifare Classicコマンドの発行に失敗しました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("Mifare Classicのカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsMifareClassicTag) {
    nfc.Close(false, "Mifare Classic以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("接続済");

    var key = new ByteArray(0,1,2,3,4,5);

    /* 1番目のセクタに対しKeyAで認証を行う*/
    nfc.Mifare_AuthenticateSectorWithKeyA(1,NfcTagConnection.MIFARE_KEY_USER,key);

    /* 1番目のセクタの先頭ブロックをデクリメントする*/
    var blockIndex = nfc.Mifare_SectorToBlock(1);
    nfc.Mifare_Decrement(blockIndex, 2);

    /* 一時バッファの内容をカードに転送する*/
    nfc.Mifare_Transfer(blockIndex);

    /* NFCとの通信を終了 */
    nfc.Close(true, "書込終了");

} catch(e) {
    nfc.Close(false, "書込エラー");
}

関連項目

Mifare_AuthenticateSectorWithKeyA、Mifare_AuthenticateSectorWithKeyB、

Mifare_Increment、Mifare_Transfer、Mifare_Restoreメソッド


NfcTagConnection.Mifare_Incrementメソッド

説明

Mifare Classicタグに対し、指定ブロックの値をインクリメントしてカード内の一時バッファに保存します。

この操作はValue Block形式のブロックに対して有効です。

一時バッファの内容は、Mifare_Transferメソッドでカードに反映されます。

詳細はMifare Classicのドキュメントなどを参照してください。

呼出形式

nfc.Mifare_Increment( blockIndex , value)

戻り値

なし

引数

Integer blockIndex

0から開始する、操作対象のブロックのインデックスを指定します。

Integer value

インクリメントする数を指定します。0以上である必要があります。

例外

FUNC-4

引数が不正です。

RTM-50

NFCタグへのアクセスに失敗しました。

RTM-85

Mifare Classicコマンドの発行に失敗しました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("Mifare Classicのカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsMifareClassicTag) {
    nfc.Close(false, "Mifare Classic以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("接続済");

    var key = new ByteArray(0,1,2,3,4,5);

    /* 1番目のセクタに対しKeyAで認証を行う*/
    nfc.Mifare_AuthenticateSectorWithKeyA(1,NfcTagConnection.MIFARE_KEY_USER,key);

    /* 1番目のセクタの先頭ブロックをインクリメントする*/
    var blockIndex = nfc.Mifare_SectorToBlock(1);
    nfc.Mifare_Increment(blockIndex, 2);

    /* 一時バッファの内容をカードに転送する*/
    nfc.Mifare_Transfer(blockIndex);

    /* NFCとの通信を終了 */
    nfc.Close(true, "書込終了");

} catch(e) {
    nfc.Close(false, "書込エラー");
}

関連項目

Mifare_AuthenticateSectorWithKeyA、Mifare_AuthenticateSectorWithKeyB、

Mifare_Decrement、Mifare_Transfer、Mifare_Restoreメソッド


NfcTagConnection.Mifare_ReadBlockメソッド

説明

Mifare Classicタグから指定したブロックのデータを読み込みます。

詳細はMifare Classicのドキュメントなどを参照してください。

呼出形式

var blockData = nfc.Mifare_ReadBlock( blockIndex )

戻り値

NFCタグから受信したバイト列をByteArrayオブジェクトで返します

引数

Integer blockIndex

0から開始する、読み込み対象のブロックのインデックスを指定します。

例外

RTM-50

NFCタグへのアクセスに失敗しました。

RTM-85

Mifare Classicコマンドの発行に失敗しました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("Mifare Classicのカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsMifareClassicTag) {
    nfc.Close(false, "Mifare Classic以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("読取中...");

    var key = new ByteArray(0,1,2,3,4,5);

    /* 0番目のセクタに対しKeyAで認証を行う*/
    nfc.Mifare_AuthenticateSectorWithKeyA(0,NfcTagConnection.MIFARE_KEY_USER,key);

    /* 0番目のブロックからデータを取得*/
    var blockData = nfc.Mifare_ReadBlock(0);
    var blockDataStr = "";

    var len = blockData.length;
    for (var i = 0; i < len; i++) {
        var b = blockData.ByteAt(i);
        blockDataStr += b.ToString(16) + str(" ");
    }

    /* NFCとの通信を終了 */
    nfc.Close(true, "ブロックデータ : " + blockDataStr);

} catch(e) {
    nfc.Close(false, "読取エラー");
}

関連項目

Mifare_AuthenticateSectorWithKeyA、Mifare_AuthenticateSectorWithKeyB、

Mifare_WriteBlockメソッド


NfcTagConnection.Mifare_Restoreメソッド

説明

指定ブロックのカードの内容を、Mifare_IncrementメソッドやMifare_Decrementメソッドで書き込んだ一時バッファに書き込みます。

この操作はValue Block形式のブロックに対して有効です。

詳細はMifare Classicのドキュメントなどを参照してください。

呼出形式

nfc.Mifare_Restore( blockIndex )

戻り値

なし

引数

Integer blockIndex

0から開始する、操作対象のブロックのインデックスを指定します。

例外

RTM-50

NFCタグへのアクセスに失敗しました。

RTM-85

Mifare Classicコマンドの発行に失敗しました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("Mifare Classicのカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsMifareClassicTag) {
    nfc.Close(false, "Mifare Classic以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("接続済");

    var key = new ByteArray(0,1,2,3,4,5);

    /* 1番目のセクタに対しKeyAで認証を行う*/
    nfc.Mifare_AuthenticateSectorWithKeyA(1,NfcTagConnection.MIFARE_KEY_USER,key);

    /* 1番目のセクタの先頭ブロックをインクリメントする*/
    var blockIndex = nfc.Mifare_SectorToBlock(1);
    nfc.Mifare_Increment(blockIndex, 2);

    /* 一時バッファの内容をカードの内容に転送する*/
    nfc.Mifare_Restore(blockIndex);

    /* 一時バッファの内容をカードに転送する*/
    /* 直前にMifare_Restoreメソッドを呼んでいるので、カードと同じ内容が書き込まれる*/
    nfc.Mifare_Transfer(blockIndex);

    /* NFCとの通信を終了 */
    nfc.Close(true, "書込終了");

} catch(e) {
    nfc.Close(false, "書込エラー");
}

関連項目

Mifare_AuthenticateSectorWithKeyA、Mifare_AuthenticateSectorWithKeyB、

Mifare_Increment、Mifare_Decrement、Mifare_Transferメソッド


NfcTagConnection.Mifare_SectorCountメソッド

説明

Mifare Classicタグに含まれるセクタの数を取得します。

詳細はMifare Classicのドキュメントなどを参照してください。

呼出形式

var count = nfc.Mifare_SectorCount()

戻り値

セクタの個数を返します

引数

なし

例外

RTM-85

Mifare Classicコマンドの発行に失敗しました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("Mifare Classicのカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsMifareClassicTag) {
    nfc.Close(false, "Mifare Classic以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("読取中...");

    var sectorCount = nfc.Mifare_SectorCount();

    for (var sector = 0; sector < sectorCount; sector++) {
        nfc.Mifare_AuthenticateSectorWithKeyA(sector, NfcTagConnection.MIFARE_KEY_FACTORY);

        /* 各ブロックの情報を読み取る*/
        var blockCount = nfc.Mifare_BlockCountInSector(sector);
        var blockStart = nfc.Mifare_SectorToBlock(sector);
        for (var block = blockStart; block < blockStart + blockCount; block++) {
            var blockData = nfc.Mifare_ReadBlock(block);
            var blockDataStr = "Block " + str(block) + ":";

            var len = blockData.length;
            for (var i = 0; i < len; i++) {
                var b = blockData.ByteAt(i);
                blockDataStr += b.ToString(16) + str(" ");
            }
            print(blockDataStr);

        }

    }

    /* NFCとの通信を終了 */
    nfc.Close(true, "読取終了");

} catch(e) {
    nfc.Close(false, "読取エラー");
}

関連項目

Mifare_BlockCountInSector、Mifare_SectorToBlockメソッド


NfcTagConnection.Mifare_SectorToBlockメソッド

説明

Mifare Classicタグについて、指定したセクタに含まれる先頭のブロックのインデックス値を取得します。

詳細はMifare Classicのドキュメントなどを参照してください。

呼出形式

var blockStart = nfc.Mifare_SectorToBlock( sectorIndex )

戻り値

指定したセクタに含まれる先頭ブロックのインデックス値を返します

引数

Integer sectorIndex

0から開始するセクタのインデックスを指定します。

負の値や40以上を指定すると例外FUNC-4が発生します。

例外

FUNC-4

引数が不正です。

RTM-85

Mifare Classicコマンドの発行に失敗しました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("Mifare Classicのカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsMifareClassicTag) {
    nfc.Close(false, "Mifare Classic以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("読取中...");

    var sectorCount = nfc.Mifare_SectorCount();

    for (var sector = 0; sector < sectorCount; sector++) {
        nfc.Mifare_AuthenticateSectorWithKeyA(sector, NfcTagConnection.MIFARE_KEY_FACTORY);

        /* 各ブロックの情報を読み取る*/
        var blockCount = nfc.Mifare_BlockCountInSector(sector);
        var blockStart = nfc.Mifare_SectorToBlock(sector);
        for (var block = blockStart; block < blockStart + blockCount; block++) {
            var blockData = nfc.Mifare_ReadBlock(block);
            var blockDataStr = "Block " + str(block) + ":";

            var len = blockData.length;
            for (var i = 0; i < len; i++) {
                var b = blockData.ByteAt(i);
                blockDataStr += b.ToString(16) + str(" ");
            }
            print(blockDataStr);

        }

    }

    /* NFCとの通信を終了 */
    nfc.Close(true, "読取終了");

} catch(e) {
    nfc.Close(false, "読取エラー");
}

関連項目

Mifare_SectorCount、Mifare_BlockCountInSectorメソッド


NfcTagConnection.Mifare_Transferメソッド

説明

Mifare_IncrementメソッドやMifare_Decrementメソッドで書き込んだ一時バッファの内容をカードに転送します。

この操作はValue Block形式のブロックに対して有効です。

詳細はMifare Classicのドキュメントなどを参照してください。

呼出形式

nfc.Mifare_Transfer( blockIndex )

戻り値

なし

引数

Integer blockIndex

0から開始する、操作対象のブロックのインデックスを指定します。

例外

RTM-50

NFCタグへのアクセスに失敗しました。

RTM-85

Mifare Classicコマンドの発行に失敗しました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("Mifare Classicのカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsMifareClassicTag) {
    nfc.Close(false, "Mifare Classic以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("接続済");

    var key = new ByteArray(0,1,2,3,4,5);

    /* 1番目のセクタに対しKeyAで認証を行う*/
    nfc.Mifare_AuthenticateSectorWithKeyA(1,NfcTagConnection.MIFARE_KEY_USER,key);

    /* 1番目のセクタの先頭ブロックをインクリメントする*/
    var blockIndex = nfc.Mifare_SectorToBlock(1);
    nfc.Mifare_Increment(blockIndex, 2);

    /* 一時バッファの内容をカードに転送する*/
    nfc.Mifare_Transfer(blockIndex);

    /* NFCとの通信を終了 */
    nfc.Close(true, "書込終了");

} catch(e) {
    nfc.Close(false, "書込エラー");
}

関連項目

Mifare_AuthenticateSectorWithKeyA、Mifare_AuthenticateSectorWithKeyB、

Mifare_Increment、Mifare_Decrement、Mifare_Restoreメソッド


NfcTagConnection.Mifare_WriteBlockメソッド

説明

Mifare Classicタグの指定ブロックに、16byteのデータを書き込みます。

詳細はMifare Classicのドキュメントなどを参照してください。

呼出形式

nfc.WriteBlock( blockIndex , blockData )

戻り値

なし

引数

Integer blockIndex

0から開始する、書き込み対象のブロックのインデックスを指定します。

ByteArray blockData

NFCタグに書き込むバイト列を指定します。

サイズが16byteではない場合、FUNC-4例外が発生します。

例外

FUNC-4

引数が不正です。

RTM-50

NFCタグへのアクセスに失敗しました。

RTM-85

Mifare Classicコマンドの発行に失敗しました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("Mifare Classicのカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsMifareClassicTag) {
    nfc.Close(false, "Mifare Classic以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("接続済");

    var key = new ByteArray(0,1,2,3,4,5);

    /* 1番目のセクタに対しKeyAで認証を行う*/
    nfc.Mifare_AuthenticateSectorWithKeyA(1,NfcTagConnection.MIFARE_KEY_USER,key);

    /* 1番目のセクタの先頭ブロックをValue Blockにする*/
    var blockIndex = nfc.Mifare_SectorToBlock(1);
    var valueBlock = new ByteArray(0x00, 0x00, 0x00 , 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF);
    nfc.Mifare_WriteBlock(blockIndex, valueBlock);

    /* NFCとの通信を終了 */
    nfc.Close(true, "書込終了");

} catch(e) {
    nfc.Close(false, "書き込みエラー");
}

関連項目

Mifare_AuthenticateSectorWithKeyA、Mifare_AuthenticateSectorWithKeyB、

Mifare_ReadBlockメソッド


NfcTagConnection.SetMessageメソッド

説明

NFCタグ探索ダイアログに表示されるメッセージを設定します。

呼出形式

nfc.SetMessage( message )

戻り値

なし

引数

String message

表示される文字列を指定します

例外

なし

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("交通系ICカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsFeliCaTag) {
    nfc.Close(false, "FeliCa以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("読取中...");

    /* システムコード0x0003(Suica)のIDmを取得*/
    var targetIDm = nfc.FeliCa_Polling(0x0003).IDm;

    /* サービス0x008B(カード情報)から1ブロック取得*/
    var blockData = nfc.FeliCa_Read(targetIDm, 0x008B, 0, 1);
    var balance = blockData.ByteAt(11) + blockData.ByteAt(12) * 256;

    /* NFCとの通信を終了 */
    nfc.Close(true, "Suica残高 : " + str(balance) + "円");

} catch(e) {
    nfc.Close(false, "読取エラー");
}

関連項目

Closeメソッド


NfcTagConnection.Transceiveメソッド

説明 | NFCタグに対し任意のデータを送信し、その応答データを取得します。 送信可能なデータの形式やプロトコルなどの詳細は、対象のNFCタグのリファレンスマニュアルなどを参照してください。
呼出形式 | var receivedData = nfc.Transceive( sendData )
戻り値 | NFCタグから受信したバイト列をByteArrayオブジェクトで返します
引数 | String sendData | NFCタグに送信するバイト列。
例外 | RTM-48 | 端末にNFCリーダ/ライタが存在しません。
 | RTM-49 | 端末のNFCリーダ/ライタが有効になっていません。
 | RTM-50 | NFCタグへのアクセスに失敗しました。
使用例 |
関連項目 |


NfcTagConnectionイベント

API version 14

イベント

iOSAndroidWindows

NfcTagConnectionクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Runtimeクラス

Object
 | Runtime

Runtimeクラスはプラットフォームの環境に強く依存する機能を集めたもので、各プラットフォームのオペレーティングシステムとの窓口になるクラスです。

Runtimeクラスを利用することで、環境変数の操作、外部プログラムの起動、位置情報の取得の呼び出しなどを行うことができます。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateが指定できます。


Runtimeプロパティ

API version 4

プロパティ

iOSAndroidWindows

Runtimeクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Value | CRW | String Number Date | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Runtime.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


Runtimeメソッド

API version 4

メソッド

iOSAndroidWindows

Runtimeクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | Runtimeオブジェクトを初期化します
HT(10) | CallDll | 互換性のために残されています。動作しません。
4 | DeleteUUID | UUIDを削除します
4 | Exec | 外部プログラムを起動します
8 | GetCameraCaptureImage | カメラでキャプチャした静止画を取得します
26 | GetPermittedLocationAccuracy | ユーザーが取得を許可している位置情報の精度を取得します
4 | GetUUID | UUIDを取得します
7 | LoadSound | 効果音をロードします
7 | PlaySound | 効果音を再生します
8 | SetCameraOption | カメラの各種設定をします
HT(10) | ShellEdit | 互換性のために残されています。動作しません。
4 | ShellLink | ハイパーリンクを実行します
4 | ShellOpen | シェルの機能によりファイルを開きます
11 | ShowCodeScanner | バーコードおよび二次元コードをスキャンします
4 | ShowImagePicker | カメラまたは画像ライブラリから画像を取得します
8 | StartCameraCapture | カメラによるキャプチャを開始します
4 | StartLocationMeasure | 位置測位を開始します
8 | StopCameraCapture | カメラによるキャプチャを停止します
4 | StopLocationMeasure | 位置測位を停止します
7 | UnloadSound | 効果音をアンロードします

スタティックメソッド

API | 名前 | 説明
15 | CancelBluetoothScanning | Bluetoothデバイスのスキャンをキャンセルします
14 | DiscoverNfcTag | NFCタグの探索を行います
15 | GetBondedDeviceList | ボンディング(ペアリング)済みのBluetoothデバイス一覧を取得します
4 | GetMaxMemory | Biz/Browserに割り当てられた最大メモリサイズを取得します この機能はAPI version 6から廃止されました。
23 | GetMemoryInfo | メモリの使用状況を取得します
4 | GetLastKnownLocation | 最後に測位された位置情報を取得します
14 | HasNfcFeature | 端末にNFC機能があるかを取得します
15 | IsBluetoothEnabled | 端末のBluetooth機能が有効になっているかを取得します
14 | IsNfcReaderEnabled | 端末のNFCリーダ/ライタの機能が有効になっているかを取得します
7 | Invoke | プラットフォーム固有の機能を呼び出します
4 | IsProviderEnabled | 指定したロケーションプロバイダの有効/無効を取得します
15 | RequestBonding | Bluetoothデバイスとのボンディング(ペアリング)を実行します
15 | SetBluetoothEnabled | 端末のBluetooth機能の有効/無効を設定します
15 | ShowBluetoothSettings | 端末のBluetooth設定画面を表示します
4 | ShowLocationSettings | 端末の位置情報サービス設定画面を表示します
14 | ShowNfcSettings | 端末のNFC設定画面を表示します
15 | StartBluetoothScanning | Bluetoothデバイスのスキャンを開始します

クラス概要

基本クラスのメソッド


Runtimeコンストラクタ

説明

Runtimeオブジェクトを初期化します。

引数にFileSystemオブジェクトを指定すると、シェル機能（ShellOpenメソッド）で使用するファイル名に、指定したFileSystemオブジェクトの仮想ファイル名を使用できるようになります。カレントフォルダによる相対パスの指定、マウントされたフォルダやプライベート属性のフォルダにあるファイルの参照も可能です。

呼出形式

var rt = new Runtime( [ refFs ] )

戻り値

Runtimeオブジェクト

引数

FileSystem refFs

参照するFileSystemオブジェクト

省略した場合は、特定のFileSystemオブジェクトには関連付けられません。

例外

RTM-100

DLLロードエラー

使用例

var fs = new FileSystem(FileSystem.PRIVATE_ROOT);
var rt = new Runtime(fs);
rt.ShellOpen("/data/sample.html");

関連項目

ShellOpenメソッド

FileSystemクラス


Runtime.CancelBluetoothScanningメソッド

説明

Bluetoothデバイスのスキャンをキャンセルします。

スキャンがキャンセルされるとBluetoothScanFinishedイベントが発生します。

呼出形式

Runtime.CancelBluetoothScanning()

戻り値

なし

引数

なし

例外

なし

使用例

Form form1 {
    Width = 424;
    Height = 320;

    Button btnStartScanning {
        X = 16;
        Y = 16;
        Width = 120;
        Height = 40;
        Title = "デバイススキャン開始";

        Function OnTouch( e ) {
                try {
                    /* Bluetooth LEデバイスのスキャン開始 */
                    var params = new Array();
                    params["CONNECTABLE_DEVICE_ONLY"] = true;
                    Runtime.StartBluetoothScanning(Runtime.BLUETOOTH_LE, params);
                } catch(e) {
                    MessageBox(e.Message);
                }
        }
    }

    Button btnStopScanning {
        X = 184;
        Y = 16;
        Width = 120;
        Height = 40;
        Title = "デバイススキャン停止";

        Function OnTouch( e ) {
            Runtime.CancelBluetoothScanning();
        }
    }
}
Function OnBluetoothScanStarted(e) {
    print("スキャン開始\n");
}
Function OnBluetoothScanFinished(e) {
    print("スキャン終了\n");
}
Function OnBluetoothDeviceFound(e) {
    print(e.DeviceID + "\n");
}

関連項目

StartBluetoothScanningメソッド


Runtime.CallDllメソッド

このメソッドは互換性のために残されています。操作しても何も起きません。


Runtime.DeleteUUIDメソッド

説明

UUIDを削除します。

GetUUIDメソッドにより記録されたUUIDを削除します。

呼出形式

var result = rt.DeleteUUID( key [, pass-phrase ] )

戻り値

正しく削除された場合は$TRUE、それ以外は$FALSEを返します。

引数

String key

UUIDに対応する識別子

16文字までの英数字が指定できます。

String pass-phrase

UUIDを暗号化して記録する場合のパスフレーズ

例外

RTM-26

識別子が不正です

RTM-18

レジストリアクセスエラー

RTM-27

UUIDが生成できません

使用例

var rt = new Runtime;
var result = rt.DeleteUUID("appkey", "pass");

関連項目

GetUUIDメソッド


Runtime.DiscoverNfcTagメソッド

API version 14

Runtime.DiscoverNfcTagメソッド変更履歴

iOSAndroidWindows

説明

NFCタグの探索を行います。タグが発見されるかキャンセルされるまで処理をブロックします。

API Version 16時点ではNFC-F(JIS 6319-4, FeliCaタグなど)、Mifare Classicを扱うことが可能です。*1

呼出形式

var conn = rt.DiscoverNfcTag( [ message [, showDiscoveringDialog ] ] )

戻り値

NFCタグとのやりとりを行うためのNfcTagConnectionオブジェクトを返します

引数

String message

タグ探索中に表示される文字列を指定します。

デフォルトは空文字列です。

boolean showDiscoveringDialog

タグ探索中である旨のダイアログを表示するか否かを指定します。

表示されるダイアログのデザインはNfcTagConnectionクラスの説明を参照して下さい。

デフォルトは$TRUEです。

例外

RTM-48

端末にNFCリーダ/ライタが存在しません。

RTM-49

端末のNFCリーダ/ライタが有効になっていません。

RTM-50

NFCタグへのアクセスに失敗しました。

RTM-51

NFCタグの探索がキャンセルされました。

使用例

var nfc = null;
try {
    nfc = Runtime.DiscoverNfcTag("交通系ICカードをかざしてください");
} catch(e) {
    MessageBox("NFCタグ探索失敗");
    return;
}
if(!nfc.IsFeliCaTag) {
    nfc.Close(false, "FeliCa以外のタグが読み取られました");
    return;
}
try {
    nfc.SetMessage("読取中...");

    /* システムコード0x0003(Suica)のIDmを取得*/
    var targetIDm = nfc.FeliCa_Polling(0x0003).IDm;

    /* サービス0x008B(カード情報)から1ブロック取得*/
    var blockData = nfc.FeliCa_Read(targetIDm, 0x008B, 0, 1);
    var balance = blockData.ByteAt(11) + blockData.ByteAt(12) * 256;

    /* NFCとの通信を終了 */
    nfc.Close(true, "Suica残高 : " + str(balance) + "円");

} catch(e) {
    nfc.Close(false, "読取エラー");
}

関連項目

HasNfcFeature、IsNfcReaderEnabledメソッド

NfcTagConnectionクラス
変更履歴
*1　API version 16から、Mifare Classicタグの探索に対応しました。


Runtime.Execメソッド

説明

外部アプリケーションを起動します。

Android版
起動する外部アプリケーションは、そのアプリケーションのパッケージ名とアクティビティ名で指定します。(“com.android.browser”, “.BrowserActivity”で標準ブラウザが起動するなど)

正常に実行するべきアプリケーションが見つかると、ユーザに対しアプリケーション実行の警告ダイアログを表示します。
警告ダイアログでユーザがOKを選択した場合に限り、アプリケーションは実行されます。

セキュリティレベルによる動作の違い

警告ダイアログの表示

レベル | 説明
0 | 警告ダイアログは表示せず、そのまま実行します。
1 | 警告ダイアログを表示し、OKならば実行します。
2
3
4

外部アプリケーションの実行

レベル | 説明
0 | 実行できます。
1
2 | 実行できません。
3
4

呼出形式

Android版
var result = rt.Exec( packageName, activityName )

戻り値

プログラムを起動できた場合は$TRUE、それ以外は$FALSEを返します。

引数

String packageName

起動するアプリケーションのパッケージ名を指定します。

例)Android標準ブラウザであれば”com.android.browser”

String activityName

起動するアプリケーションのアクティビティ名を指定します。

例)Android標準ブラウザであれば”.BrowserActivity”と”com.android.browser.BrowserActivity”のどちらでも指定可能

例外

PKG-22

プログラム実行はユーザにより中止されました

PKG-23

プログラム実行の確認を行うことができませんでした

RTM-4

作業ファイルを作成できませんでした

RTM-5

ショートファイル名が生成できません

RTM-6

拡張子に関連したプログラムが見つからない

RTM-7

プログラムはセキュリティ上の制約により実行できません

RTM-45

パッケージ'%s'の情報を取得できませんでした。

使用例

var rt = new Runtime;
rt.Exec("html", "C:\\test.html");

関連項目

ShellOpen、ShellLinkメソッド


Runtime.GetBondedDeviceListメソッド

API version 15

Runtime.GetBondedDeviceListメソッド変更履歴

iOSAndroidWindows

説明

ボンディング(ペアリング)済みのBluetoothデバイス一覧を取得します。

呼出形式

var devices = Runtime.GetBondedDeviceList()

戻り値

デバイス情報を格納したRecordの配列を返します。

Recordには下記オブジェクトが含まれます。

型 | 名前 | 説明
String | DeviceId | 対象のBluetoothデバイスのBDアドレスが格納されます。 (BDアドレスの形式はMACアドレスと同じです)
String | Name | 対象のBluetoothデバイスの名称が格納されます。
Number | ConnectableAsBluetoothClassic | Bluetooth Classicデバイスとして接続できるデバイスであれば$TRUEが、接続できなければ$FALSEが格納されます。
Number | ConnectableAsBluetoothLE | BLE(Bluetooth Low Energy)デバイスとして接続できるデバイスであれば$TRUEが、接続できなければ$FALSEが格納されます。
Number | HasRssi | RSSI値(Received Signal Strength Indication)を持つ場合は$TRUEが、持たない場合は$FALSEが格納されます。 BLEデバイスでも稀にRSSI値を持たないものがあります。
Number | Rssi | HasRssiが$TRUEの場合、RSSI値が格納されます。単位はdBmです。 HasRssiが$FALSEの場合、このオブジェクトは付加されません。
Number | HasTxPowerLevel | 送信出力値を持つ場合は$TRUEが、持たない場合は$FALSEが格納されます。
Number | TxPowerLevel | HasTxPowerLevelが$TRUEの場合、送信出力値が格納されます。単位はdBmです。 HasTxPowerLevelが$FALSEの場合、このオブジェクトは付加されません。
Array | ServiceUuidList | アドバタイズされているサービス一覧が格納されます。 なお、アドバタイズされていないだけで使用できるサービスがある場合があります。

引数

なし

例外

RTM-83

Bluetoothが有効になっていません。

RTM-84

Bluetoothの使用が許可されていません。OSの設定でBluetoothの使用を許可してください。 *1

RTM-113

Bluetoothデバイス制御はサポートされていません。

使用例

Form form1 {
    Width = 424;
    Height = 320;

    Button btnGetBondedDeviceList {
        X = 16;
        Y = 16;
        Width = 120;
        Height = 40;
        Title = "デバイスリスト取得";

        Function OnTouch( e ) {
            try {
                var devices = Runtime.GetBondedDeviceList();
                for (var i = 0; i < devices.length; i++) {
                    print(devices[i].DeviceId + "\n");
                 }
            } catch(e) {
                MessageBox(e.Message);
            }
        }
    }
}

関連項目

RequestBondingメソッド

変更履歴
*1　API version 26で追加されました。


Runtime.GetCameraCaptureImageメソッド

説明

カメラでキャプチャした静止画を取得します。

このメソッドは実行前にStartCameraCaptureメソッドを呼ぶ必要があります。
カメラが初期化されていない場合やカメラが停止中の場合に実行した場合、RTM-46例外が発生します。

呼出形式

var img = rt.GetCameraCaptureImage( )

戻り値

カメラが最後にキャプチャした画像がImageオブジェクトで返ります。

引数

なし

例外

RTM-46

カメラの操作に失敗しました。

使用例

var img = ^.r.GetCameraCaptureImage();
if(img != null && img.width > 0 && img.height > 0){
    /* 画像をセット */
}

StartCameraCaptureの使用例もご参照ください。

関連項目

 StartCameraCapture、SetCameraOption、StopCameraCaptureメソッド


Runtime.GetMaxMemoryメソッド

iOSAndroid

この機能はAPI version 6から廃止されました。

説明

Biz/Browserに割り当てられた最大メモリサイズを取得します。

Android版 API version 3以前
最大メモリサイズは端末固有の値となりますが、一般的な端末では16〜48MB程度となります。

呼出形式

var maxMem = Runtime.GetMaxMemory();

戻り値

最大メモリサイズをMB単位で返します。

引数

なし

例外

なし

使用例

var maxMem = Runtime.GetMaxMemory();
//.MessageBox("最大メモリサイズ："+str(maxMem)+"[MB]");

関連項目


Runtime.GetMemoryInfoメソッド

説明

メモリの使用状況を取得します。

呼出形式

var info = Runtime.GetMemoryInfo( )

戻り値

メモリの使用状況を格納したRecordオブジェクトを返します。

Recordには下記オブジェクトが含まれます。

型 | 名前 | 説明 (メモリ使用量の単位:byte)
Number | JavaVMHeapSize | 確保しているJavaVMヒープメモリ
Number | JavaVMHeapUsedSize | 使用中のJavaVMヒープメモリ
Number | JavaVMHeapFreeSizeVM | 未使用のJavaVMヒープメモリ
Number | JavaVMHeapMaxSize | Biz/Browserで使用可能なヒープメモリ
Number | NativeHeapSize | 確保しているNativeヒープメモリ
Number | NativeHeapAllocatedSize | 使用中のNativeヒープメモリ
Number | NativeHeapFreeSize | 未使用のNativeヒープメモリ

引数

なし

例外

なし

使用例

var info =  Runtime.GetMemoryInfo();
print("Total Used Memory:" , str(info.JavaVMHeapUsedSize + info.NativeHeapAllocatedSize) , "\n");

関連項目


Runtime.GetLastKnownLocationメソッド

説明

指定したロケーションプロバイダで最後に測位された位置情報を取得します。

現在の位置情報を取得したい場合は、StartLocationMeasureメソッドを使用して下さい。

利用上の注意

一部OS,機種によっては、本メソッドを呼び出した際に位置情報の再測位を行うことがありますが、これは本メソッドを呼び出した際に必ず再測位が行われることを保証するものではありませんのでご注意下さい。

呼出形式

Android版
var result = Runtime.GetLastKnownLocation( provider )

戻り値

指定したロケーションプロバイダに位置情報が存在すればその位置情報が、存在しない場合はnullが返ります。

位置情報の形式は下記のとおりです。

Record {
    Number provider;		/* この位置情報を取得したロケーションプロバイダを取得します。 */

       Number latitude;		/* 経度を取得します。 単位は度(deg)です。 */

    Number longitude;		/* 緯度を取得します。 単位は度(deg)です。 */

    Date time;		/* この位置情報を取得した時刻が格納されます */

    Number hasAccuracy;	/* 計測精度を取得できた場合は$TRUE、そうでなければ$FALSEが格納されます */
                /* 下記の子オブジェクトはhasAccuracy=$TRUEの時のみ存在します */

    Number accuracy;		/* 計測精度を取得します。単位はメートル(m)です。 */
}

引数

Number provider

測位を行うロケーションプロバイダーを一つ指定します。

指定できる値は下記のとおりです。

定数 | 値 | 説明
Runtime.LOCATION_PROV_GPS | 1 | GPS(全地球測位システム)を用いて測位します
Runtime.LOCATION_PROV_NETWORK | 2 | モバイルネットワークやWiFiを用いて測位します。

String unused

引数は無視されます。

例外

なし

使用例

var location = Runtime.GetLastKnownLocation(Runtime.LOCATION_PROV_GPS);

関連項目

StartLocationMeasureメソッド


Runtime.GetPermittedLocationAccuracyメソッド

説明

ユーザーが取得を許可している位置情報の精度を取得します。

呼出形式

var accuracy = rt.GetPermittedLocationAccuracy( )

戻り値

ユーザーが取得を許可している位置情報の精度を返します。

下記の値の組み合わせとなります。

定数 | 名前 | 説明
Runtime.COARSE_LOCATION | 1 | 低精度の情報の取得が許可されています
Runtime.FINE_LOCATION | 2 | 高精度の情報の取得が許可されています

引数

なし

例外

なし

使用例

var rt = new Runtime;
var accuracy = rt.GetPermittedLocationAccuracy();
if (and(accuracy, Runtime.FINE_LOCATION) == Runtime.FINE_LOCATION) {
    //.MessageBox("Acquisition of fine location information is permitted.");
}

関連項目


Runtime.GetUUIDメソッド

説明

UUIDを取得します。

UUID（ユニバーサルユニークID）は世界中で重複しないことを目的に設計された汎用的な一意識別子で、128bitのランダムな数値を文字列で表現したものです。例えば次のような文字列となります。

"DE07FFE8-A2FF-47CD-BA46-A993160F9A92"

一意性を確保するために、UUIDの作成では、作成した時間や作成したコンピュータのMACアドレスなどの情報を参照することがあります。UUIDが重複する可能性は極めて低い確率ですが、完全に重複しないことを保障するものではありません。

Windows環境ではOLEオブジェクト、ActiveXオブジェクトの識別子や製品固有の識別子として利用されています。GUID（グローバルユニークID）と呼ばれることもあります。

GetUUIDメソッドの呼び出しで返されるUUIDは、keyとペアでユーザごと（Windows98、Meのユーザ共通設定時を除く）に記憶され、すでにkeyに対応するUUIDが生成されている場合はそのUUIDを返します。keyに対応するUUIDが生成されていない場合には、新しく生成したUUIDを記録して返します。

記録されたUUIDは、Biz/Browserを再起動したり、コンピュータを再起動しても有効ですが、コンピュータのトラブルなどで失われる可能性があります。一度失われたUUIDを復元する手段はありませんので、回復が不可能なデータをUUIDの記録に依存して処理しないことをお勧めします。

keyとUUIDのペアは、オプションのパラメータpass-phraseを指定しない場合は、すべてのアプリケーションで共有される名前空間に記録されます。pass-phraseを指定した場合には、GetUUIDメソッドを実行したCRSをダウンロードしたサーバ固有の名前空間に記録されます。つまり、Server-AからダウンロードしたCRSとServer-BからダウンロードしたCRSで同じキーを指定してGetUUIDメソッドを呼び出した場合、pass-phraseを指定しないときには同じUUIDが返され、pass-phraseを指定すると、それぞれは別のキーとして扱われ、別のUUIDが返されます。

オプションのパラメータpass-phraseを指定しない場合は、UUIDはクリアテキストで記録されますが、pass-phraseを指定すると暗号化されて記録されます。一度pass-phraseを指定して記録されたUUIDは、同じpass-phraseを指定してGetUUIDメソッドを呼び出さなければ取得できず、異なるpass-phraseやpass-phraseを省略した場合RTM-27の例外が発生します。

呼出形式

var result = rt.GetUUID( key [, pass-phrase ] )

戻り値

UUIDの文字列

引数

String key

UUIDに対応する識別子

16文字までの英数字が指定できます。

String pass-phrase

UUIDを暗号化して記録する場合のパスフレーズ

例外

RTM-26

識別子が不正です

RTM-18

レジストリアクセスエラー

RTM-27

UUIDが生成できません

使用例

var rt = new Runtime;
var uuid = rt.GetUUID("appkey", "pass");

関連項目

DeleteUUIDメソッド


Runtime.HasNfcFeatureメソッド

説明

端末にNFC機能があるかを返します。

呼出形式

var result = Runtime.HasNfcFeature( )

戻り値

端末にNFC機能があれば$TRUEを、そうでなければ$FALSEを返します。

引数

なし

例外

なし

使用例

/* NFC機能があるかをチェック */
if(!Runtime.HasNfcFeature()) {
    MessageBox("この端末ではNFCタグを読み取ることは出来ません。");
} else if(!Runtime.IsNfcReaderEnabled()){
    MessageBox("NFCリーダ/ライタ機能がOffになっています。設定からOnにしてください。");
    Runtime.ShowNfcSettings(); /* 設定画面を表示します */
} else {
    /*NFCの読取を開始する準備が整っています*/
}

関連項目

IsNfcReaderEnabled、DiscoverNfcTagメソッド


Runtime.Invokeメソッド

説明

プラットフォーム固有の機能を呼び出します。

呼出形式

Runtime.Invoke( vendorID, functionID [, param1 [, param2 [, ...] ] ] )

戻り値

vendorID, functionID指定した機能によって異なります

引数

String vendorID

ベンダID

後述のfunctionIDと組み合わせて使用されます。

空文字列かnull値を指定した場合、"OpenStream"が指定されたものとみなします。

String functionID

機能ID

ベンダIDと組み合わせて使用されます。

指定できる値はプラットフォームごとに異なります。

例外

FUNC-4

引数が不正です

PKG-51

"vendorID"または"functionID"は使用できません

使用例

var v = "VendorID";
var f = "FunctionID";

var rtm = new Runtime();
re = rtm.invoke(v, f);

関連項目


Runtime.IsBluetoothEnabledメソッド

説明

端末のBluetooth機能が有効になっているかを取得します。

呼出形式

var result = rt.IsBluetoothEnabled()

戻り値

端末のBluetooth機能が機能が有効になっていれば$TRUEを、そうでなければ$FALSEを返します。

引数

なし

例外

なし

使用例

if(!Runtime.IsBluetoothEnabled()){
    MessageBox("Bluetooth機能をONにします。");
    try {
        Runtime.SetBluetoothEnabled(true);
    } catch (e) {
        //.Message("例外", e.Message, "が発生しました");
    }
} else {
    /* Bluetooth機能を使用することができます */
}

関連項目

ShowBluetoothSettings、SetBluetoothEnabledメソッド


Runtime.IsNfcReaderEnabledメソッド

説明

端末のNFCリーダ/ライタの機能が有効になっているかを取得します。

呼出形式

var result = Runtime.IsNfcReaderEnabled( )

戻り値

端末のNFCリーダ/ライタの機能が有効になっていれば$TRUEを、そうでなければ$FALSEを返します。

引数

なし

例外

なし

使用例

/* NFC機能があるかをチェック */
if(!Runtime.HasNfcFeature()) {
    MessageBox("この端末ではNFCタグを読み取ることは出来ません。");
} else if(!Runtime.IsNfcReaderEnabled()){
    MessageBox("NFCリーダ/ライタ機能がOffになっています。設定からOnにしてください。");
    Runtime.ShowNfcSettings(); /* 設定画面を表示します */
} else {
    /*NFCの読取を開始する準備が整っています*/
}

関連項目

HasNfcFeature、ShowNfcSettings、DiscoverNfcTagメソッド


Runtime.IsProviderEnabledメソッド

説明

指定したロケーションプロバイダの有効/無効を取得します。

呼出形式

Android版
var result = Runtime.IsProviderEnabled( provider )

戻り値

指定したロケーションプロバイダーが有効であれば$TRUE、そうでなければ$FALSEを返します。

引数

Number provider

測位を行うロケーションプロバイダーを一つ指定します。

指定できる値は下記のとおりです。

定数 | 値 | 説明
Runtime.LOCATION_PROV_GPS | 1 | GPS(全地球測位システム)を用いて測位します
Runtime.LOCATION_PROV_NETWORK | 2 | モバイルネットワークやWiFiを用いて測位します。

String unused

引数は無視されます。

例外

なし

使用例

/* GPS測位が有効になっていない場合、設定画面を表示 */
if(Runtime.IsProviderEnabled(Runtime.LOCATION_PROV_GPS)){
    Runtime.ShowLocationSettings();
}

関連項目

ShowLocationSettingsメソッド


Runtime.LoadSoundメソッド

説明

効果音用音声ファイルをロードします。

使用する際は、下記の点にご注意下さい。

・大量の音声データをロードする場合、メモリ不足に注意して下さい。
・ロード直後や短い間隔での同時再生をした場合、効果音が再生されない事があります。
・ファイル形式によってはロードに成功しても再生出来ない事があります。

Android版
・OSのAPIの制約上、約10秒以上のファイルはロードできません。
・PCM形式の.wavファイルのみロード可能です。
・一つのRuntimeオブジェクトでロード可能な効果音の最大数は、アンロードしたものも含めて256個迄です。

呼出形式

var soundID = Runtime.LoadSound( fileName )

戻り値

効果音ID(1以上の整数)を数値で返します。

引数

String fileName

開くファイルのファイルパス

ルートフォルダを基点としたパスを指定します。

ルートフォルダはFileSystemクラスのパブリック属性と同じです。

例外

RTM-3

ファイルをオープンできません

RTM-13

指定のファイルは見つかりませんでした

使用例

/* 効果音を鳴らしたい画面の初期化処理にて */
Runtime rtm; /* 効果音を保持するRuntimeオブジェクト */
Number soundId; /* ロードされた効果音ID */
if(!$DESIGNTIME) {
    soundId = rtm.LoadSound("sound.wav");
}

関連項目

UnloadSoundメソッド

PlaySoundメソッド


Runtime.PlaySoundメソッド

API version 7

Runtime.PlaySoundメソッド変更履歴

iOSAndroidWindows

説明

効果音用音声ファイルを再生します。

呼出形式

Runtime.PlaySound( soundID )

戻り値

なし

引数

integer soundID

効果音ID

再生対象の効果音を、LoadSoundメソッドの戻り値で得られた値で指定します。

例外

FUNC-4

引数が不正です

RTM-87

音声の再生に失敗しました。 *1

使用例

/* 効果音を鳴らしたい場面にて。soundは事前にロード済み。 */
rtm.PlaySound(soundID);

関連項目

LoadSoundメソッド

UnloadSoundメソッド

変更履歴
*1　API version 26で追加されました。


Runtime.RequestBondingメソッド

API version 15

Runtime.RequestBondingメソッド変更履歴

iOSAndroidWindows

説明

指定したデバイスIDのデバイスに対してボンディング(ペアリング)を開始します。

このメソッドはボンディング処理を開始した直後に処理を返します。処理の終了を待機しません。

ボンディングの成功/失敗はBluetoothBondingFinishedイベントを使ってハンドリングします。

ボンディングに必要なPINコードの入力や互いのデバイス間でのPINコードの確認作業は、ユーザーの操作が必要です。

この時のダイアログはOSから表示されます。

呼出形式

Runtime.RequestBonding( deviceId )

戻り値

なし

引数

String deviceId

デバイスのBDアドレス(BDアドレスの形式はMACアドレスと同じです)

例外

RTM-54

端末のBluetooth機能へのアクセスに失敗しました。

RTM-83

Bluetoothが有効になっていません。

RTM-84

Bluetoothの使用が許可されていません。OSの設定でBluetoothの使用を許可してください。 *1

RTM-113

Bluetoothデバイス制御はサポートされていません。

RTM-117

現在ボンディング中です。

RTM-118

既にボンディング済です。

使用例

Function Start() {
    try {
        /* Bluetooth Classicデバイスのスキャン開始 */
        var params = new Array();
        params["CONNECTABLE_DEVICE_ONLY"] = true;
        Runtime.StartBluetoothScanning(Runtime.BLUETOOTH_CLASSIC, params);
    } catch(e) {
        MessageBox(e.Message);
    }
}

Function OnBluetoothDeviceFound(e) {
    if (e.Name == "ExampleDeviceName") {
        try {
            Runtime.RequestBonding(e.DeviceId);
        } catch (e) {
            //.MessageBox(e.Message);
        }
    }
}

Function OnBluetoothBondingFinished(e) {
    if (e.bonded) {
        //.MessageBox("ボンディングに成功しました。");
    } else {
        //.MessageBox("ボンディングに失敗しました。");
    }
}

関連項目

StartBluetoothScanning、GetBondedDeviceListメソッド

変更履歴
*1　API version 26で追加されました。


Runtime.SetBluetoothEnabledメソッド

API version 15

Runtime.SetBluetoothEnabledメソッド変更履歴

iOSAndroidWindows

説明

端末のBluetooth機能の有効/無効を設定します。

Android版
Biz/Browser HT 1.3.3より、Android 13以降の端末では下記のように動作します。
・Bluetooth機能を有効にする際、OSの確認メッセージが表示されます。
・Bluetooth機能を無効にできなくなりました。

呼出形式

Runtime.SetBluetoothEnabled( enabled )

戻り値

なし

引数

boolean enabled

端末のBluetooth機能を有効にするか否かを指定します。

例外

RTM-84

Bluetoothの使用が許可されていません。OSの設定でBluetoothの使用を許可してください。 *1

RTM-113

Bluetoothデバイス制御はサポートされていません。

RTM-114

Bluetoothを有効化できませんでした。

RTM-115

Bluetoothを無効化できませんでした。

使用例

if(!Runtime.IsBluetoothEnabled()){
    MessageBox("Bluetooth機能をONにします。");
    try {
        Runtime.SetBluetoothEnabled(true);
    } catch (e) {
        //.Message("例外", e.Message, "が発生しました");
    }
} else {
    /* Bluetooth機能を使用することができます */
}

関連項目

IsBluetoothEnabled、ShowBluetoothSettingsメソッド

変更履歴
*1　API version 26で追加されました。


Runtime.SetCameraOptionメソッド

説明

カメラの各種設定をします。

このメソッドは実行前にStartCameraCaptureメソッドを呼ぶ必要があります。
カメラが初期化されていない場合やカメラが停止中の場合に実行した場合、RTM-46例外が発生します。

利用上の注意
OSやハードウェアの種類により、一部の設定が無効となる場合があります。
必要な引数の個数は、第1引数に指定した値によって変化します。
現状使用する引数はparam1までとなっていますが、
将来、新しい設定可能項目が増えた際にparam2以降の引数を使用する可能性があります。

呼出形式

rt.SetCameraOption( type [, param1 [, param2 [, ...] ] ] )

戻り値

なし

引数

int type

設定の種類を指定します。
指定できる値は下記の通りです。

定数 | 値 | 説明
Runtime.CAMERA_OPTION_MODE | 0 | 使用するカメラ（表/裏）
Runtime.CAMERA_OPTION_FLASH | 1 | フラッシュ
Runtime.CAMERA_OPTION_ORIENTATION | 2 | カメラの向き
Runtime.CAMERA_OPTION_SIZE | 3 | 撮影サイズ
Runtime.CAMERA_OPTION_ZOOM | 4 | ズーム

int param1

引数typeによって指定する値や引数の個数が変わります。
指定できる値はそれぞれ下記の通りです。

使用するカメラ
定数 | 値 | 説明
Runtime.CAMERA_MODE_FRONT | 0 | フロントカメラを使用します。
Runtime.CAMERA_MODE_BACK | 1 | リアカメラを使用します。（初期値）

フラッシュ

常に点灯（トーチモード）するにはtrueを、点灯しない場合はfalseを指定します。
デフォルトはfalseです。

撮影サイズ
定数 | 値 | 説明
Runtime.CAMERA_SIZE_LOW | 0 | 低解像度で撮影します。 撮影サイズは横192[px] 縦144[px]を基準として設定されます。 環境によって基準サイズで撮影できない場合は撮影可能な 解像度のうち最も近いものを自動選択します。
Runtime.CAMERA_SIZE_MEDIUM | 1 | 中解像度で撮影します。 撮影サイズは横480[px] 縦360[px]を基準として設定されます。（初期値） 環境によって基準サイズで撮影できない場合は撮影可能な 解像度のうち最も近いものを自動選択します。
Runtime.CAMERA_SIZE_HIGH | 2 | 高解像度で撮影します。撮影可能な解像度のうち最も大きいものを自動選択します。 利用上の注意 環境によっては非常に高負荷となり動作不能になる場合があります。

カメラの向き
定数 | 値 | 説明
Runtime.CAMERA_ORIENTATION_LEFT | 0 | 端末の左側を上にします。
Runtime.CAMERA_ORIENTATION_TOP | 1 | 端末と同じ向きにします。（初期値）
Runtime.CAMERA_ORIENTATION_RIGHT | 2 | 端末の右側を上にします。
Runtime.CAMERA_ORIENTATION_BOTTOM | 3 | 端末の下側を上にします。

ズーム

ズーム倍率を1.0以上の値で指定します。単位は拡大倍率です。最大ズーム倍率は環境により異なります。
設定値が1.0～最大ズーム倍率の範囲外の値を指定した場合は、最小値または最大値に矯正されます。
初期値は1.0倍です。

Android版
端末の撮影可能なズーム倍率の中から指定した値に最も近いズーム倍率に自動変換されます。

例外

RTM-46

カメラの操作に失敗しました。

使用例

/* カメラの表裏切り替え */
^.r.SetCameraOption( Runtime.CAMERA_OPTION_MODE, mode );

if(mode == Runtime.CAMERA_MODE_FRONT){
    mode = Runtime.CAMERA_MODE_BACK;
}else{
    mode = Runtime.CAMERA_MODE_FRONT;
}

StartCameraCaptureの使用例もご参照ください。

関連項目

 StartCameraCapture、GetCameraCaptureImage、StopCameraCaptureメソッド


Runtime.ShellEditメソッド

このメソッドは互換性のために残されています。操作しても何も起きません。


Runtime.ShellLinkメソッド

API version 4

Runtime.ShellLinkメソッド変更履歴

iOSAndroidWindows

説明

ハイパーリンクを実行します。

ShellLinkメソッドの実行結果は、コンピュータの環境により異なります。

リンク先がローカルコンピュータを指す（file:で始まる）場合は、セキュリティ制限があります。セキュリティ警告ダイアログの表示や、実行できるファイルの種類、セキュリティレベルによる動作の違いについては、ShellOpenメソッドと同じです。

呼出形式

rt.ShellLink( URL )

戻り値

なし

引数

String URL

リンクするURLを指定します。*1

Android版
絶対パスでURLを指定する場合は、mailto:、http:、https:の他に、他のアプリが受信・解釈することができるスキーム文字列が指定できます。受信が可能なスキーム文字列はインストールされているアプリ等により変わります。
受信できないスキーム文字列から始まるURLを指定した場合はエラーとなります。*2

例外

RTM-31

URLが不正です

RTM-11

外部プログラムはセキュリティ上の制約により実行できません

RTM-13

指定のファイルは見つかりませんでした

RTM-32

リンク操作はユーザにより中止されました

使用例

var rt = new Runtime;
rt.ShellLink("http://biz-browser.jp");
rt.ShellLink("mailto:user@biz-browser.jp");

関連項目

ShellOpen、Execメソッド
変更履歴
*1　API version 8から、既にURLがパーセントエンコード済みである場合、内部的にパーセントエンコードせず直接URLに対してハイパーリンクを実行するようになりました。
*2　API version 10から、他のアプリが受信・解釈することができるスキーム文字列を指定できるように仕様変更しました。


Runtime.ShellOpenメソッド

説明

ファイルを別のアプリケーションで開きます。

Android版
暗黙的インテントの機能によりファイルを開きます。
Android APIにおける「Intent.ACTION_VIEW」と同じで、指定されたMIMEタイプを処理できるアプリケーションでファイルを開きます。

ShellOpenメソッドの呼び出しにより、セキュリティ警告ダイアログが表示され、ユーザに実行の許可を求めます。

ユーザがキャンセルを選択した場合は、RTM-30の例外が発生します。

警告ダイアログで「今後、この種類のファイルは確認メッセージを表示しない」をチェックすると、次回からは警告を表示しません。チェックの状態は、ShellOpenメソッドを呼び出したCRSをダウンロードしたサーバ名とファイルの拡張子のペアで記録されます。サーバ名または、拡張子が特定できないURLを指定した場合はチェック欄は無効となります。

セキュリティレベルによる動作の違い

警告ダイアログの表示

レベル | 説明
0 | 警告ダイアログは表示せず、そのままファイルを開きます。
1 | 警告ダイアログを表示し、OKならばファイルを開きます。 「確認メッセージを表示しない」を選択後は警告ダイアログは表示されません。
2
3
4 | 常に警告ダイアログを表示し、OKならばファイルを開きます。

呼出形式

Android版
var result = rt.ShellOpen( fileName , mime )

戻り値

ファイルを開けた場合は$TRUE、それ以外は$FALSEを返します。

引数

String fileName

開くファイルのファイルパス

ルートフォルダを基点としたパスを指定します。

ルートフォルダはFileSystemクラスのパブリック属性と同じです。

string mime

開くファイルの種別をMIMEタイプ形式で指定します。

例) "text/plain", "application/pdf"

例外

RTM-11

外部プログラムはセキュリティ上の制約により実行できません

RTM-13

指定のファイルは見つかりませんでした

RTM-30

オープン操作はユーザにより中止されました

使用例

Android版
var rt = new Runtime;
rt.ShellOpen("/files/sample.png", "image/png");

関連項目

ShellLink、Execメソッド


Runtime.ShowBluetoothSettingsメソッド

説明

端末のBluetooth設定画面を表示します。

呼出形式

Runtime.ShowBluetoothSettings();

戻り値

なし

引数

なし

例外

なし

使用例

Button btnShowBluetoothSettings {
    X = 10;
    Y = 10;
    Width = 150;
    Height = 24;
    Title = "Bluetooth設定画面を表示";

    Function OnTouch( e ) {
        Runtime.ShowBluetoothSettings();
    }
}

関連項目

IsBluetoothEnabled、SetBluetoothEnabledメソッド


Runtime.ShowCodeScannerメソッド

API version 11

Runtime.ShowCodeScannerメソッド変更履歴

iOSAndroidWindows

説明

バーコードおよび二次元コードをスキャンします。

本メソッドを呼び出すことで、バーコードおよび二次元コードの読取画面が表示されます。

使用の際は下記の点にご注意下さい。

(以下、バーコードシンボルおよび二次元コードシンボルのことをシンボルと呼称します)

読取設定について

・誤検知の防止やパフォーマンスの向上のため、コード種別の絞り込みや読取データ長の指定、読取対象外エリアを設定することをおすすめします。

読取時の操作

・読取の際は読取画面内の読取エリアに読み取りたいシンボルがしっかりと映り込むように端末を動かして下さい。

・特に二次元コード(QRコード、DataMatrix等)を読み取る場合、できるだけシンボルを真上から撮影して下さい。

読み取り精度やパフォーマンスについて

・シンボルの認識精度や認識速度に関してはお使いの端末や使用環境、シンボルの状態などに依存します。

・シンボルが常に正しく読み取れることは保証しておりません。必要に応じて読取データ長の確認やチェックディジットの検証、マスタとの突合などの処理を追加して下さい。

・同時に認識できるシンボル数はコード種別や読取状況に依存します。 特に二次元コード(QRコード、DataMatrix等)の場合、同時に複数のシンボルを認識出来ない可能性があります。

Android版
API Version 19より前のバージョンで本機能を使用するには、Google Play開発者サービスアプリがインストールされている必要があります。
Google Play開発者サービスアプリがインストールされていないか古いバージョンの場合、RTM-46例外が発生します。

呼出形式

var result = Runtime.ShowCodeScanner( sourceType [, format [, extraParams ]] );

戻り値

下記の構造を持つRecord配列を返します。読取がキャンセルされた場合、長さ0のRecord配列を返します。

Record {
    Number format;	/* 読み取ったコードの種別。引数formatに指定した種別のうちいずれかが格納されます。 */

       String data;	/* コードの読取結果が文字列で格納されます。 */
}

引数

integer sourceType

画像を取得する対象を指定します。

指定できる値は下記のとおりです。

定数 | 値 | 説明
Runtime.SourceTypeRearCamera | 2 | リアカメラ(端末背面側)を起動し読取を行います
Runtime.SourceTypeFrontCamera | 3 | フロントカメラ(液晶側)を起動し読取を行います

integer format

読取対象のバーコード/二次元コード種別を組み合わせて指定します。

デフォルトではRuntime.CODE_FORMAT_ALLが指定されます。

定数 | 値 | 種別
Runtime.CODE_FORMAT_CODE128 | 0x0001 | CODE128
Runtime.CODE_FORMAT_CODE39 | 0x0002 | CODE39
Runtime.CODE_FORMAT_CODABAR *1 | 0x0008 | CodaBar(NW-7) ※4
Runtime.CODE_FORMAT_DATA_MATRIX *1 | 0x0010 | DataMatrix
Runtime.CODE_FORMAT_EAN13 | 0x0020 | EAN-13 (JAN-13) ※1
Runtime.CODE_FORMAT_EAN8 | 0x0040 | EAN-8 (JAN-8)
Runtime.CODE_FORMAT_ITF | 0x0080 | ITF (Interleaved Two of Five)
Runtime.CODE_FORMAT_QR_CODE | 0x0100 | QRコード ※5
Runtime.CODE_FORMAT_UPCA | 0x0200 | UPC-A ※1
Runtime.CODE_FORMAT_UPCE | 0x0400 | UPC-E
Runtime.CODE_FORMAT_PDF417 *1 | 0x0800 | PDF417
Runtime.CODE_FORMAT_AZTEC *1 | 0x1000 | Aztec
Runtime.CODE_FORMAT_ALL | 0xFFFF | 読み取り可能な全てのフォーマット ※2 ※3

※1 : EAN-13として認識されるシンボル内、先頭が0となっているものはUPC-Aとして扱われます。

※2 : 他の定数と組み合わせず、単体で指定して下さい。

※3 : 将来的に読取できるコード種別が追加された場合、そのコードも読取対象となります。

※4 : 6文字以上(スタートストップ文字入れて8文字以上)のみ読み取り可能です。

※5 : QRコード モデル1は読み取ることはできません。

Array extraParams

その他細かな設定を指定します。

引数のArrayのキー(文字列)に設定名を、値に設定値を格納します。

キー(文字列) | 値の型 | デフォルト値 | 説明
"ALLOW_SAME_SYMBOL" | boolean | true | 同一シンボル読取許可を指定します。 読取許可=true, 読取禁止=false
"CAMERA_FLASH" | boolean | false | カメラフラッシュ(LED)の初期状態を指定します。 点灯=true, 消灯=false
"CONTINUOUS_MODE" | boolean | false | 読取モードを指定します。 連続読取=true, 単発読取=false
"CONVERT_UPCA_TO_EAN13" | boolean | false | UPC-Aとして認識されたシンボルを、EAN-13に読み替えます。 (データ先頭に0を付加し、12桁→13桁に変換) 読替有効=true, 読替無効=false
"MAX_SCAN_COUNT" | integer | 0 | 最大読取数を指定します。 0(無制限)または1以上を指定します。 範囲外の値は0を指定した物と見なします。
"SAME_SYMBOL_SCAN_INTERVAL" | number | 1.0 | 同一シンボルの読み取りが可能になるまでの時間(単位:秒)を指定します。 0以上の値を指定可能です。 範囲外の値は0を指定した物と見なします。
"SCAN_DATA_LENGTH" *1 | integer または Array | null | 読取対象のデータ長(コードの読取結果の文字列長)を指定します。 対象のデータ長がこの指定と異なる場合、そのシンボルは検出されても無視されます。 単一のデータ長のみ許可する場合、値には整数値を指定します。 複数のデータ長を許可する場合、値にはデータ長を整数で格納したArrayオブジェクトを指定します。 nullまたは空のArrayオブジェクトを指定した場合、全てのデータ長が許可されます。
"SCAN_AREA_MARGIN_LEFT" | number | 0 | 左端からの読取対象外エリアを指定します。 0.0～1.0の間を指定可能です。 例えば0.3を指定した場合、画面の左側30%は読取対象外エリアとなります。
"SCAN_AREA_MARGIN_TOP" | number | 0 | 上端からの読取対象外エリアを指定します。 0.0～1.0の間を指定可能です。 例えば0.3を指定した場合、画面の上側30%は読取対象外エリアとなります。
"SCAN_AREA_MARGIN_RIGHT" | number | 0 | 右端からの読取対象外エリアを指定します。 0.0～1.0の間を指定可能です。 例えば0.3を指定した場合、画面の右側30%は読取対象外エリアとなります。
"SCAN_AREA_MARGIN_BOTTOM" | number | 0 | 下端からの読取対象外エリアを指定します。 0.0～1.0の間を指定可能です。 例えば0.3を指定した場合、画面の下側30%は読取対象外エリアとなります。
"SCAN_SOUND_ID" | integer | (空値) | 読取時に再生する効果音を指定します。 指定できる値は、Runtime.LoadSoundメソッドで取得した効果音Idです。 省略時や0未満を指定したとき、読取時にロードされていないIdを指定したときには効果音を再生しません。
"SCAN_AREA_TOUCH_MODE" *2 | boolean | false | 画面タッチによる読取領域指定を設定します。 trueを指定すると、画面をタッチした位置でシンボルを読み取ります。 読取領域のサイズはSCAN_AREA_TOUCH_SIZEで指定します。 読取領域の有効時間はSCAN_AREA_TOUCH_TIMEで指定します。
"SCAN_AREA_TOUCH_SIZE" *2 | number | 0.2 | 画面タッチによる読取領域指定が有効な場合の、スキャン領域のサイズを指定します。 0.0～1.0の間を指定可能です。 画面の短辺に対する割合となります。 例えば端末が縦向きで0.3を指定した場合、画面のタップ位置を中心に、画面の横幅の30%の領域が読取対象となります。
"SCAN_AREA_TOUCH_TIME" *2 | number | 5.0 | 画面タッチによる読取領域指定が有効な場合の、読取領域が有効な時間を秒単位で指定します。 0を指定すると、次に画面をタッチするまで読取領域は固定されます。
"SCAN_AREA_LINE_HORIZONTAL" *2 | number | 0.0 | 画面上に水平線を引き、線と重なったシンボルだけを読み取ります。 0.0～1.0の間を指定可能です。0.0、もしくは1.0が指定された場合は水平線を引きません。 例えば0.3を指定した場合、画面上から30%の位置に水平線を引きます。 SCAN_AREA_LINE_VERTICALと同時に指定された場合は、線の交点と重なったシンボルだけを読み取ります。 SCAN_AREA_TOUCH_MODEがtrueの場合は無効となります。
"SCAN_AREA_LINE_VERTICAL" *2 | number | 0.0 | 画面上に垂直線を引き、線と重なったシンボルだけを読み取ります。 0.0～1.0の間を指定可能です。0.0、もしくは1.0が指定された場合は垂直線を引きません。 例えば0.3を指定した場合、画面左から30%の位置に垂直線を引きます。 SCAN_AREA_LINE_HORIZONTALと同時に指定された場合は、線の交点と重なったシンボルだけを読み取ります。 SCAN_AREA_TOUCH_MODEがtrueの場合は無効となります。
"SHOW_DUPLICATED" *2 | boolean | false | ALLOW_SAME_SYMBOLにfalseを指定した場合に、読取済みシンボル上にマークを表示するかどうかを指定します。 読取済みシンボルと同一かどうかを判定する間隔はSAME_SYMBOL_SCAN_INTERVALの指定値となります。 マークを表示する=true マークを表示しない=false
"DUPLICATED_SOUND_ID" *2 | integer | (空値) | ALLOW_SAME_SYMBOLにfalseを指定した場合に、読取済みシンボルを再度読み取った際に再生する効果音を指定します。 指定できる値は、Runtime.LoadSoundメソッドで取得した効果音Idです。 省略時や0未満を指定したとき、読取時にロードされていないIdを指定したときには効果音を再生しません。 読取済みシンボルと同一かどうかを判定する間隔はSAME_SYMBOL_SCAN_INTERVALの指定値となります。

例外

FUNC-4

引数の値が不正です

RTM-46

カメラの操作に失敗しました。

使用例

try{
    /* リアカメラから読み取ります */
    var sourceType = Runtime.SourceTypeRearCamera;

    /* EAN13バーコードおよびQRコードのみを読み取ります */
    var format = Runtime.CODE_FORMAT_EAN13 + Runtime.CODE_FORMAT_QR_CODE;

    /* UPC-AバーコードをEAN13バーコードに読み替えます */
    var extraParams = new Array;
    extraParams["CONVERT_UPCA_TO_EAN13"] = true;

    /* 読取開始 */
    var rtm = new Runtime;
    var result = rtm.ShowCodeScanner(sourceType, format, extraParams);

    /* 結果表示 */
    if(result.length > 0) {
        //.MessageBox("読取結果 : " + result[0].data, "種別 : " + str(result[0].format));
    } else {
        //.MessageBox("読取はキャンセルされました");
    }

}catch(e){
    //.MessageBox(e.Method + "-" + str(e.Code));
    //.MessageBox(e.message);
}

関連項目

LoadSoundメソッド

変更履歴
*1　API version 12から追加されました。
*2　API version 18から追加されました。


Runtime.ShowImagePickerメソッド

API version 4

Runtime.ShowImagePickerメソッド変更履歴

iOSAndroidWindows

説明

カメラまたは画像ライブラリから画像を撮影、取得します。

Android版
この機能は互換性のために残されています。操作しても何も起きません。

呼出形式

var img= rt.ShowImagePicker( sourceType )

戻り値

選択または撮影された画像をImageオブジェクトとして返します。

引数

integer sourceType

画像を取得する対象を指定します。

指定できる値は下記のとおりです。

定数 | 値 | 説明
Runtime.SourceTypePhotoAlbum | 0 | フォトアルバムから選択します
Runtime.SourceTypePhotoLibrary | 1 | フォトライブラリから選択します
Runtime.SourceTypeRearCamera | 2 | リアカメラ(端末背面側)を起動し撮影した写真を取得します
Runtime.SourceTypeFrontCamera | 3 | フロントカメラ(液晶側)を起動し撮影した写真を取得します

例外

FUNC-4

引数の値が不正です

RTM-30

オープン操作はユーザにより中止されました

RTM-45

ライブラリにアクセスできません。%s

RTM-46*1

カメラの操作に失敗しました。

使用例

try{
    var rt = New Runtime;
    var img = rt.ShowImagePicker(Runtime.SourceTypeRearCamera);
    ^.imgForm.ImageLabel1.SetImage(img);
}catch(e){
    //.MessageBox(e.Method + "-" + str(e.Code));
    //.MessageBox(e.message);
}

関連項目

変更履歴
*1　設定によりカメラ機能へのアクセスが許可されていない場合、新たに例外が発生するように変更しました。（カメラを要求する機能のみ）


Runtime.StartBluetoothScanningメソッド

API version 15

Runtime.StartBluetoothScanningメソッド変更履歴

iOSAndroidWindows

説明

Bluetoothデバイスのスキャンを開始します。

スキャンにより検出されたデバイスの情報はイベントとして受け取ります。

Bluetoothデバイスのスキャンが開始するとBluetoothScanStartedイベントが発生します。

スキャンが終了、もしくはキャンセルされるとBluetoothScanFinishedイベントが発生します。スキャンをキャンセルするにはCancelBluetoothScanningメソッドを使用します。

Bluetoothデバイスが検出されるとBluetoothDeviceFoundイベントが発生します。イベントオブジェクトの子オブジェクトから、スキャン結果のデバイス情報を取得できます。

同一のデバイスが何度も検出される場合があります。BLEデバイスのRSSI値(Received Signal Strength Indication)の変化を見るために利用することができます。

呼出形式

Runtime.StartBluetoothScanning( type [, params ] )

戻り値

なし

引数

integer type

スキャンするデバイスの種類を指定します。
指定できる値は下記の通りです。

定数 | 値 | 説明
Runtime.BLUETOOTH_CLASSIC | 1 | Bluetooth Classicに対応したデバイスをスキャンします。 Bluetooth Classicデバイスの探索は約12秒ほどで自動終了します(OSの制約)
Runtime.BLUETOOTH_LE | 2 | BLE(Bluetooth Low Energy)に対応したデバイスをスキャンします。

Array params

探索パラメータを、パラメーター名をキーとした連想配列で指定します。
指定できる値は下記の通りです。

キー | 説明
CONNECTABLE_DEVICE_ONLY | 接続可能なデバイスのみを検索するか否かをbooleanで指定します。 デフォルトはtrueです。
FILTER_SERVICE_UUID *1 | 検索を行うサービスをフィルタリングします。 フィルタリングするサービスのUUIDの文字列を格納したArrayオブジェクトを指定します。

例外

FUNC-4

引数の値が不正です

RTM-54

端末のBluetooth機能へのアクセスに失敗しました。

RTM-83

Bluetoothが有効になっていません。

RTM-84

Bluetoothの使用が許可されていません。OSの設定でBluetoothの使用を許可してください。 *2

RTM-113

Bluetoothデバイス制御はサポートされていません。

RTM-119

BluetoothLE機能を利用できませんでした。

使用例

Form form1 {
    Width = 424;
    Height = 320;

    Button btnStartScanning {
        X = 16;
        Y = 16;
        Width = 120;
        Height = 40;
        Title = "デバイススキャン開始";

        Function OnTouch( e ) {
                try {
                    /* Bluetooth LEデバイスのスキャン開始 */
                    var params = new Array();
                    params["CONNECTABLE_DEVICE_ONLY"] = true;
                    Runtime.StartBluetoothScanning(Runtime.BLUETOOTH_LE, params);
                } catch(e) {
                    MessageBox(e.Message);
                }
        }
    }

    Button btnStopScanning {
        X = 184;
        Y = 16;
        Width = 120;
        Height = 40;
        Title = "デバイススキャン停止";

        Function OnTouch( e ) {
            Runtime.CancelBluetoothScanning();
        }
    }
}
Function OnBluetoothScanStarted(e) {
    print("スキャン開始\n");
}
Function OnBluetoothScanFinished(e) {
    print("スキャン終了\n");
}
Function OnBluetoothDeviceFound(e) {
    print(e.DeviceID + "\n");
}

関連項目

CancelBluetoothScanning、RequestBondingメソッド

変更履歴
*1　API version 20で追加されました。
*2　API version 26で追加されました。


Runtime.StartCameraCaptureメソッド

説明

カメラを初期化し、カメラによるキャプチャを開始します。
カメラの制御は本メソッドと下記の3つのメソッドを組み合わせて行います。
・SetCameraOptionメソッド
・GetCameraCaptureImageメソッド
・StopCameraCaptureメソッド

本メソッドはカメラ制御の一番最初に実行します。
実行することでカメラの設定の変更、カメラからの画像の取得、カメラの停止を行うことができます。

呼出形式

rt.StartCameraCapture( )

戻り値

なし

引数

なし

例外

RTM-46

カメラの操作に失敗しました。

使用例

/* カメラの状態 */
Number isRun = $FALSE;
/* 現在の撮影枚数 */
Number num = 0;

Function Start(){
    /* キャプチャ開始 */
    ^.rtm.StartCameraCapture();

    /* キャプチャ設定 */
    ^.rtm.SetCameraOption( Runtime.CAMERA_OPTION_MODE, Runtime.CAMERA_MODE_FRONT );

    /* タイマー開始 */
    SetTimer(0.1);
    isRun = $TRUE;
    num = 0;
}

Function OnTimer(e){
    /* カメラ停止中に呼び出した場合は何もしない */
    if(!isRun){ return ; }

    /* 何枚か撮影したら自動停止 */
    if(num++ > MAX_SHOT){
        ^.rtm.StopCameraCapture();
        RemoveTimer();
        isRun = $FALSE;
        return;
    }

    /* 画像を取得する */
    var img = ^.rtm.GetCameraCaptureImage();

    /* 取得した画像をセット */
    if(img != null && img.width > 0 && img.height > 0){
        ^.lbl.setImage(img);
    }
}

関連項目

 SetCameraOption、GetCameraCaptureImage、StopCameraCaptureメソッド


Runtime.ShowNfcSettingsメソッド

説明

端末のNFC設定画面を表示し、即座に後続の処理を続行します。

呼出形式

var maxMem = Runtime.ShowNfcSettings();

戻り値

なし

引数

なし

例外

なし

使用例

/* NFC機能があるかをチェック */
if(!Runtime.HasNfcFeature()) {
    MessageBox("この端末ではNFCタグを読み取ることは出来ません。");
} else if(!Runtime.IsNfcReaderEnabled()){
    MessageBox("NFCリーダ/ライタ機能がOffになっています。設定からOnにしてください。");
    Runtime.ShowNfcSettings(); /* 設定画面を表示します */
} else {
    /*NFCの読取を開始する準備が整っています*/
}

関連項目

IsNfcReaderEnabledメソッド


Runtime.StartLocationMeasureメソッド

説明

位置測位を開始します。位置情報が更新された場合、LocationChangedイベントにて通知されます。

呼出形式

Android版
rt.StartLocationMeasure( accuracy or providers )

戻り値

なし

引数

Number accuracy

精度情報

指定できる値は下記のとおりです。

定数 | 値 | 説明
Runtime.LOCATION_ACCURACY_HIGH | 8 | 最高精度で測位します
Runtime.LOCATION_ACCURACY_MEDIUM | 9 | 中精度(誤差数百m前後)での測位を行います
Runtime.LOCATION_ACCURACY_LOW | 10 | 低精度(誤差数km前後)での測位を行います

Number providers

測位を行うロケーションプロバイダーを一つまたは複数指定します。

通常は上記accuracyを指定してください。

また、accuracyとは同時に指定できません。

指定できる値は下記のとおりです。

定数 | 値 | 説明
Runtime.LOCATION_PROV_GPS | 1 | GPS(全地球測位システム)を用いて測位します
Runtime.LOCATION_PROV_NETWORK | 2 | モバイルネットワークやWiFiを用いて測位します。

例外

なし

使用例

var rt = new Runtime;
rt.StartLocationMeasure(Runtime.LOCATION_ACCURACY_MEDIUM);

関連項目

StopLocationMeasureメソッド、LocationChangedイベント


Runtime.StopCameraCaptureメソッド

API version 8

Runtime.StopCameraCaptureメソッド変更履歴

iOSAndroidWindows

説明

カメラによるキャプチャを停止します。

このメソッドは実行前にStartCameraCaptureメソッドを呼ぶ必要があります。
カメラが初期化されていない場合やカメラが停止中の場合に実行した場合、RTM-46例外が発生します。

呼出形式

rt.StopCameraCapture( [ unused ] *1)

戻り値

なし

引数

boolean unused

引数は無視されます。省略可能です。

互換性のために残されています。*2

例外

RTM-46

カメラの操作に失敗しました。

使用例

r.StopCameraCapture();

StartCameraCaptureの使用例もご参照ください。

関連項目

 StartCameraCapture、SetCameraOption、GetCameraCaptureImageメソッド
変更履歴
*1　API version 12から、カメラのデバイスリソースの確保状態を解放するかどうかを指定する機能が追加されました。
*2　API version 14までカメラのデバイスリソースを解放するかどうかを指定するために使われていましたが、この機能は削除されました。


Runtime.StopLocationMeasureメソッド

説明

位置測位を停止します。

呼出形式

var result = rt.StopLocationMeasure()

戻り値

なし

引数

なし

例外

なし

使用例

var rt = new Runtime;
rt.StartLocationMeasure(Runtime.LOCATION_ACCURACY_MEDIUM);
/* … */
rt.StopLocationMeasure();

関連項目

StartLocationMeasureメソッド


Runtime.ShowLocationSettingsメソッド

説明

端末の位置情報サービス設定画面を表示し、即座に後続の処理を続行します。

呼出形式

var maxMem = Runtime.ShowLocationSettings();

戻り値

なし

引数

なし

例外

なし

使用例

/* GPS測位が有効になっていない場合、設定画面を表示 */
if(Runtime.IsProviderEnabled(Runtime.LOCATION_PROV_GPS)){
    Runtime.ShowLocationSettings();
}

関連項目

IsProviderEnabledメソッド


Runtime.UnloadSoundメソッド

説明

効果音用音声ファイルをアンロードします。

呼出形式

Runtime.UnloadSound( soundID )

戻り値

なし

引数

integer soundID

効果音ID

アンロード対象の効果音を、LoadSoundメソッドの戻り値で得られた値で指定します。

例外

FUNC-4

引数が不正です

使用例

/* 効果音を開放したい場面にて */
rtm.UnloadSound(soundID);

関連項目

LoadSoundメソッド

PlaySoundメソッド


Runtimeイベント

API version 4

イベント

iOSAndroidWindows

Runtimeクラスには以下のイベントが定義されています。

API | 名前 | 説明
HT(10) | EndProcess | 互換性のために残されています。発生しません。
4 | LocationChanged | StartLocationMeasureで測位を開始したオブジェクトに対し位置情報が更新された時に発生します

クラス概要

基本クラスのイベント


Runtime.LocationChangedイベント

StartLocationMeasureメソッドで位置測位を開始した状態で位置情報が更新されたときに発生するイベントです。

LocationChangedイベントは以下の構造をもちます。

Event {
    Number provider;    		/* この位置情報を取得したロケーションプロバイダを取得します。 */
    Number latitude;    		/* 緯度を取得します。 単位は度(deg)です。 */
    Number longitude;   		/* 経度を取得します。 単位は度(deg)です。 */
    Date time;          		/* この位置情報を取得した時刻が格納されます。 */
    Number hasAccuracy; 		/* 計測精度を取得できた場合は$TRUE、そうでなければ$FALSEが格納されます。 */

    /* 下記の子オブジェクトはhasAccuracy=$TRUEの時のみ存在します */
    Number accuracy;    		/* 計測精度を取得します。単位はメートル(m)です。 */

}

位置情報には緯度経度の他にも取得時刻や計測精度、計測したロケーションプロバイダの情報が含まれます。

実際に位置情報を使用する際はこれらの情報を元に用途に適した位置情報を選別してお使いください。

LocationChangedイベントはOSのロケーションプロバイダが位置情報を更新した際に発生するものです。

そのため、GPSのように測位に長い時間がかかったり、測位を行えない場所に端末がある場合、イベントが長期間発生しない可能性があります。

Runtimeオブジェクトがオブジェクトツリーに含まれない場合は、イベントハンドラの記述には注意が必要です。

オブジェクトツリーに含まれないオブジェクトから他のオブジェクトを参照する場合、グローバルオブジェクト、"//"からの絶対パス、自オブジェクトの子オブジェクトのみ、参照できます。

オブジェクトツリーに含まれない記述例

var rt = new Runtime {
    Function OnLocationChanged(e) {
    /* Runtimeオブジェクトはオブジェクトツリーに含まれないため */
    /* ここでは相対パスによる他のオブジェクトの参照はできない  */
    }
}
rt.StartLocationMeasure(Runtime.LOCATION_GPS);

オブジェクトツリーに含まれる記述例

Runtime tr {
    Function OnLocationChanged(e) {
    /* Runtimeオブジェクトはオブジェクトツリーに含まれるため  */
    /* ここでも相対パスによる他のオブジェクトの参照ができるが */
    /* 使用後に削除しない限り永続的にオブジェクトが残る       */
    }
}
rt.StartLocationMeasure(Runtime.LOCATION_GPS);


SerialPortクラス

Object
 | SerialPort

USBシリアル通信を行うためのクラスです。

Fileクラスと同様に他のクラスと連携して使用することも可能です。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。


SerialPortプロパティ

API version 22

プロパティ

iOSAndroidWindows

SerialPortクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
22 | BaudRate | CRW | integer | 9600 | ボーレート
22 | DataBits | CRW | integer | 8 | データビット数
22 | DeviceType | CRW | String |  | デバイス種別
22 | Parity | CRW | integer | 0 | パリティ方式
22 | ProductID | CRW | integer | 0 | デバイスのプロダクトID
22 | StopBits | CRW | integer | 1 | ストップビット数
22 | Timeout | CRW | Number | 0 | 通信タイムアウト値
22 | VendorID | CRW | integer | 0 | デバイスのベンダーID

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


SerialPort.BaudRateプロパティ

ボーレートを指定します。

デフォルトは9600です。


SerialPort.DataBitsプロパティ

データのビット数を指定します。7か8を指定できます。

デフォルトは8です。


SerialPort.DeviceTypeプロパティ

デバイス種別を以下の値から指定します。

定数 | 値 | 説明
SerialPort.DEVICE_AUTO | "" | デバイス種別を自動判別
SerialPort.DEVICE_CDC | "cdc" | CDCデバイス
SerialPort.DEVICE_CH34x | "ch34x" | CH34x系デバイス
SerialPort.DEVICE_CP210x | "cp210x" | CP210x系デバイス
SerialPort.DEVICE_FTDI | "ftdi" | FTDI系デバイス
SerialPort.DEVICE_PL2303 | "pl2303" | PL2303系デバイス

デフォルトはSerialPort.DEVICE_AUTOです。


SerialPort.Parityプロパティ

パリティビットを以下の値から指定します。

定数 | 値 | 説明
SerialPort.PARITY_NONE | 0 | パリティ無し
SerialPort.PARITY_ODD | 1 | 奇数パリティ
SerialPort.PARITY_EVEN | 2 | 偶数パリティ

デフォルトはSerialPort.PARITY_NONEです。


SerialPort.ProductIDプロパティ

接続するデバイスのプロダクトIDを指定します。

VendorIDプロパティとProductIDプロパティが両方とも0以外の場合、指定したベンダーIDとプロダクトIDに一致したデバイスと接続します。

デフォルトは0です。


SerialPort.StopBitsプロパティ

ストップビット数を以下の値から指定します。

定数 | 値 | 説明
SerialPort.STOP_BITS_1 | 1 | 1ビット
SerialPort.STOP_BITS_2 | 2 | 2ビット

デフォルトはSerialPort.STOP_BITS_1です。


SerialPort.Timeoutプロパティ

Read、ReadLineメソッドのタイムアウト時間を秒単位で指定します。

デフォルトは0(受信待ちをしない)です。


SerialPort.VendorIDプロパティ

接続するデバイスのベンダーIDを指定します。

VendorIDプロパティとProductIDプロパティが両方とも0以外の場合、指定したベンダーIDとプロダクトIDに一致したデバイスと接続します。

デフォルトは0です。


SerialPortメソッド

API version 22

メソッド

iOSAndroidWindows

SerialPortクラスには以下のメソッドが定義されています。

API | 名前 | 説明
22 | Close | デバイスとの接続を閉じます
22 | Open | デバイスと接続します
22 | Read | 受信したデータを読み取ります
22 | ReadLine | 受信したデータから1行分の文字列データを読み込みます
22 | Write | データを送信します
22 | WriteString | 文字列を送信します

スタティックメソッド

API | 名前 | 説明
22 | GetDeviceList | USBシリアルデバイスの一覧を取得します

クラス概要

基本クラスのメソッド


SerialPort.Closeメソッド

説明

デバイスとの接続を切断します。

Openメソッド等でデバイスに接続した後、読み込み、書き込みが終わったら必ず閉じてください。

呼出形式

port.Close()

戻り値

なし

引数

なし

例外

なし

使用例

var port = new SerialPort;
port.DeviceType = SerialPort.DEVICE_AUTO;
port.Open();
port.WriteString("hello");
port.Close();

関連項目

Openメソッド


SerialPort.GetDeviceListメソッド

説明

端末に接続しているUSBシリアルデバイスの一覧を取得します。

呼出形式

var devices = SerialPort.GetDeviceList( )

戻り値

以下の子オブジェクトを持つRecordの配列が返ります。

型 | 名前 | 説明
Number | VendorId | ベンダーID
Number | ProductId | プロダクトID
String | ProductName | プロダクト名
String | DeviceName | デバイス名

引数

なし

例外

なし

使用例

var devices = SerialPort.GetDeviceList();
var port = new SerialPort();
for (var i = 0; i < devices.length; i++) {
    port.VendorID = devices[i].VendorID;
    port.ProductID = devices[i].ProductID;
    port.Open();
    break;
}

関連項目

Openメソッド


SerialPort.Openメソッド

説明

デバイスと接続します。

VendorIDプロパティとProductIDプロパティが両方とも0以外の場合、指定したベンダーIDとプロダクトIDに一致したデバイスと接続します。

VendorIDプロパティとProductIDプロパティのどちらかが0の場合、開くことが出来るシリアルデバイスの内最初に見つかった物に接続します。

呼出形式

port.Open()

戻り値

なし

引数

なし

例外

RTM-74

指定のデバイスに接続出来ませんでした

RTM-123

既に接続済です

RTM-125

指定のUSBデバイスにアクセスする権限がありません

RTM-126

接続可能なデバイスを発見できませんでした

使用例

var port = new SerialPort;
port.DeviceType = SerialPort.DEVICE_AUTO;
port.Open();
port.WriteString("hello");
port.Close();

関連項目

Closeメソッド


SerialPort.Readメソッド

説明

デバイスから受信したデータを読み込みます。

Timeoutプロパティで指定した時間内に読み取りが完了しない場合、その時点までに読み出していたデータを返します。

呼出形式

var data= port.Read( size )

戻り値

読み込んだデータを格納したByteArrayオブジェクト

引数

integer size

読み込むサイズ。バイト単位で指定します。

省略時、マイナス値は4096とみなします。

例外

RTM-124

デバイスに接続されていません

使用例

var port = new SerialPort;
port.Open();
while (true) {
    var data = port.Read(256);
    if (data.Length <= 0) {
        break;
    }
    print(data);
    port.Write(data);
}
port.Close();

関連項目

ReadLine、Writeメソッド


SerialPort.ReadLineメソッド

説明

受信したデータから、1行分の文字列データを読み込みます。

Timeoutプロパティで指定した時間内に読取りが完了しない場合、空文字列を返します。

呼出形式

var data = port.ReadLine()

戻り値

読み込んだ文字列データをStringオブジェクトとして返します。

行末の改行文字は含まれません。データの終わりに達して、これ以上読み込めない場合は空文字列を返します。

引数

なし

例外

RTM-124

デバイスに接続されていません

使用例

var port = new SerialPort;
port.Open();
while (true) {
    var data = port.ReadLine();
    if (data.length <= 0) {
        break;
    }
    print(data);
    port.WriteString(data);
}
port.Close();

関連項目

Read、WriteStringメソッド


SerialPort.Writeメソッド

説明

デバイスにデータを送信します。

データの型に応じてバイトデータへ自動変換します。

呼出形式

port.Write( data )

戻り値

なし

引数

data

書き込むデータ

例外

RTM-10

出力データの型が不明です。出力するバイト数が不明です

RTM-73

書き込み操作を完了できませんでした

RTM-124

デバイスに接続されていません

使用例

var port = new SerialPort;
port.Open();
while (true) {
    var data = port.Read(256);
    if (data.Length <= 0) {
        break;
    }
    print(data);
    port.Write(data);
}
port.Close();

関連項目

WriteString、Readメソッド

データ型ごとの書き込み形式の違いについて

dataに指定する変数のデータ型によって、書き込まれる形式が以下のようになります。

データ型 | 例 | 説明
String | Write("abc") Write(new String("abc")); | 文字列データ 文字列データがUTF-8で書き込まれます。
integer | Write(10) | 整数値データ 4バイトの符号付き整数データとして書き込まれます。
boolean | Write(true) | bool値データ 4バイトの符号付き整数データとして書き込まれます。 trueならば1, falseならば0となります。
Number | Write(1.2) Write(new Number(10)) | 数値（浮動小数点）データ 8バイトの浮動小数点データとして書き込まれます。
Date | Write(new Date()) | 日付データ Valueプロパティの値が8バイトの浮動小数点データとして書き込まれます
ByteArray | Readメソッドで 読み込んだ結果など | バイナリデータ バイナリデータがそのまま書き込まれます。

常に文字列として書き込みたい場合は、WriteStringメソッドを使用してください。


SerialPort.WriteStringメソッド

説明

デバイスに文字列データを送信します。
データを文字列に変換して送信します。

呼出形式

port.WriteString( data )

戻り値

なし

引数

String data

書き込む文字列データ

例外

RTM-73

書き込み操作を完了できませんでした

RTM-124

デバイスに接続されていません

使用例

var port = new SerialPort;
port.Open();
while (true) {
    var data = port.ReadLine();
    if (data.length <= 0) {
        break;
    }
    print(data);
    port.WriteString(data);
}
port.Close();

関連項目

Write、ReadLineメソッド


SerialPortイベント

API version 22

イベント

iOSAndroidWindows

SerialPortクラスには以下のイベントが定義されています。

API | 名前 | 説明
22 | Receive | データが受信可能状態になったことを通知します

クラス概要

基本クラスのイベント


SerialPort.Receiveイベント

データが受信可能状態になった時発生するイベントです。


Socketクラス

Object
 | Socket

TCP/IPソケット接続を行い通信を行うクラスです。

Fileクラスと同様に他のクラスと連携して使用することも可能です。

単独で生成してクライアントとして使用する他、SocketListenerクラスによりサーバーソケットとして自動的に生成される場合もあります。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Fixed、Dateを指定できます。


Socketプロパティ

API version 15

プロパティ

iOSAndroidWindows

Socketクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
15 | BufferSize | CRW | integer | 65536 | 受信バッファのサイズ
15 | Host | R | String |  | 接続先のホスト名またはIPアドレス
15 | IsConnected | R | boolean |  | ソケットが接続中かどうか
15 | Port | R | integer |  | 接続先のポート番号
15 | Timeout | CRW | integer | 0 | Read、ReadLineメソッドのタイムアウト値
15 | Value | CRW | String Number Fixed Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Socket.BufferSizeプロパティ

ソケットの受信バッファのサイズをバイト単位で指定します。

デフォルトは65536バイトです。


Socket.Hostプロパティ

接続中のソケットのクライアント側ホスト名が格納されます。

このプロパティは読み込み専用で変更することはできません。


Socket.IsConnectedプロパティ

ソケットが接続済みの場合は$TRUE、そうではない場合は$FALSEとなります。

このプロパティは読み込み専用で変更することはできません。


Socket.Portプロパティ

接続中のソケットのクライアント側ポート番号が格納されます。

このプロパティは読取専用で変更することはできません。


Socket.Timeoutプロパティ

Read、ReadLineメソッドのタイムアウト時間を秒単位で指定します。

デフォルトは0(受信待ちをしない)です。


Socket.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


Socketメソッド

API version 15

メソッド

iOSAndroidWindows

Socketクラスには以下のメソッドが定義されています。

API | 名前 | 説明
15 | Close | ソケットを閉じます
15 | Open | ソケットを開きます
15 | Read | ソケットからデータを読み込みます
15 | ReadLine | ソケットから1行分の文字列データを読み込みます
15 | Write | ソケットにデータを書き込みます
15 | WriteString | ソケットに文字列データを書き込みます

クラス概要

基本クラスのメソッド


Socket.Closeメソッド

説明

ソケットを閉じ、接続を切断します。

Openメソッド等で開いたソケットは、読み込み、書き込みが終わったら必ず閉じてください。

呼出形式

sock.Close()

戻り値

なし

引数

なし

例外

RTM-71

ソケットは開いていません

使用例

var sock = new Socket;
sock.Open("192.168.1.10", 16000);
sock.WriteString("hello");
sock.Close();

関連項目

Openメソッド


Socket.Openメソッド

説明

ホスト(サーバ)のポートに対しソケットを開き、接続します。

呼出形式

sock.Open( host, port )

戻り値

なし

引数

String host

ホスト名、またはIPアドレス

integer port

ポート番号

1から65535の範囲で指定します。

例外

RTM-68

ソケットは既に開いています

RTM-69

指定のホストに接続できません

使用例

var sock = new Socket;
sock.Open("192.168.1.10", 16000);
sock.WriteString("hello");
sock.Close();

関連項目

Closeメソッド


Socket.Readメソッド

説明

ソケットからデータを読み込みます。

指定したサイズのデータを受信するかタイムアウトまで処理を戻しません。

呼出形式

var data= sock.Read( size )

戻り値

読み込んだデータを格納したByteArrayオブジェクト

引数

integer size

読み込むサイズ。バイト単位で指定します。

省略時、マイナス値は4096とみなします。

例外

RTM-71

ソケットは開いていません

RTM-72

読み込み操作を完了できませんでした

使用例

var sock = new Socket;
sockr.Open("192.168.1.10", 16000);
while (true) {
    var data = sock.Read(256);
    if (data.Length <= 0) {
        break;
    }
    print(data);
    sock.Write(data);
}
sock.Close();

関連項目

ReadLine、Writeメソッド


Socket.ReadLineメソッド

説明

ソケットから1行分の文字列データを読み込みます。

ソケットの現在の読み込み位置から、次の改行文字までの文字列データを読み込みます。

一行分受信するかタイムアウトまで処理を戻しません。タイムアウト以外のエラーでは例外が発生します。

呼出形式

var data = sock.ReadLine()

戻り値

読み込んだ文字列データをStringオブジェクトとして返します。

行末の改行文字は含まれません。データの終わりに達して、これ以上読み込めない場合は空文字列を返します。

引数

なし

例外

RTM-71

ソケットは開いていません

RTM-72

読み込み操作を完了できませんでした

使用例

var sock = new Socket;
sock.Open("192.168.1.10", 16000);
while (true) {
    var data = sock.ReadLine();
    if (data.length <= 0) {
        break;
    }
    print(data);
    sock.WriteString(data);
}
sock.Close();

関連項目

Read、WriteStringメソッド


Socket.Writeメソッド

説明

ソケットへデータを書き込みます。

データの型に応じてバイトデータへ自動変換します。

呼出形式

sock.Write( data )

戻り値

なし

引数

data

書き込むデータ

例外

RTM-10

出力データの型が不明です。出力するバイト数が不明です

RTM-71

ソケットは開いていません

RTM-73

書き込み操作を完了できませんでした

使用例

var sock = new Socket;
sockr.Open("192.168.1.10", 16000);
while (true) {
    var data = sock.Read(256);
    if (data.Length <= 0) {
        break;
    }
    print(data);
    sock.Write(data);
}
sock.Close();

関連項目

WriteString、Readメソッド

データ型ごとの書き込み形式の違いについて

dataに指定する変数のデータ型によって、書き込まれる形式が以下のようになります。

データ型 | 例 | 説明
String | Write("abc") Write(new String("abc")); | 文字列データ 文字列データがUTF-8で書き込まれます。
integer | Write(10) | 整数値データ 4バイトの符号付き整数データとして書き込まれます。
boolean | Write(true) | bool値データ 4バイトの符号付き整数データとして書き込まれます。 trueならば1, falseならば0となります。
Number | Write(1.2) Write(new Number(10)) | 数値（浮動小数点）データ 8バイトの浮動小数点データとして書き込まれます。
Date | Write(new Date()) | 日付データ Valueプロパティの値が8バイトの浮動小数点データとして書き込まれます
ByteArray | Readメソッドで 読み込んだ結果など | バイナリデータ バイナリデータがそのまま書き込まれます。

常に文字列として書き込みたい場合は、WriteStringメソッドを使用してください。


Socket.WriteStringメソッド

説明

ソケットに文字列データを書き込みます。
データを文字列に変換して送信します。

呼出形式

sock.WriteString( data )

戻り値

なし

引数

String data

書き込む文字列データ

例外

RTM-71

ソケットは開いていません

RTM-73

書き込み操作を完了できませんでした

使用例

var sock = new Socket;
sock.Open("192.168.1.10", 16000);
while (true) {
    var data = sock.ReadLine();
    if (data.length <= 0) {
        break;
    }
    print(data);
    sock.WriteString(data);
}
sock.Close();

関連項目

Write、ReadLineメソッド


Socketイベント

API version 15

イベント

iOSAndroidWindows

Socketクラスには以下のイベントが定義されています。

API | 名前 | 説明
15 | Receive | データが受信可能状態になったことを通知します

クラス概要

基本クラスのイベント


Socket.Receiveイベント

データが受信可能状態になった時発生するイベントです。


SocketListenerクラス

Object
 | SocketListener

TCP/IPサーバソケットを作成して、受信待機します。

クライアントから接続されると子オブジェクトとしてSocketオブジェクトを生成します。

SocketListenerオブジェクトを作成し、Portプロパティを設定した後、Startメソッドを呼び出すと、TCP/IPソケットの待ち受け状態となります。

Startメソッドの呼び出しでPortが既にコンピュータ上で利用されていた場合、エラーとなり例外が発生しソケットの待ち受けは中止されます。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Fixed、Dateを指定できます。


SocketListenerプロパティ

API version 15

プロパティ

iOSAndroidWindows

SocketListenerクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
15 | IsListening | R | boolean |  | ソケットを待ち受け中かどうか
15 | Port | CR | integer | 80 | 受信ポート番号
15 | Value | CRW | String Number Fixed Date |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


SocketListener.IsListeningプロパティ

オブジェクトがソケットを待ち受け中の場合は$TRUE、そうではない場合は$FALSEとなります。

このプロパティは読み込み専用で変更することはできません。


SocketListener.Portプロパティ

TCP/IPの受信ポート番号を指定します。

デフォルトは80です。コンピュータ内ですでに利用されている同一のポート番号を指定することはできません。


SocketListener.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


SocketListenerメソッド

API version 15

メソッド

iOSAndroidWindows

SocketListenerクラスには以下のメソッドが定義されています。

API | 名前 | 説明
15 | Start | 受信待機を開始します
15 | Stop | 受信待機を停止します

クラス概要

基本クラスのメソッド


SocketListener.Startメソッド

説明

ソケットの受信待機を開始します。

このメソッドの呼び出しより先にPortプロパティを設定してください。

イベントの待ち受けは、Stopメソッドの呼び出しにより停止します。

SocketListenerオブジェクトの消滅時にもイベントの待ち受けを停止しますが、オブジェクトの消滅は処理タイミングが不定です。必ずStopメソッドを呼び出して停止させてください。

呼出形式

sockListener.Start()

戻り値

なし

引数

なし

例外

RTM-68

ソケットは既に開いています

RTM-70

受信待機に失敗しました

使用例

SocketListener sockListener {
    Port = 16000;
    Function OnAccept(e) {
        :
    }
    if (!$DESIGNTIME) {
        Start();
    }
}

関連項目

Stopメソッド


SocketListener.Stopメソッド

説明

ソケットの受信待機を停止します。

SocketListenerオブジェクトの消滅時にもイベントの待ち受けを停止しますが、オブジェクトの消滅は処理タイミングが不定です。

Startメソッドで待ち受けを開始した場合は、必ずStopメソッドを呼び出して停止させてください。

呼出形式

sockListener.Stop()

戻り値

なし

引数

なし

例外

なし

使用例

SocketListener sockListener {
    Port = 16000;
    Function OnAccept(e) {
        :
    }
    if (!$DESIGNTIME) {
        Start();
    }
}

関連項目

Startメソッド


SocketListenerイベント

API version 15

イベント

iOSAndroidWindows

SocketListenerクラスには以下のイベントが定義されています。

API | 名前 | 説明
15 | Accept | TCP/IPクライアントソケットから接続された時発生します

クラス概要

基本クラスのイベント


SocketListener.Acceptイベント

Startメソッドで待機中のサーバソケットにクライアントソケットから接続が確立した際に発生するイベントです。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
String | SocketName | 接続により生成されたSocketオブジェクト名が格納されます。

SocketNameには接続によって生成されたSocketオブジェクトの名前が設定されます

Socketオブジェクトは自動的に子オブジェクトとしてSocketListenerに接続されます。

例えばFindChild(e.SocketName)で生成されたSocketを取得できます。

Socketオブジェクトは通信が終了し不要になった場合、Deleteメソッドで削除してください。

生成されたSocketにデータが着信しReceiveイベントが発生した場合、親オブジェクトであるSocketListenerにイベントは伝搬しますのでSocketListenerオブジェクトにイベントハンドラOnReceiveを記述し、e.FromによってSocketオブジェクトを判別し受信処理を実装することが可能です。


Converterパッケージ

コンバート関連のクラスを集めたパッケージです。

クラス

API | 名前 | 説明
4 | Base64Decoder | Base64データを復号化します
4 | Base64Encoder | Base64による符号化を行います
4 | NewlineConverter | 改行コードを変換します
4 | NullConverter | 無変換クラスです
4 | TextConverter | 文字コードを変換します


Base64Decoderクラス

Object
 | Base64Decoder

Base64データを復号化（デコード）するクラスです。Base64データを元のバイナリデータに戻すときに使用します。

バイナリデータのBase64による符号化（エンコード）はBase64Encoderクラスで行います。

Base64はバイナリデータを英数字のみの文字列に割り付けて符号化する変換方式です。テキストデータの送受信を前提としたメールなどでバイナリデータ送受信するときなどに使用されています。

デコードするBase64データに応じて2種類の方法があります。

ひとつは、Reader/Writerオブジェクトの入出力をデコードする方法です。Base64Decoderクラスのコンストラクタにデータの入出力に利用するオブジェクトを指定します。

使用例

var fs = new FileSystem;
var fp = fs.Open("base64.txt", FileSystem.OPEN_READ);
var b64d = new Base64Decoder(fp);
var data = b64d.Read();
b64d.Close(true);

もうひとつの方法は、Base64データを直接デコードする方法です。

var dec_data = Base64Decoder.Convert("g0GDToNWg1iDXIN0g2c=");

この例では、Base64データをデコードしてdec_data変数に格納しています。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


Base64Decoderプロパティ

API version 4

プロパティ

iOSAndroidWindows

Base64Decoderクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Filename | R | String | ファイル名
4 | PathName | R | String | パス名
4 | Value | CRW | String Number Date | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Base64Decoder.FileNameプロパティ

データを入出力するファイル名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのFileNameプロパティがコピーされています。FileNameプロパティが存在しない場合は空文字列となります。


Base64Decoder.PathNameプロパティ

データを入出力するパス名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのPathNameプロパティがコピーされています。PathNameプロパティが存在しない場合は空文字列となります。


Base64Decoder.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


Base64Decoderメソッド

API version 4

メソッド

iOSAndroidWindows

Base64Decoderクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | Base64Decoderオブジェクトを初期化します
4 | Close | 出力または入力を終了します
4 | Read | デコードされたバイナリデータを読み込みます
4 | Write | デコードされたバイナリデータを書き込みます

スタティックメソッド

API | 名前 | 説明
4 | Convert | Base64データをデコードします

クラス概要

基本クラスのメソッド


Base64Decoderコンストラクタ

説明

Base64Decoderオブジェクトを初期化します。

呼出形式

var b64d = new Base64Decoder( rw_obj )

戻り値

初期化されたBase64Decoderオブジェクト

引数

Object rw_obj

Base64データの入力元となるReaderオブジェクト、またはデコード結果の出力先となるWriterオブジェクトを指定します。

ByteArrayも入出力オブジェクトとして指定できます。

Readerオブジェクトを指定した場合はWriteメソッドは使用できません。

Writerオブジェクトを指定した場合はReadメソッドは使用できません。

例外

CONVERT 1

有効なオブジェクトが指定されていません

CONVERT 10

引数が不正です

使用例

var fs = new FileSystem;
var fp = fs.Open("base64.txt", FileSystem.OPEN_WRITE);
var b64e = new Base64Encoder(fp);
b64e.Write("Biz/Browser");
b64e.Close(true);

var fp2 = fs.Open("base64.txt", FileSystem.OPEN_READ);
var fp3 = fs.Open("output.dat", FileSystem.OPEN_WRITE);
var b64d = new Base64Decoder(fp3);
b64d.Write(fp2.Read());
b64d.Close(true);
fp2.Close();

関連項目

Read、Write、Closeメソッド


Base64Decoder.Closeメソッド

説明

出力または入力を終了します。

Writeメソッドによる出力内容が内部バッファに残っている場合は、Closeメソッドを呼び出したときにWriterオブジェクトに渡されます。

呼出形式

b64d.Close( [ deep ] )

戻り値

なし

引数

boolean deep

$TRUEを指定した場合、コンストラクタで指定したReader/WriterオブジェクトのCloseメソッドを呼び出します。

それ以外の場合、Base64Decoderオブジェクトをクローズしますが、Reader/WriterオブジェクトのCloseメソッドは実行されません。

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("base64.txt", FileSystem.OPEN_READ);
var b64d = new Base64Decoder(fp);
var data = b64d.Read();
b64d.Close($TRUE);

関連項目

Read、Writeメソッド


Base64Decoder.Readメソッド

説明

デコードされたバイナリデータを読み込みます。

コンストラクタで指定したReaderオブジェクトから読み込んだBase64データをデコードし、結果からsizeバイトのデータを返します。

呼出形式

var data = b64d.Read( [ size ] )

戻り値

Base64データをデコードした結果

ByteArrayオブジェクトを返します。読み込むデータが無い場合はnullを返します。

引数

integer size

読み込む最大のバイト数

省略するか-1を指定すると最後まで読み込みます。

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("base64.txt", FileSystem.OPEN_READ);
var b64d = new Base64Decoder(fp);
var data = b64d.Read();
b64d.Close(true);
print(data, "\n");

関連項目

Closeメソッド

ByteArrayクラス


Base64Decoder.Writeメソッド

説明

デコードされたバイナリデータを書き込みます。

dataに指定したBase64データをデコードし、コンストラクタで指定したWriterオブジェクトに書き込みます。

Writeメソッドによる出力内容は一時的に内部のバッファに保存されます。

バッファに残っている内容はCloseメソッドを呼び出したときにWriterオブジェクトに渡されますので、必ずCloseメソッドを呼び出してください。

Closeメソッドを実行しない場合、出力内容の一部またはすべてが失われます。

呼出形式

b64d.Write( data )

戻り値

なし

引数

String data

デコードするBase64データの文字列

例外

なし

使用例

var fs = new FileSystem;
var fp1 = fs.Open("base64.txt", FileSystem.OPEN_READ);
var fp2 = fs.Open("output.dat", FileSystem.OPEN_WRITE);
var b64d = new Base64Decoder(fp2);
b64d.Write(fp1.Read());
b64d.Close(true);
fp1.Close();

関連項目

Closeメソッド


Base64Decoder.Convertメソッド

説明

Base64データをデコードします。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

呼出形式

var data = Base64Decoder.Convert( data )

戻り値

Base64デコードされた結果

ByteArrayオブジェクトを返します。

引数

String data

デコードする文字列

Base64データの文字列を指定します。

例外

CONVERT 10

引数が不正です

使用例

var data = new ByteArray("Biz/Browser")
var enc = Base64Encoder.Convert(data);
print(enc, "\n");
var dec = Base64Decoder.Convert(enc);
print(dec, "\n");

関連項目

ByteArrayクラス


Base64Decoderイベント

API version 4

イベント

iOSAndroidWindows

Base64Decoderクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Base64Encoderクラス

Object
 | Base64Encoder

Base64による符号化（エンコード）を行うクラスです。バイナリデータをBase64データに変換するときに使用します。

Base64データの復号化（デコード）はBase64Decoderクラスで行います。

Base64はバイナリデータを英数字のみの文字列に割り付けて符号化する変換方式です。テキストデータの送受信を前提としたメールなどでバイナリデータ送受信するときなどに使用されています。

Base64エンコードするデータに応じて2種類の方法があります。

ひとつは、Reader/Writerオブジェクトの入出力をBase64エンコードする方法です。Base64Encoderクラスのコンストラクタにデータの入出力に利用するオブジェクトを指定します。

使用例

var fs = new FileSystem;
var fp = fs.Open("base64.txt", FileSystem.OPEN_WRITE);
var b64e = new Base64Encoder(fp);
b64e.Write(data);
b64e.Close(true);

もうひとつの方法は、データを直接Base64エンコードする方法です。

var data = new ByteArray("Biz/Browser");
var enc_data = Base64Encoder.Convert(data);

この例では、"Biz/Browser"という文字列のバイナリデータをBase64エンコードしてenc_data変数に格納しています。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


Base64Encoderプロパティ

API version 4

プロパティ

iOSAndroidWindows

Base64Encoderクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | FileName | R | String | ファイル名
4 | PathName | R | String | パス名
4 | Value | CRW | String Number Date | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Base64Encoder.FileNameプロパティ

データを入出力するファイル名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのFileNameプロパティがコピーされています。FileNameプロパティが存在しない場合は空文字列となります。


Base64Encoder.PathNameプロパティ

データを入出力するパス名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのPathNameプロパティがコピーされています。PathNameプロパティが存在しない場合は空文字列となります。


Base64Encoder.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


Base64Encoderメソッド

API version 4

メソッド

iOSAndroidWindows

Base64Encoderクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | Base64Encoderオブジェクトを初期化します
4 | Close | 出力または入力を終了します
4 | Read | データをBase64エンコードした結果から読み込みます
4 | ReadLine | データをBase64エンコードした結果から1行読み込みます
4 | Write | データをBase64エンコードした結果を書き込みます
4 | WriteString | 文字列をBase64エンコードした結果を書き込みます

スタティックメソッド

API | 名前 | 説明
4 | Convert | バイナリデータをBase64エンコードします

クラス概要

基本クラスのメソッド


Base64Encoderコンストラクタ

説明

Base64Encoderオブジェクトを初期化します。

呼出形式

var b64e = new Base64Encoder( rw_obj [, line ] )

戻り値

初期化されたBase64Encoderオブジェクト

引数

Object rw_obj

エンコードするデータの入力元となるReaderオブジェクト、またはエンコードしたBase64データの出力先となるWriterオブジェクトを指定します。

ByteArrayも入出力オブジェクトとして指定できます。

Readerオブジェクトを指定した場合はWrite、WriteStringメソッドは使用できません。

Writerオブジェクトを指定した場合はRead、ReadLineメソッドは使用できません。

integer line

1行の文字数

指定した数字の4倍で出力されます。例えば10を指定した場合、40文字で1行が生成されます。

0を指定すると改行無しで出力されます。省略した場合のデフォルト値は18です。

例外

CONVERT 1

有効なオブジェクトが指定されていません

CONVERT 10

引数が不正です

使用例

var fs = new FileSystem;
var fp = fs.Open("base64.txt", FileSystem.OPEN_WRITE);
var b64e = new Base64Encoder(fp);
b64e.Write("Biz/Browser");
b64e.Close(true);

var fp2 = fs.Open("base64.txt", FileSystem.OPEN_READ);
var fp3 = fs.Open("output.dat", FileSystem.OPEN_WRITE);
var b64d = new Base64Decoder(fp3);
b64d.Write(fp2.Read());
b64d.Close(true);
fp2.Close();

関連項目

Read、ReadLine、Write、WriteString、Closeメソッド


Base64Encoder.Closeメソッド

説明

出力または入力を終了します。

WriteまたはWriteStringメソッドによる出力内容が内部バッファに残っている場合は、Closeメソッドを呼び出したときにWriterオブジェクトに渡されます。

呼出形式

b64e.Close( [ deep ] )

戻り値

なし

引数

boolean deep

$TRUEを指定した場合、コンストラクタで指定したReader/WriterオブジェクトのCloseメソッドを呼び出します。

それ以外の場合、Base64Encoderオブジェクトをクローズしますが、Reader/WriterオブジェクトのCloseメソッドは実行されません。

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("base64.txt", FileSystem.OPEN_WRITE);
var b64e = new Base64Encoder(fp);
b64e.Write("Biz/Browser");
b64e.Close($TRUE);

関連項目

Read、ReadLine、Write、WriteStringメソッド


Base64Encoder.Readメソッド

説明

データをBase64エンコードした結果から読み込みます。

コンストラクタで指定したReaderオブジェクトから読み込んだデータをBase64エンコードし、結果からsizeバイトのデータを返します。

呼出形式

var data = b64e.Read( [ size ] )

戻り値

Base64エンコードされた結果

文字列データを返します。読み込むデータが無い場合はnullを返します。

引数

integer size

読み込む最大のバイト数

省略するか-1を指定すると最後まで読み込みます。

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("input.dat", FileSystem.OPEN_READ);
var b64e = new Base64Encoder(fp);
print(b64e.Read(), "\n");
b64e.Close(true);

関連項目

ReadLine、Closeメソッド


Base64Encoder.ReadLineメソッド

説明

データをBase64エンコードした結果から1行読み込みます。

コンストラクタで指定したReaderオブジェクトから読み込んだデータをBase64エンコードし、結果から1行分の文字列データを返します。

呼出形式

var data = b64e.ReadLine( )

戻り値

Base64エンコードされた結果

文字列データを返します。行末の改行文字も含まれます。読み込むデータが無い場合はnullを返します。

引数

なし

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("input.dat", FileSystem.OPEN_READ);
var b64e = new Base64Encoder(fp);
while (true) {
    var data = b64e.ReadLine();
    if (data == null) {
        break;
    }
    print(data);
}
b64e.Close(true);

関連項目

Read、Closeメソッド


Base64Encoder.Writeメソッド

説明

データをBase64エンコードした結果を書き込みます。

dataに指定したデータをBase64エンコードし、コンストラクタで指定したWriterオブジェクトに書き込みます。

Writeメソッドによる出力内容は一時的に内部のバッファに保存されます。

バッファに残っている内容はCloseメソッドを呼び出したときにWriterオブジェクトに渡されますので、必ずCloseメソッドを呼び出してください。

Closeメソッドを実行しない場合、出力内容の一部またはすべてが失われます。

呼出形式

b64e.Write( data )

戻り値

なし

引数

data

Base64エンコードするデータ

指定するデータ型により書き込む内容が異なります。FileクラスのWriteメソッドと同様です。

通常、StringまたはByteArrayオブジェクトを指定します。

NumberやDateなど、その他のオブジェクトを指定することも可能ですが、オブジェクト内部で保持されるデータのビットパターンがそのまま出力されるため、意味のある結果は得られません。

例外

なし

使用例

var fs = new FileSystem;
var fp1 = fs.Open("input.dat", FileSystem.OPEN_READ);
var fp2 = fs.Open("base64.txt", FileSystem.OPEN_WRITE);
var b64e = new Base64Encoder(fp2);
b64e.Write(fp1.Read());
b64e.Close(true);
fp1.Close();

関連項目

WriteString、Closeメソッド


Base64Encoder.WriteStringメソッド

説明

文字列をBase64エンコードした結果を書き込みます。

dataに指定した文字列データをBase64エンコードし、コンストラクタで指定したWriterオブジェクトに書き込みます。

WriteStringメソッドによる出力内容は一時的に内部のバッファに保存されます。

バッファに残っている内容はCloseメソッドを呼び出したときにWriterオブジェクトに渡されますので、必ずCloseメソッドを呼び出してください。

Closeメソッドを実行しない場合、出力内容の一部またはすべてが失われます。

呼出形式

b64e.WriteString( data )

戻り値

なし

引数

String data

Base64エンコードする文字列データ

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("base64.txt", FileSystem.OPEN_WRITE);
var b64e = new Base64Encoder(fp);
b64e.WriteString("Biz/Browser");
b64e.Close(true);

関連項目

Write、Closeメソッド


Base64Encoder.Convertメソッド

説明

バイナリデータをBase64エンコードします。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

呼出形式

var data = Base64Encoder.Convert( data [, line ] )

戻り値

Base64エンコードされた結果

文字列データを返します。

引数

ByteArray data

Base64エンコードするデータ

ByteArrayオブジェクトを指定します。

integer line

1行の文字数

指定した数字の4倍で出力されます。例えば10を指定した場合、40文字で1行が生成されます。

0を指定すると改行無しで出力されます。省略した場合のデフォルト値は18です。

例外

CONVERT 10

引数が不正です

使用例

var data = new ByteArray("Biz/Browser");
var enc = Base64Encoder.Convert(data);
print(enc, "\n");
var dec = Base64Decoder.Convert(enc);
print(dec, "\n");

関連項目

ByteArrayクラス


Base64Encoderイベント

API version 4

イベント

iOSAndroidWindows

Base64Encoderクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


NewlineConverterクラス

Object
 | NewlineConverter

改行コード変換クラスです。

指定した文字列の改行コードを一括で変換することができます。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


NewlineConverterプロパティ

API version 4

プロパティ

iOSAndroidWindows

NewlineConverterクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | FileName | R | String | ファイル名
4 | PathName | R | String | パス名
4 | Value | CRW | String Number Date | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


NewlineConverter.FileNameプロパティ

データを入出力するファイル名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのFileNameプロパティがコピーされています。FileNameプロパティが存在しない場合は空文字列となります。


NewlineConverter.PathNameプロパティ

データを入出力するパス名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのPathNameプロパティがコピーされています。PathNameプロパティが存在しない場合は空文字列となります。


NewlineConverter.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


NewlineConverterメソッド

API version 4

メソッド

iOSAndroidWindows

NewlineConverterクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | NewlineConverterオブジェクトを初期化します
4 | Close | 出力または入力を終了します
4 | Read | 変換した結果を読み込みます
4 | ReadLine | 変換した結果から1行読み込みます
4 | Write | 変換した結果を書き込みます
4 | WriteString | 文字列を変換した結果を書き込みます

スタティックメソッド

API | 名前 | 説明
4 | Convert | 文字列を変換します

クラス概要

基本クラスのメソッド


NewlineConverterコンストラクタ

説明

NewlineConverterオブジェクトを初期化します。

呼出形式

var conv = new NewlineConverter( rw_obj , type )

戻り値

初期化されたNewlineConverterオブジェクト

引数

Object rw_obj

変換するデータの入力元となるReaderオブジェクト、または変換したデータの出力先となるWriterオブジェクトを指定します。

ByteArrayも入出力オブジェクトとして指定できます。

Readerオブジェクトを指定した場合はWrite、WriteStringメソッドは使用できません。

Writerオブジェクトを指定した場合はRead、ReadLineメソッドは使用できません。

integer type

以下の値を指定します。

改行コード | 定数 | 値
CRLF | NewlineConverter.CODE_CRLF | 0
LF | NewlineConverter.CODE_LF | 1
CR | NewlineConverter.CODE_CR | 2

例外

CONVERT 1

有効なオブジェクトが指定されていません

CONVERT 10

引数が不正です

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FILESYSTEM.OPEN_READ);
var conv = new NewlineConverter(fp, NewlineConverter.CODE_CRLF);
var fp2 = fs.Open("out.txt", FILESYSTEM.OPEN_WRITE);
fp2.Write(conv.Read());
conv.Close(true);
fp2.Close();

関連項目

Read、ReadLine、Write、WriteString、Closeメソッド


NewlineConverter.Closeメソッド

説明

出力または入力を終了します。

WriteまたはWriteStringメソッドによる出力内容が内部バッファに残っている場合は、Closeメソッドを呼び出したときにWriterオブジェクトに渡されます。

呼出形式

conv.Close( [ deep ] )

戻り値

なし

引数

boolean deep

$TRUEを指定した場合、コンストラクタで指定したReader/WriterオブジェクトのCloseメソッドを呼び出します。

それ以外の場合、NewlineConverterオブジェクトをクローズしますが、Reader/WriterオブジェクトのCloseメソッドは実行されません。

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("out.txt", FILESYSTEM.OPEN_WRITE);
var conv = new NewlineConverter(fp, NewlineConverter.CODE_CRLF);
conv.Write("Biz/Browser");
conv.Close($TRUE);

関連項目

Read、ReadLine、Write、WriteStringメソッド


NewlineConverter.Readメソッド

説明

変換した結果を読み込みます。

コンストラクタで指定したReaderオブジェクトから読み込んだデータを変換し、結果からsizeバイトのデータを返します。

呼出形式

var data = conv.Read( [ size ] )

戻り値

変換した結果

文字列データを返します。読み込むデータが無い場合はnullを返します。

引数

integer size

読み込む最大のバイト数

省略するか-1を指定すると最後まで読み込みます。

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FILESYSTEM.OPEN_READ);
var conv = new NewlineConverter(fp, NewlineConverter.CODE_CRLF);
var fp2 = fs.Open("out.txt", FILESYSTEM.OPEN_WRITE);
fp2.Write(conv.Read());
conv.Close(true);
fp2.Close();

関連項目

ReadLine、Closeメソッド


NewlineConverter.ReadLineメソッド

説明

変換した結果から1行読み込みます。

コンストラクタで指定したReaderオブジェクトから読み込んだデータを変換し、結果から1行分の文字列データを返します。

呼出形式

var data = conv.ReadLine( )

戻り値

変換した結果

文字列データを返します。行末の改行文字も含まれます。読み込むデータが無い場合はnullを返します。

引数

なし

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FILESYSTEM.OPEN_READ);
var conv = new NewlineConverter(fp, NewlineConverter.CODE_CRLF);
var fp2 = fs.Open("out.txt", FILESYSTEM.OPEN_WRITE);
while (true) {
    var data = conv.ReadLine();
    if (data == null) {
        break;
    }
    fp2.Write(data);
}
conv.Close(true);
fp2.Close();

関連項目

Read、Closeメソッド


NewlineConverter.Writeメソッド

説明

変換した結果を書き込みます。

dataに指定したデータを変換し、コンストラクタで指定したWriterオブジェクトに書き込みます。

Writeメソッドによる出力内容は一時的に内部のバッファに保存されます。

バッファに残っている内容はCloseメソッドを呼び出したときにWriterオブジェクトに渡されますので、必ずCloseメソッドを呼び出してください。

Closeメソッドを実行しない場合、出力内容の一部またはすべてが失われます。

呼出形式

conv.Write( data )

戻り値

なし

引数

String data

変換する文字列

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("out.txt", FILESYSTEM.OPEN_WRITE);
var conv = new NewlineConverter(fp, NewlineConverter.CODE_CRLF);
conv.Write("Biz/Browser");
conv.Close(true);

関連項目

WriteString、Closeメソッド


NewlineConverter.WriteStringメソッド

説明

文字列を変換した結果を書き込みます。

dataに指定した文字列データを変換し、コンストラクタで指定したWriterオブジェクトに書き込みます。

WriteStringメソッドによる出力内容は一時的に内部のバッファに保存されます。

バッファに残っている内容はCloseメソッドを呼び出したときにWriterオブジェクトに渡されますので、必ずCloseメソッドを呼び出してください。

Closeメソッドを実行しない場合、出力内容の一部またはすべてが失われます。

呼出形式

conv.WriteString(data )

戻り値

なし

引数

String data

変換する文字列

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("out.txt", FILESYSTEM.OPEN_WRITE);
var conv = new NewlineConverter(fp, NewlineConverter.CODE_CRLF);
conv.WriteString("Biz/Browser");
conv.Close(true);

関連項目

Write、Closeメソッド


NewlineConverter.Convertメソッド

説明

文字列を変換します。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

呼出形式

var data = NewlineConverter.Convert( data, type )

戻り値

変換した結果

文字列データを返します。

引数

String data

変換する文字列

integer type

以下の値を指定します。

改行コード | 定数 | 値
CRLF | NewlineConverter.CODE_CRLF | 0
LF | NewlineConverter.CODE_LF | 1
CR | NewlineConverter.CODE_CR | 2

例外

CONVERT 10

引数が不正です

使用例

var data = NewlineConverter.Convert("データ\r\n", NewlineConverter.CODE_CR);

関連項目


NewlineConverterイベント

API version 4

イベント

iOSAndroidWindows

NewlineConverterクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


NullConverterクラス

Object
 | NullConverter

無変換クラスです。

Converterパッケージのクラスの結果を利用する関数などで利用する場合、コンバートの必要がない場合に利用します。内部的には何も処理をせず、データをそのまま出力します。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


NullConverterプロパティ

API version 4

プロパティ

iOSAndroidWindows

NullConverterクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | FileName | R | String | ファイル名
4 | PathName | R | String | パス名
4 | Value | CRW | String Number Date | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


NullConverter.FileNameプロパティ

データを入出力するファイル名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのFileNameプロパティがコピーされています。FileNameプロパティが存在しない場合は空文字列となります。


NullConverter.PathNameプロパティ

データを入出力するパス名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのPathNameプロパティがコピーされています。PathNameプロパティが存在しない場合は空文字列となります。


NullConverter.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


NullConverterメソッド

API version 4

メソッド

iOSAndroidWindows

NullConverterクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | NullConverterオブジェクトを初期化します
4 | Close | 出力または入力を終了します
4 | Read | データを読み込みます
4 | ReadLine | データから1行読み込みます
4 | Write | データを書き込みます
4 | WriteString | 文字列を書き込みます

スタティックメソッド

API | 名前 | 説明
4 | Convert | 文字列をそのまま返します

クラス概要

基本クラスのメソッド


NullConverterコンストラクタ

説明

NullConverterオブジェクトを初期化します。

呼出形式

var conv = new NullConverter( rw_obj )

戻り値

初期化されたNullConverterオブジェクト

引数

Object rw_obj

変換するデータの入力元となるReaderオブジェクト、または変換したデータの出力先となるWriterオブジェクトを指定します。

ByteArrayも入出力オブジェクトとして指定できます。

Readerオブジェクトを指定した場合はWrite、WriteStringメソッドは使用できません。

Writerオブジェクトを指定した場合はRead、ReadLineメソッドは使用できません。

例外

CONVERT 1

有効なオブジェクトが指定されていません

CONVERT 10

引数が不正です

使用例

var fs = new FileSystem;
var fp = fs.Open("out.txt", FILESYSTEM.OPEN_WRITE);
var conv = new NullConverter(fp);
conv.Write("Biz/Browser");
conv.Close(true);

関連項目

Read、ReadLine、Write、WriteString、Closeメソッド


NullConverter.Closeメソッド

説明

出力または入力を終了します。

WriteまたはWriteStringメソッドによる出力内容が内部バッファに残っている場合は、Closeメソッドを呼び出したときにWriterオブジェクトに渡されます。

呼出形式

conv.Close( [ deep ] )

戻り値

なし

引数

boolean deep

$TRUEを指定した場合、コンストラクタで指定したReader/WriterオブジェクトのCloseメソッドを呼び出します。

それ以外の場合、NullConverterオブジェクトをクローズしますが、Reader/WriterオブジェクトのCloseメソッドは実行されません。

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.open("out.txt", FILESYSTEM.OPEN_WRITE);
var conv = new NullConverter(fp);
conv.Write("Biz/Browser");
conv.Close($TRUE);

関連項目

Read、ReadLine、Write、WriteStringメソッド


NullConverter.Readメソッド

説明

データを読み込みます。

コンストラクタで指定したReaderオブジェクトから読み込んだデータからsizeバイトのデータを返します。

呼出形式

var data = conv.Read( [ size ] )

戻り値

読み込んだデータ

ByteArrayオブジェクトを返します。読み込むデータが無い場合はnullを返します。

引数

integer size

読み込む最大のバイト数

省略するか-1を指定すると最後まで読み込みます。

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FILESYSTEM.OPEN_READ);
var conv = new NullConverter(fp);
var data = conv.Read();
conv.Close(true);
print(data, "\n");

関連項目

ReadLine、Closeメソッド


NullConverter.ReadLineメソッド

説明

データから1行読み込みます。

コンストラクタで指定したReaderオブジェクトから読み込んだデータから1行分の文字列データを返します。

呼出形式

var data = conv.ReadLine( )

戻り値

読み込んだデータ

文字列データを返します。行末の改行文字も含まれます。読み込むデータが無い場合はnullを返します。

引数

なし

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FILESYSTEM.OPEN_READ);
var conv = new NullConverter(fp);
var data = conv.ReadLine();
conv.Close(true);
print(data, "\n");

関連項目

Read、Closeメソッド


NullConverter.Writeメソッド

説明

データを書き込みます。

dataに指定したデータをコンストラクタで指定したWriterオブジェクトに書き込みます。

Writeメソッドによる出力内容は一時的に内部のバッファに保存されます。

バッファに残っている内容はCloseメソッドを呼び出したときにWriterオブジェクトに渡されますので、必ずCloseメソッドを呼び出してください。

Closeメソッドを実行しない場合、出力内容の一部またはすべてが失われます。

呼出形式

conv.Write( data )

戻り値

なし

引数

data

書き込むデータ

指定するデータ型により書き込む内容が異なります。FileクラスのWriteメソッドと同様です。

通常、StringまたはByteArrayオブジェクトを指定します。

NumberやDateなど、その他のオブジェクトを指定することも可能ですが、オブジェクト内部で保持されるデータのビットパターンがそのまま出力されるため、意味のある結果は得られません。

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("out.txt", FILESYSTEM.OPEN_WRITE);
var conv = new NullConverter(fp);
conv.Write("Biz/Browser");
conv.Close(true);

関連項目

WriteString、Closeメソッド


NullConverter.WriteStringメソッド

説明

文字列を書き込みます。

dataに指定した文字列データをコンストラクタで指定したWriterオブジェクトに書き込みます。

WriteStringメソッドによる出力内容は一時的に内部のバッファに保存されます。

バッファに残っている内容はCloseメソッドを呼び出したときにWriterオブジェクトに渡されますので、必ずCloseメソッドを呼び出してください。

Closeメソッドを実行しない場合、出力内容の一部またはすべてが失われます。

呼出形式

conv.WriteString(data )

戻り値

なし

引数

String data

書き込む文字列データ

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("out.txt", FILESYSTEM.OPEN_WRITE);
var conv = new NullConverter(fp);
conv.WriteString("Biz/Browser");
conv.Close(true);

関連項目

Write、Closeメソッド


NullConverter.Convertメソッド

説明 | 文字列をそのまま返します。 このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。 このメソッドは他のクラスとの整合性のために用意されていますが、使用する必要はありません。
呼出形式 | var data = NullConverter.Convert( data )
戻り値 | dataの値を返します。
引数 | String data | 文字列データ
例外 | CONVERT 10 | 引数が不正です
使用例 |
関連項目 |


NullConverterイベント

API version 4

イベント

iOSAndroidWindows

NullConverterクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


TextConverterクラス

Object
 | TextConverter

文字コードを変換するクラスです。文字列を指定の文字コードへ変換できます。

文字コードについて

このクラスで扱うことのできる文字コードは以下の通りです。

以下の文字コードで相互変換することができます。

 | 文字コード | 備考
(1) | UTF-8 | 標準文字コード
(2) | Shift_JIS |
(3) | Unicode | UTF-16LE

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Dateを指定できます。


TextConverterプロパティ

API version 4

プロパティ

iOSAndroidWindows

TextConverterクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | FileName | R | String | ファイル名
4 | PathName | R | String | パス名
4 | Value | CRW | String Number Date | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


TextConverter.FileNameプロパティ

データを入出力するファイル名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのFileNameプロパティがコピーされています。FileNameプロパティが存在しない場合は空文字列となります。


TextConverter.PathNameプロパティ

データを入出力するパス名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのPathNameプロパティがコピーされています。PathNameプロパティが存在しない場合は空文字列となります。


TextConverter.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


TextConverterメソッド

API version 4

メソッド

iOSAndroidWindows

TextConverterクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | TextConverterオブジェクトを初期化します
4 | Close | 出力または入力を終了します
4 | Read | 文字コード変換した結果を読み込みます
4 | ReadLine | 文字コード変換した結果から1行読み込みます
4 | Write | 文字コード変換した結果を書き込みます
4 | WriteString | 文字列を文字コード変換した結果を書き込みます

スタティックメソッド

API | 名前 | 説明
4 | Convert | 文字コードを変換します

クラス概要

基本クラスのメソッド


TextConverterコンストラクタ

説明

TextConverterオブジェクトを初期化します。

指定できる文字コードは、文字コードについてを参照してください。

呼出形式

var conv = new TextConverter( rw_obj , cset1, cset2 )

戻り値

初期化されたTextConverterオブジェクト

引数

Object rw_obj

変換するデータの入力元となるReaderオブジェクト、または変換したデータの出力先となるWriterオブジェクトを指定します。

ByteArrayも入出力オブジェクトとして指定できます。

Readerオブジェクトを指定した場合はWrite、WriteStringメソッドは使用できません。

Writerオブジェクトを指定した場合はRead、ReadLineメソッドは使用できません。

String cset1

変換元の文字コード

文字コードの名前を文字列で指定します。

String cset2

変換先の文字コード

文字コードの名前を文字列で指定します。

例外

CONVERT 1

有効なオブジェクトが指定されていません

CONVERT 8

コンバートの型が不明です

CONVERT 10

引数が不正です

使用例

var str = new String("サンプル１");
var fs = new FileSystem;

var fp1 = fs.Open("eucjp.txt", FileSystem.OPEN_WRITE);
var conv1 = new TextConverter(fp1, "Shift_JIS", "EUC-JP");
conv1.Write(str);
conv1.Close(true);

var fp2 = fs.Open("eucjp.txt", FileSystem.OPEN_READ);
var conv2 = new TextConverter(fp2, "EUC-JP", "Shift_JIS");
var result2 = conv2.Read();
conv2.Close(true);
print(result2.ToString(), "\n");

関連項目

Read、ReadLine、Write、WriteString、Closeメソッド


TextConverter.Closeメソッド

説明

出力または入力を終了します。

WriteまたはWriteStringメソッドによる出力内容が内部バッファに残っている場合は、Closeメソッドを呼び出したときにWriterオブジェクトに渡されます。

呼出形式

conv.Close( [ deep ] )

戻り値

なし

引数

boolean deep

$TRUEを指定した場合、コンストラクタで指定したReader/WriterオブジェクトのCloseメソッドを呼び出します。

それ以外の場合、TextConverterオブジェクトをクローズしますが、Reader/WriterオブジェクトのCloseメソッドは実行されません。

例外

なし

使用例

var fs = new FileSystem;
var fp = fs.Open("utf8.txt", FileSystem.OPEN_WRITE);
var conv = new TextConverter(fp, "Unicode", "UTF-8");
conv.Write("ビズブラウザ");
conv.Close($TRUE);

関連項目

Read、ReadLine、Write、WriteStringメソッド


TextConverter.Readメソッド

説明

文字コード変換した結果を読み込みます。

コンストラクタで指定したReaderオブジェクトから読み込んだデータを文字コード変換し、結果からsizeバイトのデータを返します。

呼出形式

var data = conv.Read( [ size ] )

戻り値

文字コード変換した結果

ByteArrayオブジェクトを返します。読み込むデータが無い場合はnullを返します。

引数

integer size

読み込む最大のバイト数

省略するか-1を指定すると最後まで読み込みます。

例外

なし

使用例

var fs = new FileSystem;
var fp1 = fs.Open("utf8.txt", FileSystem.OPEN_WRITE);
var conv1 = new TextConverter(fp1, "Shift_JIS", "UTF-8");
conv1.Write("ビズブラウザ");
conv1.Close(true);

var fp2 = fs.Open("utf8.txt", FileSystem.OPEN_READ);
var conv2 = new TextConverter(fp2, "UTF-8", "Shift_JIS");
var data = conv2.Read();
conv2.Close(true);
print(data, "\n");

関連項目

ReadLine、Closeメソッド


TextConverter.ReadLineメソッド

説明

文字コード変換した結果から1行読み込みます。

コンストラクタで指定したReaderオブジェクトから読み込んだデータを文字コード変換し、結果から1行分の文字列データを返します。

このメソッドの戻り値にはStringオブジェクトが返るため、変換先の文字コードがShift_JISの場合のみ有効な結果が得られます。

呼出形式

var data = conv.ReadLine( )

戻り値

文字コード変換した結果

文字列データを返します。行末の改行文字も含まれます。読み込むデータが無い場合はnullを返します。

引数

なし

例外

なし

使用例

var fs = new FileSystem;
var fp1 = fs.Open("utf8.txt", FileSystem.OPEN_WRITE);
var conv1 = new TextConverter(fp1, "Shift_JIS", "UTF-8");
conv1.WriteString("1行目\n");
conv1.WriteString("2行目\n");
conv1.WriteString("3行目\n");
conv1.Close(true);

var fp2 = fs.Open("utf8.txt", FileSystem.OPEN_READ);
var conv2 = new TextConverter(fp2, "UTF-8", "Shift_JIS");
while (true) {
    var data = conv2.ReadLine();
    if (data == null) {
        break;
    }
    print(data);
}
conv2.Close(true);

関連項目

Read、Closeメソッド


TextConverter.Writeメソッド

説明

文字コード変換した結果を書き込みます。

dataに指定したデータを文字コード変換し、コンストラクタで指定したWriterオブジェクトに書き込みます。

Writeメソッドによる出力内容は一時的に内部のバッファに保存されます。

バッファに残っている内容はCloseメソッドを呼び出したときにWriterオブジェクトに渡されますので、必ずCloseメソッドを呼び出してください。

Closeメソッドを実行しない場合、出力内容の一部またはすべてが失われます。

呼出形式

conv.Write( data )

戻り値

なし

引数

data

文字コード変換するデータ

指定するデータ型により書き込む内容が異なります。FileクラスのWriteメソッドと同様です。

通常、StringまたはByteArrayオブジェクトを指定します。

NumberやDateなど、その他のオブジェクトを指定することも可能ですが、オブジェクト内部で保持されるデータのビットパターンがそのまま出力されるため、意味のある結果は得られません。

例外

なし

使用例

var fs = new FileSystem;
var fp1 = fs.Open("utf8.txt", FileSystem.OPEN_WRITE);
var conv1 = new TextConverter(fp1, "Shift_JIS", "UTF-8");
conv1.Write("ビズブラウザ");
conv1.Close(true);

var fp2 = fs.Open("utf8.txt", FileSystem.OPEN_READ);
var conv2 = new TextConverter(fp2, "UTF-8", "Shift_JIS");
var data = conv2.Read();
conv2.Close(true);
print(data, "\n");

関連項目

WriteString、Closeメソッド


TextConverter.WriteStringメソッド

説明

文字列を文字コード変換した結果を書き込みます。

dataに指定した文字列データを文字コード変換し、コンストラクタで指定したWriterオブジェクトに書き込みます。

このメソッドの引数にはStringオブジェクトを渡すため、変換元の文字コードがShift_JISの場合のみ有効な結果が得られます。

WriteStringメソッドによる出力内容は一時的に内部のバッファに保存されます。

バッファに残っている内容はCloseメソッドを呼び出したときにWriterオブジェクトに渡されますので、必ずCloseメソッドを呼び出してください。

Closeメソッドを実行しない場合、出力内容の一部またはすべてが失われます。

呼出形式

conv.WriteString( data )

戻り値

なし

引数

String data

文字コード変換する文字列データ

例外

なし

使用例

var fs = new FileSystem;
var fp1 = fs.Open("utf8.txt", FileSystem.OPEN_WRITE);
var conv1 = new TextConverter(fp1, "Shift_JIS", "UTF-8");
conv1.WriteString("1行目\n");
conv1.WriteString("2行目\n");
conv1.WriteString("3行目\n");
conv1.Close(true);

var fp2 = fs.Open("utf8.txt", FileSystem.OPEN_READ);
var conv2 = new TextConverter(fp2, "UTF-8", "Shift_JIS");
while (true) {
    var data = conv2.ReadLine();
    if (data == null) {
        break;
    }
    print(data);
}
conv2.Close(true);

関連項目

Write、Closeメソッド


TextConverter.Convertメソッド

説明 | 文字コードを変換します。 このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。 文字コードの変換にはこのスタティックメソッドの使用は推奨しません。コンストラクタを呼び出してオブジェクトを生成してご利用ください。 指定できる文字コードは、文字コードについてを参照してください。
呼出形式 | var str = TextConverter.Convert( data, cset1, cset2 )
戻り値 | 変換結果のStringオブジェクト
引数 | String data | 変換する文字列
 | String cset1 | 変換元の文字コード 文字コードの名前を文字列で指定します。
 | String cset2 | 変換先の文字コード 文字コードの名前を文字列で指定します。
例外 | CONVERT 8 | コンバートの型が不明です
 | CONVERT 10 | 引数が不正です
使用例 |
関連項目 |

補足

このメソッドは、Stringオブジェクトを引数で指定し、Stringオブジェクトが戻り値に返ります。

StringオブジェクトはUTF-8として扱われるため、論理的にはこのメソッドで文字コードの変換を行うことはできません。

例外的な利用法としてStringオブジェクトにShift-JISのバイナリデータを設定して（文字列としては文字化けした状態）、変換元をShift_JIS、変換先UTF-8をにすることでUTF-8の文字列を得ることは可能です。

また、変換元をUTF-8、変換先をShift_JISとして変換結果のStringオブジェクト（文字列としては文字化けした状態）を得て、そのままファイルに保存することも可能です。

Mobile互換モード
Stringオブジェクトは実行OSのネイティブ文字コード(日本語OS場合Shift_JIS)を扱うクラスとなります。
StringオブジェクトにUTF-8のバイナリデータを設定して（文字列としては文字化けした状態）、変換元をUTF-8、変換先をShift_JISにすることでShift_JISの文字列を得ることができます。
また、変換元をShift_JIS、変換先をUTF-8として変換結果のStringオブジェクト（文字列としては文字化けした状態）を得て、そのままファイルに保存することも可能です。

これらの方法はStringオブジェクトの例外的な使用方法であり推奨しません。通常はコンストラクタを呼び出してオブジェクトを生成してご利用ください。


TextConverterイベント

API version 4

イベント

iOSAndroidWindows

TextConverterクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Securityパッケージ

セキュリティ関連のクラスを集めたパッケージです。

クラス

API | 名前 | 説明
4 | Encryptor | 暗号化を行います
4 | Decryptor | 暗号化データの復号化を行います
4 | Hash | ハッシュ値を生成します

暗号化アルゴリズムについて

Securityパッケージでサポートされる暗号化アルゴリズムは以下のとおりで、すべてブロック暗号方式です。

Blowfishアルゴリズム

Bruce Schneuer氏が考案した、32〜448ビットの可変長キーを持つ、64ビットのブロック暗号方式です。インターネット上で広く利用されているオープンソースのアルゴリズムです。

なお、通常のモード(Encryptor.CALG_BLOWFISH)ではBiz/Browser独自のヘッダが追加され、復号化の際に削除されます。

ヘッダを付与したくない場合はRawモード(Encryptor.CALG_BLOWFISH2)を用いることでヘッダを付与せずにデータのみを出力可能です。

この場合、Blowfishの特性上、暗号化前のデータにサイズが8バイトの整数倍となるようにパディングが追加されるため、何らかの形で暗号化前のファイルサイズを保持しておき、復号化後にパディングを除去してください。

Rawモードにおいて復号化後のデータサイズが不明である欠点を補うため、PKCS#5パディングモード(Encryptor.CALG_BLOWFISH3)が追加されました。

PKCS#5パディングはRFC1423で規定されており、元のデータ長を取り出すことのできるパディング方式です。

AESアルゴリズム

アメリカ合衆国の標準規格である連邦情報処理標準規格（FIPS）の一つで、128ビットのブロック暗号化方式です。キーの長さは128ビット、196ビット、256ビットのいずれかとなります。

暗号化キーと一緒に初期化ベクトルを指定するという特徴があります。暗号化毎に異なる初期化ベクトルを指定することで、同じ暗号化キーを使用しても異なる暗号化結果を生成することができます。

暗号化の前にデータサイズが16バイトの整数倍となるようにパディングが追加されます。パディング方式はPKCS#7を用いています。

ハッシュアルゴリズムについて

Securityパッケージでサポートされるハッシュアルゴリズムは以下のとおりです。

Android版
java.security.MessageDigestクラスに依存しています。

SHAアルゴリズム

米国標準のハッシュアルゴリズムです。160ビットのダイジェストを作成します。

MD5アルゴリズム

RSA社のRives氏により考案されたアルゴリズムで、128ビットのダイジェストを作成します。異なるデータから同一のダイジェストを生成する確立がMD4よりも低く、良質なダイジェストを生成できます。


Encryptorクラス

Object
 | Encryptor

データの暗号化を行うクラスです。

暗号化したデータを元に戻すためにはDecryptorクラスを使用します。

暗号化するデータに応じて2種類の方法があります。

ひとつは、Reader/Writerオブジェクトの入出力を暗号化する方法で、Encryptorクラスのコンストラクタにデータの入出力に利用するオブジェクトを指定します。

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_WRITE);
var enc = new Encryptor(fp, "password", Encryptor.CALG_BLOWFISH);
enc.WriteString("暗号化したいデータ");
enc.Close(true);

この例では、EncryptorオブジェクトencをFileオブジェクトfpを引数に初期化しているので、enc.WriteStringで暗号化したデータがfpの指すファイルに書き込まれます。このようにEncryptorオブジェクトは、暗号化を行うフィルターのような動作をします。

もうひとつの方法は、文字列を直接暗号化する方法です。

var enc_data = Encryptor.EncryptString("暗号化する文字列", "password", Encryptor.CALG_BLOWFISH);

この例では、"暗号化する文字列"を暗号化してenc_data変数に格納しています。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。


Encryptorプロパティ

API version 4

プロパティ

iOSAndroidWindows

Encryptorクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Algorithm | R | integer | アルゴリズム
4 | FileName | R | String | ファイル名
4 | PathName | R | String | パス名

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


Encryptor.Algorithmプロパティ

API version 4

Encryptor.Algorithmプロパティ変更履歴

iOSAndroidWindows

暗号化に利用されるアルゴリズムを番号で示します。

現在以下のアルゴリズムが定義されています。

定数 | 値 | 説明
Encryptor.CALG_BLOWFISH | 0 | BlowFish
Encryptor.CALG_BLOWFISH2 | 5 | BlowFish(Raw Mode)
Encryptor.CALG_BLOWFISH3 | 6 | BlowFish(PKCS#5パディング)
Encryptor.CALG_AES128*1 | 7 | AES128(PKCS#7パディング)
Encryptor.CALG_AES192*1 | 8 | AES192(PKCS#7パディング)
Encryptor.CALG_AES256*1 | 9 | AES256(PKCS#7パディング)

変更履歴
*1　API version 22から追加されました。


Encryptor.FileNameプロパティ

暗号化してデータを入出力するファイル名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのFileNameプロパティがコピーされています。FileNameプロパティが存在しない場合は空文字列となります。


Encryptor.PathNameプロパティ

暗号化してデータを入出力するファイル名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのPathNameプロパティがコピーされています。PathNameプロパティが存在しない場合は空文字列となります。


Encryptorメソッド

API version 4

メソッド

iOSAndroidWindows

Encryptorクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | Encryptorオブジェクトを初期化します
4 | Close | 出力または入力を終了します
4 | Read | 暗号化したデータを読み込みます
4 | Write | 暗号化したデータを書き込みます
4 | WriteString | 文字列を暗号化したデータを書き込みます

スタティックメソッド

API | 名前 | 説明
4 | EncryptString | 文字列を暗号化します

クラス概要

基本クラスのメソッド


Encryptorコンストラクタ

API version 4

Encryptorコンストラクタ変更履歴

iOSAndroidWindows

説明

Encryptorオブジェクトを初期化します。

呼出形式

var enc = new Encryptor( rw_obj, pass, calg [, iv] )

or

var enc = new Encryptor( rw_obj, key, calg [, iv] )

戻り値

初期化されたEncryptorオブジェクト

引数

Object rw_obj

暗号化するデータの入力元となるReaderオブジェクト、または暗号化データの出力先となるWriterオブジェクトを指定します。

ByteArrayも入出力オブジェクトとして指定できます。

Readerオブジェクトを指定した場合はWrite、WriteStringメソッドは使用できません。

Writerオブジェクトを指定した場合はReadメソッドは使用できません。

String pass

暗号化アルゴリズムがAESの場合、指定した文字列で作成されたハッシュ値（SHA256）から、calgで指定したキーの長さに応じた暗号化キーを作成します。

それ以外の場合、4文字以上56文字以下のパスワードを指定します。

ByteArray key

暗号化アルゴリズムがAESの場合、バイト列を暗号化キーとして扱います。

キーの長さはアルゴリズムによって異なります。

それ以外の場合は文字列として解釈し、passの場合と同じ動作となります。

integer calg

以下から暗号化アルゴリズムを1つ指定します。

定数 | 値 | 説明
Encryptor.CALG_BLOWFISH | 0 | BlowFish
Encryptor.CALG_BLOWFISH2 | 5 | BlowFish(Raw Mode)
Encryptor.CALG_BLOWFISH3 | 6 | BlowFish(PKCS#5パディング)
Encryptor.CALG_AES128*1 | 7 | AES128(PKCS#7パディング) 暗号化キーをByteArrayで指定する場合、キーの長さは128bitである必要があります。
Encryptor.CALG_AES192*1 | 8 | AES192(PKCS#7パディング) 暗号化キーをByteArrayで指定する場合、キーの長さは192bitである必要があります。
Encryptor.CALG_AES256*1 | 9 | AES256(PKCS#7パディング) 暗号化キーをByteArrayで指定する場合、キーの長さは256bitである必要があります。

ByteArray iv

AESの初期化ベクトルを指定します。

最大で16バイトを使用します。ivの長さが16バイトに足りない場合、もしくは省略された場合は、不足分をBiz/Browserで固定の値で埋めて初期化ベクトルを作成します。

例外

CRS-16

コンストラクタ引数が不正です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-2

暗号化アルゴリズムが不明です

SEC-3

パスフレーズが不正です

SEC-13

セキュリティプロバイダでエラーが発生しました

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_WRITE);
var enc = new Encryptor(fp, "passwd", Encryptor.CALG_BLOWFISH);
enc.WriteString("暗号化するデータ");
enc.Close(true);

関連項目

Read、Write、WriteString、Closeメソッド

変更履歴
*1　API version 22から追加されました。


Encryptor.Closeメソッド

説明

出力または入力を終了します。

WriteまたはWriteStringメソッドによる出力内容が内部バッファに残っている場合は、Closeメソッドを呼び出したときにWriterオブジェクトに渡されます。

呼出形式

enc.Close( [ deep ] )

戻り値

なし

引数

boolean deep

$TRUEを指定した場合、コンストラクタで指定したReader/WriterオブジェクトのCloseメソッドを呼び出します。

それ以外の場合、Encryptorオブジェクトをクローズしますが、Reader/WriterオブジェクトのCloseメソッドは実行されません。

例外

CRS-34

メモリ不足です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-7

オペレーションシーケンスが不正です

SEC-8

Writeメソッドがありません

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_WRITE);
var enc = new Encryptor(fp, "passwd", Encryptor.CALG_BLOWFISH);
enc.WriteString("暗号化するデータ");
enc.Close($TRUE);

関連項目

Read、Write、WriteStringメソッド


Encryptor.Readメソッド

説明

暗号化したデータを読み込みます。

コンストラクタで指定したReaderオブジェクトから読み込んだデータを暗号化し、結果からsizeバイトのデータを返します。

呼出形式

var data = enc.Read( [ size ] )

戻り値

暗号化されたデータ

ByteArrayオブジェクトを返します。読み込むデータが無い場合はnullを返します。

引数

integer size

読み込む最大のバイト数

省略するか-1を指定すると最後まで読み込みます。

例外

CRS-34

メモリ不足です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-7

オペレーションシーケンスが不正です

SEC-9

Readメソッドがありません

SEC-10

読み込み操作を完了できませんでした

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_READ);
var enc = new Encryptor(fp, "passwd", Encryptor.CALG_BLOWFISH);
var d = enc.Read();
enc.Close(true);

関連項目

Closeメソッド

ByteArrayクラス


Encryptor.Writeメソッド

説明

暗号化したデータを書き込みます。

dataに指定したデータを暗号化し、コンストラクタで指定したWriterオブジェクトに書き込みます。

Writeメソッドによる出力内容は一時的に内部のバッファに保存されます。

バッファに残っている内容はCloseメソッドを呼び出したときにWriterオブジェクトに渡されますので、必ずCloseメソッドを呼び出してください。

Closeメソッドを実行しない場合、出力内容の一部またはすべてが失われます。

呼出形式

enc.Write( data )

戻り値

なし

引数

data

暗号化するデータ

指定するデータ型により書き込む内容が異なります。FileクラスのWriteメソッドと同様です。

通常、StringまたはByteArrayオブジェクトを指定します。

NumberやDateなど、その他のオブジェクトを指定することも可能ですが、オブジェクト内部で保持されるデータのビットパターンがそのまま出力されるため、意味のある結果は得られません。

例外

CRS-34

メモリ不足です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-5

出力データの型が不明です

SEC-7

オペレーションシーケンスが不正です

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_WRITE);
var enc = new Encryptor(fp, "passwd", Encryptor.CALG_BLOWFISH);
enc.Write("暗号化するデータ");
enc.Close(true);

関連項目

WriteString、Closeメソッド


Encryptor.WriteStringメソッド

説明

文字列を暗号化したデータを書き込みます。

dataに指定した文字列データを暗号化し、コンストラクタで指定したWriterオブジェクトに書き込みます。

WriteStringメソッドによる出力内容は一時的に内部のバッファに保存されます。

バッファに残っている内容はCloseメソッドを呼び出したときにWriterオブジェクトに渡されますので、必ずCloseメソッドを呼び出してください。

Closeメソッドを実行しない場合、出力内容の一部またはすべてが失われます。

呼出形式

enc.WriteString( data )

戻り値

なし

引数

String data

暗号化する文字列データ

例外

CRS-34

メモリ不足です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-7

オペレーションシーケンスが不正です

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_WRITE);
var enc = new Encryptor(fp, "passwd", Encryptor.CALG_BLOWFISH);
enc.WriteString("暗号化するデータ");
enc.Close(true);

関連項目

Write、Closeメソッド


Encryptor.EncryptStringメソッド

API version 4

Encryptor.EncryptStringメソッド変更履歴

iOSAndroidWindows

説明

文字列を暗号化します。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

暗号化した結果はBase64形式の文字列として返ります。Decryptor.DecryptStringメソッドで復号化できます。

呼出形式

var enc = Encryptor.EncryptString( data, pass, calg [, iv] )

or

var enc = Encryptor.EncryptString( data, key, calg [, iv] )

戻り値

暗号化されたデータをBase64形式の文字列で返します。

引数

String data

暗号化する文字列

String pass

暗号化アルゴリズムがAESの場合、指定した文字列で作成されたハッシュ値（SHA256）から、calgで指定したキーの長さに応じた暗号化キーを作成します。

それ以外の場合、4文字以上56文字以下のパスワードを指定します。

ByteArray key

暗号化アルゴリズムがAESの場合、バイト列を暗号化キーとして扱います。

キーの長さはアルゴリズムによって異なります。

それ以外の場合は文字列として解釈し、passの場合と同じ動作となります。

integer calg

以下から暗号化アルゴリズムを1つ指定します。

定数 | 値 | 説明
Encryptor.CALG_BLOWFISH | 0 | BlowFish
Encryptor.CALG_BLOWFISH2 | 5 | BlowFish(Raw Mode)
Encryptor.CALG_BLOWFISH3 | 6 | BlowFish(PKCS#5パディング)
Encryptor.CALG_AES128*1 | 7 | AES128(PKCS#7パディング) 暗号化キーをByteArrayで指定する場合、キーの長さは128bitである必要があります。
Encryptor.CALG_AES192*1 | 8 | AES192(PKCS#7パディング) 暗号化キーをByteArrayで指定する場合、キーの長さは192bitである必要があります。
Encryptor.CALG_AES256*1 | 9 | AES256(PKCS#7パディング) 暗号化キーをByteArrayで指定する場合、キーの長さは256bitである必要があります。

ByteArray iv

AESの初期化ベクトルを指定します。

最大で16バイトを使用します。ivの長さが16バイトに足りない場合、もしくは省略された場合は、不足分をBiz/Browserで固定の値で埋めて初期化ベクトルを作成します。

例外

CRS-34

メモリ不足です

SEC-2

暗号化アルゴリズムが不明です

SEC-3

パスフレーズが不正です

SEC-13

セキュリティプロバイダでエラーが発生しました

使用例

var enc = Encryptor.EncryptString("暗号化するデータ", "pass", Encryptor.CALG_BLOWFISH);

関連項目

変更履歴
*1　API version 22から追加されました。


Encryptorイベント

API version 4

イベント

iOSAndroidWindows

Encryptorクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Decryptorクラス

Object
 | Decryptor

暗号化されたデータの復号化を行うクラスです。

データの暗号化にはEncryptorクラスを使用します。

暗号化されたデータに応じて2種類の方法があります。

ひとつは、Reader/Writerオブジェクトの入出力を暗号化する方法で、Decryptorクラスのコンストラクタにデータの入出力に利用するオブジェクトを指定します。

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_READ);
var dec = new Decryptor(fp, "password", Decryptor.CALG_BLOWFISH);
var data = dec.Read();
dec.Close(true);

この例では、DecryptorオブジェクトdecをFileオブジェクトfpを引数に初期化しているので、dec.Readで暗号化したデータがfpの指すファイルから読み込まれ復号化した後で戻り値として返されます。このようにDecryptorオブジェクトは、復号化を行うフィルターのような動作をします。

もうひとつの方法は、文字列を直接復号化する方法です。

var dec_data = Decryptor.DecryptString("暗号化された文字列", "password", Encryptor.CALG_BLOWFISH);

この例では、"暗号化された文字列"を復号化してdec_data変数に格納しています。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。


Decryptorプロパティ

API version 4

プロパティ

iOSAndroidWindows

Decryptorクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Algorithm | R | integer | アルゴリズム
4 | FileName | R | String | ファイル名
4 | PathName | R | String | パス名

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


Decryptor.Algorithmプロパティ

API version 4

Decryptor.Algorithmプロパティ変更履歴

iOSAndroidWindows

暗号化に利用されるアルゴリズムを番号で示します。

現在以下のアルゴリズムが定義されています。

定数 | 値 | 説明
Decryptor.CALG_BLOWFISH | 0 | BlowFish
Decryptor.CALG_BLOWFISH2 | 5 | BlowFish(Raw Mode)
Decryptor.CALG_BLOWFISH3 | 6 | BlowFish(PKCS#5パディング)
Decryptor.CALG_AES128*1 | 7 | AES128(PKCS#7パディング)
Decryptor.CALG_AES192*1 | 8 | AES192(PKCS#7パディング)
Decryptor.CALG_AES256*1 | 9 | AES256(PKCS#7パディング)

変更履歴
*1　API version 22から追加されました。


Decryptor.FileNameプロパティ

暗号化してデータを入出力するファイル名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのFileNameプロパティがコピーされています。FileNameプロパティが存在しない場合は空文字列となります。


Decryptor.PathNameプロパティ

暗号化してデータを入出力するファイル名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのPathNameプロパティがコピーされています。PathNameプロパティが存在しない場合は空文字列となります。


Decryptorメソッド

API version 4

メソッド

iOSAndroidWindows

Decryptorクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | Decryptorオブジェクトを初期化します
4 | Close | 出力または入力を終了します
4 | Read | 復号化したデータを読み込みます
4 | ReadLine | 復号化したデータから1行読み込みます
4 | Write | 復号化データを書き込みます

スタティックメソッド

API | 名前 | 説明
4 | DecryptString | 暗号化されたデータを復号化します

クラス概要

基本クラスのメソッド


Decryptorコンストラクタ

API version 4

Decryptorコンストラクタ変更履歴

iOSAndroidWindows

説明

Decryptorオブジェクトを初期化します。

呼出形式

var dec = new Decryptor( rw_obj, pass, calg [, iv] )

or

var dec = new Decryptor( rw_obj, key, calg [, iv] )

戻り値

初期化されたDecryptorオブジェクト

引数

Object rw_obj

復号化するデータの入力元となるReaderオブジェクト、または復号化したデータの出力先となるWriterオブジェクトを指定します。

ByteArrayも入出力オブジェクトとして指定できます。

Readerオブジェクトを指定した場合はWriteメソッドは使用できません。

Writerオブジェクトを指定した場合はRead、ReadLineメソッドは使用できません。

String pass

暗号化アルゴリズムがAESの場合、指定した文字列で作成されたハッシュ値（SHA256）から、calgで指定したキーの長さに応じた暗号化キーを作成します。

それ以外の場合、4文字以上56文字以下のパスワードを指定します。

ByteArray key

暗号化アルゴリズムがAESの場合、バイト列を暗号化キーとして扱います。

キーの長さはアルゴリズムによって異なります。

それ以外の場合は文字列として解釈し、passの場合と同じ動作となります。

integer calg

以下から暗号化アルゴリズムを1つ指定します。

定数 | 値 | 説明
Decryptor.CALG_BLOWFISH | 0 | BlowFish
Decryptor.CALG_BLOWFISH2 | 5 | BlowFish(Raw Mode)
Decryptor.CALG_BLOWFISH3 | 6 | BlowFish(PKCS#5パディング)
Decryptor.CALG_AES128*1 | 7 | AES128(PKCS#7パディング) 暗号化キーをByteArrayで指定する場合、キーの長さは128bitである必要があります。
Decryptor.CALG_AES192*1 | 8 | AES192(PKCS#7パディング) 暗号化キーをByteArrayで指定する場合、キーの長さは192bitである必要があります。
Decryptor.CALG_AES256*1 | 9 | AES256(PKCS#7パディング) 暗号化キーをByteArrayで指定する場合、キーの長さは256bitである必要があります。

ByteArray iv

AESの初期化ベクトルを指定します。

最大で16バイトを使用します。ivの長さが16バイトに足りない場合、もしくは省略された場合は、不足分をBiz/Browserで固定の値で埋めて初期化ベクトルを作成します。

例外

CRS-16

コンストラクタ引数が不正です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-2

暗号化アルゴリズムが不明です

SEC-3

パスフレーズが不正です

SEC-13

セキュリティプロバイダでエラーが発生しました

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_READ);
var dec = new Decryptor(fp, "passwd", Decryptor.CALG_BLOWFISH);
var data = dec.Read();
dec.Close(true);

関連項目

Read、ReadLine、Write、Closeメソッド

変更履歴
*1　API version 22から追加されました。


Decryptor.Closeメソッド

説明

出力または入力を終了します。

Writeメソッドによる出力内容が内部バッファに残っている場合は、Closeメソッドを呼び出したときにWriterオブジェクトに渡されます。

呼出形式

dec.Close( [ deep ] )

戻り値

なし

引数

boolean deep

$TRUEを指定した場合、コンストラクタで指定したReader/WriterオブジェクトのCloseメソッドを呼び出します。

それ以外の場合、Decryptorオブジェクトをクローズしますが、Reader/WriterオブジェクトのCloseメソッドは実行されません。

例外

CRS-34

メモリ不足です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-7

オペレーションシーケンスが不正です

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_READ);
var dec = new Decryptor(fp, "passwd", Decryptor.CALG_BLOWFISH);
var data = dec.Read();
dec.Close($TRUE);

関連項目

Read、ReadLine、Writeメソッド


Decryptor.Readメソッド

説明

復号化したデータを読み込みます。

コンストラクタで指定したReaderオブジェクトから読み込んだデータを復号化し、結果からsizeバイトのデータを返します。

呼出形式

var data = dec.Read( [ size ] )

戻り値

復号化されたデータ

ByteArrayオブジェクトを返します。読み込むデータが無い場合はnullを返します。

引数

integer size

読み込む最大のバイト数

省略するか-1を指定すると最後まで読み込みます。

例外

CRS-34

メモリ不足です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-7

オペレーションシーケンスが不正です

SEC-9

Readメソッドがありません

SEC-10

読み込み操作を完了できませんでした

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_READ);
var dec = new Decryptor(fp, "passwd", Decryptor.CALG_BLOWFISH);
var d = dec.Read();
dec.Close(true);

関連項目

Closeメソッド

ByteArrayクラス


Decryptor.ReadLineメソッド

説明

復号化したデータから1行読み込みます。

コンストラクタで指定したReaderオブジェクトから読み込んだデータを復号化し、結果から1行分の文字列データを返します。

呼出形式

var data = dec.ReadLine( )

戻り値

復号化された結果

文字列データを返します。行末の改行文字も含まれます。読み込むデータが無い場合はnullを返します。

引数

なし

例外

CRS-34

メモリ不足です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-7

オペレーションシーケンスが不正です

SEC-9

Readメソッドがありません

SEC-10

読み込み操作を完了できませんでした

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_READ);
var dec = new Decryptor(fp, "passwd", Decryptor.CALG_BLOWFISH);
var d = dec.ReadLine();
dec.Close(true);

関連項目

Read、Closeメソッド


Decryptor.Writeメソッド

説明

復号化したデータを書き込みます。

dataに指定したデータを復号化し、コンストラクタで指定したWriterオブジェクトに書き込みます。

Writeメソッドによる出力内容は一時的に内部のバッファに保存されます。

バッファに残っている内容はCloseメソッドを呼び出したときにWriterオブジェクトに渡されますので、必ずCloseメソッドを呼び出してください。

Closeメソッドを実行しない場合、出力内容の一部またはすべてが失われます。

呼出形式

dec.Write( data )

戻り値

なし

引数

ByteArray data

復号化するデータ

Encryptorクラスで暗号化されたデータのByteArrayオブジェクトを指定します。

例外

CRS-34

メモリ不足です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-5

出力データの型が不明です

SEC-7

オペレーションシーケンスが不正です

使用例

var fs = new FileSystem;
var fp1 = fs.Open("encrypted.txt",FileSystem.OPEN_READ);
var fp2 = fs.Open("data.txt", FileSystem.OPEN_WRITE);
var dec = new Decryptor(fp2, "password", Decryptor.CALG_BLOWFISH);
dec.Write(fp1.read());
dec.Close(true);
fp1.Close();

関連項目

Closeメソッド

ByteArray、Encryptorクラス


Decryptor.DecryptStringメソッド

API version 4

Decryptor.DecryptStringメソッド変更履歴

iOSAndroidWindows

説明

暗号化されたデータを復号化します。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

Encryptor.EncryptStringメソッドで暗号化した結果（Base64形式の文字列）を復号化します。

pass、calgにはEncryptStringメソッドで暗号化したときと同じものを指定します。

呼出形式

var data = Decryptor.DecryptString( data, pass, calg [, iv] )

or

var data = Decryptor.DecryptString( data, key, calg [, iv] )

戻り値

復号化した文字列を返します。

引数

String data

復号化するデータ（Base64形式の文字列）

String pass

暗号化アルゴリズムがAESの場合、指定した文字列で作成されたハッシュ値（SHA256）から、calgで指定したキーの長さに応じた暗号化キーを作成します。

それ以外の場合、4文字以上56文字以下のパスワードを指定します。

ByteArray key

暗号化アルゴリズムがAESの場合、バイト列を暗号化キーとして扱います。

キーの長さはアルゴリズムによって異なります。

それ以外の場合は文字列として解釈し、passの場合と同じ動作となります。

integer calg

以下から暗号化アルゴリズムを1つ指定します。

定数 | 値 | 説明
Decryptor.CALG_BLOWFISH | 0 | BlowFish
Decryptor.CALG_BLOWFISH2 | 5 | BlowFish(Raw Mode)
Decryptor.CALG_BLOWFISH3 | 6 | BlowFish(PKCS#5パディング)
Decryptor.CALG_AES128*1 | 7 | AES128(PKCS#7パディング) 暗号化キーをByteArrayで指定する場合、キーの長さは128bitである必要があります。
Decryptor.CALG_AES192*1 | 8 | AES192(PKCS#7パディング) 暗号化キーをByteArrayで指定する場合、キーの長さは192bitである必要があります。
Decryptor.CALG_AES256*1 | 9 | AES256(PKCS#7パディング) 暗号化キーをByteArrayで指定する場合、キーの長さは256bitである必要があります。

ByteArray iv

AESの初期化ベクトルを指定します。

最大で16バイトを使用します。ivの長さが16バイトに足りない場合、もしくは省略された場合は、不足分をBiz/Browserで固定の値で埋めて初期化ベクトルを作成します。

例外

CRS-34

メモリ不足です

SEC-2

暗号化アルゴリズムが不明です

SEC-3

パスフレーズが不正です

SEC-11

復号化操作を完了できませんでした

SEC-13

セキュリティプロバイダでエラーが発生しました

使用例

var dec = Decryptor.DecryptString("復号化するデータ", "pass", Decryptor.CALG_BLOWFISH);

関連項目

変更履歴
*1　API version 22から追加されました。


Decryptorイベント

API version 4

イベント

iOSAndroidWindows

Decryptorクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Hashクラス

Object
 | Hash

ハッシュ値を生成するクラスです。

ハッシュ値とは、文書や数値などのデータからハッシュアルゴリズムにより算出される固定長の値で、元のデータの要約として利用できます。ハッシュ値は単なる数値の羅列となるため、ハッシュ値から元のデータを推定することは不可能となります。

この特徴を使って、ある文書のハッシュ値を算出して保存しておき、後日同じ文書から算出したハッシュ値と保存しておいたハッシュ値と比較すれば、その間に元の文書が改竄されていないことを確認することができます。元の文書全体を別の場所に保存して比較しても同様の事ができますが、ハッシュ値は文書の大きさに関わりなく固定長の短いデータとなるため保存したり比較する事が容易になります。

電子署名でもハッシュが使われており、署名するデータのハッシュ値(メッセージダイジェスト)を算出して公開鍵暗号アルゴリズムで暗号化されています。公開鍵で解読したハッシュ値と、元のデータから算出し直したハッシュ値が一致すれば、間違いなく公開鍵の持ち主により作成されたデータで、改竄もされていないことが保障されます。

ハッシュ値を算出するデータに応じて2種類の方法があります。

ひとつは、Reader/Writerオブジェクトの入出力データから算出する方法で、Hashクラスのコンストラクタにデータの入出力に利用するオブジェクトを指定します。

使用例

var fs = new FileSystem;
var fp = fs.Open("data.xml", FileSystem.OPEN_READ);
var md = new Hash(fp, Hash.HALG_MD5);
var ximp = new xmlDOMImplementation();
var xdoc = ximp.Load(md);
md.close(true);
MessageBox(md.GetHashData(), "Hash");

この例では、HashオブジェクトmdをFileオブジェクトfpを引数に初期化しています。続く、XmlDOMImplementationのLoadメソッドでXMLをロードしていますが、Hashオブジェクトを経由するため、fpの指すファイルdata.xmlのハッシュ値も同時に算出されます。

このようにHashオブジェクトは、ハッシュ値の算出を行うフィルターのような動作をします。

もうひとつの方法は、HashクラスのスタティックメソッドHashStringを利用して文字列から直接Hash値を算出する方法です。

var hash_value = Hash.HashString("ハッシュ値を算出する文字列", Hash.HALG_MD5);

この例では、"ハッシュ値を算出する文字列" のハッシュ値をhash_value変数に格納しています。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。


Hashプロパティ

API version 4

プロパティ

iOSAndroidWindows

Hashクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
4 | Algorithm | R | integer | アルゴリズム
4 | FileName | R | String | ファイル名
4 | PathName | R | String | パス名

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


Hash.Algorithmプロパティ

API version 4

Hash.Algorithmプロパティ変更履歴

iOSAndroidWindows

ハッシュアルゴリズムを番号で示します。

現在以下のアルゴリズムが定義されています。

定数 | 値 | 説明
Hash.HALG_SHA1 | 0 | SHA1アルゴリズム
Hash.HALG_MD5 | 2 | MD5アルゴリズム
Hash.HALG_SHA_256 | 3 | SHA-256アルゴリズム *1
Hash.HALG_SHA_512 | 4 | SHA-512アルゴリズム *1
Hash.HALG_HMAC_SHA_256 | 5 | HMAC-SHA-256アルゴリズム *1
Hash.HALG_HMAC_SHA_512 | 6 | HMAC-SHA-512アルゴリズム *1
変更履歴
*1　API version 15から追加されました。


Hash.FileNameプロパティ

データを入出力するファイル名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのFileNameプロパティがコピーされています。FileNameプロパティが存在しない場合は空文字列となります。


Hash.PathNameプロパティ

データを入出力するファイル名を示します。

このプロパティは、コンストラクタで指定したReader/WriterオブジェクトのPathNameプロパティがコピーされています。PathNameプロパティが存在しない場合は空文字列となります。


Hashメソッド

API version 4

メソッド

iOSAndroidWindows

Hashクラスには以下のメソッドが定義されています。

API | 名前 | 説明
4 | (コンストラクタ) | Hashオブジェクトを初期化します
4 | Close | 出力または入力を終了します
4 | GetHashData | 算出されたハッシュ値を取得します
4 | Read | データを読み込みます
4 | ReadLine | データから1行読み込みます
4 | Write | データを書き込みます
4 | WriteString | 文字列を書き込みます

スタティックメソッド

API | 名前 | 説明
4 | HashString | 文字列からハッシュ値を算出します

クラス概要

基本クラスのメソッド


Hashコンストラクタ

API version 4

Hashコンストラクタ変更履歴

iOSAndroidWindows

説明

Hashオブジェクトを初期化します。

呼出形式

var hs = new Hash( rw_obj, halg, [ key ] )

戻り値

初期化されたHashオブジェクト

引数

Object rw_obj

データの入力元となるReaderオブジェクト、またはデータの出力先となるWriterオブジェクトを指定します。

ByteArrayも入出力オブジェクトとして指定できます。

Readerオブジェクトを指定した場合は、Read、ReadLineメソッドで読み込まれるデータのハッシュ値が算出されます。

Writerオブジェクトを指定した場合は、Write、WriteStringメソッドで書き込まれるデータのハッシュ値が算出されます。

どちらの場合でも、必ずCloseメソッドを呼び出して入出力操作を完結した後で、GetHashDataメソッドでハッシュ値を取得します。

Readerオブジェクトを指定した場合はWrite、WriteStringメソッドは使用できません。

Writerオブジェクトを指定した場合はRead、ReadLineメソッドは使用できません。

integer halg

以下からハッシュアルゴリズムを1つ指定します。

定数 | 値 | 説明
Hash.HALG_SHA1 | 0 | SHA1アルゴリズム
Hash.HALG_MD5 | 2 | MD5アルゴリズム
Hash.HALG_SHA_256 | 3 | SHA-256アルゴリズム *1
Hash.HALG_SHA_512 | 4 | SHA-512アルゴリズム *1
Hash.HALG_HMAC_SHA_256 | 5 | HMAC-SHA-256アルゴリズム *1
Hash.HALG_HMAC_SHA_512 | 6 | HMAC-SHA-512アルゴリズム *1

String key

HMAC用の暗号鍵を指定します。 *1

halgにHMACのハッシュ関数が指定されている状態で空文字列の場合、SEC-3例外が発生します。

デフォルトはnullです。

例外

CRS-16

コンストラクタ引数が不正です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-3

パスフレーズが不正です

SEC-12

ハッシュアルゴリズムが不明です

SEC-13

セキュリティプロバイダでエラーが発生しました

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_READ);
var hs = new Hash(fp, Hash.HALG_MD5);
var data = hs.Read();
hs.Close(true);
MessageBox(hs.GetHashData(), "data.txtのハッシュ値");

関連項目

Read、ReadLine、Write、WriteString、Close、GetHashDataメソッド
変更履歴
*1　API version 15から追加されました。


Hash.Closeメソッド

説明

出力または入力を終了します。

Hashオブジェクトからハッシュ値を取得する場合は必ずCloseメソッドの呼び出しが必要です。Closeメソッドを呼び出さずにGetHashDataメソッドを呼び出すとSEC-7例外が発生します。

呼出形式

hs.Close( [ deep ] )

戻り値

なし

引数

boolean deep

$TRUEを指定した場合、コンストラクタで指定したReader/WriterオブジェクトのCloseメソッドを呼び出します。

それ以外の場合、Hashオブジェクトをクローズしますが、Reader/WriterオブジェクトのCloseメソッドは実行されません。

例外

CRS-34

メモリ不足です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-7

オペレーションシーケンスが不正です

SEC-13

セキュリティプロバイダでエラーが発生しました

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_READ);
var hs = new Hash(fp, Hash.HALG_MD5);
var data = hs.Read();
hs.Close($TRUE);
var h = hs.GetHashData();

関連項目

Read、ReadLine、Write、WriteString、GetHashDataメソッド


Hash.GetHashDataメソッド

説明

算出されたハッシュ値を取得します。

ハッシュ値の算出は、Read、ReadLine、Write、WriteStringの各メソッドを呼び出して入出力されたデータに対して行われ、内部のバッファに記録されます。

Closeメソッドを呼び出しハッシュ値を確定してからGetHashDataメソッドを呼び出してください。Closeメソッドを呼び出さずにGetHashDataメソッドを呼び出すとSEC-7例外が発生します。

呼出形式

var h = hs.GetHashData( )

戻り値

ハッシュ値をBase64形式の文字列で返します。

引数

なし

例外

SEC-7

オペレーションシーケンスが不正です

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_WRITE);
var hs = new Hash(fp, Hash.HALG_MD5);
var d = hs.WriteString("ハッシュ値を算出するデータ");
hs.Close(true);
var h = hs.GetHashData();

関連項目

Read、ReadLine、Write、WriteString、Closeメソッド


Hash.Readメソッド

説明

データを読み込みます。

コンストラクタで指定したReaderオブジェクトからデータを読み込みます。読み込まれたデータは内部でハッシュ値の算出が行われます。

Readerオブジェクトのデータをすべて読み込まなかった場合でもハッシュ値の算出はReaderオブジェクトの残りのデータを含めて算出されます。

呼出形式

var data = hs.Read( [ size ] )

戻り値

読み込んだデータ

ByteArrayオブジェクトを返します。読み込むデータが無い場合はnullを返します。

引数

integer size

読み込む最大のバイト数

省略するか-1を指定すると最後まで読み込みます。

例外

CRS-34

メモリ不足です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-7

オペレーションシーケンスが不正です

SEC-9

Readメソッドがありません

SEC-10

読み込み操作を完了できませんでした

SEC-13

セキュリティプロバイダでエラーが発生しました

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_READ);
var hs = new Hash(fp, Hash.HALG_MD5);
var d = hs.Read();
hs.Close(true);
var h = hs.GetHashData();

関連項目

ReadLine、Closeメソッド

ByteArrayクラス


Hash.ReadLineメソッド

説明

データから1行読み込みます。

コンストラクタで指定したReaderオブジェクトからデータを1行読み込みます。読み込まれたデータは内部でハッシュ値の算出が行われます。

Readerオブジェクトのデータをすべて読み込まなかった場合でもハッシュ値の算出はReaderオブジェクトの残りのデータを含めて算出されます。

呼出形式

var data = hs.ReadLine( )

戻り値

読み込んだデータ

文字列データを返します。行末の改行文字も含まれます。読み込むデータが無い場合はnullを返します。

引数

なし

例外

CRS-34

メモリ不足です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-7

オペレーションシーケンスが不正です

SEC-9

Readメソッドがありません

SEC-10

読み込み操作を完了できませんでした

SEC-13

セキュリティプロバイダでエラーが発生しました

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_READ);
var hs = new Hash(fp, Hash.HALG_MD5);
var d = hs.ReadLine();
hs.Close(true);
var h = hs.GetHashData();

関連項目

Read、Closeメソッド


Hash.Writeメソッド

説明

データを書き込みます。

dataに指定したデータをコンストラクタで指定したWriterオブジェクトに書き込みます。書き込まれたデータは内部でハッシュ値の算出が行われます。

呼出形式

hs.Write( data )

戻り値

なし

引数

data

書き込むデータ

指定するデータ型により書き込む内容が異なります。FileクラスのWriteメソッドと同様です。

例外

CRS-34

メモリ不足です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-5

出力データの型が不明です

SEC-7

オペレーションシーケンスが不正です

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_WRITE);
var hs = new Hash(fp, Hash.HALG_MD5);
/* 文字列データを書込む場合 */
var data = "サンプル";
hs.Write(data);
hs.Close(true);
var h = hs.GetHashData();

関連項目

WriteString、Closeメソッド


Hash.WriteStringメソッド

説明

文字列を書き込みます。

dataに指定した文字列データをコンストラクタで指定したWriterオブジェクトに書き込みます。書き込まれたデータは内部でハッシュ値の算出が行われます。

呼出形式

hs.WriteString( data )

戻り値

なし

引数

String data

書き込む文字列データ

例外

CRS-34

メモリ不足です

SEC-1

有効な入出力オブジェクトが指定されていません

SEC-7

オペレーションシーケンスが不正です

使用例

var fs = new FileSystem;
var fp = fs.Open("data.txt", FileSystem.OPEN_WRITE);
var hs = new Hash(fp, Hash.HALG_MD5);
hs.WriteString("ハッシュ値を算出するデータ");
hs.Close(true);
var h = hs.GetHashData();

関連項目

Write、Closeメソッド


Hash.HashStringメソッド

API version 4

Hash.HashStringメソッド変更履歴

iOSAndroidWindows

説明

文字列からハッシュ値を算出します。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

呼出形式

var h = Hash.HashString( data, halg, [ key ] )

戻り値

算出したハッシュ値をBase64形式の文字列で返します。

引数

String data

ハッシュ値を算出する文字列

integer halg

以下からハッシュアルゴリズムを1つ指定します。

定数 | 値 | 説明
HASH.HALG_SHA1 | 0 | SHA1 アルゴリズム
HASH.HALG_MD5 | 2 | MD5アルゴリズム
Hash.HALG_SHA_256 | 3 | SHA-256アルゴリズム *1
Hash.HALG_SHA_512 | 4 | SHA-512アルゴリズム *1
Hash.HALG_HMAC_SHA_256 | 5 | HMAC-SHA-256アルゴリズム *1
Hash.HALG_HMAC_SHA_512 | 6 | HMAC-SHA-512アルゴリズム *1

String key

HMAC用の暗号鍵を指定します。 *1

halgにHMACのハッシュ関数が指定されている状態で空文字列の場合、SEC-3例外が発生します。

デフォルトはnullです。

例外

CRS-34

メモリ不足です

SEC-3

パスフレーズが不正です

SEC-12

ハッシュアルゴリズムが不明です

SEC-13

セキュリティプロバイダでエラーが発生しました

使用例

var h = Hash.HashString("データ", HASH.HALG_MD5);

関連項目

変更履歴
*1　API version 15から追加されました。


Hashイベント

API version 4

イベント

iOSAndroidWindows

Hashクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


JSONパッケージ

JSON（JavaScript Object Notation）形式のデータを扱うためのパッケージです。

クラス

API | 名前 | 説明
5 | JSONDocument | JSONデータを解析、出力します


JSONDocumentクラス

Object
 | JSONDocument

JSONデータを解析、出力するクラスです。

Get、Load、Parseいずれかのメソッドで読み込まれたJSONデータはArrayオブジェクトへ展開され、先頭のArrayオブジェクトがValueへ設定されます。

またSaveメソッドにより、Valueに設定されたArrayオブジェクトをJSONデータへ変換します。

JSON – Array変換ルール

[]で囲まれた配列はArrayオブジェクトの0番目からの配列として、{}で囲まれたオブジェクトは名前をキーとしたArrayオブジェクトの連想配列として展開されます。

値としてのオブジェクトや配列はArrayオブジェクトの要素にArrayオブジェクトが格納される形になります。

例)

JSONデータ

[
    { "name" : "Yamada Taro"},
      "文字列",
      3.14
]

Arrayへ展開

"name"の"Yamada Taro"を取り出す使用例

var j = new JSONDocument();
j << json <<-
[
    { "name" : "Yamada Taro"},
      "文字列",
      3.14
]
->>;

var name = j.value[0]["name"];

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeにはString、Number、Fixed、Dateを指定できます。


JSONDocumentプロパティ

API version 5

プロパティ

iOSAndroidWindows

JSONDocumentクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
5 | Value | CRW | Array | JSONデータを解析した結果のArrayオブジェクト またはJSONとして出力したいArrayオブジェクト

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


JSONDocument.Valueプロパティ

JSONを解析した結果、Arrayオブジェクトが代入されます。

また保存したいArrayオブジェクトを代入します。


JSONDocumentメソッド

API version 5

メソッド

iOSAndroidWindows

JSONDocumentクラスには以下のメソッドが定義されています。

API | 名前 | 概要
5 | Get | URLからJSONを読み込みます
5 | Load | ReaderオブジェクトからJSONを読み込みます
5 | Parse | 文字列からJSONを読み込みます
5 | Save | WriterオブジェクトにJSONを保存します
19 | ToString | JSONデータを文字列として取得します

クラス概要

基本クラスのメソッド


JSONDocument.Getメソッド

説明

指定のURLからJSONデータを読み込みます。

Getメソッドを実行する前のValue値は失われます。

取得するJSONデータはキャッシュの対象にはなりません。常にサーバから取得します。

paramを指定しない場合は、リクエストはHTTPのGETで送られます。

paramを指定した場合は、リクエストはHTTPのPOSTで送られます。

WEBサーバがHTTPステータスコードに200（$HTTP_OK）を返さない場合は、CRS-331の例外が発生します。

内部文字コードがUnicodeの場合、入力となるJSONファイルの文字コードはUTF-8です。

Android版
Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、OSに対してユーザー操作で許可をとる必要があります。
詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

jsondoc.Get( URL [, param1 [, param2, … ] ] )

戻り値

なし

引数

String URL

JSONデータを読み込むURL

NetObject.GetメソッドのURLと同じです。

Object param

リクエストに付加するパラメータ

NetObject.Getメソッドのparamと同じです。

例外

JSON-1

n文字目 解析に失敗しました

CRS-331

通信エラー

NetObject.Getメソッドの例外と同じです。

使用例

var jsondoc = new JSONDocument;
jsondoc.Get("/test/sample.cgi", "KEY=126", "MODE=A");

関連項目

Load、Parse、NetObject.Getメソッド


JSONDocument.Loadメソッド

説明

ReaderオブジェクトからJSONデータを読み込みます。

Loadメソッドを実行する前のValue値は失われます。

内部文字コードがUnicodeの場合、入力となるJSONファイルの文字コードはUTF-8です。

呼出形式

jsondoc.Load( reader )

戻り値

なし

引数

Object reader

読み込み元のReaderオブジェクト（Readメソッドを利用できるオブジェクト）

例外

JSON-1

n文字目 解析に失敗しました

JSON-2

有効なReadオブジェクトが指定されていません

JSON-3

Read()メソッドをサポートしていません

使用例

var jsondoc = new JSONDocument;
var res = session.get("/test/sample.json");
jsondoc.Load(res);

関連項目

Save、Get、Parseメソッド


JSONDocument.Parseメソッド

説明

文字列からJSONデータを読み込みます。

Parseメソッドを実行する前のValue値は失われます。

Parseメソッドは、読み込む機能はLoadメソッドと同じですが、引数にStringオブジェクトを指定できます。

呼出形式

jsondoc.Parse( str )

戻り値

なし

引数

String str

JSON文字列

例外

JSON-1

n文字目 解析に失敗しました

使用例

var jsondoc = new JSONDocument;
var str = "[{\"aaa\" : \"bbb\"},\"ccc\"]";
jsondoc.Parse(str);

関連項目

Save、Get、Loadメソッド


JSONDocument.Saveメソッド

説明

WriterオブジェクトにValueにセットされたArrayオブジェクトをJSONデータとして出力します。

Value値にArrayオブジェクトが設定されていない場合、"[]"を出力します。

CRSは内部的にブール値が存在しないため、保存時はtrue、falseは1、0となります。

内部文字コードがUnicodeの場合、保存されるJSONファイルの文字コードはUTF-8になります。

呼出形式

jsondoc.Save( writer )

戻り値

なし

引数

Object writer

保存先のWriterオブジェクト

例外

JSON-4

有効なWriteオブジェクトが指定されていません

JSON-5

Write()メソッドをサポートしていません

使用例

var jsondoc = new JSONDocument;
var res = session.Get("http://server/sample.json");
jsondoc.Load(res);
var fs = new FileSystem;
var fp = fs.Open("sample.json", FileSystem.OPEN_WRITE);
jsondoc.Save(fp);
fp.Close();

関連項目

Loadメソッド


JSONDocument.ToStringメソッド

説明

JSONデータを文字列として取得します。

呼出形式

var data = jsondoc.ToString()

戻り値

JSONデータを表す文字列

引数

なし

例外

なし

使用例

var jsondoc = new JSONDocument;
var res = session.Get("http://server/sample.json");
jsondoc.Load(res);
print(jsondoc.ToString());

関連項目

Saveメソッド


JSONDocumentイベント

API version 5

イベント

iOSAndroidWindows

JSONDocumentクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


JSONDocumentオペレータ

API version 5

オペレータ

iOSAndroidWindows

JSONDocumentクラスには以下のオペレータが定義されています。

API | オペレータ | 説明
5 | JSONDocument << JSON定数 | JSONDocumentへJSON定数をロードします

クラス概要


JSONDocument << JSON定数 オペレータ

このオペレータは、左辺のJSONDocumentオブジェクトに対して、右辺のJSON定数をロードします。

使用例

var j = new JSONDocument();
j << json <<-
{
    "data": [
        {
            "title": "レコード１",
            "item1": "アイテム１",
            "item2": "アイテム１",
            "item3": "アイテム１"
        }
    ]
}
->>;


JSON定数

JSONパッケージはJSON定数を定義しています。JSON定数は、<<オペレータによりJSONDocumentオブジェクトへデータを設定するために利用することができます。

JSON定数ブロック内は、CRSスクリプトとは文法的な関連性はないため、CRSの文法、定数($REDなど)、演算子(+や-など)、関数などは使用できません。JSONとしての書式に従う必要があります。

以下の書式でCRSスクリプト内にJSONデータを直接記述することができます。

json <<-
（JSONデータ）
->>;

使用例

var j = new JSONDocument();
j << json <<-
{
    "data": [
        {
            "title": "レコード１",
            "item1": "アイテム１",
            "item2": "アイテム１",
            "item3": "アイテム１"
        }
    ]
}
->>;


Speechパッケージ

音声操作の機能を扱うためのパッケージです。

クラス

API | 名前 | 説明
17 | SpeechSynthesizer | 入力したテキストから音声を合成するクラスです。
17 | Utterance | 発話設定のクラスです。
17 | Voice | 音声情報のクラスです。


SpeechSynthesizerクラス

Object
 | SpeechSynthesizer

入力されたテキストを音声として出力するクラスです。

StartSpeakingメソッドで入力したテキストは内部でキューに格納され、入力した順番で出力されます。

出力する音声は、言語や性別を切り替えることができます。音声合成エンジンが使用できる音声はGetAvailableVoicesメソッドで取得します。

その他、読み上げる速度や音声の高さを指定したり、AddWordToDictionaryメソッドで単語の読み方を登録したりすることができます。

OSのバージョンやSetEngineメソッドで指定する音声解析エンジンによって、読み上げの結果が異なる可能性があります。

Android版
端末によっては、音声解析エンジンや音声データを事前にダウンロードする必要があります。

テキスト読み上げの注意点について

テキストを意図通りに読み上げるためには、CRSスクリプト実装時に工夫が必要な場合があります。

連続する数字

連続する数字は一つの数字として読み上げられます。

var synthesizer = new SpeechSynthesizer;
synthesizer.Load();
synthesizer.StartSpeaking("12345"); /* いちまんにせんさんびゃくよんじゅうご */

数字を一つずつ読み上げたい場合は、StartSpeakingメソッドを一文字ずつ呼び出す必要があります。

synthesizer.StartSpeaking("1"); /*いち*/
synthesizer.StartSpeaking("2"); /*に*/
synthesizer.StartSpeaking("3"); /*さん*/
synthesizer.StartSpeaking("4"); /*よん*/
synthesizer.StartSpeaking("5"); /*ご*/

デフォルトプロパティとValueType

デフォルトプロパティはValueです。


SpeechSynthesizerプロパティ

API version 17

プロパティ

iOSAndroidWindows

SpeechSynthesizerクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
17 | IsSpeaking | R | boolean |  | 発話中かどうか
17 | Pitch | CRW | Number | 1.0 | 音声の高さ
17 | PostUtteranceDelay | CRW | Number | 0.0 | テキストを読み上げた後の待機時間
17 | Rate | CRW | Number | 1.0 | 読み上げの速度
17 | Value | CRW | String Number Fixed Date |  | オブジェクトの値
17 | Volume | CRW | Number | 1.0 | 読み上げの音量

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


SpeechSynthesizer.IsSpeakingプロパティ

発話中であれば$TRUE、発話中でなければ$FALSEとなります。

このプロパティは読み込み専用で変更することはできません。


SpeechSynthesizer.Pitchプロパティ

音の高さを、0より大きい値で指定します。デフォルトは1.0です。

1.0より大きい値を指定すると音が高くなります。

1.0より小さい値を指定すると音が低くなります。

内部でOSで設定可能な範囲に切り揃えられます。


SpeechSynthesizer.PostUtteranceDelayプロパティ

StartSpeakingメソッドで指定したテキストを読み上げた後に、次のテキストを読み出すまでの時間を秒単位で指定します。

デフォルトは0.0秒です


SpeechSynthesizer.Rateプロパティ

読み上げの速さを、0より大きい値で指定します。デフォルトは1.0です。

1.0より大きい値を指定すると読み上げ速度が上がります。

1.0より小さい値を指定すると読み上げ速度が下がります。

内部でOSで設定可能な範囲に切り揃えられます。


SpeechSynthesizer.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


SpeechSynthesizer.Volumeプロパティ

読み上げの音量を、0.0-1.0の間で指定します。デフォルトは1.0です。

値が大きいほど、音量が大きくなります。

内部でOSで設定可能な範囲に切り揃えられます。


SpeechSynthesizerメソッド

API version 17

メソッド

iOSAndroidWindows

SpeechSynthesizerクラスには以下のメソッドが定義されています。

API | 名前 | 概要
17 | AddWordToDictionary | 単語の読み方を登録します
17 | AddWordToDictionaryWithCSV | 単語の読み方をCSV形式で登録します
17 | GetAvailableEngines | 使用できる音声合成エンジン名の一覧を取得します
17 | GetAvailableVoices | 使用できる音声情報の一覧を取得します
17 | GetCurrentEngine | 現在設定されている音声合成エンジン名を取得します
17 | GetCurrentVoice | 現在設定されている音声情報を取得します
17 | IsLanguageAvailable | 指定言語が利用できるかどうかを判別します
17 | Load | 音声合成機能をロードします
17 | RemoveWordFromDictionary | 登録された単語の読み方を削除します
17 | SetEngine | 使用する音声解析エンジンを設定します
17 | SetVoice | 使用する音声を設定します
17 | StartSpeaking | 読み上げるテキストを指定し、発話を開始します
17 | StopSpeaking | 発話を停止します
17 | Unload | 音声合成機能をアンロードします

クラス概要

基本クラスのメソッド


SpeechSynthesizer.AddWordToDictionaryメソッド

説明

単語の読み方を登録します。

テキスト中にwordで指定した文字列を、pronunciationと読み替えます。(wordの大文字、小文字は区別しません。)

spaceにtrueを指定すると、wordの前後に半角スペースがある場合のみ読み替えを行います。単語単位で読み替えを行いたい場合に使用します。

例 | space=$TRUE | space=$FALSE
text="文中にwordがあります" (wordの前後にスペースがない) | 読み替えは発生しません | 読み替えが発生します
text="文中に word があります" (wordの前後にスペース) | 読み替えが発生します | 読み替えが発生します
text="word が文頭にあります" (wordの後にスペース) | 読み替えが発生します | 読み替えが発生します
text="文末に word" (wordの前にスペース) | 読み替えが発生します | 読み替えが発生します
text="word" (word単独) | 読み替えが発生します | 読み替えが発生します

wordが登録済みの場合、内容を上書きして登録します。

呼出形式

synthesizer.AddWordToDictionary(word, pronunciation, space)

戻り値

なし

引数

String word

読み方を登録する単語

String pronunciation

wordの読み方

boolean space

trueを指定すると、wordの前後に半角スペースがある場合のみ、読み替えを行います。

例外

なし

使用例

var synthesizer = new SpeechSynthesizer();
synthesizer.Load();
synthesizer.AddWordToDictionary("(株)", "かぶしきがいしゃ", true);
synthesizer.StartSpeaking("(株) ○○商事");

関連項目

AddWordToDictionaryWithCSV、RemoveWordFromDictionaryメソッド


SpeechSynthesizer.AddWordToDictionaryWithCSVメソッド

説明

単語の読み方をCSV形式で登録します。

フォーマットは下記の通りです。

単語,読み方,単語前後の半角スペースを考慮するかどうか(boolean)

テキスト中に一列目で指定した文字列を、二列目で指定した読み方で読み替えます。(単語の大文字、小文字は区別しません。)

三列目にtrueを指定すると、単語の前後に半角スペースがある場合のみ読み方を変更します。

例 | 三列目 TRUE | 三列目 FALSE
text="文中に単語があります" (単語の前後にスペースがない) | 読み替えは発生しません | 読み替えが発生します
text="文中に 単語 があります" (単語の前後にスペース) | 読み替えが発生します | 読み替えが発生します
text="単語 が文頭にあります" (単語の後にスペース) | 読み替えが発生します | 読み替えが発生します
text="文末に 単語" (単語の前にスペース) | 読み替えが発生します | 読み替えが発生します
text="単語" (単語単独) | 読み替えが発生します | 読み替えが発生します

単語が登録済みの場合、内容を上書きして登録します。

呼出形式

synthesizer.AddWordToDictionaryWithCSV(csvDoc)

戻り値

なし

引数

CSVDocument csvDoc

CSVDocumentオブジェクトへのリファレンス

例外

なし

使用例

var synthesizer = new SpeechSynthesizer();
synthesizer.Load();
synthesizer.AddWordToDictionaryWithCSV(new CSVDocument << CSV{
 (株),かぶしきがいしゃ,false
});
synthesizer.StartSpeaking("(株) ○○商事");

関連項目

AddWordToDictionary、RemoveWordFromDictionaryメソッド


SpeechSynthesizer.GetAvailableEnginesメソッド

説明

使用可能な音声合成エンジン名の一覧を取得します。

呼出形式

var engines = synthesizer.GetAvailableEngines( )

戻り値

エンジン名の文字列の一覧を格納したArrayオブジェクト

引数

なし

例外

SPEECH-1

音声合成機能がロードされていません。

使用例

var synthesizer = new SpeechSynthesizer();
synthesizer.Load();
var engines = synthesizer.GetAvailableEngines();
for (var i = 0; i < engines.length; i++) {
 var row = ^.FlexView1.insertRow();
 row.Engine = engines[i];
}

関連項目

GetCurrentEngine、SetEngineメソッド


SpeechSynthesizer.GetAvailableVoicesメソッド

説明

音声合成エンジンが使用可能な音声情報の一覧を取得します。

Android版
端末によっては事前に音声データをダウンロードする必要があります。
結果には未ダウンロードの音声情報が含まれる場合があります。

呼出形式

var voices = synthesizer.GetAvailableVoices( )

戻り値

Voiceクラスオブジェクトを格納したArrayオブジェクト

引数

なし

例外

SPEECH-1

音声合成機能がロードされていません。

使用例

var synthesizer = new SpeechSynthesizer();
synthesizer.Load();
var voices = synthesizer.GetAvailableVoices();
for (var i = 0; i < voices.length; i++) {
 var row = ^.FlexView1.insertRow();
 row.ID = voices[i].ID;
 row.Name = voices[i].VoiceName;
 row.Language = voices[i].Language;
}

関連項目

GetCurrentVoice、SetVoiceメソッド


SpeechSynthesizer.GetCurrentEngineメソッド

説明

現在使用している音声合成エンジンの名前を取得します。

呼出形式

var engine = synthesizer.GetCurrentEngine( )

戻り値

エンジン名の文字列

引数

なし

例外

SPEECH-1

音声合成機能がロードされていません。

使用例

var synthesizer = new SpeechSynthesizer();
synthesizer.Load();
var engine = synthesizer.GetCurrentEngine();
print("Current Engine:" + engine);

関連項目

GetAvailableEngines、SetEngineメソッド


SpeechSynthesizer.GetCurrentVoiceメソッド

説明

現在使用している音声情報を取得します。

呼出形式

var vo = synthesizer.GetCurrentVoice( )

戻り値

Voiceクラスオブジェクトへのリファレンス

引数

なし

例外

SPEECH-1

音声合成機能がロードされていません。

使用例

var synthesizer = new SpeechSynthesizer();
synthesizer.Load();
var vo = synthesizer.GetCurrentVoice();
print("Current Voice ID:" + vo.ID + "\n");
print("Current Voice name:" + vo.VoiceName + "\n");
print("Current Voice language:" + vo.Language + "\n");

関連項目

Voiceクラス

GetAvailableVoices、SetVoiceメソッド


SpeechSynthesizer.IsLanguageAvailableメソッド

説明

指定言語が使用できるかどうかを判定します。

呼出形式

var available = synthesizer.IsLanguageAvailable( language )

戻り値

languageが使用できる場合はtrueが返ります。

引数

String language

言語コードと国コード(ja-JP等)で表す言語

例外

SPEECH-1

音声合成機能がロードされていません。

使用例

var synthesizer = new SpeechSynthesizer();
synthesizer.Load();
var language = "ja-JP";
if (synthesizer.IsLanguageAvailable(language)) {
 print(language + " is available.\n");
}

関連項目

GetAvailableVoicesメソッド


SpeechSynthesizer.Loadメソッド

説明

デフォルトの音声合成エンジンと音声情報で、音声合成エンジンを初期化します。

呼出形式

synthesizer.Load()

戻り値

なし

引数

なし

例外

SPEECH-2

音声合成機能は既にロードされています。

SPEECH-10

音声合成エンジンの初期化に失敗しました。

使用例

SpeechSynthesizer synthesizer {
 Function OnUtteranceStateChanged(e) {
  if (e.state == $UTTERANCE_FINISHED) {
   Unload();
  }
 }

 if (!$DESIGNTIME) {
  Load();
  StartSpeaking("Hello World!");
 }
}

関連項目

Unloadメソッド


SpeechSynthesizer.RemoveWordFromDictionaryメソッド

説明

AddWordToDictionary、AddWordToDictionaryWithCSVメソッドで登録した単語の読みを削除します。

呼出形式

synthesizer.RemoveWordFromDictionary( word )

戻り値

なし

引数

String word

読み方を削除する単語

例外

なし

使用例

var synthesizer = new SpeechSynthesizer();
synthesizer.AddWordToDictionary("(株)", "かぶしきがいしゃ", true);
synthesizer.StartSpeaking("(株) ○○商事");

synthesizer.RemoveWordFromDictionary("(株)");
synthesizer.StartSpeaking("(株) ○○商事");

関連項目

AddWordToDictionary、AddWordToDictionaryWithCSVメソッド


SpeechSynthesizer.SetEngineメソッド

説明

使用する音声合成エンジンを設定し、音声合成エンジンを初期化しなおします。

SPEECH-10例外が発生した場合は、再度Loadメソッドを呼び出す必要があります。

呼出形式

synthesizer.SetEngine( engine )

戻り値

なし

引数

String engine

音声合成エンジン名

例外

SPEECH-1

音声合成機能がロードされていません。

SPEECH-10

音声合成エンジンの初期化に失敗しました。

SPEECH-11

発話中は音声合成エンジンを設定できません。

使用例

var synthesizer = new SpeechSynthesizer();
synthesizer.Load();
var engines = synthesizer.GetEngines();
if (engines.length > 2){
 synthesizer.SetEngine(engines[1]);
}

関連項目

GetAvailableEngines、GetCurrentEngineメソッド


SpeechSynthesizer.SetVoiceメソッド

説明

デフォルトで使用する音声を設定します。

StartSpeakingでVoiceクラスオブジェクトが指定された場合は、そちらが優先されます。

呼出形式

synthesizer.SetVoice( vo )

戻り値

なし

引数

Voice vo

Voiceクラスオブジェクト

例外

SPEECH-1

音声合成機能がロードされていません。

使用例

var synthesizer = new SpeechSynthesizer();
synthesizer.Load();
var engines = synthesizer.GetEngines();
if (engines.length > 2){
 synthesizer.SetEngine(engines[1]);
}

関連項目

GetAvailableVoices、GetCurrentVoice、StartSpeakingメソッド


SpeechSynthesizer.StartSpeakingメソッド

説明

発話を開始します。

このメソッドはテキストを内部のキューに入れた後、発話の開始、終了を待たずに処理を返します。

テキストの発話は、StartSpeakingメソッドを呼び出した順で行われます。

発話設定を省略した場合、Pitch、PostUtteranceDelay、Rate、Volumeプロパティの値が使用されます。

音声情報を省略した場合、SetVoiceメソッドにより設定された音声が使用されます。

発話が開始すると、state=SpeechSynthesizer.UTTERANCE_STARTEDでUtteranceStateChangedイベントが発生します。

テキストが全て読まれると、state=SpeechSynthesizer.UTTERANCE_FINISHEDでUtteranceStateChangedイベントが発生します。

呼出形式

synthesizer.StartSpeaking( text [, uttr , vo] )

戻り値

なし

引数

String text

読み上げるテキスト

Utterance uttr

発話設定を持つUtteranceクラスオブジェクト

Voice vo

音声情報を持つVoiceクラスオブジェクト

例外

SPEECH-1

音声合成機能がロードされていません。

SPEECH-3

発話を開始できませんでした。

使用例

Form Form1 {
 X = 0;
 Y = 0;
 Width = 150;
 Height = 150;
 SpeechSynthesizer synthesizer {
  Function OnUtteranceStateChanged(e) {
   print("State:" + str(e.state) + " Text:" + e.text + "\n");
  }
 }

 Button Button1 {
  X = 10;
  Y = 10;
  Width = 100;
  Height = 25;
  Title = "Start";
  function OnTouch(e) {
   ^.synthesizer.StartSpeaking("Hello world!");
  }
 }

 Button Button2 {
  X = 10;
  Y = 40;
  Width = 100;
  Height = 25;
  Title = "Stop";
  function OnTouch(e) {
   ^.synthesizer.StopSpeaking(true);
  }
 }

 if ( !$DESIGNTIME ) {
  synthesizer.Load();
 }
}

関連項目

Pitch、PostUtteranceDelay、Rate、Volumeプロパティ

SetVoice、StopSpeakingメソッド


SpeechSynthesizer.StopSpeakingメソッド

説明

発話を停止します。

まだ発話されていないテキストに対する発話も行われません。

このメソッドで発話を中止すると、UtteranceStateChangedイベントが発生します。stateはSpeechSynthesizer.UTTERANCE_CANCELEDとなります。

呼出形式

synthesizer.StopSpeaking( [immediate] )

戻り値

なし

引数

boolean immediate

trueの場合、即座に発話を停止します。falseの場合、現在発音中の単語を読み上げてから停止します。

デフォルトはtrueです。

Android版
引数に関わらず即座に発話を停止します。
引数は他プラットフォームのために定義されています。

例外

SPEECH-1

音声合成機能がロードされていません。

SPEECH-4

発話を停止できませんでした。

SPEECH-7

発話中ではありません。

使用例

Form Form1 {
 X = 0;
 Y = 0;
 Width = 150;
 Height = 150;
 SpeechSynthesizer synthesizer {
  Function OnUtteranceStateChanged(e) {
   print("State:" + str(e.state) + " Text:" + e.text + "\n");
  }
 }

 Button Button1 {
  X = 10;
  Y = 10;
  Width = 100;
  Height = 25;
  Title = "Start";
  function OnTouch(e) {
   ^.synthesizer.StartSpeaking("Hello world!");
  }
 }

 Button Button2 {
  X = 10;
  Y = 40;
  Width = 100;
  Height = 25;
  Title = "Stop";
  function OnTouch(e) {
   ^.synthesizer.StopSpeaking(true);
  }
 }

 if ( !$DESIGNTIME ) {
  synthesizer.Load();
 }
}

関連項目

StartSpeakingメソッド


SpeechSynthesizer.Unloadメソッド

説明

音声合成機能をアンロードします。

呼出形式

synthesizer.Unload()

戻り値

なし

引数

なし

例外

SPEECH-1

音声合成機能がロードされていません。

使用例

SpeechSynthesizer synthesizer {
 Function OnUtteranceStateChanged(e) {
  if (e.state == $UTTERANCE_FINISHED) {
   Unload();
  }
 }

 if (!$DESIGNTIME) {
  Load();
  StartSpeaking("Hello World!");
 }
}

関連項目

Loadメソッド


SpeechSynthesizerイベント

API version 17

イベント

iOSAndroidWindows

SpeechSynthesizerクラスには以下のイベントが定義されています。

API | 名前 | 説明
17 | UtteranceStateChanged | 発話状態が変化したことを通知します。

クラス概要

基本クラスのイベント


SpeechSynthesizer.UtteranceStateChangedイベント

StartSpeakingメソッドで開始した発話の状態が変化したことを通知します。

Eventオブジェクトには以下の子オブジェクトが付加されています。

型 | 名前 | 説明
Integer | state | 発話状態が格納されます
String | text | 発話中のテキストが格納されます
Integer | position | text内で発音中の単語の開始位置が格納されます stateがSpeechSynthesizer.UTTERANCE_SPEAKINGの場合のみ存在します
Integer | length | 発音中の単語の長さが格納されます stateがSpeechSynthesizer.UTTERANCE_SPEAKINGの場合のみ存在します

発話状態stateは下記の値をとります。

定数 | 値 | 説明
SpeechSynthesizer.UTTERANCE_STARTED | 0 | 発話が開始しました
SpeechSynthesizer.UTTERANCE_FINISHED | 1 | 発話が終了しました
SpeechSynthesizer.UTTERANCE_CANCELED | 2 | StopSpeakingメソッドによって発話がキャンセルされました
SpeechSynthesizer.UTTERANCE_SPEAKING | 3 | 発話中です

Android版
state=SpeechSynthesizer.UTTERANCE_SPEAKINGについて下記の制限があります。
・Android 8未満のOSではイベントが発生しません。
・音声合成エンジンや設定したVoice.Languageプロパティによってはイベントが発生しません。


Utteranceクラス

Object
 | Utterance

SpeechSynthesizer.StartSpeakingメソッドで発話情報を設定するためのクラスです。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。


Utteranceプロパティ

API version 17

プロパティ

iOSAndroidWindows

Utteranceクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
17 | Pitch | CRW | Number | 1.0 | 音声の高さ
17 | PostUtteranceDelay | CRW | Number | 0.0 | テキストを読み上げた後の待機時間
17 | Rate | CRW | Number | 1.0 | 読み上げの速度
17 | Value | CRW | String Number Fixed Date |  | オブジェクトの値
17 | Volume | CRW | Number | 1.0 | 読み上げの音量

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Utterance.Pitchプロパティ

音の高さを、0より大きい値で指定します。デフォルトは1.0です。

1.0より大きい値を指定すると音が高くなります。

1.0より小さい値を指定すると音が低くなります。

内部でOSで設定可能な範囲に切り揃えられます。


Utterance.PostUtteranceDelayプロパティ

StartSpeakingメソッドで指定したテキストを読み上げた後に、次のテキストを読み出すまでの時間を秒単位で指定します。

デフォルトは0.0秒です


Utterance.Rateプロパティ

読み上げの速さを、0より大きい値で指定します。デフォルトは1.0です。

1.0より大きい値を指定すると読み上げ速度が上がります。

1.0より小さい値を指定すると読み上げ速度が下がります。

内部でOSで設定可能な範囲に切り揃えられます。


Utterance.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


Utteranceメソッド

API version 17

メソッド

iOSAndroidWindows

Utteranceクラスには以下のメソッドが定義されています。

API | 名前 | 概要
17 | (コンストラクタ) | Utteranceクラスを初期化します。

クラス概要

基本クラスのメソッド


Utteranceコンストラクタ

説明

Utteranceクラスを初期化します。

呼出形式

var uttr = new Utterance([pitch , rate, volume , postUtteranceDelay])

戻り値

Utteranceオブジェクト

引数

Number pitch

音声の高さ

0より大きい値を指定します。

Number rate

読み上げの速度

0より大きい値を指定します。

Number volume

読み上げの音量

0-1の間で指定します。

Number postUtteranceDelay

テキストを読み上げた後の待機時間を秒単位で指定します。

例外

なし

使用例

var synthesizer = new SpeechSynthesizer();
synthesizer.Load();

var uttr = new Utterance(0.5, 2.0, 0.5, 5);

synthesizer.StartSpeaking("Hello world", uttr);

関連項目

SpeechSynthesizer.StartSpeakingメソッド


Utteranceイベント

API version 17

イベント

iOSAndroidWindows

Utteranceクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


Voiceクラス

Object
 | Voice

音声合成エンジンで使用する音声情報を設定したり、音声合成エンジンが使用できる音声情報を格納したりするためのクラスです。

音声合成エンジンで使用する音声情報を設定する際は、IDプロパティもしくはLanguageプロパティを使用します。

VoiceオブジェクトはSpeechSynthesizer.SetVoiceメソッド、SpeechSynthesizer.StartSpeakingメソッドで指定します。

音声情報を使用する時は、エンジンが使用できる音声情報の中から、上記メソッドで指定したVoiceオブジェクトのIDプロパティ、Languageプロパティに一致する音声情報を検索して使用します。

(両方指定された場合はIDプロパティを優先します。)

これ以外のプロパティは、音声合成エンジンから取得した情報の格納のために使用します。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。


Voiceプロパティ

API version 17

プロパティ

iOSAndroidWindows

Voiceクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
17 | Gender | R | Integer | 音声の性別
17 | ID | CR | String | 音声情報の識別子
17 | IsNetworkRequired | R | boolean | ネットワーク接続が必要かどうか
17 | Language | CR | String | 対応言語
17 | Latency | R | Integer | 音声の遅延
17 | Quality | R | Integer | 音声合成の品質
17 | Value | CRW | String Number Fixed Date | オブジェクトの値
17 | VoiceName | R | String | 音声情報の名称

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Voice.Genderプロパティ

音声の性別を示します。下記の値をとります。

定数 | 値 | 説明
Voice.GENDER_UNSPECIFIED | 0 | 不明
Voice.GENDER_MALE | 1 | 男性
Voice.GENDER_FEMALE | 2 | 女性

Android版
使用している音声合成エンジンのバージョンによっては性別が取得できず、
GetAvailableVoicesメソッドで取得した全てのVoice.GenderプロパティがVoice.GENDER_UNSPECIFIEDとなる場合があります。

このプロパティは読み込み専用で変更することはできません。


Voice.IDプロパティ

音声情報の識別子を示します。


Voice.IsNetworkRequiredプロパティ

音声合成にネットワーク接続が必要な場合は$TRUEを示します。不要な場合は$FALSEを示します。

このプロパティが$FALSEであっても、音声情報のダウンロード自体は必要です。

このプロパティは読み込み専用で変更することはできません。


Voice.Languageプロパティ

音声情報が対応している言語を示します。

言語コードと国コードの組み合わせの文字列になります(ja-JP等)。


Voice.Latencyプロパティ

音声がどの程度遅延するかを示します。下記の値となります。

定数 | 値 | 説明
Voice.LATENCY_VERY_LOW | 0 | 遅延時間がとても短い
Voice.LATENCY_LOW | 1 | 遅延時間が短い
Voice.LATENCY_NORMAL | 2 | 遅延時間が中程度
Voice.LATENCY_HIGH | 3 | 遅延時間が長い(音声合成にネットワークが必要な場合等)
Voice.LATENCY_VERY_HIGH | 4 | 遅延時間がとても長い (音声合成にネットワークが必要でネットワークが遅い場合等)

このプロパティは読み込み専用で変更することはできません。


Voice.Qualityプロパティ

音声の品質を示します。下記の値となります。

定数 | 値 | 説明
Voice.QUALITY_VERY_LOW | 0 | 最低品質
Voice.QUALITY_LOW | 1 | 低品質
Voice.QUALITY_NORMAL | 2 | 通常の品質
Voice.QUALITY_HIGH | 3 | 高品質
Voice.QUALITY_VERY_HIGH | 4 | 最高品質

このプロパティは読み込み専用で変更することはできません。


Voice.Valueプロパティ

オブジェクトの値です。ValueTypeに指定したデータ型の値を保持します。

このプロパティの値はオブジェクトの動作には影響を与えません。


Voice.VoiceNameプロパティ

音声情報の名前を示します。

このプロパティは読み込み専用で変更することはできません。


Voiceメソッド

API version 17

メソッド

iOSAndroidWindows

Voiceクラスには以下のメソッドが定義されています。

API | 名前 | 概要
17 | (コンストラクタ) | Voiceクラスを初期化します。

クラス概要

基本クラスのメソッド


Voiceコンストラクタ

説明

Voiceクラスを初期化します。

Voiceオブジェクトは、SpeechSynthesizer.SetVoiceメソッドやSpeechSynthesizer.StartSpeakingメソッドで使用します。

実際に音声情報を使用する際は、利用できる音声情報の中からidもしくはlanguageが一致する音声情報を検索して使用します。

(両方が指定されている場合はidを優先して検索します)。

呼出形式

var vo = new Voice(id [, language])

戻り値

Voiceオブジェクト

引数

String id

音声情報の識別子

String language

音声情報が対応する言語

言語コードと国コード(ja-JP等)で表します。

例外

CRS-16

コンストラクタ引数が不正です

使用例

var synthesizer = new SpeechSynthesizer();
synthesizer.Load();

var vo = new Voice("language-id");

synthesizer.SetVoice(vo);
synthesizer.StartSpeaking("Hello world");

関連項目

ID、Languageプロパティ

SpeechSynthesizer.GetAvailableVoices、SpeechSynthesizer.SetVoice、SpeechSynthesizer.StartSpeakingメソッド


Voiceイベント

API version 17

イベント

iOSAndroidWindows

Voiceクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


SmaPriパッケージ

SmaPri Libraryを使用し、サトー製プリンタと連携するためのパッケージです。

本機能の概要、および印刷まで手順についてはこちらに記載しています。

※SmaPri は、サトーホールディングス株式会社の登録商標または商標です。

クラス

API | 名前 | 説明
23 | SmaPri | サトー製プリンタを使用した印刷を行うためのクラスです。
23 | SmaPriBluetooth | SmaPri Libraryを使用してBluetoothデバイスの検索、接続を行うためのクラスです。
23 | SmaPriInputItem | 印刷項目を設定するためのクラスです。
23 | SmaPriPrinter | プリンタ設定を行うためのクラスです。


SmaPriパッケージの概要

１ 本機能の構成

SmaPriパッケージでは、SmaPri Libraryが対応するサトー製プリンタと連携しラベルの印刷を行う機能を提供します。

Biz/Browser HTとプリンタはBluetoothもしくはTCPで接続します。

ラベル印刷の発行には、「SmaPri Designer」で作成したフォーマットファイル(*.spfmtz)を利用します。Biz/Browser HTは、フォーマットファイルから読み込んだフォーマット情報と発行データから印刷コマンドを作成し、プリンタに発行を指示します。

※SATO、SmaPriは、サトーホールディングス株式会社の登録商標または商標です。

２ CRSによる印刷までの手順

プリンタとの接続から印刷指示を行うまでのCRSコードの一例を記載します。

まずコード全体を下記に記載します。個別の説明は後述します。

Form Form1 {
    X = 0;
    Y = 0;
    Width = 600;
    Height = 400;

    SmaPri sm;
    SmaPriPrinter sp;

    Button btnSetPrinter {
        X = 10;
        Y = 10;
        Width = 50;
        Height = 20;
        Title = "SetPrinter";
        Function OnTouch(e) {
            ^.sp.SetPrinter(SmaPriPrinter.DeviceTypeTcp, "192.168.1.15", SmaPriPrinter.ProtocolStatus4, false);
        }
    }

    Button btnConnect {
        X = 70;
        Y = 10;
        Width = 50;
        Height = 20;
        Title = "Connect to Printer";
        Function OnTouch(e) {
            ^.sp.Connect();
        }
    }

    Button btnRegisterFormat {
        X = 10;
        Y = 40;
        Width = 50;
        Height = 20;
        Title = "Register format";
        Function OnTouch(e) {
            ^.sm.RegisterFormat("http://192.168.1.15/format/sample.spfmtz");
        }
    }

    Button btnPrintFormat {
        X = 10;
        Y = 40;
        Width = 50;
        Height = 20;
        Title = "Print format";
        Function OnTouch(e) {
            var item = new SmaPriInputItem[2];
            item[0].FormatId = 1;
            item[0].PrintNum = 1;
            item[0].SetData("文字列1", "ABCD");
            item[0].SetData("バーコード1", "hello world!");

            item[1].FormatId = 2;
            item[1].PrintNum = 1;
            item[1].SetData("固定グラフィック", "http://192.168.1.15/image/sample.bmp");
            item[1].SetData("切替グラフィック", "1");

            var extended = new Array();
            extended["print_operation"] = "1,3,3";
            extended["print_offset"] = "50,50";

            ^.sm.PrintFormat(item, extended);
        }
    }
    // {
        Function OnSmaPriPrinterConnectionChanged(e) {
            //.MessageBox("プリンタ接続状態変更:" + str(e.State) + " :" + e.Message);
        }
        Function OnSmaPriPrintFailed(e) {
            //.MessageBox("プリント失敗(" + e.JobName + "):" + e.Message);
        }
        Function OnSmaPriPrintFinished(e) {
            //.MessageBox("プリント完了(" + e.JobName + ")");
        }
    }
}

まず、SmaPriPrinter.SetPrinterメソッドでプリンタを指定し、SmaPriPrinter.Connectメソッドで接続します。SmaPriPrinter.SetPrinterメソッドの第三引数のプリンタ機種は、プリンタと一致させる必要があります。 SmaPriPrinter.SetPrinterメソッドで指定したプリンタ情報は保存され、次回のBiz/Browser起動時にも適用されます。IPアドレスとBluetoothアドレスは別々に保存されます。

    Button btnSetPrinter {
        X = 10;
        Y = 10;
        Width = 50;
        Height = 20;
        Title = "SetPrinter";
        Function OnTouch(e) {
            ^.sp.SetPrinter(SmaPriPrinter.DeviceTypeTcp, "192.168.1.15", SmaPriPrinter.ProtocolStatus4, false);
        }
    }

    Button btnConnect {
        X = 700;
        Y = 10;
        Width = 50;
        Height = 20;
        Title = "Connect to Printer";
        Function OnTouch(e) {
            ^.sp.Connect();
        }
    }

フォーマットファイルはSmaPri.RegisterFormatメソッドで読み込み、Android端末内に保存します。フォーマットファイルはWebサーバー上、もしくは端末内のファイルをURLで指定するか、バイナリデータをBase64形式にエンコードした文字列で指定します。

    Button btnRegisterFormat {
        X = 10;
        Y = 40;
        Width = 50;
        Height = 20;
        Title = "Register format";
        Function OnTouch(e) {
            ^.sm.RegisterFormat("http://192.168.1.15/format/sample.spfmtz");
        }
    }

発行データはSmaPriInputItemクラスの配列として作成します。作成した発行データはSmaPri.PrintFormatメソッドに渡して印刷を実行します。印刷は発行データの配列のインデックス順で実行されます。

    Button btnPrintFormat {
        X = 10;
        Y = 40;
        Width = 50;
        Height = 20;
        Title = "Print format";
        Function OnTouch(e) {
            var item = new SmaPriInputItem[2];
            item[0].FormatId = 1;
            item[0].PrintNum = 1;
            item[0].SetData("文字列1", "ABCD");
            item[0].SetData("バーコード1", "hello world!");

            item[1].FormatId = 2;
            item[1].PrintNum = 1;
            item[1].SetData("固定グラフィック", "http://192.168.1.15/image/sample.bmp");
            item[1].SetData("切替グラフィック", "1");

            var extended = new Array();
            extended["print_operation"] = "1,3,3";
            extended["print_offset"] = "50,50";

            ^.sm.PrintFormat(item, extended);
        }
    }

３ メニュー

Biz/Browser HTのメニューから、SmaPri機能の設定を行うことができます。

「プリンタ接続状態」によりプリンタに接続する操作はSmaPriPrinter.Connectメソッドを呼び出すことと同じで、CRSでも接続した状態になります。

プリンタのアドレスは、SmaPriPrinter.SetPrinterメソッドや、プリンタ設定画面で設定したプリンタのアドレスが表示されます。Bluetoothのデバイスを設定した場合はBluetoothアドレスが、ネットワーク上のプリンタを設定した場合はプリンタのIPアドレスが表示されます。

４ プリンタ設定画面

プリンタ設定画面では、SmaPriのプリンタに関する詳細設定を行うことができます。

番号 | 説明
１.プリンタ機種 | 設定されているプリンタのプリンタ機種です。デフォルトはステータス4(1ポート接続)です。 SmaPriPrinter.SetPrinterメソッドの第三引数で指定した値となります。 接続するプリンタと一致させる必要があります。
２.Bluetooth接続を使用 | Bluetoothプリンタを使用します。LAN設定とは排他となります。 SmaPriPrinter.SetPrinterメソッドの第一引数でBluetoothプリンタ(SmaPriPrinter.DeviceTypeBluetooth)を指定した場合はこのチェックが有効になります。
３.Bluetoothデバイス | Bluetoothプリンタを選択します。また、Bluetoothデバイスを検索し、ペアリングを行います。 タップすると、設定済みのデバイスとペアリング済みのデバイスが一覧表示され、選択したデバイスをプリンタとして設定します。「デバイスのスキャン」を選択するとBluetoothデバイスのスキャンを行います。 ここで設定したBluetoothデバイスは、CRS上でも有効になります。
４.デバイス名フィルタ | 「３.Bluetoothデバイス」で表示するペアリング済みデバイスや検索結果のデバイスをフィルタリングするかどうかを設定します。 設定した文字列を含むデバイスだけを表示します。デフォルトはオフです。またデフォルトの検索文字列は「SATO」です。 SmaPriBluetooth.Discoverメソッドの結果には影響しません。
５.自動ペアリング | 自動でペアリングを行うかどうか、およびペアリング時のPINコードを設定します。デフォルトはオフです。 この設定を有効にするとペアリング時(「３.Bluetoothデバイス」、およびSmaPriBluetooth.CreateBondメソッド呼び出し)に自動でPINコードを指定する他、Bluetoothプリンタとの接続(メニューからの接続、およびSmaPriPrinter.Connectメソッド呼び出し)時にもペアリングを実行します。
６.LAN接続を使用 | ネットワーク上のプリンタを使用します。Bluetooth設定とは排他となります。 SmaPriPrinter.SetPrinterメソッドの第一引数でBluetoothプリンタ(SmaPriPrinter.DeviceTypeTcp)を指定した場合はこのチェックが有効になります。
７.IPアドレス | ネットワークプリンタのIPアドレスを表示、設定します。 ここで設定したIPアドレスは、CRS上でも有効になります。
８.TCPポート | ネットワークプリンタと接続する際のポート番号を表示、設定します。デフォルトは9100です。 ここで設定したポート番号は、CRS上でも有効になります。
９.Wi-Fi自動ON | プリンタへの接続時に自動でWi-FiをONにします。デフォルトはオフです。 メニューからの接続時、およびSmaPriPrinter.Connectメソッド呼び出し時両方で有効です。 Android 10以降ではOSの制限により機能は無効となります。
１０.セッションの切断時間 | 接続後、および印刷後にプリンタとの接続を自動で切断にする時間を設定します。デフォルトは5分です。 「1発行指示毎」の場合、接続後は自動で切断されません。印刷実行後に切断されます。
１１.切断時デバイスOFF時間 | プリンタとの接続を切断した後、Wi-FiもしくはBluetoothをオフにするまでの時間を設定します。デフォルトは「しない」です。 Android 10以降ではOSの制限によりWi-Fiをオフにする機能は無効となります。 Biz/Browser HT1.3.3から、Android 13以降ではOSの制限によりBluetoothをオフにする機能は無効となります。
１２.マルチアイテム送信 | 印刷時、印刷が終わるのを待たずに次の印刷を実行するかどうかを指定します。デフォルトはオフです。
１３.伝送制御キャラクタ付加 | 印字データ送信時に伝送制御文字(STX,ETX)を自動で付加するかどうかを指定します。デフォルトはオンです。 「１４.CRC有効」がオンの場合、この設定は必ず有効になります。
１４.CRC有効 | 通信時のCRCチェックを有効にします。デフォルトはオフです。 CRCチェックを有効にすると、通信エラーで印字データが破損した場合に破損したデータを印字しなくなります。ただし、印字速度は遅くなります。 この設定はプリンタのCRCチェック機能と同じ設定にする必要があります。プリンタの設定方法はプリンタのマニュアルを参照してください。
１５.プリンタ応答タイムアウト | プリンタ応答のタイムアウト時間をミリ秒単位で設定します。デフォルトは20000ミリ秒です。


SmaPriクラス

Object
 | SmaPri

サトー製プリンタと連携してフォーマットファイル(*.spfmtz)の登録、印刷を行うクラスです。

本機能の詳細、具体的な印刷までの手順に関してはこちらを参照してください。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。


SmaPriプロパティ

API version 23

プロパティ

iOSAndroidWindows

SmaPriクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
23 | FileSize | R | integer | 0 | フォーマットファイルのファイルサイズ
23 | LastModified | R | Date | NULL | フォーマットファイルの最終更新日
23 | PrinterName | R | String |  | フォーマットファイルで指定されているプリンタ名
23 | PrinterResolution | R | integer | 0 | フォーマットファイルで指定されている解像度
23 | ProjectName | R | String |  | フォーマットファイルで指定されているプロジェクト名
23 | SBPLVersion | R | String |  | SBPLバージョン

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


SmaPri.FileSizeプロパティ

フォーマットファイルのファイルサイズを示します。

このプロパティは読み込み専用で変更することはできません。


SmaPri.LastModifiedプロパティ

フォーマットファイルの最終更新日をDateオブジェクトとして保持します。

このプロパティは読み込み専用で変更することはできません。


SmaPri.PrinterNameプロパティ

フォーマットファイルで指定されているプリンタ名を示します。

このプロパティは読み込み専用で変更することはできません。


SmaPri.PrinterResolutionプロパティ

フォーマットファイルで指定されている解像度を示します。

このプロパティは読み込み専用で変更することはできません。


SmaPri.ProjectNameプロパティ

API version 23

SmaPri. ProjectNameプロパティ

iOSAndroidWindows

フォーマットファイルで指定されているプロジェクト名を示します。

このプロパティは読み込み専用で変更することはできません。


SmaPri.SBPLVersionプロパティ

フォーマットファイルのSBPLバージョンを示します。

このプロパティは読み込み専用で変更することはできません。


SmaPriメソッド

API version 23

メソッド

iOSAndroidWindows

SmaPriクラスには以下のメソッドが定義されています。

API | 名前 | 概要
23 | GetFormatInfo | フォーマットファイルに含まれるレイアウトの番号と名前を取得します
23 | GetInputItem | レイアウトの入力項目を取得します
23 | GetPrintCutSettings | レイアウトに指定されている用紙カットの設定を取得します
23 | GetPrintDepthSettings | レイアウトに指定されている印刷濃度の設定を取得します
23 | GetPrintItem | 印刷項目を取得します
23 | GetPrintOffsetSettings | レイアウトに指定されている基点補正の設定を取得します
23 | GetPrintSpeedSettings | レイアウトに指定されている印刷速度の設定を取得します
23 | GetTableInfo | テーブル情報を取得します
28 | PreviewFormat | 印刷プレビューの画像データを取得します（FLEQV FX3-LXのみ） ※FLEQVは、サトーホールディングス株式会社の登録商標または商標です。
23 | PrintFormat | 登録されているフォーマット情報を使用して印刷を行います
23 | RegisterFormat | フォーマットファイル(*.spfmtz)を登録します
23 | SendCommand | プリンタに印字コマンドを発行します
23 | SendRawData | プリンタにデータを送信します

クラス概要

基本クラスのメソッド


SmaPri.GetFormatInfoメソッド

説明

フォーマットファイルに含まれるフォーマットの呼び出し番号と呼び出し名を取得します。

呼出形式

var formatInfo = sm.GetFormatInfo( );

戻り値

以下の子オブジェクトを持つRecordオブジェクト

型 | 名前 | 説明
Number | FormatId | フォーマットの呼び出し番号
String | FormatName | フォーマットの呼び出し名

引数

なし

例外

SMAPRI-2

フォーマットが設定されていません。

使用例

var info = sm.GetFormatInfo();
print("Format No:", std(info.FormatId), " Name:", info.FormatName);
var inputItems = sm.GetInputItem(info[0].FormatId);
var items = new SmaPriInputItem[1];
items.SetData(items[0].FieldName, "ABC");

関連項目

RegisterFormatメソッド


SmaPri.GetInputItemメソッド

説明

フォーマットファイルに含まれる入力項目を取得します。

呼出形式

var inputItem = sm.GetInputItem(formatId);

戻り値

以下の子オブジェクトを持つRecordオブジェクトの配列が返ります。

型

名前

説明

Number

FieldType

フィールドタイプ。下記の値のいずれかとなります。

定数 | 値 | 説明
SmaPri.FieldTypeText | 0 | テキスト
SmaPri.FieldTypeBarcode | 1 | バーコード
SmaPri.FieldTypePrice | 2 | 価格
SmaPri.FieldTypeDateTime | 3 | 日付
SmaPri.FieldTypeSequence | 4 | 連番
SmaPri.FieldTypeTable | 5 | テーブル
SmaPri.FieldTypeGraphic | 6 | 画像
SmaPri.FieldTypeQuantity | 100 | 発行枚数

String

FieldName

フィールド名

Number

TableId

テーブルID(FieldTypeがSmaPri.FieldTypeTableの場合のみ)

Number

InputLength

入力桁数

String

DefaultValue

初期値

引数

String formatId

フォーマット呼び出し番号

例外

SMAPRI-2

フォーマットが設定されていません。

SMAPRI-10

フォーマット入力項目の取得に失敗しました。

使用例

var info = sm.GetFormatInfo();
print("Format No:", std(info.FormatId), " Name:", info.FormatName);
var inputItems = sm.GetInputItem(info[0].FormatId);
var items = new SmaPriInputItem[1];
items.SetData(items[0].FieldName, "ABC");
sm.PrintFormat(items);

関連項目

RegisterFormat、GetFormatInfo、SmaPriInputItem.SetDataメソッド


SmaPri.GetPrintCutSettingsメソッド

説明

フォーマットファイルに含まれる用紙カット情報を取得します。

呼出形式

var settings = sm.GetPrintCutSettings(formatId);

戻り値

以下の子オブジェクトを持つRecordオブジェクト

型 | 名前 | 説明
Number | MaxNumberOfSheetsCut | 指定枚数カット最大数
Number | DefaultNumberOfSheetsCut | 指定枚数カット初期値
Number | DefaultEjectionSheetsCut | 排出カットを行うかどうかの初期値。排出カットを行う場合は$TRUEとなります。

引数

String formatId

フォーマット呼び出し番号

例外

SMAPRI-2

フォーマットが設定されていません。

SMAPRI-16

フォーマットの設定の取得に失敗しました。

使用例

var info = sm.GetFormatInfo();

var settings = sm.GetPrintCutSettings(info[0].FormatId);
print("Default number of sheets cut:", str(settings.MaxNumberOfSheetsCut));

関連項目

RegisterFormat、PrintFormat、GetFormatInfoメソッド


SmaPri.GetPrintDepthSettingsメソッド

説明

フォーマットファイルに含まれる印刷濃度情報を取得します。

呼出形式

var settings = sm.GetPrintDepthSettings(formatId);

戻り値

以下の子オブジェクトを持つRecordオブジェクトの配列が返ります。

型 | 名前 | 説明
Number | SettingValue | 印刷濃度レベル
Number | isDefault | 設定値がデフォルトかどうか。デフォルトの場合は$TRUEとなります。

引数

String formatId

フォーマット呼び出し番号

例外

SMAPRI-2

フォーマットが設定されていません。

SMAPRI-16

フォーマットの設定の取得に失敗しました。

使用例

var info = sm.GetFormatInfo();

var settings = sm.GetPrintDepthSettings(info[0].FormatId);
for (var i = 0; i < setting.length; i++) {
 print("SettingValue(", str(i), "):", str(settings[i].SettingValue));
}

関連項目

RegisterFormat、PrintFormat、GetFormatInfoメソッド


SmaPri.GetPrintItemメソッド

説明

フォーマットファイルに含まれる印刷項目を取得します。

呼出形式

var printItem = sm.GetPrintItem();

戻り値

以下の子オブジェクトを持つRecordオブジェクトの配列が返ります。

型

名前

説明

String

PrintItemName

印刷項目名

Number

PrintItemType

印刷項目の種類。下記の値のいずれかとなります

定数 | 値 | 説明
SmaPri.PrintItemTypeText | 0 | テキスト
SmaPri.PrintItemTypeBarcode | 1 | バーコード
SmaPri.PrintItemTypePrice | 2 | 価格
SmaPri.PrintItemTypeDateTime | 3 | 日付
SmaPri.PrintItemTypeSequence | 4 | 連番
SmaPri.PrintItemTypeTable | 5 | テーブル
SmaPri.PrintItemTypeGraphic | 6 | 画像
SmaPri.PrintItemTypeCommand | 7 | コマンド
SmaPri.PrintItemTypeFrame | 8 | 枠線
SmaPri.PrintItemTypeLine | 9 | 罫線

引数

なし

例外

SMAPRI-2

フォーマットが設定されていません。

SMAPRI-17

フォーマットの印刷項目の取得に失敗しました。

使用例

var info = sm.GetFormatInfo();
print("Format No:", std(info.FormatId), " Name:", info.FormatName);
var printItems = sm.GetPrintItem(info[0].FormatId);
var items = new SmaPriInputItem[1];
items.SetData(items[0].PrintItemName, "", false);
sm.PrintFormat(items);

関連項目

RegisterFormat、PrintFormat、GetFormatInfoメソッド


SmaPri.GetPrintOffsetSettingsメソッド

説明

フォーマットファイルに含まれる基点補正の最大値と最小値を取得します。

呼出形式

var settings = sm.GetPrintOffsetSettings(formatId);

戻り値

以下の子オブジェクトを持つRecordオブジェクト

型 | 名前 | 説明
Number | MinVerticalPosition | 縦方向基点補正最小値
Number | MaxVerticalPosition | 縦方向基点補正最大値
Number | MinHorizontalPosition | 横方向基点補正最小値
Number | MaxHorizontalPosition | 横方向基点補正最大値

引数

String formatId

フォーマット呼び出し番号

例外

SMAPRI-2

フォーマットが設定されていません。

SMAPRI-16

フォーマットの設定の取得に失敗しました。

使用例

var info = sm.GetFormatInfo();

var settings = sm.GetPrintOffsetSettings(info[0].FormatId);
print("Vertical offset range:", str(settings.MaxVerticalPosition),"-", str(settings.MinVerticalPosition), "\n");
print("Horizontal offset range:", str(settings.MaxHorizontalPosition),"-", str(settings.MinHorizontalPosition), "\n");

関連項目

RegisterFormat、PrintFormat、GetFormatInfoメソッド


SmaPri.GetPrintSpeedSettingsメソッド

説明

フォーマットファイルに含まれる印刷速度情報を取得します。

呼出形式

var settings = sm.GetPrintSpeedSettings(formatId);

戻り値

以下の子オブジェクトを持つRecordオブジェクトの配列が返ります。

型 | 名前 | 説明
Number | SettingValue | 印刷速度レベル
String | SpeedValue | 印刷速度(mm/s)
Number | isDefault | 設定値がデフォルトかどうか。デフォルトの場合は$TRUEとなります。

引数

String formatId

フォーマット呼び出し番号

例外

SMAPRI-2

フォーマットが設定されていません。

SMAPRI-16

フォーマットの設定の取得に失敗しました。

使用例

var info = sm.GetFormatInfo();

var settings = sm.GetPrintSpeedSettings(info[0].FormatId);
for (var i = 0; i < setting.length; i++) {
 print("SettingValue(", str(i), ":", str(settings[i].SettingValue), " Speed(mm/s):", settings[i].SpeedValue);
}

関連項目

RegisterFormat、PrintFormat、GetFormatInfoメソッド


SmaPri.GetTableInfoメソッド

説明

フォーマットファイルに含まれるテーブル情報を取得します。

呼出形式

var tableInfo = sm.GetTableInfo();

戻り値

以下の子オブジェクトを持つRecordオブジェクトの配列が返ります。

型

名前

説明

String

Name

テーブル名

Number

IdNumber

テーブルID

Array

Record

テーブルのレコード情報。下記の子オブジェクトを持つRecordの配列

型 | 名前 | 説明
Number | RegistrationNumber | レコードの登録番号 画像テーブルの場合は100固定となります。
String | StringValue | レコードの文字列
String | GraphicData | Base64形式で表現したレコードの画像データ

引数

なし

例外

SMAPRI-2

フォーマットが設定されていません。

使用例

var tableInfo = sm.GetTableInfo();
var item = new SmaPriInputItem[1];
item[0].FormatId = 1;
item[0].PrintNum = 1;
/*1つめのテーブルに紐づいたテーブルフィールドに対して、レコードの登録番号を指定する*/
item[0].SetData("テーブル1の文字列", str(tableInfo[0].Record[0].RegistrationNumber));

sm.PrintFormat(item);

関連項目

RegisterFormat、PrintFormat、GetFormatInfoメソッド


SmaPri.PreviewFormatメソッド

説明

登録したフォーマットファイルの情報と発行データからプレビューコマンドを作成し、印刷プレビューの画像データを作成します。

発行データの設定にはSmaPriInputItemクラスを使用します。

この機能はFLEQV FX3-LXと接続している場合のみ使用できます。

※FLEQVは、サトーホールディングス株式会社の登録商標または商標です。

Android版
画像ファイルを印刷する場合、端末内のファイルを指定することができます。
Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、OSに対してユーザー操作で許可をとる必要があります。
詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

imgs = smapri.PreviewFormat( inputItems [, extraParams [, mount [,rotate]]] );

戻り値

プレビュー画像のImageオブジェクトを複数格納したArrayオブジェクト

inputItemsで指定した発行データ毎に画像を作成します。

引数

SmaPriInputItem[] inputItems

発行データを設定したSmaPriInputItemクラスの配列

配列のインデックス順にプレビュー画像を作成します。

SmaPriInputItem.PrintNumプロパティは無視されます。

Array extraParams

拡張パラメーターを指定します

引数のArrayのキー(文字列)に設定名を、値に設定値を格納します。

キー(文字列) | 値の型 | 説明
"print_offset" | String | 印字位置の補正値をカンマ区切りで指定します。形式は"±aaaa,±bbbb"です。 ±aaaa : 縦方向の補正値(dot単位) ±bbbb : 横方向の補正値(dot単位)

nullを指定した場合は、引数を省略した場合と同じ動作となります。

boolean mount

$TRUEを指定した場合、プレビュー画像に台紙の画像を含めます。

デフォルトは$FALSEです。

integer rotate

プレビュー画像の回転する量を以下の値から指定します。

定数 | 値 | 説明
SmaPri.deg90 Image.deg270 | 2 | 反時計回りに90度回転します
SmaPri.deg180 Image.deg180 | 1 | 180度回転します
SmaPri.deg270 Image.deg90 | 0 | 反時計回り270度回転します

省略時は回転しません。

例外

FUNC-4

引数の値が不正です

SMAPRI-1

プリンタが設定されていません。

SMAPRI-2

フォーマットが設定されていません。

SMAPRI-7

プリンタと接続していません。

SMAPRI-19

プレビューの作成に失敗しました。

使用例

SmaPri sm;

Button btnPrintFormat {
 X = 10;
 Y = 40;
 Width = 50;
 Height = 20;
 Title = "Print format";
 Function OnTouch(e) {
  var item = new SmaPriInputItem[2];
  item[0].FormatId = 1;
  item[0].SetData("文字列1", "ABCD");
  item[0].SetData("バーコード1", "hello world!");

  item[1].FormatId = 2;
  item[1].SetData("固定グラフィック", "http://192.168.1.15/image/sample.bmp");
  item[1].SetData("切替グラフィック", "1");

  var extended = new Array();
  extended["print_offset"] = "50,50";

  var imgs = ^.sm.PreviewFormat(item, extended);
  var fs = new FileSystem();

  for ( var i = 0; i < imgs.length; i++ ) {
   var fp = fs.Open("sample_" + str(i) + ".jpg", FileSystem.OPEN_WRITE);
   imgs[i].Save(fp, Image.FORMAT_JPEG, 80);
   fp.Close();
  }
 }
}

関連項目

RegisterFormat、PrintFormat、GetPrintOffsetSettingsメソッド


SmaPri.PrintFormatメソッド

説明

登録したフォーマットファイルの情報と発行データから印刷コマンドを作成し、印刷を実行します。

発行データの設定にはSmaPriInputItemクラスを使用します。

詳しい使用方法についてはこちらを参照してください。

発行データの処理を1つ行う毎に、印字に成功するとRoot.SmaPriPrintFinishedイベントが発生します。印字に失敗するとRoot.SmaPriPrintFailedイベントが発生します。

Android版
画像ファイルを印刷する場合、端末内のファイルを指定することができます。
Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、OSに対してユーザー操作で許可をとる必要があります。
詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

sm.PrintFormat(inputItems [ ,extraParams] );

戻り値

なし

引数

SmaPriInputItem[] inputItems

発行データを設定したSmaPriInputItemクラスの配列

配列のインデックス順に印刷を実行します。

Array extraParams

拡張パラメーターを指定します

引数のArrayのキー(文字列)に設定名を、値に設定値を格納します。

キー(文字列)

値の型

説明

"print_operation"

String

プリント動作を指定します。カット動作、印字濃度、印字速度をカンマ区切りで指定します。形式は"aaaa,bb,cc"です。

設定 | 説明
aaaa(カット動作) | 0-9999 : 指定枚数カット E : 排出カット S : フォーマットファイルの設定に従う 省略 : プリンタの設定に従う ※指定枚数カットと排出カットは組合せることで同時に使用できます(例：2E)
bb(印字濃度) | 1-10 : 濃度レベル S : フォーマットファイルの設定に従う 省略 : プリンタの設定に従う
cc(印字速度) | 数値 : 速度レベル GetPrintSpeedSettingsメソッドで取得した印字速度レベルのいずれかを指定します。 S : フォーマットファイルの設定に従う 省略 : プリンタの設定に従う

"print_offset"

String

印字位置の補正値をカンマ区切りで指定します。形式は"±aaaa,±bbbb"です。

±aaaa : 縦方向の補正値(dot単位)

±bbbb : 横方向の補正値(dot単位)

例外

FUNC-4

引数の値が不正です

SMAPRI-1

プリンタが設定されていません。

SMAPRI-2

フォーマットが設定されていません。

SMAPRI-6

印刷に失敗しました。

SMAPRI-7

プリンタと接続していません。

SMAPRI-14

不正なフォーマットIDです。

使用例

SmaPri sm;

Button btnPrintFormat {
 X = 10;
 Y = 40;
 Width = 50;
 Height = 20;
 Title = "Print format";
 Function OnTouch(e) {
  var item = new SmaPriInputItem[2];
  item[0].FormatId = 1;
  item[0].PrintNum = 1;
  item[0].SetData("文字列1", "ABCD");
  item[0].SetData("バーコード1", "hello world!");

  item[1].FormatId = 2;
  item[1].PrintNum = 1;
  item[1].SetData("固定グラフィック", "http://192.168.1.15/image/sample.bmp");
  item[1].SetData("切替グラフィック", "1");

  var extended = new Array();
  extended["print_operation"] = "1,3,3";
  extended["print_offset"] = "50,50";

  ^.sm.PrintFormat(item, extended);
 }
}

関連項目

RegisterFormat、PreviewFormat、GetPrintSpeedSettings、GetPrintDepthSettings、GetPrintCutSettings、GetPrintOffsetSettingsメソッド

SmaPriInputItem.SetDataメソッド


SmaPri.RegisterFormatメソッド

説明

SmaPriのフォーマットファイル(*.spfmtz)を登録します。

フォーマットファイルは、Webサーバー上、あるいは端末のストレージ上のファイルの場所をURLで指定するか、バイナリデータをBase64形式の文字列で指定します。

登録したフォーマットファイルは端末のストレージ上に保存され、次回のBiz/Browser起動時にもそのフォーマットファイルの情報を使用します。

formatにURLを指定した場合、フォーマットファイルが更新されているかどうかを比較し、更新されていなければダウンロードしません。

更新されているかどうかは、ファイルの最終更新日とファイルサイズのどちらかが異なっているかどうかで判断します。

URLがWebサーバー上のファイルを指している場合、ファイルの最終更新日として、HTTPのHEADメソッドで取得したレスポンスヘッダのLast-Modifiedの値を使用します。ファイルサイズにはContent-Lengthの値を使用します。

詳しい使用方法についてはこちらを参照してください。

Android版
Biz/Browser HT ver 1.2.6より、Android11以降の端末でアプリケーション専用ディレクトリ以外のディレクトリにあるファイルにアクセスする場合、OSに対してユーザー操作で許可をとる必要があります。
詳しくはAndroid11以降のファイルアクセスを参照してください。

呼出形式

sm.RegisterFormat(format);

戻り値

なし

引数

String format

フォーマットファイルのURL、もしくはフォーマットファイルのバイナリデータをBase64形式で表現した文字列

例外

FUNC-4

引数の値が不正です

SMAPRI-5

フォーマットの登録に失敗しました。

SMAPRI-15

印刷中です。

使用例

SmaPri sm;

Button btnRegisterFormat {
 X = 10;
 Y = 40;
 Width = 50;
 Height = 20;
 Title = "Register format";
 Function OnTouch(e) {
  ^sm.RegisterFormat("http://192.168.1.15/format/sample.spfmtz");
 }
}

関連項目

PrintFormatメソッド


SmaPri.SendCommandメソッド

説明

プリンタに印字コマンドを送信します。

コマンドの送信に成功すると、Root.SmaPriPrintCommandFinishedイベントが発生します。送信後にエラーが発生するとRoot.SmaPriPrintCommandFailedイベントが発生します。

呼出形式

sm.SendCommand(command, commandType [, extraParams]);

戻り値

なし

引数

String command

印字コマンド

コマンドの種類はcommandTypeで指定します。

Integer commandType

commandの内容を示すコマンドタイプ

下記の値のいずれかとなります。

定数 | 値 | 説明
SmaPri.CommandTypeText | 0 | コマンドをテキストで指定します。
SmaPri.CommandTypeBase64 | 1 | コマンドのバイナリデータをBase64形式の文字列で指定します。
SmaPri.CommandTypeURL | 2 | コマンドのバイナリデータが保存されたファイルをURLで指定します。 http(s)://,file://プロトコルを指定できます。

Array extraParams

拡張パラメーターを指定します

引数のArrayのキー(文字列)に設定名を、値に設定値を格納します。

キー(文字列) | 値の型 | 説明
"escape_character" | String | commandTypeがSmaPri.CommandTypeTextの場合に、コマンドの区切り文字(0x1B)に置き換える文字(列)を指定します。 指定しない場合は「^」を区切り文字に置き換えます。
"tc_character" | Number | 伝送制御文字(STX/ETX)を自動で付加するかどうかを指定します。自動で付加する場合は$TRUE、付加しない場合は$FALSEを指定します。 指定しない場合は、「プリンタ設定」の「伝送制御キャラクタ付加」の設定に従います。 「プリンタ設定」についてはこちらを参照してください。

例外

FUNC-4

引数が不正です

SMAPRI-1

プリンタが設定されていません。

SMAPRI-7

プリンタと接続していません。

SMAPRI-8

コマンドの送信に失敗しました。

使用例

/*ABCという文字列を印字する*/
sm.SendCommand("^A^V200^H200^%0^P0^L030^X21,ABC^Q1^Z", SmaPri.CommandTypeText);

関連項目


SmaPri.SendRawDataメソッド

説明

プリンタにデータを送信し、プリンタからデータを受信します。

データの送信に成功すると、Root.SmaPriPrintSendDataFinishedイベントが発生します。プリンタから受信したデータは、イベントオブジェクトから取得します。

送信後にエラーが発生するとRoot.SmaPriPrintSendDataFailedイベントが発生します。

呼出形式

sm.SendRawData(data [, extraParams]);

戻り値

なし

引数

String data

送信データをBase64形式の文字列で指定します。

Array extraParams

拡張パラメーターを指定します

引数のArrayのキー(文字列)に設定名を、値に設定値を格納します。

キー(文字列) | 値の型 | 説明
"byte_count" | Number | 受信データサイズを指定します。 指定したバイト数のデータを受信するまで受信します。 省略した場合はすべてのデータを受信します。
"termination_data" | String | 受信末端データをBase64形式の文字列で指定します。 指定データに一致するデータを受信するまで受信します。

"byte_count"と"termination_data"の両方を指定した場合は、どちらかの条件を満たすまで受信します。

例外

FUNC-4

引数が不正です

SMAPRI-1

プリンタが設定されていません。

SMAPRI-7

プリンタと接続していません。

SMAPRI-9

データの送信に失敗しました。

使用例

/*プリンタの設定を取得します*/
var data = new ByteArray(0x12, 0x50, 0x42, 0x2C, 0x43, 0x41, 0x04);
var params = new Array;
params["termination_data"] = Base64Encoder.Convert(new ByteArray(0x03));
sm.SendRawData(Base64Encoder.Convert(data), params);

関連項目


SmaPriイベント

API version 23

イベント

iOSAndroidWindows

SmaPriクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


SmaPriBluetoothクラス

Object
 | SmaPriBluetooth

SmaPri Libraryを使用してBluetoothデバイスの検索を行います。

一部の機能はRuntimeクラスによるBluetoothデバイス制御と共通の処理を行います。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。


SmaPriBluetoothプロパティ

API version 23

プロパティ

iOSAndroidWindows

SmaPriBluetoothクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
23 | IsDiscovering | R | boolean | Bluetoothデバイスを検索中かどうか

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


SmaPriBluetooth.IsDiscoveringプロパティ

Bluetoothデバイスを検索中かどうかを示します。

このプロパティは読み込み専用で変更することはできません。


SmaPriBluetoothメソッド

API version 23

メソッド

iOSAndroidWindows

SmaPriBluetoothクラスには以下のメソッドが定義されています。

API | 名前 | 概要
23 | CreateBond | Bluetoothデバイスとペアリングを実行します。
23 | Discover | Bluetoothデバイスを検索します。
23 | GetBondedDevices | ペアリング済みのBluetoothデバイスを取得します。

クラス概要

基本クラスのメソッド


SmaPriBluetooth.CreateBondメソッド

API version 23

SmaPriBluetooth.CreateBondメソッド変更履歴

iOSAndroidWindows

説明

指定したデバイスIDのデバイスに対してボンディング(ペアリング)を開始します。

このメソッドはボンディング処理を開始した直後に処理を返します。処理の終了を待機しません。

ボンディングの成功/失敗はBluetoothBondingFinishedイベントを使ってハンドリングします。

pinでPINコードを指定した場合、もしくは「プリンタ設定」で「自動ペアリング」がオンになっている場合は、PINコードを自動で入力します。

そうでない場合、ボンディングに必要なPINコードの入力や互いのデバイス間でのPINコードの確認作業は、ユーザーの操作が必要です。

この時のダイアログはOSから表示されます。

「プリンタ設定」に関してはこちらを参照してください。

呼出形式

sb.CreateBonding( deviceId [, pin] )

戻り値

なし

引数

String deviceId

BDアドレスを指定します。(BDアドレスの形式はMACアドレスと同じです)

String pin

PINコードを指定します。

例外

RTM-47

位置情報へのアクセスに失敗しました。

RTM-54

端末のBluetooth機能へのアクセスに失敗しました。

RTM-83

Bluetoothが有効になっていません。

RTM-84

Bluetoothの使用が許可されていません。OSの設定でBluetoothの使用を許可してください。 *1

RTM-113

Bluetoothデバイス制御はサポートされていません。

RTM-117

現在ボンディング中です。

RTM-118

既にボンディング済です。

使用例

SmaPriBluetooth sb;

Function Start() {
    try {
        /* Bluetoothデバイスのスキャン開始 */
        var devices = ^.sb.Discover(10, $FALSE);
        for (var i = 0; i < devices.length; i++) {
            if (devices[i].Name == "SATO Printer") {
                ^.sb.CreateBond(devices[i].DeviceId);
            }
        }
    } catch(e) {
        MessageBox(e.Message);
    }
}

Function OnBluetoothBondingFinished(e) {
    if (e.bonded) {
        //.MessageBox("ボンディングに成功しました。");
    } else {
        //.MessageBox("ボンディングに失敗しました。");
    }
}

関連項目

Discover、GetBondedDevicesメソッド

変更履歴
*1　API version 26で追加されました。


SmaPriBluetooth.Discoverメソッド

API version 23

SmaPriBluetooth.Discoverメソッド変更履歴

iOSAndroidWindows

説明

Bluetoothデバイスを検索し、検索結果のデバイスを取得します。

呼出形式

var devices = sb.Discover( [timeoutSec [, isAsync]] );

戻り値

下記の子オブジェクトを持つRecordの配列が返ります。

型

名前

説明

String

DeviceId

BluetoothデバイスのBDアドレスが格納されます。

(BDアドレスの形式はMACアドレスと同じです)

String

Name

Bluetoothデバイスの名称が格納されます。

Number

ConnectableAsBluetoothClassic

Bluetooth Classicデバイスとして接続できるデバイスであれば$TRUEが、接続できなければ$FALSEが格納されます。

Number

ConnectableAsBluetoothLE

BLE(Bluetooth Low Energy)デバイスとして接続できるデバイスであれば$TRUEが、接続できなければ$FALSEが格納されます。

Number

HasRssi

RSSI値(Received Signal Strength Indication)を持つ場合は$TRUEが、持たない場合は$FALSEが格納されます。

BLEデバイスでも稀にRSSI値を持たないものがあります。

Number

Rssi

HasRssiが$TRUEの場合、RSSI値が格納されます。単位はdBmです。

HasRssiが$FALSEの場合、このオブジェクトは付加されません。

Number

HasTxPowerLevel

送信出力値を持つ場合は$TRUEが、持たない場合は$FALSEが格納されます。

Number

TxPowerLevel

HasTxPowerLevelが$TRUEの場合、送信出力値が格納されます。単位はdBmです。

HasTxPowerLevelが$FALSEの場合、このオブジェクトは付加されません。

Array

ServiceUuidList

アドバタイズされているサービス一覧が格納されます。

なお、アドバタイズされていないだけで使用できるサービスがある場合があります。

Array

ManufacturerSpecificDataList

メーカー固有の情報(Manufacturer Specific Data)が格納されます。

下記Recordの配列となります。

型 | 名前 | 説明
Number | CompanyId | メーカー固有のID
ByteArray | Data | Manufacturer Specific Dataのバイト列

Array

ServiceDataList

Service Dataの情報が格納されます。

下記Recordの配列となります。

型 | 名前 | 説明
String | uuid | サービスのUUID
ByteArray | Data | Service Dataのバイト列

引数

integer timeoutSec

検索を行う時間を秒単位で指定します。

省略した場合、呼び出し時点で見つかっているデバイスを取得します。

boolean isAsync

非同期で検索を行うかどうかを指定します。

$TRUEを指定するとメソッドはすぐに処理を返し、バックグラウンドで検索を行います。

$FALSEを指定するとtimeoutSecで指定した秒数が経過するまでメソッドは処理を返さず、時間経過後は検索結果のデバイスを返します。

例外

RTM-47

位置情報へのアクセスに失敗しました。

RTM-83

Bluetoothが有効になっていません。

RTM-84

Bluetoothの使用が許可されていません。OSの設定でBluetoothの使用を許可してください。 *1

SMAPRI-18

BluetoothDeviceの検索に失敗しました。

使用例

SmaPriBluetooth sb;

Form form1 {
    Width = 424;
    Height = 320;

    Button btnStartDiscover {
        X = 16;
        Y = 16;
        Width = 120;
        Height = 40;
        Title = "デバイススキャン開始";

        Function OnTouch( e ) {
                try {
                    /* Bluetoothデバイスのスキャン開始 */
                    ^.sb.Discover(10, $TRUE);
                } catch(e) {
                    MessageBox(e.Message);
                }
        }
    }

    Button btnGetDeviceList {
        X = 184;
        Y = 16;
        Width = 120;
        Height = 40;
        Title = "デバイスリスト取得";

        Function OnTouch( e ) {
            var devices = ^.sb.Discover();
            for (var i = 0; i < devices.length; i++) {
                print(devices[i].DeviceId + "\n");
            }
        }
    }
}

関連項目

変更履歴
*1　API version 26で追加されました。


SmaPriBluetooth.GetBondedDevicesメソッド

API version 23

SmaPriBluetooth.GetBondedDevicesメソッド変更履歴

iOSAndroidWindows

説明

ボンディング(ペアリング)済みデバイスの一覧を取得します。

呼出形式

var devices = sb.GetBondedDevices()

戻り値

デバイス情報を格納したRecordの配列を返します。

Recordには下記オブジェクトが含まれます。

型 | 名前 | 説明
String | DeviceId | BDアドレスが格納されます。 (BDアドレスの形式はMACアドレスと同じです)
String | Name | 対象のBluetoothデバイスの名称が格納されます。
Number | ConnectableAsBluetoothClassic | Bluetooth Classicデバイスとして接続できるデバイスであれば$TRUEが、接続できなければ$FALSEが格納されます。
Number | ConnectableAsBluetoothLE | BLE(Bluetooth Low Energy)デバイスとして接続できるデバイスであれば$TRUEが、接続できなければ$FALSEが格納されます。
Number | HasRssi | RSSI値(Received Signal Strength Indication)を持つ場合は$TRUEが、持たない場合は$FALSEが格納されます。 BLEデバイスでも稀にRSSI値を持たないものがあります。
Number | Rssi | HasRssiが$TRUEの場合、RSSI値が格納されます。単位はdBmです。 HasRssiが$FALSEの場合、このオブジェクトは付加されません。
Number | HasTxPowerLevel | 送信出力値を持つ場合は$TRUEが、持たない場合は$FALSEが格納されます。
Number | TxPowerLevel | HasTxPowerLevelが$TRUEの場合、送信出力値が格納されます。単位はdBmです。 HasTxPowerLevelが$FALSEの場合、このオブジェクトは付加されません。
Array | ServiceUuidList | アドバタイズされているサービス一覧が格納されます。 なお、アドバタイズされていないだけで使用できるサービスがある場合があります。

引数

なし

例外

RTM-47

位置情報へのアクセスに失敗しました。

RTM-83

Bluetoothが有効になっていません。

RTM-84

Bluetoothの使用が許可されていません。OSの設定でBluetoothの使用を許可してください。 *1

使用例

SmaPriBluetooth sm;

Form form1 {
    Width = 424;
    Height = 320;

    Button btnGetBondedDeviceList {
        X = 16;
        Y = 16;
        Width = 120;
        Height = 40;
        Title = "デバイスリスト取得";

        Function OnTouch( e ) {
            try {
                var devices = ^.sb.GetBondedDevices();
                for (var i = 0; i < devices.length; i++) {
                    print(devices[i].DeviceId + "\n");
                 }
            } catch(e) {
                MessageBox(e.Message);
            }
        }
    }
}

関連項目

CreateBondメソッド

変更履歴
*1　API version 26で追加されました。


SmaPriBluetoothイベント

API version 23

イベント

iOSAndroidWindows

SmaPriBluetoothクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


SmaPriInputItemクラス

Object
 | SmaPriInputItem

SmaPri.PrintFormatメソッドに指定する印刷内容を設定します。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。


SmaPriInputItemプロパティ

API version 23

プロパティ

iOSAndroidWindows

SmaPriInputItemクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
23 | FormatId | CRW | integer |  | 対象となるフォーマットの呼び出し番号
23 | JobName | CRW | String |  | 印刷ジョブ名
23 | PrintNum | CRW | integer | 1 | 印刷枚数

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


SmaPriInputItem.FormatIdプロパティ

印刷対象のフォーマット呼び出し番号を指定します。


SmaPriInputItem.JobNameプロパティ

印刷ジョブ名を指定します。指定したジョブ名はRoot.SmaPriPrintFinishedイベントのイベントオブジェクトで使用されます。

空白の場合は、FormatIdプロパティで指定したレイアウトのレイアウト名となります。


SmaPriInputItem.PrintNumプロパティ

印刷枚数を指定します。デフォルトは1です。


SmaPriInputItemメソッド

API version 23

メソッド

iOSAndroidWindows

SmaPriInputItemクラスには以下のメソッドが定義されています。

API | 名前 | 概要
23 | GetData | 設定した発行データを取得します。
23 | GetVisibility | 設定した発行データについて、印字するかどうかを取得します。
23 | RemoveData | 設定した発行データを削除します。
23 | SetData | 発行データを設定します。

クラス概要

基本クラスのメソッド


SmaPriInputItem.GetDataメソッド

説明

設定済みの発行データから、印刷内容を取得します。

呼出形式

var data = inputItem.GetData( name );

戻り値

印刷内容の文字列が返ります。

引数

String name

印刷項目名を指定します。

例外

SMAPRI-11

印刷項目が見つかりません。

使用例

var item = new SmaPriInputItem[1];
item[0].FormatId = 1;
item[0].PrintNum = 1;
item[0].SetData("文字列1", "ABCD");
item[0].SetData("バーコード1", "hello world!");

print("文字列1:", item[0].GetData("文字列1"), " 印字:", item[0].GetVisibility()?"印字する":"印字しない", "\n");

関連項目

SetDataメソッド


SmaPriInputItem.GetVisibilityメソッド

説明

設定済みの発行データの印刷項目を印字するかどうかを取得します。

呼出形式

var visiblity = inputItem.GetVisibility( name );

戻り値

印字する場合は$TRUE、印字しない場合は$FALSEが返ります。

引数

String name

印刷項目名を指定します。

例外

SMAPRI-11

印刷項目が見つかりません。

使用例

var item = new SmaPriInputItem[1];
item[0].FormatId = 1;
item[0].PrintNum = 1;
item[0].SetData("文字列1", "ABCD");
item[0].SetData("バーコード1", "hello world!");

print("文字列1:", item[0].GetData("文字列1"), " 印字:", item[0].GetVisibility()?"印字する":"印字しない", "\n");

関連項目

SetDataメソッド


SmaPriInputItem.RemoveDataメソッド

説明

設定済みの発行データから、指定した印刷項目の印刷内容を削除します。

呼出形式

inputItem.RemoveData( name );

戻り値

なし

引数

String name

印刷項目名を指定します。

例外

なし

使用例

var item = new SmaPriInputItem[1];
item[0].FormatId = 1;
item[0].PrintNum = 1;
item[0].SetData("文字列1", "ABCD");
item[0].SetData("バーコード1", "hello world!");

item[0].RemoveData("文字列1");

関連項目

SetDataメソッド


SmaPriInputItem.SetDataメソッド

説明

印刷用の発行データを設定します。

設定した発行データをSmaPri.PrintFormatメソッドに渡して印刷を実行します。

詳しい使用方法についてはこちらを参照してください。

呼出形式

inputItem.SetData( name , data [, visibility] );

戻り値

なし

引数

String name

印刷項目名を指定します。

既に設定した印刷項目名を指定した場合は、印刷内容は上書きされます。

String data

印刷内容を指定します。

指定すべき内容は項目によって異なります。また、入力できない項目の場合、この引数は無視されます。

boolean visibility

$TRUEを指定すると印刷項目を印字します。$FALSEを指定すると印字しません。

例外

なし

使用例

SmaPri sm;

Button btnPrintFormat {
 X = 10;
 Y = 40;
 Width = 50;
 Height = 20;
 Title = "Print format";
 Function OnTouch(e) {
  var item = new SmaPriInputItem[2];
  item[0].FormatId = 1;
  item[0].PrintNum = 1;
  item[0].SetData("文字列1", "ABCD");
  item[0].SetData("バーコード1", "hello world!");

  item[1].FormatId = 2;
  item[1].PrintNum = 1;
  item[1].SetData("固定グラフィック", "http://192.168.1.15/image/sample.bmp");
  item[1].SetData("切替グラフィック", "1");

  var extended = new Array();
  extended["print_operation"] = "1,3,3";
  extended["print_offset"] = "50,50";

  ^.sm.PrintFormat(item, extended);
 }
}

関連項目

SmaPri.PrintFormat、SmaPri.GetFormatInfo、SmaPri.GetInputItem、SmaPri.GetPrintItemメソッド


SmaPriInputItemイベント

API version 23

イベント

iOSAndroidWindows

SmaPriInputItemクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


SmaPriPrinterクラス

Object
 | SmaPriPrinter

サトー製プリンタとの接続や、プリンタ情報の取得を行うクラスです。

本機能の詳細、具体的な印刷までの手順に関してはこちらを参照してください。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。


SmaPriPrinterプロパティ

API version 23

プロパティ

iOSAndroidWindows

SmaPriPrinterクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
23 | Address | R | String |  | プリンタのアドレス
23 | DeviceType | R | integer | -1 | プリンタタイプ
23 | IsConnected | R | boolean | false | プリンタと接続中かどうか
23 | IsCRCEnabled | R | boolean | false | CRCチェックが有効かどうか
23 | Protocol | R | integer | -1 | プリンタとの通信プロトコル

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


SmaPriPrinter.Addressプロパティ

プリンタのアドレスを示します。

このプロパティは読み込み専用で変更することはできません。


SmaPriPrinter.DeviceTypeプロパティ

プリンタのタイプを示します。下記の値のいずれかになります。

定数 | 値 | 説明
SmaPriPrinter.DeviceTypeNone | -1 | プリンタ未指定
SmaPriPrinter.DeviceTypeBluetooth | 0 | Bluetoothで接続するプリンタ
SmaPriPrinter.DeviceTypeTcp | 1 | ネットワーク上のプリンタ

このプロパティは読み込み専用で変更することはできません。


SmaPriPrinter.IsConnectedプロパティ

プリンタと接続しているかどうかを示します。

このプロパティは読み込み専用で変更することはできません。


SmaPriPrinter.IsCRCEnabledプロパティ

プリンタへのデータ送信時のCRCチェックが有効かどうかを示します。

このプロパティは読み込み専用で変更することはできません。


SmaPriPrinter.Protocolプロパティ

プリンタの通信プロトコル(プリンタ機種)を示します。下記の値のいずれかになります。

定数 | 値 | 説明
SmaPriPrinter.ProtocolStatusNone | -1 | 印刷するプリンタが指定されていない
SmaPriPrinter.ProtocolStatus3 | 0 | ステータス3
SmaPriPrinter.ProtocolStatus3Lapin | 1 | ステータス3(Lapin)
SmaPriPrinter.ProtocolStatus4 | 2 | ステータス4

※Lapinは、サトーホールディングス株式会社の登録商標または商標です。

このプロパティは読み込み専用で変更することはできません。


SmaPriPrinterメソッド

API version 23

メソッド

iOSAndroidWindows

SmaPriPrinterクラスには以下のメソッドが定義されています。

API | 名前 | 概要
23 | Connect | プリンタと接続します。
23 | Disconnect | プリンタとの接続を切断します。
23 | GetStatus | プリンタステータスを取得します。
23 | SetPrinter | プリンタを指定します。

クラス概要

基本クラスのメソッド


SmaPriPrinter.Connectメソッド

API version 23

SmaPriPrinter.Connectメソッド変更履歴

iOSAndroidWindows

説明

指定済みのプリンタと接続します。

メニューの「プリンタ接続状態」で接続した場合も、本メソッドを呼び出した場合と同じ動作となります。

プリンタとBluetoothで接続する場合、「プリンタ設定」の「自動ペアリング」が有効だと、接続時にBluetoothのペアリングを実行します。

プリンタとTCPで接続する場合、「プリンタ設定」の「Wi-Fi自動ON」が有効だと、接続時にWi-Fiをオンにします。

本メソッドの呼び出しによりプリンタと接続したり、接続に失敗した場合は、Root.SmaPriPrinterConnectionChangedイベントが発生します。

詳しい使用方法についてはこちらを参照してください。

呼出形式

sp.Connect( );

戻り値

なし

引数

なし

例外

RTM-47

位置情報へのアクセスに失敗しました。

RTM-84

Bluetoothの使用が許可されていません。OSの設定でBluetoothの使用を許可してください。 *1

SMAPRI-1

プリンタが設定されていません。

SMAPRI-4

プリンタとの接続に失敗しました。

SMAPRI-12

デバイスとのペアリングに失敗しました。

使用例

SmaPriPrinter sp;

Button btnSetPrinter {
 X = 10;
 Y = 10;
 Width = 50;
 Height = 20;
 Title = "SetPrinter";
 Function OnTouch(e) {
  ^.sp.SetPrinter(SmaPriPrinter.DeviceTypeTcp, "192.168.1.15", SmaPriPrinter.ProtocolStatus4, false);
 }
}

Button btnConnect {
 X = 70;
 Y = 10;
 Width = 50;
 Height = 20;
 Title = "Connect to Printer";
 Function OnTouch(e) {
  ^.sp.Connect();
 }
}

関連項目

SetPrinter、Disconnectメソッド

変更履歴
*1　API version 26で追加されました。


SmaPriPrinter.Disconnectメソッド

説明

プリンタとの接続を切断します。

メニューの「プリンタ接続状態」で接続を切断した場合も、本メソッドを呼び出した場合と同じ動作となります。

本メソッドの呼び出しによりプリンタとの接続状態が変わった場合は、Root.SmaPriPrinterConnectionChangedイベントが発生します。

呼出形式

sp.Disconnect( );

戻り値

なし

引数

なし

例外

SMAPRI-1

プリンタが設定されていません。

使用例

Button btnConnect {
 X = 70;
 Y = 10;
 Width = 50;
 Height = 20;
 Title = "Connect to Printer";
 Function OnTouch(e) {
  ^.sp.Connect();
 }
}

Button btnDisconnect {
 X = 130;
 Y = 10;
 Width = 50;
 Height = 20;
 Title = "Disconnect printer";
 Function OnTouch(e) {
  ^.sp.Disconnect();
 }
}

関連項目

SetPrinter、Connectメソッド


SmaPriPrinter.GetStatusメソッド

説明

プリンタステータスを取得します。

呼出形式

var status = sp.GetStatus( );

戻り値

下記の子オブジェクトを持つRecordが返ります。

型 | 名前 | 説明
Number | StatusCode | プリンタステータスコード
Number | StatusType | ステータスのタイプ。Standardの場合は0、Lapinの場合は1となります。

※Lapinはサトーホールディングス株式会社の登録商標です。

引数

なし

例外

SMAPRI-1

プリンタが設定されていません。

使用例

var status = sp.GetStatus();
print("Status code:", status.StatusCode.ToString(16), "\n");

関連項目


SmaPriPrinter.SetPrinterメソッド

説明

印刷するプリンタを指定します。指定したプリンタの情報は保存され、次回起動時にも有効になります。

本メソッドで指定したプリンタ情報は「プリンタ設定」にも反映されます。

また、「プリンタ設定」でプリンタを指定した場合も本メソッドを呼び出した場合と同じ動作になります。

詳しい使用方法についてはこちらを参照してください。

呼出形式

sp.SetPrinter(type, address [ ,protocol [, isCrc]] );

戻り値

なし

引数

integer type

プリンタタイプ。下記の値のいずれかとなります。

定数 | 値 | 説明
SmaPriPrinter.DeviceTypeNone | -1 | 設定済みのプリンタタイプから変更しません
SmaPriPrinter.DeviceTypeBluetooth | 0 | Bluetoothで接続するプリンタ addressにはBDアドレスを指定します。
SmaPriPrinter.DeviceTypeTcp | 1 | ネットワーク上のプリンタ addressにはIPアドレス(IPv4)を指定します。

String address

プリンタのアドレス

空白の場合は設定済みのアドレスから変更しません。

typeがSmaPriPrinter.DeviceTypeNone以外の場合にアドレスを空白にすると、FUNC-4例外が発生します。

IPアドレスを指定する場合、ポート番号を省略すると、「プリンタ設定」の「TCPポート」の値を使用します(「TCPポート」のデフォルトは9100です)。

IPアドレスと一緒にポート番号を指定した場合は「TCPポート」に反映されます。

integer protocol

プリンタ機種(通信プロトコル)

下記の値のいずれかとなります。

定数 | 値 | 説明
SmaPriPrinter.ProtocolStatus3 | 0 | ステータス3
SmaPriPrinter.ProtocolStatus3Lapin | 1 | ステータス3(Lapin)
SmaPriPrinter.ProtocolStatus4 | 2 | ステータス4

※Lapinはサトーホールディングス株式会社の登録商標です。

省略時は「プリンタ設定」の「プリンタ機種」の値を使用します(「プリンタ機種」のデフォルトはSmaPriPrinter.ProtocolStatus4です)。

通信プロトコルはプリンタと一致させる必要があります。

boolean isCrc

データ送信時にCRCチェックを行うかどうかを指定します。

省略時は「プリンタ設定」の「CRC有効」の値を使用します(「CRC有効」のデフォルトは$FALSEです)。

CRCチェックを有効にすると、通信エラーで印字データが破損した場合に破損したデータを印字しなくなります。ただし、印字速度は遅くなります。

この設定はプリンタのCRCチェック機能と同じ設定にする必要があります。プリンタの設定方法はプリンタのマニュアルを参照してください。

例外

FUNC-4

引数の値が不正です

SMAPRI-1

プリンタが設定されていません。

SMAPRI-3

プリンタの設定に失敗しました。

使用例

SmaPriPrinter sp;

Button btnSetPrinter {
 X = 10;
 Y = 10;
 Width = 50;
 Height = 20;
 Title = "SetPrinter";
 Function OnTouch(e) {
  ^.sp.SetPrinter(SmaPriPrinter.DeviceTypeTcp, "192.168.1.15", SmaPriPrinter.ProtocolStatus4, false);
 }
}

Button btnConnect {
 X = 70;
 Y = 10;
 Width = 50;
 Height = 20;
 Title = "Connect to Printer";
 Function OnTouch(e) {
  ^.sp.Connect();
 }
}

関連項目

Connectメソッド


SmaPriPrinterイベント

API version 23

イベント

iOSAndroidWindows

SmaPriPrinterクラスで定義されるイベントはありません。

クラス概要

基本クラスのイベント


OCRパッケージ

文字認識の機能を扱うためのパッケージです。

クラス

API | 名前 | 説明
27 | TextRecognizer | 入力した画像内のテキストを認識するクラスです。


TextRecognizerクラス

Object
 | TextRecognizer

入力された画像内のテキストを認識し、文字列情報として出力するクラスです。

認識する文字列の言語は、英語と日本語の2種類です。


TextRecognizerプロパティ

API version 27

プロパティ

iOSAndroidWindows

TextRecognizerクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 初期値 | 説明
27 | Lang | R | integer |  | 認識を行う言語

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


TextRecognizer.Langプロパティ

コンストラクタで指定した、認識対象の言語を示します。


TextRecognizerメソッド

API version 27

メソッド

iOSAndroidWindows

TextRecognizerクラスには以下のメソッドが定義されています。

API | 名前 | 概要
27 | (コンストラクタ) | TextRecognizerオブジェクトを初期化します
27 | Process | 画像内のテキストを認識し、文字列情報を取得します

クラス概要

基本クラスのメソッド


TextRecognizerコンストラクタ

説明

TextRecognizerクラスを初期化します。

呼出形式

var recognizer = new TextRecognizer([lang])

戻り値

TextRecognizerオブジェクト

引数

integer lang

認識対象の言語

下記の値を指定します。

名前 | 値 | 説明
$EN | 1033 | 英語
$JA | 1041 | 日本語

省略時は$ENとなります。

例外

なし

使用例

var recognizer = new TextRecognizer();
var texts = recognizer.Process();

関連項目


TextRecognizer.Processメソッド

説明

入力画像内のテキストを認識し、文字列情報を返します。

呼出形式

var texts = recognizer.Process(img)

戻り値

認識結果の文字列情報を以下のRecordで返します。

型 | 名前 | 説明
String | Text | 全体のテキスト
Array | Blocks | テキストブロックの情報

テキストブロックの情報は、以下のRecordの配列となります。

型 | 名前 | 説明
String | Text | テキストブロック全体のテキスト
integer | X | テキストブロックの左上のX座標（画像内のテキストブロックの位置） imgで示す画像の左上が(0,0)となります。
integer | Y | テキストブロックの左上のY座標
integer | Width | テキストブロックの幅
integer | Height | テキストブロックの高さ
Array | Langs | テキストブロック内の言語 言語コードを示す文字列の配列です
Array | Lines | 1行毎のテキスト情報

1行毎のテキスト情報は、以下のRecordの配列となります。

型 | 名前 | 説明
String | Text | 1行分のテキスト
integer | X | 1行分のテキストの左上のX座標（画像内のテキストの位置） imgで示す画像の左上が(0,0)となります。
integer | Y | 1行分のテキストの左上のY座標
integer | Width | 1行分のテキストの幅
integer | Height | 1行分のテキストの高さ
Array | Langs | テキスト内の言語 言語コードを示す文字列の配列です

テキスト全体、テキストブロック、1行毎のテキストの関係は下図の通りです。

引数

Image img

文字認識を行う画像のImageオブジェクト

例外

OCR-1

引数が不正です

OCR-2

テキストの解析に失敗しました

使用例

var recognizer = new TextRecognizer();
var texts = recognizer.Process();
print(texts.text);

関連項目


TextRecognizerイベント

API version 27

イベント

iOSAndroidWindows

TextRecognizerクラスで定義されているイベントはありません。

クラス概要

基本クラスのイベント


プラットフォーム固有パッケージ

この章では、プラットフォームごとに固有に実装されたパッケージとクラスを利用する詳細な方法を説明します。

Android固有パッケージ

名前 | 説明
ExternalObject | 外部ライブラリとの連携のためのパッケージです


ExternalObjectパッケージ(Java連携)

ExternalObjectパッケージ(Android)

外部ライブラリとの連携のためのパッケージです。

Android標準ライブラリと連携し、Java外部オブジェクトの生成、および実行のためのクラスと、他のAndroidアプリに対しインテントを発行するためのクラスが用意されています。

クラス

PKG | 名前 | 説明
1 | ExternalObject (Java連携用) | Javaオブジェクトを保持します
1 | ExtVal (Java連携用) | Javaデータ型を一致させるためのクラスです
1 | Intent | 他のアプリに対しインテントを発行するためのクラスです
HT(10) | ExternalService | Biz/Browser SmartDeviceおよびBiz/Browser HT向けに作られたAndroidサービスと連携するためのクラスです。

セキュリティレベル

ExternalObjectパッケージの利用はセキュリティレベルによって制限されています。ExternalObjectパッケージはセキュリティレベルを0に設定することで利用できます。

セキュリティレベル1以上では、ExternalObjectパッケージのクラスをインスタンス化しようとしたときに例外が発生します。

CRSとJava間のデータ型変換

CRSからJavaオブジェクトへ値を渡す場合、また逆にJavaオブジェクトから結果を受け取る場合、それぞれの言語のデータ型に自動的に変換が行われます。

変換ルールは以下のようになります。

CRSからJavaへの値変換ルール

引数の受け渡し時やフィールドへの設定時などに適用されるルールです

◇ExtValを渡した場合

変換元(CRS) | 変換先(Java)
ExtVal.Boolean | boolean型 (プリミティブ型)
ExtVal.Char | char型 (プリミティブ型, 2byte符号付き整数, 文字表現用)
ExtVal.Byte | byte型 (プリミティブ型, 1byte符号付き整数)
ExtVal.Short | short型 (プリミティブ型, 2byte符号付き整数)
ExtVal.Int | int型 (プリミティブ型, 4byte符号付き整数)
ExtVal.Long | long型 (プリミティブ型, 8byte符号付き整数)
ExtVal.Float | float型 (プリミティブ型, 4byte単精度浮動小数点数)
ExtVal.Double | double型 (プリミティブ型, 8byte倍精度浮動小数点数)

◇CRSオブジェクトを渡した場合

変換元(CRS) | 変換先(Java)
Number | 整数値ならばint型 小数点以下の値を保つ場合double型として解釈
Date | java.util.Dateクラス
String | java.lang.Stringクラス
ByteArray | byte[]型
ExternalObject | 格納されているインスタンスのクラス
その他(nullを含む) | 例外発生(型解決不能)

JavaからCRSへの値変換ルール

メソッドの戻り値やフィールドからの取得時などに適用されるルールです。

◇プリミティブ型を受け取った場合

変換元(Java) | 変換先(CRS)
boolean型 | trueならば1, falseならば0
char型 | 整数値
byte型 | 整数値
short型 | 整数値
int型 | 整数値
long型 | 整数値 (4byte符号付き整数が表現できる範囲に切り詰められます)
float型 | Numberオブジェクト
double型 | Numberオブジェクト

◇参照型を受け取った場合

変換元(Java) | 変換先(CRS)
null値(型によらず) | null値
java.lang.String | Stringオブジェクト
byte[] | ByteArrayオブジェクト
その他オブジェクト | ExternalObjectオブジェクト

プリミティブ型とボックス化

Java言語における型は大きく分けて「プリミティブ型」と「参照型」に別れます。

ExternalObjectパッケージのJava連携機能ではExtValクラスがプリミティブ型を、ExternalObjectクラスが参照型をそれぞれラップします。

Java言語では、プリミティブ型をObject型を継承する参照型に変換することを「ボックス化(boxing)」と呼びます。

例として、int型の値をjava.lang.Integerクラスのインスタンスに変換する処理が相当します。

また、参照型をプリミティブ型に変換することを「ボックス化解除(unboxing)」と呼びます。

例として、java.lang.Doubleクラスのインスタンスをdouble型の値に変換する処理が相当します。

ボックス化及びボックス化解除は、通常Javaコンパイラによって自動的に行われるものですが、ExternalObjectのJava連携を使用する場合は明示的に行う必要があります。

CRSにおいては、ボックス化にはExtVal.Boxingメソッドを、ボックス化解除にはExternalObject.Unboxingメソッドを使用します。

Javaプリミティブ型と、それに対応するJava参照型の対応は下記のとおりです。

ボックス化,ボックス化解除におけるプリミティブ型と参照型の対応

ExtVal.Typeの値 | ExtVal.Typeが示す プリミティブ型 | 対応するJava参照型
ExtVal.Boolean | boolean型 | java.lang.Booleanクラス
ExtVal.Char | char型 | java.lang.Characterクラス
ExtVal.Byte | byte型 | java.lang.Byteクラス
ExtVal.Short | short型 | java.lang.Shortクラス
ExtVal.Int | int型 | java.lang.Integerクラス
ExtVal.Long | long型 | java.lang.Longクラス
ExtVal.Float | float型 | java.lang.Floatクラス
ExtVal.Double | double型 | java.lang.Doubleクラス

外部Jarファイルのロード

ExternalObjectパッケージではExternalObject.LoadJarメソッドを用いて外部Jarファイルをロードすることができます。

この時に指定するライブラリIDはロードされたJarファイル内のクラス情報を保持するクラスローダを管理するための値です。他のライブラリと被らない空ではない非nullの文字列を指定します。

ライブラリIDが使用されているかを調べるにはExternalObject.IsLibraryIdUsedメソッドを使用してください。

AndroidのDalvik仮想マシンはPC用(一般的なJava)のjarファイルをそのまま実行できないため、作成したjarファイルをAndroid SDK付属のツール(dxコマンド)を使用しAndroidが解釈できる形式に変換する必要があります。

ExternalObjectコンストラクタやExternalObject.InvokeStaticメソッドなどでクラスを指定する際にロード時と同じライブラリIDを指定することで、そのクラスローダからクラス情報を読み出します。

なお、クラス名(完全限定名)が同じクラス,インタフェースでもライブラリIDが異なる場合、異なる型として扱われます。

Androidが元々ロードしているクラス(java.lang.Stringやandroid.graphics.Point)等はシステムクラスローダが

管理しています。これらのクラスを利用する場合、ライブラリIDにnullを指定してください。

Androidアプリとしてのパーミッションによる制約について

Biz/Browser HTは他の一般的なAndroidアプリ同様、機能を実現するためにAndroid OSに対しパーミッションと呼ばれるものを要求します。

パーミッションはAndroidアプリがどのような機能に対してアクセスする可能性があるかを明示するもので、Androidアプリのインストール時にその一覧が表示されます。

Androidアプリは要求したパーミッション以外の機能にアクセスすることはAndroid OSによって禁止されます。

そのため、ExternalObjectクラスを用いてAndroid標準ライブラリやJarファイルの形で提供されるライブラリ等を使用する場合、Biz/Browser AIに付与されているパーミッションで可能な範囲の処理となっている必要があります。

ライブラリを使用する前に予め必要となるパーミッションをご確認下さい。

Biz/Browser HTがAndroidOSに対して要求するパーミッションはAndroid版の特徴と制約に記載されています。

引数の指定方法

Javaクラスのコンストラクタやメソッドの引数に指定できるものには、CRSの一般的な方やリテラル、ExternalObjectオブジェクト、ExtValオブジェクトがあります。

引数はCRSとJava間の型変換のルールに従いJavaプリミティブ型またはJava参照型に渡されます。

例）

数値リテラルをそのまま指定する

var extobj = new ExternalObject("java.util.Random", null, 999);
var ret = extobj.Invoke("nextInt", 100);
print(ret, "\n");

文字列型の変数を指定する

var str = "TMP";
var ret = ExternalObject.InvokeStatic("java.lang.System", null, "getenv", str);
print(ret, "\n");

ExtValクラスを使ってJavaプリミティブ型を指定する

var v = new ExtVal(true, ExtVal.Boolean);
var ret = ExternalObject.InvokeStatic("java.lang.Boolean", null, "toString", v);
print(ret, "\n");

ExternalObjectクラスを使ってJava参照型を指定する

var v1 = new ExternalObject("android.graphics.Point", null, 10, 20);
var v2 = new ExternalObject("android.graphics.Point", null, 30, 40);
var ret = v1.Invoke("equals", v2);
print(ret, "\n");

ExternalObject.Castメソッドを使って型変換したJava参照型を指定する

var extobj1 = new ExternalObject("java.io.FileOutputStream", null, "/sdcard/test.txt");
var extobj2 = new ExternalObject("java.io.BufferedOutputStream", null, extobj1.Cast("java.io.OutputStream"));
/* … */
extobj2.Invoke("close");
extobj1.Invoke("close");

値に変換できないその他のCRSオブジェクトや参照を指定した場合はエラーになります。

コンストラクタ、メソッドの呼び出しでは、呼び出し先で定義されているすべての引数の型と完全に一致している必要があります。（参照型、値型の違いも含む）

参照型の場合、要求されているクラスの派生クラスを渡す場合は明示的にExternalObject.Castメソッドを呼び出し基底クラスへの参照に変換する必要があります。

また、null値を指定する場合、ExternalObject.NullRefメソッドを用いて型情報を持つnull参照を作成する必要があります。

プリミティブ型の場合、暗黙的な値のワイドニング変換、ナローイング変換は行われません。ExtValオブジェクトを用いて明示的に要求されている型を指定してください。

ボックス化(boxing)や参照型のボックス化解除(unboxing)は明示的に行う必要があります。ボックス化及びボックス化解除につきましてはプリミティブ化とボックス化を参照してください。

クラス名、メソッド名、すべての引数の型が一致しない場合は、呼び出し先を見つけることができずにエラーとなります。

ユーザー例外の発生

ExternalObject.Invokeメソッド、またはExternalObject.InvokeStaticメソッドでは、Javaクラス側で発生した例外を捕捉することができます。

対象となるメソッド内で例外をスローすると、Biz/BrowserではInvokeおよびInvokeStaticに失敗したことを示すEXTOBJ-4例外が発生します。

CRSの例外オブジェクトには子オブジェクトExtExceptionが付加されます。ExtExceptionはJava側でスローした例外を保持するExternalObjectオブジェクトです。

この機構によりCRSからJavaの例外クラスにアクセスして情報を取得することができます。

例）例外を捕捉

try {
    var extobj = ExternalObject.InvokeStatic("sampleNS.SampleClass", "sampleLib");
    extobj.Invoke("SampleMethod");
} catch (e) {
    if (e.Method == "EXTOBJ" && e.Code == 4) {
        MessageBox(e.ExtException.Invoke("toString"));
    }
}

なお、EXTOBJ-4例外以外でもEXTOBJ例外オブジェクトの子オブジェクトとしてExtExceptionが付加される場合があります。

ExtExceptionが付加されているかを調べるにはObject.FindChildを使用します。

ExternalObject(Java連携)のアーキテクチャ

Biz/Browser HTは一般的なAndroidアプリケーションと同じくDalvik仮想マシンまたはART上(一部ネイティブコード)で動作しています。

そのため、ExternalObjectのJava連携機能ではJavaの機能の一部であるリフレクションを用いることでJavaのオブジェクトを操作しています。

JavaオブジェクトはBiz/Browserと同じメモリ空間に作成されます。

そのため、Javaオブジェクト内で大量のメモリ確保を行った場合Biz/Browser自体がメモリ不足で停止する可能性がありますためご注意ください。

また、Biz/Browserの動作保護のため、jp.co.opst.bizsd名前空間のオブジェクトに対する操作を禁止しています。

この名前空間のオブジェクトに対し操作を行った場合、EXTOBJ-11例外が発生します。

実行ログ出力

Java連携機能はデバッグ機能としてログ出力機能を持っています。

“/sdcard/Android/data/jp.co.opst.bizht.v1/files”フォルダに".logging.on"(ファイル名先頭のドットにご注意ください)という名前のファイルを配置するとBiz/Browserは同じディレクトリに”ExternalObject.log”という実行ログファイルを出力します。”.logging.on”ファイルはファイルさえあれば0バイトでも構いません。


ExternalObjectクラス(Java連携)

Android

Object
 | ExternalObject

Javaオブジェクトを保持するクラスです。

Javaオブジェクトに一対一で対応し、Javaインスタンスの生成と消滅、Javaのプロパティやメソッドへのアクセス機能を提供します。

CRSプログラムによるJavaオブジェクトの作成のほか、Javaメソッドの呼び出しの結果として返されるJavaオブジェクトにも使用されます。

ExternalObjectクラスのメソッドの呼び出しで、ExternalObjectオブジェクトを引数として使用することも可能です。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。

セキュリティレベル

Biz/Browser HTでは、ExternalObjectパッケージの利用はセキュリティレベルによって制限されています。ExternalObjectパッケージはセキュリティレベルを0に設定することで利用できます。

セキュリティレベル1以上では、ExternalObjectクラスをインスタンス化しようとしたときに例外が発生します。


ExternalObjectプロパティ(Java連携)

Package version 1

プロパティ

Android

ExternalObjectクラス(Java連携)には以下のプロパティが定義されています。

PKG | 名前 | アクセス | 型 | 説明
1 | Type | R | String | Javaクラスの完全修飾名を取得します
1 | IsJavaArray | R | boolean | Javaの配列オブジェクトか否かを取得します
1 | JavaArrayLength | R | integer | Java配列オブジェクトの長さを取得します
1 | IsNullRef | R | boolean | オブジェクトがnull参照かどうかを取得します

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

クラス概要

基本クラスのプロパティ


ExternalObject.Typeプロパティ(Java連携)

Android

ExternalObjectが保持しているJavaオブジェクトのクラス名を完全修飾名で保持しています。

コンストラクタやcastメソッド等で指定したクラス名を参照できます。

本プロパティは読み取り専用です。


ExternalObject.IsJavaArrayプロパティ(Java連携)

Android

ExternalObjectが保持しているJavaオブジェクトが配列オブジェクトの場合、$TRUEが、そうでなければ$FALSEが設定されます。

本プロパティは読み取り専用です。


ExternalObject.IsNullRefプロパティ(Java連携)

Android

オブジェクトがnull参照の場合$TRUE、そうでない場合は$FALSEが設定されます。

本プロパティは読み取り専用です。


ExternalObject.JavaArrayLengthプロパティ(Java連携)

Android

ExternalObjectが保持しているJavaオブジェクトが配列オブジェクトの場合、その配列の要素数が設定されます。

また、配列オブジェクトではない場合は0が設定されます。

本プロパティは読み取り専用です。


ExternalObjectメソッド(Java連携)

Package version 1

メソッド

Android

ExternalObjectクラス(Java連携)には以下のメソッドが定義されています。

PKG | 名前 | 説明
1 | (コンストラクタ) | Javaオブジェクトを生成します
1 | GetProperty | Javaオブジェクトのフィールドの値を取得します
1 | Invoke | Javaオブジェクトのメソッドを呼び出します
1 | SetProperty | Javaオブジェクトのフィールドに値を設定します
1 | GetAt | Java配列から値を取得します
1 | SetAt | Java配列に値を設定します
1 | Cast | Javaオブジェクトを別の参照型にキャストした値を取得します
1 | IsInstanceOf | Javaオブジェクトが指定されたクラスのインスタンスか否かを取得します
1 | Unboxing | 参照型をボックス化解除(unboxing)した値を取得します

スタティックメソッド

PKG | 名前 | 説明
24 | GetClassForName | クラス名からJavaクラスオブジェクト(java.lang.Class)を取得します
1 | GetPropStatic | Javaクラスのスタティックフィールドの値を取得します
1 | InvokeStatic | Javaクラスのスタティックメソッドを呼び出します
1 | SetPropStatic | Javaクラスのスタティックフィールドに値を設定します
1 | LoadJar | 外部Jarファイルをロードします
1 | IsLibraryIdUsed | 指定したライブラリIDが使用されているかを取得します
1 | NullRef | null参照のExternalObjectインスタンスを作成します
1 | GetCurrentContext | Biz/Browserが動作しているアクティビティのコンテキストを取得します
1 | GetMessageHandler | ExternalMessageイベントを発行するために必要な メッセージハンドラを取得します。

クラス概要

基本クラスのメソッド


ExternalObjectコンストラクタ(Java連携)

Android

説明

Javaオブジェクトを生成します。

呼出形式

var extobj = new ExternalObject( className [, libraryId [, param1 [, ... ] ] ] )

戻り値

ExternalObjectオブジェクト

引数

String className

生成するJavaクラス名

名前空間を含めた完全修飾名で記述します。大文字と小文字を区別します。

配列オブジェクトを作成する場合は、型名の末尾に配列の次元数だけ文字列”[]”を付加してください。

String libraryId

Javaクラスが定義されているライブラリ

詳細は外部Jarファイルのロードを参照してください。

Object param1...n

コンストラクタの引数

配列オブジェクト以外を生成する場合

詳細は引数の指定方法を参照してください。

配列オブジェクトを生成する場合

0個以上配列の次元数以下の個数分、各次元の要素数を整数値で指定してください。

例外

EXTOBJ-1

クラス%sのコンストラクタを見つけられませんでした

EXTOBJ-2

コンストラクタ%sの呼び出しに失敗しました

EXTOBJ-8

クラス%sを見つけられませんでした

EXTOBJ-10

サポートされていないデータ型です

EXTOBJ-11

%s名前空間のオブジェクトは操作できません

EXTOBJ-14

配列の次元数が多すぎます。

EXTOBJ-15

ID”%s”のJarファイルはロードされていません

CRS-407

現在のセキュリティレベルではクラス 'ExternalObject'を利用できません

使用例

var extobj1 = new ExternalObject("android.graphics.Rect");
extobj1.Invoke("set", 0, 0, 20, 30);
var ret = extobj1.Invoke("toString");
print(ret, "\n");

var extobj2 = new ExternalObject("int[][]", 2, 3);
print(extobj2.JavaArrayLength, "\n");
print(extobj2.GetAt(0).JavaArraylength, "\n");

ExternalObject.LoadJar("sampleLib", "sampleLib.jar");
var extobj3 = new ExternalObject("sampleNS.SampleClass", "sampleLib", "test");
extobj3.SetProperty("SampleProp", new ExtVal(true, ExtVal.Boolean));
var ret = extobj3.Invoke("SampleMethod", 123);
print(ret, "\n");

関連項目

ExtValクラス


ExternalObject.GetPropertyメソッド(Java連携)

Android

説明

Javaオブジェクトのフィールドの値を取得します。

呼出形式

var ret = extobj.GetProperty( fieldName)

戻り値

Javaクラスのフィールドの値

引数

String fieldName

フィールド名

大文字と小文字を区別します。

例外

EXTOBJ-5

フィールド%sを見つけられませんでした

EXTOBJ-6

フィールド%sの取得に失敗しました

EXTOBJ-9

null参照に対する操作です

使用例

var extobj1 = new ExternalObject("android.graphics.Point", null, 10, 20);
print(extobj1.GetProperty("x"), "\n");
print(extobj1.GetProperty("y"), "\n");

var extobj2 = new ExternalObject("sampleNS.SampleClass", "sampleLib");
print(extobj2.GetProperty("SampleProp"), "\n");

関連項目

ExtValクラス

SetProperty、GetPropStaticメソッド


ExternalObject.Invokeメソッド(Java連携)

Android

説明

Javaオブジェクトのメソッドを呼び出します。

呼出形式

var ret = extobj.Invoke( methodName [, param1 [, ... ] ] )

戻り値

Javaクラスのメソッドの戻り値

引数

String methodName

メソッド名

大文字と小文字を区別します。

Object param1...n

メソッドの引数

詳細は引数の指定方法を参照してください。

例外

EXTOBJ-3

メソッド%sを見つけられませんでした

EXTOBJ-4

メソッド%sの呼び出しに失敗しました

EXTOBJ-8

クラス%sを見つけられませんでした

EXTOBJ-9

null参照に対する操作です

EXTOBJ-10

サポートされていないデータ型です

EXTOBJ-11

%s名前空間のオブジェクトは操作できません

EXTOBJ-15

ID”%s”のJarファイルはロードされていません

使用例

var extobj1 = new ExternalObject("java.util.Random");
var ret = extobj1.Invoke("nextInt", 10);
print(ret, "\n");

var extobj2 = ExternalObject.InvokeStatic("java.util.Calendar", null, "getInstance");
var ret = extobj2.Invoke("toString");
print(ret, "\n");

var extobj3 = new ExternalObject("sampleNS.SampleClass", "sampleLib");
var ret = extobj3.Invoke("sampleFunction");
print(ret, "\n");

関連項目

ExtValクラス

InvokeStaticメソッド


ExternalObject.SetPropertyメソッド(Java連携)

Android

説明

Javaオブジェクトのフィールドに値を設定します。

呼出形式

var ret = extobj.SetProperty( fieldName, value )

戻り値

なし

引数

String fieldName

フィールド名

大文字と小文字を区別します。

Object value

フィールドに設定する値

例外

EXTOBJ-5

フィールド%sを見つけられませんでした

EXTOBJ-7

フィールド%sの設定に失敗しました

EXTOBJ-9

null参照に対する操作です

EXTOBJ-10

サポートされていないデータ型です

使用例

var extobj1 = new ExternalObject("android.graphics.Point");
extobj1.SetProperty("x", 10);
extobj1.SetProperty("y", 20);
print(extobj1.Invoke("toString"));

var extobj2 = new ExternalObject("sampleNS.SampleClass", "sampleLib");
extobj2.SetProperty("SampleProp", new ExtVal(true, ExtVal.Boolean));

関連項目

ExtValクラス

GetProperty、SetPropStaticメソッド


ExternalObject.GetAtメソッド(Java連携)

Android

説明

Java配列オブジェクトの要素の値を取得します。

呼出形式

var ret = extobj.GetAt( Index )

戻り値

Java配列オブジェクトの要素の値

引数

integer Index

配列インデックスを指定します

例外

EXTOBJ-9

null参照に対する操作です

EXTOBJ-18

配列ではないオブジェクトに対する配列操作です

EXTOBJ-19

要素番号%dの取得に失敗しました

使用例

var extobj1 = new ExternalObject("java.lang.String", null, "1,2,3");
var extobj2 = extobj1.Invoke("split", ",");
print(extobj2.GetAt(0), "\n");
print(extobj2.GetAt(1), "\n");
print(extobj2.GetAt(2), "\n");

関連項目

ExtValクラス

GetProperty、GetPropStaticメソッド


ExternalObject.SetAtメソッド(Java連携)

Android

説明

Java配列オブジェクトの要素の値を設定します。

呼出形式

var ret = extobj.SetAt( index, value )

戻り値

なし

引数

integer index

配列インデックスを指定します

Object value

配列の要素に設定する値

例外

EXTOBJ-9

null参照に対する操作です

EXTOBJ-10

サポートされていないデータ型です

EXTOBJ-18

配列ではないオブジェクトに対する配列操作です

EXTOBJ-20

要素番号%dの設定に失敗しました

使用例

var extobj1 = new ExternalObject("int[]", null, 3);
extobj1.SetAt(0, 0x0010);
extobj1.SetAt(1, 0x0020);
extobj1.SetAt(2, 0x0030);

var extobj2 = new ExternalObject("java.lang.Object[][]", 2);
extobj2.GetAt(0).SetAt(new ExternalObject("java.lang.Object[]", 4);

関連項目

ExtValクラス

SetProperty、SetPropStaticメソッド


ExternalObject.Castメソッド(Java連携)

Android

説明

Javaオブジェクトへの参照を、別の型にキャストした値を取得します。

キャストによって生成されるExternalObjectオブジェクトは呼び出し元のExterernalObjectが指しているJavaオブジェクトと同じオブジェクトを参照しています。

呼出形式

var ret = extobj.Cast( className [, libraryId ] )

戻り値

キャスト後のJavaオブジェクトへの参照を格納したExternalObjectオブジェクト

（戻り値のTypeプロパティには引数classNameで指定したクラス名が設定されます）

引数

String className

キャスト先のクラス名

名前空間を含めた完全修飾名で記述します。大文字と小文字を区別します。

String libraryId

Javaクラスが定義されているライブラリ

詳細は外部Jarファイルのロードを参照してください。

例外

EXTOBJ-12

%s型から%s型にキャスト出来ません

EXTOBJ-13

クラス情報を取得できません

EXTOBJ-15

ID”%s”のJarファイルはロードされていません

使用例

var extobj1 = new ExternalObject("java.io.FileOutputStream", null, "/sdcard/test.txt");
var extobj2 = new ExternalObject("java.io.BufferedOutputStream", null, extobj.Cast("java.io.OutputStream"));
/* … */
extobj2.Invoke("close");
extobj1.Invoke("close");

関連項目

Typeプロパティ


ExternalObject.IsInstanceOfメソッド(Java連携)

Android

説明

Javaオブジェクトが指定されたクラスのインスタンスか否かを取得します。

null参照を持つExternalObjectオブジェクトに対し本メソッドを呼び出した場合、常にtrueが返されます。

呼出形式

var ret = extobj.IsInstanceOf( className [, libraryId ] )

戻り値

Javaオブジェクトが指定されたクラスのインスタンスの場合true, そうでなければfalse

引数

String className

Javaクラス名

名前空間を含めた完全修飾名で記述します。大文字と小文字を区別します。

String libraryId

Javaクラスが定義されているライブラリ

詳細は外部Jarファイルのロードを参照してください。

例外

EXTOBJ-13

クラス情報を取得できません

EXTOBJ-15

ID”%s”のJarファイルはロードされていません

使用例

var extobj1 = ExternalObject.GetCurrentContext();
if(extobj1.IsInstanceOf("android.app.Activity")){
  var extobj2 = extobj1.cast("android.app.Activity");
  /* … */
}

関連項目

Castメソッド


ExternalObject.Unboxingメソッド(Java連携)

Package version 1

ExtertnalObject.Unboxingメソッド(Java連携)

Android

説明

ExternalObjectクラスが表すJava参照型をボックス化解除(unboxing)します。

ボックス化解除につきましてはプリミティブ型とボックス化を参照してください。

呼出形式

extobj.Unboxing()

戻り値

ボックス化解除された値がExtValオブジェクトとして返ります。

引数

なし

例外

EXTOBJ-10

サポートされていないデータ型です

使用例

var extobj = ExternalObject.InvokeStatic("java.lang.Short", null, "parse", "123");
var val = extobj.Unboxing();
/* valにはshort型の値を保持しているExtValオブジェクトが格納されます */

関連項目


ExternalObject.GetClassForNameメソッド(Java連携)

Android

説明

クラス名からJavaクラスオブジェクト(java.lang.Class)を取得します。

呼出形式

var clsobj = ExternalObject.GetClassForName( className [, libraryId] )

戻り値

classNameで指定したクラスのjava.lang.Classオブジェクトを格納したExternalObjectオブジェクト

引数

String className

Javaクラス名

名前空間を含めた完全修飾名で記述します。大文字と小文字を区別します。

String libraryId

Javaクラスが定義されているライブラリ

詳細は外部Jarファイルのロードを参照してください。

例外

EXTOBJ-8

クラス%sを見つけられませんでした

使用例

ExternalObject.LoadJar("sampleLib", "sampleLib.jar");
var clsObj = ExternalObject.GetClassForName("sampleNS.SampleClass", "sampleLib");
var clsName = clsObj.Invoke("getName");
print("Class Name:", clsName);

関連項目

LoadJarメソッド


ExternalObject.GetPropStaticメソッド(Java連携)

Android

説明

Javaクラスのスタティックフィールドの値を取得します。Javaクラスのインスタンスは生成されません。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

呼出形式

var ret = ExternalObject.GetPropStatic( className, libraryId, fieldName )

戻り値

Javaクラスのフィールドの値

引数

String className

フィールドが定義されているJavaクラス名

名前空間を含めた完全修飾名で記述します。大文字と小文字を区別します。

String libraryId

Javaクラスが定義されているライブラリ

詳細は外部Jarファイルのロードを参照してください。

String fieldName

フィールド名

大文字と小文字を区別します。

例外

EXTOBJ-5

フィールド%sを見つけられませんでした

EXTOBJ-6

フィールド%sの取得に失敗しました

EXTOBJ-8

クラス%sを見つけられませんでした

EXTOBJ-9

null参照に対する操作です

EXTOBJ-11

%s名前空間のオブジェクトは操作できません

EXTOBJ-15

ID”%s”のJarファイルはロードされていません

使用例

var ret1 = ExternalObject.GetPropStatic("android.os.Build$VERSION", null, "SDK_INT");
print("SDK VERSION=", ret1, "\n");

print(ExternalObject.GetPropStatic("sampleNS.SampleClass", "sampleLib", "SampleSProp"), "\n");

関連項目

ExtValクラス

SetPropStatic、GetPropertyメソッド


ExternalObject.InvokeStaticメソッド(Java連携)

Android

説明

Javaクラスのスタティックメソッドを呼び出します。Javaクラスのインスタンスは生成されません。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

呼出形式

var ret = ExternalObject.InvokeStatic( className, libraryId, methodName [, param1 [, ... ] ] )

戻り値

Javaクラスのメソッドの戻り値

引数

String className

メソッドが定義されているJavaクラス名

名前空間を含めた完全修飾名で記述します。大文字と小文字を区別します。

String libraryId

Javaクラスが定義されているライブラリ

詳細は外部Jarファイルのロードを参照してください。

String methodName

メソッド名

大文字と小文字を区別します。

Object param1...n

メソッドの引数

詳細は引数の指定方法を参照してください。

例外

EXTOBJ-3

メソッド%sを見つけられませんでした

EXTOBJ-4

メソッド%sの呼び出しに失敗しました

EXTOBJ-8

クラス%sを見つけられませんでした

EXTOBJ-10

サポートされていないデータ型です

EXTOBJ-11

%s名前空間のオブジェクトは操作できません

EXTOBJ-15

ID”%s”のJarファイルはロードされていません

使用例

var ret = ExternalObject.InvokeStatic("java.lang.Math ", null, "pow", 2.5, 0.5);
print(ret, "\n");

var ret = ExternalObject.InvokeStatic("sampleNS.SampleClass", "sampleLib", "SampleSMethod", 123);
print(ret, "\n");

関連項目

ExtValクラス

Invokeメソッド


ExternalObject.SetPropStaticメソッド(Java連携)

Android

説明

Javaクラスのスタティックフィールドに値を設定します。Javaクラスのインスタンスは生成されません。

このメソッドはスタティックメソッドです。オブジェクトを生成せずに呼び出すことができます。

呼出形式

ExternalObject.SetPropStatic( className, libraryId, fieldName, value )

戻り値

なし

引数

String className

フィールドが定義されているJavaクラス名

名前空間を含めた完全修飾名で記述します。大文字と小文字を区別します。

String libraryId

Javaクラスが定義されているライブラリ

詳細は外部Jarファイルのロードを参照してください。

String fieldName

フィールド名

大文字と小文字を区別します。

Object value

フィールドに設定する値

例外

EXTOBJ-5

フィールド%sを見つけられませんでした

EXTOBJ-7

フィールド%sの設定に失敗しました

EXTOBJ-8

クラス%sを見つけられませんでした

EXTOBJ-10

サポートされていないデータ型です

EXTOBJ-11

%s名前空間のオブジェクトは操作できません

EXTOBJ-15

ID”%s”のJarファイルはロードされていません

使用例

ExternalObject.SetPropStatic("sampleNS.SampleClass", "sampleLib", "SampleSProp", new ExtVal(true, ExtVal.Boolean));

関連項目

ExtValクラス

GetPropStatic、SetPropertyメソッド


ExternalObject.LoadJarメソッド(Java連携)

Package version 1

ExtertnalObject.LoadJarメソッド(Java連携)

Android

説明

外部Jarファイルをロードします。

詳細につきましては外部Jarファイルのロードを参照してください。

呼出形式

extobj.LoadJar( libraryId, URL[,parentLibraryId ])

戻り値

なし

引数

String libraryId

Javaクラスが定義されているライブラリ

詳細につきましては外部Jarファイルのロードを参照してください。

String URL

Jarファイルを取得するURL

NetObject.GetメソッドのURLと同じです。

String parentLibraryId

Jarファイルが参照している既にロード済みのJarファイルをライブラリIDで指定します。

未指定または空文字列を指定した場合はシステムクラスローダ(従来通りの動作)が使用されます。

存在しないライブラリIDが指定された場合、EXTOBJ-15例外が発生します。

例外

EXTOBJ-15

ID”%s”のJarファイルはロードされていません

EXTOBJ-16

ID”%s”のJarファイルはすでにロードされています

使用例

if(!ExternalObject.IsLibraryIdUsed("sampleLib")){
  ExternalObject.LoadJar("sampleLib", "sampleLib.jar");
}
var ret = ExternalObject.InvokeStatic("sampleNS.SampleClass", "sampleLib", "SampleSMethod", 123);
print(ret, "\n");

関連項目

IsLibraryIdUsed, NetObject.Getメソッド


ExternalObject.IsLibraryIdUsedメソッド(Java連携)

Package version 1

ExtertnalObject.IsLibraryIdUsedメソッド(Java連携)

Android

説明

指定したライブラリIDが使用されているかを取得します。

詳細につきましては外部Jarファイルのロードを参照してください。

呼出形式

var ret = extobj.IsLibraryIdUsed( libraryId )

戻り値

ライブラリIDが使用されていれば$TRUEが、そうでなければ$FALSEを返します。

引数

String libraryId

Javaクラスが定義されているライブラリ

詳細につきましては外部Jarファイルのロードを参照してください。

例外

なし

使用例

if(!ExternalObject.IsLibraryIdUsed("sampleLib")){
  ExternalObject.LoadJar("sampleLib", "sampleLib.jar");
}
var ret = ExternalObject.InvokeStatic("sampleNS.SampleClass", "sampleLib", "SampleSMethod", 123);
print(ret, "\n");

関連項目

LoadJarメソッド


ExternalObject.NullRefメソッド(Java連携)

Android

説明

null参照のExternalObjectインスタンスを作成します。

呼出形式

var extobj = ExternalObject.NullRef( className [, libraryId ] )

戻り値

ExternalObjectオブジェクト

引数

String className

生成するJavaクラス名

名前空間を含めた完全修飾名で記述します。大文字と小文字を区別します。

配列オブジェクトを作成する場合は、型名の末尾に配列の次元数だけ文字列”[]”を付加してください。

String libraryId

Javaクラスが定義されているライブラリ

詳細は外部Jarファイルのロードを参照してください。

例外

EXTOBJ-8

クラス%sを見つけられませんでした

EXTOBJ-15

ID”%s”のJarファイルはロードされていません

CRS-407

現在のセキュリティレベルではクラス 'ExternalObject'を利用できません

使用例

var extobj1 = new ExternalObject("java.lang.Object[]", 2);
extobj1.SetAt(0, ExternalObject.NullRef("java.lang.Object"));

ExternalObject.LoadJar("sampleLib", "sampleLib.jar");
var extobj2 = new ExternalObject("sampleNS.SampleClass", "sampleLib", "test");
extobj2.SetProperty("SampleProp", ExternalObject.NullRef("sampleLib", "sampleNS.SampleClass2"));
print(ret, "\n");

関連項目

ExtValクラス


ExternalObject.GetCurrentContextメソッド(Java連携)

Android

説明

Biz/Browser HTが動作しているアクティビティのコンテキストを取得します。

戻り値のTypeプロパティの値は”android.content.Context”となります。

android.content.Contextクラスの詳細につきましてはAndroid Developers(Android開発者向けサイト)のリファレンスマニュアルをご参照ください。

呼出形式

var extobj = ExternalObject.GetCurrentContext()

戻り値

アクティビティのコンテキストを格納したExternalObjectオブジェクト

引数

なし

例外

CRS-407

現在のセキュリティレベルではクラス 'ExternalObject'を利用できません

使用例

var i = new ExternalObject("android.content.Intent", null);
i.Invoke("setAction", "android.intent.action.VIEW");
i.Invoke("setData", ExternalObject.InvokeStatic("android.net.Uri", null, "parse", "http://biz-browser.jp"));

var context = ExternalObject.GetCurrentContext();
context.Invoke("startActivity", i);
/*
  下記コードと同等の処理を行なっています。
  var i = new Intent("android.intent.action.VIEW", "http://biz-browser.jp");
  i.startActivity();
*/

関連項目


ExternalObject.GetMessageHandlerメソッド(Java連携)

Android

説明

Root.ExternalMessageイベントを発行するために必要となるメッセージハンドラ（android.os.Handlerインスタンス）を返します。

ExternalObject.LoadJarメソッドでロードしたライブラリなどからBiz/Browserに対しイベントを発行したい場合、このインスタンスをライブラリ側に渡して下さい。

android.os.Handlerクラスの詳細につきましてはAndroid Developers(Android開発者向けサイト)のリファレンスマニュアルをご参照ください。

呼出形式

var extobj = ExternalObject.GetMessageHandler()

戻り値

Root.ExternalMessageイベントを発行できるハンドラを格納したExternalObjectオブジェクト

引数

なし

例外

CRS-407

現在のセキュリティレベルではクラス 'ExternalObject'を利用できません

使用例

/* メッセージハンドラを取得します */
var handler = ExternalObject.GetMessageHandler();
/*
   CRS上からのメッセージ発行例です。
   Javaにおける下記のコードと等価です。
   android.os.Handler handler; // 取得したメッセージハンドラ
   android.os.Message msg = android.os.Message.obtain();
   msg.what = 0;
   msg.arg1 = 1;
   msg.arg2 = 2;
   msg.obj = "Sample Text";
   handler.sendMessage(msg);
*/
var msg = ExternalObject.InvokeStatic("android.os.Message", null, "obtain");
msg.setProperty("what", 0);
msg.setProperty("arg1", 1);
msg.setProperty("arg2", 2);
msg.setProperty("obj", new String("Sample Text"));
handler.invoke("sendMessage", msg);

関連項目

LoadJarメソッド

Root.ExternalMessageイベント


ExternalObjectイベント(Java連携)

Package version 1

イベント

Android

ExternalObjectクラス(Java連携)で定義されるイベントはありません。

クラス概要

基本クラスのイベント


ExtValクラス(Java連携)

Android

Object
 | ExtVal

CRSのデータ型とJavaのプリミティブ型を一致させるためのクラスです。

ExternalObjectクラスの各メソッドの引数に、CRSでは表現できないJavaのプリミティブ型を指定する必要がある場合に使用します。

ExtValオブジェクトを使用することで、適切なプリミティブ型の値をJavaオブジェクトに渡すことができます。

また、boxingメソッドを用いてプリミティブ型をボックス化したJavaオブジェクトを生成することができます。

デフォルトプロパティとValueType

デフォルトプロパティはValueです。ValueTypeの指定は無効です。

セキュリティレベル

Biz/Browser HTでは、ExternalObjectパッケージの利用はセキュリティレベルによって制限されています。ExternalObjectパッケージはセキュリティレベルを0に設定することで利用できます。

セキュリティレベル1以上では、ExtValクラスをインスタンス化しようとしたときに例外が発生します。


ExtValプロパティ(Java連携)

Package version 1

プロパティ

Android

ExtValクラス(Java連携)には以下のプロパティが定義されています。

PKG | 名前 | アクセス | 型 | 初期値 | 説明
1 | Type | R | integer | ExtVal.Int | Javaのプリミティブ型を示す定数
1 | Value | R | Object |  | オブジェクトの値

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


ExtVal.Typeプロパティ(Java連携)

Android

Javaのプリミティブ型を示す定数です。

以下の値を指定します。

定数 | .NET型（名前空間省略）
ExtVal.Boolean | boolean型(プリミティブ型)
ExtVal.Char | char型(プリミティブ型, 2byte符号付き整数, 文字列表現用)
ExtVal.Byte | byte型(プリミティブ型, 1byte符号付き整数)
ExtVal.Short | short型(プリミティブ型, 2byte符号付き整数)
ExtVal.Int | int型(プリミティブ型, 4byte符号付き整数)
ExtVal.Long | long型(プリミティブ型, 8byte符号付き整数)
ExtVal.Float | float型(プリミティブ型, 4byte単精度浮動小数点数)
ExtVal.Double | double型(プリミティブ型, 8byte倍精度浮動小数点数)

詳細はコンストラクタの説明を参照してください。


ExtVal.Valueプロパティ(Java連携)

Android

オブジェクトの値です。この値がJavaに渡されます。

詳細はコンストラクタの説明を参照してください。


ExtValメソッド(Java連携)

Package version 1

メソッド

Android

ExtValクラス(Java連携)には以下のメソッドが定義されています。

PKG | 名前 | 説明
1 | (コンストラクタ) | ExtValオブジェクトを初期化します
1 | SetValue | 値を設定します
1 | boxing | 値をボックス化したJavaオブジェクトを取得します

クラス概要

基本クラスのメソッド


ExtValコンストラクタ(Java連携)

Android

説明

ExtValオブジェクトを初期化します。

呼出形式

var val = new ExtVal( [ value, type ] )

戻り値

ExtValオブジェクト

引数

value

オブジェクトの値を指定します。

例えば、typeにExtVal.Intを指定する場合は、この引数には整数を指定します。

有効なデータ型は、Numberです。

指定した値はValueプロパティに設定されます。

省略した場合、0が設定されます。

integer type

Javaのプリミティブ型を指定します。

指定できる値についてはTypeプロパティを参照してください。

指定した値はTypeプロパティに設定されます。

省略した倍、ExtVal.Intが設定されます

例外

CRS-16

コンストラクタ引数が不正です

CRS-407

現在のセキュリティレベルではクラス 'ExtVal'を利用できません

使用例

var val = new ExtVal(12345, ExtVal.Short);
var ret = val.boxing().invoke("toString");
print(ret, "\n");

var extobj = new ExternalObject("SampleNS.SampleClass", "sampleLib");
extobj.SetProperty("SampleProp", new ExtVal(true, ExtVal.Boolean));

関連項目

ExternalObjectクラス

Value、Typeプロパティ

SetValueメソッド


ExtVal.SetValueメソッド(Java連携)

Android

説明

ExtValクラスの各プロパティに値を設定します。

引数の仕様など、詳細はコンストラクタの説明を参照してください。

呼出形式

val.SetValue( value, type )

戻り値

なし

引数

value

オブジェクトの値を指定します。

integer type

Javaのプリミティブ型を指定します。

例外

なし

使用例

var val = new ExtVal;
val.SetValue(true, ExtVal.Boolean);

関連項目

Value, Typeプロパティ


ExtVal.Boxingメソッド(Java連携)

Android

説明

ExtValクラスが表すJavaプリミティブ型をボックス化(boxing)します。

ボックス化につきましてはプリミティブ型とボックス化を参照してください。

呼出形式

val.Boxing()

戻り値

ボックス化された値がExternalObjectオブジェクトとして返ります。

引数

なし

例外

なし

使用例

var val = new ExtVa(123, ExtVal.Short);
var extobj = val.Boxing();
/* extobjにはjava.lang.Shortオブジェクトを保持している
    ExternalObjectオブジェクトが格納されます */

関連項目


ExtValイベント(Java連携)

Package version 1

イベント

Android

ExtValクラス(Java連携)で定義されるイベントはありません。

クラス概要

基本クラスのイベント


Intentクラス

Package version 1

Intentクラス 変更履歴

Android

Object
 | Intent

Biz/Browser HTから他のアプリに対しインテントを発行するためのクラスです。

インテントに格納される値やその値の解釈はインテントを受信したアプリごとに異なりますので、それぞれのアプリの資料をご参照ください。

また、インテントの種類によってはAndroidの制約により実行できないことがありますため、予めご確認の上ご使用ください。

CRSプログラムによるインテントの作成のほか、他のアプリからの戻り値を受け取った時に発生するイベントにもインテントが使用されます。

インテントとは

インテントとは、Android OSがサポートしている他のAndroidアプリと連携するための機構です。

この機構を使うことで他のアプリケーションに対し簡単にアクションを起こすことができます。

なお、Android SDKにおけるインテントはandroid.content.Intentクラスとして提供されています。

インテントは、大別すると「明示的インテント」と「暗黙的インテント」の二種類に分けられます。

明示的インテントは、起動する対象(アクティビティ)を直接指定して起動させるものです。

特定のアプリに対して密な連携を行う場合に使用されます。

その場合のインテントに与えるパラメータにつきましては対象となるアプリにより異なりますため、各アプリの開発者向け情報をご確認ください。

暗黙的インテントは、起動するアプリを指定せずに、URI形式で表現されるデータとそれに対するアクション(どのようなことを行いたいか)等の付加情報をパラメータとして持ち、そのパラメータの条件に一致したアプリを起動させることができます。

インテントを受け取る事ができる対象(アクティビティ)が複数存在する場合はユーザが起動するアクティビティを選択するダイアログが表示され、存在しない場合は起動に失敗します。

Biz/Browser HTではインテントのアクション(Actionプロパティに対応)、対象となるデータ(Dataプロパティに対応)をIntentクラスのコンストラクタかプロパティへの代入で指定します。

また、SetClassNameメソッドを呼び出すことで明示的インテントに、呼び出さない場合は暗黙的インテントにすることが可能です。

インテント(android.content.Intentクラス)に関する詳細な情報はAndroid Developers(Android開発者向けサイト)のリファレンスマニュアルをご参照ください。

CRSとExtra情報間のデータ型変換

CRSからExtra情報に値を格納する場合、また逆にExtra情報から値を取り出す場合、それぞれの言語のデータ型に変換が行われます。

CRSからExtra情報への値変換ルール

type引数に指定する定数 | 要求されるCRS型 | 変換後のJava型
Intent.TYPE_BOOLEAN | 整数値 | Javaのboolean型 (0またはnullならばfalse,そうでなければtrue)
Intent.TYPE_BYTE | 整数値 | Javaのbyte型
Intent.TYPE_CHAR | 整数値 | Javaのchar型
Intent.TYPE_SHORT | 整数値 | Javaのshort型
Intent.TYPE_INT | 整数値 | Javaのint型
Intent.TYPE_LONG | 整数値 | Javaのlong型
Intent.TYPE_FLOAT | Numberオブジェクト | Javaのfloat型
Intent.TYPE_DOUBLE | Numberオブジェクト | Javaのdouble型
Intent.TYPE_STRING | Stringオブジェクト | Javaのstring型
Intent.TYPE_BYTE_ARRAY | ByteArrayオブジェクト | Javaのbyte[]型
Intent.TYPE_STRING_ARRAY | String配列 | JavaのString[]型
Intent.TYPE_URI | Stringオブジェクト | Javaのandroid.net.Uri型
Intent.TYPE_PARCELABLE *1 | ExternalObjectオブジェクト(android.os.Parcelable型) | Javaのandroid.os.Parcelable 型
Intent.TYPE_SERIALIZABLE *1 | ExternalObjectオブジェクト(java.io.Serializable型) | Javaのjava.io.Serializable 型

Extra情報からCRSへの値変換ルール

type引数に指定する定数 | 要求されるJava型 | 変換後のCRS型
Intent.TYPE_BOOLEAN | Javaのboolean型 | 整数値 (trueならば1, falseならば0)
Intent.TYPE_BYTE | Javaのbyte型 | 整数値
Intent.TYPE_CHAR | Javaのchar型 | 整数値
Intent.TYPE_SHORT | Javaのshort型 | 整数値
Intent.TYPE_INT | Javaのint型 | 整数値
Intent.TYPE_LONG | Javaのlong型 | 整数値 (4byte符号付き整数が表現できる範囲に切り詰められます)
Intent.TYPE_FLOAT | Javaのfloat型 | Numberオブジェクト
Intent.TYPE_DOUBLE | Javaのdouble型 | Numberオブジェクト
Intent.TYPE_STRING | Javaのstring型 | Stringオブジェクト
Intent.TYPE_BYTE_ARRAY | Javaのbyte[]型 | ByteArrayオブジェクト
Intent.TYPE_STRING_ARRAY | JavaのString[]型 | String配列
Intent.TYPE_URI | Javaのandroid.net.Uri型 | Stringオブジェクト
Intent.TYPE_PARCELABLE *1 | Javaのandroid.os.Parcelable 型 | ExternalObjectオブジェクト(android.os.Parcelable型)
Intent.TYPE_SERIALIZABLE *1 | Javaのjava.io.Serializable 型 | ExternalObjectオブジェクト(java.io.Serializable型)

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。

セキュリティレベル

Biz/Browser VおよびBiz/Browser HTでは、ExternalObjectパッケージの利用はセキュリティレベルによって制限されています。ExternalObjectパッケージはセキュリティレベルを0に設定することで利用できます。

セキュリティレベル1以上では、Intentクラスをインスタンス化しようとしたときに例外が発生します。

プロパティ | メソッド | イベント

変更履歴
*1　Package Version 12から追加されました。


Intentプロパティ

プロパティ

Android

Intentクラスには以下のプロパティが定義されています。

PKG | 名前 | アクセス | 型 | 初期値 | 説明
1 | Action | CRW | String |  | インテントのアクションを指定します。
1 | Data | CRW | String |  | インテントのデータをURI形式で指定します。
12 | Flags | CRW | integer |  | インテントのフラグを指定します。
1 | Type | CRW | String |  | データのMIMEタイプを指定します。

アクセス | R | 読み込み可能
 | W | 書き込み可能
 | C | 初期化可能

:デフォルトプロパティ

クラス概要

基本クラスのプロパティ


Intent.Actionプロパティ

Android

インテントのアクションを指定します。

詳しくはインテントとはをご参照ください。


Intent.Dataプロパティ

Android

インテントのデータをURI形式で指定します。

Android OS 7.0以上の端末を用いている場合、Android OSの制約のため "file://" のスキームのURIでのファイルやりとりは行えません。

この場合、FileSystem.MapContentUriメソッドを用いて生成した "content://" スキームのURIを指定してください。

詳しくはインテントとはをご参照ください。


Intent.Flagsプロパティ

Android

インテントのフラグ指定します。

詳しくはインテントとはをご参照ください。


Intent.Typeプロパティ

Android

インテントのDataプロパティが指すデータのMIMEタイプを指定します。

詳しくはインテントとはをご参照ください。


Intentメソッド

メソッド

Android

Intentクラスには以下のメソッドが定義されています。

PKG | 名前 | 説明
1 | (コンストラクタ) | Intentオブジェクトを初期化します
12 | AddCategory | インテントにカテゴリを追加します
12 | AddBroadcastReceiver | 受信対象のブロードキャストインテントを登録します
12 | ClearBroadcastReceiver | 受信対象のブロードキャストインテントを全て削除します
1 | CreateChooser | 受け取るアプリの選択ダイアログを表示するためのインテントを作成します
12 | GetCategories | インテントが持つカテゴリ一覧を取得します
1 | GetExtra | インテントからExtra情報を取得します
12 | HasCategory | インテントが指定のカテゴリを持つかを取得します
1 | HasExtra | インテントにExtra情報が格納されているかを取得します
1 | PutExtra | インテントにExtra情報を格納します
12 | SendBroadcast | ブロードキャストインテントを発行します
12 | SetClassName | インテントの発行先を明示的に指定します
1 | StartActivity | 戻り値を取らない、アクティビティを起動するインテントを発行します
1 | StartActivityForResult | 戻り値を受け取ることが可能な、アクティビティを起動するインテントを発行します
12 | StartService | 戻り値を取らない、サービスを起動するインテントを発行します
12 | StartServiceForResult | 戻り値を受け取ることが可能な、サービスを起動するインテントを発行します
12 | StopService | サービスを終了するインテントを発行します

クラス概要

基本クラスのメソッド


Intentコンストラクタ

Android

説明

インテントを生成します。

呼出形式

var i = new Intent( [action [, data ]] )

戻り値

Intentオブジェクト

引数

String action

インテントのアクション

Actionプロパティをこの値で初期化します。

詳細はインテントとはを参照してください。

String data

インテントのデータ

Dataプロパティをこの値で初期化します。

詳細はインテントとはを参照してください。

例外

なし

使用例

var intent1 = new Intent("android.intent.action.VIEW", "http://biz-browser.jp");
intent1.StartActivity();

var intent2 = new Intent;
intent2.Action = "android.intent.action.SENDTO";
intent2.Data = "mailto:";
var to = new String[1];
to[0] = "test@example.com";
intent2.putExtra(Intent.TYPE_STRING_ARRAY, "android.intent.extra.EMAIL", to);
intent2.CreateChooser("メーラーを選択してください").StartActivity();

var intent3 = new Intent{
  Action = "com.google.zxing.client.android.SCAN";
  PutExtra(Intent.TYPE_STRING, "SCAN_MODE", "ONE_D_MODE");

  Function OnActivityResult(e){
    if(e.ResultCode == Intent.RESULT_OK){
      var barcodeData = e.ResultIntent.GetExtra(Intent.TYPE_STRING, "SCAN_RESULT");
      //.MessageBox(barcodeData, "読み取り結果");
    }else{
      //.MessageBox("バーコードスキャンがキャンセルされました。", "読み取り失敗");
    }
  }
}
intent3.StartActivityForResult();

関連項目

StartActivity、StartActivityForResultメソッド


Intent.AddBroadcastReceiverメソッド

Package version 12

Intent.AddBroadcastReceiverメソッド変更履歴

Android

説明

受信対象のブロードキャストインテントを登録します。

登録後、対象のブロードキャストインテントを受信した場合、BroadcastReceivedイベントが発生します。

呼出形式

intent1.AddBroadcastReceiver( intentFilter or action [, flag] )

戻り値

なし

引数

XmlDocument intentFilter

受信対象のブロードキャストインテントを絞り込むIntentFilterを指定します。

このIntentFilterには最低でも一つのaction タグが必要で、ここに受信対象のブロードキャストインテントのアクションを指定します。

例として、2種類のactionを受け付けるIntentFilterを登録するには下記のように記述します。

var intentFilter = new XmlDocument();
intentFilter << XML <<-
  <intent-filter xmlns:android="http://schemas.android.com/apk/res/android">
        <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
        <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
  </intent-filter>
->>;

Intent intent1;
intent1.AddBroadcastReceiver(intentFilter);

IntentFilterの記述方法につきましては AndroidManifest.xmlのintent-filterタグの記述方法(外部リンク)をご参照下さい。

String action

受信対象のブロードキャストインテントのactionを指定します。

受信すべきactionが一つのみで、他のパラメータが不要な場合、intentFilter引数指定より簡易に指定可能です。

integer flag

ブロードキャストレシーバーを他のアプリに公開するかどうか等のオプションを指定します。*1

この引数はAndroid 14以降のOSでのみ有効です。

以下の値が定義されています。

定数 | 値 | 説明
Intent.RECEIVER_NO_FLAG | 0 | フラグを設定しません。
Intent.RECEIVER_EXPORTED | 2 | 他のアプリケーションから送信されたブロードキャストを受信できます。
Intent.RECEIVER_NOT_EXPORTED | 4 | 自分のアプリケーションから送信されたブロードキャスト、およびシステムからのブロードキャストのみ受信できます。

省略した場合はIntent.RECEIVER_EXPORTEDとなります。

例外

FUNC-4

引数の値が不正です

EXTOBJ-27

IntentFilterの構築に失敗しました

EXTOBJ-30

BroadcastReceiverの追加に失敗しました

使用例

Intent batteryChangedReceiver {
  /* バッテリ状態変化のブロードキャストインテントを受け取り、バッテリ残量と充電状態を表示します */
  Function OnBroadcastReceived(e) {
    if(e.ReceivedIntent.Action == "android.intent.action.BATTERY_CHANGED") {
      var batteryStatus = "";

      /* バッテリ残量を取得 */
      var batteryScale = e.ReceivedIntent.GetExtra(Intent.TYPE_INT, "scale");
      var batteryLevel = e.ReceivedIntent.GetExtra(Intent.TYPE_INT, "level");

      if(batteryScale > 0) {
        var batteryPercent = int(batteryLevel / batteryScale * 100);
        batteryStatus += "バッテリ残量 : " + str(batteryPercent) + "%";
      } else {
        batteryStatus += "バッテリ残量 : 不明";
      }

      /* バッテリ充電状態を取得 */
      var batteryPlugged = e.ReceivedIntent.GetExtra(Intent.TYPE_INT, "plugged");
      if(batteryPlugged > 0) {
        batteryStatus += " (充電中)";
      } else {
        batteryStatus += " (放電中)";
      }

      /* 表示 */
      //.Title = batteryStatus;
    }
  }
}

/* ブロードキャストインテントの受信対象を指定するIntentFilterを作成します */
var intentFilter = new XmlDocument();
intentFilter << XML <<-
  <intent-filter xmlns:android="http://schemas.android.com/apk/res/android">
    <action android:name="android.intent.action.BATTERY_CHANGED"/>
  </intent-filter>
->>;

/* ブロードキャストインテント受信を開始します */
batteryChangedReceiver.AddBroadcastReceiver(intentFilter);

関連項目

ClearBroadcastReceiverメソッド、BroadcastReceivedイベント

変更履歴
*1　Package Version 29で追加されました。


Intent.AddCategoryメソッド

Android

説明

インテントにカテゴリを追加します

呼出形式

intent1.AddCategory( category )

戻り値

なし

引数

String category

追加するカテゴリを文字列で指定します。

例外

なし

使用例

var i = new Intent("android.intent.action.VIEW", "http://biz-browser.jp");
i.AddCategory("android.intent.category.DEFAULT");
i.StartActivity();

関連項目

HasCategory、GetCategoriesメソッド


Intent.ClearBroadcastReceiverメソッド

Android

説明

受信対象のブロードキャストインテントを全て削除します。

呼出形式

intent1.ClearBroadcastReceiver()

戻り値

なし

引数

なし

例外

なし

使用例

var intent1 = new Intent();
/*  ...  */
intent1.ClearBroadcastReceiver();

関連項目

AddBroadcastReceiverメソッド


Intent.CreateChooserメソッド

Android

説明

受け取るアプリの選択ダイアログを表示するためのインテントを作成します。

インテントを用いてメールアプリを起動する場合などで起動するアプリをユーザに必ず選択させたい場合、本メソッドを用いて受けとるアプリの選択ダイアログを表示するためのインテントを作成します。

呼出形式

intent1.CreateChooser( title )

戻り値

作成されたIntentオブジェクトを返します。

引数

String title

アプリ選択ダイアログのタイトルを指定します。

注意

発行するIntentのActionが下記と一致する場合、Android OS側の仕様上タイトル指定は無視されることがあります。

・"android.intent.action.SEND"

・"android.intent.action.SEND_MULTIPLE"

例外

なし

使用例

var i = new Intent("android.intent.action.SENDTO", "mailto:");
var to = new String[1];
to[0] = "test@example.com";
var cc = new string[2];
cc[0] = "cc1@example.com";
cc[1] = "cc2@example.com";
i.putExtra(Intent.TYPE_STRING_ARRAY, "android.intent.extra.EMAIL", to);
i.PutExtra(Intent.TYPE_STRING_ARRAY, "android.intent.extra.CC", cc);
i.PutExtra(Intent.TYPE_STRING, "android.intent.extra.SUBJECT" , "サンプルメール件名");
i.PutExtra(Intent.TYPE_STRING, "android.intent.extra.TEXT" , "サンプルメール本文\n二行目\n三行目");
i.CreateChooser("メーラーを選択してください").StartActivity();

関連項目

StartActivityメソッド


Intent.GetCategoriesメソッド

Android

説明 | インテントが持つカテゴリの一覧を取得します
呼出形式 | var ret = intent1.GetCategories( )
戻り値 | カテゴリの一覧をString配列で返します。 カテゴリを持っていない場合、長さ0のString配列を返します。
引数 | なし
例外 | なし
関連項目 | AddCategory、HasCategoryメソッド


Intent.GetExtraメソッド

Package version 1

Intent.GetExtraメソッド 変更履歴

Android

説明

インテントからExtra情報を取得します。

呼出形式

intent1.GetExtra( type, name [, default ] )

戻り値

取得対象のExtra情報が存在した場合はその値が、存在しない場合は引数defaultの値が返ります。

引数

Number type

取得するExtra情報の型を指定します。

指定可能な定数は下記の通りです。

定数 | 値 | 説明
Intent.TYPE_BOOLEAN | 1 | Javaのboolean型を表します
Intent.TYPE_BYTE | 2 | Javaのbyte型を表します
Intent.TYPE_CHAR | 3 | Javaのchar型を表します
Intent.TYPE_SHORT | 4 | Javaのshort型を表します
Intent.TYPE_INT | 5 | Javaのint型を表します
Intent.TYPE_LONG | 6 | Javaのlong型を表します
Intent.TYPE_FLOAT | 7 | Javaのfloat型を表します
Intent.TYPE_DOUBLE | 8 | Javaのdouble型を表します
Intent.TYPE_STRING | 9 | Javaのstring型を表します
Intent.TYPE_BYTE_ARRAY | 12 | Javaのbyte[]型を表します
Intent.TYPE_STRING_ARRAY | 19 | JavaのString[]型を表します
Intent.TYPE_URI | 20 | Javaのandroid.net.Uri型を表します
Intent.TYPE_PARCELABLE *1 | 21 | Javaのandroid.os.Parcelable型を表します
Intent.TYPE_SERIALIZABLE *1 | 22 | Javaのjava.io.Serializable型を表します

詳細についてはCRSとExtra情報間のデータ型変換を参照してください。

String name

取得するExtra情報の名前を文字列で指定します。

default

取得対象のExtra情報が存在しなかった場合のデフォルト値を指定します。

指定しない場合、数値型は0が、Stringは空文字列が、その他の参照型はnullが使用されます

例外

FUNC-4

引数の値が不正です

使用例

Intent i{
  Function OnActivityResult(e){
    if(e.ResultCode == Intent.Result_OK){
      //.MessageBox("値：" + e.ResultIntent.GetExtra(Intent.TYPE_STRING, "EXTRA_DATA1", "(値なし)"));
    }else{
      //.MessageBox("リクエストはキャンセルされました");
    }
  }
}

関連項目

PutExtra、HasExtraメソッド

変更履歴
*1　Package Version 12から追加されました。


Intent.HasCategoryメソッド

Android

説明 | インテントが指定のカテゴリを持つかを取得します
呼出形式 | var ret = intent1.HasCategory( category )
戻り値 | 対象のカテゴリを持っていればtrue, そうでなければfalseが返ります。
引数 | String category | 取得するカテゴリを文字列で指定します。
例外 | なし |
関連項目 | AddCategory、GetCategoriesメソッド


Intent.HasExtraメソッド

Android

説明

インテントにExtra情報が格納されているかを取得します

呼出形式

intent1.HasExtra( name )

戻り値

対象のExtra情報が存在した場合はtrue, そうでなければfalseが返ります。

引数

String name

取得するExtra情報の名前を文字列で指定します。

例外

なし

使用例

Intent i{
  Function OnActivityResult(e){
    if(e.ResultCode == Intent.Result_OK){
      if(e.ResultIntent.HasExtra("EXTRA_DATA1"){
       //.MessageBox("値：" + e.ResultIntent.GetExtra(Intent.TYPE_STRING, "EXTRA_DATA1", ""));
     }else{
       //.MessageBox("EXTRA_DATA1は格納されていません");
     }
   }else{
     //.MessageBox("リクエストはキャンセルされました");
    }
  }
}

関連項目

PutExtra、GetExtraメソッド


Intent.PutExtraメソッド

Package version 1

Intent.PutExtraメソッド 変更履歴

Android

説明

インテントにExtra情報を格納します。

呼出形式

intent1.PutExtra( type, name , value )

戻り値

なし

引数

Number type

格納するExtra情報の型を指定します。

指定可能な定数は下記の通りです。

定数 | 値 | 説明
Intent.TYPE_BOOLEAN | 1 | Javaのboolean型を表します
Intent.TYPE_BYTE | 2 | Javaのbyte型を表します
Intent.TYPE_CHAR | 3 | Javaのchar型を表します
Intent.TYPE_SHORT | 4 | Javaのshort型を表します
Intent.TYPE_INT | 5 | Javaのint型を表します
Intent.TYPE_LONG | 6 | Javaのlong型を表します
Intent.TYPE_FLOAT | 7 | Javaのfloat型を表します
Intent.TYPE_DOUBLE | 8 | Javaのdouble型を表します
Intent.TYPE_STRING | 9 | Javaのstring型を表します
Intent.TYPE_BYTE_ARRAY | 12 | Javaのbyte[]型を表します
Intent.TYPE_STRING_ARRAY | 19 | JavaのString[]型を表します
Intent.TYPE_URI *1 | 20 | Javaのandroid.net.Uri型を表します
Intent.TYPE_PARCELABLE *2 | 21 | Javaのandroid.os.Parcelable型を表します
Intent.TYPE_SERIALIZABLE *2 | 22 | Javaのjava.io.Serializable型を表します

詳細についてはCRSとExtra情報間のデータ型変換を参照してください。

String name

格納するExtra情報の名前を文字列で指定します。

value

格納するExtra情報の値を指定します。

例外

FUNC-4

引数の値が不正です

使用例

var i = new Intent("android.intent.action.SENDTO", "mailto:");
var to = new String[1];
to[0] = "test@example.com";
var cc = new string[2];
cc[0] = "cc1@example.com";
cc[1] = "cc2@example.com";
i.putExtra(Intent.TYPE_STRING_ARRAY, "android.intent.extra.EMAIL", to);
i.PutExtra(Intent.TYPE_STRING_ARRAY, "android.intent.extra.CC", cc);
i.PutExtra(Intent.TYPE_STRING, "android.intent.extra.SUBJECT" , "サンプルメール件名");
i.PutExtra(Intent.TYPE_STRING, "android.intent.extra.TEXT" , "サンプルメール本文\n二行目\n三行目");
i.CreateChooser("メーラーを選択してください").StartActivity();

関連項目

GetExtra、HasExtra 、FileSystem.MapContentUriメソッド

変更履歴
*1　Android OS 7.0以上の端末を用いている場合、Android OSの制約のため "file://" のスキームのURIでのファイルやりとりは行えません。
    この場合、FileSystem.MapContentUriメソッドを用いて生成した "content://" スキームのURIを指定してください。
*2　Package Version 12から追加されました。


Intent.SendBroadcastメソッド

Android

説明

ブロードキャストインテントを発行します。

呼出形式

intent1.SendBroadcast()

戻り値

なし

引数

なし

例外

なし

使用例

var intent1 = new Intent("com.example.ACTION_BROADCAST");
intent1.SendBroadcast();

関連項目


Intent.SetClassNameメソッド

Android

説明

インテントの発行先を明示的に指定します。

詳しくはインテントとはをご参照ください。

呼出形式

intent1.SetClassName( pkgName [, clsName ] )

戻り値

なし

引数

String pkgName

Intent発行先のパッケージ名を文字列で指定します。

String clsName

Intent発行先のクラス名(アクティビティ名やサービス名など)を文字列で指定します。

"."から始まる文字列を指定した場合、引数pkgNameで指定したパッケージ名を先頭に補完します。

例)「SetClassName("com.example", ".ExampleActivity")」 と記載した場合、 引数clsNameには"com.example.ExampleActivity"が指定された物と見なします。

例外

FUNC-4

引数が不正です

使用例

var i = new Intent("android.intent.action.VIEW", "https://www.google.co.jp/maps/place/富士山/");
i.SetClassName("com.google.android.apps.maps"); /* Google Mapsアプリに対する明示的インテントとします。 */
i.StartActivity();

関連項目


Intent.StartActivityメソッド

Android

説明

戻り値を受け取らない、アクティビティを起動するインテントを発行します。

呼出形式

intent1.StartActivity()

戻り値

なし

引数

なし

例外

EXTOBJ-21

インテントを受信できるアクティビティが見つかりませんでした

使用例

var intent1 = new Intent("android.intent.action.VIEW", "http://biz-browser.jp");
intent1.StartActivity();

関連項目

StartActivityForResultメソッド


Intent.StartActivityForResultメソッド

Android

説明

戻り値を受け取ることが可能な、アクティビティを起動するインテントを発行します。

呼出形式

intent1.StartActivityForResult()

戻り値

なし

引数

なし

例外

EXTOBJ-21

インテントを受信できるアクティビティが見つかりませんでした

使用例

/*
  外部アプリ「QRコードスキャナ」がインストールされていることを前提としたサンプルです。
  「QRコードスキャナ」は下記URLから取得可能です。
https://play.google.com/store/apps/details?id=com.google.zxing.client.android
*/
var intent3 = new Intent{
  Action = "com.google.zxing.client.android.SCAN";
  PutExtra(Intent.TYPE_STRING, "SCAN_MODE", "ONE_D_MODE");

  Function OnActivityResult(e){
    if(e.ResultCode == Intent.RESULT_OK){
      var barcodeData = e.ResultIntent.GetExtra(Intent.TYPE_STRING, "SCAN_RESULT");
      //.MessageBox(barcodeData, "読み取り結果");
    }else{
      //.MessageBox("バーコードスキャンがキャンセルされました。", "読み取り失敗");
    }
  }
}
intent3.StartActivityForResult();

関連項目

StartActivityメソッド、ActivityResultイベント


Intent.StartServiceメソッド

Android

説明

戻り値を受け取らない、サービスを起動するインテントを発行します。

Android8.0以降の端末の場合、Android APIの"android.content.Context.startForegroundService"メソッドを用いてサービスを起動します。

Android8.0未満の端末の場合、Android APIの"android.content.Context.startService"メソッド(Android8以降では非推奨)を用いてサービスを起動します。

Biz/Browser HT 1.2.6より、Android11以降の端末では、Biz/Browserは任意のサービスと連携することができなくなりました。

呼出形式

intent1.StartService( [ forceBackground ] )

戻り値

なし

引数

boolean forceBackground

trueを指定した場合、Android8.0以降の端末でも、Android APIの"android.content.Context.startService"メソッド(Android8以降では非推奨)を用いてサービスを起動します。

このオプションは過去のAndroidOS向けのサービスとの互換性のために残されております。

デフォルトはfalseです。

例外

EXTOBJ-26

サービスの起動に失敗しました。

使用例

var intent1 = new Intent();
intent1.SetClassName("com.example.service", ".ExampleService");
intent1.StartService();

関連項目

StartServiceForResult、StopServiceメソッド


Intent.StartServiceForResultメソッド

Android

説明

戻り値を受け取ることが可能な、サービスを起動するインテントを発行します。

Android8.0以降の端末の場合、Android APIの"android.content.Context.startForegroundService"メソッドを用いてサービスを起動します。

Android8.0未満の端末の場合、Android APIの"android.content.Context.startService"メソッド(Android8以降では非推奨)を用いてサービスを起動します。

Biz/Browser HT 1.2.6より、Android11以降の端末では、Biz/Browserは任意のサービスと連携することができなくなりました。

呼出形式

intent1.StartService( resultReceiverName [, forceBackground ] )

戻り値

なし

引数

String resultReceiverName

サービスからのコールバックを受け付けるJavaオブジェクト(android.os.ResultReceiver)を格納するExtra情報の名前を指定します。

起動先のサービスで、このJavaオブジェクトの"ResultReceiver.send"メソッドが呼ばれた場合、このIntentオブジェクトに対しServiceResultイベントが発行されます。

boolean forceBackground

trueを指定した場合、Android8.0以降の端末でも、Android APIの"android.content.Context.startService"メソッド(Android8以降では非推奨)を用いてサービスを起動します。

このオプションは過去のAndroidOS向けのサービスとの互換性のために残されております。

デフォルトはfalseです。

例外

EXTOBJ-26

サービスの起動に失敗しました。

使用例

Intent intent1 {
  Function OnServiceResult(e) {
    var resultExtra = e.ResultData.GetExtra(Intent.TYPE_STRING, "RESULT_EXTRA");
    MessageBox(resultExtra, "resultCode : " + str(e.ResultCode);
  }
}

intent1.SetClassName("com.example.service", ".ExampleService");
intent1.StartServiceForResult("RESULT_RECEIVER_NAME");

関連項目

StartService、StopServiceメソッド、ServiceResultイベント


Intent.StopServiceメソッド

Android

説明

サービスを終了するインテントを発行します。

呼出形式

var ret = intent1.StopService()

戻り値

起動中のサービスが終了された場合trueを、そうでなければfalseを返します。

引数

なし

例外

なし

使用例

var intent1 = new Intent();
intent1.SetClassName("com.example.service", ".ExampleService");
intent1.StopService();

関連項目

StartService、StartServiceForResultメソッド


Intentイベント

イベント

Android

Intentクラスには以下のイベントが定義されています。

PKG | 名前 | 説明
1 | ActivityResult | StartActivityForResultメソッドで発行したインテントの戻り値を受けた時に発生するイベントです
12 | ServiceResult | StartServiceForResultメソッドで起動したサービスから戻り値を受けた時に発生するイベントです
12 | BroadcastReceived | ブロードキャストインテントを受けた時に発生するイベントです

クラス概要

基本クラスのイベント


Intent.ActivityResultイベント

Android

StartActivityForResultメソッドで発行したインテントに対し、戻り値を受けた時に発生するイベントです。

ActivityResultイベントは以下の構造をもちます。

Event {
    Number ResultCode;   /* インテントの戻り値が格納されます */
    /* 追加の戻り値がある場合、下記オブジェクトが格納されます */
    Intent ResultIntent; /* インテントの追加の戻り値が格納されます */
}

ResultCodeには一般的なアプリでは下記の値が格納されます。

なお、呼び出し先アプリによっては下記以外の値を格納することがありますため、詳細については呼び出し先アプリの仕様をご確認ください。

定数 | 値 | 説明
Intent.RESULT_OK | -1 | 操作が成功したことを表す値です
Intent.RESULT_CANCEL | 0 | 操作がキャンセルされたことを表す値です

インテントに追加の戻り値が存在する場合、ResultIntentオブジェクトがイベントの子オブジェクトとして追加されます。

追加の戻り値の有無やどのような値が格納されているかについては呼び出し先アプリによって異なりますため、詳細については呼び出し先アプリの仕様をご確認ください。

本オブジェクトが存在するかの確認にはObject.FindObjectメソッドをお使いください。

ActivityResultイベントは呼び出し先アプリが適切な戻り値を返した場合に発生します。

そのため、呼び出し先アプリが値を返さなかったり強制終了したりした場合、イベントが発生しない可能性があります。

よって、ActivityResultイベントが確実に起こることを前提としたコードは記述しないようご注意ください。

Intentオブジェクトがオブジェクトツリーに含まれない場合は、イベントハンドラの記述には注意が必要です。

オブジェクトツリーに含まれないオブジェクトから他のオブジェクトを参照する場合、グローバルオブジェクト、"//"からの絶対パス、自オブジェクトの子オブジェクトのみ、参照できます。

オブジェクトツリーに含まれない記述例

var i = new Intent {
    Function OnActivityResult(e) {
    /* Intentオブジェクトはオブジェクトツリーに含まれないため */
    /* ここでは相対パスによる他のオブジェクトの参照はできない */
    }
}
/* …インテントに適切な値を設定… */
i.StartActivityForResult();

オブジェクトツリーに含まれる記述例

Intent i {
    Function OnActivityResult(e) {
    /* Intentオブジェクトはオブジェクトツリーに含まれるため  */
    /* ここでも相対パスによる他のオブジェクトの参照ができるが */
    /* 使用後に削除しない限り永続的にオブジェクトが残る       */
    }
}
/* …インテントに適切な値を設定… */
i.StartActivityForResult();


Intent.ServiceResultイベント

Android

StartServiceForResultメソッドで発行したインテントに対し、戻り値を受けた時に発生するイベントです。

ServiceResultイベントは以下の構造をもちます。

Event {
    Number ResultCode; /* サービスの戻り値が格納されます */
    Intent ResultData; /* サービスの追加の戻り値(android.os.Bundle)をIntentオブジェクトにラップした物が格納されます。 */
}

本イベントは、呼び出し側サービス上でStartServiceForResultメソッドの第一引数で指定された、android.os.ResultReceiverオブジェクトのsend(int resultCode, Bundle resultData)メソッドが呼ばれたときに発生します。

ResultCode, ResultData子オブジェクトは、それぞれ、ResultReceiver.send(int resultCode, android.os.Bundle resultData) メソッドの第一引数、第二引数に相当します。

上記メソッドの第二引数(resultData)がnullの場合、ResultData子オブジェクトは空のIntentオブジェクトとなります。

サービスの戻り値の有無やどのような値が格納されているかについては呼び出し先サービスによって異なりますため、詳細については呼び出し先サービスの仕様をご確認ください。

ServiceResultイベントは呼び出し先サービスが適切な戻り値を返した場合に発生します。

そのため、呼び出し先サービスが値を返さなかったり強制終了したりした場合、イベントが発生しない可能性があります。

よって、ServiceResultイベントが確実に起こることを前提としたコードは記述しないようご注意ください。

Intentオブジェクトがオブジェクトツリーに含まれない場合は、イベントハンドラの記述には注意が必要です。

オブジェクトツリーに含まれないオブジェクトから他のオブジェクトを参照する場合、グローバルオブジェクト、"//"からの絶対パス、自オブジェクトの子オブジェクトのみ、参照できます。

オブジェクトツリーに含まれない記述例

var i = new Intent {
    Function OnServiceResult(e) {
    /* Intentオブジェクトはオブジェクトツリーに含まれないため */
    /* ここでは相対パスによる他のオブジェクトの参照はできない */
    }
}
/* …インテントに適切な値を設定… */
i.StartServiceForResult("RESULT_RECEIVER_EXTRA_NAME");

オブジェクトツリーに含まれる記述例

Intent i {
    Function OnServiceResult(e) {
    /* Intentオブジェクトはオブジェクトツリーに含まれるため  */
    /* ここでも相対パスによる他のオブジェクトの参照ができるが */
    /* 使用後に削除しない限り永続的にオブジェクトが残る       */
    }
}
/* …インテントに適切な値を設定… */
i.StartServiceForResult("RESULT_RECEIVER_EXTRA_NAME");


Intent.BroadcastReceivedイベント

Android

AddBroadcastReceiverメソッドで登録されたブロードキャストレシーバが、ブロードキャストインテントを受けた時に発生するイベントです。

BroadcastReceivedイベントは以下の構造をもちます。

Event {
    Intent ReceivedIntent; /* 受信したブロードキャストインテントが格納されます。。 */
}

ブロードキャストインテントにどのような値が格納されているかについては、発行元アプリやアクションによって異なりますため、詳細については発行元の仕様をご確認下さい。

Intentオブジェクトがオブジェクトツリーに含まれない場合は、イベントハンドラの記述には注意が必要です。

オブジェクトツリーに含まれないオブジェクトから他のオブジェクトを参照する場合、グローバルオブジェクト、"//"からの絶対パス、自オブジェクトの子オブジェクトのみ、参照できます。

オブジェクトツリーに含まれない記述例

var i = new Intent {
    Function OnBroadcastReceived(e) {
    /* Intentオブジェクトはオブジェクトツリーに含まれないため */
    /* ここでは相対パスによる他のオブジェクトの参照はできない */
    }
}
/* …ブロードキャストインテント受信対象を登録… */
i.AddBroadcastReceiver( ... );

オブジェクトツリーに含まれる記述例

Intent i {
    Function OnBroadcastReceived(e) {
    /* Intentオブジェクトはオブジェクトツリーに含まれるため  */
    /* ここでも相対パスによる他のオブジェクトの参照ができるが */
    /* 使用後に削除しない限り永続的にオブジェクトが残る       */
    }
}
/* …ブロードキャストインテント受信対象を登録… */
i.AddBroadcastReceiver( ... );


ExternalServiceクラス

Android

Object
 | ExternalService

Biz/Browser HT用のインターフェースを持った外部サービスと連携するクラスです。

ButtonやLabel等と同じように、オブジェクトツリーに接続した状態で使います。

外部サービス

このクラスは、別途Biz/Browser SmartDeviceおよびBiz/Browser HTがこのクラスを用いて連携するための専用のインターフェースを持ったサービス（Android サービス）が必要となります。

専用のインターフェースを持たないサービスや、その他のアプリとは、このクラスを用いて連携することはできません。

Android標準のインテント機能を用いて連携可能な外部アプリを使用する場合はIntentクラス、Android SDKやjar形式のライブラリのクラスを扱う場合はExternalObjectクラスの使用を検討してください。

Biz/Browser HT 1.2.6より、Android11以降の端末では、Biz/Browserは特定のパッケージ名のサービスとしか連携できません。

通信プロトコルバージョン

APIバージョン24で、外部サービスとの通信プロトコルバージョンが定義されました。

ExternalServiceクラスは、外部サービスが対応している通信プロトコルバージョンに応じた機能を利用することができます。

通信プロトコルの各バージョンで追加された機能は下記の通りです。

通信プロトコルバージョン | 対応APIバージョン | 追加機能
1 | HT(10) | 新規作成
2 | HT(24) | ・ByteArrayクラスオブジェクト、Imageクラスオブジェクトの受け渡しが可能になりました。 ・外部サービス側に追加されたCRS向けの例外(CRSExternalException)に対応しました。 Biz/Browser HTはCRSExternalException例外に設定された情報を解釈し、Exception.Codeプロパティ、Exception.Messageプロパティ、Exception.Methodプロパティの内容を設定します。

接続中の外部サービスとの間で使用している通信プロトコルバージョンはUsingProtocolVersionプロパティで確認できます。

デフォルトプロパティとValueType

デフォルトプロパティはありません。ValueTypeの指定は無効です。

セキュリティレベル

Biz/Browser V、Biz/Browser SmartDeviceおよびBiz/Browser HTでは、ExternalObjectパッケージの利用はセキュリティレベルによって制限されています。ExternalObjectパッケージはセキュリティレベルを0に設定することで利用できます。

セキュリティレベル1以上では、ExternalServiceクラスをインスタンス化しようとしたときに例外が発生します。


ExternalServiceプロパティ

HT API version 10

プロパティ

Android

ExternalServiceクラスには以下のプロパティが定義されています。

API | 名前 | アクセス | 型 | 説明
HT(24) | IsBound | R | boolean | 外部サービスと接続しているかどうかを取得します
HT(24) | UsingProtocolVersion | R | integer | 接続中の外部サービスとの間で使用している通信プロトコルバージョンを取得します

クラス概要

基本クラスのプロパティ


ExternalService.IsBoundプロパティ

Android

オブジェクトが外部サービスに接続している場合$TRUE、そうでない場合は$FALSEが設定されます。

本プロパティは読み取り専用です。


ExternalService.UsingProtocolVersionプロパティ

Android

接続中の外部サービスとの間で使用している通信プロトコルバージョンを取得します。

本プロパティは読み取り専用です。


ExternalServiceメソッド

HT API version 10

メソッド

Android

ExternalServiceクラスには以下のメソッドが定義されています。

PKG | 名前 | 説明
HT(10) | Bind | 外部サービスに接続します
HT(24) | BindAsync | 外部サービスに非同期で接続します
HT(10) | Invoke | 接続中のサービスに対して処理の実行を要求します
HT(24) | Unbind | 外部サービスとの接続を解除します

クラス概要

基本クラスのメソッド


ExternalService.Bindメソッド

HT API version 10

ExternalService.Bindメソッド変更履歴

Android

説明

外部サービスと接続します。

Bindメソッドの呼び出しから正常に復帰した時点でサービスはバインド済みの状態となっており、Invokeメソッドを呼び出し可能です。 *1

また旧バージョンとの互換のため、接続中および接続済みを通知するBoundStateChangedイベントが発生します。

呼出形式

extService1.Bind( serviceID )

戻り値

なし

引数

String serviceID

サービスID（サービスのパッケージ名 + "/." + サービスのIFクラス名）

例外

EXTOBJ-23

EXTOBJ-24

EXTOBJ-28

サービスID"%s"は不正です

サービスID"%s"のバインドに失敗しました

サービスとのバインド処理中です

使用例

ExternalService sv;

sv.Bind(SERVICE_ID);

関連項目

BindAsyncメソッド

Invokeメソッド

Unbindメソッド

変更履歴
*1　HT API version 12で仕様変更されました。
    HT API version 11以前ではメソッド呼び出し直後時点ではバインドは完了しておりません。
    バインドが完了したか否かはBoundStateChangedイベントで確認して下さい。


ExternalService.BindAsyncメソッド

Android

説明

外部サービスと非同期で接続します。このメソッドは、サービスとの接続を待たずに処理を返します。

接続中および接続済みを通知するBoundStateChangedイベントが発生します。

接続完了後、Invokeメソッドを呼び出し可能です。

呼出形式

extService1.BindAsync( serviceID )

戻り値

なし

引数

String serviceID

サービスID（サービスのパッケージ名 + "/." + サービスのIFクラス名）

例外

EXTOBJ-23

EXTOBJ-24

EXTOBJ-28

サービスID"%s"は不正です

サービスID"%s"のバインドに失敗しました

サービスとのバインド処理中です

使用例

ExternalService sv;
sv.BindAsync(SERVICE_ID);

関連項目

Bindメソッド

Invokeメソッド

Unbindメソッド


ExternalService.Invokeメソッド

Android

説明

接続中の外部サービスに対して処理の実行を要求します。

このメソッドを用いて外部サービスに処理の実行を要求する場合、こちらから指定するメソッドが、対象のサービスで使用可能となっていることが必要です。

呼出形式

extService1.Invoke( methodName [, param1 [, param2 [, ...]])

戻り値

指定したメソッドが戻り値を返す処理である場合、JSON形式の戻り値をArrayオブジェクトの連想配列として返します。

JSONデータとArrayオブジェクトの関係についてはJSONDocumentクラスをご参照ください。

指定したメソッドが戻り値を返さない場合はnullを返します。

引数

String methodName

Object paramN

実行するメソッド名

メソッドが要求する引数の値

例外

EXTOBJ-22

EXTOBJ-24

EXTOBJ-25

EXTOBJ-28

サービスがバインドされていません

サービスID"%s"のバインドに失敗しました

サービスID"%s"のメソッド"%s"の呼び出しに失敗しました:%s

サービスとのバインド処理中です

使用例

ExternalService sv;

sv.Bind(SERVICE_ID);
var param2 = 100
var res = sv.Invoke("SampleMethod", "param1", param2);

関連項目


ExternalService.Unbindメソッド

Android

説明

外部サービスとの接続を解除します。接続が解除されたら、BoundStateChangedイベントが発生します。

呼出形式

extService1.Unbind()

戻り値

なし

引数

なし

例外

EXTOBJ-22

サービスがバインドされていません

使用例

ExternalService sv;
sv.Bind(SERVICE_ID);
sv.Unbind();

関連項目

Bindメソッド

BindAsyncメソッド


ExternalServiceイベント

HT API version 10

イベント

Android

ExternalServiceクラスには以下のイベントが定義されています。

PKG | 名前 | 説明
HT(10) | BoundStateChanged | 外部サービスの接続状態が変化したときに発生します

クラス概要

基本クラスのイベント


ExternalService.BoundStateChangedイベント

Android

外部サービスの接続状態が変化したときに発生するイベントです。

BoundStateChangedイベントは以下の構造をもちます。

Event {
    String State;   /* 接続状態（Bound→接続完了、Binding→接続中、UnBound→非接続中） */
}


色定数

色の指定には、$で始まる定義済みの「色定数」を使用します。

色定数には初期状態では以下のような色が割り当てられています。

定数 | 値 | 説明
$STD | 0 | 標準色
$BLACK | 1 | 黒
$WHITE | 2 | 白
$DGRAY | 3 | 暗い灰色
$LGRAY | 4 | 灰色
$DRED | 5 | 暗い赤
$RED | 6 | 赤
$DYELLOW | 7 | 暗い黄色
$YELLOW | 8 | 黄色
$DGREEN | 9 | 暗い緑
$GREEN | 10 | 緑
$DCYAN | 11 | 暗い水色
$CYAN | 12 | 水色
$DBLUE | 13 | 暗い青
$BLUE | 14 | 青
$DMAGENTA | 15 | 暗いマゼンダ
$MAGENTA | 16 | マゼンダ

21 | $FFCCCC | 36 | $FFFFCC | 51 | $CCFFCC | 66 | $CCFFFF | 81 | $CCCCFF | 96 | $FFCCFF | 111 | $FFFFFF
22 | $FF9999 | 37 | $FFFF99 | 52 | $99FF99 | 67 | $99FFFF | 82 | $9999FF | 97 | $FF99FF | 112 | $CCCCCC
23 | $FF6666 | 38 | $FFFF66 | 53 | $66FF66 | 68 | $66FFFF | 83 | $6666FF | 98 | $FF66FF | 113 | $999999
24 | $FF3333 | 39 | $FFFF33 | 54 | $33FF33 | 69 | $33FFFF | 84 | $3333FF | 99 | $FF33FF | 114 | $666666
25 | $FF0000 | 40 | $FFFF00 | 55 | $00FF00 | 70 | $00FFFF | 85 | $0000FF | 100 | $FF00FF | 115 | $333333
26 | $CC0000 | 41 | $CCCC00 | 56 | $00CC00 | 71 | $00CCCC | 86 | $0000CC | 101 | $CC00CC | 116 | $000000
27 | $990000 | 42 | $999900 | 57 | $009900 | 72 | $009999 | 87 | $000099 | 102 | $990099 |
28 | $660000 | 43 | $666600 | 58 | $006600 | 73 | $006666 | 88 | $000066 | 103 | $660066
29 | $330000 | 44 | $333300 | 59 | $003300 | 74 | $003333 | 89 | $000033 | 104 | $330033
30 | $CC3333 | 45 | $CCCC33 | 60 | $33CC33 | 75 | $33CCCC | 90 | $3333CC | 105 | $CC33CC
31 | $CC6666 | 46 | $CCCC66 | 61 | $66CC66 | 76 | $66CCCC | 91 | $6666CC | 106 | $CC66CC
32 | $993333 | 47 | $999933 | 62 | $339933 | 77 | $339999 | 92 | $333399 | 107 | $993399
33 | $CC9999 | 48 | $CCCC99 | 63 | $99CC99 | 78 | $99CCCC | 93 | $9999CC | 108 | $CC99CC
34 | $663333 | 49 | $666633 | 64 | $336633 | 79 | $336666 | 94 | $333366 | 109 | $663366
35 | $996666 | 50 | $999966 | 65 | $669966 | 80 | $669999 | 95 | $666699 | 110 | $996699

各定数に割り当てられた色はsetPalette関数により任意の色に変更できます。


キーの指定

NextTabKey、PrevTabKey、AltKeyプロパティなど、キーボードのキーを設定するプロパティでは以下の値が指定できます。

定数 | 値 | キー | 定数 | 値 | キー
$STD | 0 | 指定なし |  |  |
$TAB | 1 | Tab | $S_TAB | 19 | Shift + Tab
$ENTER | 2 | Enter | $S_ENTER | 20 | Shift + Enter
$F01 | 3 | F1 | $S_F01 | 21 | Shift + F1
$F02 | 4 | F2 | $S_F02 | 22 | Shift + F2
$F03 | 5 | F3 | $S_F03 | 23 | Shift + F3
$F04 | 6 | F4 | $S_F04 | 24 | Shift + F4
$F05 | 7 | F5 | $S_F05 | 25 | Shift + F5
$F06 | 8 | F6 | $S_F06 | 26 | Shift + F6
$F07 | 9 | F7 | $S_F07 | 27 | Shift + F7
$F08 | 10 | F8 | $S_F08 | 28 | Shift + F8
$F09 | 11 | F9 | $S_F09 | 29 | Shift + F9
$F10 | 12 | F10 | $S_F10 | 30 | Shift + F10
$F11 | 13 | F11 | $S_F11 | 31 | Shift + F11
$F12 | 14 | F12 | $S_F12 | 32 | Shift + F12
$ESC | 15 | Esc | $S_ESC | 33 | Shift + Esc
$HOME | 16 | Home | $S_HOME | 34 | Shift + Home
$END | 37 | End | $S_END | 38 | Shift + End
$PAGEUP | 17 | PageUp | $S_PAGEUP | 35 | Shift + PageUP
$PAGEDOWN | 18 | PageDown | $S_PAGEDOWN | 36 | Shift + PageDown

Android版
使用可能なキーに制限があります。Android版の特徴と制約を参照してください。

キー操作における優先順序

ひとつのキー操作に対して複数の意味が割り当てられている状態で、実際にそのキー操作を行った場合、実行の優先順序は以下のようになっています。

1. Tabキー、Shift+Tabキー、またはNextTabKeyプロパティ、PrevTabKeyプロパティに設定されているキー操作は、優先的にフォーカス移動が実行されます。

2. オブジェクト固有のキー操作が実行されます。

3. Button系オブジェクトのAltKeyプロパティに割り当てられているキー操作が実行されます。

4. KeyDownイベントが発生します。

※ 1回のキー操作で起こる動作は、フォーカス移動、オブジェクト固有操作、AltKeyプロパティの動作、KeyDownイベント発行のいずれか1つです。

※ PrevTabKey、NextTabKey、AltKeyプロパティに割り当てられたキーと同時にCtrlキーを押した場合、別のキー操作として区別されます。


ReaderオブジェクトとWriterオブジェクト

各クラスのプロパティやメソッドの引数として、ReaderオブジェクトやWriterオブジェクトを指定できる場合があります。

これらは特定のクラスのオブジェクトを指すのではなく、特定の機能を持つ任意のオブジェクトのことを表します。

Readerオブジェクト

Readメソッドなどの読み込み用メソッドが使用できるオブジェクトです。読み込みモードで作成したFileオブジェクトやHttpResponseオブジェクトなどが相当します。

指定したReaderオブジェクトは、内部でReadメソッドの検索が行われ、見つかったメソッドが呼び出されて、読み込んだデータが使用されます。ReadLineメソッドなど他のメソッドが使用される場合もあります。

Writerオブジェクト

Writeメソッドなどの書き込み用メソッドが使用できるオブジェクトです。書き込みモードで作成したFileオブジェクトやHttpRequestオブジェクトなどが相当します。

指定したWriterオブジェクトは、内部でWriteメソッドの検索が行われ、見つかったメソッドが呼び出されて、データの書き込みが行われます。

WriteStringメソッドなど他のメソッドが使用される場合もあります。


GetCoreDumpList関数

説明

出力済みのコアダンプファイルの一覧を取得します。

呼出形式

var dumplist = getCoreDumpList( )

戻り値

コアダンプファイル名の一覧をString型の配列で返します。

引数

なし

例外

なし

使用例

var list = GetCoreDumpList();
for (var i = 0; i < list.length; i++) {
    ListBox1.ListItem1.insert(1);
    ListBox1.ListItem1[i+1].Title = list[i].Value;
}

関連項目

clearCoreDump、getCoreDump関数


ClearCoreDump関数

説明

出力済みのコアダンプファイルを削除します。

呼出形式

var ret = clearCoreDump( [ dumpName ] );

戻り値

なし

引数

String dumpName

削除対象のコアダンプファイル名を指定します。

GetCoreDumpList関数で取得した値を指定します。

指定しない場合、すべてのコアダンプが削除対象となります。

例外

なし

使用例

/* GetCoreDumpList() の結果をListBox1に代入済み */
ClearCoreDump(^.ListBox1.ListItem1[^.ListBox1.Value].Title);

関連項目


GetCoreDump関数

説明

コアダンプファイルのFileオブジェクトを取得します。

呼出形式

var ret = getCoreDump( [ dumpName ] );

戻り値

コアダンプファイルのFileオブジェクトを返します

引数

String dumpName

取得対象のコアダンプファイル名を指定します。

GetCoreDumpList関数で取得した値を指定します。

指定しない場合、最後に出力されたコアダンプが取得対象となります。

例外

RTM-3

ファイル'xxx'をオープンできませんでした

使用例

/* GetCoreDumpList() の結果をListBox1に代入済み */
var name = ^.ListBox1.ListItem1[^.ListBox1.Value].Title;
var f = GetCoreDump(name);
var data = f.ReadBinary();
f.Close();

関連項目

clearCoreDump、getCoreDumpList関数


CSVDocument.Margeメソッド

Mergeメソッドに置き換えられました。

互換性のために残されています。


Runtime.EndProcessイベント

このイベントは互換性のために残されています。操作しても何も起きません。


Utterance.Volumeプロパティ

読み上げの音量を、0.0-1.0の間で指定します。デフォルトは1.0です。

値が大きいほど、音量が大きくなります。

内部でOSで設定可能な範囲に切り揃えられます。