FANDOM


***Novas funcionalidades/Melhorias


- Fontes do sistema

As fontes usadas no framework mudaram de Verdana para MS Sans Serif (iguais as usadas no iWeb). A fonte Verdana apesar de ser de leitura bastante agradável, toma muito espaço em tela. Com a nova fonte não perdemos muito em legibilidade e ganhamos espaço.

- Métodos interaction/activity do Process

A API de declaração de interactions/activities foi alterada para não ter mais os parâmetros dependece e reseting ( segundo e terceiro parâmetros da API atual). Com isso os processos que precisam controlar a dependência de execução de uma interaction em função da execução de uma outra devem ser revistos fazerem este controle manualmente.

Abaixo segue um exemplo de uso da API nova em comparação com a antiga:

Antes

this.interaction( 'interactionName', dependence, reseting, function () {

  ...

})

this.activity( 'activityName', dependence, reseting, function () {

  ...

})

Agora

this.interaction( 'interactionName', function () {

  ...

})


this.activity( 'activityName', function () {

  ...

})

OBS 1: A API antiga ainda será suportada como deprecated, porém o controle de dependência não mais será feito. OBS 2: Os processos que forem ser feitos a partir de agora devem usar a nova API.

- Criação de actions e o uso das propriedades visibleActions/enabledActions

A criação de actions que simplesmente apontam para uma interaction/activity passa a ser desnecessária com o uso das propriedades acima. Ao ser passado as actions a serem exibidas será verificado se a action já existe no processo, caso não exista e exista uma interaction/activity de mesmo nome, será criada a action apontando para a interaction/activity.

Essa medida visa tornar o desenvolvimento mais ágil. Abaixo segue um exemplo comparativo.

Antes

this.action('Gravar Operação', 'gravarOperacao')

this.interaction('inicio', function () {

  this.visibleActions('Gravar Operação')

})

this.activity('Gravar Operação', function () {

  ...

})

Agora

this.interaction('inicio', function () {

  this.visibleActions('Gravar Operação')

})

this.activity('Gravar Operação', function () {

  ...

})

- Método setFieldProperties da grid e do x-class

Novo método que permitirá ao desenvolvedor alterar várias propriedades de vários fields em bloco. Isso deve agilizar o desenvolvimento de processos e deixar o código mais enxuto.

As seguintes formas de chamada ao método são possíveis:

  . setFieldsProperties( fields, function ( field ) { field.prop = valor; field.prop2 = valor2 } )
  . setFieldsProperties( fields, ['prop', 'prop2'], [ valor, valor2] )
  . setFieldsProperties( fields, 'prop', valor, 'prop2', valor2      )
 
  // Onde o parâmetro "fields" pode assumir qualquer uma das formas:
  fields = [ 'campo1', 'campo2'] // array dos nomes dos campos
  fields = [ field1,   field2  ] // array dos objetos field
  fields = 'campo1,campo2'       // lista dos nomes dos campos separada por vírgula
  fields = 'campo1;campo2'       // lista dos nomes dos campos separada por ponto-e-vírgula

Um exemplo de uso:

with( this.grid('Pedidos', ds, -2008879000 /* Pedidos ou Provisões */) ){

  setFieldsProperties('TOTALDANOTA,TOTAL,ITEM,PESSOA', function ( field) {
     with ( field ) {
        readOnly = false
        visible  = true
     }
  })
  // O mesmo efeito seria possível nas seguintes formas
  setFieldsProperties('TOTALDANOTA,TOTAL,ITEM,PESSOA', 'visible', true, 'readOnly', false)
  setFieldsProperties('TOTALDANOTA;TOTAL;ITEM;PESSOA', 'visible', true, 'readOnly', false)
  setFieldsProperties( [ fieldTotalNota, fieldTotal, fieldItem, fieldPessoa ], ['visible', 'readOnly'], [ true, false ] )
 
  ...

}

É extremamente recomendável o uso deste novo método a partir deste momento. Ele também pode ser usado nos x-class.

- Field tipo 'File'

Foi criado o field do tipo 'File' que possibilitará, a princípio, a exibição de imagens e outros tipos de "arquivos" da ivfs. Para se ter um field do tipo file, o desenvolvedor deve usar a seguinte sintaxe:

        with ( grid.field('arquivos', 'file') ) {
           label        = 'Imagens'
           width        = 27 // px
           height       = 18 // px        
           viewMode     = Field.VM_THUMBNAIL // ou Field.VM_LIST
        }

É possível indicar como os arquivos devem ser exibidos através da propriedade viewMode do field. Os valores possíveis são:

  - Field.VM_THUMBNAIL: indica que as imagens devem ser renderizadas pelo browser;
  - Field.VM_LIST: indica que os arquivos devem ser listados;

Apenas chaves da iVfs devem ser usadas como valores deste tipo de field.

Num futuro não muito distante estaremos extendendo as funcionalidades do field para que seja permitido upload e download dos arquivos, além também da alteração do valor do field pelo usuário, a princípio ele é somente leitura.

- Lookups para classes em grids cadastrais

Os lookups para classes passam a não permitir a escolha de classes que sejam apenas para agrupamento.

- Mensagem de erro de permissão na edição da grid

A mensagem de erro de permissão foi melhorada para indicar se o usuário não tem permisão para edição/inserção na classe ou se a classe é apenas para agrupamento.


***Correções


- Mudança na avaliação de expressões em campos numéricos

O meio de se avaliar uma expressão em um field mudou, passando agora a ser necessária a digitação do operador = ( igual).

Por exemplo, para se calcular a expressão 5*2:

Antes

5*2 [ENTER]

Agora

=5*2 [ENTER]

O objetivo da mudança é evitar que o ENTER em campos com valores negativos fosse interpretado como sendo uma expressão, o que causava problemas na navegação, deixando o usuário "preso". A mudança também aproxima o conceito ao das planilhas.

- Actions na grid

No email anterior ficaram faltando mais alguns esclarecimentos com relação as actions na grid, como por exemplo:

Foi criada a propriedade grid na action, que faz referencia a grid que criou aquela action. Em actions de process essa propriedade é nula.

Ex:

with ( this.grid('Pedidos', ds, -2008879000 /* Pedidos ou Provisões */ ) ) {

  ...
  action('Gravar Operação', function ( sender ) {
     // sender = action, grid = grid pedidos
     sender.grid.ds.applyUpdates()
  })

}

Existia um bug na escolha automática do atalho para actions que não estava desconsiderando alguns caracteres como vírgula, ponto, etc... Corrigido.

- Field.focus()

O método focus() do field não estava funcionando corretamente. Corrigido. Esta correção atende ao CRM 728808.

Interferência de bloqueador de anúncios detectada!


A Wikia é um site grátis que ganha dinheiro com publicidade. Nós temos uma experiência modificada para leitores usando bloqueadores de anúncios

A Wikia não é acessível se você fez outras modificações. Remova o bloqueador de anúncios personalizado para que a página carregue como esperado.

Também no FANDOM

Wiki aleatória