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

Propriedade descontinuada que permitia indicar classes ou estilos CSS no título do grupo da coluna via injeção de atributos.

A partir da versão 71, o seu uso passou a ser mais restrito, sendo limitada a definir classes e estilos em linha, que uma vez identificados passam a ser atribuídos nas propriedades columnGroupHeaderCssClass e columnGroupHeaderCssStyle, substituindo os valores existentes nessas propriedades. Outros atributos eventualmente informados nesta propriedade passam a ser ignorados.

Type:
  • string
Deprecated:
  • Ver as propriedades `columnGroupHeaderCssClass` e `columnGroupHeaderCssStyle`.
See:
  • columnGroupHeaderCssClass
  • columnGroupHeaderCssStyle

columnGroupHeaderCssClass :string

Classe CSS adicional que será aplicada no título do grupo da coluna. Múltiplas classes podem ser informadas separadas por espaço.

Type:
  • string
Example
let col = sl.column('Vendas#Quantidade');
col.groupColumnHeaderCssClass = 'custom-class';

columnGroupHeaderCssStyle :Record.<string, string>

Estilos CSS em linha que serão aplicados no título do grupo da coluna.

Type:
  • Record.<string, string>
Example
let col = sl.column('Vendas#Quantidade');
col.groupColumnHeaderCssStyle['text-weight'] = 'bold';

css :string

Propriedade descontinuada que permitia indicar classes ou estilos CSS nos valores das coluna via injeção de atributos.

A partir da versão 71, o seu uso passou a ser mais restrito, sendo limitada a definir classes e estilos em linha, que uma vez identificados passam a ser atribuídos nas propriedades cssClass e cssStyle, substituindo os valores existentes nessas propriedades. Outros atributos eventualmente informados nesta propriedade passam a ser ignorados.

Type:
  • string
Deprecated:
  • Ver as propriedades `cssClass` e `cssStyle`.
See:
  • cssClass
  • cssStyle

cssClass :string

Classe CSS adicional que será aplicada aos valores da coluna. Múltiplas classes podem ser informadas separadas por espaço.

Caso a coluna escreva links, as classes informadas também serão aplicadas na âncora de abertura do menu de links.

Type:
  • string
Example
col.cssClass = 'custom-class';

cssStyle :Record.<string, string>

Estilos CSS em linha que serão aplicados nos valores da coluna.

Caso a coluna escreva links, os estilos em linha informados também serão aplicados na âncora de abertura do menu de links.

Type:
  • Record.<string, string>
Example
col.cssStyle['text-decoration'] = 'underline';

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 CSS adicional que será aplicada no título da coluna. Múltiplas classes podem ser informadas separadas por espaço.

Type:
  • string
Example
col.labelCssClass = 'custom-class';

labelCssStyle :Record.<string, string>

Estilos CSS em linha que serão aplicados no título da coluna.

Type:
  • Record.<string, string>
Example
col.labelCssStyle['text-weight'] = 'bold';

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.

Type:
  • boolean

writeLinkPerRecord :boolean

Essa propriedade foi descontinuada e seu uso não altera mais o comportamento da escrita dos links no relatório. Recomenda-se a remoção do seu uso dos códigos atuais.

Type:
  • boolean
Deprecated:
  • Yes

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


canHaveGlobalActions()

Checa se esta coluna possui estrutura para ter ações globais.

Returns:

Indica se é possível ter ações globais.

Type
boolean

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