Skip to main content

How can I disable the automatic sort on the grid?

I'm using AX 2009. My form data source is a view. I use filtering and data group with a separate Query connected from code to the data source.
My main problem is that if I use header sort in the grid the result will be a single record with the sum of a field (the Query has a sum field - I assume because of this...).
I want to disable the auto sort on this grid, but I don't have a clue how.
I am afraid that my query won't work if I can disable it.
Has anyone experience with this?

I've ran into this problem before (also using a view with group by on a grid), and I was able to get the header sort working properly without condensing the entire contents down to one record by changing my query code around a little bit:

On the queryBuildDataSource, I called orderMode(OrderMode::GroupBy)

I also used selection fields instead of group by commands: queryBuildDataSource.addSelectionField(fieldnum(myTable, myField), SelectionField::Sum)

I haven't quite nailed down the entire cause for this behavior but I think you'll probably be able to get it working if you play with selection fields instead of AddGroupByField() commands.

Popular posts from this blog

Passing values between form and class

Class name is EmplDuplication and Form is EmplTable . void clicked() {    MenuFunction mf;    args args = new Args();    ;     args.record(EmplTable);     mf = new menufunction(identifierstr(EmplDuplication), MenuItemType::Action); mf.run(args); } Meanwhile, in the main() method of the EmplDuplication class, we need to put this Axapta x++ code to get the datasource: static void main(Args args) {     EmplDuplication EmplDuplication; EmplTable localEmplTable; ;     if(args.record().TableId == tablenum(EmplTable)) localEmplTable = args.record();     ... }

What does this mean: "The form datasource query object does not support changing its AllowCrossCompany property after the form has executed the query."?

I have made a form with datasources vendtable and vendtrans. Inside vendtable_ds.executequery() looks like this: QueryBuildDataSource queryBuildDatasource ,queryBDS_VendTrans_Invoice; ; queryBuildDatasource = this.query().dataSourceTable(tablenum(vendtable)); queryBDS_VendTrans_Invoice = this.query().dataSourceTable(tablenum(vendtrans)); if (curext() == "MASTERCOMP") { this.query().allowCrossCompany(true); } else { this.query().allowCrossCompany(false); } //FilterVendorName = stringedit control on form if (FilterVendorName.text()) { queryBuildDatasource.addRange(fieldNum(VendTable,Name)).value(strfmt("*%1*", FilterVendorName.text())); } else { queryBuildDatasource.clearRange(fieldNum(VendTable,Name)); } //FilterInvoiceNumber = stringedit control on form if (FilterInvoiceNumber.valueStr() == "") { queryBDS_VendTrans_Invoice.enabled(false); } else { queryBDS_VendTrans_Invoice.enabled(true); queryBDS_VendTrans_In...