Advertisement
Guest User

prprp

a guest
Jul 7th, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. USING Classes.OrderManager.
  2. USING Classes.OrderlineManager.
  3. /* ***************************  Definitions  ************************** */
  4. block-level ON ERROR UNDO, throw.
  5.  
  6. {tempTables.i}
  7.  
  8. DEF VAR vStartDate AS DATE INITIAL 02-15-97 FORMAT "9999-99-99" NO-UNDO.
  9. DEF VAR vEndDate AS DATE INITIAL 09-15-97 FORMAT "9999-99-99" NO-UNDO.
  10. DEF VAR vWhichItem AS INT NO-UNDO.
  11. DEF VAR vWhichOrder AS INT NO-UNDO.
  12. DEF VAR vLineNumber AS INT INIT 1 NO-UNDO.
  13. DEF VAR vDelete AS LOGICAL NO-UNDO.
  14. DEF VAR vInput AS INT INIT 3 NO-UNDO.
  15.  
  16. DEF VAR OrderManager AS CLASS OrderManager.
  17. DEF VAR OrderlineManager AS CLASS OrderlineManager.
  18.  
  19. DEF BUTTON btnFilterButton LABEL "Filter records"
  20.                            SIZE 18 BY 1.5.
  21.                            
  22.                          
  23. DEF BUTTON btnNewLine LABEL "New OrderLine"
  24.                       SIZE 18 BY 1.5.  
  25.                        
  26. DEF QUERY qGetOrders FOR ttOrder.            
  27. DEF QUERY qGetOrderLine FOR ttOrderLine.            
  28.                          
  29. DEF BROWSE bOrder QUERY qGetOrders NO-LOCK
  30.     disp ttOrder.CustNum COLUMN-LABEL "Customer Number":c
  31.          ttOrder.Ordernum COLUMN-LABEL "Order Number":c
  32.          ttOrder.OrderStatus COLUMN-LABEL "Order Status":c
  33.          ttOrder.OrderDate COLUMN-LABEL "Order Date":c
  34.     WITH 10 DOWN
  35.          TITLE "Orders"
  36.          WIDTH 92
  37.          FIT-LAST-COLUMN.
  38.          
  39. DEF BROWSE bOrderLine QUERY qGetOrderLine NO-LOCK
  40.     disp ttOrderLine.Itemnum COLUMN-LABEL "Item Number":c
  41.          ttOrderLine.Ordernum COLUMN-LABEL "Order Number":c
  42.          ttOrderLine.Qty COLUMN-LABEL "Quantity Ordered":c
  43.          ttOrderline.Price COLUMN-LABEL "Single Unit Price":c
  44.          ttOrderLine.OrderLineStatus COLUMN-LABEL "Order Status":c
  45.      WITH 8 DOWN
  46.           TITLE "OrderLine"
  47.           WIDTH 92
  48.           FIT-LAST-COLUMN.      
  49.          
  50. DEF VAR wMainWindow AS WIDGET-HANDLE NO-UNDO.
  51. //* *************************** Window properties ************************** */
  52.  
  53. CREATE WINDOW wMainWindow ASSIGN
  54.     HIDDEN = yes
  55.     TITLE = "Order Checker"
  56.     HEIGHT = 27
  57.     WIDTH = 100
  58.     RESIZE = no
  59.     SCROLL-BARS = no
  60.     STATUS-AREA = no
  61.     BGCOLOR = ?
  62.     FGCOLOR = ?
  63.     KEEP-FRAME-Z-ORDER = yes
  64.     THREE-D = yes
  65.     MESSAGE-AREA = no
  66.     SENSITIVE = yes.
  67.  
  68. //* ***************************  Frame properties  ************************** */
  69.  
  70. DEF FRAME fMainFrame
  71.     vStartDate AT ROW 2 COLUMN 10 VIEW-AS FILL-IN LABEL "From"
  72.     vEndDate AT ROW 2 COLUMN 40 VIEW-AS FILL-IN LABEL "To"
  73.     btnFilterButton AT ROW 1.75 COLUMN 70
  74.     bOrder AT ROW 4 COLUMN 5
  75.     bOrderLine AT ROW 15 COLUMN 5
  76.     btnNewLine AT ROW 24 COLUMN 5
  77.       WITH SIZE 100 BY 27
  78.       NO-BOX
  79.       THREE-D
  80.       SIDE-LABELS.
  81.  
  82. /* ***************************  Main Block  *************************** */
  83. VIEW wMainWindow.
  84.  
  85. ON CHOOSE OF btnFilterButton in FRAME fMainFrame
  86.     DO:
  87.         vStartDate = INPUT vStartDate.
  88.         vEndDate = INPUT vEndDate.
  89.         RUN filterOrders(INPUT vStartDate,INPUT vEndDate).
  90.     END.
  91.    
  92. ON "value-changed" OF bOrder in FRAME fMainFrame
  93.     DO:
  94.         vWhichOrder = ttOrder.Ordernum.
  95.         RUN showOrderline(vWhichOrder).
  96.     END.
  97.    
  98. ON default-action OF bOrderLine in FRAME fMainFrame
  99.     DO:
  100.         RUN orderLineInfo.p(ttOrderline.Itemnum).
  101.     END.
  102.  
  103. ON CHOOSE OF btnNewLine in FRAME fMainFrame
  104.     DO:
  105.         RUN addNewOrderline.
  106.     END.
  107.    
  108. ON "ctrl-e" OF bOrderline in FRAME fMainFrame
  109.     DO:
  110.        RUN editOrderline.
  111.     END.
  112.    
  113. ON "del" OF bOrderline in FRAME fMainFrame
  114.     DO:
  115.         RUN deleteOrderline.
  116.     END.
  117.    
  118.                          
  119. disp vStartDate WITH FRAME fMainFrame in WINDOW wMainWindow.
  120. disp vEndDate WITH FRAME fMainFrame in WINDOW wMainWindow.
  121.        
  122. /*Close queries!*/
  123. CLOSE QUERY qGetOrders.
  124. CLOSE QUERY qGetOrderline.
  125.        
  126. ENABLE all except btnNewLine WITH FRAME fMainFrame in WINDOW wMainWindow.
  127. WAIT-FOR window-close OF wMainwindow.
  128.  
  129. PROCEDURE filterOrders:
  130.     DEF INPUT PARAM vStartDate AS DATE NO-UNDO.
  131.     DEF INPUT PARAM vEndDate AS DATE NO-UNDO.
  132.                  
  133.     OrderManager = NEW OrderManager().
  134.     OrderManager:validateDates(vStartDate, vEndDate).
  135.     OrderManager:generateOrder(vStartDate, vEndDate, OUTPUT TABLE ttOrder).
  136.    
  137.     OPEN QUERY qGetOrders FOR EACH ttOrder.
  138.     bOrder:SELECT-ROW(1) in FRAME fMainFrame.
  139.     ENABLE btnNewLine WITH FRAME fMainFrame in WINDOW wMainWindow.
  140.     APPLY "value-changed" TO bOrder.
  141.    
  142.     catch eAnyError AS PROGRESS.Lang.Error :
  143.     MESSAGE "Error:" eAnyError:GetMessage(1) VIEW-AS ALERT-BOX ERROR.
  144.     END catch.
  145. END PROCEDURE.
  146.  
  147. PROCEDURE showOrderline:
  148.     DEF INPUT PARAM vWhichOrder AS INT NO-UNDO.
  149.    
  150.     OrderlineManager = NEW OrderlineManager().
  151.     OrderlineManager:generateOrderline(vWhichOrder, OUTPUT TABLE ttOrderline).
  152.     OPEN QUERY qGetOrderLine FOR EACH ttOrderLine.
  153.    
  154.     catch eAnyError AS PROGRESS.Lang.Error :
  155.     MESSAGE "Error:" eAnyError:GetMessage(1) VIEW-AS ALERT-BOX ERROR.
  156.     END catch.
  157. END PROCEDURE.
  158.    
  159. PROCEDURE addNewOrderline:
  160.     RUN createOrderLine.p(vWhichOrder, OUTPUT vLineNumber).
  161.     OrderlineManager:generateOrderline(vWhichOrder, OUTPUT TABLE ttOrderline).
  162.     OPEN QUERY qGetOrderLine FOR EACH ttOrderLine.
  163.     bOrderline:SELECT-ROW(vLineNumber) in FRAME fMainFrame.
  164. END PROCEDURE.
  165.  
  166. PROCEDURE editOrderline:
  167.     BUFFER-COPY ttOrderline TO ttOrderline2.
  168.     RUN editOrderlineDialog.p(input-output TABLE ttOrderline2).
  169.     RUN showOrderlineBrowse.p(vWhichOrder, input-output TABLE ttOrderline).
  170.     OPEN QUERY qGetOrderLine FOR EACH ttOrderLine.
  171.     EMPTY TEMP-TABLE ttOrderline2.
  172. END PROCEDURE.
  173.  
  174. PROCEDURE deleteOrderline:
  175.     MESSAGE "Do you wish to delete this Orderline?" VIEW-AS ALERT-BOX question buttons yes-no UPDATE vDelete.
  176.     IF vDelete THEN DO:
  177.         BUFFER-COPY ttorderline TO ttOrderline2.
  178.         RUN deleteOrderline.p(ttOrderline.OrderNum, ttOrderline.LineNum, input-output TABLE ttOrderline2).
  179.         RUN showOrderlineBrowse.p(vWhichOrder, input-output TABLE ttOrderline).
  180.         OPEN QUERY qGetOrderLine FOR EACH ttOrderLine.
  181.     END.
  182.    
  183.     IF NOT vDelete THEN DO:
  184.        RETURN.
  185.     END.
  186. END PROCEDURE.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement