我有一个带有集合的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>
如何按照数字顺序对其进行排序?
答案 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服务中使用的,因此必须小心,这样可能会破坏第三方集成,但是我将分析其可行性。