by-exp

by-exp


by-dsnd Index Level by-exp-dsnd
Syntax by-exp attr.name {"explosion limiter"}
Category Access
Type Modifier
Description designates a sort key, in ascending, "exploded" multi-value order.  It must be is followed by an "attr.name".

The "by-exp" modifier is used to sort attributes that may contain more than one value. When the "by" modifier is used on a multi-valued attribute, it only sorts on the first value in the attribute. Further, each item-id will only appear one time, assuming that its display is not suppressed.

When the "by-exp" modifier is used, it "explodes" each value in the attribute and treats each value as though it were a separate item. Each value sorts into its proper position, and the item-id will appear with each value. In other words, the number of times and item-id will appear on a report coincides to the number of values in the exploded attribute.

In D3, "by-exp" may be used with any verb that lists or selects items, such as "list" or "select". R83 did not allow "by-exp" to be used with "non-sorting" verbs, and was simply ignored.

The "explosion limiter" specifies that output only occurs on data elements meeting the print limiting criteria.
Options
See Also by-dsnd modifiers by-exp-dsnd seqlist by READNEXT attr.name sort value collation order
Example sort customers by-exp invoice.pointers

sort invoices by-exp product = "widget"

select fn by-exp pay-date >= "01/01/93" and by-exp pay-date <= "12/31/93".

Note that in this example, the second "by-exp" is required to return the correct data.
Warnings In D3, if the "by" modifier is specified with a verb that does not "naturally" sort (such as the "list" verb), the verb is changed to its "sorting" counterpart. (e.g. "list" becomes "sort", "select" becomes "sselect", etc.) This does NOT work, however, on R83 releases.
Compatibility D3 7.0 AP R83
by-dsnd Index Level by-exp-dsnd