Conteúdo
Índice 🔎︎

# Dados

O separador Dados define as propriedades de formulário referentes à base de dados associada ao formulário.

Define a origem de dados em que o formulário se baseia ou especifica se os dados podem ser editados pelo utilizador. Para além das funções de ordenação e de filtro, poderá encontrar igualmente todas as propriedades necessárias à criação de um sub-formulário.

Para aceder a este comando...

Abra o menu de contexto de um elemento de formulário selecionado e escolha Formulário - Dados.

Abra a barra de ferramentas Controlos de formulário ou a barra de ferramentas Design de formulário e clique no ícone Controlo, separador Dados

## Adicionar apenas dados

Determines if the form only allows the addition of new data (Yes) or if it allows other properties as well (No).

Se Adicionar apenas dados for definido para "Sim", não é possível modificar ou eliminar dados.

## Analisar comando SQL

Specifies whether the SQL statement is to be analyzed by LibreOffice. If set to Yes, you can click the ... button next to the Content list box. This will open a window where you can graphically create a database query. When you close that window, the SQL statement for the created query will be inserted in the Content list box.

## Barra de navegação

Specifies whether the navigation functions in the lower form bar can be used.

A opção "Formulário principal" é utilizada para sub-formulários. Se escolher esta opção para um sub-formulário, pode navegar utilizando os registos do formulário principal, caso o cursor se encontre no sub-formulário. Um sub-formulário é associado ao formulário principal através de uma relação 1:1, pelo que a navegação é sempre executada no formulário principal.

## Ciclo

Determines how the navigation should be done using the tab key. Using the tab key, you can move forward in the form. If you simultaneously press the Shift key, the navigation will follow the opposite direction. If you reach the last (or the first) field and press the tab key again, it can have various effects. Define the key control with the following options:

Opção | Significado
Padrão | Esta definição define automaticamente um ciclo, que sucede a uma ligação existente à base de dados: se o formulário contiver uma ligação à base de dados, a tecla Tab inicia, por defeito, uma modificação ao registo anterior ou seguinte ao sair do último campo (ver Todos os registos). Se não existir qualquer ligação à base de dados, é apresentado o formulário seguinte/anterior (ver Página atual).
Todos os registos | Esta opção só se aplica a formulários de base de dados e é utilizada para navegar através de todos os registos. Se usar a tecla Tab para sair do último campo de um formulário, o registo atual é modificado.
Registo ativo | Esta opção só se aplica a formulários de base de dados e é utilizada para navegar no registo atual. Se utilizar a tecla Tab para sair do último campo de um formulário, o registo atual é modificado.
Página atual | Ao sair do último campo de um formulário, o cursor avança para o primeiro campo do formulário seguinte. Este é o padrão para formulários HTML; por este motivo, esta opção é especialmente relevante para formulários HTML.

## Conteúdo

Determines the content to be used for the form. The content can be an existing table or a query (previously created in the database), or it can be defined by an SQL-statement. Before you enter a content you have to define the exact type in Content type.

Se tiver selecionado "Tabela" ou "Consulta" em Tipo de conteúdo, a caixa apresenta todas as tabelas e consultas definidas na base de dados selecionada.

## Filtrar

Enter the required conditions for filtering the data in the form. The filter specifications follow SQL rules without using the WHERE clause. For example, if you want to display all records with the "Mike" forename, type into the data field: Forename = 'Mike'. You can also combine conditions: Forename = 'Mike' OR Forename = 'Peter'. All records matching either of these two conditions will be displayed.

A função de filtro está disponível em modo de utilizador através dos ícones Filtro automático e Filtro padrão existentes na barra Navegação em formulários.

## Ligar campos principais

If you create a subform, enter the data field of the parent form responsible for the synchronization between parent and subform. To enter multiple values, press Shift + Enter after each input line.

O sub-formulário é baseado numa consulta de SQL; mais especificamente, numa Consulta de parâmetros. Se for introduzido o nome de um campo na caixa Ligar campos principais, os dados incluídos nesse campo do formulário principal são lidos para uma variável, que é necessário introduzir em Ligar campos subordinados. Numa instrução SQL apropriada, esta variável é comparada com os dados de tabela a que o sub-formulário faz referência. Em alternativa, é possível introduzir o nome da coluna na caixa Ligar campos principais.

Considere o seguinte exemplo:

A tabela de base de dados em que o formulário se baseia corresponde, por exemplo, a uma base de dados de clientes ("Customer"), na qual foi atribuído a cada cliente um número exclusivo num campo de dados com o nome "Cust_ID". Os pedidos de um cliente são mantidos noutra tabela da base de dados. Neste momento, pretende verificar os pedidos de cada cliente após a respetiva introdução no formulário. Para tal, é necessário criar um sub-formulário. Em Ligar campos subordinados, introduza o campo de dados da base de dados de clientes que identifica o cliente de forma evidente, ou seja, Cust_ID. Em Ligar campos subordinados, introduza o nome de uma variável que deve aceitar os dados do campo Cust_ID, por exemplo, x.

