Webビューアからデータを取得する
Webビューアの処理について。
たとえばファイルメーカーで、こんな風にウェブページを表示させます。
↑このページは、http://www.royalroad.jp/live/column/column11.aspです。特に意味はありません。
—————————————————————-
—————————————————————-
もしこのようにタイトルを自動で取得したい場合は、
TextExtraction ( URL_source ; "<title>" ; 1 ; "</title>" ; 1 )で解析できます。
「URL_source」は、HTMLソースを取得したフィールド。
HTMLソースは、「GetLayoutObjectAttribute」関数で取得できます。
具体的には、この辺りをご参照ください。
ただしWebビューアがHTMLを読み終わらないと取得できないので、
私は、スクリプトでWebビューアを開いたところでスクリプトを3秒停止。
そこからタイトルフィールドに移動させてからレコード確定させてます。
取得しおえるまでLoopでまわしてもいいんですが、タイトルくらい別に取得できないならできないでいいや、というのが私の考え方です。
またWebビューアが、「URL」フィールドの値を読み込むようにしている場合、
1,「URL」フィールドにURLを入力。
2,フィールド外をクリックするなどしてレコードを確定。
にしないと、Webビューアはそれを読み込んでくれません。
しかし感覚的にはアドレス打ったらリターンキーで決定したいわけですよね。
その場合は、
「URL」フィールドのフィールド/コントロールの「動作」を開きます。
そこの「次のオブジェクトへの移動に使用するキー」をTabじゃなくてReturnにしてしまえばいいのでは。
アドレス入力 → リターンキーをターン!と叩く → タブ移動
これでフィールドが確定し、Webビューアがアドレス
を読み込む。
このHTMLソースの解析というのは、いろいろできます。
例えばYahoo!ファイナンスを開いて、為替情報を見るとする。
—————————————————————-
—————————————————————-
そのHTMLソースを取得。Webビューアのオブジェクト名を「site1」にしたとして、
—————————————————————-
Let([
web = GetLayoutObjectAttribute ( "site1" ; "content");
start = Position(web;"日本円</th>";1;1);
end = Position(web;"米ドル</th>";1;1)
];
Middle(web;start; end – start)
)//Let
—————————————————————-
とすると、レート表の日本円の部分、
上の画面で言うと、「米ドル89.780000円」~「ユーロ134.122342円」の1列分のソースが取得できます。
これをPosition関数、Middle関数、Substitute関数などで加工すると、それぞれの数値を抜き出して自動入力ができるというわけです。
—————————————————————-
—————————————————————-
こんな風に。