ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v19
VP Run offscreen area

VP Run offscreen area 


 

VP Run offscreen area ( parameters ) -> 戻り値 
引数   説明
parameters  オブジェクト in オフスクリーンエリアの属性を格納するオブジェクト
戻り値  Mixed in onEventオブジェクトの.resultプロパティ、または値を返さない場合にはNull

説明   

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

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

 

プロパティ
詳細
area  テキスト オフスクリーンエリアの名前。省略時あるいはnull の場合、一般的な名前(例:OffscreenArea1)が割り当てられます。
onEvent  オブジェクト(フォーミュラ) オフスクリーンエリアの準備ができたときに実行されるコールバックメソッドです。以下のいずれかを渡すことができます:
  • クラスのonEvent ファンクション
  • Formula オブジェクト
デフォルトでは、コールバックメソッドは、On VP ReadyOn LoadOn UnloadOn End URL LoadingOn URL Loading ErrorOn VP Range Changed あるいはOn Timer イベントで呼び出されます。

コールバックメソッドを使用して4D View Pro オブジェクトにアクセスすることができます。4D View Pro フォームオブジェクト変数を参照してください。
autoQuit  ブール True (デフォルト値)だった場合、On End URL Loading または On URL Loading Error イベントが起きた際にはコマンドがフォーミュラの実行を中止します。

False の場合、onEvent コールバックメソッド内でCANCEL あるいは ACCEPT コマンドを使用する必要があります。
timeout  実数 イベントが何も生成されない場合にエリアが自動的に閉まるまでの最大時間(秒単位)。0に設定した場合、エリアは自動的には閉まりません。デフォルト値: 60
result 任意 プロセスの結果(あれば)
<customProperty>  任意 onEvent コールバックメソッドで利用可能なカスタムの属性。

 

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

 

プロパティ 詳細
timeoutReached ブール タイムアウトを超えた場合にtrue の値で追加されます

 

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

 

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

オフスクリーンの4D View Pro エリアを作成し、そこでセルの値を取得したい場合を考えます:

 

  // OffscreenArea クラス宣言
 Class constructor
 C_TEXT($1)
 This.filePath:=$1
 
  // このファンクションはオフスクリーンエリアの各イベントごとに呼び出されます
 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)

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

  // 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)



参照 

Blog post: End of document loading

 
プロパティ 

プロダクト: 4D
テーマ: 4D View Pro ランゲージ
番号: 905271

 
ページの目次 
 
履歴 

初出: 4D v18 R4

 
ARTICLE USAGE

4D View Pro リファレンス ( 4D v19)