Senast uppdaterad: 2025-03-31
Syntax – HTML-rapporter
I den här artikeln
Texten i HTML-rapporter kan formateras med vanliga HTML-taggar, till exempel <p>text</p> för stycken (paragraph) och <b>text</b> för fetstilt (bold). Mer information finns i https://www.w3schools.com/asp/razor_syntax.asp och https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-8.0.
Taggarna i rapporter av typen HTML utgår från klassen Delivery. Taggar från andra klasser behöver det prefix
som står i kolumnen Klass/prefix i tabellerna i Förteckning över taggar. Prefixet skiljs från taggen med punkt, till exempel Customer.CUS_Name.
Syntax: @Model.prefix.tagg
I det här exemplet, som hämtar ordernumret, behövs inget prefix eftersom DEL_Id ligger i klassen Delivery.
I nedanstående exempel, som hämtar telefonnumret till transportföretaget från kontorsinställningarna, ligger OFF_PhoneNo i klassen Office, som därför måste användas som prefix.
Om du lägger till en tagg i en HTML-rapport med fel prefix, eller stavar fel i taggen, fungerar inte aviseringen och ett felmeddelande om att det inte finns någon rapport visas när aviseringen genereras.
Listor
Vissa objekt kan det finnas många instanser av i en order, till exempel kollin och uppdrag. För att kunna visa information om sådana objekt i rapporten måste du kombinera taggen med en listtagg, så att alla instanser av objektet räknas upp. Resultatet blir en lista med en eller flera poster.
Listan i rapporten kan utformas på olika sätt. Du kan skriva en rubrik för hela listan, eller en beskrivning som upprepas på varje rad. Du kan även kombinera flera taggar som hör till samma lista och på så sätt skapa en lista med till exempel kollinummer och vikt för varje kolli på en order.
Posterna i listan behöver inte vara siffror, utan kan även vara text, till exempel PAC_Text, som returnerar fritextfältet för kollina på en order.
Syntax:
Valfri text
@foreach(var item in Model.listtagg.ActiveItems)
{
<text>Valfri text: @item.tagg</text><br/>
}
Exempel 1
Lista med kollinummer och en beskrivning för varje rad.
Returnerar listan i följande format.
Kollinr: 123456
Kollinr: 356789
Kollinr: 986554
Exempel 2
Lista med kollinummer och en överskrift för hela listan.
<b>Kollin</b><br>
@foreach(var item in Model.Packages.ActiveItems)
{
<text>@item.PAC_PackageId</text><br/>
}
Returnerar listan i följande format.
Kollin
123456
356789
986554
Exempel 3
Lista med kollinummer, vikt och godsmärkning.
<b>Kollin</b><br>
@foreach(var item in Model.Packages.ActiveItems)
{
<text>@item.PAC_PackageId: @item.PAC_Weight kg (@item.PAC_Text)</text><br/>
}
Returnerar listan i följande format. Om något av kollina inte har någon godsmärkning visas en tom parentes.
Kollin
123456: 1,200000 kg (Mapp med dokument)
356789: 3,400000 kg (Ömtåligt)
986554: 5,600000 kg (Tillbehör)
Bilder i listor
Se nedan.
Siffror
Tal sparas med sex decimaler i Opter-databasen. Om du vill avrunda till färre än sex decimaler skriver du en formattagg och antalet decimaler som ska visas enligt mönstret 0.00 i taggen som returnerar talet. Antalet nollor efter decimalpunkten bestämmer antalet decimaler.
Om du vill utesluta betydelselösa nollor i slutet av talet (2,7 istället för 2,70), men skriva ut decimalen om det inte är en nolla (2,73), skriver du #-tecken för så många decimaler som du vill visa.
Syntax: @Model.prefix.tagg för numeriskt värde.ToString("0.######")
Exempel 1
Alltid två decimaler oavsett om de har ett värde eller inte.
<b>Vikt</b><br>
@foreach(var item in Model.Packages.ActiveItems)
{
<text>@item.PAC_Weight.ToString("0.00") kg </text><br/>
}
Returnerar en lista i följande format.
Vikt
2,00 kg
2,70 kg
12,74 kg
Exempel 2
Visar upp till tre decimaler om de har ett värde.
<i>Vikt</i><br>
@foreach(var item in Model.Packages.ActiveItems)
{
<text>@item.PAC_Weight.ToString("0.###") kg </text><br/>
}
Returnerar en lista i följande format.
Vikt
2 kg
2,7 kg
12,738 kg
Exempel 3
Alltid tvåställiga heltal och två decimaler.
<u>Vikt</u><br>
@foreach(var item in Model.Packages.ActiveItems)
{
<text>@item.PAC_Weight.ToString("00.00") kg</text><br/>
}
Returnerar en lista i följande format.
Vikt
02,00 kg
02,70 kg
12,74 kg
Bilder
Du kan lägga in bilder i rapporter, till exempel logotyper som har angetts i kontorsinställningarna.
Syntax: <img src="data:image/png;base64,@(Convert.ToBase64String(Model.prefix.tagg))">
Följande hämtar den stora bilden från kontorsinställningarna.
<p>Hej!</p>
<p>Din order från @Model.StartAddress.ADR_AddrLine1 är på väg.</p>
<p>Mvh</p>
<p>
@if (Model.Image != null)
{
<p>
<img src="data:image/png;base64,@(Convert.ToBase64String(Model.Office.OFF_LargeImage))" width="128" height="128"/>
</p>
}
</p>
</body>
</html>
Returnerar följande.
Hej!
Din order från Opter är på väg.
Mvh
Bilder i listor
Om ni vill lägga till bilder från till exempel avvikelser eller leveransbevis, som det kan finnas flera instanser av på en order (se avsnittet ”Listor” ovan), måste du först ta fram listan och sedan kontrollera om det finns en bild för att det ska gå att skicka aviseringen även om det inte finns någon bild.
Syntax:
Valfri text
@foreach(var item in Model.listtagg.ActiveItems)
{
<text>Valfri text: @item.tagg</text><br/>
@if (item.Image != null)
{
<p>
<img src="data:image/png;base64,@(Convert.ToBase64String(Model.Image))">
</p>
}
}
@if (item.Image != null) (rad 14) kontrollerar om det finns någon bild på avvikelsen (ej lika med ”null”) och sätter in den i mailet om det finns en.
<html>
<body>
<p>Hej @Model.CRE_Name!</p>
<p>Det har registrerats en avvikelse på order @Model.DEL_Id från @Model.ADR_AddrLine1From till @Model.ADR_AddrLine1To.</p>
<p>
Kommentar:<br/>
@foreach(var item in Model.Damages.ActiveItems)
{
<text>@item.DAM_Comment</text><br/>
@if (item.Image != null)
{
<p>
<img src="data:image/png;base64,@(Convert.ToBase64String(item.Image))" />
</p>
}
}
</p>
<p>Med vänlig hälsning</p>
<p>@Model.Office.OFF_Name</p>
</body>
</html>
Returnerar följande.
Hej Anton Larsson!
Det har registrerats en avvikelse på order 159 från Opter AB till H&M.
Kommentar:
Föll från lasbryggan.
Med vänlig hälsning
Opter