Object Oriented Filtering (OOF)/Example - Dragan S. Pusonjic
Previous Table of Contents
Program code(methods)               

 

thisform.Init()    

        LOCAL aNiz,cxVdfClass,cxVdfLib

            this.cOldDir = FULLPATH(CURDIR())
            this.cOldPath = SET('PATH')
            this.cOldClassLib = SET('CLASSLIB')
            cxVdfClass = "
c:\Vdf_solution"
            this.cVdfClassLib = cxVdfClass
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_CLASS'
                    SET CLASSLIB TO (cxVdfLib) ADDITIVE
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_ADVANSOBJECT'
                    SET CLASSLIB TO (cxVdfLib) ADDITIVE
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_CALENDAR'
                    SET CLASSLIB TO (cxVdfLib) ADDITIVE
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_FORM'
                    SET CLASSLIB TO (cxVdfLib) ADDITIVE
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_PRIMARYOBJECT'
                    SET CLASSLIB TO (cxVdfLib) ADDITIVE
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_PRINTOBJECT '
                    SET CLASSLIB TO (cxVdfLib) ADDITIVE
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_ORDER'
                    SET CLASSLIB TO (cxVdfLib) ADDITIVE
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_VIEW'
                    SET CLASSLIB TO (cxVdfLib) ADDITIVE

            DECLARE aNiz [ 3,2 ]
                aNiz [ 1,1 ] = "Order date + Order number"
                aNiz [ 1,2 ] = "Orders.order_date,Orders.order_number"
                aNiz [ 2,1 ] = "Order number"
                aNiz [ 2,2 ] = "Orders.order_number"
                aNiz [ 3,1 ] = "Ship to name"
                aNiz [ 3,2 ] = "Orders.ship_to_name"
        DECLARE thisform.xOrderArray [ 3,2 ]
        =ACOPY(aNiz,thisform.xOrderArray)
            thisform.cboOrder.ListIndex = 1
            thisform.cboOrder.DisplayValue = thisform.xOrderArray [ 1,1 ]
            thisform.cboOrder.Refresh()

**********************************************************

thisform.Destroy()    

    LOCAL luTemp,cxVdfLib
        SET PATH TO (this.cOldPath)
            cxVdfClass = this.cVdfClassLib
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_CLASS'
                    RELEASE CLASSLIB (cxVdfLib)
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_ADVANSOBJECT'
                    RELEASE CLASSLIB (cxVdfLib)
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_CALENDAR'
                    RELEASE CLASSLIB (cxVdfLib)
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_FORM'
                    RELEASE CLASSLIB (cxVdfLib)
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_PRIMARYOBJECT'
                    RELEASE CLASSLIB (cxVdfLib)
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_PRINTOBJECT '
                    RELEASE CLASSLIB (cxVdfLib)
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_ORDER'
                    RELEASE CLASSLIB (cxVdfLib)
                cxVdfLib = cxVdfClass + 'VDFCLASS\VDF_VIEW'
                    RELEASE CLASSLIB (cxVdfLib)

        luTemp = this.cOldClassLib
        SET CLASSLIB TO &luTemp
        CD (this.cOldDir)


**********************************************************

thisform.xSqlExecute()    

    LOCAL cxWhereCond,nSortIndexValue,cxOrderUslov
        thisform.grdDisplay.RecordSource = ""
        cxOrderUslov = thisform.xOrderArray [ thisform.cboOrder.ListIndex ,2 ]

        cxWhereCond = 'Orders.order_id = Order_line_items.order_id .AND. ' + ;
                                    'Orders.customer_id = Customer.customer_id .AND. ' + ;
                                    'Orders.shipper_id = Shippers.shipper_id .AND. ' + ;
                                    'Order_line_items.product_id = Products.product_id .AND. ' + ;
                                    'Orders.employee_id = employee.employee_id '

    cxWhereCond = thisform.Orders.xWriteFilter(cxWhereCond)
        cxWhereCond = thisform.OrdersDate.xWriteFilter(cxWhereCond)
            cxWhereCond = thisform.Vdf_inlist1.xWriteFilter(cxWhereCond)
                cxWhereCond = thisform.ShipToCity.xWriteFilter(cxWhereCond)
                    cxWhereCond = thisform.Paid.xWriteFilter(cxWhereCond)


    WAIT WIND("Wait...") NOWAIT

        SELECT Orders.order_number AS cxOrder_number, ;
                        Orders.order_date AS cxOrder_date, ;
                        ALLTRIM(Orders.ship_to_address) + ',' + ;
                            ALLTRIM(Orders.ship_to_postal_code) + ',' + ;
                                ALLTRIM(Orders.ship_to_city)+ ',' + ;
                                    ALLTRIM(Orders.ship_to_country) AS cxShipToName , ;
                        Orders.paid AS cxPaid ,;
                        SUM((Order_line_items.unit_price * Order_line_items.quantity ) + ;
                        Orders.freight - ;
                        ((Order_line_items.unit_price * ;
                                Order_line_items.quantity) * Orders.discount / 100 ) );
                                                                                                        AS cxTotal,;
                        Orders.order_id ;
        FROM tastrade!orders,tastrade!order_line_items,tastrade!customer,;
                        tastrade!shippers,tastrade!employee,tastrade!products;
        WHERE &cxWhereCond;
        GROUP BY Orders.order_id ;
        ORDER BY &cxOrderUslov ;
        INTO CURSOR csrOrders
        GO TOP
            thisform.grdDisplay.RecordSource = "csrOrders"


   WAIT WIND("It is finished...") NOWAIT
            thisform.zOsvetliBrowse()
            thisform.grdDisplay.refresh()

******************************************************************

thisform.grdDisplay.Refresh()       

LOCAL oGrid
        oGrid = thisform.grdDisplay
        oGrid.BackColor = RGB(255,255,255)
        oGrid.ForeColor = RGB(0,0,0)
        oGrid.Refresh()
 

******************************************************************

thisform.zZatamniBrowse()   thisform.zOsvetliBrowse()    

    LOCAL oGrid
        oGrid = thisform.grdDisplay
        oGrid.BackColor = RGB(192,192,192)
        oGrid.ForeColor = RGB(0,0,0)
        oGrid.Refresh()
 

********************************************************************

thisform.grdDisplay.Destroy()    

    IF USED("csrOrders")
        USE IN csrOrders
    ENDIF

************************************************************************

thisform.cboOrder.Click()    

    thisform.zZatamniBrowse()

************************************************************************

thisform.cmdRefresh.Click()    

    thisform.xSQLexecute()

**********************************************************************

thisform.cmdClose.Click()    

    thisform.release()

************************************************************************

thisform.vdfInList1.uGroupMenu()    

    DECLARE this.uArrayInMenu [ 2 ]

        this.uArrayInMenu [ 1 ] = "thisform.Orders"
        this.uArrayInMenu [ 2 ] = "thisform.OrdersDate"

************************************************************************
 

Previous Table of Contents