Grouper et dégrouper

Méthode

Grouper une plage qui commence à (2,1) avec un nombre de lignes égale à 3 et un nombre de colonne égale à 4 :
grid.MergeRange(new ReoGridRange(2, 1, 3, 4));
22_2.jpg

Dégrouper des cellules dans une plage :
grid.UnmergeRange(new ReoGridRange(0, 0, 10, 10));

Action

Grouper une plage qui commence à (0,0) avec un nombre de ligne de 4, un nombre de colonne de 6:
grid.DoAction(new RGMergeRangeAction(new ReoGridRange(0, 0, 4, 6)));
Dégrouper une plage de cellules :
grid.DoAction(new RGUnmergeRangeAction(new ReoGridRange(0, 0, 4, 6)));

Lancer un Script

Grouper une plage spécifique par script :
grid.mergeRange(new Range(0, 0, 4, 6));
grid.unmergeRange(new Range(0, 0, 4, 6));
Ou appliqué à une plage sélectionnée :
grid.mergeRange(grid.selection);
grid.unmergeRange(grid.selection);

Note

La méthode UnmergeRange va chercher et dégrouper toutes les cellules groupées dans une plage spécifique, Les cellules groupées A, B et C ci-dessous seront dégroupées ensemble si la plage rouge est la cible.
9.jpg

Cellules groupées

Vérification de cellule groupée

Seule la cellule en haut à gauche de la plage groupée est une cellule groupée.
10.jpg

Utiliser la méthode IsMergedCell pour vérifier si une cellule est groupée :
bool isMergedCell = grid.IsMergedCell(2, 1);      // false
bool isMergedCell = grid.IsMergedCell(2, 2);      // true
bool isMergedCell = grid.IsMergedCell(2, 3);      // false

Rowspan & Colspan (portée d'une ligne et portée d'une colonne)

Une cellule groupée a deux propriétés qui sont utilisées pour déterminer combien de cellule sont groupées.
11.jpg
La cellule à la position 2:1 est une cellule groupée, la portée de la ligne est 4 et la portée de la colonne est 3.

Obtention de la portée de la ligne et de la colonne en appelant la méthode GetRowspan :
Get rowspan et colspan:
var rowspan = cell.GetRowspan();   // nombre de rowspan
var colspan = cell.GetColspan();   // nombre de colspan
La propriété IsMergedCell vérifie si une cellule est groupée :
bool isMergedCell = cell.IsMergedCell;

Découverte d'une cellule groupée

ReoGrid fournit une méthode appelée GetMergedCellOfRange qui est utilisée pour trouver des cellules à partir d'une plage spécifiée.
12.jpg
ReoGridCell output = grid.GetMergedCellOfRange(input);

Cellules valides et invalides

Les cellules groupées par d'autres seront invalides. On ne peut pas appliquer un style ou des données sur une cellule invalide. La plage rouge est une cellule groupée, les cellules qui contiennent 'No' sont invalides.
19.jpg
Il y a une méthode appelée IsValidCell qui est utilisée pour vérifier si une cellule est valide.
grid.IsValidCell(2, 2);      // true
grid.IsValidCell(2, 3);      // false

Vérification d'une cellule groupée

Il y a une méthode qui permet de vérifier et d'obtenir une cellule entière.
56.jpg
ReoGridRange outputRange = grid.CheckMergedRange(inputRange);

Exception pour l'intersection d'une plage

Une plage peut coïncider avec des cellules groupées et donc cela peut entrainer une exception RangeIntersectionException.
20.jpg
Le code de l'utilisateur devrait tenir compte de cette exception et annuler l'opération courante.
21.jpg
(Traduction du message : La plage spécifiée rentre en collision avec une autre plage. L'opération ne pourra pas se faire).
La méthode CheckIntersectedMergingRange est utilisée pour vérifier si des cellules groupées contiennent une plage spécifiée. Cette méthode est utile pour éviter ce genre d'exception.
ReoGridRange outputRange = grid.CheckIntersectedMergingRange(inputRange);
Si outputRange.IsEmpty est vrai (true),cela signifie que la plage de saisie (inputRange) est sûre. Il y a une autre méthode pour faire la même chose :
bool rs = grid.HasIntersectedMergingRange(inputRange);

Suivant: Format des données

Last edited Feb 7, 2014 at 7:03 AM by unvell, version 12