高分求动态生成数据查询语句(sql Reporting Services)? 如何把用户选择的查询条件生成一条查询语句加到report 的datasource里面?或者是用自己定义的dataset作为report的数据源?还有,有没有直接打印的方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ActiveReports For .Net std版 用这个第三方控件可以做 Dim rpt As New GMes.ActArtOutput_Report rpt.DataSource = m_objActArt.dsForOut.Tables(0).DefaultView rpt.Run(False) 'ドキュメントの内容をRDF形式でストリームまたはファイルに保存します rptMyRpt.Document.Save(Server.MapPath("") + "\ReportOutput\GMES10031_rptActiveX.rdf", DataDynamics.ActiveReports.Document.RdfFormat.AR20)然后在HTML里加 <script language="vbscript" id="clientEventHandlersVBS"><!--Sub window_onload arv.datapath = "ReportOutput/GMES10031_rptActiveX.rdf"End Subsub arv_LoadCompleted() ' ActiveXビューワへのレポートの読み込みが完了すると、 ' 本イベントが発生します。 ' 印刷に使用するプリンタを任意に指定する場合、DeviceName ' プロパティにプリンタデバイス名をセットします。 ' WebViewer1.all("Ax").Printer.DeviceName = "\\srv-print\LBP1310d" ' 指定しない場合は、クライアント環境の「通常使うプリンタ」が ' デフォルトで使用されますので、通常は不要です。 ' クライアント環境のOSがWindows 98/Meである場合に、 ' 文字間隔が不正になる問題を回避するためのコードです。 arv.Printer.RenderMode = 1 ' レポートを印刷します。 ' 印刷状況ダイアログを表示する場合は、DisplayProgressDialog ' プロパティを"True"に設定してください。 arv.Printer.DisplayProgressDialog = False ' 印刷ダイアログを表示しない場合は、引数を"False"にしてください。 arv.PrintReport("False")end sub--> </script> <% END IF %><OBJECT id="arv" codeBase="arview2.cab#version=2,0,0,1214" height="0%" width="0%" classid="clsid:8569D715-FF88-44BA-8D1D-AD3E59543DDE" VIEWASTEXT> <PARAM NAME="_ExtentX" VALUE="26"> <PARAM NAME="_ExtentY" VALUE="26"> </OBJECT> <SCRIPT language="javascript" src="./Common/ReturnKey.js"></SCRIPT> private void RevealTime() { System.DateTime StartTime,EndTime; if(this.TBoxStTime.Text.Trim() == "" && this.TBoxEnTime.Text.Trim() == "") { TranStartTime = System.DateTime.Today.ToShortDateString(); TranEndTime = System.DateTime.Today.ToShortDateString(); REVEALTIME = "当日"; REVEALTIMESQL = "= to_date('"+System.DateTime.Today+"','YYYY-MM-DD HH24:MI:SS')"; } else if(this.TBoxStTime.Text.Trim() != "" && this.TBoxEnTime.Text.Trim() == "") { try { TranStartTime = this.TBoxStTime.Text.Trim(); TranEndTime = ""; StartTime = System.Convert.ToDateTime(this.TBoxStTime.Text.Trim()); REVEALTIME = StartTime.Year.ToString("0000")+"年"+StartTime.Month.ToString("00")+"月"+StartTime.Day.ToString("00")+"日至现在"; REVEALTIMESQL = ">= to_date('"+StartTime+"','YYYY-MM-DD HH24:MI:SS')"; } catch { this.Page.RegisterStartupScript("znfx","<script language=javascript>window.alert('注意:开始日期错误!');</script>"); return; } } else if(this.TBoxStTime.Text.Trim() == "" && this.TBoxEnTime.Text.Trim() != "") { try { TranStartTime = ""; TranEndTime = this.TBoxEnTime.Text.Trim(); EndTime = System.Convert.ToDateTime(this.TBoxEnTime.Text.Trim()); REVEALTIME = EndTime.Year.ToString("0000")+"年"+EndTime.Month.ToString("00")+"月"+EndTime.Day.ToString("00")+"日以前"; REVEALTIMESQL = "<= to_date('"+EndTime+"','YYYY-MM-DD HH24:MI:SS')"; } catch { this.Page.RegisterStartupScript("znfx","<script language=javascript>window.alert('注意:结束日期错误!');</script>"); return; } } else { try { TranStartTime = this.TBoxStTime.Text.Trim(); TranEndTime = this.TBoxEnTime.Text.Trim(); StartTime = System.Convert.ToDateTime(this.TBoxStTime.Text.Trim()); EndTime = System.Convert.ToDateTime(this.TBoxEnTime.Text.Trim()); REVEALTIME = StartTime.Year.ToString("0000")+"年"+StartTime.Month.ToString("00")+"月"+StartTime.Day.ToString("00")+"日至"+EndTime.Year.ToString("0000")+"年"+EndTime.Month.ToString("00")+"月"+EndTime.Day.ToString("00")+"日";; REVEALTIMESQL = "BETWEEN to_date('"+StartTime+"','YYYY-MM-DD HH24:MI:SS') AND to_date('"+EndTime+"','YYYY-MM-DD HH24:MI:SS')"; } catch { this.Page.RegisterStartupScript("znfx","<script language=javascript>window.alert('注意:开始/结束日期错误!');</script>"); return; } } } 按例子做,自已做个mydataset1.* 数据集,就可以了了 做个数据集,赋值给Report。在报表中打印一般都调用客户端浏览器的打印 ドキュメントの内容をRDF形式でストリームまたはファイルに保存します一楼?建议你粘代码的时候去掉这些鸟字! 不知道在做报表的时候根据传参写存储过程可不可以.以前用水晶的时候都是用一个DATASET结构文件来做数据源开发报表,只要用同等结构的数据集来FILL这个DATASET就可以改变报表数据源了.可是现在SQL REPORTING SERVICE不知道可不可以.我所知道的只有二种方式,一种是用URL调用报表,还有一种是用WEBSERVICE来调用报表,至于怎么修改数据源,正在学.. asp.net做的网页打不开 简单的Ajax问题???在线等 异常详细信息: System.NotSupportedException: 不支持给定路径的格式。 aspx 页面与ascx用户控件传值的问题 http请求头设置问题 急急急:查看Crystal报表,提示登陆失败! asp.net 中 能不能实现数据导航条功能? 如何写这样的sql语句??? System.Web.UI.WebControls.Panel的垂直滚动条的问题 报表导出问题 关于TreeView的小问题. >>>高分求助<<< 如何编写数据访问层?
Dim rpt As New GMes.ActArtOutput_Report
rpt.DataSource = m_objActArt.dsForOut.Tables(0).DefaultView
rpt.Run(False)
'ドキュメントの内容をRDF形式でストリームまたはファイルに保存します
rptMyRpt.Document.Save(Server.MapPath("") + "\ReportOutput\GMES10031_rptActiveX.rdf", DataDynamics.ActiveReports.Document.RdfFormat.AR20)然后在HTML里加 <script language="vbscript" id="clientEventHandlersVBS">
<!--Sub window_onload
arv.datapath = "ReportOutput/GMES10031_rptActiveX.rdf"
End Subsub arv_LoadCompleted()
' ActiveXビューワへのレポートの読み込みが完了すると、
' 本イベントが発生します。
' 印刷に使用するプリンタを任意に指定する場合、DeviceName
' プロパティにプリンタデバイス名をセットします。
' WebViewer1.all("Ax").Printer.DeviceName = "\\srv-print\LBP1310d"
' 指定しない場合は、クライアント環境の「通常使うプリンタ」が
' デフォルトで使用されますので、通常は不要です。 ' クライアント環境のOSがWindows 98/Meである場合に、
' 文字間隔が不正になる問題を回避するためのコードです。
arv.Printer.RenderMode = 1 ' レポートを印刷します。
' 印刷状況ダイアログを表示する場合は、DisplayProgressDialog
' プロパティを"True"に設定してください。
arv.Printer.DisplayProgressDialog = False
' 印刷ダイアログを表示しない場合は、引数を"False"にしてください。
arv.PrintReport("False")
end sub-->
</script>
<% END IF %>
<OBJECT id="arv" codeBase="arview2.cab#version=2,0,0,1214" height="0%" width="0%" classid="clsid:8569D715-FF88-44BA-8D1D-AD3E59543DDE"
VIEWASTEXT>
<PARAM NAME="_ExtentX" VALUE="26">
<PARAM NAME="_ExtentY" VALUE="26">
</OBJECT>
<SCRIPT language="javascript" src="./Common/ReturnKey.js"></SCRIPT>
{
System.DateTime StartTime,EndTime;
if(this.TBoxStTime.Text.Trim() == "" && this.TBoxEnTime.Text.Trim() == "")
{
TranStartTime = System.DateTime.Today.ToShortDateString();
TranEndTime = System.DateTime.Today.ToShortDateString();
REVEALTIME = "当日";
REVEALTIMESQL = "= to_date('"+System.DateTime.Today+"','YYYY-MM-DD HH24:MI:SS')";
}
else if(this.TBoxStTime.Text.Trim() != "" && this.TBoxEnTime.Text.Trim() == "")
{
try
{
TranStartTime = this.TBoxStTime.Text.Trim();
TranEndTime = "";
StartTime = System.Convert.ToDateTime(this.TBoxStTime.Text.Trim());
REVEALTIME = StartTime.Year.ToString("0000")+"年"+StartTime.Month.ToString("00")+"月"+StartTime.Day.ToString("00")+"日至现在";
REVEALTIMESQL = ">= to_date('"+StartTime+"','YYYY-MM-DD HH24:MI:SS')";
}
catch
{
this.Page.RegisterStartupScript("znfx","<script language=javascript>window.alert('注意:开始日期错误!');</script>");
return;
}
}
else if(this.TBoxStTime.Text.Trim() == "" && this.TBoxEnTime.Text.Trim() != "")
{
try
{
TranStartTime = "";
TranEndTime = this.TBoxEnTime.Text.Trim();
EndTime = System.Convert.ToDateTime(this.TBoxEnTime.Text.Trim());
REVEALTIME = EndTime.Year.ToString("0000")+"年"+EndTime.Month.ToString("00")+"月"+EndTime.Day.ToString("00")+"日以前";
REVEALTIMESQL = "<= to_date('"+EndTime+"','YYYY-MM-DD HH24:MI:SS')";
}
catch
{
this.Page.RegisterStartupScript("znfx","<script language=javascript>window.alert('注意:结束日期错误!');</script>");
return;
}
}
else
{
try
{
TranStartTime = this.TBoxStTime.Text.Trim();
TranEndTime = this.TBoxEnTime.Text.Trim();
StartTime = System.Convert.ToDateTime(this.TBoxStTime.Text.Trim());
EndTime = System.Convert.ToDateTime(this.TBoxEnTime.Text.Trim());
REVEALTIME = StartTime.Year.ToString("0000")+"年"+StartTime.Month.ToString("00")+"月"+StartTime.Day.ToString("00")+"日至"+EndTime.Year.ToString("0000")+"年"+EndTime.Month.ToString("00")+"月"+EndTime.Day.ToString("00")+"日";;
REVEALTIMESQL = "BETWEEN to_date('"+StartTime+"','YYYY-MM-DD HH24:MI:SS') AND to_date('"+EndTime+"','YYYY-MM-DD HH24:MI:SS')";
}
catch
{
this.Page.RegisterStartupScript("znfx","<script language=javascript>window.alert('注意:开始/结束日期错误!');</script>");
return;
}
}
}
自已做个mydataset1.* 数据集,
就可以了了
在报表中打印一般都调用客户端浏览器的打印
一楼?
建议你粘代码的时候去掉这些鸟字!