| GridControl::GetIsSubtotal  DescriptionReturns whether a row contains subtotals Syntax
bool GetIsSubtotal( long Row )
 Parameters
    Row[input] 0-offset row index Returntrue if a row contains subtotals, otherwise false ExamplesThe examples in this section will use an existing grid dialog resource DLL that gets installed with Origin C's Developer Kit. The DLL can be found in this zip file, under \Dialog Builder\GridDLG sub-folder. 
#include <..\Originlab\DialogEx.h>
#include "GridDLGRes.h"// resource DLL header
class GridCtrlDLG : public ResizeDialog
{
public:
        GridCtrlDLG() : ResizeDialog(IDD_GRID_DLG, "GridDLG")
        {
        }
        int DoModal(HWND hParent = NULL)
        {
                InitMsgMap();
                int nRet = ResizeDialog::DoModal(hParent);
                return nRet;
        }
protected:
///----------------- Message Map ----------------
        EVENTS_BEGIN
                ON_INIT(OnInitDialog)
                ON_SIZE(OnDlgResize)
                ON_GETMINMAXINFO(OnMinMaxInfo)
                ON_OK(OnOK)
        EVENTS_END
///----------------------------------------------
        
        BOOL OnInitDialog()
        {
                ResizeDialog::OnInitDialog(0, "Grid Dialog");
                
                //initialize grid control
                m_GridCtrl.Init(IDC_GRID, *this);
                m_GridCtrl.SetupRowsCols( 1, 0, 5, 1 );
                m_GridCtrl.SetOutlineBar(flexOutlineBarSimpleLeaf);
                
                //move grid control to top left
                RECT rrList;    
                rrList.top = rrList.left = GetControlGap();
                m_GridCtrl.MoveWindow(rrList);
                
                GetItem(IDOK).Text = "Test";//for example codes
                
                SetInitReady();
        
                //fill grid
                int nCol = m_GridCtrl.GetColOffset();          
                vector<string> vsItems = {"Mon", "Tue", "Wed", "Thu", "Fri", "AM", "PM", "2:00", "3:00"};
                m_GridCtrl.CheckExpandRows( vsItems.GetSize() - m_GridCtrl.GetRowOffset() );
                m_GridCtrl.SetCells(vsItems, nCol);
                
                m_GridCtrl.SetIsSubtotal(5, true);
                m_GridCtrl.SetRowOutlineLevel(5, 0);
                
                m_GridCtrl.SetIsSubtotal(6, true);
                m_GridCtrl.SetRowOutlineLevel(6, 1);
                
                m_GridCtrl.SetIsSubtotal(7, true);
                m_GridCtrl.SetRowOutlineLevel(7, 1);
                
                m_GridCtrl.SetIsSubtotal(8, true);
                m_GridCtrl.SetRowOutlineLevel(8, 2);
                
                m_GridCtrl.SetIsSubtotal(9, true);
                m_GridCtrl.SetRowOutlineLevel(9, 2);
                
                return TRUE;
        }     
        BOOL OnDlgResize(int nType, int cx, int cy)
        {
                if(!IsInitReady())
                        return TRUE;          
                
                uint nButtonIDs[] = {IDOK, 0};
                ArrangeMainItemAndControls(nButtonIDs, IDC_GRID, NULL, false);
                return TRUE;
                
        }     
        BOOL OnOK()
        {
                doExample();
                
                return FALSE;
        }
private:
        void doExample()
        {
                for(int ii=m_GridCtrl.GetRowOffset();ii<m_GridCtrl.GetNumRows()+m_GridCtrl.GetRowOffset();ii++)
                {
                printf("The subtotal status of raw %d is %d\n",ii,m_GridCtrl.GetIsSubtotal(ii));
                if(m_GridCtrl.GetIsSubtotal(ii))
                        printf("The outline level of raw %d is %d\n",ii,m_GridCtrl.GetRowOutlineLevel(ii));
                }
        }
        
private:
        GridControl         m_GridCtrl;
};
bool OpenGridDLG()    
{
        GridCtrlDLG myDlg;
        myDlg.DoModal( GetWindow() );
        return true;
}
RemarkSee Also
    GridControl::SetIsSubtotalGridControl::GetRowOutlineLevelGridControl::SetRowOutlineLevelGridControl::SetOutlineBar header to IncludedGridControl.h |