C# WebService调用打印机打印水晶报表。

当初做WINCE程序时,需要通过webservice调用打印机 来打印, 中间传了一些参数取数据,用到水晶报表

架构:VS2005+WINCE5+ORACLE9I +水晶报表

    public int PrintLabel(string doc52no,string printername,string rfno,int p_uid,out string errmsg) 

    {

CrystalDecisions.CrystalReports.Engine.ReportDocument rd;

        conn.Open();
        DataSet ds = new DataSet();
        OracleCommand cmd = new OracleCommand("RF_GET01DOCPRT",conn);
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.Add("P_DOC52NO", OracleType.VarChar, 20);
        cmd.Parameters["P_DOC52NO"].Value = doc52no;

        cmd.Parameters.Add("P_UID", OracleType.Int32);
        cmd.Parameters["P_UID"].Value = p_uid;
        
        OracleParameter p_ds = cmd.Parameters.Add("P_CUR", OracleType.Cursor);
        p_ds.Direction = ParameterDirection.Output;
        
        OracleDataAdapter adp = new OracleDataAdapter(cmd);
        try
        {            
            adp.Fill(ds, "printdata");
        }
        finally
        {
            conn.Close();
            adp.Dispose();
        }
        errmsg = "";
        try
        {            
            rd = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
            rd.Load(Server.MapPath("~") + "/BCD.rpt"); //因为是webservice,所以这样取路径。
            rd.SetDataSource(ds.Tables[0]);
            //rd.PrintOptions.PrinterName = @"\\192.168.0.20\HP LaserJet P1008";
            //rd.PrintOptions.PrinterName = "Zebra  170XiIII Plus (300dpi)";
            string Printer = printername;
            if (Printer == "")
            {
                errmsg = "指定的打印机无效!";
                return 0;
            }
            rd.PrintOptions.PrinterName = Printer;
            rd.PrintToPrinter(1, false, 0, 0);
            return 1;
        }
        catch (Exception E1)
        {
            errmsg = E1.Message;
            return 0;
        }
        finally
        {
            rd.Dispose();
        }
    }


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值