メインコンテンツまでスキップ
バージョン: 20 R5 BETA

VP Run offscreen area

VP Run offscreen area ( parameters : Object) : Mixed

引数タイプ説明
parametersObject->オフスクリーンエリアの属性を格納するオブジェクト
戻り値複合<-.onEvent オブジェクトの .result プロパティ、または値を返さない場合には Null

説明

VP Run offscreen area コマンドは、メモリ内にオフスクリーンエリアを作成し、これを利用して 4D View Pro エリアのコマンドやファンクションを処理することができます。

parameters オブジェクトには、以下の任意のプロパティのいずれかを渡します。 これらのプロパティは onEvent コールバックメソッド内において This コマンドを介して利用可能であり、そのインスタンスを参照することができます:

プロパティタイプ説明
areatextオフスクリーンエリアの名前。 省略時あるいは null の場合、一般的な名前 (例: "OffscreenArea1") が割り当てられます。
onEventobject (フォーミュラ)オフスクリーンエリアの準備ができたときに実行されるコールバックメソッド。 以下のいずれかを渡すことができます:
  • クラスの onEvent 関数
  • Formula オブジェクト
  • デフォルトでは、コールバックメソッドは、On VP Ready, On Load, On Unload, On End URL Loading, On URL Loading Error, On VP Range Changed, または On Timer イベントで呼び出されます。 コールバックメソッドを使用して 4D View Pro フォームオブジェクト変数 にアクセスすることができます。
    autoQuitbooleanTrue (デフォルト値) の場合、On End URL Loading または On URL Loading Error イベントが起きた際にはコマンドがフォーミュラの実行を中止します。 False の場合、onEvent コールバックメソッド内で CANCEL あるいは ACCEPT コマンドを使用する必要があります。
    timeoutnumberイベントが何も生成されない場合にエリアが自動的に閉まるまでの最大時間 (秒単位)。 0 に設定した場合、エリアは自動的には閉まりません。 デフォルト値: 60
    resultmixed処理の結果 (あれば)
    <customProperty>mixedonEvent コールバックメソッドで利用可能なカスタムの属性。

    以下のプロパティは、必要に応じてコマンドによって自動的に追加されます:

    プロパティタイプ説明
    timeoutReachedbooleanタイムアウトを超えた場合に true の値で追加されます

    オフスクリーンエリアは、VP Run offscreen area コマンドの実行中にしか利用できません。 実行が終わるとエリアは自動的に消去されます。

    コールバックメソッドでは、以下のコマンドを使用することができます:

    • ACCEPT
    • CANCEL
    • SET TIMER
    • WA Evaluate JavaScript
    • WA EXECUTE JAVASCRIPT FUNCTION

    例題 1

    オフスクリーンの 4D View Pro エリアを作成し、そこからセルの値を取得します:

    // cs.OffscreenArea クラス宣言 
    Class constructor ($path : Text)
    This.filePath:=$path

    // この関数はオフスクリーンエリアの各イベントごとに呼び出されます
    Function onEvent()
    Case of
    :(FORM Event.code=On VP Ready)
    VP IMPORT DOCUMENT(This.area;This.filePath)
    This.result:=VP Get value(VP Cell(This.area;6;22))

    ALERT("The G23 cell contains the value: "+String(This.result))
    End case

    OffscreenArea コールバックメソッドの内容は以下の通りです:

    $o:=cs.OffscreenArea.new()
    $result:=VP Run offscreen area($o)

    例題 2

    大きなドキュメントをオフスクリーンで読み込み、計算の評価が完了するのを待ってドキュメントを PDF として書き出します:

    // cs.OffscreenArea クラス宣言
    Class constructor($pdfPath : Text)
    This.pdfPath:=$pdfPath
    This.autoQuit:=False
    This.isWaiting:=False

    Function onEvent()
    Case of
    :(FORM Event.code=On VP Ready)
    // ドキュメントの読み込み
    VP IMPORT DOCUMENT(This.area;$largeDocument4VP)
    This.isWaiting:=True

    // 計算が完了したかを検証するタイマーをスタートさせます
    // この間に "On VP Range Changed" イベントが発生した場合、タイマーはリスタートされます
    // 時間はコンピューターの設定に応じて定義されなければなりません
    SET TIMER(60)

    :(FORM Event.code=On VP Range Changed)
    // 計算の完了を検知し、 タイマーを再スタートさせます
    If(This.isWaiting)
    SET TIMER(60)
    End if

    :(FORM Event.code=On Timer)
    // この時点以降、他の 4D View コマンドを呼び出してもタイマーが再スタートしないようにします
    This.isWaiting:=False



    // タイマーを停止します
    SET TIMER(0)

    // PDF 書き出しを開始します
    VP EXPORT DOCUMENT(This.area;This.pdfPath;New object("formula";Formula(ACCEPT)))

    :(FORM Event.code=On URL Loading Error)

    CANCEL
    End case

    OffscreenArea コールバックメソッドの内容は以下の通りです:

    $o:=cs.OffscreenArea.new()

    $result:=VP Run offscreen area($o)

    参照

    ブログ記事 (英文): End of document loading