Page History
...
- ファンクションを作成して、以下のコードを貼り付けます。
Function Options(*DIRECT *webevent)
*
Define Field(#searchwam) Type(*char) Length(1)
Define Field(#wamname) Type(*char) Length(9)
Define Field(#webrname) Type(*char) Length(20)
Define Field(#techserv) Type(*char) Length(21)
Define Field(#frametgt) Type(*char) Length(20)
Define Field(#currlang) Type(*char) Length(4) Default(*language)
*
Group_By Name(#webform) Fields((#stdrentry *hidden) (#frametgt *noid) #surname #searchwam (#currlang *hidden) (#partition *hidden) (#wamname *hidden) (#webrname *hidden) (#techserv *hidden))
*
Change Field(#wamname) To(<your wam name>)
Change Field(#webrname) To(<your wam webroutine name>)
Change Field(#frametgt) To(<your iframe name>)
Change Field(#stdrentry) To(N)
*
Request Fields(#webform) Exit_Key(*no) Menu_Key(*no) Prompt_Key(*no)
* - <your wam name>、 <your wam name> 、 <your iframe name>をそれぞれ適切な名前に置き換えます。
この場合、WAMは、デフォルトのLANSA:XHTMLテクノロジ・サービスと同じ区画に存在していなければならず、同じ言語で実行しなければなりません。そうでなければ、#techserv、#currlang、#partition の各フィールドの値を変更してください。 - LANSA Webエディターを使用して、InputタイプのVisualコンポーネントを作成し、FRAMETGTという名前を付けます。
- コンポーネントのページにもFRAMETGTという名前を付けます。
- 新しいページを作成して、以下のコードを貼り付けます。
<iframe style="width:600px; height:400px" name='<RDML MERGE="FRAMETGT">'></iframe>
- ページをFRAMETGTとして保存します。
- LANSA Webファンクション・エディターを使用して、InputタイプのVisualコンポーネントを作成し、SEARCHWAMという名前を付けます。
- コンポーネントのページにもSEARCHWAMという名前を付けます。
- 新しいページを作成して、以下のコードを貼り付けます。
<button onclick="return HandleWAMEvent('<RDML MERGE="WAMNAME">', '<RDML MERGE="WEBRNAME">', '<RDML MERGE="TECHSERV">', null, '<RDML MERGE="TARGET">', null, '<RDML MERGE="PARTITION">', '<RDML MERGE="CURRLANG">', null, null, 'ASURNAME', 'ASTDRENTRY' )">Search</button>
<script type="text/javascript">
//<![CDATA[
function CreateTempForm(ownerDoc)
{
var oTempForm = ownerDoc.createElement("form");
if (oTempForm != null)
{
if (typeof oTempForm.setAttribute === "function")
{
oTempForm.setAttribute("method", "post");
}
else
{
oTempForm = ownerDoc.createElement("<form method=\"post\"></form>");
}
}
return oTempForm;
}
function HandleWAMEvent(WAM, WebRoutine, techServ, Form, Target, actionRequest, Partition, Language, optSessionKey, optDebugMode /*, field1, field2, etc...*/)
{
if (Form == null)
{
Form = document.LANSA;
}
if (techServ == null)
{
techServ = "LANSA:XHTML";
}
var oTempForm = CreateTempForm(Form.ownerDocument);
if (oTempForm != null)
{
Form.ownerDocument.body.appendChild(oTempForm);
var argLen = arguments.length;
if (argLen > 10)
{
for (var index = 10; index < argLen; index++)
{
var fieldNameWithPrefix = arguments[index];
var fieldName = fieldNameWithPrefix.substr(1, fieldNameWithPrefix.length - 1);
for (var ind = fieldNameWithPrefix.length; ind < 10; ind++)
{
fieldNameWithPrefix += " ";
}
var fieldValue = Form.elements[fieldNameWithPrefix].value;
InsertHidden(oTempForm, fieldName, fieldValue);
}
}
// Add STDANCHOR if available
var anchorField = Form.elements["ASTDANCHOR"];
if (anchorField != null)
{
InsertHidden(oTempForm, "STDANCHOR", anchorField.value);
}
var prevAction = oTempForm.action;
var prevTarget = oTempForm.target;
var action = "";
if (actionRequest == null || actionRequest.length <= 0)
{
actionRequest = "/cgi-bin/lansaweb";
}
action += actionRequest + "?wam=" + WAM + "&webrtn=" + WebRoutine + "&ml=" + techServ + "&part=" + Partition + "&lang=" + Language;
if (optDebugMode != null && optDebugMode.length > 0)
{
action += "&debug=" + optDebugMode;
}
if (optSessionKey != null)
{
action += "&sid=" + optSessionKey;
}
oTempForm.action = action;
if (Target != null)
{
oTempForm.target = Target;
}
oTempForm.submit();
setTimeout(function() {
oTempForm.action = prevAction;
oTempForm.target = prevTarget;
oTempForm.parentNode.removeChild(oTempForm);
}, 100);
}
return false;
}
function InsertHidden(Form, FieldName, FieldValue)
{
if (Form == null)
{
return;
}
var field = Form.elements[FieldName];
if (field == null)
{
var elem = Form.document.createElement("input");
if (elem != null)
{
elem.setAttribute("type", "hidden");
elem.setAttribute("name", FieldName);
elem.setAttribute("value", FieldValue);
Form.appendChild(elem);
}
}
else
{
field.value = FieldValue;
}
}
//]]>
</script> - ページをSEARCHWAMとして保存します。
- WEBEVENTファンクションをコンパイルして、HTMLを生成します。
- 上のWEBEVENTサンプルをブラウザーで実行します。検索ボタンをクリックすると、WAMNAMEとWEBRNAMEの各フィールドで指定したWAMとWEBROUTINEが呼び出されます。WEBROUTINEの実行によって生成されるHTML応答が、WEBEVENTの検索ボタンと同じページにあるFRAMETGTコンポーネントに表示されます。