Hi Walaa,
I tried your suggestion but get the error message
"Can not apply operator '|' operands of type SD.LLBLGen.Pro.ORMSupportClasses.IEntityField' and 'System.Web.UI.WebControls.SortDirection',
Candidates are:
System.Web.UI.WebControls.SortDirection | (System.Web.UI.WebControls.SortDirection, System.Web.UI.WebControls.SortDirection
Below is the full TypeList
void LoadOrders(string sortOn)
{
ResultsetFields orderFields = new ResultsetFields(8);
orderFields.DefineField(PreSeasonScheduleFields.ShippingWindowStart, 0, "ShippingWindowStart");
orderFields.DefineField(PreSeasonScheduleFields.ShippingWindowEnd, 1, "ShippingWindowEnd");
orderFields.DefineField(CustomerSalesOrderFields.CustomerSalesOrderId, 2, "CustomerSalesOrderId");
orderFields.DefineField(CustomerFields.Name, 3, "CustomerName");
orderFields.DefineField(CustomerSalesOrderFields.ContactName, 4, "ContactName");
orderFields.DefineField(CustomerSalesOrderFields.OrderDate, 5, "OrderDate");
orderFields.DefineField(CustomerSalesOrderFields.OrderStatus, 6, "OrderStatus");
// ------------------------------------------------------------------------------------//
// This block is all for the subselect that counts the qty for this product on
// these orders
IRelationCollection subSelectRelations = new RelationCollection();
subSelectRelations.Add(CustomerSalesOrderEntity.Relations.CustomerSalesOrderPartEntityUsingCustomerSalesOrderId, "Sub", "", JoinHint.Left);
subSelectRelations.Add(CustomerSalesOrderPartEntity.Relations.CustomerSalesOrderItemEntityUsingCustomerSalesOrderPartId);
IPredicateExpression countExpOr = new PredicateExpression();
countExpOr.Add(CustomerSalesOrderItemFields.ItemStatus == "Confirmed");
countExpOr.AddWithOr(CustomerSalesOrderItemFields.ItemStatus == "Ordered");
IPredicateExpression orderFilter = new PredicateExpression();
orderFilter.Add(CustomerSalesOrderFields.CustomerSalesOrderId.SetObjectAlias("Sub") == CustomerSalesOrderFields.CustomerSalesOrderId);
orderFilter.AddWithAnd(countExpOr);
orderFields.DefineField(new EntityField("OrderTotal",
new ScalarQueryExpression(CustomerSalesOrderItemFields.AmountCharged.SetAggregateFunction(AggregateFunction.Sum),
orderFilter, subSelectRelations)), 7);
// ------------------------------------------------------------------------------------//
IRelationCollection orderRelations = new RelationCollection();
orderRelations.Add(CustomerSalesOrderEntity.Relations.PreSeasonScheduleEntityUsingPreSeasonScheduleId);
orderRelations.Add(CustomerSalesOrderEntity.Relations.CustomerEntityUsingCustomerId);
IPredicateExpression pendingOrdersFilter = new PredicateExpression();
if (orderId > 0)
{
pendingOrdersFilter.Add(CustomerSalesOrderFields.CustomerSalesOrderId == orderId);
}
if (orderStatus!= "" && orderStatus != "All" && orderId == 0)
{
pendingOrdersFilter.AddWithAnd(CustomerSalesOrderFields.OrderStatus == orderStatus);
}
if (customerId > 0 && orderId == 0)
{
pendingOrdersFilter.AddWithAnd(CustomerSalesOrderFields.CustomerId == customerId);
}
ISortExpression orderSort = new SortExpression();
if(sortOn == "OrderTotal")
{
orderSort.Add(orderFields[7] | SortDirection.Ascending);
}
orderSort.Add(PreSeasonScheduleFields.ShippingWindowEnd | SortOperator.Ascending);
DataTable dtOrders = new DataTable();
TypedListDAO dao = new TypedListDAO();
dao.GetMultiAsDataTable(orderFields, dtOrders, 0, orderSort, pendingOrdersFilter, orderRelations, true, null, null, 0, 0);
Int32 OrderCount = dtOrders.Rows.Count;
if (OrderCount == 0)
{
lblGridMsg.Text = "No <b>" + orderStatus + " </b>orders were found.";
}
else
{
lblGridMsg.Text = "";
}
gvPendingOrders.DataSource = dtOrders;
gvPendingOrders.DataBind();
}