2015-12-04 29 views
1

Generate.aspx.vb數據調用從數據集(嵌套的IF)

Case "costcentersummary" 
      Dim newparams(4) As ReportParameter 
      newparams(0) = New ReportParameter("CallClassCode", callClassCode) 
      newparams(1) = New ReportParameter("DateTimeFrom", startDateTime) 
      newparams(2) = New ReportParameter("DateTimeTo", endDateTime) 
      newparams(3) = New ReportParameter("Vat", vat) 
      newparams(4) = New ReportParameter("CostCenterBy", costcenterby) 
      rvScreen.LocalReport.SetParameters(newparams) 
      rvScreen.LocalReport.Refresh() 

      Dim rdsCostCenterSummary As New ReportDataSource 
      Dim daCostCenterSummary As New CostCenterSummaryTableAdapter 
      Dim dtCostCenterSummary As New CostCenterSummaryDataTable 

      Dim filters = reportFilter.Split(",") 
      Dim ta As New LCSRDBDataSetTableAdapters.CostCentersLookupTableAdapter 
      Dim dt = ta.GetData(siteId) 

      If String.IsNullOrEmpty(reportFilter) Or filters.Count = dt.Rows.Count Then 
       daCostCenterSummary.SetWhereClause(String.Format("cdr_site_id = '{0}' AND cdr_datetime BETWEEN '{1}' AND '{2}' AND cdr_call_class_code = 'OUTGOING' AND cdr_call_type_id IN({4}) GROUP BY cdr_id", siteId, startDateTime, endDateTime, callClass, callType)) 
      Else 
       daCostCenterSummary.SetWhereClause(String.Format("cdr_site_id = '{0}' AND cdr_datetime BETWEEN '{1}' AND '{2}' AND cdr_call_class_code = 'OUTGOING' AND cdr_call_type_id IN({4}) AND cost_center_id IN ({5}) GROUP BY cdr_id", siteId, startDateTime, endDateTime, callClass, callType, reportFilter)) 
      End If 

      daCostCenterSummary.Fill(dtCostCenterSummary) 

      rdsCostCenterSummary.Name = "LCSRDBDataSet_CostCenterSummary" 
      rdsCostCenterSummary.Value = dtCostCenterSummary 
      rvScreen.LocalReport.DataSources.Add(rdsCostCenterSummary) 

Standard.aspx.vb(會話)

If (rbCostCenterName.Checked) Then 
     Session("CostCenterBy") = "name" 
    ElseIf (rbCostCenterNumber.Checked) Then 
     Session("CostCenterBy") = "number" 
End If 

輸出
Output in RDLC report

問題:
如何在generate.aspx.vb中嵌套if語句?
或者我應該在standard.aspx.vb中編碼嗎?
如何從數據集中調用值?
可能嗎?
或者我應該在rdlc報告中編碼?

的理念是:

if(ByCostCenterName is checked) then 
    CostCenterName is in alphabetical order 
    if(ByCostCenterNumber is checked) then 
    CostCenterNumber is in ascending order 
    end if 
end if 

回答

0

那好吧,我得到了答案。

在Generate.aspx.vb中,我在那裏插入了下面的代碼。

If costcenterby = "name" Then 
    daCostCenterSummary.SetWhereClause(String.Format("cdr_site_id = '{0}' AND cdr_datetime BETWEEN '{1}' AND '{2}' AND cdr_call_class_code = 'OUTGOING' AND cdr_call_type_id IN({4}) GROUP BY cdr_id ORDER BY department_description", siteId, startDateTime, endDateTime, callClass, callType)) 
Else 
    daCostCenterSummary.SetWhereClause(String.Format("cdr_site_id = '{0}' AND cdr_datetime BETWEEN '{1}' AND '{2}' AND cdr_call_class_code = 'OUTGOING' AND cdr_call_type_id IN({4}) GROUP BY cdr_id ORDER BY cost_center_description", siteId, startDateTime, endDateTime, callClass, callType)) 
End If