Sumário

# Dados

A página da guia Dados define as propriedades de formulário que se referem ao banco de dados que está vinculado ao formulário.

Define a fonte de dados que serve de base ao formulário ou especifica se os dados podem ser editados pelo usuário. Além das funções de ordenação e filtragem, você encontrará todas as propriedades necessárias para criar um subformulário.

Para acessar este comando...

Abra o menu de contexto do elemento de formulário selecionado e escolha a aba Propriedades do formulário - Dados.

Abra a barra de ferramentas Edição de formulário, clique no ícone Propriedades do formulário - aba Dados.

## Adicionar somente dados

Determina se o formulário permitirá apenas a inclusão de novos dados (Sim) ou se permitirá também outras propriedades (Não).

Se a opção Adicionar somente dados estiver configurada como "Sim", não será possível alterar nem excluir dados.

## Analisar comando SQL

Especifica se a instrução SQL deverá ser analisada pelo LibreOffice. Caso a opção esteja definida como Sim, você pode clicar no botão ... ao lado da caixa de lista Conteúdo. Será aberta uma janela onde poderá criar visualmente uma consulta de banco de dados. Quando fechar essa janela, a instrução SQL para a consulta criada será inserida na caixa de lista Conteúdo.

## Barra de navegação

Especifica se as funções de navegação na barra de formulário inferior poderão ser usadas.

A opção "Formulário Pai" é usada para subformulários. Se você escolher essa opção para um subformulário, poderá navegar usando os registros do formulário principal, caso o cursor esteja no subformulário. Um subformulário está vinculado ao formulário pai através de uma relação 1:1; por isso, a navegação é sempre executada no formulário pai.

## Ciclo

Determina como fazer a navegação por meio da tecla de tabulação. A tecla de tabulação permite avançar no formulário. Se pressionar simultaneamente a tecla Shift, a navegação seguirá a direção oposta. Se chegar ao último (ou ao primeiro) campo e pressionar novamente a tecla de tabulação, isto poderá causar várias consequências. Defina o controle de tecla com as seguintes opções:

Opção | Significado
--- | ---
Padrão | Esta configuração define automaticamente um ciclo que segue um vínculo existente com o banco de dados: se o formulário tiver um vínculo com o banco de dados, a tecla Tab, por padrão, iniciará uma mudança no próximo registro ou no registro anterior, ao sair do último campo (veja Todos os Registros). Se não existir vínculo com o banco de dados, será exibido o próximo formulário/formulário anterior (veja Página Atual).
Todos os Registros | Esta opção se aplica somente a formulários do banco de dados e é usada para a navegação por todos os registros. Se você usar a tecla Tab para sair do último campo de um formulário, o registro atual será alterado.
Registro Ativo | Esta opção se aplica somente a formulários do banco de dados e é usada para a navegação pelo registro atual. Se você usar a tecla Tab para sair do último campo do e um formulário, o registro atual será alterado.
Página Atual | Por padrão em formulários HTML, ao sair do último campo de um formulário, o cursor vai para o primeiro campo do próximo formulário. Consequentemente, esta opção é extremamente importante em formulários HTML.

## Conteúdo

Determina a fonte de dados a ser utilizada para o formulário. O conteúdo pode ser uma tabela ou consulta existente (previamente criada no banco de dados) ou pode ser definido por uma instrução SQL. Antes de inserir um conteúdo, é necessário definir o tipo exato em Tipo de conteúdo.

Se você tiver selecionado "Tabela" ou "Consulta" em Tipo de conteúdo, a caixa listará todas as tabelas e consultas configuradas no banco de dados selecionado.

## Filtro

Entre com as condições necessárias para filtrar os dados no formulário. As especificações do filtro segue as regras SQL sem utilizar a cláusula WHERE. Por exemplo, se desejar exibir todos os registros que comecem com "Mike", digite no campo de dados: Forename = 'Mike'. Você pode também combinar condições: Forename = 'Mike' OR Forename = 'Peter'. Todos os registros que conferem uma das duas condições acima serão exibidos.

A função filtro está disponível no modo de usuário através dos ícones Autofiltro e Filtro padrão na barra de ferramentas Navegação de formulários.

## Fonte de dados

Define a fonte de dados à qual o formulário deve se referir. Se clicar no botão ..., acionará a caixa de diálogo Abrir, para escolher uma fonte de dados.

## Ordenar

Especifica as condições para ordenar os dados no formulário. Esta especificação segue as regras SQL sem usar a cláusula ORDER BY. Por exemplo, para colocar todos os registros de um banco de dados em ordem crescente em um campo, e em ordem decrescente em outro campo, insira Forename ASC, Name DESC (presumindo que Forename e Name sejam os nomes dos campos de dados).

Os ícones apropriados na barra de ferramentas Navegação de formulários podem ser utilizadas no modo de usuário para ordenar: Colocar em ordem crescente, Colocar em ordem decrescente, Ordenar.

## Permitir adições

Determina se é possível adicionar dados.

## Permitir exclusões

Determina se é possível excluir os dados.

## Permitir modificações

Determina se é possível modificar dados.

## Tipo de conteúdo

Define se a fonte de dados será uma tabela ou consulta existente no banco de dados ou se o formulário será gerado com base em uma instrução SQL.

