My code looks like this
ResultsetFields fields = new ResultsetFields(9);
fields.DefineField(CustomersFieldIndex.CustomerCode, 0, "CustomerCode", "Customers");
fields.DefineField(ProvidersFieldIndex.Provider, 1, "Provider","Provs");
fields.DefineField(SubProviderFieldIndex.SubName, 2, "Subprovider", "Subs");
fields.DefineField(StatusFieldIndex.Status, 3, "Status","Status");
fields.DefineField(CgmBanInvoicesFieldIndex.BillYyyymm, 4, "BillYYYYMM","Invs");
fields.DefineField(DisputeMasterFieldIndex.ClaimReasonCode, 5, "ClaimReasonCode","Disp");
fields.DefineField(DisputeMasterFieldIndex.CurrentAmount, 6, "Amount", "Disp", AggregateFunction.Sum);
fields.DefineField(DisputeMasterFieldIndex.StatusId, 7, "Disputes", "Disp", AggregateFunction.Count);
fields.DefineField(CustomersFieldIndex.Active, 8, "Active", "Customers");
IRelationPredicateBucket bucket = new RelationPredicateBucket();
bucket.Relations.Add(CustomersEntity.Relations.CgmBansEntityUsingCustomerId, "Customers","Bans",JoinHint.None);
bucket.Relations.Add(CgmBansEntity.Relations.SubProviderEntityUsingSubProviderIdProviderId,"Bans","Subs", JoinHint.None);
bucket.Relations.Add(SubProviderEntity.Relations.ProvidersEntityUsingProviderId, "Subs","Provs",JoinHint.None);
bucket.Relations.Add(CgmBansEntity.Relations.CgmBanInvoicesEntityUsingBanid,"Bans","Invs", JoinHint.None);
bucket.Relations.Add(CgmBanInvoicesEntity.Relations.DisputeMasterEntityUsingInvoiceId,"Invs","Disp", JoinHint.None);
bucket.Relations.Add(DisputeMasterEntity.Relations.StatusEntityUsingStatusId,"Disp","Status", JoinHint.None);
IPredicateExpression whereclause = new PredicateExpression();
whereclause.Add(new FieldCompareValuePredicate(fields[3], null, ComparisonOperator.Equal, "Pending"));
whereclause.Add(new FieldCompareValuePredicate(fields[8], null, ComparisonOperator.Equal, "Y"));
bucket.PredicateExpression.Add(whereclause);
IGroupByCollection groupByClause = new GroupByCollection();
groupByClause.Add(fields[0]);
groupByClause.Add(fields[1]);
groupByClause.Add(fields[2]);
groupByClause.Add(fields[3]);
groupByClause.Add(fields[4]);
groupByClause.Add(fields[5]);
groupByClause.Add(fields[8]);
DataTable dynamicList = new DataTable();
adapter.FetchTypedList(fields, dynamicList, bucket, 0, sorter, true, groupByClause);
return dynamicList;
I don't want to add field[8] to the ResultsetFields, but I can't see how to build the proper field compare predicate. the constructor takes a IEntityField (field[8], here).
whereclause.Add(new FieldCompareValuePredicate(fields[8], null, ComparisonOperator.Equal, "Y"));
How can I replace the fields[8] with something referencing the Entity fiield instead
CustomersFieldIndex.Active
is an enum. How can I get the coresponding field to plug in to the where clause?