Class: SimpleLayout

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


new SimpleLayout(responseObject, skinScriptKeyOrUrl)

Objeto responsável para a construção de um relatório (conjunto de informações utilizadas para reportar resultados parciais ou totais de um determinada atividade, experimento, projeto, ação, pesquisa, ou outro evento, esteja finalizado ou ainda em andamento).

Parameters:
Name Type Description
responseObject Object

Objeto responsável por receber o relatório gerado pelo SimpleLayout. Pode ser qualquer objeto que implemente um método write(str) Normalmente é preenchido com uma instância de Process, Response, Email ou File.

skinScriptKeyOrUrl number | string

Chave do script ou url para o tema do SimpleLayout (deprecated)

Members


<static> defaults

Permite indicar a configuração padrão dos relatórios do sistema.

Para isso, crie um script de inicialização da sessão que modifique este objeto. Os valores a ele atribuídos serão aplicados às instâncias do SimpleLayout no momento da sua construção.

Example
SimpleLayout.defaults.showEnterpriseName = false;

autoSanitize :boolean

Determina se os valores informados nas colunas, rótulos, grupos e totalizadores devem ser tratados para remover tags que possam ser utilizadas com o objetivo de injetar scripts maliciosos em ataques do tipo Cross Site Scripting (XSS).

Ao desativar esta propriedade, é de crítica importância que algum tipo de validação ou sanitização seja realizada no conteúdo a ser escrito na tela.

Type:
  • boolean

baseFontSize :string

Tamanho da fonte base para exibição em tela do Layout. Caso não seja informado será utilizada a configuração existente no tema do usuário.
O uso desta propriedade não é recomendado, pois ela se sobrepõem ao valor definido no tema do usuário, prejudicando a coerência visual do sistema.

Type:
  • string

buttonWidth :number

Indica a largura do botão.

Type:
  • number

columnPadding :string

Espaçamento entre as colunas do Layout. Caso a propriedade columnPadding não seja informada, será utilizada a configuração existente no tema do usuário.
O uso desta propriedade não é recomendado, pois ela se sobrepõem ao valor definido no tema do usuário, prejudicando a consistência visual do sistema.

Type:
  • string

columns :StringList

Contém as colunas do relatório. Estas são armazenados no stringList da seguinte forma: String: nome da coluna, Object: [objeto column]

Type:
  • StringList

dataExporter :Object

Objeto instancia da classe dataExporter que irá conter informações sobre como deve ser feita a importação do arquivo

Type:
  • Object

Chave da imagem que aparecerá na parte superior-esquerda do Layout. O Layout não faz tratamento para as dimensões da imagem, então é recomendado que a imagem esteja com tratamento adequado de tamanho.

Type:
  • number

enterpriseName

Propriedade que define o nome da empresa no relatório.


filters :Array.<{label: string, group: string, value: *}>

Filtros utilizados para gerar o relatório. Os valores dos filtros são exibidos no cabeçalho do relatório.

Type:
  • Array.<{label: string, group: string, value: *}>

filtersDisplay :FiltersDisplayMode

Indica como devem ser exibidos os filtros utilizados no relatório. Por padrão serão exibidos apenas os filtros preenchidos.

Type:
  • FiltersDisplayMode
Deprecated:
  • Use a propriedade filtersDisplay da propriedade #header.
Default Value:
  • FiltersDisplayMode.FILLED
See:
  • SimpleLayout#filters

O rodapé do relatório.

Type:
  • Footer

<nullable> footerComplement :string

Texto que servirá de complemento ao rodapé do Layout. Esta propriedade aceita texto em HTML.

Type:
  • string
Deprecated:
  • Use a propriedade complement da propriedade #footer.
See:
  • SimpleLayout#showFooter

<nullable> footerImage :number

Imagem do logotipo impresso no rodapé dos relatórios. Por padrão é apresentado a imagem configurada em module:@nginstack/context/vendor#footerLogoUrl.

Type:
  • number
Deprecated:
  • Use a propriedade image da propriedade #footer.

groupColors

Sequência de cores a serem utilizadas nos agrupamentos do Layout. Caso seja definido um número menor de cores que as dos agrupamentos disponíveis, as cores ficaram se repetindo dentro dos mesmos.

