You can create through the Visual Studio using the ReportViewer component. You should create the custom filters (AJAX AutoComplete) and through them, pass the values to the ReportViewer using the code C# for example. The code below illustrate a connection
with Report published in Reporting Services Portal.
string report = "ReportName";
string user = ConfigurationManager.AppSettings.Get("ServerReportUser").ToString();
string password = ConfigurationManager.AppSettings.Get("ServerReportPassword").ToString();
string domain = ConfigurationManager.AppSettings.Get("ServerReportDomain").ToString();
IReportServerConnection connection = new Geicom.ReportServerConnection.ReportServerConnection(user, password, domain);
ReportViewer.ServerReport.ReportServerCredentials = connection;
ReportViewer.ServerReport.ReportServerUrl = new Uri(ConfigurationManager.AppSettings.Get("ReportServerUrl").ToString());
ReportViewer.ServerReport.ReportPath = ConfigurationManager.AppSettings.Get("ReportPathRelative") + report;
ReportViewer.LocalReport.ReportPath = ConfigurationManager.AppSettings.Get("ReportPathRelative") + report;
ReportViewer.ShowPrintButton = True;
ReportViewer.ShowPromptAreaButton = True;
ReportViewer.ShowRefreshButton = True;
ReportViewer.ShowToolBar = True;
ReportViewer.ShowBackButton = True;
ReportViewer.ShowPageNavigationControls = True;
ReportViewer.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
List<ReportParameter> paramList = new List<ReportParameter>();
paramList.Add(new ReportParameter("Parameter1", Parameter1Value.ToString(), false));
paramList.Add(new ReportParameter("Parameter2", Parameter2Value.ToString(), false));
ReportViewer.ServerReport.SetParameters(paramList);