Class: Column

@nginstack/web-framework/lib/simple-layout/Column~ Column


new Column(simpleLayout, name [, options])

Coluna do layout. É a coluna onde os dados serão exibidos. Através dela podemos definir, por exemplo, o número de casas decimais dos dados numéricos, formato do texto (css), etc...

O método column do SimpleLayout retorna uma instância dessa classe.

Parameters:
Name Type Argument Description
simpleLayout SimpleLayout

Instância do relatório.

name string

Nome da Coluna

options Object <optional>

Opções que definem as propriedades da coluna. As propriedades do objeto opt_options serão atribuídas como propriedades da coluna criada.

See:
  • SimpleLayout#column

Members


<static> TextAligns :string

Tipos de alinhamento horizontal de texto suportados.

Type:
  • string
Properties:
Name Type Default Description
LEFT string left
RIGHT string right
CENTER string center
JUSTIFY string justify
INHERIT string inherit

<static> VerticalAligns :string

Tipos de alinhamento vertical suportados.

Type:
  • string
Properties:
Name Type Default Description
TOP string top
MIDDLE string middle
BOTTOM string bottom
BASELINE string baseline

breakLine :boolean

Indica se depois da coluna deverá se iniciar uma nova linha.

Type:
  • boolean

classKey :number

Define que esta coluna terá valores referente á esta classe de dados. Este valor é utilizado para o preenchimento de ações globais.

Type:
  • number

column :number

Ordem da coluna em que o título aparecerá. Com esta propriedade é possível dispor títulos em colunas não adjacentes.

Importante: esta é uma propriedade legada e mantida apenas para fins de compatibilidade. O seu uso quebra o funcionamento de alguns recursos do SimpleLayout e ela é mantida apenas para preservar os relatórios existentes que fazem uso dela. Esta propriedade não deve ser utilizada em novos relatórios e sua utilização deve ser gradualmente eliminada, pois ela deverá ser eliminada no futuro.

Type:
  • number
Deprecated:
  • Yes

columnGroup :module:@nginstack/web-framework/lib/simple-layout/ColumnGroup~ColumnGroup

Permite a configuração de um label comum para um grupo de colunas, semelhante ao grupo na grade. Pode ser informado uma string ou uma instância de um objeto Group.

Type:
Examples
const sl = this.getSimpleLayout();
let col = sl.column('col1');
col.columnGroup = 'Grupo 1';

col = sl.column('col2');
col.columnGroup = columnGroup;
const sl = this.getSimpleLayout();
const columnGroup = new ColumnGroup('Grupo 2');
columnGroup.lineHeight = 1;
columnGroup.color = '#ffffff';

let col = sl.column('col1');
col.columnGroup = columnGroup;

col = sl.column('col2');
col.columnGroup = columnGroup;

columnGroupHeaderClass :string

Classe de estilo (CSS) que será aplicada ao título do agrupador de colunas.

Type:
  • string
Example
var sl = this.getSimpleLayout()

var col = sl.column('"Group#Col1')
sl.groupColumnHeaderClass = 'class="group"'

col = sl.column('"Group#Col2')
col.groupColumnHeaderClass = 'class="group"'

css :string

Propriedade Deprecated (ver cssClass). Indica qual css class deverá ser usado nos valores da coluna. No relatório existem alguns css pré-definidos, mas é possível definir um css personalizado e usá-lo.

Type:
  • string
See:
  • cssClass

cssClass :string

Classe de estilo (CSS) que será utilizada para os valores da coluna.

Type:
  • string

decimalPrecision :number

Precisão decimal para as colunas com valor numérico. Para formatos mais complexos, utilize a propriedade #displayFormat.

Type:
  • number
See:
  • Column#displayFormat

displayFormat :DateFormat|LatitudeFormat|LongitudeFormat|AngleFormat|string|number|null

