A mesa de atributos exibe informações cerca de as feições de uma classe selecionada. Cada linha da mesa representa 1 feição (com ou sem geometria) e cada aquecer contém uma em formação específica sobre naquela feição. As feições da mesa podem ~ ~ pesquisadas, selecionadas, movidas alternativamente mesmo editadas.

Você está assistindo: Como somar valores de planilhas diferentes


Apresentando naquela Interface da escrivaninha de Atributos

Configurando as colunas

Interagindo alcançar feições em uma escritório de atributos

Usando trabalhar em feições

Editando valor de atributo

Creating 1 or plenty of to plenty of relations

Introducing 1-N relations


14.3.1. Prefácio: Tabelas espaciais e que espaciais¶

O allofit.net permitido carregar classe espaciais e algum espaciais. Atualmente, isso consiste tabelas suportadas pelo OGR e carta delimitado, está bem como ministérios provedor PostgreSQL, MSSQL, SpatiaLite, DB2 e Oracle. Tudo de as camadas carregadas are listadas no painel: guilabel: Camadas. Se uma camada está espacialmente ativada alternativamente não, determina se você ele pode fazer interagir alcançar ela durante mapa.

As tabelas que espaciais podem está dentro navegadas e editadas usando a visualização da escritório de atributos. Além disso, sobrenome podem ~ ~ usados ​​para pesquisar de campo. Através dos exemplo, você pode usar colunas de uma tabela que espacial para definir valores de atributos ou um descanso de valores permitidos para serem adicionado a uma camada vetorial específica durante naquela digitalização. Dê ns olhada durante widget de versão na seção propriedades do formulário de atributos para descobrir mais.


14.3.2. Proposta a user interface da mesa de Atributos¶

Para abrir a tabela de atributos porque o uma piso vetorial, ative a camada clicando nela Painel Camadas. Em seguida, no decorrer menu principal: selecione de menus: cardápio Camada, aleatória :menuselection: abrir tabela de atributos. ~ é possível clicar abranger o botão direito são de mouse na camada e eleição abrir Tabela de Atributo no menu suspenso ou clique em :guilabel: botão mente aberta tabela de atributos na barra de ferramenta Atributos. Se você preferir atalhos, F6 abrirá der tabela de atributos. Shift+F6 abrirá a tabela de atributos filtrado para os recursos selecionados e: kbd:Ctrl+F6 abrirá a tabela de atributos filtrados ao os recursos visíveis.

Isso abrirá uma novo janela que exibe os atributos da feição ao a piso (figure_attributes_table). De acordo alcançar a configuração em :menuselection: menu Configurações –> opções –> fonte de dados, naquela tabela de atributos será aberta em ns janela encaixada ou em ns janela regular. Emprego número rude de feições na piso e o número de feições atual selecionados/filtrados são mostrados enquanto título da escrivaninha de atributos, nós vamos como se a camada é espacialmente limitada.


*

Fig. 14.68 escrivaninha de atributos porque o a classe de regiões¶


Os botões na ajudando superior da janela da tabela de atributos fornecem a seguinte funcionalidade:

Tabela 14.1 ferramenta Disponíveis¶

Ícone

Etiqueta

Finalidade

Atalho Padrão

*

Alternar modo de edição

Habilitar funcionalidades de edição

Ctrl+E

*

Alternar caminho multi edição

Atualize vários campos de diversidade feições

*

Salvar Edições

Salvar modificações atuais

*

Recarregar naquela tabela

*

Adicionar feição

Adicionar nova feição não tem geometria

*

Excluir feições selecionadas

Remover feições selecionadas para der camada

*

Cortar feições selecionadas para áreas de transferência

Ctrl+X

Copiar feições selecionadas ao a gamas de transferência

Ctrl+C

*

Colar feições da áreas de transferência

Inserir novo feições ns copiadas

Ctrl+V

*

Selecionar feições usando uma expressão

*

Selecionar Todas

Selecionar tudo de feições em ns camada

Ctrl+A

*

Seleção invertida

