As you have discovered, the data stored in a UserDefinedTable is "different" than most other table based data records.
The data is available but requires understanding just what you are after and how to select the data. The primary selection item is the UserDefinedRowID. So every one of the filters you want, must return one more RowIDs. While there are many ways to obtain the appropriate RowIDs, the methods are beyond the support offered here. However I will provide one way to obtain each of the 4 type of data you want to filter on. These methods can work with other modules and are not specifically limited to SGSV (you may need to adjust them to work due to specifics of the modules).
I will start with case two first.
2) Assuming you have selected the date range filter, you will have two parameters availables [Date:to] and [Date:from] so the resulting filter select would be
UserDefinedRowID in (select UserDefinedRowID from UserDefinedData where UserDefinedFieldID = 123 and Cast(UserDefinedValue as Datatime) between '[Date:From]' and '[Date:To]')
The above is a standard T-SQL where clause - the parameters are SGVS's but once substituted results in a complete T-SQL where clause. Something like
UserDefinedRowID in (select UserDefinedRowID from UserDefinedData where UserDefinedFieldID = 123 and Cast(UserDefinedValue as Datatime) between '10-Sep-2010' and '15-Sep-2010')
The clause use the IN keyword - I suggest you review this keyword and it's use as it will be used in the remaining examples. Also the value in the UserDefineData must be convert/cast to the appropriate data type so the comparison is handled properly.
1) Case one is a bit harder as I don't know where you would be storing the data - If it is in another UserDefinedTable, then you will need to understand the data structure and T-SQL explicitly to be able to make this work. I would suggest a specialized store procedure would work best.
3) SGSV allows the user to define Values to be selected. Created a Filter Selection with a name of HowOften and defined the Filter Select as "Values:Weekly,Daily". Please refer to the User Guides on how to do this. It is very similar to the example give in the early post. Here again the IN clause is used.
UserDefinedRowID in (Select UserDefinedRowID from UserDefinedData where UserDefinedFieldID = 124 and Cast(UserDefinedValue as nVarchar(max)) = '[parm:HowOften]')
4) Selecting based on a text value supplied by the User is similar to 3). How the Text Search Filter is used and the substitution parameter is [Search:text], so the filter clause changes to
UserDefinedRowID in (Select UserDefinedRowID from UserDefinedData where UserDefinedFieldID = 124 and Cast(UserDefinedValue as nVarchar(max)) = '[Search:Text]')
The filter clauses outline here are inserted in to the primary select to form a T-SQL select. The completed T-SQL after the selection is made will work in the Report module or even the Host/SQL page. So ultimately, this data selection is a T-SQL issue not one of SGSV.
You should be able to perform these selects with the free version of SGSV.
Hope this point you in the right direction
Paul.