Page History
...
| Anchor | ||||
|---|---|---|---|---|
|
<HTML> <HEAD id='HEAD_Tag'> <link rel='stylesheet' type='text/css' href='vf_vs001.css' > <script> /* ======================================================================== */ /* ======================== Handle Page Initialization ==================== */ /* ======================================================================== */ function VF_AJAX_Initialize() { /* Insert the variable style sheet (ie: XP, WIN, WEB style) into this page */ { var objLink = document.createElement("LINK"); objLink.rel = "stylesheet"; objLink.type = "text/css"; objLink.href = STYLESHEET(); document.getElementById("HEAD_Tag").insertAdjacentElement("afterBegin",objLink); } /* Finished */ return; } /* ======================================================================== */ /* ======================== Handle Page Execution ========================= */ /* ======================================================================== */ function VF_AJAX_Execute(objInstance) { /* Put the current instance list entry EMPNO onto the clipboard */ /* The employee number is in AKey number 3, which is Javascritp array entry 2 */ Put(objInstance.arraystrAKeyN[2],"EX4","EMPNO"); /* Request that the server do a FETCH operation using the employee number */ SENDREQUEST(window,"","FETCH","",FETCH_response);
...
/* Finished */ return; } /* ======================================================================== */ /* ======================= Handle Page Termination ======================== */ /* ======================================================================== */ function VF_AJAX_Terminate() { return; } /* -------------------------------------------------------- */ /* Rationalized virtual clipboard access to name space AJAX */ /* -------------------------------------------------------- */ function Put(val,np2,np3,inst) {AVSAVEVALUE(val,"AJAX",np2,np3,inst);} function GetA(np2,np3,inst) {return(AVRESTOREAVALUE("","AJAX",np2,np3,inst));} function GetN(np2,np3,inst) {return(AVRESTORENVALUE(0,"AJAX",np2,np3,inst));} /* ---------------------------------- */ /* Handle server responding to LOAD10 */ /* ---------------------------------- */ function FETCH_response(strFunction,strRequest,strPayload,objObject,flagFatalError,strFatalMessage) { /* Handle a fatal error */ if (flagFatalError) { alert(strFatalMessage); SETBUSY(false); return; }
...
/*
...
Put
...
the
...
employee
...
number
...
out
...
onto
...
the
...
screen
...
*/ Vis_EMPNO.innerText = GetA("EX4","EMPNO"); /* Get the IO Status and handle found and not found */ if (GetA("EX4","IO_STS") == "OK") /* Employee was found */ { Vis_SURNAME.innerText = GetA("EX4","SURNAME"); Vis_GIVENAME.innerText = GetA("EX4","GIVENAME"); Vis_SALARY.innerText = GetN("EX4","SALARY").toString(); Vis_POSTCODE.innerText = GetN("EX4","POSTCODE").toString(); DIV_Table.style.visibility = "visible"; DIV_Table.style.display = "inline"; DIV_Message.style.visibility = "hidden"; DIV_Message.style.display = "none"; } else /* Employee was not found */ { DIV_Message.children(0).innerText = "Employee number " + Vis_EMPNO.innerText + " could not be found"; DIV_Message.style.visibility = "visible"; DIV_Message.style.display = "inline"; DIV_Table.style.visibility = "hidden"; DIV_Table.style.display = "none"; } /* Drop busy status */ SETBUSY(false); /* Finished */ return; } </script> </HEAD> <BODY id='BODY_Tag'> <br/><br/><br/> <P align='center'>Instance List Example</p> <div id='DIV_Message'> <P align='center'>Loading ... please wait</p> </div> <div id='DIV_Table' style='visibility:hidden;display:none;'> <table> <tr><td>Employee Number</td><td id='Vis_EMPNO'></td></tr> <tr><td>Last Name</td><td id='Vis_SURNAME'></td></tr> <tr><td>First Name</td><td id='Vis_GIVENAME'></td></tr> <tr><td>Current Salary</td><td id='Vis_SALARY'></td></tr> <tr><td>Zip Code</td><td id='Vis_POSTCODE'></td></tr> </table> </div> </BODY> </HTML>
| Anchor | ||||
|---|---|---|---|---|
|
...
* This is just a simple RDML function.
...
* It is NOT a WAM.
...
* It is driven by the virtual clipboard
Function Options(*DIRECT *HEAVYUSAGE) * Define local fields Define Field(#REQUEST) Reffld(#STD_OBJ) Define Field(#MSGDTA) Type(*CHAR) Length(132) * Get the action the Javascript requested ....... Execute Subroutine(GETA) With_Parms(SYSTEM REQUEST 1 #REQUEST) * Now switch on the requested action Case Of_Field(#REQUEST) * Get details of an employee When Value_Is('= FETCH') Execute Subroutine(FETCH) Otherwise Use Builtin(BCONCAT) With_Args('Unknown request' #REQUEST 'received by' *FUNCTION) To_Get(#MSGDTA) Abort Msgid(DCM9899) Msgf(DC@M01) Msgdta(#MSGDTA) Endcase * Finished Return
...
* Get details of an employee Subroutine Name(FETCH) * Get the requested employee number Execute Subroutine(GETA) With_Parms(EX4 EMPNO 1 #EMPNO) * Fetch the details Fetch Fields(#Surname #GiveName #PostCode #Salary) From_File(Pslmst) With_Key(#Empno) * Send back the IO status + the details Execute Subroutine(PUTA) With_Parms(EX4 IO_STS 1 #IO$STS) Execute Subroutine(PUTA) With_Parms(EX4 SURNAME 1 #SURName) Execute Subroutine(PUTA) With_Parms(EX4 GIVENAME 1 #GIVENAME) Execute Subroutine(PUTN) With_Parms(EX4 POSTCODE 1 #POSTCODE) Execute Subroutine(PUTN) With_Parms(EX4 SALARY 1 #SALARY) Endroutine * ===================================================== * Rationalized subroutines for virtual clipboard access * ===================================================== Subroutine Name(PUTA) Parms((#NP2 *RECEIVED) (#NP3 *RECEIVED) (#INST *RECEIVED) (#AVAL *RECEIVED)) Define Field(#NP2) Type(*CHAR) Length(28) Define Field(#NP3) Type(*CHAR) Length(24) Define Field(#INST) Type(*DEC) Length(7) Decimals(0) Define Field(#AVAL) Type(*CHAR) Length(256) Use Builtin(VF_SAVEAVALUE) With_Args(#AVAL AJAX #NP2 #NP3 #INST) Endroutine Subroutine Name(PUTN) Parms((#NP2 *RECEIVED) (#NP3 *RECEIVED) (#INST *RECEIVED) (#NVAL *RECEIVED)) Define Field(#NVAL) Type(*DEC) Length(30) Decimals(9) Use Builtin(VF_SAVENVALUE) With_Args(#NVAL AJAX #NP2 #NP3 #INST) Endroutine Subroutine Name(GETA) Parms((#NP2 *RECEIVED) (#NP3 *RECEIVED) (#INST *RECEIVED) (#AVAL *RETURNED)) Use Builtin(VF_RESTOREAVALUE) With_Args(' ' AJAX #NP2 #NP3 #INST) To_Get(#AVAL) Endroutine Subroutine Name(GETN) Parms((#NP2 *RECEIVED) (#NP3 *RECEIVED) (#INST *RECEIVED) (#NVAL *RETURNED)) Use Builtin(VF_RESTORENVALUE) With_Args(0 AJAX #NP2 #NP3 #INST) To_Get(#NVAL) Endroutine