For filtering tabular data as part of a reporting feature in a B2B web application targeted at relatively low-tech users, what are the pros and cons of having filtering UI be part of the column headers vs. in a separate part of the page?
For our application, filtering will almost always be included when executing a report for the first time, but relatively infrequently modified after running the report. In other words, it's more important to make it easy to define filters vs. being able to easily modify them later.
Filtering will almost always be simple: choosing a single value, a group of values, a range, or (for text values) contains/not-contains.
Examples of each model are below.
In-Grid Filtering Examples:
Out-of-grid filtering examples:
I'm admittedly leaning towards out-of-grid filtering because I think it may be more discoverable for novice users, and because it will work better if we want to add non-grid displays like charts. But I want to make sure I understand pros and cons of both options before deciding one way or the other.