Conteúdo

# Definir condições

As condições são expressões lógicas que podem ser utilizadas para controlar a apresentação de campos e secções no seu documento. Apesar de os seguintes exemplos se aplicarem a campos, também se aplicam a secções.

É possível definir condições para os seguintes tipos de campos:

1. Texto condicional: apresenta o texto A se a condição for verdadeira ou o texto B se a condição for falsa.

2. Texto oculto: oculta o conteúdo do campo se a condição for verdadeira.

3. Parágrafo oculto: oculta o parágrafo se a condição for verdadeira.

4. Qualquer registo e próximo registo: controla o acesso aos registos da base de dados.

A forma mais simples de definir uma condição é escrever a expressão lógica diretamente numa caixa Condição utilizando os seguintes valores:

VERDADEIRO | A condição verifica-se sempre. É também possível introduzir qualquer valor diferente de 0 como texto condicional.
FALSO | A condição não se verifica. Também pode introduzir o valor 0.

Se deixar a caixa Condição vazia, a condição é interpretada como não tendo sido verificada.

Ao definir uma condição, utilize os mesmos elementos para definir uma fórmula, nomeadamente operadores comparativos, funções matemáticas e de estatística, formatos numéricos, variáveis e constantes.

É possível utilizar os seguintes tipos de variáveis quando se define uma condição:

1. Variáveis pré-definidas do LibreOffice , que utilizam estatísticas nas propriedades do documento

2. Variáveis personalizadas, criadas com o campo "Definir variável"

3. Variáveis baseadas nos dados do utilizador

4. Variáveis baseadas no conteúdo do campos de bases de dados

Não é possível utilizar variáveis internas, tais como números de páginas e de capítulos, na expressão de condição.

## Condições e variáveis

Os seguintes exemplos utilizam uma variável denominada "x":

x == 1 ou x EQ 1 | A condição é verdadeira se "x" for igual a 1.
x != 1 ou x NEQ 1 | A condição é verdadeira se "x" for diferente de 1.
sinx == 0 | A condição é verdadeira se "x" for múltiplo de pi.

Para utilizar operadores comparativos com cadeias, os operandos terão de estar entre aspas:

x == "ABC" ou x EQ "ABC" | Verifica se a variável "x" contém (true) ou não (false) a cadeia "ABC".
x == "" ou x EQ "" ou !x ou NÃO x | Verifica se a variável "x" contém uma cadeia vazia.

O operador comparativo "igual" terá de ser representado por dois sinais de igual (==) numa condição. Por exemplo, se definir uma variável "x" com o valor de 1, é possível introduzir a condição como x==1.

## Dados do utilizador

Pode incluir os dados de utilizador ao definir as condições. Para alterar os dados de utilizador, escolha LibreOffice - Preferências Ferramentas - Opções - LibreOffice - Dados de utilizador. Os dados de utilizador têm que ser introduzidos na forma de cadeias de texto. Pode consultar os dados de utilizador com "==" (EQ), "!=" (NEQ), ou "!"(NOT).

A seguinte tabela apresenta uma lista de variáveis de dados do utilizador e dos seus significados:

Variável | Significado
--- | ---
user_firstname | Nome
user_lastname | Apelido
user_initials | Iniciais
user_company | Empresa
user_street | Rua
user_country | País
user_zipcode | Código Postal
user_city | Localidade
user_title | Título
user_position | Posição
user_tel_work | Número de telefone da empresa
user_tel_home | Número de telefone pessoal
user_fax | Número de fax
user_email | Endereço de e-mail
user_state | Estado (apenas em algumas versões do LibreOffice )

Por exemplo, para ocultar um parágrafo, um texto ou uma secção de um utilizador com umas iniciais específicas tais como "LM", introduza a condição: user_initials=="LM".

## Condições e campos de bases de dados

Pode definir condições para o acesso a bases de dados ou campos de bases de dados. Por exemplo, pode verificar o conteúdo de um campo de base de dados, a partir de uma condição ou utilizar os campos de bases de dados em expressões lógicas. A tabela seguinte enumera mais alguns exemplos em condições:

Exemplo | Significado
--- | ---
Database.Table.Company Database.Table.Company NEQ "" Database.Table.Company != "" | A condição é verdadeira se o campo EMPRESA não estiver vazio. (No primeiro exemplo, não é necessário um operador.)
!Database.Table.Company NOT Database.Table.Company Database.Table.Company EQ "" Database.Table.Company =="" | Devolve VERDADEIRO se o campo EMPRESA estiver vazio.
Database.Table.Company !="Sun" Database.Table.Company NEQ "Sun" | Devolve VERDADEIRO, se a entrada atual no campo EMPRESA não for "Sun". (O sinal de exclamação representa um NÃO lógico.)
Database.Table.Firstname AND Database.Table.Name | Devolve VERDADEIRO se o registo contiver o nome e o apelido.

