ページの先頭行へ戻る
WSMGR for Web V7.2 使用手引書L20

23.4.5 screenオブジェクト

エミュレータの操作、およびエミュレータ画面のフィールド情報を参照するためのオブジェクトです。

メソッド名

機能

JavaScript

VB/C#

bind

-

画面更新時のイベント登録

contains

Contains

エミュレータ画面上に指定文字列が含まれるかを判定

findField

FindField

fieldオブジェクトの取得

getCursorCol

GetCursorCol

カーソル位置の桁位置取得

getCursorPos

GetCursorPos

カーソル位置のアドレス取得

getCursorRow

GetCursorRow

カーソル位置の行位置取得

getField

GetField

fieldオブジェクトの取得

getFields

GetFields

fieldsオブジェクトの取得

getText

GetText

指定範囲の文字列の取得

toTable

ToTable

矩形範囲からの文字配列の取得

update

-

画面更新の制御

オブジェクト名

機能

初期値

JavaScript

VB/C#

event

-

イベントの発生時にbindメソッドで登録したコールバック関数に渡されるオブジェクト

-


■bind

エミュレータ画面更新時のイベント登録

エミュレータ画面で指定したイベントが発生した際に呼び出されるコールバック関数を登録します。


●呼び出し形式

bind(type, func)

●パラメータ

パラメータ

説明

省略時の初期値

type

コールバック関数を登録するイベント名を示す文字列
"receive":エミュレータ画面の受信完了
"change":エミュレータ画面の更新完了

省略できません

func

コールバック関数を指定
typeで指定したイベントに登録された関数を解除する場合は null を指定

null


●リターン値

関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、getErrorメソッドにより取得できます。


●JavaScriptを用いて記述した例

var dspemu = new WsmgrDspemu();  // インスタンスの作成

dspemu.screen.bind("receive", onReceive);  // コールバック関数の登録

■contains/Contains

エミュレータ画面上に指定文字列が存在するかを判定

エミュレータ画面上の指定した矩形範囲に、指定の文字列が含まれるフィールドが存在するかを判定します。


●呼び出し形式

contains(text, row1, col1, row2, col2)

●パラメータ

パラメータ

説明

省略時の初期値

text

検索する文字列

省略できません

row1

開始行位置(1~24)

1

col1

開始桁位置(1~80)

1

row2

終了行位置(1~24)

24

col2

終了桁位置(1~80)

80


●リターン値

関数の呼び出しに成功するとtrueを返します。一致する文字列が見つからなかった場合やエラーが発生した場合はfalseを返します。リターン値がfalseの場合はgetError/GetError関数を使ってエラー番号を調べることができます。


●JavaScriptを用いて記述した例

var dspemu = new WsmgrDspemu();  // インスタンスの作成

if (!dspemu.screen.contains("TSSX", 1, 5, 24, 5)) { // 矩形範囲のフィールド検索
    dspemu.macro.MsgBox("指定文字列を含むフィールドが見つかりませんでした");
}

■findField/FindField

fieldオブジェクトの取得

エミュレータ画面上のフィールドより検索文字列が含まれるフィールドのfieldオブジェクトを取得します。対象の文字列が複数存在する場合は、最初に見つかった文字列のオブジェクトを返します。


●呼び出し形式

findField(text, row1, col1, row2, col2)

●パラメータ

パラメータ

説明

省略時の初期値

text

検索する文字列

省略時はカーソル位置のfieldオブジェクトを取得、
矩形範囲の指定がある場合は省略不可

row1

開始行位置(1~24)

1

col1

開始桁位置(1~80)

1

row2

終了行位置(1~24)

24

col2

終了桁位置(1~80)

80


●リターン値

関数の呼び出しに成功すると取得したfieldオブジェクトを返します。一致する文字列が見つからなかった場合やエラーが発生した場合はnullを返します。リターン値がnullの場合はgetError/GetError関数を使ってエラー番号を調べることができます。


●JavaScriptを用いて記述した例

var dspemu = new WsmgrDspemu();  // インスタンスの作成

var field = dspemu.screen.findField("ユーザID", 1, 10, 24, 20);  // 文字列"ユーザID"が含まれるFieldオブジェクトを取得
if (field == null) {
    dspemu.macro.MsgBox("指定文字列を含むフィールドが見つかりませんでした");
}

■getCursorCol/GetCursorCol

カーソル位置の桁位置取得

現在のエミュレータ画面のカーソル位置の桁位置を取得します。


●呼び出し形式

getCursorCol()

●パラメータ

ありません


●リターン値

関数の呼び出しに成功すると取得した桁位置を返します。カーソル位置がエミュレータ画面の範囲外にある場合、およびエラー発生時は-1を返します。


●JavaScriptを用いて記述した例

var dspemu = new WsmgrDspemu();  // インスタンスの作成

var col = dspemu.screen.getCursorCol();  // 現在のカーソル位置の桁位置を取得

■getCursorPos/GetCursorPos

カーソル位置のアドレス取得

現在のエミュレータ画面のカーソル位置のアドレスを取得します。