Inverter der seleção atualmente na camada

Ctrl+R

*

Desselecionar todas

Desselecionar todas as feições na piso atual

Ctrl+Shift+A

Filtrar/Selecionar feições usando formulário

Ctrl+F

*

Mover selecionadas para o topo

Mover linhas selecionadas para o todo da tabela

*

Mapa panorâmico para selecionar linhas

Ctrl+P

*

Aproximar cartões para selecionar linhas

Ctrl+J

*

Novo campo

Adicionar um novo campo para uma a fonte de dados

Ctrl+W

*

Excluir campo

Remover um campo a partir da fonte de dados

Abrir computador de campo

Atualização de campo para muito de feições em ns linha

Ctrl+I

Formatação condicional

Ativar formatação de tabela

*

Tabela de Atributos dá Dock

Permite encaixar/desencaixar der tabela de atributos

*

Ações

Listas de ações relatadas para uma camada


Nota

Dependendo do compõe dos dados e da bibliotecas OGR criada alcançar a seus versão são de allofit.net, algum ferramentas podem que estar disponíveis.


Abaixo como botões isto é a barra Cálculo de área rápido (ativada só em regime de edição), eu imploro seu perdão permite aplicar rapidamente cálculos a todos ou ajudando das feições da camada. Esta barra usa emprego mesmo: ref:expressões`como ministérios |calcula campo| :sup:`Calculadora de campo (consulte: ref:` calcule_campos_valores`).


14.3.2.1. Imagem da escrivaninha versus visualização dá formulário¶

O allofit.net ofertas dois modos de exibição para manipular inconsistência os dados na escrivaninha de atributos:

Você pode alternando de um regime para é diferente clicando durante ícone correspondente no borda inferior direito da caixa de diálogo.

Você demasiado pode especificar emprego modo :guilabel: Visualização critério na aberto da escritório de atributos em :menuselection: cardápio Configurações -> opções -> a fonte de Dados. Capaz ‘Lembrar última visualização’, ‘Tabela’ alternativa ‘Formulário’.


*

Fig. 14.69 escritório de atributos na exibição de escritório (superior) vs exibição de formulário (inferior)¶


14.3.2.2. Configurando together colunas¶

Clique abranger o botão direito são de mouse em um cabeçalho de coluna quando estiver na exiba de mesa para ter acesso a ferramentas que ajuda a instaladas o que isso pode ser exibido na escrivaninha de atributos e como.


14.3.2.2.1. Ocultando e organizando colunas e estar permitido para ações¶

Ao clicar alcançar o botão direito dá mouse em um cabeçalho de coluna, você ele pode fazer ocultá-lo da escritório de atributos. Para mudança o grão de diversidade colunas vir mesmo tempo, reexibir uma aquecer ou mudança a ordem das colunas, eletivos Organizar colunas …. Na nova caixa de diálogo, amigo pode:

marque / desmarque as coluna que equilíbrio mostrar ou ocultar

arraste e solte artigo para reordenar as colunas na mesa de atributos. Watch que aqueles alteração denominada para a renderização da escrivaninha e que altera a ordem dos campos na fonte de dados da camada


14.3.2.2.2. Redimensionando larguras de colunas¶

A largura ns colunas isso pode ser definida pela de um clique alcançar o botão direito dá mouse no decorrer cabeçalho da coluna e selecione:

Defina der largura… para inserem o avaliada desejado. Pela padrão, emprego valor presente é exibido enquanto widget

Autodimensionar para redimensionar da melhor formato possível a coluna.

Também ele pode ser mudado arrastando o faixa à direita do cabeçalho da coluna. Emprego novo dimensões da pilar é manteve para a piso e restaurar na próxima abertura da escrivaninha de atributos.


14.3.2.2.3. Classificar colunas¶

A tabela isso pode ser classificada pela qualquer coluna, clicando durante cabeçalho da coluna. Ns seta junior indica naquela ordem de aulas (apontar para baixo significa valores decrescentes da fila superior porque o baixo, nomear para principal significa valores ascendentes da fila superior porque o baixo). Você também pode optar através classificar as linhas com a opção: guilabel:sort a partir de menu de definição de papel do cabeçalho da pilar e escrita uma expressão, através dos exemplo. Para classificar a fileira usando várias colunas, você pode escrevendo concat (col0, col1).

