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

23.4.3 screenオブジェクト

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

メソッド名

機能

FindField

Fieldオブジェクトの取得

GetCursorPos

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

GetText

指定範囲の文字列の取得

ToTable

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

■FindField

Fieldオブジェクトの取得

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


●呼び出し形式

FindField (Text)

●パラメータ

パラメータ

説明

省略時の初期値

Text

検索する文字列

省略時はカーソル位置のFieldオブジェクトを取得します


●リターン値

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


●JavaScriptを用いて記述した例

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

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

■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)+"です");
}

■GetText

指定範囲の文字列の取得

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


●呼び出し形式

GetText(StartAddr, EndAddr)

●パラメータ

パラメータ

説明

省略時の初期値

StartAddr

指定範囲の先頭アドレス位置
(0~1919)

省略できません

EndAddr

指定範囲の終了アドレス位置
(0~1919)

省略できません

パラメータには「先頭アドレス位置 < 終了アドレス位置」となるよう指定してください。

●リターン値

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


●JavaScriptを用いて記述した例

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

var Text = Dspemu.screen.GetText(24, 80);  // 指定アドレス(24~80)の文字列を取得

■ToTable

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

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


●呼び出し形式

ToTable(StartAddr, EndAddr)

●パラメータ

パラメータ

説明

省略時の初期値

StartAddr

指定範囲の先頭アドレス位置
(0~1919)

省略できません

EndAddr

指定範囲の終了アドレス位置
(0~1919)

省略できません


●リターン値

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


●取得データの形式

本メソッドにより取得されるデータは、文字列データの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 (Dspemu.Addr(2, 1), Dspemu.Addr(24, 80));