Example
var sl = this.getSimpleLayout()
sl.groupColors = ["#0000C9", "#0000DB", "#0000EA", "#0000FF","#329BFF",
  "#31B4FF", "#30C7FF", "#2FD3FF", "#65D8FF", "#64E4FF"]

groupExpansionLevel :number

Nível de expansão em árvore do relatório. O nível pode variar de 1 até a quantidade máxima de agrupamentos definidos na escrita do relatório. O valor 0 (zero) é tratado de forma especial e desativa o recurso de expansão e contração dos agrupamentos, comportamento padrão do sistema.

Type:
  • number

groups :StringList

Contém os grupos do relatório. Estes são armazenados no stringList da seguinte forma: String: número do agrupamento, Object: [objeto column]

Type:
  • StringList

O cabeçalho do relatório.

Type:
  • Header

<nullable> headerComplement :string

Texto que servirá de complemento ao cabeçalho do Layout. Esta propriedade aceita texto em HTML.

Type:
  • string
Deprecated:
  • Use a propriedade complement do propriedade #header.

logoInteq :number

Imagem do logotipo impresso no rodapé dos relatórios.

Type:
  • number
Deprecated:
  • Use a propriedade image da propriedade #footer.

mustIncludeCssFiles :boolean

Determina se o relatório deve incluir as tags link ou style, carregando os arquivos CSS.

Type:
  • boolean

negativeInRed :boolean

Indica se os números negativos deverão ser exibidos na cor "vermelho". Esta opção é válida somente para aquelas colunas que precisem escrever valores. Para a escrita de chaves, por exemplo, é recomendado o uso do método .toString()

Type:
  • boolean

onCss :Event

Define um css personalizado para ser usado no relatório. Todas as definições de css são definidas e também outras informações como: cores de alternância de registro, de grupos, tamanhos de fontes, etc... É importante lembrar que todas as definições de css necessárias para o desenvolvimento do relatório já estão pré-definidas na infra-estrutura do simpleLayout, ou seja, somente em um caso muito específico é que este método deverá ser utilizado.

Type:
  • Event
See:
  • SimpleLayout#onHeader
  • SimpleLayout#onFooter
