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

Print Report in Microsoft Dynamics AX 2009 through X++

I am trying to print sales confirmation report on a button click which I have added on Sales Order Detail form in Microsoft Dynamics AX 2009. On click event of that button, I have written following code: void clicked() {     Args                args;     ReportRun           reportRun;     SalesFormLetter     salesFormLetter;     PrintJobSettings    printJobSettings;     CustConfirmJour     custConfirmJour;     RecordSortedList    list                = new RecordSortedList(55);     SalesTable          salesTableUpdate;     ;     SELEC...

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...