4D v15

Mudanças em comportamento (global)

Página Inicial

 
4D v15
Mudanças em comportamento (global)

Mudanças em comportamento (global)    


 

Desde a versão 4D v14 R3, você pode atribuir o valor do campo especial "id_added_by_converter" que é adicionado automaticamente por 4D para converter um banco de dados de uma versão anterior a v11. Anteriormente, esse valor só pode ser atribuído por 4D, forçando os desenvolvedores a usar comandos obsoletos, como _o_CREATE SUBRECORD para adicionar novos registros convertidos em subtabelas.

Com esta nova opção, você pode converter seu banco de dados antigo usando subtabelas de uma forma mais progressiva: você pode manter o vínculo especial "relação subtabela" e adicionar ou modificar registros relacionados como se fossem padrão. Quando todos os métodos tiverem sido atualizados, você pode substituir a relação especial com uma normal, sem qualquer alteração em seu código.
Por exemplo, agora pode escrever:

 CREATE RECORD([Empregados])
 [Empregados]Last Name:="Jones"
 CREATE RECORD([Empregados_Filhos])
 [Empregados_Filhos]Nome:="Natasha"
 [Empregados_Filhos]Birthday:=!12/24/2013!
 [Empregados_Filhos]id_added_by_converter:=4 //Não coincidem os tipos em versões anteriores
 SAVE RECORD([Empregados_Filhos])
 SAVE RECORD([Empregados]

Este código funcionará tanto com as relações especiais quando com as regulares.

Em 4D, os campos com o atributo Único devem ser indexados. A partir de 4D v14 R4, você não pode mais definir campos no editor de estrutura com um atributo único, se eles não tiverem um índice. Em versões anteriores, ainda era possível obter uma configuração deste tipo por razões de manutenção.

A partir de 4D v14 R3, um novo ícone é exibido para as imagens que são salvas em um formato que não pode ser representado na máquina. A extensão do formato necessário é escrita na parte inferior do ícone:



Este ícone é utilizado automaticamente, sempre que estas imagens são exibidas.

Este ícone indica que a imagem não pode ser exibida ou processada localmente, mas podem ser armazenada para visualização em outra máquina. Este é o caso, por exemplo, para imagens PDF em uma plataforma Windows ou em imagens baseadas em PICT em um 4D Server de 64 bits em Mac OS X.

Nos Bancos de dados criados em 4D v15, os métodos são automaticamente salvos em Unicode. Em um banco de dados convertido, você deve selecionar os métodos Salvar em Unicode no diálogo de "compatibilidade" das Propriedades do banco de dados.

Em 4D v15, editor de métodos de 4D utiliza a linguagem "Inglês-US" como padrão internacional, independentemente da versão 4D ou das configurações locais de sistema

  • separadores decimais para números reais devem ser pontos (".") em todas as versões (e não vírgulas (",")),
  • constantes de data devem ser usadas com o formato ISO (!YYYY-MM-DD!) 
  • nomes de comando e constantes devem ser em inglês (esta mudança apenas diz respeito ás versões francesas, pois esse já era o caso em outras linguagens).

Em aplicativos convertidos de versões anteriores, tenha cuidado quando usar fórmulas como EXECUTE FORMULA.

Esta configuração pode ser desativada usando a opção  Use regional system settings da página Methods/Options da caixa de diálogos de Preferências de 4D:

Implementação: já que a preferência Use regional system settings é local ao computador, ela não é incluída em aplicativos fusionados.

Quando implementando aplicativos fusionados, há duas soluções quando usar configurações regionais.

  • Solução 1: apaga o diretório en.lproj que fica no primeiro nível da pasta Resources do aplicativo 4D Volume Desktop antes de construir o aplicativo fusionado final.
  • Solução 2: Edita o conteúdo do arquivo de preferênci8as de 4D v15  de cada máquina local e estabeleça a chave "use_localized_language" para "true".
    Código Exemplo é oferecido no apêndice. Após executar o código, lembre que você precisará reiniciar o aplicativo 4D para que a modificação seja efetiva.

Para saber mais, veja Configuração Inglês-US no Editor de Métodos no manual de Upgrade.

Desde 4D v14, em Windows, a quando a tecla "separador decimal" do teclado numérico mostra um ponto [.], usando esta tecla produz um resultado diferente para um campo numérico e para um campo texto:

  • Desde 4D v13: independentemente de se um campo for numérico ou uma string, usando a tecla [.] do teclado numérico inserido o separador decimal definido no nível do sistema (mas esta definição deve ter sido feita ANTES de lançar 4D;
  • Em 4D v14 e 4D v15: para campos de tipo Real, usar a tecla "." do teclado numérico insere o separador decimal definido no nível do sistema. Para outros tipos de campo, apertar esta tecla irá simplesmente adicionar um ponto

A diferença é apenas perceptível em casos onde o separador decimal do sistema não for um ponto (como na maioria dos sistemas europeus  Este é o caso por exemplo para sistemas Franceses onde o separador decimal  (vírgula) não for um dos atribuídos ao teclado numérico (ponto).

Nota: Para saber mais sobre formato numérico em bancos de dados convertidos, veja também a opção de compatibilidade "Utilizar ponto e vírgula como marcadores de posição em formatos numéricos" na seção Página Compatibilidade.

O número de dígitos significativos usados ​​para representar os decimais de números reais foi reduzido em 4D:

  • em versões anteriores, este número era de 15 dígitos
  •  4D v14 em R3 e posteriores versões, agora é 13 dígitos.

Esta modificação trata apenas da conversão de números reais a texto, não do jeito que eles são representados internamente (armazenamento), ou operações aritméticas entre os números reais. A precisão dos números reais não é afetada. O objectivo é de limitar o número de casos em que as operações de números reais produzem resultados incorrectos. Por exemplo, isso permite obter resultados válidos nos seguintes casos:

OperaçãoResulto em 4D antes de v14R3Resulto em 4D a partir de 4D v14R3

String(3216.36 - 3214.89)

"1.47000000000025""1.47"
String(0.321636-0.321489)"0.000146999999999953""0.000147"

A precisão dos números reais é limitada em sua natureza assim se sua aplicação 4D utiliza os primeiros 15 dígitos ou mais dos números reais, você pode precisar usar outros formatos de dados, como texto ou números inteiros longos (por números de série ou medições astronômicas).
Note-se que em 4D, o grau de precisão por padrão dessas comparações podem ser modificados usando o comando
SET REAL COMPARISON LEVEL.

Foi necessário modificar as representações de ponteiro no código de 4D, devido à mudança de métodos para Unicode. Ponteiros foram otimizados e são compatíveis com recursos adicionais, tais como elementos de arrays 2D; pois é importante para manter a compatibilidade com os componentes compilados anteriormente e plug-ins, um novo ponteiro de tipo de dados, gerido de forma transparente por 4D, foi adicionado à linguagem.

Dois comandos foram afetados
:

  • RESOLVE POINTERagora retorna -1 em vez de 0 no quarto parâmetro para ponteiros para variáveis ou arrays unidimensionais
  • Get pointer agora funciona de maneira diferente:
    • Ponteiros para arrays 2D, incluindo aqueles que utilizam expressões, agora são aceitos;
    • Nomes inválidos para variáveis agora geram um erro 77 ("Bad variable name"). Nas versões anteriores, elas eram aceitas;
    • Espaços extras não são mais erros.

 
 

 
PROPRIEDADES 

Produto: 4D
Tema: Mudanças em comportamento (global)

 
HISTÓRIA 

 
ARTICLE USAGE

Conversão a 4D v15 ( 4D v15)