如何把用户选择的查询条件生成一条查询语句加到report 的datasource里面?或者是用自己定义的dataset作为report的数据源?
还有,有没有直接打印的方法?

解决方案 »

  1.   

    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>
      

  2.   

    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;
    }
    }
    }
      

  3.   

    按例子做,
    自已做个mydataset1.* 数据集,
    就可以了了
      

  4.   

    做个数据集,赋值给Report。
    在报表中打印一般都调用客户端浏览器的打印
      

  5.   

    ドキュメントの内容をRDF形式でストリームまたはファイルに保存します
    一楼?
    建议你粘代码的时候去掉这些鸟字!
      

  6.   

    不知道在做报表的时候根据传参写存储过程可不可以.以前用水晶的时候都是用一个DATASET结构文件来做数据源开发报表,只要用同等结构的数据集来FILL这个DATASET就可以改变报表数据源了.可是现在SQL REPORTING SERVICE不知道可不可以.我所知道的只有二种方式,一种是用URL调用报表,还有一种是用WEBSERVICE来调用报表,至于怎么修改数据源,正在学..