Sdílet prostřednictvím


Přizpůsobení záhlaví sloupců v mřížce prognózy

Záhlaví sloupců v mřížce prognózy můžete přizpůsobit pomocí komponent kódu Power Apps. Můžete například přeložit název sloupce nebo přidat nápovědu pro další kontext.

Požadavky na licenci a roli

Typ požadavku Musíte mít
Licence Dynamics 365 Sales Premium nebo Dynamics 365 Sales Enterprise
Další informace: Ceny Dynamics 365 Sales
Role zabezpečení Správce nebo úpravce systému
Další informace: Předdefinované role zabezpečení pro Sales

Jak přizpůsobit záhlaví

Pojďme porozumět přizpůsobení na příkladu scénáře. Do mřížky prognózy přidáme francouzský překlad názvů sloupců Forecast a Won.

  1. Vytvoření komponentu kódu s názvem ColumnHeader
  2. Vytvoření souboru prostředku a přidání překladů
  3. Implementace manifestu
  4. Implementace logiky komponent
  5. Sestavení a zabalení komponenty

Vytvoření souboru prostředku a přidání překladů

Po vytvoření komponenty kódu se v zadané cestě vytvoří složka ColumnHeader. Vytvořme zdrojový soubor a do něj přidejte francouzské překlady.

  1. Vytvořte složku s názvem strings ve složce ColumnHeader.

  2. Zkopírujte následující kód do nového souboru ColumnHeader.1036.resx.

    Poznámka:

    Číslo 1036 v názvu souboru je kód jazyka pro francouzštinu. Seznam kódů jazyků viz tento článek.

    <?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>
    

    Ve výše uvedené ukázce kódu jsou názvy sloupců pro Forecast a Won přepsány francouzskými překlady Prévision a Gagné v uzlu <data>.

    Poznámka:

    V parametru name zadejte přesný název sloupce, který jste nakonfigurovali v kroku Rozvržení prognózy.

    Snímek obrazovky s názvy sloupců v kroku **Rozložení** konfigurace prognózy

    Pokud chcete přeložit název sloupce do dalších jazyků, vytvořte soubor prostředků pro každý jazyk, do kterého chcete překládat. Ujistěte se, že název souboru prostředku používá následující konvenci pojmenování:

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

Implementace manifestu

Dále upravíme soubor manifestu tak, aby specifikoval vlastnost, kterou přepisujeme. V našem příkladu přepisujeme vlastnost ColumnName. Zadáme také cestu k souboru prostředků, který obsahuje přeložený text.

  1. Otevřete soubor ControlManifest.Input.XML.

  2. Vyhledejte uzel property a nahraďte ho následujícím kódem tak, jak je:

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

  3. Aktualizujte uzel <resources>, aby specifikoval cestu k souboru prostředků, který obsahuje francouzské překlady:

    <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>
    

    Uzel <resx path> obsahuje cestu k souboru prostředků. V předchozí ukázce kódu jsme přidali zdrojový soubor pro francouzský jazyk. Pokud máte překlady pro jiné jazyky, přidejte cestu k souboru prostředků také pro tyto jazyky.

Implementace logiky komponent

Pojďme přidat kód pro implementaci logiky komponenty do souboru index.ts.

  1. Otevřete soubor index.ts.

  2. Přidejte následující řádky v metodě 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);
        }
    

Další kroky