6.1 WEBEVENTフォームを呼び出すWAMフォーム

WEBEVENTフォームを呼び出すための主な手段は、HandleEvent()というJavaScript関数です。WAMフォームからWEBEVENTフォームを呼び出すためのJavaScriptベースの手段として、それとよく似たHandleWebEvent()という関数も用意されています。

WAMフォームからWEBEVENTフォームを呼び出すには、以下のようにします。

1.  提供されているHandleWebEvent()という名前のJavaScript関数を使用します。

     この関数を呼び出す方法は、HandleEvent()関数を呼び出す方法と同じです。

2.  ウェブレットには、(Webroutineとは異なり) WEBEVENTに移動する追加のプロパティはありません。HandleWebEvent()は、ほとんどのウェブレットのpresubmit_jsプロパティから、またはユーザー定義のJavaScriptによって呼び出せます。例えば、次のようにonlick属性の値を設定して、JavaScriptを実行するように直接設定することも可能です。 document.LANSA.SEARCH.onclick = "HandleWebEvent('MYWAM', 'MYPROC', 'MYFUNC', null, null, 'ASURNAME', 'ASTDRENTRY'

3.  パラメータは、HandleWebEvent(Process, Webevent, Form, Target, "ASURNAME", "ASTDRENTRY", ...)のようになっていて、各フィールドに対応する可変数のパラメータの値をWEBEVENTに渡すことができます。Form以外のすべてのパラメータは文字列であり、Formは、実際のフォームDHTMLオブジェクト(document.MYFORMなど)にします。ここでフィールド名の前に接頭辞を1文字付けることが重要です。この接頭辞は、Alphanumericフィールドの場合はA、Packedフィールドの場合はP、Signedフィールドの場合はS、RDMLXフィールドの場合はQです。この接頭辞は必須で、これにより呼び出し対象のWEBEVENTが渡されるフィールド値を交換できるようになります。

4.  このJavaScript関数は、指定のFormパラメータ (Formがnullの場合はデフォルトの"LANSA"フォーム) から各フィールドの値を取得し、一時的なフォームを作成し、URLに送信するその一時的なフォームに各フィールドとそれぞれの値を挿入し、URLに対するHTTP postを実行します。HandleWebEvent()にパラメータとして渡すフィールド名にはすべて、フィールドのタイプを示す1文字の接頭辞を付ける必要があることに注意してください。WAMのフィールド参照では接頭辞を必要としませんが、WEBEVENTファンクションは必要とします。したがって、このJavaScriptコードは、WAMフォームから指定のフィールド値を取得するときには1文字の接頭辞なしで取得しますが、WEBEVENTファンクションにフィールド名を送信するときには接頭辞付きで送信します。

5.  その結果、指定のフィールド値が渡されたWEBEVENT LANSAファンクションが実行され、WEBEVENTページがブラウザーに表示されます。

WAMフォームからWEBEVENTフォームを開始し、情報を渡す例

WAMフォーム"Search "が WEBEVENT "Browse"を呼び出し、入力されたSURNAMEフィールドの値を渡すとします。

LANSAエディターの[詳細]タブで、検索ボタンのpresubmit_jsプロパティに'HandleWebEvent("MYPROC", "MYFUNC", null, null, "ASURNAME", "ASTDRENTRY"); return false;'と入力します。

このページをブラウザーで実行したときに、検索ボタンをクリックすると、これがWEBEVENTに送信され、WEBEVENTの実行の終了時にブラウザーにそのページが表示されます。