DataSets

Introdução

Quando o resultado da execução de código é um DataSet, o mesmo é exibido em formato de grade, com um painel de botões com funcionalidades da grade no canto superior esquerdo.

Também são fornecidas as seguintes informações adicionais:

  • Número de registros na aba Information.
  • A consulta SQL que gerou aquele DataSet na aba SQL Statement.
  • O plano de execução da consulta SQL na aba Execution Plan.

Run SQL

Os registros do DataSet por padrão são trazidos do servidor em grupos de 500. Ao atingir o final da barra de rolagem na tabela, os próximos 500 registros são carregados automaticamente.

Botões e menu da grade

Algumas das funcionalidades são acessadas pelos botões da grade:

Buttons

  • Create Record: cria um registro.
  • Delete Records: exclui registros selecionados.
  • Apply Updates: aplica alterações pendentes.
  • Copy to Clipboard: copia conteúdo da grade.
  • Export: exporta grade.
  • Toggle Filters: exibe/esconde filtros.
  • Clear All Filters: limpa os filtros.
  • Refresh Records: recarrega a grade.

Outras funcionalidades estão disponíveis no menu de contexto da coluna, ao clicar com o botão direito sobre o cabeçalho de uma coluna. São elas:

  • Hide Column: oculta a coluna.
  • Hide Empty Columns: oculta todas as colunas vazias.
  • Show All Columns: exibe todas as colunas.
  • Show Column: escolhe uma coluna para exibir.

A seguir, serão explicadas em mais detalhes as funcionalidades da grade, onde também serão detalhados os botões e as opções do menu da coluna.

Funcionalidades

Selecionar

É possível efetuar as seguintes seleções de valores da tabela:

  • Células: clicando sobre elas (uma por vez).
  • Registros: usando as caixas de seleção à esquerda.
  • Colunas: clicando sobre o cabeçalho da coluna enquanto pressiona shift (para selecionar a primeira coluna ou um intervalo de colunas) ou ctrl + shift (para selecionar ou desfazer a seleção de uma única coluna).

Seleções de registros e colunas são mutuamente exclusivas. Quando uma dessas seleções é efetuada, a outra é desfeita automaticamente.

Copiar

É possível copiar células, colunas ou registros selecionados usando o atalho Ctrl+C ou o botão Copy to Clipboard. O atalho sempre priorizará a cópia de registros e colunas.

Exportar

O usuário conta com a opção de exportar o conteúdo da grade para os formatos CSV, CSV (EXCEL), JSON e TSV, utilizando o botão Export. Serão exportados os conjuntos de colunas ou registros selecionados. Caso nenhum registro esteja selecionado, o DataSet completo será exportado. Lembrando que, pela natureza dos formatos exportados, cópias ou exportações de colunas ou registros inteiros não preservam os saltos de linha dos conteúdos das células.

O usuário deve escolher qual codificação de texto será usada para o aquivo, UTF-8 ou Windows-1252. Cada formato de exportação pode ser configurado para ter uma codificação padrão ou sempre perguntar a codificação ao usuário no momento da exportação. Utilize o comando Engine DevTools: Configure Export Encoding para realizar a configuração.

Editar dados da grade

Para editar dados na grade, basta clicar sobre a célula desejada e ela entrará em modo de edição. Ao sair da célula, o conteúdo alterado será sincronizado com o servidor. DataSets com a propriedade automaticApplyUpdates ativada terão as alterações aplicadas a cada edição de célula.

Atualmente, não é possível editar conteúdos diretamente na célula sem perder os saltos de linha. Recomendamos que conteúdos muito extensos ou com saltos de linha sejam editados diretamente no script, ou por outros meios.

Criar registro

Um registro pode ser criado utilizando o botão Create Record. O novo registro é exibido na primeira linha da grade para ser editado. Vale ressaltar que essa não é sua posição real no DataSet, e qualquer evento que recarregue a grade como um todo (como ordenação ou filtro por exemplo) deslocará esse registro para sua posição correspondente na grade.

Devido a uma limitação, a criação de registros por meio do botão não é suportada caso a propriedade automaticApplyUpdates do DataSet esteja ativada.