●呼び出し形式

getCursorPos()

●パラメータ

ありません


●リターン値

関数の呼び出しに成功すると取得したアドレスを返します。カーソル位置がエミュレータ画面の範囲外にある場合は-1を返します。


●JavaScriptを用いて記述した例

var dspemu = new WsmgrDspemu();  // インスタンスの作成

var cursorAddr = dspemu.screen.getCursorPos();  // 現在のカーソル位置のアドレスを取得
if(cursorAddr != -1){
    dspemu.macro.MsgBox("現在のカーソル位置は、行:" + dspemu.row(cursorAddr) + "、桁:" + dspemu.col(cursorAddr) + "です");
}

■getCursorRow/GetCursorRow

カーソル位置の行位置取得

現在のエミュレータ画面のカーソル位置の行位置を取得します。


●呼び出し形式

getCursorRow()

●パラメータ

ありません


●リターン値

関数の呼び出しに成功すると取得した行位置を返します。カーソル位置がエミュレータ画面の範囲外にある場合、およびエラー発生時は-1を返します。


●JavaScriptを用いて記述した例

var dspemu = new WsmgrDspemu();  // インスタンスの作成

var row = dspemu.screen.getCursorRow();  // 現在のカーソル位置の行位置を取得

■getField/GetField

fieldオブジェクトの取得

指定した位置のfieldオブジェクトを取得します。


●呼び出し形式

getField(row, col)

●パラメータ

パラメータ

説明

省略時の初期値

row

エミュレータ画面上の行位置(1~24)

省略できません

col

エミュレータ画面上の桁位置(1~80)

省略できません


●リターン値

関数の呼び出しに成功すると指定位置のfieldオブジェクトを返します。エラーが発生した場合はnullを返します。エラーの詳細は、getErrorメソッドにより取得できます。


●JavaScriptを用いて記述した例

var dspemu = new WsmgrDspemu();  // インスタンスの作成

var field = dspemu.screen.getField(1, 1);  // 1行1桁目のfieldオブジェクトを取得

■getFields/GetFields

fieldsオブジェクトの取得

指定したセレクターに一致するfieldオブジェクトのリストを保持するfieldsオブジェクトを取得します。


●呼び出し形式

getFields(selector)

●パラメータ

パラメータ

説明

省略時の初期値

selector

エミュレータ画面上のフィールドから抽出する条件を指定

すべてのフィールド("*")


●selectorの値

[文字列指定]

指定された文字列を含むフィールドのリストを保持するfieldsオブジェクトを取得します。

[フィールド属性指定]

指定されたフィールド属性を含むフィールドのリストを保持するfieldsオブジェクトを取得します。

属性

属性値

説明

attr

'blink'

ブリンクフィールド

'numeric'

数字フィールド

'protect'

保護フィールド

'unprotect'

非保護フィールド

'reverse'

反転フィールド

'underscore’

下線フィールド

'visible'

可視フィールド

'kana'

かなフィールド

'lightpen'

ライトペン検知可能フィールド

'hilight'

高輝度フィールド

'nihongo'

日本語フィールド

'escape'

脱出要求フィールド

'complete'

完全入力フィールド

'trigger'

トリガーフィールド

'autoenter'

オートエンターフィールド

color

'Default'

背景色(初期値)

'Blue'

'Red'

'Magenta'

マゼンタ

'Green'

'Cyan'

シアン

'Yellow'

'White'

style

'assist'

入力候補フィールド

'select'

リストボックス表示フィールド

'button'

ボタン表示フィールド

'link'

リンクボタン表示フィールド

'calendar'

カレンダー表示フィールド

'check'

チェックボックス表示フィールド

'radio'

ラジオボタン表示フィールド

'hide'

非表示フィールド

name

フィールド名

指定したフィールド名

[範囲指定]

指定された範囲のフィールド属性を含むフィールドのリストを保持するfieldsオブジェクトを取得します。範囲はアドレス、または行桁位置での指定が可能です。

複数のセレクターを指定することも可能です。この場合、fieldsオブジェクトは指定したセレクターのOR条件で取得されます。セレクターを複数指定する場合はカンマで区切ってください。


●リターン値

関数の呼び出しに成功すると取得したfieldsオブジェクトを返します。一致した文字列が見つからなかった場合や、エラーが発生した場合はlengthが0 のfieldsオブジェクトを返します。リターン値でlengthプロパティが0のfieldsオブジェクトが返された場合は、エラーの詳細をgetErrorメソッドにより取得できます。


●JavaScriptを用いて記述した例

var dspemu = new WsmgrDspemu();  // インスタンスの作成

// 文字列「担当」を含むfieldsオブジェクトを取得
var fields = dspemu.screen.getFields("担当"); 
// すべてのfieldsオブジェクトを取得
var fields = dspemu.screen.getFields("*"); 
// 保護フィールドのfieldsオブジェクトを取得
var fields = dspemu.screen.getFields("{attr: 'protect'}");

