Sumário

# Definição de condições

As condições são expressões lógicas que você pode usar para controlar a exibição de campos e seções no documento. Apesar de os exemplos a seguir se aplicarem a campos, também se aplicam a seções.

Você pode definir condições para os seguintes tipos de campos:

1. Texto condicional: exibe 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 registro e próximo registro: controla o acesso aos registros do banco de dados.

A maneira mais simples de definir uma condição é digitar a expressão lógica diretamente na caixa Condição utilizando os valores a seguir:

VERDADEIRO | Sempre satisfaz à condição. Uma alternativa é digitar qualquer valor diferente de 0 como texto condicional.
FALSO | Não satisfaz à condição. Também é possível digitar o valor 0.

Se você deixar a caixa Condição vazia, a condição será interpretada como não satisfeita.

Quando você definir uma condição, use os mesmos elementos para definir uma fórmula, a saber, operadores de comparação, funções matemáticas e estatísticas, formatos de números, variáveis e constantes.

Ao definir uma condição, é possível utilizar os seguintes tipos de variáveis:

1. Variáveis do LibreOfficeDev predefinidas que usam estatísticas sobre as propriedades do documento

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

3. Variáveis baseadas em dados do usuário

4. Variáveis baseadas no conteúdo dos campos do banco 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ções.

## Condições e Variáveis

Os exemplos a seguir utilizam uma variável chamada "x":

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

Para utilizar operadores de comparação com cadeias de caracteres, os operandos devem estar delimitados por aspas duplas:

x == "ABC" ou x EQ "ABC" | Verifica se a variável "x" contém (verdadeira) a cadeia de caracteres "ABC" ou não (falsa).
x == "" ou x EQ "" ou !x ou NOT x | Verifica se a variável "x" contém uma cadeia de caracteres vazia.

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

## Dados do Usuário

Pode-se incluir os dados do usuário ao definir condições. Para alterar os seus dados de usuário, selecione LibreOfficeDev → PreferênciasFerramentas → Opções… → LibreOfficeDev → Dados do usuário. Os dados do usuário devem ser inseridos como cadeias de caracteres. Pode-se consultar os dados do usuário com "==" (EQ), "!=" (NEQ), or "!"(NOT).

A tabela a seguir apresenta as variáveis dos dados do usuário e seus significados:

Variável | Significado
--- | ---
user_firstname | Nome
user_lastname | Sobrenome
user_initials | Iniciais
user_company | Organization
user_street | Rua
user_country | País
user_zipcode | CEP
user_city | Cidade
user_title | Título
user_position | Posição
user_tel_work | Telefone comercial
user_tel_home | Telefone residencial
user_fax | Número de fax
user_email | E-mail
user_state | Estado (apenas em algumas versões do LibreOfficeDev)

Por exemplo, para ocultar um parágrafo, texto ou uma seção de um usuário com as iniciais "LM", insira a seguinte condição: user_initials=="LM".

## Condições e Campos do Banco de Dados

É possível definir condições para o acesso de bancos de dados ou de campos de bancos de dados. Por exemplo, você pode verificar o conteúdo de um campo de banco de dados a partir de uma condição ou usar campos de bancos de dados em expressões lógicas. A tabela a seguir lista mais alguns exemplos de utilização de bancos de dados em condições:

Exemplo | Significado
--- | ---
Banco de Dados.Tabela.Empresa Banco de Dados.Tabela.Empresa NEQ "" Banco de Dados.Tabela.Empresa != "" | A condição será verdadeira se o campo COMPANY não estiver vazio. (No primeiro exemplo, não há necessidade de operadores.)
!Database.Table.Company NOT Database.Table.Company Database.Table.Company EQ "" Database.Table.Company =="" | Retorna VERDADEIRO se o campo COMPANY for vazio.
Database.Table.Company !="Sun" Database.Table.Company NEQ "Sun" | Retorna VERDADEIRO se a entrada atual no campo COMPANY não for "Sun". (O ponto de exclamação representa um NÃO lógico.)
Database.Table.Firstname AND Database.Table.Name | Retorna VERDADEIRO se o registro contém o nome e o sobrenome.

