few day ago I was digging in code of CT502000, and found interesting part of code:
public PXFilteredProcessing<ContractsList, ExpiringContractFilter> Items;
As usually in my code I use PXFilter, and discovery of PXFilteredProcessing was confusting for me.
The first think that I as usually do, if I see something new, it is watching with reflector in declaration of new type. Here it what reflector shows:
public class PXFilteredProcessing<Table, FilterTable> : PXProcessing<Table>
where Table: class, IBqlTable, new() where FilterTable: class, IBqlTable, new()
This means, that we can pass into PXFilteredProcessing two tables. T200 manual gives an answer why: Provides data records for processing with filtering. This data type takes two DACs as type parameters, where the second DAC specifies the filter DAC. You can use the
Where<>and OrderBy<>clauses in this data view type. It means, that items in Table will be filtered according to FilterTable.
today I want to note reusable grid filters. Acumatica has interesting dialog window, wich is named Filter Settings in which user can define and save custom fitlers and then use them every time this user opens the page. They are recommended for usage at inquiry and processing pages, so users can customize these pages to show specific data that is most relevant to their needes and responsibilities. If you wonder how to convert ordinary view to filterable view here is the way: PXFilterable attribute.
public PXSelectReadonly<AnticipatedPayrollDetail> AnticipatedPayrollDetails;
I applied it to my page, and here is example of what I got:
So, in case if you need to add filtering option to your screen, attribute PXFilterable is your friend.