I Uniconta har man flere steder mulighed for at ændre i data ved hjælp af små scripts, stumper af kode.
Man kan blandt andet benytte disse scripts i datamanipulation, beregnede felter, data import og tildel ny feltværdi.
Der kan benyttes ”Uniconta script” som er et eget udviklet sprog, der kan benyttes til at skrive simple formler i. Ønsker man at benytte C# kode, er dette også en mulighed, dette skal blot vælges i oprettelsen af script.
Der sættes kryds i C# feltet. Så vil koden blive kompileret med den indbyggede C# kompiler og .Net kode vil blive afviklet. Herved har man hele det store programbibliotek til rådighed for at manipulere data eller vise beregnede felter.
Eksempler i C#
For at kunne opdatere sine data ved hjælp af C# kode, skal man have følgende indstillinger.
I Feltnavn vælger man det felt man ønsker at ændre.
For at kunne skrive kode, skal man vælge “Script” (Dette gælder i “Tildel ny feltværdi”)
Ønsker man at skrive C# skal man sætte hak i feltet “C#”
I “Script” feltet, kan man nu skrive den ønskede kode.
HUSK: Sæt det ønskede filter inden du opdatere alle data.
Erstat en tekst med en anden
Herover vises et eksempel på hvordan man, via “Tildel ny feltværdi”, ændre et årstal på et projektnavn til et nyt år.
Projektnavnet indeholder et årstal, og via “Tildel ny feltværdi” kan man erstatte (replace) en bestem værdi med en anden. Her et årstal, 2021 bliver erstattet med 2022.
rec.Number.Replace("2021", "2022");
Eksemplerne herunder benytter også rec.Number der er feltet for projektnummer
//Udskift en værdi med en anden
rec.Number.Replace("2020", "2021");
//Udskift en værdi med en intet
rec.Number.Replace("2020", "");
Find en værdi i en tekst streng
//Find værdien i strengen fra 0 til 3. tegn, (de tre første tegn)
rec.Number = “10501-2022”
rec.Number.Substring(0, 3);
Resultat= “105”
//Find værdien i strengen fra 2. tegn og 3 tegn frem
rec.Number = “10501-2022”
rec.Number.Substring(2, 3);
Resultat= “501”
Ændre datoværdier med år
rec.Date = rec.Date.AddYears(1);
Her et par eksempler fra kontoplanen
//Erstat et tegn på en bestemt position
//Fjern første tegn i en streng, feks. 0 forrest i kontonr. 01001
rec.Account = “01001”;
rec.Account.Substring(1, 4);
Resultat = “1001”
//Tilføj en værdi foran
rec.Account = “1001”;
0+rec.Account;
Resultat = “01001”
//Tilføj en værdi bagved
rec.Account = “1001”;
rec.Account+0;
Resultat = “10010”
Afrund tre, eller flere, decimaler til to
Math.Round([værdien], [antal decimaler], [afrundings mulighed])
rec.SalesPrice3 = 150.345;
// Runder ned
Math.Round(rec.SalesPrice3, 2, MidpointRounding.ToEven);
Resultat = 150,34
//Runder op
Math.Round(rec.SalesPrice3, 2, MidpointRounding.AwayFromZero);
Resultat = 150,35
Datoformat til tekstformat
// Ønsker man en datoværdi, fra et datofelt, indsat i et tekstfelt, kan man konvertere et datoformat fra dato til string, med nedenstående kode
// konvertering til kun en dato
rec.Date.ToString("dd-MM-yyyy")
//Konvertering til dato og tid
rec.Date.ToString("dd-MM-yyyy HH:mm:ss")
Tal og salgspriser
//Oprunding af salgspris1 til nærmeste 0,25 øre
return math.round((rec.SalesPrice1 + 0.12) * 4, 0) / 4
Eksempler uden brug af C#
Udregningsmetoder
Her kan man se de basale udregningsmetoder.
- + (Addition)
- – (Subtraction)
- * (Multiplication)
- / (Division)
- % (Modulus)
- – (Unary Minus)
Eksempler
- 5 + 10 * 2 // (equals 25)
- (5 + 10) * -2 // (equals -30)
- 6 * 5 – 2 / 2 // (equals 29)
- 6 * (5 – 2) / 2 // (equals 9)
Et felt kan blive tildelt en værdi på 3 forskellige måder
- Direkte (=)
- Via multiplikation (+=)
- Via subtration (-=)
Eksempler
- Count = 10; // Counter set to 10
- Count += 1; // Counter is increment by 1 and becomes 11
- Total += Amount; // Amount is added to the Total
Matematiske operationer
- and (&&)
- or (||)
- xor (^)
- == // equal
- != // not equal
- > // greater than
- >= // greater or equal than
- < // less than
- <= // less or equal than
Eksempler
- (5 > 3) // true
- (5 + 4 >= 3* 4) // false
- (Count > 0 and Aborted != 0)
- (Total != MaxValue or Total * 100 / SumOfAll >= 50)
Logical
Et ekspempel på hvordan man kan lave en if-sætning i beregnede felter mm.
if (rec.IncludeInDiscount== 1) {
“Discount is acceptet”
}
else
{
“Discount is not allowed”
}
- Var denne artikel til hjælp? Har du spørgsmål til denne artikel, så klik her: Uniconta Support
- JaNej