Note que existe uma diferença entre o NÃO lógico "!" (NOT) e o operador de comparação diferente de "!=" (NEQ).

Ao fazer referência a um campo de banco de dados numa condição, use a forma Databasename.Tablename.Fieldname. Se um dos nomes contém um caractere que seja um operador, como um sinal de menos (-), coloque o nome entre colchetes; por exemplo, Databasename.[Table-name].Fieldname. Nunca utilize espaços dentro de nomes de campo.

### Exemplo: Ocultar um Campo de Banco de Dados Vazio

Talvez você queira criar uma condição que oculte um campo vazio, por exemplo, se o campo COMPANY estiver vazio em alguns dos registros de dados.

Selecione a entrada da lista Parágrafo oculto e digite a condição a seguir: Addressbook.Addresses.Company EQ ""

ou digite a condição a seguir

NOT Addressbook.Addresses.Company

Se o campo do banco de dados EMPRESA estiver vazio, a condição será verdadeira e o parágrafo será oculto.

Para exibir parágrafos ocultos na tela, escolha LibreOfficeDev - PreferênciasFerramentas - Opções - LibreOfficeDev Writer - Exibir, e desmarque a caixa Parágrafos ocultos check box.

## Exemplos de Condições em Campos

Os exemplos a seguir utilizam o campo Texto condicional, embora possam ser aplicados a quaisquer campos que, por sua vez, podem ser vinculados a uma condição. A sintaxe utilizada para condições serve também para os campos Texto oculto, Parágrafo oculto, Qualquer registro e Próximo registro.

## Para exibir texto condicional com base no número de páginas:

1. Selecione Inserir - Campo - Outros campos e, em seguida, clique na guia Funções.

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

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

4. Na caixa Então, digite "Há somente uma página".

5. Na caixa Ou, digite "Há várias páginas".

6. Clique em Inserir e, em seguida, clique em Fechar.

## Para exibir texto condicional com base numa variável definida pelo usuário

1. Selecione Inserir - Campo - Outros campos e, em seguida, clique na guia Variáveis.

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

3. Na caixa Nome, digite "Lucro".

4. Na caixa Valor, digite "5000".

5. Clique em Inserir.

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

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

8. Na caixa Então, digite "Objetivo não é satisfeito".

9. Na caixa Ou , digite "Objetivo é satisfeito".

10. Clique em Inserir.

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

## Para exibir texto condicional com base no conteúdo de um campo do banco de dados:

Na primeira parte desse exemplo é inserido um espaço entre os campos "Nome" e "Sobrenome" de um documento e na segunda parte é inserido um texto baseado no conteúdo de um campo. Esse exemplo exige que uma fonte de dados de endereço esteja registrada com o LibreOfficeDev.

1. Selecione Inserir - Campo - Outros campos e, em seguida, clique na guia Banco de dados.

2. Na lista Tipo, clique em "Campos de mala direta".

3. Na caixa Seleção do banco de dados, clique duas vezes num catálogo de endereços, clique em "Nome" e, em seguida, clique em Inserir. Faça o mesmo para "Sobrenome".

4. No documento, posicione o cursor entre os dois campos, pressione a tecla de espaço e, em seguida, retorne à caixa de diálogo Campos :

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

6. Na caixaCondição , digite: "Addressbook.addresses.firstname"..Nome".

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

Agora, é possível utilizar uma condição para inserir texto com base no conteúdo do campo Nome.

1. Na caixa de diálogo Campos , clique na guia Funções .

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

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

4. Na caixa Então, digite "Caro".

5. Na caixa Senão, digite "Bom dia".

6. Clique em Inserir.

♥ Doe para nosso projeto! ♥