ExcelService Example

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