Sigma
SigmaScript UI funktioner
Avancerede emner > SigmaScript > SigmaScript funktioner og objekter > SigmaScript UI funktioner

Glossary Item Box

SigmaScript funktioner, der anvendes til at definere indtastningsformularerne.

 

Funktion Beskrivelse Eksempel
DefaultValuesEnforce()

Hvis denne funktion er angivet i et SigmaScript vil værdier angivet i [Default] blive anvendt som input til feltet i stedet for standardværdi. Dette kan bruges til at sikre at værdien i et felt altid hænger sammen med en ekstern værdi, f.eks. en rapportvariabel.

DefaultValuesEnforce();
value := Project.GetReportVariable("value");
Project.SetReportVariable("value", GetText("Value:", value));

HideScriptErrors()

GetLastErrorText()

Benyttes til håndtering af fejl
HideScriptErrors();
projectSalaryQuantity := KeyFigures.Eval("SumByFilter(Quantity;Category=Wages*)");

errorText := GetLastErrorText();
if errorText <> "" then
   AddText("Error: " + errorText);

AddText("Quantity, salary: " + FormatFloat("#,##0.00", projectSalaryQuantity));
GetInteger(Text, [Default])

Indtastningsfelt til heltal.

quantity := GetInteger("Indtast mængde (heltal):", 100);
GetRequiredInteger(Text, [Default])

Indtastningsfelt til heltal. Skal udfyldes.

quantity := GetRequiredInteger("Indtast mængde (heltal):", 100);
GetIntegerMultiple(Text, Default, Multiple)

Spinbutton felt til valg af heltalsværdier. Parameteren "Multiple" angiver opløsningen af de tal der kan vælges. F.eks. vil Multiple=2 give brugeren mulighed for at vælge lige tal.

quantity := GetIntegerMultiple("Mængde:", 4, 2);
GetFloat(Text, [Default])

Indtastningsfelt til reelt tal (dvs. med mulighed for at angive decimaler)

quantity := GetFloat("Mængde:", 5.5);
GetRequiredFloat(Text, [Default])

Indtastningsfelt til reelt tal. Skal udfyldes.

quantity := GetRequiredFloat("Mængde:", 5.5);
GetText(Text, [Default])

Indtastningsfelt til tekst.

text := GetText("Angiv tekst:");
GetBoolean(Text, [Default]) Checkbox, der giver mulighed for at angive en sand/falsk værdi.

Følgende eksempel viser en checkbox, som giver mulighed for at indtaste enhedspris:

text := GetText("Tekst:");
quantity := GetFloat("Mængde:");
specifyUnitPrice := GetBoolean("Ønsker du at ændre enhedsprisen?");
if (specifyUnitPrice) then
begin
    costPrice := GetFloat("Enhedspris:");
end;
GetMemo(Text, Lines, [Default], [AutoTextFile])

Tekst indtasningsfelt med mulighed for at indtaste flere linjer. Parameteren "Lines" angiver hvor mange linjer der skal vises.

I AutoTextFile kan angives en tekstfil indeholdende linjer med tekster. Der kan benyttes en absolut sti, eller en relativ i forhold til mappen Data filer.

Dette vil resultere i at der vises en knap over indtastningsfeltet, som folder en menu ud hvorfra teksterne fra filen kan vælges. Det er muligt at benytte indryk i filen for at skabe flere niveauer i menuen.

note := GetMemo("Note:", 5, "Angiv tekst til note");
GetChoice(Text, [Default], Choice, ...) Giver mulighed for at vælge fra en dropdown liste af muligheder. Returnerer nummeret på det valgte element i listen, startende fra 0 som første element.

Eksempel på en "mini-konfigurator" til at vælge transportmiddel:

type := GetChoice("Vælg type af køretøj:", 0, "", "Motorcykel", "Bil", "Lastbil");
if (type = 1) then // motorcykel
begin
    brand := GetChoice("Vælg mærke:", 0, "", "Yamaha", "Harley", "Andre");
end
else if (type = 2) then // bil
begin
    brand := GetChoice("Vælg mærke:", 0, "", "BMW", "Opel", "Renault", "Andre");
    doors := GetChoice("Antal døre:", 0, "", "2", "3", "4", "5");
end
else if (type = 3) then // lastbil
begin
    brand := GetChoice("Vælg mærke:", 0, "", "Iveco", "Volvo", "Scania", "Andre");
end;
GetChoiceFromFileRow(Text, FileName) Opretter en dropdown boks med værdier fra første række i den angivne CSV fil.

Følgende eksempel viser hvorledes funktionerne GetChoiceFromFileRow(), GetChoiceFromFileColumn() og KeyFigures.TableLookup() fungerer. Der skal oprettes en CSV fil i Sigma data mappen, med følgende indhold: (indeholder afstande mellem et par udvalgte byer)

;Sorø;Roskilde;Tølløse
Sorø;0;47,8;27,6
Roskilde;47,8;0;25,6
København;80,2;35,7;60,0

