2009.2

  • Criada a propriedade Field.controlType

A propriedade tem o objetivo de indicar qual componente cliente deve ser utilizado para exibir e editar o conteúdo do campo.

Os valores permitidos são:

    • "input": O campo é editado através de um input HTML. Valores inseridos no campo serão tratados como texto puro, sem interpretação de tags HTML. (Este é o valor padrão da propriedade)

    • "none": O controle de filtragem é cancelado e o conteúdo do campo é tratado como código HTML, que deve ser inserido diretamente na célula da grade sem nenhum tipo de validação ou restrição. Como o controle do campo está desligado, o conteúdo exibido não pode ser editado pelo usuário.

O controlType "none" permite grande flexibilidade na exibição e formatação de dados, portanto, é recomendado que seja utilizado com moderação. O seu uso delega ao desenvolvedor a responsabilidade de:

    • Definir o estilo do campo e dados que ele contém, sobreescrevendo a estilização herdada do tema. Upgrades futuros do WebFramework ou alterações nos temas podem exigir que o CSS do campo seja revisto.

    • Garantir que não sejam usadas tags que possam quebrar o leiaute da grade. Conteúdos informados pelo cliente devem ser validados para não permitir a injeção de códigos maliciosos por usuários mal-intencionados.

Foi criado um exemplo para demonstrar o uso deste recurso em:

"Ir Para > Desenvolvimento > Exemplos > Grades > Grade com campos HTML (controlType=none)"

  • Possibilidade de vincular um tema grupos, usuários ou agentes de usuário (navegadores web)

    • Cada grupo pode utilizar um tema distinto (ver grade detalhe de "Temas" no cadastro do grupo).

    • Cada usuário pode utilizar um tema distinto (ver grade detalhe de "Temas" no cadastro do usuário).

    • Caso não haja definição de um tema para o grupo ou usuário, ele será determinado pelo agente de usuário que está sendo utilizado para acessar o sistema. Ex.: IE6, IE7, Firefox, iPhone Safari, Safari, etc.

Foi disponibilizado o cadastro de Agentes de Usuário para fazer a vinculação com os temas em "Ir para > Admin > Agentes de Usuário".

  • Biblioteca JSON - Publicação da API original

Existe uma adaptação da biblioteca JSON (/products/INTEQengine/library/formatters/JSON.js) em uso por alguns times que possui o grave erro de mudar a sintaxe da biblioteca original.

Na adaptação da Inteq, o programador deve construir uma instância de JsOn e a partir dela utilizar os métodos stringify() e parse(). Na biblioteca JSON original, estes métodos são de classe e o nome dela é JSON ao invés de JsOn. Exemplo:

var obj = {

str: "Teste"

};

var s = JSON.stringify(obj);

var r = JSON.parse(s);

Alteramos a nossa adaptação para também publicar a API original. Sugerimos que esta seja utilizada em vez da nossa variação pelos motivos abaixo:

    • Com a substituição do nosso JavaScript pelo Squirrelfish (projeto da Apple), deveremos abandonar a nossa adaptação (com severas limitações) e utilizar a biblioteca original.

    • O JSON está sendo incorporado à linguagem e no futuro a API original será implementada nativamente pelo interpretador JavaScript, resultando em um ganho de performance considerável.

Observação: Na API original do JSON, os métodos stringify() e parse() possuem parâmetros opcionais não suportados pela nossa adaptação. Este problema será resolvido com o novo JavaScript.

  • Reformulação dos diálogos (Alertas, Erros e Ajuda)

    • Esses diálogos passam a ser modais, ou seja, impedem o acesso ao resto do sistema até serem fechados com o botão OK ou tecla ESC.

    • Também foi incluído o recurso de dragging, permitindo ao usuário arrastar o diálogo livremente pela tela.

  • Logins de acesso ao sistema passam a ter prazo de validade

No cadastro de Usuários do sistema, foram inseridos campos de data/hora de forma que o Administrador do Sistema possa dar acesso à um usuário somente em um determinado período. Todavia as datas não são obrigatórias.

  • Suporte a todos os gráficos do FusionCharts.

O Framework passa a dar suporte a todos os gráficos do pacote FusionCharts.

São eles:

Single Serie

Multi Serie

Combined

TIPO

MSColumn2DLine

MSColumn3DLine

GRÁFICO

Gráfico em Colunas 2D combinado com Linha

Gráfico em Colunas 3D combinado com Linha

Outros

TIPO

Gantt

GRÁFICO

Gráfico Gantt

Foram criados exemplos para demonstrar o uso destes gráficos em:

"Ir Para > Desenvolvimento > Exemplos > Gráficos - Fusion Charts"

  • "Atualizar VFS" passa a permitir envio de e-mail ao final da execução

A grade "Enviar dados do relatório por e-mail" foi incluida no processo Atualizar VFS, permitindo a criação de uma lista de e-mail que receberão a listagem das alterações realizadas pelo processo na base de destino e a versão dessas alterações.

  • Criado processo "Comparar Estrutura de Tabelas"

Este processo permite comparar a estrutura de tabelas entre duas bases distintas. Após escolher que tabelas deseja avaliar e qual a base de destino, é exibido um relatório que mostra:

    • Quais campos existem apenas na origem

    • Quais campos existem apenas no destino

    • Quais campos existem na origem e no destino, mas possuem tipo diferentes.

Caminho:

Ir para > Desenvolvimento > Banco de Dados > Comparar Estrutura de Tabelas

  • Novos Formulários para Entrada de Dados

Foi disponibilizado o objeto FormDialog, que possibilita a montagem de diálogos modais com entrada de dados. Os tipos de dados suportados pelo diálogo são: Integer, String, Combo, Date, Boolean e Memo.

Foi criado um exemplo para demonstrar o uso desta funcionalidade em:

"Ir Para > Desenvolvimento > Exemplos > Formulário para Entrada de Dados"

  • Criada a propriedade Column.columnGroup

Foi disponibilizada a propriedade columnGroup permitindo uma melhor exibição de colunas de um maneira agrupada, essa propriedade substitui a API abaixo:

var col = sl.column( "Nome_do_Grupo#Nome_da_Coluna")

Ficando:

var col = sl.column( "Nome_da_Coluna")

col.columnGroup = "Nome_do_Grupo"

Foi criado um exemplo para demonstrar o uso desta funcionalidade em:

"Ir Para > Desenvolvimento > Exemplos > Relatórios > Relatório Simples"