Não encontrou o que procurava? Dê uma olhada nessas páginas!

Blog

Novidades do DataFlex 2016 / 18.2

24 de Fevereiro de 2016
Por Stephen W. Meeley

Apresentando o DataFlex 2016 / 18.2
O DataFlex 2016 / 18.2 baseia-se no alicerce do DataFlex 18.1. Ele foca na implementação de mais de 255 sugestões de desenvolvedores e correções de bug. As melhorias e correções vão do sistema básico até dicionário de dados, o framework e ferramentas do desenvolvedor (particularmente o Studio).

Os detalhes completos das sugestões implementadas e correções de bug estão na seção What’s New do Help que acompanha a instalação do DataFlex Studio 2016/ 18.2. Aqui estão os destaques...

Framework Windows

  • Nova classe dbParentCombo oferece a mesma funcionalidade da nova classe web cWebParentCombo. Ambas as classes agora suportam um método muito mais flexível para exibir conteúdo personalizado em listas combo.
  • Um novo controle de calendário mensal para prompts ou outros usos personalizados (veja a view Order no exemplo Order Entry). Se o parâmetro de data estiver em branco, nós escolhemos um valor padrão e, caso o parâmetro de data exceda o intervalo máximo do controle (piMaxSelectedCount), um erro será exibido. Os métodos SelectedDate e SelectedDataRange podem ser chamados após o fechamento do controle.
  • Alteramos o valor padrão da propriedade pbSuppressCacheError na classe cDbCJGrid  de False para True. Embora nós geralmente evitamos alterar valores padrões de propriedades, achamos que no longo prazo isto será melhor pelos seguintes motivos:
    • Suprimir erros de leitura em grids é realmente melhor para usuários finais de uma aplicação implantada. No mundo real, condições multi-usuários onde uma linha não pode ser lida acontecem e gerar uma mensagem de erro para o usuário final não lhe é muito útil.
    • O processo de atualização automática da grid introduzido no 18.2 funciona muito bem. Quando uma linha não pode ser lida, o processo de atualização da grid funciona perfeitamente. Tendo isso precedido por uma mensagem de erro anula de certa forma a recuperação automática.
    • Nossas classes de grid para web e Windows não eram consistentes. Na web nós suprimimos o erro e nós não recebemos reclamações ou comentários a respeito disso. No Windows, nós não suprimimos o erro e recebemos reclamações e comentários. Nós precisaríamos alterar um ou o outro.
    • Esta propriedade foi introduzida no 18.2 - nós não temos muito histórico de compatibilidade até agora, portanto este momento era ideal para fazer a mudança.
    • A única desvantagem de se ocultar os erros de cache é que ele pode esconder erros de programação. Por motivos de testes, os desenvolvedores podem configurar esta propriedade para False e então removê-la no momento da implantação da aplicação. Eles podem também adicionar breakpoints nos métodos HandleCacheError ou SetGridCacheError e esperar pela execução do código. Se você trabalha com constraints dinâmicos, isto é algo que provavelmente você vai querer fazer durante os testes de sua aplicação.
    •  Como a maioria dos desenvolvedores criam camadas de classes, você pode configurar a propriedade pbSuppressCacheError na sua sub-classe como desejar. Nossa sugestão é deixá-la como True (suprimir o erro) porque este é o melhor para uma aplicação implantada. Se você já a configurou como True, como muitos fizeram, nada mudará, embora você possa remover a linha que a configura.
  • Aplicações Windows agora trabalham melhor com o posicionamento e redimensionamento do painel principal quando indo de um ambiente de várias telas para uma única tela.
  • Correção de ocorrências de espaçamento de fonte no Windows 10.
  • Utilização e suporte aos controles mais atuais do Codejock (16.4.0).

Framework Web

  • Views complexas são exibidas mais rapidamente para usuários.
  • Novo controle Parent Combo. Ao utilizar o controle Parent Combo, o comando Entry_Item determina a tabela pai e a coluna que serão utilizados e o controle será preenchido automaticamente através da leitura da tabela pai.
  • Data Dictionary Inspector para a web (Web_DDDebug) - Certifique-se de checar essas melhorias de interface (contribuição de Raveen Sundram); interface mais limpa, adicionada Treeview para exibir os DDOs na estrutura e adicionada uma Grid para mostrar informações dos campos.
  • Gerenciamento otimizado de cookies.
  • Melhor tratamento de erros.
  • Diversas melhorias no mecanismo JavaScript
    • Melhor compatibilidade entre plataformas e melhor desempenho.
    • Melhorias de alinhamento e layout diversas.
  • Novo tema Desktop
    • O tema DF_Flat_Desktop tem agora a mesma aparência moderna do tema mobile/touch (DF_Flat_Touch), porém com espaçamento condensado e menor redimensionamento de controle que são mais apropriados para monitores de desktop e outros dispositivos.

