SDT按数字字段排序

时间:2018-07-17 17:24:06

标签: xml sorting genexus

我有一个带有集合的SDT,它来自客户发送的XML。 有时他们会以错误的顺序(例如反向)发送商品,因此我必须对其进行排序。 但是Genexus中的sort函数按字节而不是数字对字节进行排序,并且当集合大于10个项目时,结果为:

<sdt>
    <field1>something</field1>
    <colection>
        <item>
            <itemcode>1</itemcode>
            <itemDescription>ITEM 1</itemDescription>
        </item>
        <item>
            <itemcode>10</itemcode>
            <itemDescription>1ITEM 10</itemDescription>
        </item>
        <item>
            <itemcode>2</itemcode>
            <itemDescription>ITEM 2</itemDescription>
        </item>
        <item>
            <itemcode>20</itemcode>
            <itemDescription>ITEM 20</itemDescription>
        </item>
    </collection>
</sdt>

如何按照数字顺序对其进行排序?

2 个答案:

答案 0 :(得分:0)

Leopereshz,

那会是这样的:

&SDT.collection.sort('itemcode')

,如果要下降

&SDT.collection.sort('[itemcode]')

以防万一,您需要多个排序:

&SDT.collection.sort('itemcode,itemDescription')

甚至合并:

&SDT.collection.sort('[itemcode],itemDescription')

&SDT是SDT类型变量的地方

答案 1 :(得分:0)

谢谢桑德罗。

我认为逐字节排序的原因是因为SDT中字段的类型是字符串。如果该字段为整数,则Genexus可能会按顺序排序。 需要更改文件的类型,因为它是在Web服务中使用的,因此必须小心,这样可能会破坏第三方集成,但是我将分析其可行性。