Senast uppdaterad: 2024-06-05
App.Design
I App.Design kan du anpassa layouten i Opter Driver (classic) för Android.
App.Design används för Opter Driver (classic) för Android. (App.Design kan användas även för de andra varianterna av Opter Driver, men då kan du inte använda all ny funktionalitet.) Information om hur du anpassar Opter Driver för iOS och Opter Driver Labs för Android finns i Anpassa layout och funktioner i Opter Driver och Ställa in vilka fält som visas i Opter Driver.
Den här artikeln beskriver grunderna och strukturen i App.Design. Mer information finns i specialartiklarna:
Du öppnar App.Design i Opters interna editor genom att klicka på Inställningar > Mobildata > Inställningar mobildata, och sedan på Redigera bredvid App.Design. Du bör ha vissa grundkunskaper om XML om du vill redigera filen.
Alla andra fönster i Opter är låsta när Layout - appar är öppet, men du kan växla mellan olika fönster som redan är öppna. Om du behöver se information i andra fönster kan du öppna dem innan du öppnar Layout - appar.
I en nyinstallation av Opter ser App.Design ut så här.
<?xml version="1.0" encoding="utf-8"?>
<designs>
<design designname="Standard" default="true">
<summaryrows>
<row>
<item itemname="CURRENTSTATUS" width="60" />
<item itemname="EARLIESTPICKUPTIME" width="20" />
<item itemname="LATESTDELIVERYTIME" width="20" />
</row>
<row>
<item itemname="ADDRESSFROM,' / ',STREETFROM,' ',STREETNOFROM,' / ',CITYFROM" width="100" />
</row>
<row>
<item itemname="ADDRESSTO,' / ',STREETTO,' ',STREETNOTO,' / ',CITYTO" width="100" />
</row>
</summaryrows>
<expandedrows>
<row>
<item itemname="CURRENTSTATUS" width="50" font="LARGE" />
<item itemname="CUSTOMER" width="50" font="LARGE" />
</row>
<row>
<item itemname="SERVICETYPE" width="50" font="LARGE" />
<item itemname="ORDERDATE" width="50" font="LARGE" />
</row>
<!-- Sender -->
<row>
<item itemname="'Lastas'" width="50" font="LARGEBOLD" />
<item itemname="EARLIESTPICKUPTIME" width="25" font="LARGEBOLD" />
<item itemname="'-'" width="5" font="LARGEBOLD" />
<item itemname="LATESTPICKUPTIME" width="25" font="LARGEBOLD" />
</row>
<row>
<item itemname="ADDRESSFROM" multiline="false" width="100" font="LARGEBOLD" />
</row>
<row>
<item itemname="STREETFROM,' ',STREETNOFROM" width="100" font="LARGE" />
</row>
<row>
<item itemname="ADDRESS2FROM" width="100" font="LARGEBOLD" />
</row>
<row>
<item itemname="ADDRESS3FROM" width="100" font="LARGEBOLD" />
</row>
<row>
<item itemname="ZIPCODEFROM,' ',CITYFROM" width="100" font="LARGE" />
</row>
<row>
<item itemname="PHONEFROM" width="100" font="LARGE" />
<item itemname="'PK: ',ENTRECODEFROM" condition="ENTRECODEFROM" width="100" font="LARGE" />
</row>
<row>
<item itemname="SENDERREFERENCE" width="100" font="LARGE" />
</row>
<!-- Mottaker oppdrag -->
<row>
<item itemname="'Lossas'" width="50" font="LARGEBOLD" />
<item itemname="EARLIESTDELIVERYTIME" width="25" font="LARGEBOLD" />
<item itemname="'-'" width="5" font="LARGEBOLD" />
<item itemname="LATESTDELIVERYTIME" width="25" font="LARGEBOLD" />
</row>
<row>
<item itemname="ADDRESSTO" multiline="false" width="100" font="LARGEBOLD" />
</row>
<row>
<item itemname="STREETTO,' ',STREETNOTO" width="100" font="LARGE" />
</row>
<row>
<item itemname="ADDRESS2TO" width="100" font="LARGEBOLD" />
</row>
<row>
<item itemname="ADDRESS3TO" width="100" font="LARGEBOLD" />
</row>
<row>
<item itemname="ZIPCODETO,' ',CITYTO" width="100" font="LARGE" />
</row>
<row>
<item itemname="PHONETO" width="100" font="LARGE" />-->
<item itemname="'PK: ',ENTRECODETO" condition="ENTRECODETO" width="100" font="LARGE" />
</row>
<row>
<item itemname="RECEIVERREFERENCE" width="100" font="LARGE" />
</row>
<row>
<item itemname="CUSTOMERPROJECT" width="50" font="LARGE" />
<item itemname="PROJECTNUMBER" width="50" font="LARGE" />
</row>
<!-- Avsender/Mottaker ordre -->
<row>
<item itemname="'Avsändare'" width="60" font="LARGEBOLD" />
</row>
<row>
<item itemname="DELIVERYADDRESSFROM" width="100" font="LARGE" />
</row>
<row>
<item itemname="DELIVERYSTREETFROM" width="100" font="LARGE" />
<item itemname="DELIVERYCITYFROM" width="100" font="LARGE" />
</row>
<row>
</row>
<row>
<item itemname="'Mottagare'" width="60" font="LARGEBOLD" />
</row>
<row>
<item itemname="DELIVERYADDRESSTO" width="100" font="LARGE" />
</row>
<row>
<item itemname="DELIVERYSTREETTO" width="100" font="LARGE" />
<item itemname="DELIVERYCITYTO" width="100" font="LARGE" />
</row>
<row>
</row>
<!-- Dimensions -->
<row>
<item itemname="PACKAGES,' kli'" condition="PACKAGES" width="40" font="LARGEBOLD" />
<item itemname="WEIGHT,' kg'" condition="WEIGHT" width="60" font="LARGEBOLD" />
</row>
<row>
<item itemname="VOLUME,' m3'" condition="VOLUME" width="33" font="LARGEBOLD" />
<item itemname="LOADMETER,' flm'" condition="LOADMETER" width="33" font="LARGEBOLD" />
<item itemname="AREA,' ppl'" condition="AREA" width="33" font="LARGEBOLD" />
</row>
<row>
<item itemname="'Tillägg:'" condition="ADDSERVICECOUNT" width="100" font="LARGEBOLD" />
</row>
<row>
<item itemname="ADDSERVICE.QUANTITY" width="20" />
<item itemname="ADDSERVICE.NAME" width="80" />
</row>
<row>
<item itemname="'Lösaföremål:'" condition="LOOSEITEMCOUNT" width="100" font="LARGEBOLD" />
</row>
<row>
<item itemname="LOOSEITEM.NAME" width="20" />
<item itemname="LOOSEITEM.STARTINGQUANTITY" width="80" />
<item itemname="LOOSEITEM.ENDINGQUANTITY" width="80" />
</row>
<row>
<item itemname="'Kollin:'" condition="PACKAGECOUNT" width="100" font="LARGEBOLD" />
</row>
<row>
<item itemname="'A'" condition="PACKAGECOUNT" width="5" />
<item itemname="'KT'" condition="PACKAGECOUNT" width="12" />
<item itemname="'VIKT'" condition="PACKAGECOUNT" width="18" />
<item itemname="'L'" condition="PACKAGECOUNT" width="11" />
<item itemname="'B'" condition="PACKAGECOUNT" width="11" />
<item itemname="'H'" condition="PACKAGECOUNT" width="11" />
<item itemname="'KLI ID'" condition="PACKAGECOUNT" width="32" />
</row>
<row>
<item itemname="PACKAGE.QUANTITY" width="5" />
<item itemname="PACKAGE.PACKAGETYPE" width="12" />
<item itemname="PACKAGE.WEIGHT" width="18" />
<item itemname="PACKAGE.DEPTH" width="11" />
<item itemname="PACKAGE.WIDTH" width="11" />
<item itemname="PACKAGE.HEIGHT" width="11" />
<item itemname="PACKAGE.PACKAGEID" width="32" />
</row>
<row>
<item itemname="'POD:'" condition="PODCOUNT" width="100" font="LARGEBOLD" />
</row>
<row>
<item itemname="POD.DATE" width="25" />
<item itemname="POD.TIME" width="25" />
<item itemname="POD.NAME" width="50" />
</row>
<row>
<item itemname="'Avvikelser:'" condition="DAMAGECOUNT" width="100" font="LARGEBOLD" />
</row>
<row>
<item itemname="DAMAGE.TYPE" width="35" />
<item itemname="DAMAGE.COMMENT" width="65" />
</row>
<row>
<item itemname="'Artiklar:'" condition="PRICEITEMCOUNT" width="100" font="LARGEBOLD" />
</row>
<row>
<item itemname="PRICEITEM.UNIT1QUANTITY" width="25" />
<item itemname="PRICEITEM.UNIT1NAME" width="25" />
<item itemname="PRICEITEM.DESCR" width="50" />
</row>
<!-- Message -->
<row>
<item itemname="SENDERINSTRUCTION" width="100" font="LARGE" />
</row>
<row>
<item itemname="DRIVERMESSAGEFROM" width="100" font="LARGE" />
</row>
<row>
<item itemname="DRIVERMESSAGETO" width="100" font="LARGE" />
</row>
<row>
<item itemname="DRIVERMESSAGE" width="100" font="LARGE" />
</row>
</expandedrows>
<podrows>
<row>
<item itemname="CUSTOMER" width="50" />
<item itemname="CUSTOMERLOGOTYPE" width="40" />
</row>
<row>
<item itemname="'$from;',': ',DELIVERYADDRESSFROM"/>
</row>
<row>
<item itemname="'$to;',': ',ADDRESSTO"/>
</row>
<row>
<item itemname="'$package_quantity;',': ',PODPACKAGECOUNT" condition="PODPACKAGECOUNT"/>
</row>
</podrows>
<scanrows>
<row>
<item font="BOLD" itemname="CREDITEDTOOTHERRESOURCEBLOCK"/>
</row>
<row>
<item font="BOLD" itemname="CREDITEDTOOTHERRESOURCEWARNING"/>
</row>
<row>
<item font="BOLD" itemname="CREDITEDTOOTHERRESOURCE"/>
</row>
<row>
<item itemname="STATUS,PACKAGECOUNT"/>
</row>
<row>
<item itemname="PACKAGE.PACKAGEID,' ',PACKAGE.STATUS,' ',PACKAGE.SCANTIME,' ',PACKAGE.RESOURCE,' ',PACKAGE.HUBNAME,' ',PACKAGE.DIMENSIONS" multiline="true"/>
</row>
<row>
<item itemname="ADDRESSINDEXTITLE,ADDRESSINDEX"/>
</row>
<row>
<item itemname="FREIGHTBILLTITLE,FREIGHTBILL"/>
</row>
<row>
<item itemname="PACKAGEIDTITLE,PACKAGEID"/>
</row>
<row>
<item itemname="ADDRESSFROMTITLE,ADDRESSFROM"/>
</row>
<row>
<item itemname="ADDRESSTOTITLE,ADDRESSTO"/>
</row>
</scanrows>
<scandetailrows>
<row>
<item font="BOLD" itemname="CREDITEDTOOTHERRESOURCEBLOCK"/>
</row>
<row>
<item font="BOLD" itemname="CREDITEDTOOTHERRESOURCEWARNING"/>
</row>
<row>
<item font="BOLD" itemname="CREDITEDTOOTHERRESOURCE"/>
</row>
<row>
<item itemname="STATUS,PACKAGECOUNT"/>
</row>
<row>
<item itemname="ORDERIDTITLE,ORDERID"/>
</row>
<row>
<item itemname="FREIGHTBILLTITLE,FREIGHTBILL"/>
</row>
<row>
<item itemname="PACKAGEIDTITLE,PACKAGEID"/>
</row>
<row>
<item itemname="ADDRESSTOTITLE"/>
</row>
<row>
<item itemname="ADDRESSTO"/>
</row>
<row>
<item itemname="STREETTO,STREETNOTO"/>
</row>
<row>
<item itemname="ZIPCODETO,CITYTO"/>
</row>
<row>
<item itemname="ADDRESSFROMTITLE"/>
</row>
<row>
<item itemname="ADDRESSFROM"/>
</row>
<row>
<item itemname="STREETFROM,STREETNOFROM"/>
</row>
<row>
<item itemname="ZIPCODEFROM,CITYFROM"/>
</row>
</scandetailrows>
</design>
</designs>
Avsnitten i App.Design
Varje del i Opter Driver motsvaras av ett avsnitt i App.Design. Du kan minimera och expandera avsnitten med och
i editorn.
Om något av avsnitten inte finns med i er App.Design används en standardvy.
-
<summaryrows> = uppdragslistorna på flikarna Nytt, Att göra och Klart.
-
<expandedrows> = detaljvyn.
-
<podrows> = POD-vyn.
-
<scanrows> = skanningslistan på fliken Skanna.
-
<scandetailrows> = detaljvyn för skanningar.
Ändringar som görs i App.Design sparas när du klickar på Spara i fönstret Mobildatainställningar, och syns i appen när förarna har loggat ut och in igen.
Om något avsnitt som du vill anpassa saknas i App.Design kan du kopiera avsnittet från fabriksinställningen ovan och utgå från det istället för att bygga upp avsnittet från scratch.
<summaryrows>, uppdragslistorna på flikarna Nytt, Att göra och Klart
Här ställer du in vad som visas på uppdragen i uppdragslistorna. Villkor, färger och beräkningar kan användas. Du kan ha olika inställningar för olika kunder, fordonstyper och tjänster.
<expandedrows>, detaljvyn
Här ställer du in vad som visas när föraren öppnar ett uppdrag genom att trycka på det i någon av uppdragslistorna. Villkor, färger och beräkningar kan användas. Du kan ha olika inställningar för olika kunder, fordonstyper och tjänster.
<podrows>, POD-vyn
Här ställer du in vad som visas när mottagaren ska signera leveransbeviset efter att ett uppdrag har lossats. Villkor, färger och beräkningar kan användas. Du kan ha olika inställningar för olika kunder, fordonstyper och tjänster.
<scanrows>, skanningslistan på fliken Skanna
Här ställer du in vad som visas i listan när föraren har skannat kollin eller fraktsedlar. Villkor, färger och beräkningar kan inte användas. Mer information finns i Skanningslistan i Opter Driver.
<scandetailrows>, detaljvyn för skanningar
Här ställer du in vad som visas när föraren öppnar en skanning genom att långtrycka på en skanning i listan och välja Mer information…. Villkor, färger och beräkningar kan inte användas.
Syntax
Du anpassar vilken information som visas för uppdragen genom att lägga till rader i de olika avsnitten med taggparet <row></row>. Du kan lägga till flera element på samma rad.
All information och layout läggs i <item>-taggar inom <row>-taggarna.
<row>
<item itemname="ORDERDATE" width="50" font="LARGE" />
</row>
<row>
<item itemname="CURRENTSTATUS" font="NORMAL" />
<item itemname="EARLIESTPICKUPTIME" font="NORMAL" />
<item itemname="LATESTDELIVERYTIME" font="NORMAL" />
</row>
Parametrar för <item>
Värdena för alla parametrar måste stå inom dubbla raka citattecken ("), se kodexempel. Flera värden för samma parameter avgränsas med kommatecken (,).

Text och siffror som visas i appen. Kan vara ren text eller variabler som hämtar information från systemet. Mer information om variabler finns i Platshållare i App.Design. Ren text måste stå inom enkla citattecken (utöver att värdet i sig måste stå inom dubbla citattecken).
<item itemname="'Lastas'" />
Om du vill skriva komma (,) och punkt (.) i appen använder du variablerna COMMA och DOT eftersom kommatecken och punkt används för att avgränsa olika värden inom en parameter.
Om du till exempel vill skriva ”Lev.info: ” gör du enligt exemplet nedan. Varje del i ”Lev.info: ” räknas som enskilda värden, och avgränsas därför med kommatecken. Den rena texten måste skrivas inom enkla citattecken ('Lev' och 'info: '), men variabeln DOT behöver inte några citattecken. Blanksteget efter kolonet är för att få ett blanksteg före värdet som hämtas av variabeln ADDRESSINFOTO. Slutligen omges hela värdet för itemname (textsträngen + variabeln) med dubbla citattecken.
<row>
<item itemname="'Lev',DOT,'info: ',ADDRESSINFOTO" />
</row>
Returnerar

Kan endast användas i <expandedrows>, <scanrows> och <scandetailrows>.
-
”true” = värdet för itemname fortsätter på nästa rad istället för att kapas om det inte får plats på en rad.
-
”false” = värdet för itemname kapas om det inte får plats på en rad. Om du inte anger något värde för multiline räknas det som ”false”.
I nedanstående exempel får inte den information som hämtas av variablerna plats på en rad. Därför sätts multiline="true". Annars hade texten kapats efter ”2022-05-18”.
<row>
<item itemname="PACKAGE.PACKAGEID,' ',PACKAGE.STATUS,' ',PACKAGE.SCANTIME,' ',PACKAGE.RESOURCE,' ',PACKAGE.HUBNAME,' ',PACKAGE.DIMENSIONS" multiline="true"/>
</row>

Bredden på elementen. Om du har flera element på en rad läggs de efter varandra. Om den totala bredden överstiger maxbredden på skärmen visas inte de delar som inte får plats (se även multiline ovan). Om ingen bredd anges används hela skärmens bredd.
Bredden anges som en del av summan av alla värden för width på en rad. Om summan av alla värden för width på en rad uppgår till 100 och ett element har width="5" tar det elementet upp 5 % av radens totala bredd. Om summan av alla värden för width på en rad är 50 tar ett element med width="5" upp 10 % av radens totala bredd.
Om du alltid vill kunna räkna bredden i procent ser du till att summan av alla width på en rad alltid är 100.
Genom att ange samma width för elementen på flera rader kan du bygga upp en tabell, eftersom informationen på raderna hamnar rakt under varandra. I exemplet nedan tar kolumnrubriken, ”Kollin:” upp hela bredden på den första raden (inget värde har angetts för width). Den andra raden är tabellhuvudet med överskrifter i ren text (enkla citattecken). Den tredje raden är värden som hämtas från systemet. Lägg märke till att värdena för width är samma på andra och tredje raden.
Den första kolumnen, ”A”, är 5 enheter bred, nästa kolumn, ”KT”, ligger direkt till höger om kolumnen ”A”, och är 12 enheter bred. Totalt är hela raden 100 enheter bred (5+12+18+11+11+11+32), vilket innebär att värdena för width i praktiken är ett procenttal.
<row>
<item itemname="'Kollin:'" font="LARGEBOLD" />
</row>
<row>
<item itemname="'A'" width="5" />
<item itemname="'KT'" width="12" />
<item itemname="'VIKT'" width="18" />
<item itemname="'L'" width="11" />
<item itemname="'B'" width="11" />
<item itemname="'H'" width="11" />
<item itemname="'KLI ID'" width="32" />
</row>
<row>
<item itemname="PACKAGE.QUANTITY" width="5" font="SMALL" />
<item itemname="PACKAGE.PACKAGETYPE" width="12" font="SMALL" />
<item itemname="PACKAGE.WEIGHT" width="18" font="SMALL" />
<item itemname="PACKAGE.DEPTH" width="11" font="SMALL" />
<item itemname="PACKAGE.WIDTH" width="11" font="SMALL" />
<item itemname="PACKAGE.HEIGHT" width="11" font="SMALL" />
<item itemname="PACKAGE.PACKAGEID" width="32" font="SMALL" />
</row>
Returnerar

Fördefinierad storlek och stil på texten i appen.
-
NORMAL: Teckenstorlek 14. Används också om font inte specificeras alls.
-
LARGE: Teckenstorlek 20.
-
BOLD: Fetstil i normal storlek (14).
-
LARGEBOLD: Fetstil, teckenstorlek 20.
<summaryrows>
<row>
<item itemname="CURRENTSTATUS" font="LARGE" />
<item itemname="EARLIESTPICKUPTIME" font="LARGEBOLD" />
<item itemname="LATESTDELIVERYTIME" font="LARGEBOLD" />
</row>
<row>
<item itemname="'Lev',DOT,'info: ',ADDRESSINFOTO" condition="ADDRESSINFOTO" />
</row>
<row>
<item itemname="'Hämtn',DOT,'info: ',ADDRESSINFOFROM" condition="ADDRESSINFOFROM" font="NORMAL" />
</row>
<row>
<item itemname="ADDRESSFROM,' / ',STREETFROM,' ',STREETNOFROM,' / ',CITYFROM" width="100" font="BOLD" />
</row>
<row>
<item itemname="ADDRESSTO,' / ',STREETTO,' ',STREETNOTO,' / ',CITYTO" width="100" font="BOLD" />
</row>
</summaryrows>
Ovanstående kod ger följande teckensnitt:
-
Rad 3: LARGE
-
Rad 4 + 5: LARGEBOLD
-
Rad 8: Inget värde för font = NORMAL
-
Rad 11: NORMAL
-
Rad 14 + 17: BOLD
Kommentarer
All text mellan <!-- och --> i XML-filen visas endast i App.Design och påverkar inte layouten. Kommentarer visas med grön text i editorn. Texten i kommentaren <!-- Dimensions --> i nedanstående exempel är endast för info.
<!-- Dimensions -->
<row>
<item itemname="PACKAGES,' kli'" condition="PACKAGES" width="40" font="LARGEBOLD" />
<item itemname="WEIGHT,' kg'" condition="WEIGHT" width="60" font="LARGEBOLD" />
</row>
Om du vill återställa grundinställningarna för ett avsnitt kan du kommentera ut det genom att sätta det mellan <!-- och --> istället för att radera dina ändringar. På så sätt kan du använda dem igen vid ett senare tillfälle, eller använda dem i ett annat avsnitt.