4D v16.3

Subformulário lista

Página Inicial

 
4D v16.3
Subformulário lista

Subformulário lista  


 

 

Um subformulário lista é um formulário de outra tabela que é mostrado em um formulário de entrada. Um subformulário permite introduzir, ver e modificar dados em outras tabelas. Os subformulários geralmente são utilizados em bancos de dados nas quais foram estabelecidas relações Um para Muitos.

Um subformulário lista mostra os registros da tabela Muitos relacionada por uma relação automática de tipo Um a Muitos. É possível ter vários subformulários de diferentes tabelas no mesmo formulário. No entanto, não é possível localizar dois formulários que pertençam à mesma tabela na mesma página do formulário.

Por exemplo, um banco de dados de gestão de contatos pode utilizar um subformulário para mostrar todos os números telefônicos de um contato particular. Ainda que os números telefônicos apareçam na tela Contatos, a informação é salva, na verdade, em uma tabela relacionada.  Utilizando uma relação Um para Muitos, este desenho de banco de dados facilita o armazenamento de um número ilimitado de números telefônicos por contato. As relações automáticas permitem a entrada de dados diretamente na tabela Muitos relacionada sem programação.

Ainda que os subformulários geralmente se associem a tabelas Muitos, um subformulário pode mostrar os registros de qualquer outra tabela do banco de dados.

É possível criar um subformulário utilizando o assistente de criação de formulários durante a criação de um novo formulário, ou ao adicionar um novo subformulário ao formulário existente utilizando o editor de formulários. Deve-se criar de antemão o formulário listado que você quer utilizar como subformulário.

Os subformulários podem ser utilizados para a entrada de dados de duas formas: o usuário pode introduzir dados diretamente no subformulário ou introduzí-los em um formulário de entrada associado. Nesta configuração, o formulário utilizado como subformulário é chamado formulário listado. O formulário de entrada é chamado formulário detalhado.

É possível permitir ao usuário introduzir dados no formulário detalhado e/ou no formulário listado:

Para definir um formulário lista, deve criar e configurar o subformulário a utilizar num formulário pai. Para mais informação sobre os formulários lista, consulte o capítulo Formulários de saída e relatórios

No formulário pai, crie um objeto de tipo subformulário utilizando a ferramenta Subformulário da barra de objetos (variação do último botão). 

Nota: pode igualmente efetuar um arrastar e soltar desde a Página Formulários do Explorador.

Na Lista de propriedades (tema “Subformulário”), tenha certeza de selecionar a opção Subformulário lista e selecione a tabela fonte no menu Fonte assim como também o Formulário listado a utilizar.

No formulário pai, pode redimensionar e reposicionar o conteúdo do subformulário como queira.

É possível adicionar os botões personalizados para controlar a entrada de dados em um subformulário. Qualquer tipo de botão: padrão, invertido ou invisível, pode ser utilizado.

É possível definir a ação destes botões por programação (ver a seção  Entrada de Dados) ou através das  Ações padrões.
4D oferece três ações padrão para responder as necessidades básicas para a gestão de subregistros: Editar subregistro, Eliminar subregistro e Adicionar subregistro. Quando o formulário inclui vários subformulários, a ação se aplica ao formulário que tem o foco. 

Para maiores informações sobre a adição destes botões e suas ações automáticas associadas, consulte o parágrafoBotões e Ações padrões.

É possível definir várias propriedades especificas relativas aos subformulários. Estas propriedades se referem à largura do subformulário como também às ações autorizadas aos usuários (modos de seleção e entrada).

Estas propriedades são destinadas principalmente ao uso com os subformulários em página. Consulte a seção Subformulários em modo página.

Fonte  

Essa propriedade permite definir o tipo de fonte para o subformulário. Para os subformulários lista, escolha a tabela a qual pertence o subformulário.

Essa opção permite associar um formulário detalhado a um subformulário lista. O formulário detalhado pode ser utilizado para introduzir ou visualizar subregistros. Geralmente contém mais informação que o subformulário. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Geralmente você utiliza um formulário de saída como formulário listado e um formulário de entrada como formulário detalhado. Se você não especifica o formulário a ser utilizado para a página de entrada, 4D utiliza automaticamente o formato de entrada por padrão da tabela.

Dependendo da configuração do subformulário, o usuário pode mostrar o formulário detalhado fazendo um clique duplo em um subregistro ou utilizando os comandos para adicionar e modificar os subregistros.

Nota: Pode associar um formulário detalhado a um subformulário lista pressionando a tecla Shift e arrastando o formulário detalhado desde o Explorador ao subformulário.

É possível redimensionar a área do subformulário no formulário como preferir, assim como qualquer outro objeto do formulário.

Além disso, é possível deixar que 4D defina automaticamente a largura do subformulário de maneira que sejam mostrados todos os campos que ele contém. Para fazer isso, marque a opção Largura automática nas propriedades do objeto.

Nota: Quando você cria uma área de subformulário arrastando um formulário diretamente do Explorador, 4D define automaticamente a largura do subformulário.

Os subformulários podem ter três modos de seleção: Nenhum, Simples e Múltiplo.

  • Nenhum
Os registros não podem ser selecionados se este modo está selecionado. Um clique na lista não tem efeito, a menos que a opção Editável em lista esteja selecionada. As teclas de navegação só fazem com que a lista se mova; não se gera o evento de formulário On Selection Change.
  • Simples