Tenha em atenção a diferença entre o NÃO booleano "!" e o operador comparativo diferente "!=" (NEQ).

Quando faz referência a um campo de uma base de dados numa condição, utilize a forma NomeBasededados.NomeTabela.NomeCampo. Se um dos nomes contiver um carácter que está num operador, como, por exemplo, um sinal de subtração (-), inclua o nome em parênteses retos, por exemplo, NomeBasededados.[Nome-Tabela].NomeCampo. Nunca use espaços dentro de nomes de campos.

### Exemplo: ocultar um campo vazio da base de dados

Poderá criar uma condição que oculta um campo vazio, por exemplo se o campo EMPRESA estiver vazio para alguns dos registos de dados.

Selecione a entrada de lista Parágrafo oculto e escreva a seguinte condição: Addressbook.Addresses.Company EQ ""

ou escreva o seguinte

NOT Addressbook.Addresses.Company

Se o campo de bases de dados EMPRESA estiver vazio, a condição é verdadeira e o parágrafo é ocultado.

To display hidden paragraphs on the screen, choose LibreOffice - Preferences Tools - Options - LibreOffice Writer - View, and clear the Hidden paragraphs check box.

## Exemplos de condições em campos

Os exemplos que se seguem utilizam o campo de texto condicional, embora possam ser aplicados a todos os campos associados a uma condição. A sintaxe utilizada para condições é também utilizada para os campos de Texto oculto, Parágrafo oculto, Qualquer registo ou Registo seguinte.

## Para mostrar texto condicional baseado no número de páginas:

1. Escolha Inserir - Campo - Mais campos e clique no separador Funções.

2. Na lista Tipo, clique em "Texto condicional".

3. Na caixa Condição , escreva "page == 1".

4. Na caixa Então, escreva "Existe apenas uma página".

5. Na caixa Ou, escreva "Existem várias páginas".

6. Clique em Inserir, e clique em Fechar.

## Para mostrar texto condicional baseado numa Variável definida pelo utilizador

1. Escolha Inserir - Campo - Mais campos e clique no separador Variáveis.

2. Na lista Tipo, clique em "Definir variável".

3. Na caixa Nome, escreva "Lucro".

4. Na caixa Valor, escreva "5000".

5. Clique em Inserir.

6. Clique no separador Funções, e clique em "Texto condicional" na lista Tipo.

7. Na caixa Condição, escreva "Lucro < 5000".

8. Na caixa Então, escreva "Objetivo não atingido".

9. Na caixa Ou, escreva "Objetivo atingido".

10. Clique em Inserir.

Para editar o conteúdo da variável "Lucro", clique duas vezes no campo da variável.

## Para mostrar texto condicional com base no conteúdo de um campo da base de dados:

A primeira parte deste exemplo insere um espaço entre os campos "Nome" e "Apelido" num documento e a segunda parte insere texto com base no conteúdo de um campo. Este exemplo requer uma origem de dados de endereços registada no LibreOffice.

1. Escolha Inserir - Campo - Mais campos e clique no separador Base de dados.

2. Na lista Tipo, clique em "Campos de impressão em série".

3. Na caixa Seleção de base de dados, clique duas vezes num livro de endereços, clique em Nome e, em seguida, em Inserir. Repita a operação para "Apelido".

4. No documento, coloque o cursor entre os dois campos, prima a tecla de espaços, e regresse à caixa de diálogo Campos :

5. Clique no separador Funções e, em seguida, clique em "Texto condicional", na lista Tipo.

6. Na caixa Condição , escreva: "Addressbook.addresses.firstname".

7. Na caixa Então , introduza um espaço e deixe a caixaOu em branco.

Pode utilizar uma condição para inserir texto baseado no conteúdo do campo Primeiro nome.

1. Na caixa de diálogo Campos , clique no separador Funções.

2. Na caixa Tipo , clique em "Texto condicional".

3. Na caixa Condição escreva: Addressbook.addresses.firstname == "Miguel"

4. Na caixa Então escreva "Estimado(a)".

5. Na caixa Senão, escreva "Olá".

6. Clique em Inserir.