Studio

  • Melhores opções de filtro de tabelas no Table Explorer
    • O filtro da lista de tabelas (filelist) é aplicado agora mais amplamente no Studio, por exemplo, no DDO Table Selector.
  • Gerar arquivos .DEF sempre que arquivos .FD forem gerados (configurável). Você pode também gerar exclusivamente arquivos .DEF.
  • Processos pré & pós-compilação configuráveis.
  • Web Designer otimizado (muito mais rápido).
  • Melhor suporte a sub-classes JavaScript no Designer.

Dicionário de Dados

Novos Relacionamentos Inteligentes

A nova propriedade pbSmartRelate controla se os dicionários de dados farão relacionamento com tabelas pais que não estão conectadas à estrutura DDO (Data Dictionay Object). Normalmente, a estrutura DDO é completa e contém todos os pais. Ao salvar dados, isto é uma exigência. Para processamentos em lote ou relatórios, é comum os desenvolvedores removerem os DDOs pais, caso eles não sejam utilizados no processo. Se pbSmartRelate for True, os registros desses pais não conectados não serão posicionados como parte do processo de relacionamento (relate). Isto pode resultar em melhoras evidentes de desempenho ao posicionar muitos registros (por exemplo em processos em lote ou grids que carregam muitos registros). Isto é ainda mais evidente quando utilizamos bancos de dados SQL.

Quando False, os DDOs realizam o relacionamentos em todas as tabelas pais abertas. Um registro pai é posicionado mesmo quando não há um DDO associado à sua tabela. Até a versão 18.2, este era o comportamento padrão. O padrão é True na classe DataDictionary e False na classe abstrata DataSet.

Constraints

Mensagem RebuildAllConstraints adicionada à Base_Data_Set. Ela enviará Rebuild_Constraints para todos os DDOs na estrutura.

Sempre que um constraint é modificado, a mensagem Rebuild_Constraints deve ser enviada ao DDO que foi alterado. Adicionalmente, Rebuild_Constraints deve ser enviada a todos os DDOS que podem ser impactados por esta mudança. Isto é requerido quando os constraints são herdados. Além do mais, recomendamos que você envie Rebuild_Constraints para todos os DDOs na estrutura de DDOs. É exatamente isso que RebuildAllConstraints faz. Essa mensagem envia Rebuild_Constraints para todos os DDOs na estrutura. Agora nós recomendamos que você use RebuildAllConstraints, ao invés de enviar Rebuild_Constraints. É mais fácil e menos suscetível a erros. Você ainda pode utilizar Rebuild_Constraints para argumentações específicas.

Sistema Básico do DataFlex

Diversas novas funções e métodos foram introduzidos no DataFlex 2016 / 18.2, incluindo...

Manipulação de Array e String:: StrSplitToArray() e StrJoinFromArray()

20 novas funções para Time e Date:

  • DateAddDay
  • DateAddHour
  • DateAddMillisecond
  • DateAddMinute
  • DateAddMonth
  • DateAddSecond
  • DateAddYear
  • DateGetDayofWeek_WDS
  • DateGetDayofWeekISO
  • DateGetWeekOfYear
  • DateGetWeekOfYear_WDS
  • DateGetWeekOfYearISO
  • DateSet
  • IsTimeSpanValid
  • IsTimeValid
  • SpanAddDay
  • SpanAddHour
  • SpanAddMillisecond
  • SpanAddMinute
  • SpanAddSecond

 4 novas funções de informação de Classes e Objetos:

  • ObjectClass
  • ClassSuperClass
  • IsObjectOfClass
  • IsClassOfClass

Sistema de Ajuda

Há alterações significativas no que é (ou não) listado nas páginas de atributos das classes (eventos, propriedades, procedures) no tópico Class Reference. Dependendo da classe, muitos atributos que estavam faltando devem agora ser listados corretamente (alguns ainda precisam de documentação adicional). Esta mudança é geralmente difícil de notar porque são melhorias espalhadas e muitos métodos aprimorados estão em classes bem profundas na hierarquia. Um exemplo interessante é comparar as páginas de propriedades, eventos e métodos da classe dbForm nas versões 18.1 e 18.2. É possível notar que a documentação no DataFlex 18.2 é muito mais precisa que nas versões anteriores do produto.