我有一個小問題 - 我必須列出幾個大型共享項目的所有標籤,因此標識缺少翻譯的標識會更新。從項目中將標籤導出到Excel
現在我正在尋找的東西就像Palle Agermark的標籤導出作業(http://www.agermark.com/2011/10/export-and-import-labels-for.html),但是它會經過一個或多個項目並將所有標籤ID(無論標籤系列)和三種語言的值拉到Excel中。
可以這樣做,任何指針? :)
我有一個小問題 - 我必須列出幾個大型共享項目的所有標籤,因此標識缺少翻譯的標識會更新。從項目中將標籤導出到Excel
現在我正在尋找的東西就像Palle Agermark的標籤導出作業(http://www.agermark.com/2011/10/export-and-import-labels-for.html),但是它會經過一個或多個項目並將所有標籤ID(無論標籤系列)和三種語言的值拉到Excel中。
可以這樣做,任何指針? :)
這擴展了Jan B. Kjeldsen的最後評論的想法,以從項目xpo文件中獲取標籤。標籤被保存在XPO文件在以下XML結構:
<Table:Record name="TmpSysLabel" xmlns:Table='urn:www.microsoft.com/Formats/Table'>
<Table:Field name="Language">de</Table:Field>
<Table:Field name="Label">Geplante Produktionsaufträge</Table:Field>
<Table:Field name="Description"></Table:Field>
<Table:Field name="LabelId">@SYS119128</Table:Field>
<Table:Field name="SysLabelApplModule">0</Table:Field>
<Table:Field name="recVersion">0</Table:Field>
<Table:Field name="Partition">5637144576</Table:Field>
</Table:Record>
我的第一個想法是導入該XML到Excel,但Excel不會在屬性列名發揮好。所以不是我寫的是把XML到類似下面的一個xsl:
<?xml version="1.0" encoding="UTF-8"?>
<labels>
<record>
<Language>de</Language>
<Label>Geplante Produktionsaufträge</Label>
<Description />
<LabelId>@SYS119128</LabelId>
<SysLabelApplModule>0</SysLabelApplModule>
<recVersion>0</recVersion>
<Partition>5637144576</Partition>
</record>
</labels>
爲此改造,原來的XML必須被清理了一下,替換record
和Table:Record
所有出現的所有出現Table:Field
與field
。還要添加一個根XML節點labels
。它應該看起來像
<labels>
<record>
<field name="Language">de</field>
<field name="Label">Geplante Produktionsaufträge</field>
<field name="Description"></field>
<field name="LabelId">@SYS119128</field>
<field name="SysLabelApplModule">0</field>
<field name="recVersion">0</field>
<field name="Partition">5637144576</field>
</record>
</labels>
現在最有趣的部分(至少對我來說,因爲我沒有多少之前XSL語法知識),XSL轉換文件。我結束了以下,這將產生使用http://www.freeformatter.com/xsl-transformer.html想要的XML:
<?xml version="1.0" encoding="utf-16"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" indent="no" />
<xsl:template match="/">
<labels>
<xsl:for-each select="Labels/*">
<record>
<xsl:for-each select="*">
<xsl:element name="{@name}">
<xsl:value-of select="." />
</xsl:element>
</xsl:for-each>
</record>
</xsl:for-each>
</labels>
</xsl:template>
</xsl:stylesheet>
不錯!謝謝,我認爲這會做到這一點:) –
最簡單的解決方案是直接轉到標籤源。
2009年AX中的標籤存儲在應用程序文件夾名稱類似於像axSYSen-us.ald包括以下部分:
的文件是文本格式,可以輕鬆導入到Excel或使用文本編輯器進行編輯。
您可以導入到Excel,每個標籤文件一張,然後使用Excel公式將輸出合併到單獨的工作表(在同一工作簿中)。
在AX 2012中,標籤存儲在模型數據庫中,.ald文件在啓動時創建。
是的,但這不會給我只是在某些項目中使用的標籤。 –
然後導出項目並使用XPO文件中的輸出。在使用前需要對輸入進行更多的清理,但XPO的標籤部分採用XML格式;它應該很容易轉換爲製表符分隔或類似的格式。 –
另外,您可以使用SysLabel API訪問標籤:https://msdn.microsoft.com/en-us/library/gg952024.aspx。再次掃描XPO輸出將是每個項目標籤列表的最快方式。 –
你在大型共享項目中的含義是什麼?你是指在項目內部的任何元素屬性上使用的所有標籤,以及在該項目中使用標籤的代碼中的任何位置?或者是否存在您感興趣的項目內部的實際標籤文件?你知道你可以右鍵點擊並導出標籤文件,它只是純文本嗎?你是否試圖用代碼來解決這個問題,或者你真的只想找到缺失的翻譯,或者自己有這麼多的標籤文件?如果缺少翻譯,您可以打開並進行抽查。 –
「你是指在項目內部的任何元素屬性上使用的所有標籤,以及在該項目的側面使用標籤的代碼中的任何地方?」 這個。這些項目有幾十個,或超過一百個不同的對象。手工完成所有工作並將其複製到Excel中將耗費大量時間和精力。這不是爲了好玩,而是在這個詞的任何含義:) –
我不知道你是否可以將項目導出到xpo文件,並簡單地_grep_相關數據從他們。 –