Kolomkoppen in het prognoseraster aanpassen
U kunt kolomkoppen in het prognoseraster aanpassen met Power Apps-codeonderdelen. U kunt bijvoorbeeld de kolomnaam vertalen of knopinfo toevoegen voor extra context.
Licentie- en rolvereisten
Vereistetype | U moet over het volgende beschikken |
---|---|
Licentie | Dynamics 365 Sales Premium of Dynamics 365 Sales Enterprise Meer informatie: Dynamics 365 Sales-prijzen |
Beveiligingsrollen | Systeembeheerder of -aanpasser Meer informatie: Vooraf gedefinieerde beveiligingsrollen voor Verkoop |
De koptekst aanpassen
Aan de hand van een voorbeeld kunnen we meer inzicht krijgen in de aanpassingen. We voegen de Franse vertaling toe voor de kolomnamen Prognose en Binnengehaald in het prognoseraster.
-
Een codeonderdeel maken met de naam
ColumnHeader
- Een resourcebestand maken en vertalingen toevoegen
- Het manifest implementeren
- De onderdeellogica implementeren
- Het onderdeel bouwen en verpakken
Een resourcebestand maken en vertalingen toevoegen
Nadat u het codeonderdeel hebt gemaakt, wordt de map ColumnHeader
gemaakt in het pad dat u hebt opgegeven. Laten we een resourcebestand maken en de Franse vertalingen toevoegen aan het bronbestand.
Maak een map met de naam
strings
onder de mapColumnHeader
.Kopieer de volgende code naar een nieuw bestand, ColumnHeader.1036.resx.
Notitie
Het getal 1036 in de bestandsnaam is de taalcode voor Frans. Raadpleeg dit artikel voor een lijst met taalcodes.
<?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>
In het bovenstaande codevoorbeeld worden de kolomnamen voor Prognose en Binnengehaald overschreven door de Franse vertalingen Prévision en Gagné in het knooppunt
<data>
.Notitie
Geef in de parameter
name
de exacte kolomnaam op die u hebt geconfigureerd in de stap Indeling van de prognose.Als u de kolomnaam in andere talen wilt vertalen, maakt u een resourcebestand voor elke taal waarnaar u wilt vertalen. Zorg dat de naam van het resourcebestand de volgende naamgevingsconventie gebruikt:
filename.languagecode.resx **Example file name for German:** ColumnHeader.1031.resx
Het manifest implementeren
Vervolgens passen we het manifestbestand aan om de eigenschap op te geven die we overschrijven. In ons voorbeeld overschrijven we de eigenschap ColumnName
. We geven ook het pad op naar het resourcebestand dat de vertaalde tekst bevat.
Open het bestand
ControlManifest.Input.XML
.Zoek naar het knooppunt
property
en vervang dit door de volgende code:<property name="columnName" display-name-key="Property_Display_Key" description-key="Property_Desc_Key" of-type="SingleLine.Text" usage="bound" required="true" />
Werk het knooppunt
<resources>
bij om het pad op te geven naar het resourcebestand dat de Franse vertalingen bevat:<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>
Het knooppunt
<resx path>
bevat het pad naar het resourcebestand. In het voorgaande codevoorbeeld hebben we het resourcebestand voor de Franse taal toegevoegd. Als u vertalingen voor andere talen hebt, voegt u ook het resourcebestandspad voor die talen toe.
De onderdeellogica implementeren
Laten we de code toevoegen om de onderdeellogica in het bestand index.ts
te implementeren.
Open het bestand
index.ts
.Voeg de volgende regels toe in de methode
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); }