I have a processing screen with PXFilteredProcessingJoin where the main DAC is Customer with LeftJoin<CustomTable> and LeftJoin<Location>.
In the grid I display Location__CPriceClassID field from the joined Location DAC.
Problem: When I click the Selected checkbox on a row, the value in Location__CPriceClassID column disappears. It comes back when I click the checkbox again.
Here is my view
[PXFilterable]
public PXFilteredProcessingJoin<Customer, CustomFilter,
LeftJoin<Location, On<Location.locationID, Equal<Customer.defLocationID>>,
LeftJoin<CustomTable, On<CustomTable.customerID, Equal<Customer.bAccountID>>>>,
Where<CustomTable.example, Equal<Current<CustomFilter.example>>,
And<Where<Customer.lastModifiedDateTime, GreaterEqual<CustomTable.LastUpdatedDate>,
Or<CustomTable.LastUpdatedDate, IsNull>>>>> Customers;
and delegate
public virtual IEnumerable customers()
{
List<PXResult<Customer, Location, CustomTable>> listCustomers = new List<PXResult<Customer, Location, CustomTable>>();
CustomFilter filter = Filter.Current;
if (string.IsNullOrEmpty(filter.example))
return listCustomers;
PXResultset<Customer, Location, CustomTable> customers = null;
if (filter.example2 == true)
customers = PXSelectJoin<Customer,
LeftJoin<Location, On<Location.locationID, Equal<Customer.defLocationID>>,
LeftJoin<CustomTable, On<CustomTable.customerID, Equal<Customer.bAccountID>>>>
>.Select<PXResultset<Customer, Location, CustomTable>>(this);
else
customers = PXSelectJoin<Customer,
LeftJoin<Location, On<Location.locationID, Equal<Customer.defLocationID>>,
LeftJoin<CustomTable, On<CustomTable.customerID, Equal<Customer.bAccountID>>>>,
Where<CustomTable.example, Equal<Current<CustomFilter.example>>>
>.Select<PXResultset<Customer, Location, CustomTable>>(this);
foreach (PXResult<Customer, Location, CustomTable> custom in customers)
{
Customer customer = (Customer)custom;
CustomTable customRecord = (CustomTable)custom;
CustomerExt customerExt = customer.GetExtension<CustomerExt>();
if (customerExt != null && customerExt.IsActive != true)
continue;
if ((customRecord == null || string.IsNullOrEmpty(customRecord.example)) && filter.example2 == true)
listCustomers.Add(custom);
else if (customer.LastModifiedDateTime >= customRecord.LastUpdatedDate)
listCustomers.Add(custom);
}
return listCustomers;
}