// アドレス(0~1919)範囲のfieldsオブジェクトを取得
var fields = dspemu.screen.getFields("{start: 0, end: 1919}");

// 指定行桁範囲のfieldsオブジェクトを取得
var fields = dspemu.screen.getFields("{row1: 1, col1: 1},{row2: 24, col2: 80}");

// 矩形行桁範囲のfieldsオブジェクトを取得
var fields = dspemu.screen.getFields("{row: 1, col: 1}, {row: 24, col: 10}");

// 複数のセレクターを指定してfieldsオブジェクトを取得
var fields = dspemu.screen.getFields("担当", "{attr: 'protect'}", "{row: 10, col: 1},{row: 20, col: 80}");

■getText/GetText

指定範囲の文字列の取得

エミュレータ画面より指定した範囲の文字列を取得します。指定範囲内に含まれるフィールドアトリビュート位置は空白文字に置き換えます。


●呼び出し形式

getText(row1, col1, row2, col2)

●パラメータ

パラメータ

説明

省略時の初期値

row1

指定範囲の開始行位置
(1~24)

1

col1

指定範囲の開始桁位置
(1~80)

1

row1

指定範囲の終了桁位置
(1~24)

24

col2

指定範囲の終了桁位置
(1~80)

80


●リターン値

関数の呼び出しに成功すると取得した文字列を返します。エラーが発生した場合はnullを返します。リターン値がnullの場合はgetError/GetError関数を使ってエラー番号を調べることができます。


●JavaScriptを用いて記述した例

var dspemu = new WsmgrDspemu();  // インスタンスの作成

var text = dspemu.screen.getText(1, 1, 1, 80);  // 指定範囲の文字列を取得

■toTable/ToTable

矩形範囲からの文字配列の取得

指定位置が含まれるフィールドの矩形範囲より2次元配列の文字列データを取得します。指定位置がフィールドの途中の場合、開始位置はその位置が含まれるフィールドの先頭位置に、終了位置はその位置が含まれるフィールドの末尾位置に補正されます。


●呼び出し形式

toTable(row1, col1, row2, col2)

●パラメータ

パラメータ

説明

省略時の初期値

row1

指定範囲の開始行位置
(1~24)

1

col1

指定範囲の開始桁位置
(1~80)

1

row1

指定範囲の終了桁位置
(1~24)

24

col2

指定範囲の終了桁位置
(1~80)

80


●リターン値

関数の呼び出しに成功すると指定範囲のフィールド文字列をテーブル文字列として返します。エラーが発生した場合はnullを返します。リターン値がnullの場合はgetError/GetError関数を使ってエラー番号を調べることができます。

参考

toTableメソッドで取得するテーブル文字列には、アトリビュート属性のみのフィールドは含まれません。


●取得データの形式

本メソッドにより取得されるデータは、文字列データの2次元配列の形式となります。指定された範囲に存在するフィールドがエミュレータ画面上で行が変わると、次の要素の配列とみなされます。

例1)
フィールド1~3が同じ行、フィールド4~5が次行に存在する場合

フィールド1

フィールド2

フィールド3

フィールド4

フィールド5

フィールド6

取得データの配列は次のようになります。

[ [フィールド1の文字列, フィールド2の文字列, フィールド3の文字列],
[フィールド4の文字列, フィールド5の文字列, フィールド6の文字列] ]

例2)
行ごとのフィールド数が異なる場合

フィールド1

フィールド2

フィールド3

フィールド4

フィールド5

フィールド6

取得データの配列は次のようになります。

[ [フィールド1の文字列],
[フィールド2の文字列, フィールド3の文字列, フィールド4の文字列],
[フィールド5の文字列, フィールド6の文字列] ]

例3)
フィールドが行をまたいでいる場合

フィールド1

フィールド1の続き

フィールド2

フィールド3

フィールド3の続き

フィールド4

フィールド5

フィールド6

フィールド7

取得データの配列は次のようになります。

[ [フィールド1の文字列],
[フィールド1の続きの文字列, フィールド2の文字列, フィールド3の文字列],
[フィールド3の続きの文字列, フィールド4の文字列, フィールド5の文字列]
[フィールド6の文字列, フィールド7の文字列] ]


●JavaScriptを用いて記述した例

var dspemu = new WsmgrDspemu();  // インスタンスの作成

var array = dspemu.screen.toTable (2, 1, 24, 80); // 指定範囲の文字配列を取得

■update

エミュレータ画面の更新制御

エミュレータ画面の更新を制御します。


●呼び出し形式

update(flag)

●パラメータ

パラメータ

説明

省略時の初期値

flag

true:エミュレータ画面の更新を開始
false:エミュレータ画面をクリアして更新を停止

true


参考

画面更新を停止してもscreenオブジェクトのreceiveイベントは実行されます。停止後の再開はreceiveイベントで行ってください。


●リターン値

関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、getErrorメソッドにより取得できます。


●JavaScriptを用いて記述した例

var dspemu = new WsmgrDspemu();  // インスタンスの作成

dspemu.screen.update(false);  // 画面更新の停止