76
4D v15 R4 - Upgrade Modo Desenho Linguagem 4D Write Pro 4D Mobile SQL Otimizações Versão 64-bits de 4D Developer Edition (preview) Lista alfabética dos comandos - 1 -

4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Embed Size (px)

Citation preview

Page 1: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

4D v15 R4 - Upgrade

Modo Desenho Linguagem 4D Write Pro 4D Mobile SQL Otimizações Versão 64-bits de 4D Developer Edition (preview) Lista alfabética dos comandos

- 1 -

Page 2: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Modo Desenho

Listbox: opção de exibição de Reticências Listbox: opção de ocultar linhas extras em branco Listbox: linhas desativadas e não selecionáveis Salvar rota de arquivo de dados em preferências de usuário Novo procedimento de conexão para clientes fusionados Novo objeto formulário 4D Write Pro em Biblioteca de Objetos

- 2 -

Page 3: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Listbox: opção de exibição de Reticências

Nova opção de Truncar com reticências

A nova opção Truncar com reticências está disponível em 4D v15 R4, o que lhe permite controlar a visualização dosvalores quando as colunas do list box forem demasiado estreitas para mostrar a totalidade de seu conteúdo. Esta novaopção é encontrada no tema "Mostrar" da Lista de propriedades e está disponível para todos os tipos de coluna, excetoimagens e objetos:

Quando a opção estiver selecionada (padrão), se o conteúdo de uma célula list box exceder a largura da coluna, ela étruncada e são mostrados as reticências:

Nota: a posição dos pontos depende do sistema operativo. No exemplo anterior (Windows), são adicionados ao ladodireito do texto. Em OS X, são adicionados no meio do texto.

Quando a opção estiver desselecionada, se o conteúdo de uma célula exceder a largura da coluna, sãosimplesmente cortadas sem adicionar reticências:

A opção Truncar com reticências está selecionada como padrão e pode ser especificada com list boxes do tipo Array ouSeleção. Está disponível para list boxes (objetos inteiros), ou separadamente para list box colunas e list box pé depágina.

Ajuste de linha e reticências Quando se aplica a colunas de tipo Texto ou Alfa, a opção Truncar com reticências só está disponível se a opção nãoestiver selecionada. Quando for marcada a opção Ajuste de linha, o conteúdo adicional das células se maneja através dasfuncionalidades de retorno de linha de maneira que a opção Truncar com reticências não está disponível.Nota: por coerência, a opção Ajuste de linha foi movida do tema "Entrada" ao tema "Mostrar" da Lista de propriedades.

Tipo Booleano A opção Truncar com reticências pode ser aplicada as colunas de tipo booleano; entretanto, o resultado difere em funçãodo formato:

Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas com reticências,Para os formatos Booleanos de tipo caixa de seleção, as,etiquetas sempre são cortadas.

- 3 -

Page 4: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Listbox: opção de ocultar linhas extras em branco

A partir de 4D v15 R4, uma nova opção de list box lhe permite controlar a visualização de linhas vazias extras adicionadasna parte inferior dos objetos list box. Como padrão, 4D adiciona linhas adicionais para preencher o espaço vazio:

Pode eliminar estas linhas vazias selecionando a nova opção Ocultar linhas vazias finais no tema "Fundo e borda" dalista de propriedades:

Quando selecionar esta opção, a parte inferior do objeto list box fica em branco:

Esta nova opção estiver disponível para os objetos list box de tipo Array e Seleção.

- 4 -

Page 5: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Listbox: linhas desativadas e não selecionáveis

A partir de 4D v15 R4, pode controlar as novas propriedades de interface "desativada" e "selecionável" para cada linha delist box de tipo array.Estas novas funcionalidades são manejadas através de um novo array propriedades, chamado Array de controle delinhas, que é uma versão estendida da propriedade "Array de linhas ocultas" associado a um list box nas versõesanteriores.

Propriedade de array de controle de linhas

Os list box de tipo array contêm agora uma nova propriedade que se encontra no tema "List Box": Array de controle delinhas.

Nota de compatibilidade: esta propriedade substitui a propriedade "Array linhas ocultas" que estava disponível nasversões anteriores de 4D. Por razões de compatibilidade, um array booleano ainda é suportado como um array de controlede linhas (ver mais adiante).Pode introduzir o nome de um array de tipo booleano ou de um array de tipo inteiro longo:

Array Booleano: esta possibilidade é conservada apenas por razões de compatibilidade com versões anteriores (verNota de compatibilidade). Neste caso, o array é utilizado como nas versões anteriores de 4D: cada elemento do arrayrepresenta o estado ocultar/mostrar da linha correspondente no list box, onde True significa que a linha está oculta eFalse que se mostra.Array Inteiro longo (nova funcionalidade): neste caso, o array lhe permitirá controlar várias propriedades da interfazpara o list box. Cada elemento do array pode ser utilizado para controlar se uma linha é:

oculta ou visível (visível é o valor como padrão)ativada ou desativada (ativada como padrão)selecionável ou não selecionável (selecionável é o valor como padrão)

Qualquer que seja seu tipo, o array deve ter o mesmo número de elementos que o list box. Cada elemento do array gestionasua linha correspondente no list box.Nota: a propriedad Array de controle de linhas também pode ser definido ou obtido utilizando os comandos LISTBOXSET ARRAY e LISTBOX Get array.O array também pode ser devolvido pelo comando GET LISTBOX ARRAYS. Para saber mais, consulte LISTBOX Getarray, LISTBOX SET ARRAY, LISTBOX GET ARRAYS.

Gerenciar o array de controle de linhas

Nota: este parágrafo descreve apenas o manejo de um array de controle de linhas de tipo inteiro longo. O uso de um arraybooleano já foi descrito na documentação do list box (consulte o parágrafo "Array linhas ocultas" na seção ).Cada elemento do Array de controle de linhas define o estado da interface de sua linha correspondente no list box. Trêspropriedades da interface estão disponíveis utilizando as constantes do tema "List Box":

- 5 -

Page 6: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Constante#tab/]Tipo Valor Descrição

Listbox row is hidden Inteirolongo 1 A linha correspondente está oculta (equivalente a propriedade Oculta

existente). Como padrão: visível

Listbox row isdisabled

Inteirolongo 2

A linha correspondente está desativada. Os textos e os controles como ascaixas de seleção são atenuadas ou ficam cinza). As áreas de entrada detexto editáveis já não são editáveis. Como padrão: ativada

Listbox row is notselectable

Inteirolongo 4

A linha correspondente não pode ser selecionada (o ressaltado não épossível). As áreas de entrada de texto editáveis já não são editáveis anão ser que a opção "Edição em clique único" esteja habilitada. Oscontroles como caixas de seleção e listas continuam funcionais. Estaconfiguração é ignorada se o modo de seleção de list box é "Nenhum".Como padrão: selecionável

Para mudar o estado de uma linha, só deve que passar a constante apropriada no elemento correspondente. Por exemplo,se não quiser a linha #10 que seja selecionável, pode escrever:

aLControlArr{10}:=Listbox row is not selectable

Podem ser definidas várias propriedades da interface por vez:

aLControlArr{8}:=Listbox row is not selectable+Listbox row is disabled

Lembre que a configuração de propriedades para um elemento anula qualquer outro valor para este elemento. Por exemplo:

aLControlArr{6}:=Listbox row is disabled+Listbox row is not selectable //define a linha 6como desativada AND não selecionável aLControlArr{6}:=Listbox row is disabled //define a linha 6 como desativada masselecionável novamente

- 6 -

Page 7: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Salvar rota de arquivo de dados em preferências de usuário

Visão Geral

4D memoriza automaticamente a rota de acesso do último arquivo de dados aberto pelo arquivo de estrutura. Estefuncionamento acelera o lançamento ds aplicações 4D, enquanto permite trabalhar alternativamente com vários arquivos dedados.Nas versões anteriores do programa, esta informação se armazenava no arquivo de estrutura. Mesmo que isto não seja umproblema na maioria dos casos, poderia causar problemas no contexto de implementação de aplicações finais fusionadas.Em particular, quando os desenvolvedores enviam a seus clientes versões atualizações de seus aplicativos implementados,os usuários sempre tem que selecionar manualmente o arquivo de dados no primeiro lançamento.Para evitar estes problemas, a partir de 4D v15 R4, a rota do arquivo de dados para as aplicações fusionadas podem serarmazenadas nas preferências do usuário. Esta nova característica oferece uma melhor conformidade com o sistemaoperativo e uma maior flexibilidade para seus aplicativos fusionados.

Propriedade de ativação (opção de compatibilidade)

As funcionalidades descritas nesta seção só estão disponíveis quando a opção Utilizar a nova arquitetura paraimplantação de aplicativos da página "Compatibilidade" das Propriedades do banco de dados estiver seleccionada:

Esta opção está selecionada de forma pré-determinada nos bancos de dados criados com 4D v15 R4 e posteriores: a"nova arquitetura" está ativada, sem precisar de nenhuma configuração adicional.Por razões de compatibilidade, esta opção está desativada de forma pré-determinada nos bancos de dadosconvertidos de versões anteriores: é necessário selecioná-la para se beneficiar das novas funcionalidades.

Nova localização para a última rota de arquivo de dados

Nos bancos de dados criados com 4D v15 R4 ou nos bancos convertidos quando a opção de compatibilidade Utilizar anova arquitetura para os aplicativos implementados estiver selecionado (ver acima), os aplicativos independentes ouservidor gerado com 4D já não armazenar a última rota de arquivo de dados aberta, e sim se armazenará na pasta depreferências de usuário do aplicativo.A localização da pasta de preferências de usuário do aplicativo corresponde a rota devolvida pela instrução seguinte:

userPrefs:=Get 4D folder(Active 4D Folder)

A rota do arquivo de dados é armazenada em um arquivo dedicado, chamado lastDataPath.xml.Graças a esta nova arquitetura, quando se ofereça uma nova versão de seu aplicativo, o arquivo de dados de usuário local(o último arquivo de dados que seja usado) será aberto automaticamente no primeiro lançamento.Este mecanismo é geralmente adequado para as implementações padrão. Entretanto, para necessidades específicas, porexemplo, se forem duplicados seus aplicativos fusionados, é possível que deseje mudar a forma na qual o arquivo de dadosesteja vinculado ao aplicativo. Para mais informação, consulte a seguinte seção.

Mudar o modo de data linking

- 7 -

Page 8: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Por que mudar o modo data linking? Nas versões 14 R4 e posteriores, 4D usará automaticamente o último arquivo de dados aberto para os aplicativosfusionados, da mesma forma que nas versões anteriores. Entretanto, quando for ativada a "nova arquitetura" a rota doarquivo de dados é guardada na pasta de preferências do usuário. Como resultado, um uso específico que estava disponívelanteriormente já não funcionará: a duplicação de um aplicativo fusionado destinado a usar diferentes arquivos dedadosEste truque era possível porque a rota do arquivo de dados era armazenada no pacote do aplciativo e em relação com oarquivo de estrutura. Uma versão duplicada podia funcionar de forma independente ("sandboxed"). Entretanto, a duplicaçãode um pacote de um aplicativo não cria um aplicativo distinto. Com o novo armazenamento de rota do arquivo de dados pré-determinado, os aplicativos duplicados compatiriam a mesma pasta de preferências de usuário e portanto, sempre usam omesmo arquivo de dados, mesmo se o arquivo de dados for renomeado, já que é aberto o último arquivo usado para oaplicativoPara respaldar este cenário específico quando for ativado a nova arquitetura, pode vincular a rota do arquivo de dados arota do aplicativo. Neste caso, o arquivo de dados estará associado mediante uma rota específica e não será só o últimoarquivo aberto. Pode selecionar o modo de vincular os dados durante a fase de geração da aplicação.Duplicação quando os dados vinculados pelo nome da aplicação:

Duplicação quando os dados estiverem vinculados pela rota da aplicação:

Que são modos linking de dados Dois modos de link de dados estão disponíveis. Ambos têm vantagens e desvantagens por isso deve selecionar o modoque melhor se adapte a suas necessidades.

Por Nome da aplicação (pré-determinado)Neste modo, a aplicação 4D abre automaticamente o último arquivo de dados aberto que corresponde ao arquivo deestrutura. Este modo flexivel e intuitivo lhe permite mover livremente o pacote do aplicativo no disco. Por geral, se deveutilizar para aplicações fusionadas, a menos que necessite específicamente duplicar seu aplicativo.

Por rota da aplicativoNeste modo, a aplicação 4D fusionada analizará o conteúdo do arquivo lastDataPath.xml das preferências de usuárioe tratará de abrir o arquivo de dados com um atributo "executablePath" que coincida com a rota completa daaplicação. Se for encontrada uma entrada assim, se abre seu arquivo de dados correspondente (definido através deseu atributo "dataFilePath"). Do contrario, se abre o último arquivo de dados aberto (modo padrão).Este modo lhe permite duplicar seus aplicativos fusionados sem romper o link ao arquivo de dados (ver acima).Entretanto, com esta opção, se o pacote de aplicativo se mover no disco, o usuario deverá assignar manualmente umarquivo de dados, já que a rota do aplicativo já não coincidirá com o atributo "executablePath" (depois que um usuáriotenha selecionado um arquivo de dados, o arquivo lastDataPath.xml se atualiza).

Como mudar o modo de data linking? Pode selecionar o modo de associação dos dados seja na caixa de diálogo do Gerador de aplicativos, ou por meio dasnovas chaves XML BuildApp.

Na janela do Gerador de aplicatvios, agora pode selecionar o modo de associar os datos nas páginas Aplicativos eCliente/Servidor:

- 8 -

Page 9: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Nota: estas opções só estão disponíveis quando tiver selecionado a opção Utilizar a nova arquitetura para osaplicativos implementados (ver acima).

Também pode utilizar a nova chave XML BuildApp "LastDataPathLookup", que está disponível tanto para aplicativosmonopostos e cliente-servidor:Preferences4D/BuildApp/RuntimeVL/LastDataPathLookup: para especificar o funcionamento do aplicativomonopostoPreferences4D/BuildApp/CS/LastDataPathLookup: para especificar o funcionamento do aplicativo servidorEstas chaves podem ter um dos seguintes valores:

Valor dachave Modo de seleção do arquivo de dados Armazenamento de rota de

arquivo de dados

InDbStruct Utilizar a rota no arquivo de estrutura Dentro do arquivo de estrutura(comportamento herdado)

ByAppName Utilize o mais recente armazenado em LastDataPath.xml Nas preferências do usuario

ByAppPath Entrada cujo executablePath coincide com a rota deacesso do executável do aplicativo Nas preferências do usuário

- 9 -

Page 10: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Novo procedimento de conexão para clientes fusionados

A partir de 4D v15 R4, o procedimento do lado do cliente que se encarrega das conexões ao servidor foi modificado paraoferecer mais controle ao desenvolvedor e uma maior flexibilidade em caso de erro de conexão.

Propriedade de ativação (opção de compatibilidade)

