Axapta 将标签从项目导出到Excel

Axapta 将标签从项目导出到Excel,axapta,x++,dynamics-ax-2009,Axapta,X++,Dynamics Ax 2009,我有一个小问题-我必须列出几个大型共享项目的所有标签,以便识别和更新缺少翻译的标签 现在我看到的是类似Palle Agermark的标签导出作业()的内容,但它要经过一个或多个项目,并将三种语言的所有标签ID(不管标签系列)和值拉到Excel中 这可以做到吗,有什么建议吗?:) 最简单的解决方案是直接转到标签源 在AX 2009中,标签存储在应用程序文件夹中,命名为axSYSen-us.ald,包含以下部分: ax-文件前缀 SYS-标签名,@SYS123标签存储在那里 en us-语言说明符

我有一个小问题-我必须列出几个大型共享项目的所有标签,以便识别和更新缺少翻译的标签

现在我看到的是类似Palle Agermark的标签导出作业()的内容,但它要经过一个或多个项目,并将三种语言的所有标签ID(不管标签系列)和值拉到Excel中


这可以做到吗,有什么建议吗?:)

最简单的解决方案是直接转到标签源

在AX 2009中,标签存储在应用程序文件夹中,命名为axSYSen-us.ald,包含以下部分:

  • ax-文件前缀
  • SYS-标签名,@SYS123标签存储在那里
  • en us-语言说明符
  • ald-标签文件扩展名
  • 文件为文本格式,可以轻松导入Excel或使用文本编辑器进行编辑

    您可以为每个标签文件导入一张表格到Excel,然后使用Excel公式将输出合并到单独的表格中(在同一工作簿中)


    在AX 2012中,标签存储在模型数据库中,并在启动时创建.ald文件。

    最简单的解决方案是直接转到标签源

    在AX 2009中,标签存储在应用程序文件夹中,命名为axSYSen-us.ald,包含以下部分:

  • ax-文件前缀
  • SYS-标签名,@SYS123标签存储在那里
  • en us-语言说明符
  • ald-标签文件扩展名
  • 文件为文本格式,可以轻松导入Excel或使用文本编辑器进行编辑

    您可以为每个标签文件导入一张表格到Excel,然后使用Excel公式将输出合并到单独的表格中(在同一工作簿中)


    在AX 2012中,标签存储在模型数据库中,并在启动时创建.ald文件。

    这扩展了Jan B.Kjeldsen最后一次评论的想法,即从项目xpo文件中获取标签。标签以以下XML结构保存在xpo文件中:

    <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>
    
    现在来看有趣的部分(至少对我来说,因为我之前不太了解xsl语法),xsl转换文件。我最终得出以下结论,将使用以下方法生成所需的XML:

    
    

    然后,可以使用Excel developer Tools for XML将生成的XML导入Excel。结果看起来像

    这扩展了Jan B.Kjeldsen最后一次评论的想法,以从项目xpo文件中获取标签。标签以以下XML结构保存在xpo文件中:

    <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>
    
    <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转换文件。我最终得出以下结论,将使用以下方法生成所需的XML:

    
    

    然后,可以使用Excel developer Tools for XML将生成的XML导入Excel。结果看起来像

    在大型共享项目中,您的意思是什么?您的意思是在项目内部的任何元素属性上使用的所有标签,以及在该项目一侧使用标签的代码中的任何位置?或者您感兴趣的项目中是否存储了实际的标签文件?您知道吗,您可以右键单击并导出标签文件,而它只是纯文本?您是想用代码来解决这个问题,还是真的只想找到丢失的翻译,还是有这么多标签文件本身?如果缺少翻译,您可能只需打开并抽查。“您的意思是项目内部任何元素属性上使用的所有标签,以及在项目一侧使用标签的代码中的任何位置?”这句话的意思是。这些项目有几十个或上百个不同的对象。手工检查所有内容并将其复制到Excel需要花费大量的时间和精力。这并不是为了好玩,不管是什么意思:)我想知道你是否可以将项目导出到xpo文件中,并简单地从中提取相关数据。这需要有人手动从标签文件/标签编辑器中提取翻译,并将所有内容放入Excel。以下是我试图实现的目标:在大型共享项目中,你的意思是什么?您的意思是在项目内部的任何元素属性上使用的所有标签,以及在该项目一侧使用标签的代码中的任何位置?或者您感兴趣的项目中是否存储了实际的标签文件?您知道吗,您可以右键单击并导出标签文件,而它只是纯文本?您是想用代码来解决这个问题,还是真的只想找到丢失的翻译,还是有这么多标签文件本身?如果缺少翻译,您可能只需打开并抽查。“您的意思是项目内部任何元素属性上使用的所有标签,以及在项目一侧使用标签的代码中的任何位置?”这句话的意思是。这些项目有几十个或上百个不同的对象。手工检查所有内容并将其复制到Excel需要花费大量的时间和精力。这并不是为了好玩,不管是什么意思:)我想知道你是否可以将项目导出到xpo文件中,并简单地从中提取相关数据。这需要有人手动从标签文件/标签编辑器中提取翻译,并将所有内容放入Excel。以下是我试图实现的目标:是的,但这不会给我某些项目中使用的标签。然后导出项目并使用XPO文件中的输出。在使用之前,需要对输入进行更多的清理,但是XPO的标签部分是XML格式的;它应该很容易转换为制表符分隔或类似的格式。此外,您可以使用SysLabel API访问labe
    <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>