Example
simpleLayout.onCss.set(function () {
  this.write('&lt;style&gt;
   .textoDestaque { color: #00FF66; text-decoration: bold; font-size: 15pt; }
   &lt;/style&gt;');
});

onFooter :Event

Define como será montado o rodapé do relatório. Por padrão é exibido o logo do sistema. Mas pode ser adicionado alguma outra informação que necessite aparecer em todas as páginas de uma impressão. Todas as definições de css são definidas e também outras informações como: cores de alternância de registro, de grupos, tamanhos de fontes, etc... É importante lembrar que todo o processo de definição do cabeçalho de um relatório por padrão está todo pré-definido na infra-estrutura do simpleLayout, ou seja, somente em um caso muito específico é que este método deverá ser utilizado.

Type:
  • Event
See:
  • SimpleLayout#onHeader
  • SimpleLayout#onCss
Example
Customiza a definição de como será montado o rodapé do relatório
     simpleLayout.onFooter.set(function () {
      this.write('
       &lt;tfoot style="display: table-foot-group;"&gt;
          &lt;tr&gt;
           &lt;td&gt;(*) Recursos em falta no estoque...&lt;/td&gt;
          &lt;/tr&gt;
        &lt;/thead&gt;
      ')
     })

onHeader :Event

Define como será montado o cabeçalho do relatório. Todas as definições de css são definidas e também outras informações como: cores de alternância de registro, de grupos, tamanhos de fontes, etc... É importante lembrar que todo o processo de definição do cabeçalho de um relatório por padrão está todo pré-definido na infra-estrutura do simpleLayout, ou seja, somente em um caso muito específico é que este método deverá ser utilizado.

Type:
  • Event
See:
  • SimpleLayout#onFooter
Example
simpleLayout.onHeader.set(function () {
     this.write('
       &lt;thead style="display: table-header-group;"&gt;
          &lt;tr&gt;
           &lt;td&gt;Título do relatório&lt;/td&gt;
           &lt;td&gt;Mais informações&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
           &lt;td&gt;Variáveis&lt;/td&gt;
           &lt;td&gt;Título das colunas&lt;/td&gt;
          &lt;/tr&gt;
       &lt;/thead&gt;
      ')
     })

path :string

Indica o caminho utilizado pelo usuário para acessar este relatório.

Type:
  • string

printFontSize :string

Tamanho da fonte base na impressão do relatório. Se não for informada, será considerada a propriedade baseFontSize decrescida de 1pt. Caso a propriedade baseFontSize não seja informada, será utilizada a configuração existente no tema do usuário.
O uso desta propriedade não é recomendado, pois ela se sobrepõem ao valor definido no tema do usuário, prejudicando a coerência visual do sistema.

Type:
  • string

process :Object

Esta é uma propriedade opcional que, quando informada, permite o reconhecimento do ambiente e, assim, podendo entregar features de integração com o x-layout em que o objeto está embutido.

Type:
  • Object

recordColors

Sequência de cores dos registros do Layout.

Example
var sl = this.getSimpleLayout()
sl.recordColors = ["#66CCFF", "#FFFFFF"]

responseObject :Object

Objeto informado no construtor do SimpleLayout no qual o relatório será escrito por meio do método write desse objeto.

Type:
  • Object

resultSet :DataSet

DataSet que será usado para gerar arquivos para exportação, ex Csv Excel

Type:

showDateTime :boolean

Indica se deverá ser apresentada a data e hora em que o Layout foi executado. Esta informação se encontra na parte superior direita do Layout.

Type:
  • boolean
Deprecated:
  • Use a propriedade showDateTime da propriedade #header.
Default Value:
  • true

showEnterpriseName :boolean

Indica se deverá aparecer no início do Layout o nome da Empresa Licenciada.

Type:
  • boolean
Deprecated:
  • Use a propriedade showEnterpriseName da propriedade #header.
Default Value:
  • true

showFooter :boolean

Indica se será apresentado o rodapé do Layout.

Type:
  • boolean
Deprecated:
  • Use a propriedade visible da propriedade #footer.
Default Value:
  • true
See:
  • SimpleLayout#footerComplement

showHeader :boolean

Indica se o cabeçalho e todo o seu conteúdo será ou não exibido quando da escrita do Layout.

Type:
  • boolean
Deprecated:
  • Use a propriedade visible da propriedade #header.
Default Value:
  • true
See:
  • SimpleLayout#headerComplement
  • SimpleLayout#showEnterpriseName
  • SimpleLayout#enterpriseLogo
  • SimpleLayout#showDateTime
  • SimpleLayout#title
  • SimpleLayout#showUserAndDataBaseName
  • SimpleLayout#showVariables
  • SimpleLayout#showOnlyFilledVariables

showHeaderAlwaysOnTop :boolean

Indica se o cabeçalho do Layout ficará fixo no topo da tela do navegador.

Type:
  • boolean
Deprecated:
  • A funcionalidade não é mais suportada pelo SimpleLayout e o valor informado é ignorado.

showOnlyFilledVariables :boolean

Indica se deverão ser apresentadas somente as variáveis preenchidas com algum valor pelo usuário quando da geração do Layout. Caso esta propriedade esteja marcada como "false", serão apresentadas todas as variáveis da Grade que deu origem no Layout.

Type:
  • boolean
Deprecated:
  • Utilize #filtersDisplay em vez desta propriedade.
Default Value:
  • true
See:
  • SimpleLayout#showVariables
  • SimpleLayout#filters
  • SimpleLayout#filtersDisplay

showPath :boolean

Indica se deverá ser apresentado o caminho do relatório na hierarquia de classes do Sistema Virtual de Arquivos (Virtual File System)

Type:
  • boolean
Deprecated:
  • Use a propriedade showPath da propriedade #footer.
Default Value:
  • true

showTreeRoot :boolean

Indica se deverá ser apresentado o nó raiz da árvore no Layout. Esta propriedade somente deverá ser informada quando da indicação de apresentação em Árvore (Tree). Para exemplo de utilização, favor verificar no script:
-1898144061 SimpleLayout - Tree.il

Type:
  • boolean
See:
  • SimpleLayout#newRecord

showUserAndDataBaseName :boolean

Indica se deverá ser exibido no Layout o código do usuário logado e o nome da base de dados. Esta informação se encontra na parte superior direita do Layout ("Usuário Logado / BASE").

Type:
  • boolean
Deprecated:
  • Use a propriedade showUserAndDatabaseName da propriedade #header.
Default Value:
  • true

showVariables :boolean

Indica se deverão ser apresentadas as variáveis utilizadas para a geração do Layout.

Type:
  • boolean
Deprecated:
  • Utilize #filtersDisplay em vez desta propriedade.
Default Value:
  • true
See:
  • SimpleLayout#showOnlyFilledVariables
  • SimpleLayout#filters
  • SimpleLayout#filtersDisplay

title :string

Título do Layout. Por padrão, o título é obtido através do tratamento executado no Nome do Script, retirando-se as extensões e os acentos.

Type:
  • string

treeExpansionLevel :number

Indica o nível que a Árvore (tree) do Layout deverá ser expandida quando da apresentação em tela. Para exemplo de utilização, favor verificar no script:
-1898144061 SimpleLayout - Tree.il Caso o parâmetro "opt_collapsed" venha definido para o método #treeNewRecord o relatório será expandido de acordo com a configuração informada no registro e esta propriedade será ignorada.

Type:
  • number

treeRecordCount :number

Indica a quantidade de registros na tree

Type:
  • number

treeStarted :boolean

Verifica se a árvore está iniciada

Type:
  • boolean

variableGrid :Grid

Grade de variáveis que originou os dados do Layout. Geralmente em consultas ou processos os dados são filtrados através de Grades específicas dependendo da interação com o usuário.

Type:
  • Grid
Deprecated:
  • Utilize a propriedade #filters.
See:
  • Grid
  • SimpleLayout#showVariables
  • SimpleLayout#showOnlyFilledVariables
  • SimpleLayout#filters

width :string

Tamanho do Layout na Tela ou no Papel, no caso da impressão.

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

// Simple Layout com tamanho definido para 800 Pixels.
sl.width = "800px"
// Simple Layout com tamanho definido para metade do tamanho disponível.
sl.width = "50%"

writingEmail :boolean

Determina se o relatório está escrevendo para um objeto Email. Nesta situação alguns recursos devem ser desligados e o uso de imagem requer chamada de API específica.

Type:
  • boolean

Methods


breakPage()

Força a quebra de página quando da impressão do Layout pelo browser.


close()

Método executado ao sair de um processo que contenha um simple layout


column(name [, options])

Definição da Coluna do Layout.

Parameters:
Name Type Argument Description
name string

Nome da Coluna. Este nome é um texto livre e pode ser utilizado com espaços, acentos, etc.

options Object <optional>

Propriedades da coluna. As propriedades do objeto options serão atribuídas como propriedades da coluna criada. Por questões de compatibilidade, options poderá ser uma instância de Link. Nesse caso, o valor informado será atribuído na propriedade link da coluna.

See:
Returns:

Coluna do Layout

Type
Column

end( [totalLabel] [, messageWhenEmpty] [, resetColumns])

Encerra a escrita do relatório. É obrigatória a execução deste método após a escrita do último registro.

Parameters:
Name Type Argument Description
totalLabel Object <optional>

Nome do "Total" que irá aparecer na última linha das totalizações do Layout. Ex: "Total Geral", "Total de Vendas", etc.

messageWhenEmpty Object <optional>

Mensagem que deverá ser exibida quando não for escrito nenhum registro no Layout. Ex: "Sua Pesquisa não Gerou Resultados."

resetColumns Object <optional>

Indica para o Layout se será escrito um novo Layout aproveitando-se a instância do mesmo.


formatImageTag(uri [, opt_options])

Formata uma tag para ser inserida no relatório.

Parameters:
Name Type Argument Description
uri number | string

Chave ou URI da imagem na VFS.

opt_options Object <optional>

Opções de renderização para esta imagem.

Properties
Name Type Argument Description
style string <optional>

Estilo CSS inline.

id string <optional>

ID do elemento DOM.

cssClass string <optional>

Classe CSS.

Returns:

Tag ou uma string vazia caso não seja possível utilizar imagens no relatório.

Type
string

group(name, link, displayFormat)

Definição da Coluna no agrupamento do Layout.

Parameters:
Name Type Description
name string

Nome da Coluna. Este nome é um texto livre e pode ser utilizado com espaços, acentos, etc.

link Link

Objeto Link a ser definido na coluna.

displayFormat string

Expressão de formatação do grupo.

See:
  • Column
  • Link

newRecord( [opt_checkGroup] [, opt_groupTotalLabel] [, opt_showLineTop] [, opt_showLineBottom] [, opt_treeNodeId] [, opt_parentTreeNodeId] [, opt_patterns])

Insere um novo registro na escrita do Layout.

Parameters:
Name Type Argument Description
opt_checkGroup Array <optional>

Conjunto de registros a serem utilizados no agrupamento. Os registros deve estar em concordância com o índice da estrutura de dados utilizada para a escrita, geralmente um DataSet.

opt_groupTotalLabel Array <optional>

Nome dos totalizadores que irão aparecer quando da escrita do Layout. Por padrão, o que é escrito no através dos grupos (propriedade opt_checkGroup) é repetido nos totalizadores.

opt_showLineTop boolean <optional>

Indica se deverá ser escrita uma linha acima do registro atual.

opt_showLineBottom boolean <optional>

Indica se deverá ser escrita uma linha abaixo do registro atual.

opt_treeNodeId number <optional>

Identificação do registro na Árvore. É recomendado que este número seja incremental e único para cada Layout de árvore disponível. Para exemplo de utilização, favor verificar no script -1898144061 SimpleLayout - Tree.il

opt_parentTreeNodeId number <optional>

Identificação do registro com hierarquia superior (mãe) ao registro atual. Esta identificação é importante para os registros que possuem o mesmo tipo na hierarquia. Para exemplo de utilização, favor verificar no script -1898144061

opt_patterns Array.<string> <optional>

Padrões de formatação para os agrupamentos.

See:
Returns:
Type
boolean

newTreeRecord(treeNodeId, parentTreeNodeId [, opt_collapsed])

Insere um novo registro em Simple Layouts do tipo árvore.

Parameters:
Name Type Argument Description
treeNodeId number

Identificação do registro na Árvore. É recomendado que este número seja incremental e único para cada Layout de árvore disponível.

parentTreeNodeId number

Identificação do registro com hierarquia superior (mãe) ao registro atual. Esta identificação é importante para os registros que possuem o mesmo tipo na hierarquia.

opt_collapsed boolean <optional>

Indica se o registro se mostrará contraído. Ao utilizar essa opção a propriedade #treeExpansionLevel será ignorada.


reset(resetColumnsAndGroups)

Prepara a instância do relatório para um novo relatório.

Parameters:
Name Type Description
resetColumnsAndGroups boolean

Indica se deve redefinir também as colunas do relatório. Pode ser utilizado quando se quer continuar a montagem de um relatório na tela depois de se ter chamado o método end do relatório. Por padrão é false.


stats()

Obtém algumas informações técnicas sobre a execução do relatório, utilizadas principalmente para diagnósticos internos do Web Framework.

Returns:

Estatísticas de execução do relatório.

Type
SimpleLayoutStats

write(content [, opt_newLine])

Método que irá escrever o relatório na tela

Parameters:
Name Type Argument Description
content string

Conteúdo a ser escrito no relatório.

opt_newLine boolean <optional>

Indica se deve quebrar a linha.


writeColumn(content [, opt_options])

Escreve o registro definido na Coluna correspondente. A ordem de declaração das colunas deve ser a mesma ordem da declaração da escrita dos registros.

Parameters:
Name Type Argument Description
content string | number | Date

Conteúdo que será escrito no registro e na coluna correspondente do Layout.

opt_options Object <optional>

Opções.

Properties
Name Type Argument Description
contentToAccumulate number <optional>

Valor que deverá ser utilizado para totalizar a coluna, quando se aplicar. Quando a coluna é definida para receber totalização dos registros escritos, por padrão, o valor escrito é automaticamente acumulado.

cssClass string | Array.<string> <optional>

Classes css que irão compor a tag HTML resultante.

cssStyle Record.<string, string> <optional>

Um conjunto de chave valor para definir a tag html "style" desta coluna. Ex.: {width: '100px', height: '70px'}.

tagAttributes Record.<string, string> <optional>

Um conjunto chave valor para determinar os atributos HTML que serão escritos nesta linha.

showTopLine boolean <optional>

Indica se deverá ser escrita uma linha acima do registro, na posição da coluna.

showBottomLine boolean <optional>

Indica se deverá ser escrita uma linha abaixo do registro, na posição da coluna.

renderContentAsHtml boolean <optional>

Indica se o conteúdo content deverá ser renderizado em HTML, ou seja, as tags não sofrerão escape e ainda serão interpretadas pelo navegador. Importante: Ligar esta configuração não é recomendada, pois pode comprometer a segurança caso seja mal utilizada.

totalContentWeight number <optional>

Em colunas com totalização de média ponderada, indica o peso do content no cálculo da média.

key number <optional>

Caso esta coluna represente alguma chave ela deve ser definida aqui. Esta opção só deve ser usada em conjunto com Column#classKey e Column#lookupType.

See:
  • SimpleLayout#writeLink
  • Column#totalContent

writeImage(uri [, opt_options])

Escreve uma imagem no Layout, posicionando-a de acordo com as colunas do Layout.

Parameters:
Name Type Argument Description
uri number | string

Chave ou URI da imagem na VFS. (Virtual File System).

opt_options number | Record.<*, *> <optional>

Opções.

Properties
Name Type Argument Description
contentToAccumulate number <optional>

Valor que deverá ser utilizado para totalizar a coluna, quando se aplicar. Quando a coluna é definida para receber totalização dos registros escritos, por padrão, o valor escrito é automaticamente acumulado.

cssClass string | Array.<string> <optional>

Classes css que irão compor a tag HTML resultante.

cssStyle Record.<string, string>

Um conjunto de chave valor para definir a tag html "style" desta coluna. Ex.: {width: '100px', height: '70px'}.

tagAttributes Record.<string, string> <optional>

Um conjunto chave valor para determinar os atributos HTML que serão escritos nesta linha.

showTopLine boolean <optional>

Indica se deverá ser escrita uma linha acima do registro, na posição da coluna.

showBottomLine boolean <optional>

Indica se deverá ser escrita uma linha abaixo do registro, na posição da coluna.

renderContentAsHtml boolean <optional>

Indica se o conteúdo content deverá ser renderizado em HTML, ou seja, as tags não sofrerão escape e ainda serão interpretadas pelo navegador. Importante: Ligar esta configuração não é recomendada, pois pode comprometer a segurança caso seja mal utilizada.

totalContentWeight number <optional>
key number <optional>

Caso esta coluna represente alguma chave ela deve ser definida aqui. Esta opção só deve ser usada em conjunto com Column#classKey e Column#lookupType.

See:
  • SimpleLayout#writeColumn

Escreve o conteúdo em forma de Link previamente definido no Layout.

Este método deve ser utilizado apenas quando os parâmetros do link são definidos pela propriedade legada parameters. Ao utilizar a propriedade params o método writeColumn pode ser utilizado para escrever o conteúdo da coluna.

Parameters:
Name Type Argument Description
content string | number | Date

Conteúdo que será escrito no registro e na coluna correspondente do Layout.

opt_linkParameters Array <optional>

Lista de parâmetros a serem enviados pelo Link e, via regra geral, esperados na Consulta ou Processo de destino.

opt_contentToAccumulate number <optional>

Valor que deverá ser utilizado para totalizar a coluna, quando se aplicar. Quando a coluna é definida para receber totalização dos registros escritos, por padrão, o valor escrito é automaticamente acumulado.

opt_css string <optional>

Classe ou estilo que pode ser aplicado ao registro. Ex: 'style="font-weight:bold"', ou 'class="number"'

opt_showLineTop boolean <optional>

Indica se deverá ser escrita uma linha acima do registro, na posição da coluna.

opt_showLineBottom boolean <optional>

Indica se deverá ser escrita uma linha abaixo do registro, na posição da coluna.

opt_convertToHtmlString boolean <optional>

Indica se o conteúdo deverá ser escrito respeitando comandos em HTML. Caso não seja informado, será considerado true.

Deprecated:
  • Prefira utilizar a propriedade `params` do `Link` e o método `writeColumn`.
See:
  • SimpleLayout#writeColumn
  • SimpleLayout#Link