CLASS cv.B ABSTRACT: 
    
   /* --- Primitive Type Properties --- */
    DEFINE ABSTRACT PROPERTY propChar       AS CHARACTER   NO-UNDO GET. SET.
    DEFINE PROPERTY propLongChar   AS LONGCHAR    NO-UNDO GET. SET.
    DEFINE PROPERTY propInt        AS INTEGER     NO-UNDO GET. SET.
    DEFINE PROPERTY propInt64      AS INT64       NO-UNDO GET. SET.
    DEFINE PROPERTY propDec        AS DECIMAL     NO-UNDO GET. SET.
    DEFINE PROPERTY propLog        AS LOGICAL     NO-UNDO GET. SET.
    DEFINE PROPERTY propDate       AS DATE        NO-UNDO GET. SET.
    DEFINE PROPERTY propDateTime   AS DATETIME    NO-UNDO GET. SET.
    DEFINE PROPERTY propDateTimeTZ AS DATETIME-TZ NO-UNDO GET. SET.
    DEFINE PROPERTY propHandle     AS HANDLE      NO-UNDO GET. SET.
    DEFINE PROPERTY propMemptr     AS MEMPTR      NO-UNDO GET. SET.
    DEFINE PROPERTY propRaw        AS RAW         NO-UNDO GET. SET.
    DEFINE PROPERTY propRowid      AS ROWID       NO-UNDO GET. SET.
    DEFINE PROPERTY propRecid      AS RECID       NO-UNDO GET. SET.
    DEFINE PROPERTY propComHandle  AS COM-HANDLE  NO-UNDO GET. SET.

    DEFINE PROPERTY propIntExt     AS INTEGER     EXTENT 5 NO-UNDO GET. SET.
   
   /* temp-table definitions */
    DEFINE TEMP-TABLE ttOrder NO-UNDO BEFORE-TABLE bttOrder 
      FIELD OrderNum AS INTEGER
      FIELD CustNum AS INTEGER
      FIELD OrderDate AS DATE
      FIELD ShipDate AS DATE
      FIELD PromiseDate AS DATE
      FIELD OrderTotal AS DECIMAL
      INDEX OrderNum IS UNIQUE PRIMARY OrderNum.
                
    DEFINE TEMP-TABLE ttOrderLine NO-UNDO BEFORE-TABLE bttOrderLine 
      FIELD OrderNum AS INTEGER
      FIELD LineNum AS INTEGER
      FIELD ItemNum AS INTEGER
      FIELD Price AS DECIMAL
      FIELD Qty AS INTEGER
      FIELD Discount AS INTEGER
      FIELD ExtendedPrice AS DECIMAL
      INDEX OrderNum_LineNum IS UNIQUE PRIMARY OrderNum LineNum. 
                
    /* dataset definition */ 
    DEFINE DATASET dsOrderOrderLine FOR ttOrder, ttOrderLine 
      DATA-RELATION drOrderOrderLine FOR ttOrder, ttOrderLine 
        RELATION-FIELDS (OrderNum, OrderNum). 
                
    /* query definition for the top-level temp-table */ 
    DEFINE QUERY qOrder FOR Order. 
                
    /* data-source definitions */ 
    DEFINE DATA-SOURCE srcOrder FOR QUERY qOrder. /* Points to query */
    DEFINE DATA-SOURCE srcOrderLine FOR OrderLine. /* Points to table */
    
    DEFINE WORK-TABLE showsales
      FIELD region    AS INT LABEL "Region"
      FIELD state     LIKE Customer.State LABEL "St"
      FIELD tot-sales LIKE Customer.Balance COLUMN-LABEL "Total!Sales".
   
   CONSTRUCTOR B():
       propInt = 15.
   END.
   
    METHOD PUBLIC CHARACTER getChar():
        RETURN "Hello World".
    END METHOD.

    METHOD PUBLIC LONGCHAR getLongChar():
        DEFINE VARIABLE lc AS LONGCHAR NO-UNDO.
        lc = "Large text content...".
        RETURN lc.
    END METHOD.

    METHOD PUBLIC INTEGER getInt():
        RETURN 42.
    END METHOD.

    METHOD PUBLIC INT64 getInt64():
        RETURN 9223372036854775807.
    END METHOD.

    METHOD PUBLIC DECIMAL getDec():
        RETURN 123.45.
    END METHOD.

    METHOD PUBLIC LOGICAL getLog():
        RETURN TRUE.
    END METHOD.

    METHOD PUBLIC DATE getDate():
        RETURN TODAY.
    END METHOD.

    METHOD PUBLIC DATETIME getDateTime():
        RETURN NOW.
    END METHOD.

    METHOD PUBLIC DATETIME-TZ getDateTimeTZ():
        RETURN NOW.
    END METHOD.

    METHOD PUBLIC MEMPTR getMemptr():
        DEFINE VARIABLE m AS MEMPTR NO-UNDO.
        SET-SIZE(m) = 10.
        RETURN m.
    END METHOD.

    METHOD PUBLIC RAW getRaw():
        DEFINE VARIABLE r AS RAW NO-UNDO.
        RETURN r.
    END METHOD.

    METHOD PUBLIC ROWID getRowid():
        RETURN ?. /* Returns unknown or a valid ROWID from a buffer */
    END METHOD.

    METHOD PUBLIC RECID getRecid():
        RETURN ?. 
    END METHOD.

    METHOD PUBLIC HANDLE getHandle():
        RETURN TEMP-TABLE ttOrder:HANDLE.
    END METHOD.

    METHOD PUBLIC COM-HANDLE getComHandle():
        DEFINE VARIABLE hExcel AS COM-HANDLE NO-UNDO.
        RETURN hExcel.
    END METHOD.

    METHOD PUBLIC Progress.Lang.Object getObject():
        /* Returns any ABL Class instance */
        RETURN THIS-OBJECT.
    END METHOD.

    METHOD PUBLIC INTEGER EXTENT getIntExt():
        RETURN propIntExt.
    END METHOD.
    
    METHOD PUBLIC VOID doWork():
        MESSAGE "Action performed, no return value." VIEW-AS ALERT-BOX.
    END METHOD.
    
   METHOD PROTECTED VOID test(INPUT txt AS CHARACTER):
      MESSAGE "TEST".
   END METHOD.

END CLASS.