Se você escolher "Tabela" ou "Consulta", o formulário fará referência à tabela ou consulta que você especificar em Conteúdo. Caso deseje criar uma nova consulta ou um subformulário, escolha a opção "SQL". Você poderá então inserir a instrução para a consulta SQL ou para o subformulário diretamente na caixa Conteúdo da lista nas propriedades de controle da página da guia Dados.

## Vincular campos escravos

Se criar um subformulário, insira a variável onde seja possível armazenar os valores do campo do formulário pai. Se o subformulário for baseado em uma consulta, insira a variável que definiu na consulta. Se criar um formulário usando uma instrução SQL inserida no campo Fonte de dados, insira a mesma variável que usou na instrução. Você pode escolher qualquer nome de variável. Para inserir múltiplos valores, pressione Shift + Enter.

Se, por exemplo, você tiver especificado o campo do banco de dados ID_Cliente como um campo pai em Vincular campos mestre, poderá definir, em Vincular campos escravos, o nome da variável na qual serão armazenados os valores do campo do banco de dados Customer_ID (ID_Cliente). Se você especificar uma instrução SQL na caixa Fonte de dados usando essa variável, os valores relevantes serão exibidos no subformulário.

## Vincular campos mestre

Se criar um subformulário, insira o campo de dados do formulário pai responsável pela sincronização entre o pai e o subformulário. Para inserir diversos valores, pressione Shift + Enter após cada linha de entrada.

O subformulário é baseado em uma consulta SQL; mais especificamente, em uma consulta com parâmetros. Caso haja um nome de campo na caixa Vincular campos mestre, os dados contidos naquele campo do formulário serão lidos para uma variável que você precisará inserir em Vincular campos escravo. Em uma instrução SQL apropriada, essa variável será comparada aos dados da tabela aos quais o subformulário se refere. Como alternativa, você pode inserir o nome de coluna na caixa Vincular campos mestre.

Considere o exemplo a seguir:

A tabela do banco de dados que serve de base ao formulário é, por exemplo, um banco de dados de clientes ("Customer"), onde cada cliente recebeu um número exclusivo em um campo de dados chamado "Cust_ID" ("ID_cliente"). Os pedidos de um cliente são mantidos em outra tabela do banco de dados. Para ver os pedidos de cada cliente após inseri-los no formulário, você deve criar um subformulário. Em Vincular campos mestre, insira o campo de dados do banco de dados de clientes que identifica claramente o cliente, ou seja, Cust_ID (ID_cliente). Em Vincular campos escravos, insira o nome da variável que deverá aceitar os dados do campo Cust_ID, por exemplo, x.

O subformulário deve mostrar os dados apropriados da tabela de pedidos ("Orders") para cada ID de cliente (Customer_ID -> x). Isto só será possível se cada pedido for atribuído a um cliente único na tabela de pedidos. Uma alternativa seria utilizar outro campo chamado (Customer_ID; entretanto, para que este campo não seja confundido com o do formulário principal, ele é chamado de Customer_Number (Número_Cliente).

Agora, compare os campos Customer_Number (Número_Cliente) da tabela "Orders" ("Pedidos") e Customer_ID (ID_Cliente) da tabela "Customers" ("Clientes"), o que pode ser feito, por exemplo, usando-se a variável x com a seguinte instrução SQL:

SELECT * FROM Orders WHERE Customer_Number =: x (se quiser que o subformulário exiba todos os dados da tabela de pedidos)

ou:

SELECT Item FROM Orders WHERE Customer_Number =: x (se quiser que o subformulário da tabela de pedidos exiba somente os dados presentes no campo "Item")

Você pode inserir a instrução SQL no campo Fonte de dados ou então criar uma consulta de parâmetro apropriada, a qual pode ser usada na criação do subformulário.

## O que é um subformulário?

Formulários são criados com base em uma tabela ou consulta do banco de dados. Você pode usar formulários para inserir e editar os dados, bem como exibi-los de forma visualmente agradável.

Caso precise de um formulário que possa fazer referência aos dados de uma tabela ou consulta e exibir dados de outra tabela, será necessário criar um subformulário. Por exemplo, tal subformulário pode ser uma caixa de texto que exiba os dados de uma tabela de outro banco de dados.

Um subformulário é um componente adicional do formulário principal. O formulário principal pode ser denominado formulário "pai" ou "mestre". Os subformulários são necessários quando se deseja acessar mais de uma tabela de um formulário. Cada tabela adicional requer seu próprio subformulário.

Após criar o formulário, ele poderá ser alterado para um subformulário. Para isso, entre no modo de edição e abra o Navegador de formulários. Nele, arraste o formulário que deseja transformar em subformulário até qualquer outro formulário, que se tornará um formulário mestre.

O usuário do documento não perceberá que o formulário possui subformulários. Ele só verá um documento no qual os dados são inseridos ou onde os dados existentes são exibidos.

Especifique o campo mestre vinculado nos campos de dados do formulário mestre. No subformulário, o campo mestre vinculado pode ser definido como um campo em que será comparado ao conteúdo do campo mestre vinculado.

Quando o usuário navega pelos dados, o formulário sempre exibe o registro de dados atual. Se houver subformulários definidos, o conteúdo deles será exibido após um pequeno intervalo de 200 ms. Esse intervalo permite que você percorra rapidamente os registros de dados do formulário mestre. Caso você chegue até o próximo registro mestre de dados dentro do limite de tempo, os dados do subformulário não precisarão ser recuperados e exibidos.