As funcionalidades descritas nesta seção só estão disponíveis quando a opção Utilizar a nova arquitetura paraimplantação de aplicativos da página "Compatibilidade" das Propriedades do banco de dados estiver seleccionada:

Esta opção está selecionada de forma pré-determinada nos bancos de dados criados com 4D v15 R4 e posteriores: a"nova arquitetura" está ativada, sem precisar de nenhuma configuração adicional.Por razões de compatibilidade, esta opção está desativada de forma pré-determinada nos bancos de dadosconvertidos de versões anteriores: é necessário selecioná-la para se beneficiar das novas funcionalidades.

Novo cenário de conexão

Nos bancos de dados criados com 4D v15 R4, ou em bancos de dados convertidos quando a opção de compatibilidadeUtilizar a nova arquitetura para a implantação de aplicativos estiver selecionada (ver acima), o procedimento deconexão para os aplicativos cliente fusionados foi modificado para permitir uma maior flexibilidade nos casos em que oservidor dedicado não esteja disponível. O cenário de início para um aplicativo cliente 4D agora é o seguinte:

O aplicativo cliente tenta conectar-se ao servidor utilizando o serviço de descobrimento (baseado no nome do servidor,publicado na mesma subrede). OuSe a informação de conexão válida é armazenada no arquivo EnginedServer.4DLink dentro do aplicativo cliente, oaplicativo cliente tenta se conectar ao endereço do servidor especificado.Se isto falhar, o aplicativo cliente tenta se conectar ao servidor utilizando a informação armazenada na pasta depreferências de usuário do aplicativo (arquivo (lastServer.xml, ver último passo).Se isto falhar, o aplicativo cliente mostra uma caixa de diálogo de erro de conexão.

Se o usuário clicar no botão Selecionar... (quando estiver permitido pelo desenvolvedor 4D no momento dageração do aplicativo, ver mais adiante), é mostrado a caixa de diálogo padrão "Conexão ao servidor".Se o usuario clicar no botao Sair, o aplicativo cliente é fechado.

Se a conexão for exitosa, o aplicativo cliente salva esta informação de conexão na pasta de preferências de usuáriodo aplicativo para seu uso futuro.

Armazenar a rota do último servidor

Nos bancos de dados criados com 4D v15 R4, ou em bancos de dados convertidos, quando a opção de compatibilidadeUtilizar a nova arquitetura para a implantação de aplicativos estiver selecionada (ver acima), a rota do último servidorutilizado é salvada automaticamente em um arquivo chamado lastServer.xml na pasta de preferências usuário do aplicativocliente. Esta pasta é armazenada no seguinte local:

userPrefs:=Get 4D folder(Active 4D Folder)- 10 -

Page 11: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Este novo mecanismo aborda o caso no qual o servidor de destino primário esteja temporariamente indisponível por algummotivo (em manutenção, por exemplo). Quando se produz este caso pela primeira vez, a caixa de diálogo de seleção doservidor é mostrada (se estiver permitida, ver adiante) e o usuário pode selecionar manualmente um servidor alternativo,cuja rota é salvada, se a conexão for realizada corretamente. Qualquer falta de disponibilidade posterior seria manejada deforma automática através da última informação da rota lastServer.xml.Notas:

Quando os aplicativos cliente não puderem aproveitar de forma permanente do serviço de detecção, por exemplo,devido à configuração de rede, mesmo assim se recomenda que o desenvolvedor indique um nome de host nomomento da compilação usando a tecla IPAddress no arquivo BuildApp.xml. O novo mecanismo se ocupa apenasdos casos de não disponibilidade temporal.Pressionar a tecla Alt/Opción ao início do aplicativo cliente com o objetivo de mostrar a caixa de diálogo de seleçãodo servidor ainda pode ser usada em todos os casos.

Disponibilidade da caixa de diálogo de seleção em caso de erro

A partir de 4D v15 R4, é possível não mostrar, automaticamente, a caixa de diálogo padrão de seleção nos aplicativosclientes fusionados, quando o servidor não responder.Neste caso, a configuração depende da opção de compatibilidade Utilizar a nova arquitetura para as aplicaçõesimplementadas asim como também o valor da nova chave ServerSelectionAllowed XML (ver a seguinte seção) namáquina onde se gerou a aplicação. Há três possibilidades:

Visualização de uma mensagem de erro sem acesso possível a caixa de diálogo de seleção de servidorFuncionamento pré-determinado para os bancos de dados criados a partir de 4D v15 R4. A aplicação só pode sair.Este funcionamento se obtém com a seguinte configuração:

Opção Utilizar a nova arquitetura para as aplicações implementadas: selecionadaChave ServerSelectionAllowed XML: valor False ou chave omitida

Visualização de uma mensagem de erro com acesso possível à caixa de diálogo de seleção de servidorO usuário pode acessar a janela de seleção de servidor clicando no botão Selecionar .... Este funcionamento é obtidocom a seguinte configuração:

Opção Utilizar a nova arquitetura para as aplicações implementadas: selecionadaChave ServerSelectionAllowed XML: valor True

=>

Visualização direta da caixa de diálogo de seleção de servidorFuncionamento pré-determinado para os bancos de dados convertidos. Este é o funcionamentos nas versõesanteriores de 4D. É obtido com a seguinte configuração:

Opção Utilizar a nova arquitetura para as aplicações implementadas: desativadaChave ServerSelectionAllowed XML: ignorada

- 11 -

Page 12: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Nova chave XML: ServerSelectionAllowed Quando a opção de compatibilidade Utilizar a nova arquitetura para as aplicações implementadas for selecionada,pode configurar o aplicativo cliente fusionado utilizando a nova chave XML disponível "ServerSelectionAllowed" no geradorde aplicativos:Independentemente do estado da opção de compatibilidade, também é possível configurar o aplicativo cliente fusionadousando a nova chave XML "ServerSelectionAllowed" disponível na geração do aplicativo:

/Preferences4D/BuildApp/CS/ServerSelectionAllowed

Quando a chave for definida:

Se for definida como true, o aplicativo mostrará a caixa de dialogo de erro de conexão que oferece acesso a janelade seleção do servidor.Se for definida como false, o diálogo de erro não oferecerá a janela de seleção do servidor.

Lembrete: seja qual seja a configuração, ao pressionar a tecla Alt/Opção ao início do aplicativo com o objetivo de mostrara caixa de dialogo se seleção do servidor, ainda pode ser usado em todos os casos.

- 12 -

Page 13: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Novo objeto formulário 4D Write Pro em Biblioteca de Objetos

Em 4D v15 R4, a biblioteca de objetos pré configurados do editor de formulários inclui o novo objeto de formulário 4D WritePro. Para acessarr a bibliotecal de objetos, só tem que clicar no icone na barra de ferramentas do editor de

formulários:

O novo objeto de formulário 4D Write Pro se encontra no tema Áreas de entrada:

Ao soltar este objeto em um formulário ele é inserido automaticamente em uma área 4D Write Pro pre configuradaassociada a um subformulário Widget 4D Write Pro que contenha os painéis de controle para gerenciar o conteúdo da área:

No modo de usuário, como padrão este painel é mostrado com uma barra de ferramentas que contém 7 ícones:

- 13 -

Page 14: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Ao selecionar cada ícone na barra de ferramentas é mostrada um painel de controle diferente (detalhados abaixo):Estilo de fonte

Márgens e alinhamentos

Tabulações

Unidades e Tamanhos

Marcos

Fundo

Base e Informação

Além disso, há um botão Copiar/Colar (canto inferior esquerdo da maioria dos painéis) com um menu contextual

dinâmico que é adaptado ao conteúdo do painél. Por exemplo, no painel Estilo de fonte, depois de ter copiado umaseleção de texto com estilo, o menu inclui automaticamente um elemento "Colar estilo":

Estilo de Fonte

Este painel gerencia os estilos de fonte padrão e as propriedades de texto da área 4D Write Pro.Os elementos disponíveis no menu Estilo variam em função da fonte selecionada:

- 14 -

Page 15: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Nota: o tamanho de fonte está sempre em pontos, independentemente da unidade definida para o documento.O menu Alin. vert. permite mudar o texto a superíndice o subíndice e o menu Transformar permite escolher entre asdiferentes combinações de tipo de fonte:

O botão Copiar/Colar copia o estilo aplicado ao texto selecionado. O menu deste botão adiciona automaticamente um

elemento "Colar estilo" depois de ter copiado uma seleção de texto para que possa voltar a aplicar seu estilo em outraspartes. Preste atenção que este mecanismo só funciona quando se copia uma seleção de texto com um estilo homogêneo.

Margens e Alinhamento

Este painel administra as propriedades de alinhação padrão do texto e define as margens da área 4D Write Pro.Além disso os ajustes gerais que são aplicados a todo o documento, a alinhação do texto e as margens podem serajustadas de forma independente para cada parágrafo ou imagem no texto. Use os ícones na parte superior do painel paraconfigurar estes ajustes por separado para a área desejada ( para o documento, para um páragrafo individual e

para uma imagem localizada no texto).

O botão Copiar/Colar pode ser utilizado para copiar e colcar os ajustes de texto ou as margens do texto selecionado.

Tabulações

Este painel gerencia as tabulações dos parágrafos na área 4D Write Pro. Todo valor Indentação definido, seja através dodeslizados ou introduzindo um valor diretamente na área, é usado de forma pré-determinada como a distância dedeslocamento entre as abas posteriores adicionadas. Quando for escolhido um Tipo usando um dos botões, é aplicado

- 15 -

Page 16: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

este tipo a todas as atabulações existentes para o parágrafo.Pode mudar manualmente as tabulações individuais na lista mediante a introdução de um novo valor Posição diretamentena célula ou selecionando um novo Tipo no menu drop down:

Nota: a mudança de Indentação ou Tipo utilizando os controles na parte superior do painel anulará qualquer mudançamanual a tabulações individuais na lista de tabulações.Ao clicar no botão uma nova tabulação pré-determinada ao parágrafo. É possível eliminar uma tabulação selecionandona lista e clicando no botão .As tabulações são aplicadas ao parágrafo atual ou a uma seleção de parágrafos. Também pode ser usado o botãoCopiar/Colar para copiar e colar os parâmetros de tabulação

Unidades e Tamanhos

Este painel define as unidades padrão utilizadas para o documento 4D Write Pro e define o tamanho dos parágrafos e dasimagens que contém.As unidades são definidas para o documento inteiro. Nota: independentemente da unidade definida para o documento, otamanho de fonte (ver o painel Estilo de Fonte), assim como também a largura de linha e o raio das molduras (ver el panelMolduras) sempre são definidas em pontos.Os parágrafos podem ter uma largura fixa ou variável e as imagens podem ser definidas com um tamanho fixo ou umalargura/altura mínima. Quando o tamanho for definido como "Auto", ele se baseia no conteúdo do elemento.A área Texto alternativo permite especificar uma mensagem alternativa que aparecerá quando a imagem não puder servisualizada.

Molduras

- 16 -

Page 17: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Este painel gerencia as molduras e preenchimentos (margens inferiores) na área 4D Write Pro.As molduras podem ser definidas para a totalidade do documento ou para os parágrafos individuais, ou para as imagensque são encontradas no texto. Use os icones da parte superior do painel para configurar estes ajustes separadamente paraa área desejada: ou seja para o documento, para um parágrafo individual e para uma imagem no texto.

Nota: os estilos de moldura dupla, surcado, cume, bisel, relevo, não podem ser claramente visíveis na largura pré-determinada (1 pt).A opção Raio permite definir esquinas arredondadas as molduras. Nota: esta configuração não pode ser definida para osestilos de moldura surcado, cume e bisel O botão Copiar/Colar copia e cola a moldura, assim como também o preenchimento entre dois parágrafos (ou

imagens).

Fundo

Este painel gerencia as imagens de fundo para a área 4D write Pro. Pode arrastar e soltar imagens ou URLs diretamente naárea Imagem. Além disso, um clique direito na área Imagem mostra uma lista drop down onde vários padrões de fundoestão disponíveis como padrão. É possível ajustar a posição e o tamanho de cada imagem ou padrão usado e definir osajustes personalisados. Pode usar o ícone para eliminar uma imagem ou padrão existente.

As imagens de fundo podem ser definidas ao nível do documento ( ) ou dos parágrafos individuais ( ). Também pode

estabelecer uma imagem de fundo de uma imagem incluida no texto ( ).

O botão Copiar/Colar copia e cola a imagem de fundo, junto com sua configuração de um parágrafo (ou imagem) a

outro.

Banco de dados e informação

- 17 -

Page 18: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Este painel insere e administra as expressões 4D e as URLs na área 4D Write Pro e inclui uma área para a introdução deinformação útil sobre o documento.Os controles abaixo estão disponíveis:

Data: insere a data atual na localização atual.Expressão (botão): abre o Editor de fórmulas para que possa criar ou carregar uma expressão 4D existente que seráinserida na posição atual.Expressão (área): mostra a referência da expressão 4D selecionada.Mostrar valores/expressões: alterna entre a visualização de expressões 4D como referências ou seus valoresatuais.Calcular: atualiza os valores das expressões 4D no documento.Congelar: transforma expressões 4D atuais em texto plano (não pode ser desfeito).Seleção unicamente: selecione esta opção para limitar a ação dos botões Calcular e Congelar para o textoselecionado na área 4D Write Pro. Quando esta opção não estiver marcada, estas ações serão aplicadas nodocumento inteiro.Etiqueta/Link: mostra a direção de link e a etiqueta da URL selecionada.Aplicar: mostra uma caixa de diálogo para que possa introduzir ou modificar uma URL (direção e etiqueta).

Nota: a área 4D Write Pro deve ter o foco para as seções Expressão 4D e URL deste painel de controle para estar ativo.Documento A informação introduzida nesta seção é armazenada com o documento, mas não é mostrada em outras partes. De formapré-determinada, o "Titulo" é "4D Write Pro Novo Documento". As áreas "CRiação" e Modificação" na seção Documentonão podem ser modificadas.

Exibir widget de painel de controle separadamente

De forma pré-determinada, o subformulário Widget 4D Write Pro oferece um conjunto completo de painéis de controle. Opainel de controle pré-determinado é o formulário detalhado "WP_Palette". Entretanto, também pode usar estes painéis decontrole individualmente, selecionando o formulário detalhado correspondente na Lista de Propriedades do editor deformulários:

- 18 -

Page 19: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Por exemplo, se selecionar "WP_Palette_Fonts" como o formulário detalhado, obterá algo como isto em seu formulário:

Personalizar o widge de interface de painel de controle

A interface dos painéis de control pode ser modificada para usar skins e fontes diferentes. Apenas necessita modificar ométodo objeto da área 4D Write Pro associada.Tenha certeza que a variável objeto da área 4D Write Pro contenha os atributos abaixo obrigatórios (são incluídosautomaticamente no método de objeto pré-determinado):

selection: utilizado pelos comandos 4D Write Pro tais como WP GET ATTRIBUTES e WP SET ATTRIBUTESareaName: utilizado pelos comandos ST.

Além disso, um terceiro atributo opcional (chamado "skin") pode ser adicionado para personalisar a aparência do painel decontrole. O valor deste atributo opcional é um bojeto (chamado $ WP_skin no exemplo abaixo) que pode conter osseguintes atributos (opcionais):

skinName: os valores podem ser "black", "dark", "grey", "light", "white" ou "night"backgroundColor: por exemplo 0x00A0A0A0separatorColor: por exemplo 0x00D04060fontColor: por exemplo 0x002080C0separatorFontColor: por exemplo 0x00803000font: font family, por exemplo "Times"fontSize: por exemplo 12scrollbar*: True ou False*A barra de deslocamento só pode ser usada e ativada quando o objeto formulário 4D Write Pro puder serredimensionado verticalmente (Propiedad Dim vertical em Agrandar)

Para mais informação sobre 4D Write Pro, consulte Atributos 4D Write Pro.Exemplo de código para a personalização da interface dos painéis de controle do widget:

C_OBJECT($WP_skin) OB SET($WP_skin;"skinName";$skinName) // can be "black","dark", "grey", "light", "white","night". </p><p>OB SET($WP_skin;"backgroundColor";0x00A0A0A0) //define a cor de fundo dopainel de controle

- 19 -

Page 20: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

OB SET($WP_skin;"separatorColor";0x00D04060) //define a cor de fundo das áreas deseparação OB SET($WP_skin;"fontColor";0x002080C0) //define a cor de fonte do texto do painel decontrole OB SET($WP_skin;"separatorFontColor";0x00803000) //define a cor de fonte do texto dasáreas de separação OB SET($WP_skin;"font";"Times") // define a fonte utilizada OB SET($WP_skin;"fontSize";13) // define o tamanho da fonte utilizada OB SET($WP_skin;"scrollbar";True) // A continuação, só tem que assignar esta skin personalizada ao objeto 4D Write Pro OB SET($WP_object;"skin";$WP_skin)

- 20 -

Page 21: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Linguagem

Active transaction DISTINCT VALUES FONT LIST FONT STYLE LIST Get database parameter e SET DATABASE PARAMETER GRAPH INTEGRATE MIRROR LOG FILE Lançar processo externo LISTBOX Get array, LISTBOX SET ARRAY, LISTBOX GET ARRAYS LOG FILE TO JSON METHOD GET CODE OB Get e OB SET OBJECT Get horizontal alignment e OBJECT SET HORIZONTAL ALIGNMENT Opção eliminada: Usar comentários 4DVAR ao invés de colchetes RESUME TRANSACTION SUSPEND TRANSACTION Suspender e reativar as transações Tags de transformação 4D Variável de sistema Error Formula WEB Get session process count

- 21 -

Page 22: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Active transaction

Active transaction -> Resultado Parâmetro Tipo DescriçãoResultado Booleano Retorna False se a transação atual estiver suspensa

Descrição

Tema: TransaçõesO comando Active transaction devolve True se o processo atual estiver em transação e se esta transação não forsuspensa. Devolve False se não houver uma transação em curso, ou se for suspensa a transação atual. Uma transaçãopode ser suspensa utilizando o comando SUSPEND TRANSACTION.Dado que o comando também devolverá False se o processo atual não estiver em transação, pode ser que necessiteutilizar o comando In transaction para saber se o processo está em transação.Para saber mais, consulte o parágrafo Transações suspensas e estatus de processo.

Exemplo

Se quiser conhecer o estado da transação atual:

If(In transaction) If(Not(Transaction active)) ALERT("A transação atual está suspensa") Else ALERT("A transação atual está ativa") End if Else ALERT("Não estamos em transação") End if

- 22 -

Page 23: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

DISTINCT VALUES

DISTINCT VALUES ( campo ; array{; contArray} )

Parâmetro Tipo Descriçãocampo Campo -> Campo indexável a utilizar para os dadosarray Array <- Array para receber os dados do campo indexávelcontArray Array inteiro longo ou Array Real <- Array a receber o número de ocorrências de cada valor

Descrição

O comando DISTINCT VALUES agora aceita um novo parametro opcional: contArray.Quando for passada, contArray, devolve, para cada valor não repetido em campo, o número de ocorrências detectadas naseleção atual. Se dimensionar automaticamente com o mesmo número de elementos em array. Por exemplo, para umaseleção que contenha três registros com valores de campos "A", "B" e "A", array conterá {A;B} e contArray conterá {2;1}.Em contArray, pode passar seja um array inteiro longo ou um array Real.Nota: o parâmetro contArray não é respaldado para os campos texto ou imagem associados aos índices de palavraschaves (neste contexto, se devolve vazio).

Exemplo

Para calcular as estatísticas, se desejar ordenar o número de valores distintos em um campo em ordem descendente:

ARRAY TEXT($_issue_type;0) ARRAY LONGINT($_issue_type_instance;0) DISTINCT VALUES([Issue]iType;$_issue_type;$_issue_type_instances) SORT ARRAY($_issue_type_instances;$_issue_type;<)

- 23 -

Page 24: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

FONT LIST

FONT LIST ( fontes {; tipoLista | *} )

Parâmetro Tipo Descriçãofontes Array texto <- Array de nomes de fontes (fontes vetoriais só em Windows) tipoLista | * inteiro longo, Operador -> Lista de tipos de fonte a devolver ou * para devolver nomes de fontes em OS X

Descrição

O comando FONT LIST foi atualizado em Windows para devolver só as fontes vetoriais no parâmetro fonte.Em Windows, não se recomenda o uso de fontes não vetoriais (ou seja, as fontes de mapa de bits) para a criação deinterfaces, que se baseiam em uma tecnologia obsoleta e sofrem de limitações em relação as variações de tamanho. Nãosão compatíveis com as funcionalidades de vanguarda de 4D como áreas 4D Write Pro. Para ajudar aos desenvolvedores aselecionar só fontes modernas para suas interfaces, as fontes não vetoriais já não são devolvidas pelo comando FONTLIST. Só se devolvem as fontes vetoriais "trueType" ou "openType". Por exemplo, as fontes: "ASI_Mono", "MS Sans Serif" e"System" agora se ignoram.Além disso, os nomes GDI se eliminam também; só os nomes da família de fontes DirectWrite estarão disponíveis. Porexemplo, as familias de fontes "Arial Negro" ou "Segoe UI Negro" se ignoram; Só "Arial" e "Segoe" se devolvem agora.Lembre que atualmente as fontes de mapa de bits se podem seguir utilizando em seus formulários 4D (exceto nas áreas 4DWrite Pro). Simplesmente se eliminam da lista devolvida por este comando. Entretanto, para ter certeza a compatibilidadecom futuras versões de 4D e Windows, se recomenda utilizar só as familias de fontes DirectWrite.Nota de compatibilidade: dado que as fontes de mapa de bits agora são filtradas desde o parâmetro fontes em Windows,a lista resultante será diferente em aplicativos 4D v15 R4 e superiores, em comparação com versões anteriores. Por favortenha certeza de adaptar seu código se estiver usando este comando para selecionar fontes não vetoriais.Esta atualização não afeta o comando em OS X, onde estão em desuso as fontes de mapa de bits (QuickDraw) desde OSX 10.4.

- 24 -

Page 25: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

FONT STYLE LIST

FONT STYLE LIST ( familiaFonte ; listaEstilosFonte ; listaNomesFonte ) Parâmetro Tipo DescriçãofamiliaFonte String Nome da família da fontelistaEstilosFonte Array texto Lista dos estilos da fonte respaldados pela familiaFontelistaNomesFonte Array texto Lista dos nomes completos das fontes respaldadas por familiaFonte

Descrição

O novo comando FONT STYLE LIST devolve a lista dos estilos e a lista de nomes completos de nomes de fontessuportados pela familia de fontes definida no parâmetro familiaFonte. Este comando lhe permite desenhar interfaces demanejo de fontes e estilos, em particular no contexto das áreas 4D Write Pro.Em familiaFonte, passe o nome da familia de fonte para a qual deseja conhecer os estilos e nomes de fontes suportados.Em listaEstilosFonte, passe um array texto que será preenchido com a lista de estilos de fonte suportados pelafamiliaFonte. Os estilos são devolvidos utilizando seus nomes localizados (ou seja, um elemento "itálico" será devolvidocomo "Itálico" em um sistema espanhol), pelo que se pode construir dinâmicamente um pop-up menu "Estilos" localizado,por exemplo.Em listaNomsFonte, passe um array texto que será preenchido com a lista completa de nomes de fontes suportados pelafamiliaFonte. Diferente do array listaEstilosFonte, o array listaNomsFonte devolve os valores não localizados, ou seja, osnomes de fontes baseados na identificação do sistema. Portanto, os nomes de fontes serão independentes da linguagemdo sistema. Os elementos deste array são strings destinadas a ser utilizadas com o atributo wk font do comando 4D WritePro WP SET ATTRIBUTES. Ao utilizar esta funcionalidade, os documentos 4D Write Pro podem armazenar nomes defontes e depois serão abertos em máquinas utilizando qualquer linguagem de sistema sem problemas de fontes.Se a familiaFonte não for encontrada na máquina, os array são devolvidos vazios. Para obter a lista de familias de fontesdisponíveis na máquina, utilize o comando FONT LIST (Nota: FONT LIST foi atualizado em Windows em 4D v15 R4).

Exemplo

Se quiser selecionar estilos da familia de fontes "Verdana" (se estiver disponível):

ARRAY TEXT($aTfonts;0) ARRAY TEXT($aTStyles;0) ARRAY TEXT($aTnames;0) C_LONGINT($numStyle) FONT LIST($aTfonts) $numStyle:=Find in array($aTfonts;"Verdana") If($numStyle#0) FONT STYLE LIST($aTfont{$numStyle};$aTStyles;$aTnames) End if //Por exemplo, os arrays resultantes são: //$aTStyles{1}="Normal" //$aTStyles{1}="Italic" //$aTStyles{1}="Bold" //$aTStyles{1}="Bold Italic" // $aTnames{1}="Verdana" // $aTnames{1}="Verdana Italic" // $aTnames{1}="Verdana Bold" // $aTnames{1}="Verdana Bold Italic"

- 25 -

Page 26: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Get database parameter e SET DATABASE PARAMETER

Get database parameter ( {tabela ;} selector {; valorAlfa} ) -> Resultado

SET DATABASE PARAMETER ( {taebla ;} selector ; valor )

Descrição

Um novo parâmetro seletor se encontra disponível para os comandos Get database parameter e SET DATABASEPARAMETER:

Constante Tipo ValorNúmero de fórmulas na memória cache Inteiro longo 92

Escopo: aplicativo 4D.Se conserva entre duas sessões: NâoDescrição: define ou obtem o máximo número de fórmulas a conservar na memória cache das fórmulas, que éutilizado pelo comando EXECUTE FORMULA. Este límite se aplica a todos os processos, mas cada processo temsua propria cache de fórmulas. Colocar as fórmulas na cache acelera a execução do comando EXECUTE FORMULAem modo compilado, já que cada fórmula em cache se tokeniza só uma vez (para mais informação, ver Cache paraEXECUTE FORMULA em modo compilado). Quando se muda o valor da memória cache, o conteúdo existente sereinicializa mesmo se o novo tamanho for maior que o anterior. Quando alcançar o número de fórmulas na memóriacache, uma nova fórmula executada apagará a mais antiga da memória cache (modo FIFO).Valores possíveis: inteiro longo positivoValor predeterminado: 0 (sem caché)

- 26 -

Page 27: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

GRAPH

GRAPH ( graphImagen ; graphNum | graphParams ; xEtiquetas {; yElementos} {; yElementos2 ; ... ; yElementosN} )

Parâmetro Tipo Descrição

graphImagen Variávelimagem

-> Variável imagem

graphNum |graphParams

Inteiro longo |Objeto

->

Inteiro longo: Número de tipo de gráfico, Objeto: parâmetros do gráfico comovalores de propriedade

xEtiquetas Array -> Etiquetas do eixo x

yElementos Array -> Data a graficar (até oito permitido)

Descrição

Nota: esta nova funcionalidade está disponivel unicamente nas versões 64 bits de 4D (exceto 4D Server Windows 64bits). Ver também 4D Developer Edition versão 64 bits (preview) .O comando GRAPH agora aceita um valor de tipo Objeto como segundo parâmetro (graphParams).Esta nova sintaxe permite definir o tipo de gráfico junto com seus parâmetros específicos (legenda, xmin, etc.) em uma sóchamada, com a sintaxe anterior (graphNum como segundo parâmetro), era necessário utilizar uma chamada adicional aocomando(*) GRAPH SETTINGS(*) para definir estes parâmetros. Isto permite aos usuários salvar os gráficos geradoscomo imagens SVG regulares e faz com que seja possível visualizá-los utilizando um navegador padrão como Firefox,Chrome, IE ou Safari (os gráficos gerados têm uma melhor conformidade da norma SVG implementada nos navegadores). Por outra parte, a nova sintaxe lhe permite acessar a vários parâmetros adicionais, o que lhe permite personalizar, porexemplo, o espaçamento entre as barras, as márgens, as cores de barras, etc.(*) Se for utilizada a sintaxe com o objeto graphParams, o comando GRAPH SETTINGS NÃO deve ser chamado.No parâmetro graphParams, passe um objeto que contenha as diferentes propriedades do gráfico a definir. Pode utilizar asseguintes constantes, que são encontradas no novo tema "Parâmetros de Gráficos":

Constante Tipo Valor ComentárioGraphbackgroundcolor

Cadeia graphBackgroundColor Valores possíveis: expressão de cor compatível comn SVG(texto), por exemplo "#7F8E00", "Pink", ou "#0a1414"

Graphbackgroundopacity

Cadeia graphBackgroundOpacityValores possíveis:inteiros, faixa de 0-100Valor normal: 100

Graphbackgroundshadowcolor

Cadeia graphBackgroundShadowColor Valores possiveis: expressão de cor compatível com SVG(texto), por exemplo "#7F8E00", "Pink", ou "#0a1414"

Graphbottommargin

Cadeia bottomMarginValores possíveis: números reaisValor pré-determinado: 12

Graphcolors Cadeia colors

Valores possíveis: array texto. As cores para cada série degráfico.Valores pré-determinados: Blue-green (#19BAC9), Yellow(#FFC338), Purple (#573E82), Green (#4FA839), Orange(#D95700), Blue (#1D9DF2), Yellow-green (#B5CF32), Red(#D43A26)

Graphcolumn gap Cadeia columnGap

Valores possíveis:inteiros longosValor normal: 12Define o espaço entre as barras

Graphcolumnwidth max

Cadeia columnWidthMaxValores possíveis: números reaisValor pré-determinado: 200

- 27 -

Page 28: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Graphcolumnwidth min

Cadeia columnWidthMinValores possíveis: números reaisValor pré-determinado: 10

Graphdefaultheight

Cadeia defaultHeightValores possíveis: números reaisValor possíveis: 400. Se graphType=7 (Torta), depois valornormal = 600

Graphdefaultwidth

Cadeia defaultWidthValores possíveis: números reaisValor possíveis: 600. Se graphType=7 (Torta), depois valornormal = 800

Graphdisplaylegend

Cadeia displayLegendValores possíveis: BooleanoValor normal: True

Graphdocumentbackgroundcolor

Cadeia documentBackgroundColor

Valores posíveis: expressão cor SVG (texto), por exemplo"#7F8E00", "Pink", ou "#0a1414". Quando um gráfico salvocomo imagem SVG se abre em outro lugar, a cor de fundo dodocumento só é mostrada se o motor de renderizado suportaa norma SVG Tiny 1.2 (suportado por IE, Firefox, mas não emChrome).

Graphdocumentbackgroundopacity

Cadeia documentBackgroundOpacity

Valores possíveis: inteiro, faixa 0-100 (valor normal: 100).Quando um gráfico salvo como imagem SVG é aberto emoutro lugar, a cor de fundo do documento só é mostrada se omotor de renderizado suportar a norma SVG Tiny 1.2(suportado por IE, Firefox, mas não em Chrome).

Graph fontcolor Cadeia fontColor Valores possíveis: expressão cor SVG (texto), por exemplo

"#7F8E00", "Pink", ou "#0a1414"Graph fontsize Cadeia fontSize

Graph leftmargin Cadeia leftMargin Valores possíveis: números reais

Valor pré-determinado: 12Graphlegend fontcolor

Cadeia legendFontColor

Graphlegend icongap

Cadeia legendIconGap

Graphlegend iconheight

Cadeia legendIconHeightValores possíveis: números reaisValor pré-determinado: 20

Graphlegend iconwidth

Cadeia legendIconWidthValores possíveis: números reaisValor pré-determinado: 20

Graphlegendlabels

Cadeia legendLabels Valores possíveis: array texto. Se faltar, 4D mostra íconessem texto.

Graph linewidth Cadeia lineWidth Valores possíveis: números reais

Valor pré-determinado: 2Graph piefont size Cadeia pieFontSize Valores possíveis: números reais

Valor pré-determinado: 16Graph pieshift Cadeia pieShift Valores possíveis: números reais

Valor pré-determinado: 8Graph plotheight Cadeia plotHeight Valores possíveis: números reais

Valor pré-determinado: 12Graph plotradius Cadeia plotRadius Valores possíveis: números reais

Valor pré-determinado: 12Graph plotwidth Cadeia plotWidth Valores possíveis: números reais

Valor pré-determinado: 12Graph rightmargin Cadeia rightMargin Valores possíveis: números reais

Valor pré-determinado: 2Graph topmargin Cadeia topMargin Valores possíveis: números reais

Valor pré-determinado: 2

Constante Tipo Valor Comentário

- 28 -

Page 29: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Graph type Cadeia graphType

Valores possíveis: inteiros longos [1 a 8], onde 1 = barras, 2= proporcional, 3 = empilhados, 4 = linhas, 5 = superfícies, 6 =pontos, 7 = torta, 8 = imagens.Valor normal: 1

Se for nulo, o gráfico não é desenhado e não se mostranenhuma mensagem de erro. Se estiver fora da faixa, ográfico não é desenhado e se mostra uma mensagem de erro.

Para os gráficos tipo de imagem (valor = 8), as imagensutilizadas devem ser armazenadas na seguinte pasta:4D/Resources/GraphTemplates/Graph_8_Pictures/. Não há um padrão de nomes de imagens; 4D ordena osarquivos contidos na pasta e lhe atribui o primeiro arquivo aoprimeiro gráfico. Estes arquivos podem ser do tipo SVG ouimagem.

GraphxGrid Cadeia xGrid

Valores possíveis: BooleanoValor normal: True. Só se utiliza com os tipos proporcionais 4 e 6.

GraphxMax Cadeia xMax

Valores possíveis: número, data, hora (mesmo tipo que oparâmetro xLabels). Só os valores mais altos que xMax se mostram no gráfico.xMax se utiliza somente para os tipos de gráficos 4, 5 ou 6 sexProp = true e se o tipo xLabels for um número, data ou hora.Se faltar ou se xMin>xMax, 4D calcula automaticamente ovalor xMax.

Graph xMin Cadeia xMin

Valores possíveis: número, data, hora (mesmo tipo que oparâmetro xLabels). Só os valores mais altos que xMin se mostram no gráfico.xMin se utiliza somente para os tipos de gráficos 4, 5 ou 6 sexProp = true e se o tipo xLabels for um número, data ou hora.Se faltar ou se xMin>xMax, 4D calcula automaticamente ovalor xMin.

GraphxProp Cadeia xProp

Valores possíveis: BooleanoValor normal:TrueTrue para eixoe x proporcional; False para eixo x normal.xProp se utiliza unicamente para os tipos de gráficos 4, 5 ou 6

GraphyGrid Cadeia yGrid Valores possíveis: Booleano

Valor normal: TrueGraphyMax Cadeia yMax Valores possíveis: números

Se faltar, 4D calcula automaticamente o valor yMax.

Graph yMin Cadeia yMin Valores possíveis: númerosSe faltar, 4D calcula automaticamente o valor yMin.

Constante Tipo Valor Comentário

Exemplo 1

Sintaxe utilizando grafParams: no seguinte exemplo, um gráfico de linha simples é desenhado baseado nos valores detempos:

C_PICTURE(vGraph) //Variável gráfico ARRAY TIME(X;3) //Criar array para os eixos x X{1}:=?05:15:10? //Etiqueta X #1 X{2}:=?07:15:10? //Etiqueta X #2 X{3}:=?12:15:55? //Etiqueta X #3 ARRAY REAL(A;3) //Criar array para eixo y A{1}:=30 //Inserir alguns dados A{2}:=22 A{3}:=50 ARRAY REAL(B;3) //Criar outro array para eixo y B{1}:=50 //Inserir alguns dados

- 29 -

Page 30: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

B{2}:=80 B{3}:=10 C_OBJECT(vSettings) //Inicializar parâmetros de gráficos OB SET(vSettings;Graph type;4) //Tipo de linha ARRAY TEXT(aLabels;2) //Definir legendas para o gráfico aLabels{1}:="Mary" aLabels{2}:="John" OB SET ARRAY(vSettings;Graph legend labels;aLabels) GRAPH(vGraph;vSettings;X;A;B) //Draw graph

Exemplo 2

Com os mesmos valores, pode agregar uma configuração personalizada para obter uma vista diferente:

C_PICTURE(vGraph) //Variável gráfico ARRAY TIME(X;3) //Criar um array para o eixo x X{1}:=?05:15:10? //Etiqueta X #1 X{2}:=?07:15:10? //Etiqueta X #2 X{3}:=?12:15:55? //Etiqueta X #3 ARRAY REAL(A;3) //Cria um array para o eixo y A{1}:=30 //Insere alguns dados A{2}:=22 A{3}:=50 ARRAY REAL(B;3) //Cria outro array para o eixo y B{1}:=50 //Insere alguns dados B{2}:=80 B{3}:=10 C_OBJECT(vSettings) //inicialização dos parâmetros do gráfico OB SET(vSettings;Graph type;4)/Tipo de linhas ARRAY TEXT(aLabels;2) //definir as legendas do gráfico aLabels{1}:="Mary" aLabels{2}:="John" OB SET ARRAY(vSettings;Graph legend labels;aLabels) //opções OB SET(vSettings;Graph xProp;True) //definir proporcional OB SET(vSettings;Graph xGrid;False) //eliminar a grade vertical

- 30 -

Page 31: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

OB SET(vSettings;Graph xMin;?03:00:00?) //definir límites OB SET(vSettings;Graph xMax;?20:00:00?) GRAPH(vGraph;vSettings;X;A;B) //Desenha o gráfico

Exemplo 3

Neste exemplo, personalizamos alguns parâmetros:

C_PICTURE(vGraph) //Variavel do gráfico ARRAY TEXT(X;5) //Criação de um array para o eixo x X{1}:="Monday" //#1 Etiqueta X X{2}:="Tuesday" //#2 Etiqueta X X{3}:="Wednesday" //#3 Etiqueta X X{4}:="Thursday" //#4 Etiqueta X X{5}:="Friday" //#5 Etiqueta X ARRAY LONGINT(A;5) //Criar um array para o eixo y A{1}:=30 //Inserir alguns dados A{2}:=22 A{3}:=50 A{4}:=45 A{5}:=55 ARRAY LONGINT(B;5) //Criar outro array para o eixo y B{1}:=50 //Inserir alguns dados B{2}:=80 B{3}:=10 B{4}:=5 B{5}:=72 C_OBJECT(vSettings) //inicialização de parâmetros do gráfico OB SET(vSettings;Graph type;1) //tipo Barras ARRAY TEXT(aLabels;2) //Definir as legendas para o gráfico aLabels{1}:="Mary" aLabels{2}:="John" OB SET ARRAY(vSettings;Graph legend labels;aLabels) //opções OB SET(vSettings;Graph yGrid;False) //eliminar a grade vertical OB SET(vSettings;Graph background color;"#573E82") //definir uma cor de fundo OB SET(vSettings;Graph background opacity;40) ARRAY TEXT($aTcols;2) //definir as cores para o gráfico $aTcols{1}:="#B5CF32"

- 31 -

Page 32: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

$aTcols{2}:="#D43A26" OB SET ARRAY(vSettings;Graph colors;$aTcols) GRAPH(vGraph;vSettings;X;A;B) //Desenhar o gráfico

- 32 -

Page 33: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

INTEGRATE MIRROR LOG FILE

INTEGRATE MIRROR LOG FILE ( pathName {; operationNum {; mode {; errObject}}} )

Parâmetro Tipo DescriçãopathName Texto -> Nome ou caminho do arquivo de log a ser integradooperationNum variável Real -> Número da operação onde a integração começa

<- Número da última operação integradamode Longint -> 0=standard mode (padrão), 1=auto-repair modeerrObject Object variable <- Operação faltante

Descrição

Nota preliminar: Este comando apenas funciona com 4D Server e pode apenas ser executado via o comando Execute onserver , ou em um procedimento armazenado.O comando INTEGRATE MIRROR LOG FILE oferece um novo, flexível, modo integrado de "auto-reparo", onde erros nãocríticos não impedem a operação de integração. Pode usar o novo parâmetro mode para especificar o modo deintegração, e o novo parâmetro errObject para fazer um log das propriedades do erro. Os dois parâmetros são opcionais. Em mode, pode passar o modo de integração que quiser ativar. Pode usar uma das novas constantes abaixo encontradasno tema "Backup and Restore":

Constante Tipo Valor Descriçãomodo Standard Longint 0 Usa modo de integração estrito (padrão)modo Autorepair Longint 1 Usa modo flexível com ações de auto-reparo e preenche o parâmetro errObject (se

existir)

modo padrão: Como em lançamentos anteriores 4D, quando um erro ocorrer durante integração, o programa para eterá que usar o MSC para rastrear o erro. O modo é usado por padrão se omitir o parâmetro modo.

modo Auto repair: Nesse modo, quando um erro não crítico, ele é contornado e a integração continua. Se passar oparâmetro errObjet, o erro é salvado no log e pode ser analisado depois.Casos de erros não críticos são:

O journal exige que se adicione um registro, mas o registro já existe nos dados. Ação de reparo: 4D atualiza o registro.O journal exige que atualize o registro, mas o registro não existe ainda.Ação de reparo: 4D adiciona o registro.O journal exige que se apague o registro, mas o registro não existe.Ação de reparo: 4D não faz nada.

Quando uma dessas anomalias acontecerem no modo autoreparo, o registro é automaticamente "reparado" e a operaçãorelacionada é salva no log no parâmetro errObject. Depois que a execução estiver completa, o parâmetro errObject listatodos os registros reparados. Contém um único array de objeto chamado "operations" construido da seguinte maneira:

{"operations": [ { "operationType":24, "operationName":"Create record", "operationNumber":2, "contextID":48, "timeStamp":"2015-07-10T07:53:02.413Z", "dataLen":24, "recordNumber":0, "tableID":"F4CXXXXX", "tableName":"Customers", "fields": [

- 33 -

Page 34: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

12, "Smith", "Paris" ] }, {...} ]

New syntax (second parameter mandatory) Starting with 4D v15 R4, the operationNum parameter is mandatory. If omitted, an error will now be generated. Pass -2 in thevariable to integrate all the operations in the log file, whatever the last integrated operation number.Compatibility Warning: This new mandatory syntax will break compatibility with your existing code if the operationNumparameter was not used (an error will be reported). In this case, pass -2 in the operationNum parameter variable in order torestore the previous state.

New auto-repair mode You can use the new mode parameter to specify the integration mode and the new errObject parameter to log the errorproperties. Both of these parameters are optional. In mode, you pass the integration mode you want to activate. You can use one of the following new constants found in the"Backup and Restore" theme:

Constant Type Value DescriptionStrict mode Longint 0 Use strict integration mode (default). This mode is recommended in most cases.Auto repair mode Longint 1 Use flexible mode with auto-repair actions and fill the errObject parameter (if any)

Strict mode: In this mode, as in previous 4D releases, when an error occurs during integration, it stops and you have touse the MSC in order to trace the error. This mode is used by default and is recommended in most cases.

Auto repair mode: In this mode, when a non-critical error occurs, it is bypassed and integration continues. If you passedthe errObject parameter, the error is logged and can be analyzed afterwards.Cases of non-critical errors are:

The log requests to add a record, but this record already exists in the data. Repair action: 4D updates the record.The log requests to update a record, but this record does not yet exist.Repair action: 4D adds the record.The log requests to delete a record, but this record does not exist.Repair action: 4D does nothing.

When one of these anomalies occurs in auto-repair mode, the record concerned is automatically "repaired" and the relatedoperation is logged in the errObject parameter. After execution is completed, the errObject parameter lists all the repairedrecords. It contains a single object array named "operations" built as follows:

{"operations": [ { "operationType":24, "operationName":"Create record", "operationNumber":2, "contextID":48, "timeStamp":"2015-07-10T07:53:02.413Z", "dataLen":24, "recordNumber":0, "tableID":"F4CXXXXX", "tableName":"Customers", "fields": { "1": 9, "2": "test value", "3": "2003-03-03T00:00:00.000Z", "4": "BlobPath: Table 1/Field4/Data_9ACB28F1A2744FDFA5822B22F18B2E12.png", "8": "BlobID: 2" } }, {...} ]

- 34 -

Page 35: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Warning: The auto-repair mode must be used in specific cases since it bypasses 4D's internal data integrity checkingfeatures. It can be used, for example, when an intermediary log file has been lost or corrupted and you want to recover asmany operations as possible. In any case, you need to pay particular attention to data integrity when using this mode.

A lista atual de propriedades disponíveis depende do tipo de operação (por exemplo: criar registros, apagar registros,modificar registros, etc.). Aqui estão algumas das propriedades principais:

operationType: código interno para a operaçãooperationName: tipo da operação, por exemplo "criar registro", "modificar registro"operationNumber: número interno da operação no arquivo de logcontextID: ID do contexto da execuçãotimeStamp: timestamp da operação no arquivo de logdataLen: tamanhos dos dadosrecordNumber: número interno do registrotableID: ID interna da tabelatableName: nome da tabelafields: array dos valores camposequenceNumber: número de sequência.

Exemplo

Para integrar um arquivo mirror de log no servidor em modo autoreparo:

//para ser executado no servidor C_OBJECT($err) C_LONGINT($num) //0 por padrão INTEGRATE MIRROR LOG FILE("c:\\mirror\\logNew.journal";$num;Auto repair mode;$err)

- 35 -

Page 36: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Lançar processo externo

LAUNCH EXTERNAL PROCESS ( fileName {; inputStream {; outputStream {; errorStream}}} {; pid})

Parametro Tipo DescriçãofileName String -> Caminho do arquivo e argumentos do arquivo a lançar inputStream String, BLOB -> stream de Input (stdin) outputStream String, BLOB <- Stream de Output (stdout) errorStream String, BLOB <- Stream de Erro (stderr)pid Longint <- Identificador Único do processo externo

Descrição

A partir de 4D v15 R3, o comando Lançar processo externo pode retornar o identificador único do processo OS-level(PID) para o processo criado. Com esta informação, é mais fácil interagir com os processos externos criadosposteriormente, por exemplo, para parar o processo.O PID pode ser retornado em um novo parâmetro opcional, pid, do tipo longint. Quando passado, este parâmetro retorna aID do nível de sistema para o processo criado para lançar o comando, independente do estatus da opção _4D_OPTION_BLOCKING_EXTERNAL_PROCESS.Se o processo de lançamento falhar, o parâmetro pid não é retornado.

Exemplo

Os exemplos abaixos chamam a lista de processo em Windows:

C_LONGINT($pid) C_TEXT($stdin;$stdout;$stderr) LAUNCH EXTERNAL PROCESS("tasklist";$pid) //pega apenas o PID LAUNCH EXTERNAL PROCESS("tasklist";$stdin;$stdout;$stderr;$pid) //pega toda a informação

- 36 -

Page 37: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

LISTBOX Get array, LISTBOX SET ARRAY, LISTBOX GET ARRAYS

LISTBOX Get array ({* ;} object ; arrType ) -> Function result LISTBOX SET ARRAY ( {* ;} object ; arrType ; arrPtr )

LISTBOX GET ARRAYS ( {* ;} object ; arrColNames ; arrHeaderNames ; arrColVars ; arrHeaderVars ; arrColsVisible ;arrStyles {; arrFooterNames ; arrFooterVars} )

Descrição

Estes comandos respaldam o novo "array de controle linhas" que podem ser associados com os list boxes de tipo array apartir de 4D v15 R4. Este array controla até três propriedades de linhas (visibilidade, estado ativado/desativado e seleção).São descritos na seção Listbox: linhas desativadas e não selecionáveis.

Os dois comandos LISTBOX Get array e LISTBOX SET ARRAY aceitam uma nova constante no parâmetrotipoArray, o que lhe permite obter ou definir o array:

Constante Tipo ValorListbox control array Inteiro longo 3

O comando GET LISTBOX ARRAYS aporta o array através do parâmetro arrEstilos (array de ponteiros). O quartoelemento aponta já seja ao "array de estado oculto" do list box (array booleano, a igual que nas versões anteriores de4D), ou ao novo "array de controle de linhas" (array inteiro longo).

- 37 -

Page 38: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

METHOD GET CODE

METHOD GET CODE ( ruta; codigo {;opcion} {; *} )

Parâmetro Tipo Descrição

rota Texto,Array texto -> Texto ou array texto que contém uma ou mais rotas de métodos

código Texto,Array texto <- Código dos métodos designados

opção Inteirolongo -> 0 ou se omitir = exportação simples (sem tokens), 1 = exportação com tokens

* Operador -> Se for passado = o comando se aplica ao banco local quando for executado desde umcomponente (parâmetro ignorado fora deste contexto)

Descrição

Tema: Acesso objetos desenhoO comando METHOD GET CODE foi modificado em 4D v15 R4:

O código dos métodos agora se devolve como texto indentado,Agora aceita um novo parâmetro opcional para ativar a manipulação dos tokens.

Texto indentado O texto do código devolvido pelo comando está agora indentado com os caracteres de tabulação em função das estruturasde programação, da mesma forma que no editor de métodos. Esta funcionalidade melhora a legibilidade do código.Novo parâmetro"opção"O novo paràmetro opção lhe permite selecionar o modo de exportação do código com respeito aos elementos tokenizadosda linguagem dos métodos:

Se passar 0 ou omite o parâmetro opção, o código do método se exporta sem tokens, ou seja exatamente como semostra no editor de métodos.Se passar 1 ou a constante Code with tokens, o código do método se exporta com tokens, ou seja, os elementostokenizados são seguidos por sua referència interna no conteúdo do código exportado. Por exemplo, a expressão"String(a)" se exporta "String:C10(a)", onde "C10" é a referência interna do comando String.

Os elementos tokenizados da linguagem incluem:

os comandos e constantes 4D,os nombres de tabelas e de campos,os comandos dos plug-ins 4D.

Para mais informação sobre a sintaxe tokens 4D, por favor consulte a seção Usar tokens em fórmulas.O código exportado com seus tokens é independente de toda mudança de nome posterior dos elementos de linguagem.Graças aos tokens, o código em forma de texto sempre será interpretado corretamente por 4D, por exemplo utilizando ocomando METHOD SET CODE ou copiar/colar.

Exemplo

Este exemplo ilustra o efeito do novo parâmetro opção.

Se desejar exportar o seguinte método "simple init":

Case of <p>:(Form event=On Load) ALL RECORDS([Customer]) End case

- 38 -

Page 39: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Se for executado o código abaixo:

C_TEXT($code) C_TEXT($contents) $code:=METHOD Get path(Path project method;"simple_init") METHOD GET CODE($code;$contents;0) //sin tokens TEXT TO DOCUMENT("simple_init.txt";$contents)

O documento resultante conterá (note a indentação):

//%attributes = {"lang":"en"} comentário adicionado e reservado por 4D.Case of : (Form event=On Load) ALL RECORDS([Customer])End case

Se for executado o código abaixo:

C_TEXT($code) C_TEXT($contents) $code:=METHOD Get path(Path project method;"simple_init") METHOD GET CODE($code;$contents;Code with tokens) //use tokens TEXT TO DOCUMENT("simple_init.txt";$contents)

O documento resultante conterá:

//%attributes = {"lang":"en"} comentário aninhado e reservado por 4D.Case of : (Form event:C388=On Load:K2:1) ALL RECORDS:C47([Customer:1])End case

- 39 -

Page 40: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

OB Get e OB SET

OB Get ( objRange | wpDoc ; attribute {; type} ) -> Function result OB SET ( objRange | wpDoc ; attribute ; value {; attribute2 ; value2 ; ... ; attributeN ; valueN} )

Descrição

Ambos os comandos suportam definições de atributos nos objetos 4D Write Pro, da mesma forma que os comandos WPGET ATTRIBUTES e WP SET ATTRIBUTES. Há, entretanto, uma limitação: com estes comandos, não é possível manejar diretamente uma variável ou um campo imagemcomo valor de atributo.

Exemplo

Em um método formulário, pode escrever:

If(Form event=On Validate) OB SET([MyDocuments]My4DWP;"myatt_Last edition by";Current user) OB SET([MyDocuments]My4DWP;"myatt_Category";"Memo") End if

Também pode ler os atributos personalizados dos documentos:

vAttrib:=OB Get([MyDocuments]My4DWP;"myatt_Last edition by")

- 40 -

Page 41: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

OBJECT Get horizontal alignment e OBJECT SET HORIZONTAL ALIGNMENT

OBJECT Get horizontal alignment ( {* ;} object ) -> Function result OBJECT SET HORIZONTAL ALIGNMENT ( {* ;} object ; alignment )

Descrição

Estes comandos suportam os objetos 4D Write Pro. Para definir um alinhamento justificado, pode utilizar a constante wkjustify no parametro alinhamento para os objetos 4D Write Pro. Esta constante se encontra no tema "4D Write Pro":

Constante Tipo Valor Comentario

wk justify inteirolongo 5 Disponivel para as áreas 4D Write Pro unicamente (constante adicionada ao tema

"4D Write Pro")

Dado que este é um atributo de parágrafo, só se aplicará aos parágrafos selecionados no documento 4D Write Pro.

Exemplo

Se quiser justificar alinhamento para a área 4D Write Pro:

OBJECT SET HORIZONTAL ALIGNMENT(*;"my4DWPArea";wk justify)

- 41 -

Page 42: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Opção eliminada: Usar comentários 4DVAR ao invés de colchetes

A partir de 4D v15 R4, a opção de compatibilidade Utilizar os comentários 4DVAR ao invés de colchetes foi eliminadada página "Compatibilidade" da caixa de diálogo das Propriedades do banco de dados. Já não estará disponível para osbancos de dados convertidos.Esta configuração era utilizada para ativar uma sintaxe propietária para as etiquetas 4D utilizando colchetes ([miVar] porexemplo). Esta sintaxe antiga já não é interpretada nos bancos de dados 4D. Se seu banco de dados convertido utilizar estaopção, é necessário atualizar seus templates. As únicas sintaxes respaldadas em 4D v15 R4 e superiores são:

a notação HTML padrão (<!#--4DVAR myVar-->), oua Nova sintaxe $ para 4DTEXT, 4DHTML, 4DEVAL.

- 42 -

Page 43: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

RESUME TRANSACTION

RESUME TRANSACTION Este comando não requer parâmetros

Descrição

Tema: TransaçõesO comando RESUME TRANSACTION reinicia a transação que foi detida usando SUSPEND TRANSACTION nO nivelcorrespondente no processo atual. Todas as operações que se executam depois deste comando se realizam sob o controlede transações (exceto quando várias transações suspensas estejam anihadas).Para mais informação, consulte o parágrafo Transações suspensas e estatus de processo.

- 43 -

Page 44: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

SUSPEND TRANSACTION

SUSPEND TRANSACTION Este comando não requer parâmetros

Descrição

Tema: TransaçõesO comando SUSPEND TRANSACTION detem a transação atual no processo atual. Após isso pode manipular os dadosem outras partes do banco de dados, por exemplo, sem que sejam incluidos na transação, e ao mesmo tempo preservar ocontexto atual da transação. Todos os registros que foram atualizados ou adicionados na transação estão bloqueados atéque a transação seja reativada com o comando RESUME TRANSACTION.Para saber mais, consulte Suspender e reativar as transações.

- 44 -

Page 45: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Suspender e reativar as transações

4D v15 R4 inclui uma nova funcionalidade que lhe permite suspender e reativar as transações em seu código 4D. Quando sesuspende uma transação, pode executar operações de forma independente da própria transação e depois reativar atransação para validá-la o cancelá-la como de costume. Quando a transação for suspensa, pode em particular:

criar ou modificar os registros fora da transação (por exemplo, para incrementar um contador de número de faturas),iniciar, suspender ou fechar outras transações

Esta função é útil quando necessita realizar, dentro de uma transação, certas operações que não necessitam serexecutadas sob o controle desta transação. Por exemplo, imaginemos o caso onde um cliente faz um pedido, dentro de umatransação e também atualiza seu endereço. A continuação, o cliente muda de opinião e cancela a ordem. A transação secancela, mas não deseja que a mudança de endereço se reverta. Este é um exemplo típico no qual suspender a transação éútil.

Como suspender e reativar a transação?

Três novos comandos, localizados no tema "Transações", permitem suspender e reativar as transações:

SUSPENDER TRANSAÇÂO: pausa a transação atual. Todos os registros atualizados ou adicionados permanecembloqueados.REATIVAR TRANSAÇÂO: reativa uma transação suspensa.Transação ativa: devolve False se for suspensa a transação ou se não houver uma transação atual e Verdadeiro foriniciado ou reativado.

Estes comandos são detalhados por separado na seção "Linguagem" deste manual.

Como funciona uma transação suspensa?

Quando uma transação for suspensa, os seguintes princípios abaixo são aplicados:

Pode acessar aos registros que foram adicionados ou modificados durante a transação e não podem acessar aos registros que foram eliminados durante a transação.Pode criar, salvar, eliminar ou modificar os registros fora da transação.Pode iniciar uma nova transação, mas dentro desta transação incluida, não poderá ver os registros ou os valores deregistros que foram adicionados ou modificados durante a transação suspensa. Na verdade, esta nova transação étotalmente independente da que foi suspensa, similar a uma transação de outro processo e já que a transaçãosuspensa mais tarde poderia ser reativada ou cancelada, qualquer registro adicionado ou modificado é ocultadoautomaticamente para a nova transação. Logo que confirme ou cancele a nova transação, pode ver estes registros denovo.Todos os registros que são modificados, eliminados ou adicionados dentro da transação suspensa permanecembloqueados para outros processos. Se tentar modificar ou eliminar estes registros fora da transação ou em uma novatransação, um erro é gerado.

Estas implementações são resumidas no seguinte gráfico:

- 45 -

Page 46: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Os valores editados durante a transação A (registro ID1 toma o valor Val11) não estão disponíveis em uma novatransação (B) criada durante o período "suspenso". Os valores editados durante o período de suspensão (registro ID2toma o valor Val22 e registro ID3 toma o valor Val33), são conservados depois de que se cancela a transação A.As funcionalidades específicas foram adicionadas para manejar os erros:

O registro atual de cada tabela é bloqueado temporáriamente se for modificado durante a transação e fordesbloqueado automaticamente quando for reinicada a operação. Este mecanismo é importante para evitar quepartes da transação são salvas de forma inesperada.Se for executada uma sequencia inválida tal como, iniciar transação / suspender transação / iniciar transação /reativar transação, um erro é gerado. Este mecanismo evita que os desenvolvedores esqueçam de confirmar oucancelar as sub transações incluidas antes de reativar a operação suspensa.

Transações suspensas e estatus de processo

O comando existente In transaction devolve True quando for iniciada uma transação, mesmo se estiver suspensa. Parasaber se a transação atual foi suspensa, é necessário utilizar o novo comando Transação ativa, que devolve False nestecaso. Ambos comandos, entretanto, também devolvem False se não tiver iniciado nenhuma transação. Depois pode sernecessário usar o comando Transaction level, que devolve 0 neste contexto (nenhuma operação iniciada).O gráfico abaixo ilustra os diversos contextos de transação e os valores correspondentes devolvidos peos comandos detransação:

Exemplo

Este exemplo ilustra a necessidade de suspender uma transação. Em um banco de dados de faturas, queremos obter umnovo número da fatura durante uma transação. Este número é calculado e armazenado em uma tabela [Settings]. Em umambiente multi-usuário, os acessos concorrentes devem estar protegidos; entretanto, devido a transação, a tabela [Settings]poderia ser bloqueada por outro usuário apesar de que estes dados sejam independentes da transação principal. Nestecaso, pode suspender a transação quando a tabela for acessada.

//Método padrão que cria uma fatura START TRANSACTION ... CREATE RECORD([Invoices]) [Invoices]InvoiceID:=GetInvoiceNum //chama ao método para obter um número disponível ... SAVE RECORD([Invoices]) VALIDATE TRANSACTION

O método GetInvoiceNum suspende a transação antes de execut-a-la. Note que este código funcionará mesmo se o método for chamado por fora de uma transação:

//Método proyecto GetInvoiceNum //GetInvoiceNum -> Seguinte número de fatura disponível C_LONGINT($0) SUSPEND TRANSACTION ALL RECORDS([Settings]) If(Locked([Settings])) //Acesso multi-usuário

- 46 -

Page 47: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

While(Locked([Settings])) MESSAGE("Waiting for locked Settings record") DELAY PROCESS(Current process;30) LOAD RECORD([Settings]) End while End if [Settings]InvoiceNum:=[Settings]InvoiceNum+1 $0:=[Settings]InvoiceNum SAVE RECORD([Settings]) UNLOAD RECORD([Settings]) RESUME TRANSACTION

- 47 -

Page 48: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Tags de transformação 4D

4D tags de transformação foram melhoradas em 4D v15 R4:

suporte de nova sintaxe compatível com xml, permitindo o uso de templates válidos xmlintrodução de uma nova tag "4DCODE" que permite inserção de blocos de código 4Dusar o separador decimal "." para estabelecer o código independentemente das configurações regionais

Nova sintaxe $ para 4DTEXT, 4DHTML, 4DEVAL

Diversas tags de transformação existentes podem agora ser expressas usando uma nova sintaxe $:$4dtag (expression) pode ser usada ao invés de <!--#4dtag expression-->Condições exigidasA sintaxe $ só pode ser usada com certas etiquetas e em certos contextos de avaliação:

EtiquetasSó as etiquetas utilizadas para devolver os valores processados aceitam esta sintaxe:

4DTEXT4DHTML4DEVAL

AvaliaçãoA sintaxe $ dispara a avaliação de etiquetas por 4D só em casos onde a avaliação é explícita:

comando PROCESS 4D TAGS páginas estáticas .shtml servidas diretamente pelo servidor web por meio de URLspáginas inseridas por meio da etiqueta 4DINCLUDE

Para as outras etiquetas (4DIF, 4DSCRIPT, etc.) e em outros contextos de avaliação (comandos WEB SEND FILE, SENDHTML BLOB e WEB SEND TEXT), a sintaxe $ não é suportada e é necessário utilizar a sintaxe regular).UsoPor exemplo, pode escrever:

$4DEVAL(UserName)

ao invés de:

<!--#4DEVAL(UserName)-->

A maior vantagem da nova sintaxe é permitir que escreva xml compliant templates. Alguns desenvolvedores 4D precisacriar templates baseados em xml-based e também validar usando o padrão xml parser tools. Já que o caracter "<" é inválidoem um valor atributo xml, não é possível usar a sintaxe de tags 4D "<!-- -->" sem quebrar a sintaxe do conteúdo. Por outrolado, escapando o caracter "<" previne que 4D interprete as tags corretamente . Por exemplo, o código seguinte causaria um erro xml parsing por causa do primeiro "<":

<line x1="<!--#4DEVAL $x-->" y1="<!--#4DEVAL $graphY1-->"/>

Usando a sintaxe $, o código seguinte é validado pelo parser:

- 48 -

Page 49: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

<line x1="$4DEVAL($x)" y1="$4DEVAL($graphY1)"/>

Note que $4dtag e <--#4dtag --> não são equivalentes estritamente: diferente de <--#4dtag -->, o processamento $4dtag nãointerpreta tags 4D de forma recursiva. tags $ são sempre avaliadas uma vez e o resultado é considerado como texto simples

Nota: Para saber mais sobre processamento recursivo, veja Processamento recursivo.A razão para esta diferença é proteção contra inserção de código malicioso. Como explicado no manual Language éfortemente recomendado que se use as tags 4DTEXT ao invés das tags 4DHTML quando lidando com texto de usuário paraproteger contra reinterpretação de tags não desejadas: com 4DTEXT, caracteres especiais como "<" são escapados,assim qualquer tags 4D com sintaxe <!--#4dtag expression --> vai perder seu significado especial. Entretanto, já que4DTEXT não escapa o simbolo $, foi decidido cortar suporte a recursividade para prevenir inserção maliciosa com asintaxe $4dtag (expression).Os exemplos abaixo mostram o resultado do processamento dependendo da sintaxe usada e tag:

// exemplo 1 myName:="<!--#4DHTML QUIT 4D-->" //injeção maliciosa input:="My name is: <!--#4DHTML myName-->" PROCESS 4D TAGS(input;output) //vai parar 4D!

// exemplo 2 myName:="<!--#4DHTML QUIT 4D-->" //<span style="line-height: 14.4182px;">injeçãomaliciosa</span> input:="My name is: <!--#4DTEXT myName-->" PROCESS 4D TAGS(input;output) //output igual a "My name is: & lt;!--#4DHTML QUIT 4D-->"

// exemplo 3 myName:="$4DEVAL(QUIT 4D)" //<span style="line-height: 14.4182px;">injeçãomaliciosa</span> input:="My name is: <!--#4DTEXT myName-->" PROCESS 4D TAGS(input;output) //output igual a "My name is: $4DEVAL(QUIT 4D)"

Note que a sintaxe $4dtag suporta combinar pares de citações fechadas ou parentesis. Por exemplo, suponha quenecessite avaliar a seguinte string complexa (e irrealista):

String(1) + "\"(hello)\""

Pode escrever:

input:="$4DEVAL( String(1)+\"\\\"(hello)\\\"\")" PROCESS 4D TAGS(input;output) -->outputs 1"(hello)"

4DCODE (new tag)

Syntax: <!--#4DCODE 4Dcode-->A nova tag 4DCODE permite que insere um bloco de código multilinha 4D em um template.Quando uma sequência "<!--#4DCODE" for detectada e permitida por um caractere espaço, CR ou LF, 4D interpreta todasas linhas de código até a próxima sequência "-->". O bloco de código em si mesmo pode conter Retornos de Carro, NovaLinhas, ou ambos e serão interpertados sequencialmente por 4D.Por exemplo, usando a tag 4DCODE, pode escrever em um template:

<!--#4DCODE//inicialização PARAMETERS

- 49 -

Page 50: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

$graphType:=1if (OB Is defined:C1231($graphParameters;"graphType")) $graphType:=OB GET:C1224($graphParameters;"graphType") if ($graphType=7) $nbSeries:=1 if ($nbValues>8) DELETE FROM ARRAY:C228 ($yValuesArrPtr{1}->;9;100000) $nbValues:=8 end if end ifend if-->

Algumas propriedades das tag 4DCODE:

O comando TRACE é suportado e ativa o 4D debugger, permitindo assim que debugue seu código de template.Qualquer erro será exibido com a caixa de diálogo padrão de erro que permite que o usuário pare a execução docódigo ou entre o modo debugging.O texto entre <!--#4DCODE and --> é separado em linhas aceitando qualquer convenção de final de linha (cr, lf, oucrlf).O texto é tokenizado dentro do contexto do banco de dados que chamou PROCESS 4D TAGS. Isto é importante, porexemplo, para reconhecimento de métodos de projeto . Nota: A propriedade de método "Disponível através de tags 4D e URLs 4DACTION" não é levada em consideração(ver também abaixo Nota de segurança).O código 4D deve sempre ser escrito usando a linguagem English-US. Portanto, 4DCODE ignora as preferências deusuário "Usar configurações de sistema regionais" para a linguagem 4D Mesmo se o texto sempre usar English-US, é recomendado usar a sintaxe :Cxxx e :Kxxx para comandos e nomes deconstante para proteger contra o renomeamento de comandos ou constantes de uma versão para outra. Nota: Para saber mais sobre sintaxe :Cxxx e :Kxxx syntax, veja o parágrafo XXX.

Nota sobre segurança: O fato que as etiquetas 4DCODE podem chamar qualquer comando da linguagem 4D ou métodosde projeto pode ser visto como um problema de segurança, especialmente se o banco de dados estiver disponível atravésde http. Entretanto, já que ele executa código do lado do servidor chamado de seus próprios arquivos de template, a tag emsi mesma não representa um risco de segurança. Neste contexto, assim como para qualquer servidor Web, émajoritariamente lidado ao nível do acesso externo aos arquivos de servidor.

Usar "." como separador decimal

A partir de v15 R3, 4D sempre usa o caractere ponto (.) como separador decimal quando avaliar uma expressão númericacom uma 4D tag (4DTEXT, 4DVAR, 4DHTML, 4DHTMLVAR, e 4DEVAL). Configurações locais são ignoradas.Esta nova propriedade facilita a manutenção do código e a compatibilidade entre linguages e versões 4DPor exemplo, sempre que na configuração regional:

value:=10/4 input:="<!--#4DTEXT value-->" PROCESS 4D TAGS(input;output) // sempre dá outputs 2.5 mesmo que a configuração regional usar ',' como separador

Nota de compatibilidade: Se seu código avaliar expressões númericas através de 4D tags com respeito a suasconfigurações regionais, precisa adaptá-las usando o comando String:

Para conseguir value com um ponto como separador decimal : <!--#4DTEXT value-->Para conseguir value com o ponto decimal de acordo com as configurações regionais<!--#4DTEXT String(value)-->

- 50 -

Page 51: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Variável de sistema Error Formula

Uma nova variável sistema Texto já está disponível nos métodos de captura de erros instalado pelo comando ON ERRCALL: Error formula. Que se une ao conjunto existente de variáveis sistema relacionadas com os erros do sistema: Error,Error method e Error line.Esta nova variável oferece ao desenvolvedor uma maneira rápida e simples de identificar a origem de um erro. Quando seproduz um erro, a variavel sistema Error formula recupera a fórmula de código 4D (como texto sem formato) que originou oerro. O texto desta fórmula se expressa na linguagem atual de programacção 4D.Nota: se não for possível encontrar o código fonte responsável do erro, Error formula contem uma string vazia. Isto podeocorrer quando:

o código fonte foi eliminado da estrutura compilada utilizando o gerador de aplicações de 4D.o código fonte está disponivel, mas o banco de dados foi compilado sem a opção Controle de execução.

Exemplo

o seguinte método de controle de erros ignora as interrupções de usuário e mostra o texto do erro:

//Método projeto Show_only_errors //deve ser instalado por ON ERR CALL If(Error#1006) //not a user interruption ALERT("Error "+String(Error)+" occurred. Faulty code is: \""+Error formula+"\"") End if

- 51 -

Page 52: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

WEB Get session process count

WEB Get session process count ( sessaoID ) -> Resultado Parâmetro Tipo DescriçãosessaoID Texto UUID da sessãoResultado Inteiro longo Número de processos anexados a sessão

Descrição

O novo comando WEB Get session process count devolve o número de processos ativos vinculados a sessão cujo UUIDse passa no parâmetro idSession.Este comando se adiciona no contexto da nova funcionalidade Gestão de sessões 4D Mobile por programaçãoadicionada em 4D v15 R4. Está criado principalmente para contar o número de processos executados por uma sessão 4DMobile.

Para uma sessão 4D Mobile, este comando devolve o número real de processos. Uma sessão 4D Mobile podeexecutar vários processos.

Para uma sessão Web clássica, este comando sempre devolve 1 (uma sessão Web = um processo).

Exemplo

Se quiser armazenar informação sobre a sessão 4D Mobile atual em arrays:

C_TEXT($sessionID) C_LONGINT($count) C_DATE($expDate) C_TIME($expTime) $sessionID:=WEB Get Current Session ID $count:=WEB Get session process count($sessionID) WEB GET SESSION EXPIRATION($sessionID;$expDate;$expTime) APPEND TO ARRAY($aTimestamp;String(Current date)+" "+String(Current time)) APPEND TO ARRAY($aSessionUID;$sessionID) APPEND TO ARRAY($aNbProcesses;$count) APPEND TO ARRAY($aExpirationDate;$expDate) APPEND TO ARRAY($aExpirationTime;$expTime)

- 52 -

Page 53: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

4D Write Pro

Modificar os atributos de texto e imagem por programação Novo objeto de formulário área 4D Write Pro

- 53 -

Page 54: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Modificar os atributos de texto e imagem por programação

Em 4D v15 R4, 4D Write Pro oferece um conjunto completo de comandos que permitem modificar os atributos de texto eimagem de seus documentos. Além disso, vários comandos 4D foram atualizados.Graças a estas novas funcionalidades, os desenvolvedores 4D agora podem criar suas próprias interfaces de usuário(utilizando botões, menus, caixas de verificação, etc.) para os documentos 4D Write Pro. Os comandos podem seraplicados ao documento inteiro ou a partes específicas (faixas), seja baseado nas seleções do usuário ou em valorespersonalizados. As propriedades disponíveis incluem unidades do documento, margens, preenchimentos de fundo,configuração de parágrafo, cores, fontes, estilos de fonte, assim como as propriedades das imagens.Por exemplo, Novo objeto de formulário área 4D Write Pro faz um amplo uso destas novas funcionalidades paraoferecer uma interface de área 4D Write Pro completa e sofisticada:

Nota: também pode definir os atributos personalizados quando a área 4D Write Pro for armazenada em um campo Objeto(ver o parágrafo Usar atributos personalizáveis).

Novos comandos 4D Write Pro

Os novos comandos 4D Write Pro foram adicionados para trabalhar com a funcionalidade de gestão dos atributos. Lembreque estes comandos foram detalhados no manual Referência 4D Write Pro.

Comando de seleção de faixa Vários dos novos comandos estão dedicados a manipulação das seleções nos documentos. Dado que o texto selecionadopode conter etiquetas (invisíveis) de formato, 4D Write Pro funciona com faixas. Uma faixa (range) é um objeto querepresenta uma porção de um documento 4D Write.

WP Get range( wpArea ; inicioRango ; finRango ) -> objRango: devolve uma nova faixa correspondente aos limitesque passam como parâmetros.WP Get selection( {*;} wpArea ) -> objRango: devolve um novo range que corresponde a seleção usuario atual.WP Get pictures( objRango ) -> objRango: devolve um novo range que contém só as imagens.WP Get paragraphs( objRango ) -> objRango: devolve um novo range que contém só os parágrafos.WP SELECT( {*;} wpArea {; objRango}{; inicioRango ; finRange } ): seleciona o texto correspondente ao range.

- 54 -

Page 55: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Comandos para manejar Atributos O novos comandos abaixo permitem ler ou definir os atributos do documento:

WP SET ATTRIBUTES( objRango | wpDoc ; nomAtrib ; valorAtrib {; nomAtrib2 ; valorAtrib2 ; ... ; nomAtribN ;valorAtribN} ): define um ou mais pares atributo/valor no documento ou faixa.WP GET ATTRIBUTES( objRango | wpDoc ; nomAtrib ; attribValue {; nomAtrib2 ; valorAtrib2 ; ... ; nomAtribN ;valorAtribN} ): obtém o valor atual dos atributos no documento ou faixa.WP RESET ATTRIBUTES( objRango ; nomAtrib {; nomAtrib 2 ; ... ;nomAtribN } ): reinicializa os valores dos atributosno documento ou faixa.

Os atributos sãi detalhados na seção Atributos 4D Write Pro.

Comando para manejar Fonte Um novo comando lhe permite obter informação sobre o respaldo de estilo para uma faixa:

WP Is font style supported ( objRange ; wpFonteEstilo) -> true ou false: lhe permite saber se uma faixa respalda umdeterminado estilo (útil para criar uma interface).

Atualização de comandos 4D

Vários comandos 4D foram atualizados em 4D v15 R4 para respaldar as novas implementações 4D Write Pro.

OBJECT SET HORIZONTAL ALIGNMENT Este comando suporta objetos 4D Write Pro. Uma nova constante já está disponível no parâmetro alinhamento para objetos4D Write Pro, que lhe permite definir uma alinhação justificada:

Constante Tipo Valor Comentário

wk justify Inteirolongo 5 Disponível para áreas 4D Write Pro unicamente (constante adicionada ao tema "4D

Write Pro")

OB SET Este comando suporta definições de atributos nos objetos 4D Write Pro igual que WP SET ATTRIBUTES. A seguintesintaxe é suportada:OB SET ( objRango | wpDoc; nomAtrib ; valorAtrib {; nomAtrib2 ; valorAtrib2 ; ... ; nomAtribN ; valorAtribN} )Entretanto, existe uma limitação: com este comando, não pode ser passada uma variável ou campo imagem diretamentecomo um valor de atributo.

OB Get Este comando suporta as definições de atributos nos objetos 4D Write Pro ao igual que WP GET ATTRIBUTES. A seguintesintaxe se suporta:OB Get ( objRango | wpDoc; nomAtrib ) -> ResultadoCom este comando, a mesma limitação existe como para OB SET: não pode ser usada uma variável ou campo imagencomo um valor de atributo.

Stringficar atributos 4D Write Pro Em 4D v15 R4, se converter um objeto 4D Write Pro a JSON usando o comando JSON Stringify, só o atributo "title" estarádisponível na string de saida.Os atributos personalizados, se houver, também serão "Stringified" (ver "Utilizar os atributos personalizados" na seçãoArmazenar os documentos 4D Write Pro nos campos objeto 4D).

QUERY BY ATTRIBUTE Tal como se define na seção Armazenar documentos 4D Write Pro em campos de Objeto 4D, o comando QUERY BYATTRIBUTE suporta os atributos 4D Write Pro (internos ou personalizados) quando os documentos são armazenados noscampos objeto.

- 55 -

Page 56: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Novo objeto de formulário área 4D Write Pro

Um novo objeto de formulàrio 4D Write Pro foi adicionado à biblioteca de objetos de 4D em v15 R4:

Difente de uma área 4D Write Pro padrão (disponível na barra de objetos do editor de formulário), este objeto pré-configurado consiste em uma área 4D Write Pro associada a um subformulário widget que contenha um conjunto de painéisde controle intuitivos. Este widget dispõe de forma pré-determinada de uma barra de ferramentas de navegação entre osdiferentes painéis, que permitem aos usuários configurar os conteúdos da área diretamente.Ao soltar o novo objeto de formulário Write Pro em seu formulário, a área 4D Write Pro e seu painel de controle estão

prontos para serem usados "tal qual" quando for executado o formulário, sem necessidade de programação adicional:

Para mais informação sobre como utilizar este novo objeto de formulário, consulte Novo objeto formulário 4D Write Proem Biblioteca de Objetos.

- 56 -

Page 57: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

4D Mobile

Gestão de sessões 4D Mobile por programação Test_MOVE

- 57 -

Page 58: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Gestão de sessões 4D Mobile por programação

Visão Geral

A partir de 4D v15 R4, a ÎD de sessão 4D Mobile pode ser recuperada do lado do 4D Server. Esta nova propriedadepermite que desenvolvedores consigam ou estabeleçam informação relacionada a sessões localmente (ver exemploabaixo).Sessões 4D Mobile podem agora ser manejadas usando comandos de sessão regular 4D Web. Comandos existentesforam atualizados para suportar sessões 4D Mobile. Além disso, o novo comando WEB Get session process count foiadicionado e, para melhor claridade, um método de banco de dados foi renomeado.

Comandos suportados sem mudanças

Os seguintes comandos de gestão de sessões Web existentes suportan sessões 4D Mobile sem modificar a sintaxe.

WEB Get Current Session ID -> sessionID O comando WEB Get Current Session ID agora retorna o UUID associado com a sessão atual de 4D Mobile.

WEB CLOSE SESSION(sessionID) O comando WEB CLOSE SESSION fecha a sessão 4D Mobile cuja identificação se passa em sessaoID. Como umasessão 4D Mobile pode manejar vários processos, este comando solicita a todos os processos Web relacionados queterminem sua execução.

WEB GET SESSION EXPIRATION ( sessionID ; expDate ; expTime ) O comando WEB GET SESSION EXPIRATION devolve a informação de caducidade da cookie de uma sessão 4DMobile.O mesmo cookie é utilizado para todos os processos vinculados a uma sessão 4D Mobile.

Método de banco de dados On Web Close Process (anteriormente On Web SessionSuspend)

A partir de 4D v15 R4, o método de banco existente On Web Session Suspend foi renomeado como On Web CloseProcess. Este método foi renomeado por consistência, já que as sessões 4D Mobile não são mescladas com osprocessos (uma sessão pode executar vários processos) Para saber mais, consulte o parágrafo anterior Sessões 4DMobile vs Web sessions .O método base On Web Close Process é chamado por 4D cada vez que um proceso web estiver a ponto de ser fechado.É totalmente compatível com os processos das sessões 4D Mobile: neste contexto, é chamada para cada processo Webfechado, o que permite salvar todos os dados (variáveis, seleção, etc.) gerados pelo processo de sessão 4D Mobile. Nota: para as sessões web regulares, o método base On Web Close Process não é modificável: ele é chamado todas asvezes que a sessão Web, ou seja, o processo único de sessão Web, for fechada,

Novo comando WEB Get session process count

O novo comando WEB Get session process count lhe permite averiguar o número de processos existentes relacionadoscom uma sessão determinada.

Para as sessões Web regulares, o comando devolve sempre 1 (uma sessão Web = um processo),Para as sessões 4D Mobile, o comando devolve todos os processos web relacionados. O comando é útil nestecontexto, por exemplo, para executar um loop em todos os processos de uma sessão 4D Mobile. Para obter maisinformação, consulte a descrição do comando WEB Get session process count.

Por que e como manejar uma sessão 4D Mobile?

Sessões 4D Mobile vs Web sessions

- 58 -

Page 59: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

As sessões 4D Mobile e as sessões Web são dois tipos diferentes de sessões. Ainda que compartam alguns conceitos (ecomandos), não tem as mesmas propriedades.Uma diferença significativa é a relação entre uma sessão e um processo:

Uma sessão Web pode executar só um processo web. Graças a propriedade Automatic Session Management, ocontexto do processo (seleções, instâncias de variáveis, etc) de sessões podem ser reutilizadas.Uma sessão 4D Mobile pode executar vários processos Web. Cada contexto de processo é automaticamenteresetado depois da execução do processo do método.

Como resultado, manter informações relacionada a sessões entre processos 4D Mobile Web exige um pouco deprogramação extra no lado do Servidor 4D.

Exemplo Se quiser distribuir ou reutilizar informação entre diversos processos ou uma única sessão 4D Mobile, pode usar o UUID dasessão 4D Mobile para identificar dados relativos a sessões. Por exemplo, depois de uma pesquisa de registros, se quisermanter uma seleção nomeada no 4D Server de maneira que qualquer requisição REST na mesma sessão possa acessaresta seleção diretamente. Pode escrever, depois da declaração da pesquisa:

//cria uma seleção inter-processo incluindo seleção UUID COPY NAMED SELECTION([Emp];"<>EmpSel"+WEB Get Current Session ID) //depois, pode reutilizar esta seleção para a mesma seleção USE NAMED SELECTION([Emp];"<>EmpSel"+WEB Get Current Session ID)

- 59 -

Page 60: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Test_MOVE

TEST

This is a move test

- 60 -

Page 61: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

SQL

Suporte estendido de outer joins

- 61 -

Page 62: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Suporte estendido de outer joins

Descrição

A partir de 4D v15 R4, o servidor SQL integrado estende o suporte de combinações externas SQL a pesquisas queimplicam três ou mais tabelas.As pesquisas que combinam várias uniões e tabelas na mesma instrução SELECT agora são suportadas, sempre querespeitem as seguintes condições:

cada cláusula ON combinação externa explícita referencia exatamente duas tabelas, nem mais nem menos, uma das tabelas deve vir da parte esquerda imediata da cláusula JOIN e a outra, da direita imediata.

Por exemplo, a seguinte pesquisa é executada com sucesso:

SELECT * FROM T1LEFT JOIN(T2 LEFT JOIN T3 ON T2.ID=T3.ID)ON T1.ID=T3.ID

As pesquisas que não cumpram com as condições anteriores serão recusadas. Para uma descrição detalhada das sintaxescompatíveis, consulte a Referência SQL 4D v15 R4.

Limitações

A implementação de 4D v15 R4 de outer joins atualmente inclui algumas limitações:

só são suportadas as operações booleanas AND e NOT na condição ON (OR não é suportado). Além disso, opredicado IS NULL e a função COALESCE tampouco são compatívei.as chamadas a métodos 4D não são suportadas dentro da cláusula ON se qualquer dos lados esquerdo ou direito dacláusula JOIN atual for uma outer join explícita.as vistas SQL não são suportadas na declaração join explícitaAs subconsultas que utilizam joins externa não são suportadas

O manual 4D SQL Reference v15 R4 foi atualizado para documentar todas estas limitações.

Otimização

Na implementação atual, os casos em que a cláusula WHERE contém filtros de tipo "field=constant" pode ser otimizado. Porexemplo:

SELECT * FROM T1LEFT JOIN T2ON T1.ID=T2.IDLEFT JOIN T3ON T1.ID=T3.IDWHERE T1.ID=123

Para melhorar o rendimento, pode duplicar o filtro WHERE para a cláusula JOIN explícita. A seguinte pesquisa terá osmesmos resultados, mas será executado muito mais rápido que a pesquisa anterior:

SELECT * FROM T1LEFT JOIN T2ON T1.ID=T2.ID AND T1.ID=123 -- The WHERE filter "T1.ID=123" é duplicado aquiLEFT JOIN T3ON T1.ID=T3.ID AND T1.ID=123 -- The WHERE filter "T1.ID=123" é duplicado aquiWHERE T1.ID=123

- 62 -

Page 63: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Otimizações

Reindexamento de banco de dados mais rápido Cache para EXECUTE FORMULA em modo compilado

- 63 -

Page 64: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Reindexamento de banco de dados mais rápido

Em 4D v15 R4, otimizamos o algoritmo de indexação global de um banco de dados. O processo inteiro foi acelerado demaneira dramática e pode ser até duas vezes mais rápido.Nota: se precisa de uma nova indexação global, por exemplo, depois de uma reparação do banco de dados ou quando oarquivo .4dindx for eliminado.Dado que cada registro de cada tabela indexada necessita ser carregado na memória durante a indexação, a otimizaçãoestá dirigida a minimizar intercâmbios de disco. Esta operação se realiza agora de forma sequencial em cada tabela, o quereduz as operações de carregamento e descarregamento de registros.Em um cenário ideal, a memória cache sería suficiente para conter o arquivo de dados inteiro e o índice, neste caso nãohaveria nenhuma melhoria da velocidade pelo novo algoritmo. Entretanto, a memória do servidor disponível geralmente nãoé tão grande. Se a caché for suficientemente grande para conter ao menos a maior tabela e seu índice, o novo algoritmoserá até duas vezes mais rápido que antes.

- 64 -

Page 65: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Cache para EXECUTE FORMULA em modo compilado

A partir de 4D v15 R4, cada fórmula executada pelo comando EXECUTE FORMULA em modo compilado pode serarmazenada em uma nova caché dedicada em memória. A fórmula será armazenada em caché em forma tokenizada.Quando tiver colocado na caché, suas execuções posteriores estão altamente otimizadas já que o passo de tokenização éignorado.O tamanho da caché é zero como padrão (sem caché); necessita ser criado ou ajustado utilizando o comando SETDATABASE PARAMETER (ver Get database parameter e SET DATABASE PARAMETER ).

SET DATABASE PARAMETER(Number of formulas in cache;0) //sem caché para as fórmulas SET DATABASE PARAMETER(Number of formulas in cache;3) //até três fórmulas podem serarmazenadas em caché para cada processo

O comando EXECUTE FORMULA utiliza a memória caché quando for chamada desde um banco de dados ou componentecompilado.Nossas provas internas mostraram que, quando uma fórmula é carregada na memoria caché, sua execução ésignificativamente mais rápida em comparação com uma fórmula que não é armazenada em caché.

- 65 -

Page 66: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Versão 64-bits de 4D Developer Edition (preview)

Desde 4D v15 R2, 4D oferece uma versão prévia operacional de 4D Developer Edition de 64 bits para Windows e OS X.Quando estiverem disponíveis em suas versões finais, estes novos produtos permitirão que seus aplicativos independentes4D, assim como seus aplicativos 4D remotos, aproveitem ao máximo o poder dos sistemas operativos de 64 bits. Aprincipal vantagem da tecnologia de 64 bits é que pode se atribuir mais memória RAM.Estas versões são uma oportunidade para olhar nossos próximos produtos de 64 bits. Também são útieis para osdesenvolvedores de plug-ins de terceiros, os quais podem começar adaptando seu próprio código e obtenendo umaretroalimentação imediata. Lembre entretanto, que estes produtos estão ainda em fase de desenvolvimento, e por issoversões prévias podem ser instáveis.

Consulte o manual 4D v15 R2 - Actualização (PDF) para obter informação sobre a vista prévia R2 de 4D DeveloperEdition de 64 bits.Consulte o manual 4D v15 R3 - Actualização (PDF) para obter informação sobre a vista prévia R3 de 4D DeveloperEdition de 64 bits.Consulte as seguintes seções para obter informação atualizada sobre a vista prévia R4 de 4D Developer Edition de64 bits.

Configuração Estado das funcionalidades Lista de propriedades recriada Novo Editor de Etiquetas Novo editor de Relatório Rápido

- 66 -

Page 67: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Configuração

Exigências de sistema

Desenvolvedores de versões 4D de 64-bit exigem a configuração mínima abaixo:Windows OS X

OS Windows 7 ou superior (versões 64-bit) OS X versão 10.10 (Yosemite) ou superiorRAM 8 GB 8 GB

Veja as matrizes de certificação disponíveis em 4D's Web site para descobrir quais sistemas operativos são compatíveiscom sua versão de 4D.

Arquitetura

Aplicações 4D pensadas para arquitetura 64-bit são versões especificas dedicadas á esse ambiente; (não rodarão em 32-bit OS). Em modo interpretado, os mesmos bancos de dados 4D podem ser executados com uma aplicação 64-bit ou 32-bit(servidor ou local). Desenvolvimento é idêntico independente de que tipo de aplicação é usada (exceto para limitaçõeslistadas abaixo).Em modo compilado, bancos de dados devem ter sido compilados pelo processador apropriado: um processador de 64bits para ser executado em uma aplicação de 64 bits, e um processador de 32 bits para ser executado em uma aplicaçãode 32 bits. Um banco de dados que foi compilado em 32 bits e que não contém código interpretado não pode ser executadoem uma aplicação 4D de 64 bits, e vice-versa. Pode compilar seu banco de dados para uma arquitetura específica ou paraas duas. Para saber mais sobre compilação, veja a próxima seção.A tabela abaixo é um sumário da compatibilidade entre os vários ambientes de execução 4D e o código de banco dedados:

Código disponível 32-bit 4D 64-bit 4D32-bit 4D Server Interpretado OK OK(*)

32-bit compilado apenas OK -32-bit e 64-bit compilado OK OK(*)

64-bit 4D Server Interpretado OK OK(*)64-bit compilado apenas - OK(*)64-bit and 32-bit compilado OK OK(*)

Local database Interpretado OK OK32-bit compilado apenas OK -64-bit compilado apenas - OK32-bit and 64-bit compilado OK OK

(*) Com a versão de 4D Server de 32-bit (ambas plataformas) e a versão 64-bit de 4D Server for Windows, é necessárioassegurar que a capa de rede ServerNet esteja ativada no lado do servidor, já que a capa de rede legado não estádisponível nas versões de 64-bit de 4D. Para saber mais veja Nova capa de rede ServerNet (compatibilidade).

Compilação Multialvo

Aplicações 4D podem ser compiladas por processadores de 32-bit e 64-bit. Para fazer isso, precisa usar a opção Multi-target compilation (32-bit and 64-bit) disponível na página "Compiler" nas configurações de banco de dados:

- 67 -

Page 68: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Quando esta opção não estiver marcada (padrão), o compilador produz apenas código compilado para a arquitetura atual(32 bits ou 64 bits ) do 4D Developer. Quando esta opção estiver marcada, o compilador inclui código 64 bits e 32 bits nosarquivos .4DC e .4DB. Estes arquivos podem assim ser executado com um aplicativo 32 bits ou 64 bits.

- 68 -

Page 69: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Estado das funcionalidades

Esta seção cobre as particularidades relativas a implementação e uso da versão de 64 bits de 4D Developer Edition emWindows como em OS X. O desenvolvimento desta versão é realizada de uma maneira continua passo a passo. As funçõesque antes não estavam disponíveis são ativadas de forma progressiva e são adicionadas novas funcionalidades específicasem cada versão.

Propriedades atualizadas

Várias propriedades e diálogos 4D foram adaptadas ou mesmo reescritas para suportar a arquitetura 64-bit. A maioria dasmudanças é transparente e funciona como os lançamentos em 32-bit. Entretanto, alguns editores foram modificados eserão diferentes nas versões 32-bit. São oferecidos como previews na versão 4D Developer Edition 64-bit:

Propriedade Versão 4Dimpactada Comentário

Editor QuickReport

OS X &Win

Completamente reescrito. Na preview atual, áreas embebidas e relatórios de referênciacruzada não estão disponíveis. A preview é documentada no manual Upgrade 4D v15 R2(PDF).

Label Editor OS X &Win Completamente reescrito. Veja Novo Label Wizard (preview).

lista depropriedadeForm Editor

OS X &Win Novo design + novas propriedades para formulàrios de usuàrio em 4D v15 R3

Propriedades desativadas

Algumas propriedades foram desativas no primeiro lançamento de 4D Developer 64-bit e 4D Volume Desktop 64-bit:

Propriedade/Tecnologia Versão 4Dimpactada Comentário

comunicação Serial port OS X

Comandos desativados são GET SERIAL PORT MAPPING, RECEIVEBUFFER, RECEIVE PACKET, RECEIVE RECORD, RECEIVE VARIABLE,SEND PACKET, SEND RECORD, SEND VARIABLE, SET CHANNEL,SET TIMEOUT e USE CHARACTER SET no contexto de serial ports apenas

Caixas de diálogoImportar/Exportar OS X Desativado, assim como IMPORT DATA e EXPORT DATA

Áreas embebidas QuickReport

OS X &Win Desativado

Tabela de referênciacruzada Quick Report

OS X &Win Desativado

Usar Web Kit integradoem Web areas

OS X &Win Desativado

Charts OS X &Win Desativado (o comando GRAPH depende de XSLT, que não é suportado)

Printing Win Não disponível na primeira preview em Windows

Propriedades não suportadas

As seguintes propriedades ou tecnologias não são suportadas em 4D Developer Edition 64-bit e 4D Volume Desktop 64-bit:

- 69 -

Page 70: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Propriedade/Tecnologia Versão 4Dimpactada Comentário

XSLT com Xalan OS X &Win

_o_XSLT APPLY TRANSFORMATION, _o_XSLT SET PARAMETER, e_o_XSLT GET ERROR faz nada. Usa o comando PROCESS 4D TAGS ou omódulo PHP libxslt.

PICT format OS X &Win

Imagem 'Unsupported image format' + extensão de arquivo será exibida emseu lugar. Formato PICT é globalmente deprecada em 4D, ver AP Is PictureDeprecated.

cicn icons OS X &Win GET ICON RESOURCE comando não é suportado, retorna um erro.

arquivos Database .RSR OS X &Win

Arquivos Database .RSR não serão abertos automaticamente. Precisa usarOpen resource file.

arquivos Writableresource

OS X &Win

_o_Create resource file não é suportado; pode abrir apenas arquivosrecursos em apenas-leitura.

_o_Font number OS X &Win Este comando não é suportado; retorna um erro.

capa de rede legado OS X &Win Só ServerNet é suportada.

modo de compatibilidadeASCII

OS X &Win Só modo Unicode é suportado.

4D Write e 4D View plugins Win plug-ins legado não são compatíveis com versões 64-bit de 4D em Windows;

use 4D Write Pro e 4D View Pro (em desenvolvimento).OLE Tools Win Não suportada

Objetos de formulários animados em OS X

Aplicações 64-bit 4D rodando em OS X se beneficiam de animações nativas que aprimoram a experiência do usuário comfomulários 4D. Particularmente:

campos e variáveis, botões de radio e check boxes exibem animações quando recebem o foco,botões de radio e check boxes ativam animações durante mouse tracking,barras de rolagem tem efeitos de animação especial (apenas a versão Yosemite),usar a tecla tab em formulários de lista faz com que as colunas deslizem suavemente.

A seguinte sequência oferece uma visão geral dessas animações:

Nota: Apple publicou suas guias sobre como usar animações em suas aplicações.

- 70 -

Page 71: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Lista de propriedades recriada

A lista de propriedades do editor de Formulário foi reformulada na versão 64-bit do 4D Developer Edition.Além disso, propriedades usadas para estabelecer e ver propriedades trancadas ou não no editor de formulário Usuárioforam modificadas.

Propriedades do formulário de Usuário

Duas novas propriedades estão disponíveis na lista de Propriedades quando um formulário foi estabelecido como sendo"Editable by user":

O desenvolvedor agora pode selecionar propriedades editáveis usando um novo menu contextual:

Além do estado do cadeado, a cor do fundo de uma propriedade também mostra seu estado de trancado ou não: vermelho suave: trancadoazul suave: destrancado

Propriedades de cor

Uma nova paleta de cores como padrão é utilizada agora para todas as propriedades de cor na lista de propriedades:

Cores de preenchimentoCores de linhaCores de foenteCores de preenchimento alternativas

- 71 -

Page 72: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Paleta de cores flutuante compatível com OS X (OS X) Em OS X, quando o usuario selecionar Personalizada... no menu lista de cores, uma paleta de cores sistema flutuanteaparece e permanece aberta até que o usuário clicar em seu quadro de fechar. Esta janela de seletor de cores é compativelcom OS X e pode ser usada para mudar as propriedades de cor selecionadas.No seguinte exemplo, a propriedade "Cor de preenchimento" está seleciona na lista de propriedades, por isso a corselecionada na paleta do sistema se aplicará a propriedade "Cor de preenchimento":

- 72 -

Page 73: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Novo Editor de Etiquetas

A versão de 64 bits de 4D Developer Edition inclui um adiantamento do próximo Assistente para etiquetas 4D quesubstituirá ao editor de etiquetas anterior em todas as versões futuras de 4D. Este novo assistente se beneficia de umainterface moderna baseada em ribbon e menus contextuais:

O Assistente para etiquetas 4D respaldará a maior parte das funcionalidades do assistente anterior ao tempo que ofereceránovas funcionalidades.Nota: o desenvolvimento do Assistente para etiquetas de 4D se realizará de uma maneira continua, passo a passo.

Compatibilidade

Formato de arquivo A extensão do arquivo de etiquetas de 4D salva pelo novo assistente é ".4lbp". Lembre que este formato está aberto já queestá escrito internamente en XML.Os arquivos de etiquetas 4D herdados criados com o assistente anterior (extensão ".4lb") são respaldados. O assistentepode carregar, modificar e salvar etiquetas anteriores sem mudar seu formato.Nota: nos antigos arquivos de etiquetas, as imagens são salvas em formato PICT. Já que este formato não é maisrespaldado em 4D (ver mais adiante), o novo editor substitui estas imagens com uma área riscada em vermelho.

Propriedades não respaldadas As seguintes funcionalidades não são respaldadas no novo Assistente para etiquetas:

Funcionalidade Comentário

Menu formato

Utilize o comando String, por exemplo:

String([Emp]Birth;internal date long)

Estilo contorno já não é respaldado por 4DPatrones já não é respaldado em 4DQuickdraw PICT Obsoleto em 4D / Não disponível em 4D Developer Edition de 64 bitsAspecto padronizado em botões não é mais útil

Propriedades desativadas As seguintes funcionalidades estão desativadas no novo Assistente para etiquetas:

Funcionalidade ComentárioMenu emergente de código estándarImpressão em Windows Desativado em 4D Developer Edition de 64 bits (vista prévia)

Novas propriedades

- 73 -

Page 74: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Definindo formulários e métodos disponíveis Uma propriedade adicional no Assistente de Label é a habilidade de limitar formulários e métodos que pode serselecionada no dialogo ao nível do banco de dados. Como padrão, como em versões anteriores, todos os objetosadequados estão disponíveis.Para definir formulários e métodos que podem ser selecionados no design de etiquetas:

1. Criar um arquivo JSON chamado label.json e coloque-o na pasta Resources encontrada na pasta do banco dedados.

2. Nesse arquivo, adicione nomes de métodos de formulários e projetos que queira que estejam disponíveis paraselecionar nos menus de Assistente Label.

Os conteúdos do arquivo label.json devem ser similares a:

[ {"tableId":2,"forms":[],"methods":[myMethod1,myMethod2]}, {"tableId":1,"forms":["Sample Label1","Sample Label 2"],"methods":[]} ]

Pre-carregar arquivos de etiqueta O novo Label Wizard permite que armazene arquivos de etiquetas dentro de sua aplicação, de maneira que os designs deetiqueta podem ser diretamente selecionados e abertos pelo usuário usando o botão Load.Para fazer isso, precisa criar uma pasta chamada Labels dentro da pasta Resource do banco de dados e então copiarseus arquivos de etiqueta nele:

Quando o Label Wizard começar, se esta pasta for detectada e contiver arquivos de etiqueta válidos, um ícone pop-up éadiconada ao botão Load:

Designs de etiqueta podem então ser selecionados com uma simples linha de menu. Ambos os arquivos de legado ".4lbp" e".4lb" são suportados:

Zoom Agora é possível dar zoom no seu design de etiqueta (página "Label") ao arrastar o cursor redimensionar no canto direito dajanela:

Arrastar e soltar Arrastar e soltar é suportada na página "Labels":

Pode soltar arquivos de imagem do desktop na área de design etiqueta.Pode soltar arquivos de etiqueta (apenas arquivos ".4lbp") do desktop na área de designt etiqueta.

ergonomics melhoradas General ergonomics foram melhoradas:

Texto estáticos são inseridos diretamente na etiqueta área de design.Objetos Gráficos são manejados através de menus contextuais.Print preview: a primeira página é imprimida com marcas d´agua delimitando o tamanho da etiqueta

- 74 -

Page 75: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

Novo editor de Relatório Rápido

A versão 64-bit de 4D v15 R2 inclui uma preview do novo editor 4D Quick Report. Veja a interface e descubra aspropriedades atuais do novo editor. Baseado em uma arquitetura moderna, substitui o atual editor legado em todas asversões 4D futuras. Usando uma interface intuitiva baseada em ribbon (ou faixa), pode criar e executar novos relatóriossofisticados, assim como trabalhar com aqueles criados em lançamentos anteriores de 4D:

As principais características deste novo editor Quick Report são:

Compatibilidade:Compatível com arquivos de relatório criados em lançamentos anteriores; pode abrir, modificar e salvarrelatórios anteriores sem mudar seu formato.Suporta todas propriedades de relatório existentes, incluindo comandos de linguagem (exceto propriedades queestão temporariamente desativadas para essa preview, ver ).

Interface livre e organizada:Sem barra de menu: Todas as propriedades estão disponíveis através de uma interface baseada em ribbon, ouusando menus pop-up.Sem "modo Wizard": Usa a interface padrão para criar e editar seu modelo de relatório através de passosnaturais. A página de geração de código 4D não é oferecida.

Principais propriedades

Adiciona uma (formula) coluna/todos os campos através de um menu contextual:

Define linhas totalDefine atributos gráficos para uma célula/linha/coluna através de uma janela contextual:

Propriedades temporariamente desativas

Várias propriedades não estão disponíveis nesta preview 4D Quick Report; elas serão adicionadas progressivamente nosnovos lançamentos:

modelosrelatórios referência cruzadapreviewrelatórios embebidos em formulários (previamente uma área de plug-in)

- 75 -

Page 76: 4D Doc Center : 4D v15 R4 - Upgradedownload.4d.com/Documents/Products_Documentation/LastVersions/Line... · Para os formatos Booleanos de tipo Pop-up, as etiquetas são truncadas

- 76 -