Last updated: 05.06.2024

App.Design

You can customise the layout of the Opter Driver (classic) for Android at App.Design.

App.Design used for Opter Driver (classic) for Android. (App.Design can also be used for the other variants of Opter Driver, but then you cannot use all the new functionality.) For information on how to customise Opter Driver for iOS and Opter Driver Labs for Android, see Customising the layout and features of Opter Driver and Setting which fields are displayed in Opter Driver.

This article describes the basics and structure of App.Design. For more information, see special articles:

To open App.Design in Opter’s internal editor, click on Settings > Mobile data > Settings mobile data, and then on Edit next to App.Design. It is good to have some basic knowledge of XML to edit the file.

All other windows in Opter are locked when Layout - apps is open, but you can switch between different windows that are already open. If you need to see information in other windows, you can open them before opening Layout - apps.

In a clean installation of Opter, App.Design looks like this.

Fabriksinställningar
<?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>

The sections of App.Design

Each part of Opter Driver corresponds to a section of App.Design. The sections can be minimised and maximised by using and in the editor. If one of the sections is not in your App.Design, a standard view is used.

  • <summaryrows> = the mission lists on the tabs New, Todo and Done.

  • <expandedrows> = detail view.

  • <podrows> = POD view.

  • <scanrows> = scan list on the tab Scan.

  • <scandetailrows> = detail view for scans.

Changes made in App.Design are saved when Save is clicked in the Mobile data settings window, and are visible in the app once the drivers have logged out and back in again.

If any section to be customised is missing in App.Design, it can be copied from the factory setting above in order to start from there instead of building the section from scratch.

<summaryrows>, the shipment lists on the New, Todo and Done tabs

This is where to set what should be displayed on the shipments in the shipment lists. Conditions, colours and calculations can be used. You can have different settings for different customers, vehicle types and services.

<expandedrows>, detail view

This is where to set what is displayed when the driver opens a shipment by tapping on it in one of the shipment lists. Conditions, colours and calculations can be used. You can have different settings for different customers, vehicle types and services.

<podrows>, the POD view

This is where to set what is displayed when the receiver signs the proof of delivery after a shipment has been unloaded. Conditions, colours and calculations can be used. You can have different settings for different customers, vehicle types and services.

<scanrows>, the scan list on the Scan tab

This is where to set what is shown in the list when the driver has scanned packages or freight bills. Conditions, colours and calculations cannot be used. For more information, see The scan list in Opter Driver.

<scandetailrows>, the detail view for scans

This is where to set what is displayed when the driver opens a scan by giving a long press on a scan in the list and selecting More information. Conditions, colours and calculations cannot be used.

Syntax

You customise the information displayed for the shipments by adding lines to the different sections with the tag pair <row></row>. Several elements can be added to the same row.

All information and layout is placed in <item> tags within <row> tags.

Visar orderdatum på en rad, och status, hämtningstid och leveranstid på nästa rad.
      <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>

Parameters for <item>

The values of all parameters must be enclosed within straight double quotes ("), see code example. Multiple values for the same parameter are delimited by commas (,).

Comments

Any text between <!-- and --> in the XML file will only appear in App.Design and will not affect the layout. Comments are displayed in green text in the editor. The text of the comment <!-- Dimensions --> in the example below is for info only.

Exempel
      <!-- Dimensions -->
      <row>
        <item itemname="PACKAGES,' kli'" condition="PACKAGES" width="40" font="LARGEBOLD" />
        <item itemname="WEIGHT,' kg'" condition="WEIGHT" width="60" font="LARGEBOLD" />
      </row>

If you want to restore the default settings for a section, you can comment it out by putting it between <!-- and --> instead of deleting your changes. This way it is possible to use them later on or in another section.

See also