Help with StiFilterCondition.Containing

Stimulsoft Reports.NET discussion
Post Reply
Martin Hart Turner
Posts: 66
Joined: Wed Apr 04, 2007 3:32 am
Location: Spain

Help with StiFilterCondition.Containing

Post by Martin Hart Turner »

Hi:

Can someone help me with the syntax when creating a StiFilterCondition with the 'Containing' enumeration?

Thanks,
MartinH.
Vital
Posts: 1278
Joined: Fri Jun 09, 2006 4:04 am

Help with StiFilterCondition.Containing

Post by Vital »

You want create filter condition from code in runtime?

Thank you.
Martin Hart Turner
Posts: 66
Joined: Wed Apr 04, 2007 3:32 am
Location: Spain

Help with StiFilterCondition.Containing

Post by Martin Hart Turner »

Vital wrote:You want create filter condition from code in runtime?

Thank you.
Yes, exactly.

Thanks,
MartinH.
Brendan
Posts: 309
Joined: Sun Jul 16, 2006 12:42 pm
Location: Ireland

Help with StiFilterCondition.Containing

Post by Brendan »

Code: Select all

using Stimulsoft.Report;
using Stimulsoft.Report.Components;

Code: Select all

StiReport report = new StiReport();

//Assume "myProducts" is a Table containing the columns [ProductID] and [ProductName]
report.Load("C:\\ProductList.mrt");
report.RegData("Products", myProducts);

StiDataBand myBand = report.GetComponentByName("DataBand1") as StiDataBand;
if(myBand != null)
{
	//Show Products where ProductName contains the word "Shoe"
	StiFilter myFilter = new StiFilter("ProductName", StiFilterCondition.Containing, "Shoe", StiFilterDataType.String);
	myBand.Filters.Add(myFilter);
}

rpt.Show();
Martin Hart Turner
Posts: 66
Joined: Wed Apr 04, 2007 3:32 am
Location: Spain

Help with StiFilterCondition.Containing

Post by Martin Hart Turner »

Brendan:

Thanks for the valuable information.

Just one more question. Does StimulReports allow for grouped filter conditions?

By this I mean something like this: '(Code >= 1 and Code = 100 and Code <= 109)'

You can see there are 'and' conditions a well as an 'or' condition. Is this possible? If so how?

Thanks,
MartinH.
Brendan
Posts: 309
Joined: Sun Jul 16, 2006 12:42 pm
Location: Ireland

Help with StiFilterCondition.Containing

Post by Brendan »

Yes, in this case you could do one of the following:

1) Use a Between FilterCondition
2) Use 2 Filter Conditions. One for GreaterThanOrEqualTo and a second one for a LessThanOrEqualTo


1) Use a Between FilterCondition

Code: Select all

//Filter Code between the Values of 1 and 9
StiFilter myFilter = new StiFilter("Code", StiFilterCondition.Between, "1", "9", StiFilterDataType.Numeric);
myBand.Filters.Add(myFilter);

2) Using 2 Filter Conditions

Code: Select all

//Filter Codes with Values Greater than or equal to 100
StiFilter myFilter1 = new StiFilter("ProductID", StiFilterCondition.GreaterThanOrEqualTo, "100", StiFilterDataType.Numeric);
myBand.Filters.Add(myFilter1);

//Filter Codes with Values Less than or Equal to 109
StiFilter myFilter2 = new StiFilter("ProductID", StiFilterCondition.LessThanOrEqualTo, "109", StiFilterDataType.Numeric);
myBand.Filters.Add(myFilter2);
Edward
Posts: 2913
Joined: Fri Jun 09, 2006 4:02 am

Help with StiFilterCondition.Containing

Post by Edward »

Please use expression instead of Value in the Field Is dialog Box.

Thank you.
Brendan
Posts: 309
Joined: Sun Jul 16, 2006 12:42 pm
Location: Ireland

Help with StiFilterCondition.Containing

Post by Brendan »

Oops Sorry,
I misread your question. In the example you gave you could use an Expression Filter to accomplish that task or you can use 2 filters and set the FilterMode Property of the DataBand

Code: Select all

myBand.FilterMode = StiFilterMode.Or;
Edward
Posts: 2913
Joined: Fri Jun 09, 2006 4:02 am

Help with StiFilterCondition.Containing

Post by Edward »

Yes, it is the correct way.

An Expression you can find in the Designer. Default value is Value in the Field Is combobox.

Thank you.
Guest
Posts: 182
Joined: Tue Jun 06, 2006 8:04 am

Help with StiFilterCondition.Containing

Post by Guest »

You also may use the following code:

Code: Select all

StiFilter myFilter = new StiFilter("((Code >= 1) && (Code = 40) && (Code <= 109))");
                 
Thank you.
Post Reply