BHGridCtrl -III dio. Implementacija spajanja ćelija (merge cells)


image

Implementacija spajanja ćelija u Grid kontroli nastavak je razvoja ove kontrole. Spajanje ćelija omogućeno je članom:

CArray<CBHCellRange, CBHCellRange&> m_MergedCellArray;

koji čuva infomacija o spojenim ćelijama. Manipulacija oko spajanja ćelija vrši se preko sljedećih metoda:

//Cell merge support
void UnMergedCells(int nStartRow, int nStartCol, int nEndRow,int nEndCol);
void   MergedCells(int nStartRow, int nStartCol, int nEndRow,int nEndCol);
CBHCellRange GetMergedRange(CCellID celMerged);

Prvom metodom rastavljamo jednu ćeliju na osnovne početne ćelije, dok s drugom metodom spajamo ćelije. U oba slučaja argumenti metoda se startne kolone i vrste.

Treća metoda GetMergedRange(CCelID cellMerged) – je metoda koja provjerava i vraća cjelokupan spojeni region u kojem se nalazi data ćelija, a koja je prosljeđena kao argument. U biti sve tri metode manipulišu poljem ćelija koji je definisan na početku.

Ćelije se mogu spajati bilo da se radi o zaleđenim ili standardnim kolonama ili vrstama. Jedino  se ne mogu spajati jedna zaleđena i druga obična ćelija.

Način na koji se iscrtavaju spojene ćelije je da se odredi širina i dužina ćelije, stim da se preko navedene metode (GetMergedRange) provjerava da li je dotična ćelija u sastavu grupe ćelija koje su spojene. Na taj način se prva u nizu ćelija iscrta, dok ostale ćelije u grupi spojenih ćelija se ne iscrtavaju.

Source code za ovu verziju možete skinuti ovdje.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s