This example is self-contained and requires no additional work besides compilation.

     Function Options(*DIRECT)
     *
     Define Field(#PRDID) Type(*CHAR) Length(10)
     Define Field(#PRDNME) Type(*CHAR) Length(20)
     Define Field(#PRDAMT) Type(*DEC) Length(10) Decimals(2)
     Define Field(#COUNT) Type(*DEC) Length(5) Decimals(0)
     *
     Def_List Name(#LST1) Fields(#PRDID #PRDNME #PRDAMT) Type(*WORKING)
     *
     * JSMX_BEGIN
     *
     Use Builtin(JSMX_BEGIN)
     *
     * JSMX_OPEN
     *
     Use Builtin(JSMX_OPEN) With_Args('LOCALHOST:7560') To_Get(#JSMXSTS #JSMXMSG #JSMXHDLE1)
     Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMXMSG)
     *
     * SERVICE_LOAD
     *
     #JSMXCMD := 'SERVICE_LOAD SERVICE(ExcelService) TRACE(*YES)'
     Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMXSTS #JSMXMSG)
     Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMXMSG)
     *
     * CREATE
     *
     #JSMXCMD := 'CREATE'
     Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMXSTS #JSMXMSG)
     Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMXMSG)
     *
     * ADD OBJECT(*SHEET)
     *
     #JSMXCMD := 'ADD OBJECT(*SHEET) SHEET(MyTest)'
     Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMXSTS #JSMXMSG)
     Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMXMSG)
     *
     * ADD OBJECT(*CELLSTYLE)
     *
     #JSMXCMD := 'ADD OBJECT(*CELLSTYLE) TYPE(*NUMBER) COLUMN(5) RANGE(10,20) FONT(*TAHOME) FORMAT(*FORMAT4) HALIGN(*RIGHT) BACKGROUND(*YELLOW)'
     Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMXSTS #JSMXMSG)
     Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMXMSG)
     *
     * WRITE LIST
     *
     Begin_Loop Using(#COUNT) To(20)
     #PRDID := 'ID' + #COUNT.AsString
     #PRDNME := 'Product' + #COUNT.AsString
     #PRDAMT := 2000.45 + #COUNT
     Add_Entry To_List(#LST1)
     End_Loop
     *
     #JSMXCMD := 'WRITE R1C1(10,3)'
Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMXSTS #JSMXMSG #LST1)
Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMXMSG)
*
* READ LIST
*
Clr_List Named(#LST1)
*
#JSMXCMD := 'READ R1C1(10,3) ROWCOUNT(5)'
Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMXSTS #JSMXMSG #LST1)
Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMXMSG)
*
Selectlist Named(#LST1)
* Display Fields(#PRDID #PRDNME #PRDAMT)
Endselect
*
* SAVE FILE
*
#JSMXCMD := 'SAVE FILE(demo.xlsx)'
Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMXSTS #JSMXMSG)
Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMXMSG)
*
* CLOSE
*
#JSMXCMD := 'CLOSE'
Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 #JSMXCMD) To_Get(#JSMXSTS #JSMXMSG)
Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMXMSG)
*
* SERVICE_UNLOAD
*
Use Builtin(JSMX_COMMAND) With_Args(#JSMXHDLE1 'SERVICE_UNLOAD') To_Get(#JSMXSTS #JSMXMSG)
Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMXMSG)
*
* JSMX_CLOSE
*
Use Builtin(JSMX_CLOSE) With_Args(#JSMXHDLE1) To_Get(#JSMXSTS #JSMXMSG)
Execute Subroutine(CHECK) With_Parms(#JSMXSTS #JSMXMSG)
*
* JSMX_END
*
Use Builtin(JSMX_END)
*
* SUB ROUTINES
*
Subroutine Name(CHECK) Parms((#JSMXSTS *RECEIVED) (#JSMXMSG *RECEIVED))
     *
     If Cond('#JSMXSTS *NE OK')
     *
     Use Builtin(JSMX_CLOSE) With_Args(#JSMXHDLE1) To_Get(#JSMXSTS #JSMXMSG)
     *
     Menu Msgtxt('Java service error has occurred')
     *
     Endif
     *
     Endroutine
  • No labels