Template a ser utilizado para a formatação da coluna.
São aceitos vários tipos de template: para textos, números, datas e formatos de geolocalização. Para dados textuais, o template utiliza a sintaxe da função sprintf, comum a diversas linguagens. Para dados numéricos, o template é um padrão semelhante ao utilizado em aplicações de planilhas, como o Excel. A sintaxe é a mesma do GWT (http://google-web-toolkit.googlecode.com/svn/ javadoc/2.1/com/google/gwt/i18n/client/NumberFormat.html). Também é possível passar um valor da enumeração NumberFormat.Format para se utilizar valores padrão. Os valores suportados atualmente são NumberFormat.Format.DECIMAL, NumberFormat.Format.PERCENT e NumberFormat.Format.CURRENCY.
Caso seja utilizada esta propriedade, a propriedade decimalPrecision será ignorada. Abaixo também são detalhados os formato de exibição para os tipos "date", "longitude", "latitude", "angle". Valores possíveis:

  • DateFormat.DDMMYYYY: dia/mês/ano(4 dígitos)
  • DateFormat.DDMMYY: dia/mês/ano(2 dígitos)
  • DateFormat.MMYYYY: mês/ano(4 dígitos)
  • DateFormat.WWYYYY: semana/ano(4 dígitos)
  • LatitudeFormat.DDD_DDDDD: graus decimais°
  • LatitudeFormat.DDD_MM_MMM_DIR: graus° minutos' {N|S}
  • LatitudeFormat.DDD_MM_SS_S_DIR: graus° minutos' segundos" {N|S}
  • LongitudeFormat.DDD_DDDDD: graus°
  • LongitudeFormat.DDD_MM_MMM_DIR: graus° minutos' {E|W}
  • LongitudeFormat.DDD_MM_SS_S_DIR: graus° minutos' segundos" {E|W}
  • AngleFormatsDDD: graus°
  • AngleFormatsDDD_DD: graus decimais°
  • NumberFormat.Format.DECIMAL: decimal
  • NumberFormat.Format.CURRENCY: moeda
  • '##0.##': número decimal sem separador de milhar
  • 'Sr(a). %-20s' texto com padding a direitas
Type:
  • DateFormat | LatitudeFormat | LongitudeFormat | AngleFormat | string | number | null
See:
  • Column#decimalPrecision

height :number|string|null

Altura da célula. Pode ser expresso em %, px, mm, cm, pt, in, "auto". Caso seja informado um valor numérico, será normalizado para valor em pixel. É bastante comum que esta propriedade não seja setada, ou seja, o layout se ajustará à mídia(tela, impressora, ...).

Type:
  • number | string | null

hint :string

Texto que deve aparecer passar o mouse no texto do cabeçalho da coluna.

Type:
  • string

label :string

Título da coluna. Por padrão, é o próprio nome da coluna.

Type:
  • string

labelCssClass :string

Classe de estilo (CSS) que será utilizada para o título da coluna.

Type:
  • string
Example
const col = sl.column('test');
col.labelCssClass = 'my-custom-class';

labelTextAlign :string

Alinhamento horizontal do rótulo da coluna. Caso não seja informado, será utilizado o valor definido para a propriedade #textAlign.

Type:
  • string

lastContent :string|number|Date

Último valor escrito nesta coluna ou grupo.

Type:
  • string | number | Date

Link associado à coluna.

Propriedade obsoleta, substituída por #links a fim de permitir múltiplos links associados a uma coluna.

Type:
  • Link
Deprecated:
  • Utilize #links.

lookupType :number

Define o tipo de "lookup" da coluna. Valores possíveis: LookupType.NONE, LookupType.RECORD, LookupType.CLASS ou LookupType.FILE.

Type:
  • number
See:
  • Field#lookupType

mergeDuplicatedValues :boolean

Indica se os registros com conteúdo duplicado, serão mesclados verticalmente.

Type:
  • boolean

name :string

Nome da Coluna

Type:
  • string

negativeInRed :boolean

Indica se os valores negativos da coluna devem aparecer na cor vermelha.

Type:
  • boolean

onTotal :LegacyEvent

Corresponde ao evento que será executado para obter o total da coluna. O exemplo abaixo mostra o comportamento padrão do evento quando ele não é redefinido, caso não exista necessidade de se fazer algum tratamento específico para o total de uma coluna, não se faz necessário a redefinição do evento.
O primeiro argumento do evento é a coluna que está disparando o evento. O segundo é o índice do grupo do qual está se obtendo o total.

Type:
  • LegacyEvent
Example
column.onTotal.set(function (column, groupIndex) {
    return column.getAccumulator(groupIndex)
})

showGlobalActions :boolean

Define se esta coluna deve apresentar ações globais.

Type:
  • boolean
Default Value:
  • true

showTotal :boolean

Indica se deverá mostrar o total do agrupamento. Isso vai fazer com que existe a organização mas não seja feita a totalização do agrupamento. Para o uso desta propriedade é necessária a declaração explícita das colunas de agrupamentos do Layout.

Type:
  • boolean
See:
  • SimpleLayout#newRecord
Example
var sl = this.getSimpleLayout()
var col = sl.group("group1")
col.showTotal = false

col = sl.group("group2")
col.showTotal = false

showTotalLabel :boolean

Indica se deverá mostrar o título do total do agrupamento. Para o uso desta propriedade é necessária a declaração explícita das colunas de agrupamentos do relatório (como no exemplo). Observer que é possível também ter efeito semelhante ao uso desta propriedade passando no segundo parâmetro do método simpleLayout.newRecord() um array com os valores que irão aparecer ao lado dos totais de agrupamentos.

Type:
  • boolean
See:
  • SimpleLayout#newRecord
Example
var sl = this.getSimpleLayout()
var col = sl.group("group1")
col.showTotalLabel = false

col = sl.group("group2")
col.showTotalLabel = false

textAlign :string

Alinhamento horizontal dos valores da coluna. Caso não seja informado, será definido um alinhamento com base no tipo dos primeiros valores escritos na coluna. Valores textuais são alinhados à esquerda, números à direita e datas são centralizadas.

Type:
  • string

totalContent :string

Indica que tipo de operação deverá ser feita no total de cada grupo. Os valores permitidos são: 'sum', 'min', 'max', 'avg' e 'count'.

sum: indica que deve trazer no total a soma de todos os valores da coluna do grupo. min: indica que deve trazer no total o menor valor dentre todos os valores da coluna do grupo. max: indica que deve trazer no total o maior valor dentre todos os valores da coluna do grupo. avg: indica que deve trazer no total a média dos valores da coluna do grupo. count: indica que deve trazer no total a quantidade de registros do grupo.

Type:
  • string
See:
  • Column#accumulator

totalLabel :string

Texto que deve aparecer no total do agrupamento, esta propriedade só é utilizada em agrupamentos.

Type:
  • string

<nullable> type :string

Tipo do conteúdo escrito na coluna.

Essa propriedade é obrigatória para formatar campos referentes às coordenadas geográficas. Caso o desenvolvedor não a informe, será aplicada uma formatação equivalente à realizada em campos do tipo number.

O tipo da coluna também é relevante para a exportação dos dados de um relatório. O sistema tentará detectar o tipo de uma coluna a partir do seu conteúdo quando um valor não é informado. Essa heurística pode gerar resultados indesejados que são sanados ao definir o tipo de forma explícita.

Type:
  • string

verticalAlign :string

Alinhamento vertical do conteúdo da célula.

Type:
  • string

visible :boolean

Determina se a coluna será escrita ou não, caso essa propriedade esteja como "false" a coluna não será escrita, e seu valor não contará no acumulador.

Type:
  • boolean

width :number|string|null

Largura da coluna. Pode ser expresso em %, px, mm, cm, pt, in, "auto". Caso seja informado um valor numérico, será normalizado para valor em pixel. É bastante comum que esta propriedade não seja setada, ou seja, o layout se ajustará à mídia(tela, impressora, ...).

Type:
  • number | string | null

wordWrap :boolean

Indica se o conteúdo da coluna pode ser quebrado. No método writeColumn, a propriedade "convertToHtmlString" será forçada para false.

Type:
  • boolean

writeLinkPerRecord :boolean

Determina se o link será escrito por linha no SimpleLayout. TODO: Remover essa propriedade e refatorar a inserção de links, escrevendo-os no início do relatório e cada um dos registros apontar para os diferentes links escritos.

Type:
  • boolean

zoomMaxHeight :number|string

Altura para a imagem ampliada. Essa propriedade só tem efeito se a imagem for renderizada através do método Column#writeImage. Para detalhes sobre imagem ampliada consulte module:@nginstack/web-framework/lib/html/formatHoverBox.

Type:
  • number | string

zoomMaxWidth :number|string

Altura para a imagem ampliada. Essa propriedade só tem efeito se a imagem for renderizada através do método Column#writeImage. Para detalhes sobre imagem ampliada consulte module:@nginstack/web-framework/lib/html/formatHoverBox.

Type:
  • number | string

zoomOnHover :boolean

Exibe imagem ampliada. Essa propriedade deve só tem efeito se a imagem for renderizada por meio do método Column.#writeImage. Para detalhes sobre imagem ampliada consulte module:@nginstack/web-framework/lib/html/formatHoverBox.

Type:
  • boolean

Methods


checkIfMerge(values)

Checa se deve mesclar todos os registros da coluna corrente. Essa checagem é feita verificando se houve mudança no agrupamento ou mudança no valor da coluna.

Parameters:
Name Type Description
values Object

Valores para ser feito a comparação.

Properties
Name Type Description
content string | number | Date

Conteúdo da coluna a ser verificado se houve mudança.

groups string

Agrupamento da coluna a ser verificado se foi modificado.

Returns:

True caso deva realizar a mesclagem.

Type
boolean

getAccumulator(index)

Parameters:
Name Type Description
index number

Índice do agrupamento. Ex: O índice "-1" retornará o "Total Geral";
O índice "1" retornará o valor do acumulador do primeiro agrupamento, "2" para o segundo e assim sucessivamente.

See:
  • Accumulator
Example
// Retorna o acumulador para o segundo nível de agrupamento
var col = sl.group("group1")
var columnAccumulator = column.getAccumulator(2)

getGlobalActionClassKey( [opt_key])

Pega a chave da classe para ser usada como base de cálculo das ações globais levando em consideração o estado atual desta coluna.

Parameters:
Name Type Argument Description
opt_key number <optional>

Caso esta chave seja passada significa que esta coluna sabe exatamente aonde está posicionado e quer calcular a classe mais próxima a dada chave.

Returns:

Chave da classe calculada para uso nas ações globais.

Type
number

getGlobalActionRegisterKey( [opt_key])

Pega a chave do registro para ser usado como base de cálculo das ações globais levando em consideração o estado atual desta coluna.

Parameters:
Name Type Argument Description
opt_key number <optional>

Força que o resultado seja esta chave.

Returns:

Chave do registro posicionado caso seja possível pegá-lo.

Type
number

setCssExtractor(value)

Associa a coluna a um objeto extrator de estilos de CSS.

Parameters:
Name Type Description
value CssExtractor