DEFINE VARIABLE hTempTable AS HANDLE NO-UNDO.
DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
DEFINE VARIABLE hQry AS HANDLE NO-UNDO.
DEFINE VARIABLE hBufFld AS HANDLE NO-UNDO.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
DEFINE VARIABLE ii AS INTEGER NO-UNDO.
DEFINE VARIABLE hExcel AS COM-HANDLE.
DEFINE VARIABLE hws AS COM-HANDLE.
DEFINE VARIABLE hwb AS COM-HANDLE.
DEFINE VARIABLE hrange AS COM-HANDLE.
DEFINE VARIABLE rownum AS INT. 
DEFINE VARIABLE crownum AS CHARACTER.
DEFINE VARIABLE colnum AS INT INIT 1.
DEFINE VARIABLE alpha AS CHARACTER INIT "abcdefghijklmnopqrstuvwxyz".
DEFINE VARIABLE crange AS CHARACTER.
DEFINE VARIABLE custbal AS DECIMAL.

CREATE "Excel.Application" hExcel.

IF NOT VALID-HANDLE(hExcel) THEN RETURN.

/* Use FALSE if you don't want to seen excel work */
hExcel:Visible = TRUE.

hwb = hExcel:WorkBooks:ADD.
hws = hwb:worksheets:ADD.
    
RUN get_tt.p 
            (INPUT "ship-control",
              INPUT 'ar-entity = "be"',
              INPUT "",
              INPUT 1,
              INPUT 10000,
              OUTPUT TABLE-HANDLE hTempTable) NO-ERROR.

IF ERROR-STATUS:ERROR THEN
DO:
    IF RETURN-VALUE <> "" THEN
        MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX.
    ELSE
        MESSAGE ERROR-STATUS:GET-MESSAGE(1).
END.

IF hTempTable = ? THEN
DO :
    MESSAGE "No TEMP-TABLE returned" VIEW-AS ALERT-BOX.
    RETURN.
END.

hBuffer = hTempTable:DEFAULT-BUFFER-HANDLE.

CREATE QUERY hQry.
hQry:SET-BUFFERS(hBuffer).

hQry:QUERY-PREPARE("FOR EACH " + hBuffer:NAME + " NO-LOCK").
hQry:QUERY-OPEN().

REPEAT:
    /*repeat first row to allow display of column labels on first pass*/
    IF rownum NE 1 THEN 
        hQry:GET-NEXT().
    IF hQry:QUERY-OFF-END THEN
        LEAVE.
    /*start with 2 to not display rec-id*/
    REPEAT i = 2 TO hBuffer:NUM-FIELDS:
        hBufFld = hBuffer:BUFFER-FIELD(i).
        ASSIGN 
            crownum = STRING(rownum + 1)
            crange = substring(alpha,(i - 1),1) + crownum
            hws:range(crange):VALUE = 
            (IF rownum = 0 THEN hBufFld:NAME
                ELSE hBufFld:STRING-VALUE).
    END.
    rownum = rownum + 1.
END.                                
/*
hwb:CLOSE.
hexcel:QUIT.
*/
RELEASE OBJECT hws.
RELEASE OBJECT hwb.
RELEASE OBJECT hExcel.


/* The select method set's the selection in the application object, so get
it from there  
    hws:Range("A12:C20"):Select.
    hexcel:Selection:Interior:ColorIndex = 15.
    hexcel:Selection:Interior:Pattern = 1.
    hexcel:Selection:Interior:PatternColorIndex = -4105.

 ASSIGN
    crange = "d" + STRING(rownum + 2)
    hws:range(crange):VALUE = "Order Total"
    hws:cells(rownum + 2, 5):formula =
        "=sum(e2:e" + STRING(rownum - 1) + ")"
    hws:range(crange):borders(7):weight = 3
    hws:range(crange):borders(10):weight = 3
    crange = "e1:e" + STRING(rownum + 3)
    hws:range(crange):borders(10):weight = 3
    crange = "a" + STRING(rownum + 3) + ":e" + STRING(rownum + 3)
    hws:range(crange):borders(9):weight = 3
    ws:pagesetup:leftmargin = hexcel:inchestopoints(0.5)
    hws:pagesetup:rightmargin = hexcel:inchestopoints(0.5).

    
*/
