Tilpasse kolonneoverskrifter i prognosegitteret

Du kan tilpasse kolonneoverskrifter i prognosegitteret ved hjælp af Power Apps-kodekomponenter. Du kan f.eks. oversætte kolonnenavnet eller tilføje et værktøjstip for at få yderligere kontekst.

Licens- og rollekrav

Kravstype Du skal have
Licens Dynamics 365 Sales Premium eller Dynamics 365 Sales Enterprise
Flere oplysninger: Prisfastsættelse af Dynamics 365 Sales
Sikkerhedsroller Systemadministrator eller -tilpasser
Du kan finde flere oplysninger i Foruddefinerede sikkerhedsroller til Salg

Sådan tilpasser du overskriften

Lad os se på tilpasningerne med et eksempel. Vi tilføjer den franske oversættelse af kolonnenavnene Prognose og Vundet i prognosegitteret.

  1. Oprette en kodekomponent med navnet ColumnHeader
  2. Oprette en ressourcefil og tilføje oversættelser
  3. Implementere manifestet
  4. Implementere komponentlogikken
  5. Bygge og pakke komponenten

Oprette en ressourcefil og tilføje oversættelser

Når du har oprettet kodekomponenten, oprettes ColumnHeader-mappen på den sti, du har angivet. Lad os oprette en ressourcefil og tilføje de franske oversættelser i ressourcefilen.

  1. Opret en mappe med navnet strings under mappen ColumnHeader.

  2. Kopiér følgende kode til en ny fil ColumnHeader.1036.resx.

    Bemærk

    Tallet 1036 i filnavnet er sprogkoden for fransk. Du kan se en liste over sprogkoder i denne 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 ovenstående kodeeksempel overskrives kolonnenavnene for Prognose og Vundet med de franske oversættelser Prévision og Gagné i noden <data>.

    Bemærk

    Angiv det nøjagtige kolonnenavn, du har konfigureret i layouttrinnet for prognosen, i parameteren name.

    Skærmbillede af kolonnenavnene i **Layout**-trinnet i prognosekonfigurationen

    Hvis du vil oversætte kolonnenavnet til flere sprog, skal du oprette en ressourcefil for hvert sprog, du vil oversætte til. Kontrollér, at navnet på ressourcefilen bruger følgende navngivningskonvention:

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

Implementere manifestet

Derefter skal du ændre manifestfilen til at angive den egenskab, som vi tilsidesætter. I eksemplet tilsidesætter vi egenskaben ColumnName. Vi skal også angive stien til den ressourcefil, der indeholder den oversatte tekst.

  1. Åbn ControlManifest.Input.XML-filen.

  2. Søg efter noden property, og erstat den med følgende kode, som den er:

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

  3. Opdater noden <resources> for at angive stien til den ressourcefil, der indeholder de franske oversættelser:

    <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> indeholder stien til ressourcefilen. I det foregående kodeeksempel har vi tilføjet ressourcefilen for det franske sprog. Hvis du har oversættelser til andre sprog, skal du også tilføje stien til ressourcefilen for de pågældende sprog.

Implementere komponentlogikken

Lad os tilføje koden for at implementere komponentlogikken i index.ts-filen.

  1. Åbn index.ts-filen.

  2. Tilføj følgende linjer i metoden updateView:

    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æste trin