Como funcionam os agrupamentos de campos da grade?
No modo formulário, a grade do Sistema UNUM agrupa automaticamente os campos com mesmo "group" (Field.group). Vejamos o exemplo de definição de campos abaixo, e logo em seguida o resultado da ordenação dos campos.
grid.onDefineFields.set(function(grid) {
var ordem = 0;
var fld = grid.field("campoA", "integer");
fld.group = "Grupo 1";
var fld = grid.field("campoB", "integer");
fld.group = "Grupo 2";
var fld = grid.field("campoC", "integer");
fld.group = "Grupo 1";
});
Os campos serão exibidos na seguinte ordem:
Grupo 1
CampoA
CampoC
Grupo 2
CampoB
Observe que o campoB, apesar de ter sido definido entre os campos CampoA e CampoC, ficou isolado pois pertence a um grupo diferente.
Utilizando o objeto FieldGroup
Existem duas maneiras de definir a propriedade group de um field:
Ela pode ser definida com uma String. Ex.: "Primeiro Agrupamento"
Ou pode receber uma instância do objeto FieldGroup, como no exemplo abaixo:
var fieldGroup = new FieldGroup("Grupo Contraido");
// Todos os campos desse agrupamento estarão contraídos no momento da escrita da grade,
// podendo ser visualizados quando o usuário clicar sobre o agrupamento para expandí-lo.
fieldGroup.colapsed = true;
var fld = grid.field("campoF", "string", 30);
fld.group = fieldGroup;
var fld = grid.field("campoG", "string", 30);
fld.group = fieldGroup;
Os campos CampoF e CampoG serão visualizados dentro do "Grupo Contraido" somente após esse ser expandido manualmente.
A documentação completa do objeto FieldGroup encontra-se em: http://developer.erp.bematech.com/js-api/latest/ngin.classdef.FieldGroup.html.