software‎ > ‎módulos‎ > ‎web framework‎ > ‎

notícias


Melhorias no “Gerador de relatórios”

postado em 26 de nov de 2013 10:36 por Usuário desconhecido   [ 28 de nov de 2013 04:30 atualizado‎(s)‎ ]

As melhorias que estão sendo realizadas no “Gerador de Relatórios” darão a estrutura necessária para o monitoramento e a ampliação do desempenho em qualquer área de seu negócio.

Estamos progredindo num projeto revolucionário que permitirá ao usuário o acesso a informação íntegra, de forma clara e simples, sem falhas, com volume de dados e riqueza de detalhes. O cruzamento de informações também será possível. O gerador de relatórios, além das melhorias de interface, vai conseguir dar ao usuário o poder de gerar relatórios incrivelmente poderosos, independentemente, adequando-os às suas especificidades. 

Já é possível a visualização de novas funcionalidades entregues que fazem parte deste projeto. No entanto, é importante ressaltar que estes pequenos incrementos fazem parte de uma proposta maior que está sendo detalhadamente desenvolvida. Tudo de uma forma muito simples e prática para o usuário. A melhoria de performance será outro ganho significativo. 

O “Gerador de relatórios” já está sendo utilizado por alguns usuários em regime de testes. Em breve estaremos liberando-o para uso de todos os clientes. 




Disponibilidade para ampliar as imagens de gráficos

postado em 30 de abr de 2013 05:19 por Usuário desconhecido   [ 30 de abr de 2013 05:38 atualizado‎(s)‎ ]

Agora você pode empregar um recurso do Sistema UNUM para melhor compreender os gráficos ali disponibilizados, quando o tamanho em menor escala acarretar um truncamento de sua exposição, devido à abundância de informações nele contido: bastará clicar duas vezes sobre a imagem apresentada originalmente que ela se ampliará, facilitando bastante a sua visualização.

E isto está valendo para qualquer dos gráficos disponibilizados pelo Sistema UNUM.

Veja os gráficos demonstrativos e perceba como mudou para melhor:


Antes:


Depois:



Veja mais detalhes acessando aqui

Field.controlType="none"

postado em 25 de mai de 2010 12:57 por Usuário desconhecido   [ atualizado em 17 de jul de 2013 06:23 por Usuário desconhecido ]



Encontra-se disponível na DESENVOLVE a nova propriedade Field.controlType, que desliga o controle de informações inseridas no campo, permitindo ao desenvolvedor utilizar tags HTML para estilizar o conteúdo dos campos da grade.

A propriedade Field.controlType aceita dois valores:
  • "input": O campo se transforma em input quando está em foco, interpretando qualquer dado inserido pelo usuário como texto puro. É o valor padrão da propriedade.
  • "none": Desliga o controle que limita a entrada de dados, permitindo a criação de campos com código HTML interpretável pelo navegador em um campo do tipo somente leitura.
A flexibilidade oferecida por essa nova funcionalidade exige certos cuidados por parte do desenvolvedor. Para usá-la, é necessário:
  • Definir o estilo CSS do campo, especialmente para sobreescrever estilos não desejados herdados do tema. Upgrades futuros do WebFramework ou alterações nos temas podem exigir que o CSS do campo seja revisto.
  • Não inserir tags que possam quebrar o leiaute da grade. 
  • Validar todo o conteúdo enviado pelo cliente para não permitir a injeção de códigos maliciosos por usuários mal-intencionados.

Foi criado um exemplo em "Desenvolvimento > Exemplos > Grades > Grade com campos HTML (controlType=none)" para demonstrar o uso deste recurso. 

Esse é um screenshot da grade no modo lista:



Já abaixo encontra-se a imagem no modo formulário:



No momento, o valor "input" está sendo utilizado para representar os vários tipos de controle (input, textarea, checkbox). No futuro, este comportamento será melhorado e outros valores para o controle deverão ser criados, podendo ser editados através de um editor de texto rico e um seletor de cores. 

A criação desta propriedade resolve um problema antigo da arquitetura do WebFramework, que era o controle do campo estar fortemente ligado ao tipo do campo. Com esta quebra conceitual, será permitido que um campo string(8) possa ser visualizado/editado de várias formas, como:
  • Entrada de texto (comportamento atual).
  • Entrada de hora
  • Seletor de cores, considerando o valor do campo como um RGB
  • Combo
A propriedade fieldType, que hoje aceita tipos como "hour" e "combo", deve ser preenchida no futuro apenas com tipos reais de dados e o controlType assumirá a função de determinar o controle de entrada.



Function.bind()

postado em 25 de mai de 2010 12:51 por Usuário desconhecido   [ 25 de mai de 2010 13:10 atualizado‎(s)‎ ]



Publicamos na DESENVOLVE o método bind() para Function. Esta função existe em alguns frameworks JS e foi incluída no ECMAScript 3.1, a nova versão do JavaScript. 

A função bind() é excelente para resolver uma limitação da linguagem, que é a passagem de métodos (funções de objetos) para outros objetos. O JavaScript, diferente de outras linguagens, não "amarra" uma função ao objeto que a "definiu" e o this é decidido no momento da invocação. Em JS não existe o conceito forte de método, uma função de um objeto.

Exemplo:

var obj = {
   data: 10,
   test: function () {
      return this.data
   }
}

// Method invocation, this é o objeto que antecede o ponto.
obj.test() // retorna 10

// Function invocation, this é o objeto global
var f = obj.test
f() // retorna undefined, pois não existe uma variável global chamada data

var data = 20
f() // retorna 20, para demonstrar que this é o global

// Function invocation com bind
f = obj.test.bind( obj )
f() // retorna 10. Apesar de ser um function invocation, this será obj


Desta forma, o bind permite utilizar métodos de objetos como tratadores de eventos, como demonstrado abaixo:

var controlador = {
   campoTesteRequerido: true,
   validaBeforePost: function ( grid ){
      if ( this.campoTesteRequerido && !grid.ds.teste ){
         throw new Error( "O campo Teste deve ser preenchido." )
      }
   }
}

grid.onBeforePost.set( controlador.validaBeforePost ) // erro, pois this.campoTesteRequerido será undefined

grid.onBeforePost.set( controlador.validaBeforePost.bind( controlador ) ) // ok, this será controlador


Além de determinar o this de uma função, o bind permite pré-determinar os seus parâmetros iniciais. Exemplo:

function incrementa( qtd, valor ){
   return qtd + valor
}

var inc10 = incrementa.bind( this, 10 )
inc10(100) // retorna 110


A função bind() torna desnecessário o uso da obscura classe Method, utilizado na declaração de alguns eventos.


Em breve a documentação de referência será atualizada.


As extensões de Function são realizadas em "-1898145852 /* /products/UNUMengine/library/extensions/Function.js */". Esta biblioteca também pode ser utilizada no cliente (browser). A biblioteca somente declara bind() se o interpretador JavaScript utilizado não a declarar nativamente.



1-4 of 4