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);
Ændre datoværdier med antal dage
Her tilføjet 210 dage til en eksisterende dato. Dvs. 7 ca. måneder rec.Date = rec.Date.AddDays(210);Indsæt dags dato
Ønsker man at indsætte dagsdato, kan man skrive: DateTime.Now.ToString("dd-MM-yyyy"); Formatet af datoen, kan varieres. Ovenstående er dag-måned-år. Herunder er et par eksempler, og ønsker man flere, må man søge på C# manualer til DateTime. 21-10-2023, skrives "dd-MM-yyyy" 21/10-2023, skrives "dd/MM-yyyy" 21. oktober 2023, skrives "dd. MMMM yyyy"DateTime.Now.ToString("MM-dd-yyyy HH:mm:ss");
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" //Fin længden på en tekst-stregn rec.Account = "101001";
rec.Account.Length;Resultat = 6
Afrund tre, eller flere, decimaler til to
Math.Round([værdien], [antal decimaler], [afrundings mulighed]) rec.SalesPrice3 = 150.345; // Runder nedMath.Round(rec.SalesPrice3, 2, MidpointRounding.ToEven);Resultat = 150,34 //Runder op
Math.Round(rec.SalesPrice3, 2, MidpointRounding.AwayFromZero);Resultat = 150,35
Afrunding af tal og salgspriser til nærmeste 0,25 øre
rec.SalesPrice1 = 150.345; //Oprunding af salgspris1 til nærmeste 0,25 øreMath.Round((rec.SalesPrice1)/25, 2, MidpointRounding.AwayFromZero)*25;Resultat = 150,25 //Oprunding af salgspris1 til nærmeste 0,25 øre
Math.Round((rec.SalesPrice1)/25, 2, MidpointRounding.AwayFromZero)*25;Resultat = 150,50
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 datorec.Date.ToString("dd-MM-yyyy")//Konvertering til dato og tid
rec.Date.ToString("dd-MM-yyyy HH:mm:ss")
Tekstformat til talformat
//Konvertering af et tekst til tal.Convert.ToDouble(rec.InvItem.TariffNumber) * rec.Qty;
Afrunding af tal og salgspriser til nærmeste 0,25 øre
//Oprunding af salgspris1 til nærmeste 0,25 øreMath.Round((rec.SalesPrice3)/25, 2, MidpointRounding.AwayFromZero)*25;
Eksempler uden brug af C#
Udregningsmetoder Her kan man se de basale udregningsmetoder.- + (Addition)
- - (Subtraction)
- * (Multiplication)
- / (Division)
- % (Modulus)
- - (Unary Minus)
- 5 + 10 * 2 // (equals 25)
- (5 + 10) * -2 // (equals -30)
- 6 * 5 – 2 / 2 // (equals 29)
- 6 * (5 – 2) / 2 // (equals 9)
- Direkte (=)
- Via multiplikation (+=)
- Via subtration (-=)
- 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
- (5 > 3) // true
- (5 + 4 >= 3* 4) // false
- (Count > 0 and Aborted != 0)
- (Total != MaxValue or Total * 100 / SumOfAll >= 50)