Dialog script:

filename := "#Sigma_DataPath#\TableLookupTestData.csv";
source := GetChoiceFromFileRow("Fra:", filename);
destination := GetChoiceFromFileColumn("Til:", filename);
distance := KeyFigures.TableLookup(filename, source, destination);
AddText("Afstanden fra '" + source + "' til '" + destination + "' er " + distance + " km");
GetChoiceFromFileColumn(Text, FileName) Opretter en dropdown boks med værdier fra første kolonne i den angivne CSV fil.
GetRadioChoice(Text, [Default], Choice, ...) Samme som GetChoice() ovenfor, blot vises valgmuligheder med såkaldte "radio knapper" i stedet.
choice := GetRadioChoice("Vælg én af følgende:", 0, "Nummer 1", "Nummer 2");
GetDate(Text, [Default]) Viser en datovælger. Hvis ikke der angives en Default værdi anvendes dags dato
startDate := GetDate("Angiv startdato:", AddDays(Now(), 1));
AddLine() Tilføjer en horisontal linje.

Eksempel på opbygning af en indtastningsformular i SigmaScript, med brug af diverse funktioner:

SetTitle("SigmaScript eksempel");
UseImage("billede1");
UseComment("Dette er et eksempel på opbygning af formularer i SigmaScript");
AddPage("Komponent værdier");
AddHeader("Indtast værdier");
AddText("Mængde/enhedspris:");
quantity := GetFloat("Mængde:");
unitprice := GetFloat("Enhedspris");
SetStatusText("Kostpris=" + quantity * unitprice);
AddSpace(50);
AddImage("","#Sigma_DataPath#\MyImage.jpg");
AddText("Tekst felter:");
text := GetText("Tekst:");
note := GetMemo("Note:", 5);
Require(quantity * unitprice > 100, "Kostpris skal være mindst 100");
AddSpace(Height) Indsætter en blank linje med den angivne højde i pixels.
SetTitle(Text) Angiver titlen for indtastningsvinduet.
SetStatusText(Text) Skriver en tekst i bunden af indtastningsvinduet
UseComment(Text) Kommentar, der skrives i toppen af vinduet.
AddHeader(Text) Overskrift.
AddText(Text) Almindelig tekst.
ShowText(Text1, Text2) Almindelig tekst i to kolonner.
UseImage(Image, [Width, Height]) Viser det angivne billede fra projekt billeder, eventuelt med angivelse af bredde og højde i det variable billedefelt i venstre side.
UseComponentImage([Width, Height]) Viser billedet fra komponenten, eventuelt med angivelse af bredde og højde i det variable billedefelt i venstre side.
AddImage(Text, Image, [Width, Height]) Viser det angivne billede. Billedenavnet kan enten være en reference til projekt billeder eller en absolut sti til et billede. Hvis ikke der er angivet bredde og højde vil billedet blive vist i sin fulde størrelse.
AddPage(Text) Tilføjer faneblad med den angivne titel.
DisplayWizardControls() Tilføjer knapper til at vælge "Næste" og "Forrige" til at skifte mellem de faneblade som er tilføjet med "AddPage".
Require(Expression, Text) Kræver at det pågældende udtryk er opfyldt, før brugeren får lov til at afslutte indtastningen.
ShowButton(Text1, Text2, [Enabled]) Viser en knap, med Text1 som label og Text2 som tekst på knappen. Den valgfri parameter Enabled angiver hvorvidt knappen skal være mulig at trykke på. For at knytte en kommando til knappen benyttes ControlActivated().

Eksempel på en knap som benyttes til at åbne et navngivet bibliotek

ShowButton("","Bibliotek1");
if ControlActivated() then
    Commands.OpenLibrary("Bibliotek1.sli");
ControlActivated() ControlActivated() returnerer 1 (sand) hvis den foregående kontrol netop er blevet aktiveret, ellers 0 (falsk). Kan benyttes med ShowButton og GetChoice.
SetControlWidth(Pixels) Efterfølgende indtastningsfelter får den angivede bredde, i stedet for deres standardbredde.
SetControlWidth(500);
ResetControlWidth() Hvis SetControlWidth har været benyttet vil efterfølgende kontroller have deres standardbredde.
ResetControlWidth();
SetLabelWidth(Pixels) Efterfølgende labels (teksterne i venstre kolonne) får den angivede bredde, i stedet for deres standardbredde. Dette kan også benyttes til at skjule kolonnen helt ved at sætte bredden til 0.
SetLabelWidth(0);
ResetLabelWidth() Hvis SetLabelWidth har været benyttet vil efterfølgende labels have deres standardbredde.
ResetLabelWidth();
SetControlAlignment(Alignment) Sætter tekstjustering for efterfølgende kontroller. Kan sættes til "Left" (standard), "Center" eller "Right".
SetControlAlignment("Right");
ShowReallocation() automatisk omfordeling
ShowSupplements() tillæg/fradrag
ShowValidation() Validering

©2011. All Rights Reserved.