Neste modo só pode ser selecionado um registro por vez. Um clique em um registro o seleciona e o converte no registro atual. A combinação Ctrl+clique (Windows) ou Comando+clique (Mac OS) em um registro altera seu estado (entre selecionado ou não).
As teclas de seta Para cima e Para Baixo selecionam o registro anterior/seguinte da lista. As outras teclas de navegação movem a lista. O evento de formulário On Selection Change é gerado cada vez que o registro atual se altera.
  • Múltiplo
Vários registros podem ser selecionados simultaneamente neste modo. Os subregistros selecionados são devolvidos pelo comando GET HIGHLIGHTED RECORDS. Ao se clicar no registro, o registro atual é selecionado porém não modificado. A combinação de teclas Ctrl+clique (Windows) ou Comando+clique (Mac OS) em um registro altera seu estado (selecionado ou não). As combinações Ctrl+clique (Windows) ou Comando+clique (Mac OS) e Shift+clique lhe permitem fazer seleções múltiplas. As teclas de seta Acima e para Abaixo selecionam o registro anterior/seguinte da lista. As outras teclas de navegação movem a lista. O evento de formulário On Selection Change é gerado cada vez que o registro atual se altera. As outras teclas de navegação rolam a lista. O evento de formulário On Selection Change  é gerado cada vez que muda o registro selecionado.

Quando um subformulário é Editável em lista, o usuário pode modificar os dados dos subregistros diretamente na lista, sem ter que utilizar o formulário detalhado associado. Para fazer isso, simplesmente clique duas vezes no campo a se modificar para passar ao modo edição (assegure-se de deixa tempo suficiente entre os dois cliques para não gerar um clique duplo).

Por padrão, este modo é ativado para todos os subformulários em lista.

Quando esta opção não estiver selecionada, a entrada passa obrigatoriamente pelo formulário detalhado associado.

É possível definir os parâmetros de funcionamento dos subformulários em resposta a um clique duplo do usuário. Em bancos de dados criados com uma versão anterior de 4D, é possível definir a resposta em caso de clique duplo em uma linha vazia (opção de compatibilidade).

  • Clique duplo em uma fila: ação a se realizar em caso de um clique duplo em um registro de subformulário. As seguintes opções estão disponíveis:
    • Não fazer nada: ignorar o clique duplo.
    • Modificar registro: alterar o registro de subformulário para modo edição. A modificação é realizada diretamente na lista se a opção “Editável em lista” está selecionada. De outra forma, se realizará em modo página, no formulário detalhado associado ao subformulário.
    • Mostrar registro: mostra os dados do registro em modo página no formulário detalhado associado com o subformulário (somente leitura).
  • Clique duplo em uma fila vazia: ação a realizar em caso de um clique duplo em uma linha vazia de um subformulário. As opções a seguir estão disponíveis:
    • Não fazer nada: ignorar o clique duplo.
    • Adicionar registro: criar um novo registro no subformulário e passar para o modo edição. O     registro será criado diretamente na lista se a opção “Editável em lista” estiver selecionada. Do     contrário, será criado em modo página, no formulário detalhado associado com o subformulário.

Por padrão, o usuário pode apagar subregistros em um subformulário listado com a ajuda da tecla Del ou Backspace.

Como esta possibilidade pode afetar o funcionamento padrão da interface de algumas aplicações (baseada por exemplo nos botões), é possível evitá-la utilizando a opção Autorizar a eliminação.

Quando esta opção não estiver selecionada, o usuário não pode apagar os subregistros utilizando as teclas de supressão do teclado.

O objeto subformulário pode ter a propriedade Acessível (tema “Entrada”). Quando um subformulário tem o foco, o usuário pode controlá-lo com a ajuda das teclas de navegação, utilizando o comando de menu Selecionar tudo (se a seleção tiver múltiplas linhas), etc.

Quando um subformulário recebe ou perde o foco, o método de formulário do formulário principal é chamado com os eventos On getting focus ou On losing focus. Neste caso, o comando OBJECT Get pointer (ou o comando Focus object) retorna um ponteiro à tabela do subformulário.

Como para todos os objetos acessíveis, a propriedade Ocultar retângulo de foco pode ser utilizada para não mostrar o foco graficamente.

Como podem existir vários registros que a área de subformulário não pode manter, 4D oferece 3 opções (tema “Impressão”) para controlar a impressão dos registros de subformulários:

  • Variável (opção padrão)

Se você selecionar esta opção, 4D estende ou reduz a área do subformulário para imprimir todos os subregistros.

  • Fixo (truncamento)

Se você selecionar esta opção, 4D só imprime os subregistros que aparecem na área do subformulário. O formulário só se imprime uma vez e se ignoram os registros não impressos.

  • Fixo (múltiplos registros)
Se você selecionar esta opção, o tamanho inicial da área do subformulário se conserva, mas 4D imprime o formulário várias vezes com a finalidade de imprimir todos os registros.
Notas
  • Não é possível colocar objetos aos lados de um subformulário de tamanho variável. Os objetos localizados aos lados do subformulário se repetirão para cada linha do subformulário.
  • Não é possível imprimir mais de um subformulário da mesma tabela na mesma página do formulário.
  • Os comandos Print object e Print form não são compativeis com as opções de impressão com tamanho variável.
  • A opção Print Variable Frame pode ser estabelecida por programação usando o comando OBJECT SET PRINT VARIABLE FRAME.
  • Para saber mais sobre imprimir objetos de tamanho variável, veja a Impressão tamanho variável.



Ver também 

Subformulários em modo página

 
PROPRIEDADES 

Produto: 4D
Tema: Subformulários e widgets

 
HISTÓRIA 

 
ARTICLE USAGE

Manual de Desenho 4D ( 4D v16)
Manual de Desenho 4D ( 4D v16.1)
Manual de Desenho 4D ( 4D v16.3)