Document toolboxDocument toolbox

(sv) Anpassade fält




Introduktion

Data i alla fält (förutom interna ID fält) i objektklasserna kan förändras med konfigurationer för Anpassade fält. Anpassade fält "beräknar" data baserat på närliggande objekt i trädstruktur - för det mesta från föräldraobjekt i trädet.

Nedan visas tillgängliga funktioner inom Anpassade fält:

  • Textsammansättning - funktionen skapar ett värde baserat på värden i valda fält från ett eller flera föräldraobjekt.

  • Autosummering - funktionen kalkylerar en summa baserat på värden i valda fält från underliggande objekt i delträdet.

  • Omräkningsfunktion - funktionen utför en beräkning baserat på ett värde i ett valt fält för objektet och lagrar det kalkylerade värdet i ett annat fält för objektet.


Anpassade fält uppdaterar värden utan att kontrollera Säkerhetsscheman eller Fältsäkerhet då funktionerna ses som systemfunktioner.



Lägga till konfigurationer

Anpassade fält läggs till i modulen Administratör - Processa data. Använd knapparna Lägg till eller Radera för att skapa nya konfigurationer eller ta bort befintliga.

Vid skapande av nytt anpassat fält visas detta formulär:

  • Klass: Objektklassen som ska innehålla det anpassade fältet

  • Fält: ett existerande objektfält väljs från listan (obs att alla fälttyper inte är kompatibla med vald funktion)

  • Funktion: välj önskad funktion för det anpassade fältet

Textsammansättning

För korrekt funktion måste ett antal parametrar anges, se exempel nedan:

  • Perspektiv - i de flesta fall är detta huvudperspektivet som används i Trädvyn för att visa objektstrukturen.

  • Fältformatterare - detta är en textsträng som innehåller utlästa värden från objektfält angivna i den nedre listan. 

    • Börja med att definiera objekt i listan Textsammansättning - objekt

    • Använd sedan sekvensnumren i listan + eventuell statisk text för att bygga den nya anpassade textsträngen. Ange sekvensnumret inom { } för att definiera var i strängen värdet ska sättas in, t.ex. {1}

  • Textsammansättning - objekt - Starta alltid med den objektklass som innehåller det anpassade fältet (i detta fall Rum) och gå sedan uppåt i trädstrukturen för att ange länkförhållandet mellan objektklasserna.

    • I detta exempel ligger det anpassade fältet i objektklassen Rum, alltså blir Rum först i sekvenslistan

    • Nästa objektklass blir Plan som är föräldraklass till Rum (Plan måste ha en direkt länk till Rum i perspektivet som används)

    • Tredje objektklassen Building är föräldraklass till Plan (Building måste ha en direkt länk till Plan i perspektivet som används)

 Alla objektklasser måste inte användas i det anpassade fältet men sekvenslistan måsta innehålla alla objektklasser i kedjan för att hitta de eftersökta värdena. Om vi t.ex. bara vill hämta värdet Byggnadsnamn från Building till fältet i Rum så måste ändå klassen Plan vara definierad i sekvenskedjan för att värdet ska hittas. 



Fältvärdet uppdateras automatiskt i vissa situstioner:

  • När ett nytt objekt som innehåller ett anpassat fält läggs till

  • När något objekt som är en del av det anpassade fältet uppdateras (ändring av fältvärde, ändring av länkning som berör objektet med det anpassade fältet)


Fälttyper som stödjer funktionen Textsammansättning:

  • Text

  • Tal

  • Specialfält (GUID, Serial)



Autosummering

För korrekt funktion måste ett antal parametrar anges, se exempel nedan:

Detta är ett exempel på ett Anpassat fält på Plannivå som summerar area BTA från underliggande Rumsobjekt

  • Underklass - välj en underklass till Plan enligt använt perspektiv

  • Fält - välj ett fält där den kalkylerade summan ska lagras på planobjektet

  • Perspektiv - i de flesta fall är detta huvudperspektivet som används i Trädvyn för att visa objektstrukturen.

  • HQL - Om detta fält är fyllt med ett HQL villkor så kommer summeringen enbart att hantera objekt som innefattas av det angivna villkoret (villkoret måste gälla för den angivna underklassen).



Fälttyper som stödjer funktionen Autosummering:

  • Alla Tal-fält - värden används som de är

  • Textfält både för käll- och målfält för summeringen.

    • Om källfältet består av siffror transformeras det till ett talvärde och används i summeringen

    • Om källfältet innehåller en text så ersätts det med värdet 0.0 i summeringen



Fältberoenden

Ett fält kan summera upp värden från en underklass. Det kan finnas behov av att skapa kaskaduppdateringar om värden från flera nivåer ska summeras upp till en toppnivå. 

