Example #1
0
    protected void Page_Init(object sender, System.EventArgs e)
    {
        try
        {
            string sPath = HttpContext.Current.Request.MapPath("~/Report\\");

            //表示一个报表,并且包含定义、格式化、加载、导出和打印该报表的属性和方法。

            CrystalDecisions.CrystalReports.Engine.ReportDocument Report      = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
            CrystalDecisions.Shared.ParameterDiscreteValue        discreteVal = new CrystalDecisions.Shared.ParameterDiscreteValue();
            CrystalDecisions.Shared.ParameterValues paraValues = new CrystalDecisions.Shared.ParameterValues();

            //加载你事先做好的Crystal Report报表文件
            Report.Load(sPath + Request.QueryString["ReportName"], CrystalDecisions.Shared.OpenReportMethod.OpenReportByTempCopy);
            string sData = PublicApi.fnGetConStr("MNDT").Replace(";", ",");
            // 設定報表內SQL Server資料庫的登入資訊
            CrystalDecisions.Shared.TableLogOnInfo logonInfo = new CrystalDecisions.Shared.TableLogOnInfo();

            foreach (CrystalDecisions.CrystalReports.Engine.Table table in Report.Database.Tables)
            {
                logonInfo = table.LogOnInfo;
                var _with1 = logonInfo.ConnectionInfo;
                _with1.ServerName   = fnGetData(sData, "Data Source");
                _with1.DatabaseName = fnGetData(sData, "Initial Catalog");
                _with1.UserID       = fnGetData(sData, "User ID");
                _with1.Password     = fnGetData(sData, "Password");
                table.ApplyLogOnInfo(logonInfo);
            }


            Report.SetDataSource(Session["PrintDT"]);
            //Session["PrintDT"] = null;
            if (Report.ParameterFields["列印人員"] != null)
            {
                Report.SetParameterValue("列印人員", Session["sId"]);
            }

            if (Report.ParameterFields["進貨稅額"] != null)
            {
                string sSql =
                    "  SELECT [parameter]   " +
                    "  FROM   [mndtkind_details]   " +
                    "  WHERE  [kind_id] = 'TAX'   " +
                    "         AND [code_id] = 'IN'   ";
                Report.SetParameterValue("進貨稅額", PublicApi.fnGetValue(sSql, "MNDT"));
            }
            CrystalReportViewer1.PrintMode = CrystalDecisions.Web.PrintMode.ActiveX; //列印顯示列印選項,但只有IE會出現這功能
            //Report.PrintToPrinter(1, true, 0, 0); // 直接列印
            CrystalReportViewer1.ReportSource = Report;
            //CrystalReportViewer1.HasExportButton = false; //將匯出的功能False掉
            //CrystalReportViewer1.HasPrintButton = false;
            //CrystalReportViewer1.HasToggleGroupTreeButton = false; //將樹狀結構的按鈕False掉
            //CrystalReportViewer1.DisplayGroupTree = false; //將樹狀結構狀態False掉
        }
        catch (Exception e1)
        {
            //Functions.fnMessageBox(e1.ToString(), this);
        }
    }