Dela via


Anpassa kolumnrubriker i prognosrutnätet

Du kan anpassa kolumnrubrikerna i prognosrutnätet med hjälp av Power Apps kodkomponenter. Du kan till exempel översätta kolumnnamnet eller lägga till en knappbeskrivning för ytterligare sammanhang.

Licens- och rollbehörigheter

Kravtyp Du måste ha
Licens Dynamics 365 Sales Premium eller Dynamics 365 Sales Enterprise
Mer information: Prissättning för Dynamics 365 Sales
Säkerhetsroller Systemadministratör eller anpassare
Mer information: Fördefinierade säkerhetsroller för Sales

Lär dig hur du anpassar rubriken

Låt oss förstå anpassningar med ett exempel. Vi lägger till den franska översättningen för kolumnnamnen Prognos och Vunna i prognosrutnätet.

  1. Skapa en kodkomponent med namnet ColumnHeader
  2. Skapa en resursfil och lägg till översättningar
  3. Implementera manifest
  4. Implementera komponentlogiken
  5. Skapa och paketera komponenten

Skapa en resursfil och lägg till översättningar

När du har skapat kodkomponenten skapas ColumnHeader mappen i den sökväg du har angett. Nu ska vi skapa en resursfil och lägga till de franska översättningarna i resursfilen.

  1. Skapa en mapp med namnet strings under ColumnHeader mappen.

  2. Kopiera följande kod till en ny fil ColumnHeader.1036.resx.

    Kommentar

    Antalet 1036 i filnamnet är språkkoden för franska. En lista över språkkoder finns i denna artikel .

    <?xml version="1.0" encoding="utf-8"?>
    <root>
    
      <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
        <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
        <xsd:element name="root" msdata:IsDataSet="true">
          <xsd:complexType>
            <xsd:choice maxOccurs="unbounded">
              <xsd:element name="metadata">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="value" type="xsd:string" minOccurs="0" />
                  </xsd:sequence>
                  <xsd:attribute name="name" use="required" type="xsd:string" />
                  <xsd:attribute name="type" type="xsd:string" />
                  <xsd:attribute name="mimetype" type="xsd:string" />
                  <xsd:attribute ref="xml:space" />
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="assembly">
                <xsd:complexType>
                  <xsd:attribute name="alias" type="xsd:string" />
                  <xsd:attribute name="name" type="xsd:string" />
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="data">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                    <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
                  </xsd:sequence>
                  <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
                  <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
                  <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
                  <xsd:attribute ref="xml:space" />
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="resheader">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                  </xsd:sequence>
                  <xsd:attribute name="name" type="xsd:string" use="required" />
                </xsd:complexType>
              </xsd:element>
            </xsd:choice>
          </xsd:complexType>
        </xsd:element>
      </xsd:schema>
      <resheader name="resmimetype">
        <value>text/microsoft-resx</value>
      </resheader>
      <resheader name="version">
        <value>2.0</value>
      </resheader>
      <resheader name="reader">
        <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
      </resheader>
      <resheader name="writer">
        <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
      </resheader>
      <data name="Forecast" xml:space="preserve">
        <value>Prévision</value>
      </data>
      <data name="Won" xml:space="preserve">
        <value>Gagné</value>
      </data>
    </root>
    

    I exemplet ovan åsidosätts kolumnnamnen för Prognos och VUnna åsidosätts med franska översättningar Prévision och Gagné i noden <data>.

    Kommentar

    I parametern name anger du det exakta kolumnnamnet som du har konfigurerat i prognossteget Layout.

    En skärmbild av kolumnnamn i steget **Layout** prognoskonfiguration

    Om du vill översätta kolumnnamnet till ytterligare språk skapar du en resursfil för varje språk du vill översätta till. Kontrollera att resursfilnamnet använder följande namnkonvention:

    filename.languagecode.resx  
    **Example file name for German:** ColumnHeader.1031.resx
    

Implementera manifest

Nu ska vi ändra manifestfilen och ange vilken egenskap som ska åsidosättas. I vårt exempel åsidosätter vi ColumnName egenskapen. Vi anger också sökvägen till resursfilen som innehåller den översatta texten.

  1. Öppna ControlManifest.Input.XML-filen.

  2. Sök efter noden property och ersätt den med följande kod:

    <property name="columnName" display-name-key="Property_Display_Key" description-key="Property_Desc_Key" of-type="SingleLine.Text" usage="bound" required="true" />

  3. Uppdatera noden <resources> och ange sökvägen till resursfilen som innehåller de franska översättningarna:

    <resources>
      <code path="index.ts" order="1"/>
      <!-- UNCOMMENT TO ADD MORE RESOURCES
      <css path="css/ColumnHeader.css" order="1" />
      -->
      <resx path="strings/ColumnHeader.1036.resx" version="1.0.0" />
    </resources>
    

    Noden <resx path> innehåller sökvägen till resursfilen. I föregående kodexempel har vi lagt till resursfilen för det franska språket. Om du har översättningar för andra språk lägger du även till resursfilssökvägen för dessa språk.

Implementera komponentlogiken

Vi lägger till koden för att implementera komponentlogiken i index.ts filen.

  1. Öppna index.ts-filen.

  2. Lägg till följande rader i updateView metoden:

    public updateView(context: ComponentFramework.Context<IInputs>): void
        {
            // Add code to update control view
            const colName = (context.parameters.columnName && context.parameters.columnName.raw) || "";
            this._container.innerHTML = context.resources.getString(colName);
        }
    

Nästa steg