O sub-formulário deve mostrar os dados apropriados da tabela de pedidos ("Orders") para cada ID de cliente (Customer_ID -> x). Este procedimento só é possível se cada pedido for exclusivamente atribuído a um cliente na tabela de pedidos. Em alternativa, é possível utilizar outro campo com o nome Customer_ID; no entanto, para garantir que este campo não é confundido com o mesmo campo do formulário principal, o campo tem o nome Customer_Number.

Compare o Customer_Number na tabela "Orders" com o Customer_ID da tabela "Customers". Para tal, é possível utilizar, por exemplo, a variável x com a seguinte instrução SQL:

SELECT * FROM Orders WHERE Customer_Number =: x (se pretender que o sub-formulário apresente todos os dados da tabela de pedidos)

ou:

SELECT Item FROM Orders WHERE Customer_Number =: x (se pretender que o sub-formulário da tabela de pedidos apresente apenas os dados incluídos no campo "Item")

A instrução SQL pode ser introduzida no campo Origem de dados, ou é possível criar uma consulta parametrizada apropriada, que pode ser utilizada para criar o sub-formulário.

## Ligar campos subordinados

If you create a subform, enter the variable where possible values from the parent form field can be stored. If a subform is based on a query, enter the variable that you defined in the query. If you create a form using an SQL statement entered in the Data source field, enter the variable you used in the statement. You can choose any variable name. If you want to enter multiple values, press Shift + Enter.

Se especificou, por exemplo, o campo Customer_ID da base de dados como campo ascendente em Ligar campos principais, é possível definir, em Ligar campos subordinados, o nome da variável na qual os valores do campo Customer_ID da base de dados devem ser armazenados. Se especificar, agora, uma instrução SQL na caixa Origem de dados utilizando esta variável, os valores relevantes são apresentados no sub-formulário.

## Ordenar

Specifies the conditions to sort the data in the form. The specification of the sorting conditions follows SQL rules without the use of the ORDER BY clause. For example, if you want all records of a database to be sorted in one field in an ascending order and in another field in a descending order, enter Forename ASC, Name DESC (presuming Forename and Name are the names of the data fields).

Pode utilizar os ícones apropriados da barra Navegação em formulários, em Modo de utilizador para ordenar: Ordem ascendente, Ordem descendente, Ordenar.

## Origem de dados

Defines the data source to which the form should refer. If you click the ... button, you call the Open dialog, where you can choose a data source.

## Permitir adições

Determines if data can be added.

## Permitir eliminações

Determines if the data can be deleted.

## Permitir modificações

Determines if the data can be modified.

## Tipo de conteúdo

Define se a origem de dados deve ser constituída por uma base de dados ou uma consulta existente, ou se o formulário deve ser gerado com base numa instrução SQL.

Se escolher "Tabela" ou "Consulta", o formulário fará referência à tabela ou consulta que especificar em Conteúdo. Se pretender criar uma nova consulta ou um sub-formulário, tem que escolher a opção "SQL". Em seguida, pode introduzir a instrução para a consulta de SQL ou para o sub-formulário no separador Dados, na caixa Conteúdo de lista das propriedades de controlo.

## O que é um sub-formulário?

Os formulários são criados com base numa tabela de base de dados ou numa consulta de base de dados e mostram os dados de uma forma visualmente atrativa e podem ser utilizados para introduzir ou editar dados.

Se necessitar de um formulário que possa fazer referência aos dados de uma tabela ou consulta e, adicionalmente, mostrar dados de outra tabela, deve criar um sub-formulário. Por exemplo, este sub-formulário pode consistir numa caixa de texto que mostre os dados de outra tabela de base de dados.

Um sub-formulário é um componente adicional do formulário principal. O formulário principal pode ser designado por "formulário ascendente" ou "principal". Os sub-formulários são necessários a partir do momento em que pretenda aceder a mais do que uma tabela de um formulário. Cada tabela adicional requer o seu próprio sub-formulário.

Após a criação do formulário, este pode ser alterado para um sub-formulário. Para tal, ative o modo de design e abra o navegador de formulários. No navegador de formulários, arraste um formulário (que irá tornar-se num sub-formulário) para qualquer outro formulário (que irá tornar-se no formulário principal).

O utilizador do documento não conseguirá visualizar que o formulário tem sub-formulários. O utilizador visualiza apenas um documento no qual são introduzidos ou exibidos dados.

Especifique o campo principal de ligações a partir dos campos principais do modelo global. No sub-formulário, a ligação de campos subordinados pode ser definida como um campo, ao qual será feita a correspondência com o conteúdo da ligação de campos principais.

Quando o utilizador navega através dos dados, o formulário mostra sempre o registo de dados atuais. Se existem sub-formulários definidos, o seu conteúdo é exibido após um espaço de tempo de aproximadamente 200 ms. Este espaço de tempo permite a pesquisa rápida através dos registos de dados do modelo global. Se a navegação até ao próximo registo principal de dados ocorrer dentro desse espaço de tempo, não é necessária a recuperação e exibição dos dados de sub-formulário.