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). */