4D Write Pro : Diga Bem-vindo às Caixas de Texto Flutuantes!

4D Write Pro é um produto essencial para a criação de documentos comerciais. É por isso que em cada lançamento, damos-lhe mais funcionalidades para melhorar o seu trabalho, e desta vez, 4D v19 R8 traz caixas de texto flutuantes para 4D Write Pro.

Assim, se for obrigado a utilizar caixas de texto, digamos, para criar cartas da empresa em conformidade com a identidade da empresa, é livre de começar de imediato.

Caixas de texto 4D Write Pro

As caixas de texto podem ser familiares a alguns, mas pode ser útil recordar o que são!

Uma caixa de texto é uma área de texto flutuante de qualquer tamanho contendo texto, imagens, ou tabelas! Podem ser utilizadas de formas muito diferentes, por exemplo, para posicionar um endereço num local específico no papel, de modo a que apareça claramente na janela do envelope.

 

 

 

Como criar uma caixa de texto?

Como habitualmente, várias soluções são possíveis; a mais fácil é utilizar a interface. Novos botões estão disponíveis para isso na barra de ferramentas e na barra lateral.

blank

blank

Uma vez criadas, as caixas de texto podem ser movidas clicando nas suas bordas e redimensionadas com as alças.

blank

Atributos e conteúdo das caixas de texto

As caixas de texto têm os seus próprios atributos. Estes atributos podem ser modificados por programação e simplesmente utilizando a interface.

Pode-se escolher o tipo de borda, a cor, a espessura e a cor de fundo de cada caixa de texto.

Quanto ao conteúdo, pode utilizar as caixas de texto para inserir texto, imagens e tabelas, todas elas podem, naturalmente, conter fórmulas.

blank

Novos comandos e acções padrão

Foram criados novos comandos e ações padrão para criar e apagar caixas de texto por programação.

Vamos começar com os comandos!

Comandos

Dois novos comandos foram criados para inserir e apagar caixas de texto…

  • WP nova caixa de texto
  • WP APAGAR CAIXA DE TEXTO

 

… e muitos (muitos) comandos existentes foram melhorados para tomar estes novos objectos como parâmetros!

Aqui estão alguns deles:

  • ATRIBUTOS DO CONJUNTO WP
  • WP Obter elementos
  • WP Encontrar tudo
  • WP Obter posição
  • WP Obter fórmulas
  • WP Obter texto

Amostra de código

Neste exemplo, queremos criar uma caixa de texto que tenha as seguintes características:

O seu conteúdo deve medir 10 cm x 3,5 cm, ter margens interiores de 0,5 cm, e ser posicionado a 8 cm e 4,5 cm do canto superior esquerdo da página. Finalmente, deve ser marcado com margens pontilhadas a azul e ter cantos arredondados.

blank

 

Para fazer isso, aqui está o código a escrever.

// #1 create the the text box
$textBox:=WP New text box(WParea; 1)

// #2 define atributos de caixa de texto
WP SET ATTRIBUTES($textBox; wk id; "AddressArea")
// definir ancoramento e posição
WP SET ATTRIBUTES($textBox; wk anchor origin; wk paper box)
WP SET ATTRIBUTES($textBox; wk anchor horizontal align; wk left; wk vertical align; wk top)
WP SET ATTRIBUTES($textBox; wk anchor horizontal offset; "8cm"; wk anchor vertical offset; "4.5cm")

// define tamanho e estilo
WP SET ATTRIBUTES($textBox; wk padding; "0.5cm")  // inserir margens
WP SET ATTRIBUTES($textBox; wk width; "10cm"; wk height; "3.5cm")
WP SET ATTRIBUTES($textBox; wk border style; wk dashed; wk border color; "Blue"; wk border width; "1pt"; wk border radius; "10pt")
WP SET ATTRIBUTES($textBox; wk vertical align; wk center)

// #3: inserir fórmulas dentro da caixa de texto 
WP INSERT FORMULA($textBox; Formula(This.data.fullName); wk append)
WP INSERT BREAK($textBox; wk paragraph break; wk append)
WP INSERT FORMULA($textBox; Formula(This.data.fullAddress); wk append)

// #4: Estabelecer estilo do conteúdo da caixa de texto
WP SET ATTRIBUTES($textBox; wk font; "Arial"; wk font bold; wk true; wk font size; "18pt")

Não lhe apetece programar hoje? Não há problema; as ações padrão estão lá para você!

Ações padrão (associadas a menus ou botões)

A “insertTextBox” é a nova ação padrão para criar caixas de texto, mas também pode ser usado para definir parâmetros como margens, bordas, preenchimento, fundo, etc.

Aqui estão alguns exemplos:

  • textBox/marginLeft
  • textBox/paddingTop
  • textBox/borders
  • textBox/remove

 

Ou pode criar o seu próprio menu…

$menu:=Create menu
APPEND MENU ITEM($menu; ak standard action title)
SET MENU ITEM PROPERTY($menu; -1; Associated standard action name; "textBox/borderStyle")

APPEND MENU ITEM($menu; ak standard action title)
SET MENU ITEM PROPERTY($menu; -1; Associated standard action name; "textBox/borderColor")

APPEND MENU ITEM($menu; ak standard action title)
SET MENU ITEM PROPERTY($menu; -1; Associated standard action name; "textBox/borderWidth")

APPEND MENU ITEM($menu; ak standard action title)
SET MENU ITEM PROPERTY($menu; -1; Associated standard action name; "textBox/backgroundColor")

$value:=Dynamic pop up menu($menu)
// não precisa marcar o $value, todos os itens são baseados nas ações padrão!
// não esqueça de usar o release menu para evitar leaks de memória!
RELEASE MENU($menu)

E aqui está o menu criado:

blank

EXPORTAR PARA PDF, SVG!

Naturalmente, a maioria dos formatos de exportação considera estas caixas de texto. No caso da exportação para HTML, basta lembrar que a ancoragem deve ser baseada no modo Embedded, não no modo Page!

Conclusão

Esta nova característica é um avanço significativo em 4D Write Pro. Permite a criação de documentos mais elaborados, mantendo-se ao mesmo tempo muito fácil de utilizar.

Roland Lannuzel
- Proprietário do produto & Especialista 4D - Depois de estudar electrónica, a Roland entrou nas TI industriais como desenvolvedor e consultor, construindo soluções para clientes com uma variedade de bases de dados e tecnologias. No final dos anos 80, apaixonou-se pela 4D e utilizou-a para escrever aplicações comerciais que incluem sistemas de contabilidade, facturação e correio electrónico. Juntando-se à empresa em 1997, as valiosas contribuições de Roland incluem a concepção de especificações, ferramentas de teste, demonstrações, bem como formação e palestras para a comunidade 4D em muitas conferências. Ele continua a moldar activamente o futuro da 4D, definindo novas características e ferramentas de desenvolvimento de bases de dados.