Excluir registros

É possível excluir qualquer quantidade de registros utilizando o botão Delete Records. O botão fica ativo apenas se houverem registros selecionados.

Recarregar registros

Os registros do DataSet podem ser recarregados manualmente utilizando o botão Refresh Records. São raras as ocasiões em que o usuário precisará utilizar essa funcionalidade, geralmente quando ocorre um erro de conexão durante uma operação de alteração do DataSet que impeça a sincronização automática.

Efetuar Alterações

As alterações pendentes no DataSet podem ser aplicadas por meio do botão Apply Updates. Logo que efetivadas as alterações, a versão delas é exibida em uma caixa de informação. O botão permanece desativado caso não haja alterações pendentes.

Ordenar registros

Os registros da tabela podem ser ordenados com um clique sobre o cabeçalho da coluna. Para ordenar com base em mais de uma coluna, os cabeçalhos subsequentes devem ser clicados na ordem desejada de prioridade com a tecla ctrl pressionada. Quando ordenada, a tabela perde todas as seleções de registros e a barra de rolagem retorna ao início. Não é possível ordenar com base em colunas do tipo “Memo”.

Reordenar colunas

Uma coluna da tabela pode ser reposicionada segurando e arrastando seu cabeçalho e soltando sobre outra coluna. Isso fará a coluna que foi arrastada ser posicionada no ponto em que foi solta, e todas as outras colunas a partir daquele ponto serem deslocadas uma posição à direita.

Filtrar

Para exibir ou esconder os filtros, basta utilizar o botão Toggle Filters. O usuário poderá inserir os filtros por coluna, em um espaço abaixo de cada nome de coluna, no cabeçalho.

O filtro se comporta diferente a depender do tipo da coluna:

  • Numérico: são inclusos no DataSet filtrado apenas os registros cujo valor da célula é igual ao digitado no filtro.
  • Data: são inclusos os registros em que a data coincide com a digitada no filtro, podendo ser usados os atalhos de data das grades do Web Framework.
  • Booleano: o valor da célula deve ser igual ao do filtro. Colunas booleanas possuem no espaço de entrada do filtro um menu para selecionar entre True ou False.
  • Textual: são inclusos os registros em que o conteúdo inserido no filtro está contido no conteúdo da célula.

É possível limpar todos os filtros utilizando o botão Clear All Filters.

Detalhes da chave

É possível visualizar no rodapé da grade os detalhes de uma chave selecionada. Os detalhes são:

  • Display value da chave, seguido da chave entre parênteses.
  • Nome da classe a qual pertence a chave, seguido da chave da classe entre parênteses.
  • Nome da tabela a qual pertence a chave.
  • Nome do produto, em caso de chave negativa.

Tanto a chave em si quanto a classe são clicáveis. Ao clicar, a classe é exibida no explorador de arquivos. Já a chave tem suas informações e campos exibidos em um novo resultado do Engine Results. Para mais detalhes, acesse o menu “Visualização de chaves”.

Ocultar ou exibir colunas

O menu de contexto da coluna apresenta quatro opções para controlar a exibição das colunas, são elas: Hide Column, Hide Empty Columns, Show All Columns e Show Column.

Por padrão, todas as colunas do DataSet são exibidas assim que o código é executado. Quando o desenvolvedor utiliza a opção de ocultar colunas vazias (Hide Empty Columns), as que possuírem suas células vazias em todos os registros carregados até o momento são ocultadas.

O desenvolvedor pode optar por exibir todas as colunas novamente (Show All Columns), ou escolher uma das colunas ocultas para reexibir individualmente (Show Column). Esta última opção abre um submenu com os nomes de todas as colunas ocultadas listadas para que o desenvolvedor escolha qual exibir.

Colunas que estiverem selecionadas e forem ocultadas perdem a seleção. Colunas que possuírem algum valor no filtro de registros não perdem aquele valor caso sejam ocultadas. A coluna fixa que contém o número do registro não pode ser ocultada, mas o seu menu de contexto se encontra habilitado (isto é importante para o caso em que todas as colunas da grade tenham sido ocultadas).