请问当reporting service的sql语句本身是随着一个选择条件而变化的,那该怎么处理?

loimo 2005-05-25 05:10:13
能不能后生成SQL语句阿?.........
...全文
174 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hoverchu 2005-05-25
  • 打赏
  • 举报
回复
可以将报表SQL语句中加入参数,然后用下面例子中的方法给参数赋值:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load

Dim sDateBegin As String
Dim sDateEnd As String
Dim sDateEnd2 As String
Dim sTime As String

sDateBegin = Request.QueryString("D2") + "-" + Request.QueryString("D3") + "-" + Request.QueryString("D4")
sDateEnd = sDateBegin
sDateEnd2 = CStr(DatePart(DateInterval.Year, (DateAdd(DateInterval.Day, 1, CDate(sDateEnd))))) + "-" + CStr(DatePart(DateInterval.Month, (DateAdd(DateInterval.Day, 1, CDate(sDateEnd))))) + "-" + CStr(DatePart(DateInterval.Day, (DateAdd(DateInterval.Day, 1, CDate(sDateEnd)))))
sTime = Request.QueryString("R3")
Select Case sTime
Case "V1"
sDateBegin = sDateBegin + " 07:20:00"
sDateEnd = sDateEnd + " 19:20:00"
Case "V2"
sDateBegin = sDateBegin + " 19:20:00"
sDateEnd = sDateEnd2 + " 07:20:00"
Case "V3"
sDateBegin = sDateBegin + " 07:20:00"
sDateEnd = sDateEnd2 + " 07:20:00"
End Select


Dim rs As New ReportingServices.ReportingService
Dim result As Byte() = Nothing
Dim reportPath As String = "/Report1/ReportTest"
Dim format As String = "HTML4.0"
Dim historyID As String = Nothing
Dim devInfo As String = "<DeviceInfo><HTMLFragment>True</HTMLFragment></DeviceInfo>"

rs.Credentials = System.Net.CredentialCache.DefaultCredentials
rs.Url = "http://localhost/reportserver/Reportservice.asmx"

Dim parameters(1) As ReportingServices.ParameterValue

parameters(0) = New ReportingServices.ParameterValue
parameters(0).Name = "Parameter1"
parameters(0).Value = sDateBegin
parameters(1) = New ReportingServices.ParameterValue
parameters(1).Name = "Parameter2"
parameters(1).Value = sDateEnd

Dim credentials As ReportingServices.DataSourceCredentials() = Nothing
Dim showHideToggle As String = Nothing
Dim encoding As String
Dim mimeType As String
Dim warnings As ReportingServices.Warning() = Nothing
Dim reportHistoryParameters As ReportingServices.ParameterValue() = Nothing
Dim streamIDs As String() = Nothing
Dim sh As New ReportingServices.SessionHeader
rs.SessionHeaderValue = sh

Try
result = rs.Render(reportPath, format, historyID, devInfo, parameters, credentials, showHideToggle, encoding, mimeType, reportHistoryParameters, warnings, streamIDs)
sh.SessionId = rs.SessionHeaderValue.SessionId
Response.BinaryWrite(result)

Catch ee As SoapException
Response.Write(ee.Detail.OuterXml)
Response.End()
End Try

End Sub


4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