Na exibir de formulário, ministérios identificador de feições isso pode ser classificado usando ministérios

*
:guilabel: opção Classificar por expressão de visualização.


Dica

Classificação com base em colunas de diferente tipos

Tentar classificada uma escrivaninha de atributos com base em colunas de espécies string e numéricos pode levar a resultados inesperados devendo à expressão concat(("USE", "ID") retornando valores de cable (ou seja,``’Borough105’ ). Você ele pode contornar a usando, pela exemplo, ``concat("USE", lpad("ID", 3, 0)), que retorna "Borough105" > "Borough006".


14.3.2.3. Formatação de célula da escritório usando condições¶

As configurações de formatação condicional podem ser usadas porque o realçar nas feições da mesa de atributos nós quais você deseja enfatizar, usando condições personalizadas dentro feições:

geometria (por exemplo, identificando propriedades de diversidade partes, áreas pequenas ou em uma extensão de mapa identificar …);

ou valor do campo (por exemplo, comparar valores alcançar um limite, identificando células vazias …).

Você pode ativar emprego painel de formatação condicional clicando em no canto superior correto da janela de atributos na exibição de escritório (não disponível na exiba de formulário).

O novo painel permite que ministérios usuário adicione novo regras para formatar a renderização de

*
Campo ou
*
Linha completa. Adicionado nova agricou abre um formulário porque o definir:

o sobrenome da regra;

a formatação: pode ser escolhida de uma jardim de formatos predefinidos alternativamente criada abranger base em características como:

cores de elevar e texto;

uso de ícone;

negrito, itálico, sublinhado alternativamente strikeout;

fonte.


*

Fig. 14.70 Formatação condicional de uma mesa de atributo¶


14.3.3.1. Selecionando características¶

Na exiba de tabela, cada linha da mesa de atributos exibição os atributos de um recurso duplicidade da camada. Escolher uma linha seleciona ministérios recurso e, da o mesmo, semelhante forma, escolher um recurso na tela são de mapa (no caso de camada ativada ao geometria) seleciona der linha na mesa de atributos. Se ajustar de recurso selecionados na tela do mapa (ou mesa de atributos) para alterado, a seleção também será atualizada na mesa de atributos (ou tela são de mapa) de acordo.

As contorno podem ~ ~ selecionadas clicando no número da linha no deixou da linha. Múltiplas linhas podem estar marcadas pressionando a tecla: kbd:Ctrl. 1 seleção contínua pode ser feita pressionando der tecla: kbd:Shift e clicando em muito de cabeçalhos de linha enquanto lado esquerdo a partir de linhas. Tudo de as linhas entrou a posição atualmente do cursor e naquela linha clicada elas selecionadas. Saia a posição do cursor na escritório de atributos, clicando em uma célula na tabela, que altera naquela seleção de linha. Mudança a seleção na tela principal algum move der posição são de cursor na mesa de atributos.

Na exibir de formulário da escritório de atributos, together feições eles são identificados por padrão durante painel esquerdo pelo valioso do área exibido (consulte: ref: maptips). Isto identificador capaz substituído usar a culiversidade suspensa na parte superior a partir de painel, selecionando um área existente alternativa usando uma expressão personalizada. Você até pode optar pela classificar a jardim de recursos no decorrer menu suspenso.

Clique em um estimado no painel esquerdo para exibição os atributos da feição no caminho certo. Para selecionar 1 feição, você desejo clicar dentro dá símbolo quadrado à esquerda a partir de identificador. Através padrão, o símbolo fique amarelo. Como na exibir de tabela, ela pode realizado várias selecione de recurso usando together combinações de teclado expostas anteriormente.

Além de escolher feições alcançar o mouse, você pode executar der seleção automática abranger base no decorrer atributo da feição, usar as ferramentas disponível na barra de ferramentas da tabela de atributos, gostar de (consulte der seção: ref:automatic_selection e a seguir para obter adicionar informações e caso de uso):

Também excluir possível selecionar recurso usando ministérios :ref: filter_select_form.


14.3.3.2. Filtragem de feições¶

Depois de escolher as feições na mesa de atributos, você ele pode fazer exibir apenas um esses cronicando na tabela. Isso capaz feito inconsistência usando o agenda Mostrar feições selecionadas na lista suspensa no borda inferior esquerdo da caixa de diálogo da mesa de atributos. Esta lista oferece os próximo filtros:

Mostrar todas as Feições

Mostrar Feições Selecionadas

Mostrar Feições visíveis no decorrer mapa

Mostrar Feições novo e Editadas

Filtro de área - permite ao usuário filtrar alcançar base no valor de um campo: eletivos uma pilar da lista, digite um valor e pressione :kbd:` Enter` para filtrar. Em seguida, apenas as feições correspondente são exposição na escritório de atributos.

Filtro progressivo (Expressão) - Abre a caixa de diálogo Construtor de expressões. Dentro de dele, você ele pode criar: ref: expressão complexas duplicado às linhas da tabela. Por exemplo, você pode filtrar a tabela usando acrescido de um campo. Enquanto aplicada, naquela expressão do filtro será exibida na parte inferior do formulário.

Também denominações possível: ref: filtrar recurso usando aplicações .


Nota

A filtro de crônica da escrivaninha de atributos não filtra feições da camada; ela são simplesmente ocultados momentaneamente da escrivaninha e podem ser acessados ​​na tela do mapa ou removendo emprego filtro. Para filtros que ocultam recursos da camada, use ministérios Query Builder.


Dica

Atualize a filtragem da fonte de dados com demonstrar feições visíveis no decorrer mapa

Quando, através dos motivos de desempenho, os recursos denotar na mesa de atributos elas espacialmente limitado à extensão da tela em sua abertura (consulte: ref: opção da a fonte de dados para obter instruções), selecionando: guilabel: somente feições visíveis durante mapa em um nova extensão de telas atualiza a restrição espacial.


14.3.3.3. Filtrando e selecionando feições usando formulários¶

Clicando durante :sup: Filtre/selecione recurso usando emprego formulário alternativa pressione :kbd:Ctrl+F` fará alcançar que a caixa de diálogo da mesa de atributos mude para a exibição dá formulário e substitua para widget por sua variação de pesquisa.

A partir deste ponto, naquela funcionalidade isto ferramenta é semelhante à descrita em: ref: select_by_value, onde excluir possível atender descrições de tudo os operador e seleção modos.


*

Fig. 14.71 escrivaninha de atributos filtrada pelo formulário de filtro¶


Ao selecionar / filtrar feições da escrivaninha de atributos, existe um botão filtro de feições o que permite definir e filtro filtros. Seu uso aciona a opção: guilabel: Filtro avançado (Expressão) e exibe der expressão de filtro corresponde a em um widget de carta editável na ajuda inferior a partir de formulário.

Se já dentro feições filtradas, você poderá refinar o filtrado usando a culiversidade suspensa ao lado a partir de botão filtrada de feições. As opções são:

Filtrar dentro de (“AND”)

Estender filtro (“OR”)

Para clara o filtro, selecione naquela opção mostrar todas together feições durante menu suspenso inferior esquerdo alternativamente limpe der expressão e clique em Aplicar alternativamente pressione Enter.


14.3.4. Usando ação em feições¶

Os usuários sim várias possibilidades de empunhando feições abranger o menu contextual, como:

Selecionar todas (Ctrl+A) as feições;

Copie o contente de uma célula na área de transferência com: guilabel:Copiar contente da célula;

Aproximar na feição sem ter que selecioná-lo previamente;

Panorâmica da feição sem tem que selecioná-lo previamente;

Destacar feição, porque o destacá-la na tela dá mapa;

Abrir formulário: alterna a tabela de atributos para a exibição de formulários, alcançar foco na feição clicado.


*

Fig. 14.72 Copiar botão de contente da célula¶


Se amigo deseja alavancada dados de atributo em programas lado de fora (como Excel, LibreOffice, allofit.net alternativa um aplicativo Web personalizado), eleger uma ou adicionar linhas e use ministérios Copie as contorno selecionadas ao a áreas de transferência alternativa pressione: kbd:Ctrl+C.

Em: menuselection: cardápio Configurações -> opções -> a fonte de Dado, ela pode definir o formato no o que colar Copiar feições como lista suspensa:

Texto simples, sem geometria,

Texto simples, geometria WKT,

GeoJSON

Você demasiado pode exibir uma culiversidade de agir neste menu contextual. A é ativação na guia caraterísticas da camada ▶ Ações. Veja apresentou de ações para adicionar informações sobre ações.


14.3.4.1. Salvando feições selecionadas gostar nova camada¶

As feições selecionadas podem estar salvas gostar de qualquer inventar vetorial suportado pele OGR e também transformadas em outro sistema de autoridade para resolver de coordenadas (SRC). Enquanto menu contextual da camada, no painel Camadas, clique em exportar ▶ salve  feições selecionadas como… para o conjunto o sobrenome do o conjunto de dados de saída, seu inventar e SRC (veja der seção Creating new layers a partir de an existing layer). Tu notará eu imploro seu perdão

*
Salvar só as feições selecionadas isto é marcado. Também é viabilidade especificar opções de criacionismo de OGR dentro de da caixa de diálogo.


14.3.5. Editar valores de atributo¶

A edição dos valores no atributos pode ser feita por:

digitando emprego novo valor diretamente na célula, esteja a tabela de atributos na imagem de tabela alternativamente formulário. As mudança são feito célula por célula, feição por feição;


14.3.5.1. Using ns Field Calculator¶

The field Calculator button in the attribute tableallows friend to carry out calculations on ns basis of present attribute values ordefined functions, para instance, to calculate length or área of geometryfeatures. The results deserve to be supplied to upgrade an currently field, or writtento naquela new field (that have the right to be der virtual one).

The field calculator is accessible on any type of layer that supports edit.When friend click on the field calculator icon the dialog opens up (seefigure_field_calculator). If ns layer is not in edit mode, der warning isdisplayed e using the field calculator will certainly cause the layer come be placed inedit setting before a calculation is made.

Based on the Expression Builder dialog, a fieldcalculator dialog offers a complete user interface to definir an expression e applyit come an present or a newly created field.To use the field calculator dialog, friend must select whether you desire to:

apply calculation on ns whole great or top top selected attributes only

create a new field porque o the calculate or upgrade an present one.


*

Fig. 14.73 ar Calculator¶


If you select to add naquela new field, you must enter naquela field name, a field type(integer, real, date or string) e if needed, the bruta field length e thefield precision. Para example, if girlfriend choose naquela field size of 10 and a fieldprecision the 3, it means you have actually 7 digits before a dot, e 3 number forthe decimal part.

A brief example illustrates how field calculator works once using theExpression tab. We desire to calculate the length in quilômetro of therailroads layer são de the allofit.net sample dataset:

Set Output field name to length_km

Select decimal number (real) together Output ar type

Set a Output ar length come 10 e the Precisionto 3

Double click $length in ns Geometry coporação, grupo to add the lengthof the geometry into ns Field calculator expression box.

Complete the expression by typing / 1000 in the Field calculatorexpression box e click OK.

You can agora find der new length_km ar in ns attribute table.


14.3.5.2. Creating der Virtual Field¶

A virtualmente field is der field based upon an expression calculation on a fly, meaningthat its worth is instantly updated as soon as an underlying parameterchanges. Ns expression is set once; you no decorrer longer should recalculate the fieldeach equipe underlying worths change.For example, you may want come use a virtual field if friend need area to it is in evaluatedas girlfriend digitize features or to automatically calculate naquela duration in between datesthat may change (e.g., making use of now() function).


Nota

Use of virtual Fields

Virtual fields are not long-term in ns layer attributes, meaning thatthey’re only saved e available in the projeto file they’ve to be created.

A field can be set virtual only at that creation.Virtual fields ~ ~ marked with naquela purple background in ns fields tab ofthe layer properties dialog to differentiate them são de regular physicalor join fields. Their expression deserve to be edited later by pushing theexpression button in a Comment column. One expression editor window willbe opened up to adjust a expression of the virtualmente field.


14.3.5.3. Using ns Quick field Calculation Bar¶

While field calculator is always available, a quick ar calculation bar ontop of the attribute tabela is only visible if ns layer is in edit mode. Thanksto a expression engine, the offers naquela quicker access to modify an currently existingfield:

Select the field to update in the drop-down list.

Click on update All, upgrade Selected orUpdate Filtered button de acordo com to her need.


*

Fig. 14.74 quick Field calculate Bar¶


14.3.5.4. Modifying multiple fields¶

Unlike ns previous tools, multi edit mode permits multiple features ofdifferent functions to it is in edited simultaneously. When ns layer is toggled toedit, múltiplo edit capabilities estão accessible:


Nota

Unlike the tool from the attribute table, hitting the Edit▶ Modify features of Selected attributes option provides you with der modaldialog to fill attributes changes. Hence, features choice is requiredbefore execution.


In stimulate to modify multiple areas in naquela row:

Select ns features you want to edit.

At ns right lado of ns attribute table, fields (and values) of selectedfeatures are shown. New widgets show up next to every field permitting fordisplay of a current multi edit state:

Clicking any type of of this widgets allows you to one of two people set the current value forthe field or reset to originais value, definition that you can roll back changeson a field-by-field basis.


*

Fig. 14.75 editing fields of multiple features¶


Make a changes to the fields friend want.

Click top top Apply changes in ns upper message text or any other featurein a left panel.

Changes will use to all selected features. If no decorrer feature is selected, thewhole tabela is updated com your changes. Modifications ser estar made as naquela singleedit command. So pushing

*
Undo will rollback the attributechanges for all selected functions at once.


Nota

Multi modify mode is only available for auto generated and drag and drop forms(see Personalizando um formulário porque o seus dados); the is not sustained by custom ui forms.


14.3.6.1. Presenting 1-N relations¶

As an instance you have naquela layer with tudo regions that alaska (polygon)which gives some attributes about its name and region type e aunique id (which action as main key).

Then you get another allude layer or tabela with information about airportsthat ~ ~ located in ns regions e you also want to manter track the these. Ifyou desire to include them to the regions layer, you should create der one to manyrelation using international keys, since there ~ ~ several airports in many regions.


*

Fig. 14.76 Alaska region com airports¶


14.3.6.1.1. Class in 1-N relations¶

allofit.net makes enquanto difference between a table and a vector layer. Basically, naquela vectorlayer is a table with naquela geometry. So girlfriend can include your tabela as a vector layer.To demonstrate a 1-n relation, you can load a regions shapefile andthe airports shapefile i m sorry has naquela foreign key field (fk_region) tothe layer regions. This means, the each avião belongs come exactly uma regionwhile each an ar can have any number of airports (a typical one to manyrelation).


14.3.6.1.2. International keys in 1-N relations¶

In enhancement to ns already existing qualities in ns airports attribute table,you’ll need another field fk_region which acts as a foreign an essential (if friend havea database, you will most likely want to definir a constraint ~ above it).

This field fk_region will constantly contain an i would of der region. It have the right to be viewed likea guideline to the region the belongs to. E you have the right to design der custom modify formfor editing and allofit.net takes treatment of a setup. It works com differentproviders (so you have the right to also usar it com shape e csv files) and todos you haveto dá is come tell allofit.net ns relations in between your tables.


14.3.6.1.3. Specifying 1-N connections (Relation Manager)¶

The first thing we are going to a partir de is to let allofit.net know about the relationsbetween a layers. This is excellent in project ▶ projeto Properties….Open ns Relations tab e click on include Relation.

Name is going to be supplied as der title. It need to be naquela human readable string,describing, what the relation is offered for. We will just speak to say airport_relationin this case.

Relationship strength sets a strength of a relation between the parentand ns child layer. Ns default association type way thatthe parental layer is simply connected to ns child uma while theComposition type allows you come duplicate also the child featureswhen duplicating ns parent ones.


*

Fig. 14.77 relation Manager¶


14.3.6.1.4. Forms para 1-N relations¶

Now the allofit.net to know about the relation, it will certainly be used to enhance theforms the generates. As we walk not change the default type method (autogenerated)it will just add naquela new widget in our form. So let’s select a layer an ar inthe legend e use a identify tool. Relying on your settings, ns form mightopen straight or friend will have to select to open up it in a identification dialogunder actions.


*

Fig. 14.78 to know dialog regions com relation to airports¶


As you have the right to see, ns airports assigned to this particular region are todos shown ina table. And there ~ ~ also some buttons available. Let’s análise them shortly:

In a above example ns referencing layer has geometries (so it isn’t justan alphanumeric table) so ns above actions will produce an entrance in ns layerattribute table that has durante corresponding geometric feature. To add thegeometry:

Select the record that has been included previously within ns feature kind of thereferenced layer.

If you job-related on the airport table, a widget Relation recommendation is automaticallyset up ao the fk_region field (the one used to create ns relation), seeRelation reference widget.

In the airport form you will certainly see the

*
switch at the right lado of thefk_region field: if you click on a button the form of the region great willbe opened. This widget permits you come easily e quickly open the forms the thelinked parent features.


*

Fig. 14.79 to know dialog avião with relation to regions¶


The Relation recommendation widget has additionally an alternative to embed a form of ns parentlayer within a child one. The is easily accessible in ns Properties ▶ characteristics Formmenu the the avião layer: select ns fk_region field and check theShow embedded kind option.

If friend look at a feature dialog now, you will certainly see, that a form of the regionis embedded inside a airports form e will even have naquela combobox, i beg your pardon allowsyou to assign the current avião to another region.


*

Moreover if you toggle a editing mode of the airport layer, ns fk_regionfield has likewise an autocompleter function: while keying you will see tudo de thevalues of the id field of ns region layer.Here it is feasible to digitize naquela polygon for the region layer using a

*
buttonif friend chose the option enable adding new features in theProperties ▶ characteristics Form cardápio of the airport layer.

The child layer can likewise be supplied in the escolher Feições através dos Valor device inorder to pick features of a parent layer based on attributes of your children.

In Fig. 14.81, all the areas where a meanaltitude of the airports is greater than 500 meters above sea levelare selected.

You will discover that many different aggregation functions are available in ns form.


*

Fig. 14.81 select parent features with child values¶


14.3.6.2. Introducing many-to-many (N-M) relations¶

N-M relations estão many-to-many relations between dois tables. Ao instance, theairports e airlines layers: an avião receives several airlinecompanies and an airline empresa flies to number of airports.

This SQL code creates ns three tables we need porque o an N-M relationship ina PostgreSQL/PostGIS schema named locations. You have the right to run a code utilizing theDatabase ▶ DB Manager… porque o PostGIS or external tools such together pgAdmin. Ns airports tabela stores the airports layer e the airlinestable stores the airlines layer. In both tables few fields ser estar used forclarity. A tricky part is ns airports_airlines table. We need it to list allairlines for all airports (or mal versa). This type of tabela is knownas a pivot table. The constraints in this table force the an aeroporto can beassociated com an airline só if both currently exist in their layers.


CREATE SCHEMA locations;CREATE tabela locations.airports( i would serial no NULL, geom geometry(Point, 4326) no NULL, airport_name text NOT NULL, CONSTRAINT airports_pkey PRIMARY key (id));CREATE index airports_geom_idx top top locations.airports making use of gist (geom);CREATE table locations.airlines( i would serial no NULL, geom geometry(Point, 4326) not NULL, airline_name text NOT NULL, CONSTRAINT airlines_pkey PRIMARY vital (id));CREATE table of contents airlines_geom_idx on locations.airlines using gist (geom);CREATE table locations.airports_airlines( id serial not NULL, airport_fk integer not NULL, airline_fk integer no NULL, CONSTRAINT airports_airlines_pkey PRIMARY an essential (id), CONSTRAINT airports_airlines_airport_fk_fkey FOREIGN crucial (airport_fk) recommendations locations.airports (id) ON claro CASCADE ON upgrade CASCADE DEFERRABLE originally DEFERRED, CONSTRAINT airports_airlines_airline_fk_fkey FOREIGN key (airline_fk) recommendations locations.airlines (id) ON excluir CASCADE ON upgrade CASCADE DEFERRABLE initially DEFERRED );
Instead the PostgreSQL you can also usar GeoPackage. In this case, the three tablescan be developed manually using a Database ▶ DB Manager…. InGeoPackage there ser estar no schemas so ns locations prefix is no needed.

Foreign an essential constraints in airports_airlines table can´t be developed using tabela ▶ develop Table…or table ▶ edit Table… for this reason they should be created using Database ▶ SQL Window….GeoPackage doesn’t support ADD CONSTRAINT explanation so ns airports_airlinestable must be developed in dois steps:

Set up the table só with a id field using table ▶ produce Table…

Using Database ▶ SQL Window…, type and execute this SQL code:


ALTER tabela airports_airlines add COLUMN airport_fk INTEGER recommendations airports (id) ON delete CASCADE ON update CASCADE DEFERRABLE at first DEFERRED;ALTER table airports_airlines add COLUMN airline_fk INTEGER recommendations airlines (id) ON delete CASCADE ON upgrade CASCADE DEFERRABLE at first DEFERRED;
Then in allofit.net, friend should collection up two one-to-many relationsas defined above:

a relation between airlines table and the pivot table;

and naquela second uma between airports table and the pivot table.

An easier caminho to são de it (only for PostgreSQL) is using ns Discover Relationsin project ▶ properties ▶ Relations. allofit.net will immediately readall relations in your database e you somente have come select ns two you need. Rememberto load ns three tables in ns allofit.net project first.


*

Fig. 14.82 Relations e autodiscover¶


In situation you want to remove an airport or one airline, allofit.net won’t removethe linked record(s) in airports_airlines table. This task will be made bythe database if we specify the right constraints in the pivot tabela creation asin ns current example.


Nota

Combining N-M relation com automatic transaction group

You need to enable a transaction setting in projeto Properties▶ data Sources ▶ as soon as working on together context. allofit.net must be maybe toadd or update row(s) in tudo de tables (airlines, airports e the pivot tables).


Finally we need to select ns right cardinalilty in theLayer properties ▶ attributes Form for the airports andairlines layers. For the primeiro one we have to choose the airlines (id) optionand for the second uma the airports (id) option.


*

Fig. 14.83 collection relationship cardinality¶


Now you can associate an avião with an airline (or an airline com an airport)using add child attribute or link existing child featurein the subforms. Naquela record will immediately be put in the airports_airlinestable.


*

Fig. 14.84 N-M relationship in between airports and airlines¶


Nota

Using Many to 1 relation cardinality

Sometimes hiding a pivot table in one N-M relationship is notdesirable. Mainly due to the fact that there ~ ~ attributes in a relationship that can onlyhave worths when a relationship is established. If her tables estão layers (havea geometry field) it can be interesting to activate a On mapa identificationoption (Layer properties ▶ Attributes kind ▶ available widgets ▶ Fields)for a foreign key fields in the pivot table.

Ver mais: Como Tirar A Fralda Do Bebe, Desfralde: Como Tirar A Fralda Do Bebê Em 3 Dias


Nota

Pivot table primary key

Avoid using multiple fields in ns primary key in der pivot table. allofit.net assumes a singleprimary key so naquela constraint like constraint airports_airlines_pkey primary key (airport_fk, airline_fk)will not work.