Ok, so same mixin class as before (my initial response to Boris) but this time we use it in a cCjGridColumn (not a cDbCjGridColumn)

Code:
Class cDemoCJGridColumn is a cCJGridColumn
    Import_Class_Protocol mixin_cCJGridProgressBar
    
    Procedure Construct_Object
        Forward Send Construct_Object
        
        Send Define_cCJGridProgressBar_Properties
    End_Procedure
    
    Procedure OnCreateColumn
        Boolean bProgress 
        
        Forward Send OnCreateColumn
        Get pbProgress to bProgress
        If bProgress Begin
            Delegate Set ComEnableMarkup to True
        End
    End_Procedure 
End_Class

And then we can use this inside an example view. Here I've taken the example for a cCjGrid (from the help) but I've added an additional column to show a progress bar

Code:
    Object oCustomerGrid is a cCJGrid
        Set Size to 200 300
        Set peAnchors to anAll
        Set pbReadOnly to True
        Set pbSelectionEnable to True      
            
        Object oCustomer_Customer_Number is a cCJGridColumn
            Set piWidth to 71
            Set psCaption to "Number"
            Set peDataType to Mask_Numeric_Window
            Set psMask to "######"
        End_Object
    
        Object oCustomer_Name is a cCJGridColumn
            Set piWidth to 257
            Set psCaption to "Customer Name"
        End_Object
    
        Object oCustomer_Status is a cCJGridColumn
            Set piWidth to 66
            Set psCaption to "Status"
            Set pbCheckbox to True
            Set psCheckboxTrue to "Y"
            Set psCheckboxFalse to "N"
        End_Object
        
        Object oProgressBar_Column is a cDemoCJGridColumn
            Set piWidth to 206
            Set psCaption to "Progress"
            Set pbProgress to True
            
            // Here you will need to determine what values to use. Typically this might be a global buffer value
            Procedure OnSetProgressBarValue Boolean ByRef bVisible String ByRef sLabel Number ByRef nPercentage
                Integer iRecs
                
                Move True to bVisible
                Move "Example" to sLabel
                Get_Attribute DF_FILE_RECORDS_USED of (RefTable(Customer)) to iRecs
                Move ((Customer.Customer_Number/iRecs)*100) to nPercentage
            End_Procedure
        End_Object
        
        Procedure LoadData 
            Handle hoDataSource
            tDataSourceRow[] TheData
            Boolean bFound
            Integer iRows iNum iName iStatus iProgress
            
            Get phoDataSource to hoDataSource
            
            // Get the datasource indexes of the various columns
            Get piColumnId of oCustomer_Customer_Number to iNum
            Get piColumnId of oCustomer_Name            to iName
            Get piColumnId of oCustomer_Status          to iStatus
            Get piColumnId of oProgressBar_Column       to iProgress
            
            // Load all data into the datasource array
            Clear Customer
            Find ge Customer by 1
            Move (Found) to bFound
            While (bFound)
                Move Customer.Customer_Number to TheData[iRows].sValue[iNum] 
                Move Customer.Name            to TheData[iRows].sValue[iName] 
                Move Customer.Status          to TheData[iRows].sValue[iStatus] 
                
                Get DisplayProgress of oProgressBar_Column to TheData[iRows].sValue[iProgress]
                
                Find gt Customer by 1
                Move (Found) to bFound
                Increment iRows
            Loop
            
            // Initialize Grid with new data
            Send InitializeData TheData
            Send MovetoFirstRow
        End_Procedure

Obviously this is just a silly example in which I'm calculating a progress value based on the customer number and total number of customer records, but you get the point.