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 INIT 2.
DEFINE VARIABLE crownum AS CHARACTER.
DEFINE VARIABLE crange AS CHARACTER.
DEFINE VARIABLE dispdata like item-whs-pri.price extent 10.
DEFINE VARIABLE rpt-type AS LOGICAL INIT YES.
def var comb-factor as decimal.
DEFINE VARIABLE cnt AS INTEGER.

     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.
    
    hws:COLUMNS("a"):columnwidth = 12.    
    hws:COLUMNS("b"):columnwidth = 20.
    hws:COLUMNS("c"):columnwidth = 10.
    hws:COLUMNS("d"):columnwidth = 10.
    hws:COLUMNS("e"):columnwidth = 10.
    hws:COLUMNS("f"):columnwidth = 10.
    hws:COLUMNS("g"):columnwidth = 10.
    hws:COLUMNS("h"):columnwidth = 10.
    hws:COLUMNS("i"):columnwidth = 10.
    hws:COLUMNS("j"):columnwidth = 10.
    hws:COLUMNS("k"):columnwidth = 10.
    hws:COLUMNS("l"):columnwidth = 10.
    hws:range("a1:l1"):FONT:bold = TRUE.
    hws:range("a1"):value = "Item Number".
    hws:range("b1"):value = "Description".
    hws:range("c1"):value = "Level 1".
    hws:range("d1"):value = "Level 2".
    hws:range("e1"):value = "Level 3".
    hws:range("f1"):value = "Level 4".
    hws:range("g1"):value = "Level 5".
    hws:range("h1"):value = "Level 6".
    hws:range("i1"):value = "Level 7".
    hws:range("j1"):value = "Level 8".
    hws:range("k1"):value = "Level 9".
    hws:range("l1"):value = "Level 10".

    for each item no-lock where in-entity = "be"                            
        and item.item-no ge "991410-000"                                                  
        and item.item-no le "9914965-999"                                                  
        and item.active,                                                            
        each item-whs-d of item where                                               
            item-whs-d.whs-code = "11"                                              
            no-lock,                                                                
        each item-whs-pri of item-whs-d                                             
        no-lock:                                                                    
                                                                                
        if  item-whs-pri.price[1] = 0 then next.                                    
                                                                                
        if rpt-type then do:                                                        
            repeat cnt = 1 to 10:                                                   
                if item-whs-pri.dollar-pct[cnt] then                                
                    dispdata[cnt] = item-whs-pri.price[cnt].                        
                else do:                                                            
                    comb-factor =                                                   
                        1 * (1 - (truncate(item-whs-pri.price[cnt],0)               
                                         - item-whs-pri.price[cnt])).               
                    dispdata[cnt] = round(item-whs-pri.price[1]                     
                                        * comb-factor,2).                           
                END.
            END.
        END.
        ASSIGN
            crownum = STRING(rownum)
            crange = "a" + crownum
            hws:range(crange):VALUE = item.item-no
            crange = "b" + crownum
            hws:range(crange):VALUE = item.description[1]
            crange = "c" + crownum
            hws:range(crange):VALUE = dispdata[1]
            crange = "d" + crownum
            hws:range(crange):VALUE = dispdata[2]
            crange = "e" + crownum
            hws:range(crange):VALUE = dispdata[3]
            crange = "f" + crownum
            hws:range(crange):VALUE = dispdata[4]
            crange = "g" + crownum
            hws:range(crange):VALUE = dispdata[5]
            crange = "h" + crownum
            hws:range(crange):VALUE = dispdata[6]
            crange = "i" + crownum
            hws:range(crange):VALUE = dispdata[7]
            crange = "j" + crownum
            hws:range(crange):VALUE = dispdata[8]
            crange = "k" + crownum
            hws:range(crange):VALUE = dispdata[9]
            crange = "l" + crownum
            hws:range(crange):VALUE = dispdata[10]

            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
            hws:pagesetup:leftmargin =
                hexcel:inchestopoints(0.5)
            hws:pagesetup:rightmargin =
                hexcel:inchestopoints(0.5).
*/
