به فرض که در سازنده یا formload اطلاعات از دیتابیس دریافت میشه و نام فرم Form1 باشه به صورت زیر(کافیه table.DefaultView.ToTable() را به گزارش ارسال کنید)
DataTable table;
public Form1()
{
InitializeComponent();
ShahrebaziDA _ShahrebaziDA = new ShahrebaziDA();
table = _ShahrebaziDA.SelectAll();
dgv1.DataSource = table;
dgv1.EnableFiltering = true;
dgv1.FilterChanged += dgv1_FilterChanged;
}
private void btnPrint_Click(object sender, EventArgs e)
{
StiReport s = new StiReport();
s.Load("Reports\\ShahrebaziReport.mrt");
s.Compile();
// s.RegData("DataSource1", Dt);
s.RegData("Shahrebazi", table.DefaultView.ToTable());
s.Show();
}
private void dgv1_FilterChanged(object sender, GridViewCollectionChangedEventArgs e)
{
if (e.Action == NotifyCollectionChangedAction.Add || e.Action == NotifyCollectionChangedAction.ItemChanged)
{
table.DefaultView.RowFilter = this.dgv1.FilterDescriptors.Expression;
}
if (e.Action == NotifyCollectionChangedAction.Remove)
{
table.DefaultView.RowFilter = "";
}
}