Systemet kommer automatiskt att avgöra i vilken ordning summeringarna ska göras för att få ett korrekt resultat om det finns mer än ett Autosummeringsfält definierat i FM Access. I exemplet ovan har vi två autosummeringar: en på Byggnad (summering från underliggande planer) och en på Plan (summering från underliggande rum). I detta fall kommer summering av Plan att ske innan summering av Byggnad sker.

Denna summeringsordning bestäms av:

Exempel 1:

Om ett Rum uppdateras registrerar systemet att rummets värde används för att summera Planfältet.

Eftersom Plan är ett underobjekt till Byggnad så kommer planvärdet att summeras först eftersom planvärdet sedan används för att uppdatera Byggnad som är överliggande klass till Plan. Då Plan uppdaterats kommer systemet att uppdatera Byggnad.

Exempel 2:

Om en Byggnad uppdateras registrerar systemet att byggnadsfältet är beroende av planfältet. Systemet kommer då att börja att summera planfältet från Rum och då detta ärklart uppdateras byggnadsfältet från planfältet.



Omräkningsfunktion

Det är en funktion som registrerar resultatet av en matematisk operation i önskat fält för vald objektklass (huvudfältet definieras på vänster sida av plugin-definitionen). Matematisk operation kan göras antingen med hjälp av ett fälts värde och givet värde eller två värden hämtade från två objektfält. Det betyder att det finns en möjlighet att registrera värde för ett valt fält genom att utföra matematisk operation på två andra fält för samma objekt som valts eller deras överliggande objekt i givet perspektiv.



Operationen som ska utföras definieras på högersidan, Inställningar för omräkningsfunktion

Välj först det perspektiv som ska användas vid omräkningsfunktionen.

Välj sedan det första fält som ska användas:

  • Klass #1 - välj objektklass där det önskade fältet finns (kan vara samma klass som objektet som ska uppdateras eller ett överliggande objekt enligt valt perspektiv).

  • Fält #1 - välj det fält vars värde ska användas vid operationen.

  • Operation - välj vilken matematisk operation som ska användas (addera, subtrahera, multiplicera eller dela).


Använd sedan det andra argumentet som ska användas vid operationen, väljs Värde anges ett fast värde som alltid används vid operationen, väljs Fält används vyn nedan för att ange det andra fältet som ska användas i operationen:

  • Klass #2 - välj objektklass där det önskade fältet finns (kan vara samma klass som objektet som ska uppdateras eller ett överliggande objekt enligt valt perspektiv).

  • Fält #2- välj det fält vars värde ska användas vid operationen.


Resultatet av operationen registreras i det fält som angavs då det aktuella anpassade fältet definierades:

 



Villkorsbaserade fält

Kan konfigureras så att ett visst värde sparas i fältet om ett angivet HQL kriterie möts


Välj Villkorsbaserat fält då det anpassade fältet definieras:

Ange sedan önskat HQL kriterie och det textvärde som ska registreras om kriteriet uppfylls:

Flera villkorsbaserade fält kan anges för samma metadatafält om så önskas.

Ingen validering av format för destinationsfältet utförs, om felaktig datatyp registreras via denna funktion så kommer inte någonting att registreras i målfältet.




Rule based fields can be set to be triggered on object modified and Import Finished events. 

Image Added

Running plugin on demand can be done in single object or subtree mode, same as other custom fields.

Start av funktioner i Anpassade fält

Manuell start av fältfunktioner

Om en funktion ska köras manuellt så kan den startas i genom att högerklicka i trädstrukturen på ett objekt som ingår i den delstruktur som man vill uppdatera:

Välj menyn Fältfunktioner i pop-up listan och välj sedan vilken funktion som ska köras.

Körningen utgår från det objekt i trädet som man valt men kan uppdatera objekt både över och under i trädstrukturen.

T.ex. körning av Autosummering uppdaterar både Plan och Byggnad (om summering konfigurerats på bägge nivåerna) även om körningen initierats på ett planobjekt.



Automatisk start av fältfunktioner

Automatisk start kan konfigureras per funktionstyp på fliken Tillgång till fält.

Händelsekolumnen visar på vilka händelser funktionen kan startas, klicka i Kör för händelser för att aktivera automatisk start vid angiven händelse:



Autosummering och Omräkningsfunktion körs automatiskt vid uppdatering av objekt med fält som ingår i funktionens konfigurationon.
Textsammansättning aktiveras vid manuell uppdatering och kan också konfigureras att köras automatiskt efter avslutad import.



Ordningen för automatiska körningar av smarta fält är som följer:

  • Textsammansättning

  • Omräkningsfunktion 

  • Autosummering



Relaterade ämnen: 

Uppdatera area från länkad vektor