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 alpha AS CHARACTER INIT "abcdefghijklmnopqrstuvwxyz". DEFINE VARIABLE v-column AS CHARACTER. DEFINE VARIABLE crange AS CHARACTER. 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 "order", INPUT 'ar-entity = "be"', INPUT "", INPUT 1, INPUT 1, 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 field labels on first pass*/ IF rownum NE 1 THEN hQry:GET-NEXT(). IF hQry:QUERY-OFF-END THEN LEAVE. REPEAT i = 1 TO hBuffer:NUM-FIELDS: /*Get Excel column label*/ IF i > 26 THEN DO: v-column = substring(alpha,(ii),1). IF i - (26 * ii) > 0 THEN v-column = v-column + substring(alpha,(i - (26 * ii)),1). ELSE v-column = v-column + "z". END. ELSE v-column = substring(alpha,i,1). ii = TRUNCATE((i / 26),0). /*Populate the Speadsheet*/ hBufFld = hBuffer:BUFFER-FIELD(i). ASSIGN crownum = STRING(rownum + 1) crange = v-column + crownum hws:range(crange):VALUE = (IF rownum = 0 THEN hBufFld:NAME ELSE hBufFld:STRING-VALUE). END. rownum = rownum + 1. END. /*delete rec-id from Column A*/ hws:Range("A1"):Select. hexcel:Selection:EntireColumn:Delete. /*Leave the spreadsheet open on the users desktop. 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). */