2013-12-23 2 views
1

Я установил источник данных моего доклада в закулисье страницы, которые отображают код report.The ниже:Как добавить фильтры с источником данных пользователя telerik?

protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       string acceptedStatus = QuoteStatusEnum.Accepted.ToString(); 
       string rejectedStatus = QuoteStatusEnum.Rejected.ToString(); 
       string canceledStatus = QuoteStatusEnum.Canceled.ToString(); 
       IList<QuoteRequest> list = ServiceFactory.QuoteRequestService.QueryItems(p => (p.QuoteRequestStatus.QuoteRequestStatusName == acceptedStatus) || 
                         (p.QuoteRequestStatus.QuoteRequestStatusName == rejectedStatus) || 
                         (p.QuoteRequestStatus.QuoteRequestStatusName == canceledStatus)).OrderBy(p => p.CreatedBy).ToList(); 
       var data = from d in list 
          select new 
          { 
           ClientName = d.Client.CompanyName, 
           Client = d.Client.ClientID, 
           CompanyName = d.Client.CompanyName, 
           QuoteNumber = d.QuoteNumber, 
           PropertyAddress = d.Property.PropertyAddressLine1 + (string.IsNullOrEmpty(d.Property.PropertyAddressLine2) ? "" : " ," + d.Property.PropertyAddressLine2), 
           QuotePrice = d.QuotePrice.HasValue ? d.QuotePrice.Value : 0, 
           ClientContact = ServiceFactory.ContactService.Read(p => p.ContactID == d.ClientContactID).FirstName + " " + ServiceFactory.ContactService.Read(p => p.ContactID == d.ClientContactID).LastName, 
           IsConverted = d.QuoteRequestStatus.QuoteRequestStatusName == "Accepted" ? "Yes" : "No", 
           ModifiedDate = d.ModifiedDate ?? DateTime.Now.AddYears(-10) 
          }; 

       int pastDueCount = list.Count(p => p.ClientDueDate < DateTime.Today); 

       var instanceReporSouce = new InstanceReportSource(); 
       instanceReporSouce.ReportDocument = new CompletedQuotesReport(); 

       instanceReporSouce.ReportDocument.Reports.First().DataSource = data; 
       ReportViewer1.ReportSource = instanceReporSouce; 
      } 
     } 

Теперь я хочу, чтобы добавить фильтр к report.just, как о том, что добавьте фильтр в представление проекта с помощью выражения «Fields.XX = parameter.value», поскольку в отчете нет источника данных, поэтому он не может использовать выражения «Fields.XX ......». Как я могу достичь своей цели с помощью программ за кулисами. BTW, я пытаюсь добавить параметр по коду:

instanceReporSouce.ReportDocument.Reports.First().ReportParameters.Add(new ReportParameter("TotalAccepted", ReportParameterType.String, "TotalAccepted:" + list.Count(p => p.QuoteRequestStatus.QuoteRequestStatusName == acceptedStatus))); 

Я могу получить параметры. но по-прежнему не могут фильтровать данные. Как я могу решить эту проблему?

Любое предложение оценено, С уважением, Tang.

+0

Есть ли у кого-нибудь ответ? – Tangfb

ответ

0
private void RegisterByDept_NeedDataSource(object sender, EventArgs e) 
    { 
     string groupBy = string.Empty; 
     string sortBy = string.Empty; 

     Telerik.Reporting.Processing.Report report = (Telerik.Reporting.Processing.Report)sender; 
     var payoutUID = report.Parameters["payoutUID"].Value.ToString(); 
     // some code here... 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^