none
Problema con aplicacion y crystal report

    Pregunta

  • Buenas tardes, gente.

    Tengo un problema con una aplicación e impresión de report desde un pc. Para report uso Crystal Report.

    El problema que estoy teniendo es que dispongo de dos impresoras y dependiendo del pc que ejecúte la aplicación se imprime desde una impresora u otra.

    Para hacer la comprobación del equipo uso Request.UserHostAddress.

    Pongo el código.

    var impresora = "impresora1";
    
                ReportDocument rd = new ReportDocument();
    
                rd.Load(Path.Combine(Server.MapPath("~/Reports/Almacen/Oficina/"), "Articulo.rpt"));
    			//rd.Load(Path.Combine(Server.MapPath("~/Reports/Almacen/Almacen/"), "Articulo_alm.rpt"));
    			//var item2 = rd.ReportClientDocument;
    
    			// Look for a proxy address first
    			string _ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    
    			// If there is no proxy, get the standard remote address
    			if (_ip == null || _ip.ToLower() == "unknown")
    				_ip = Request.ServerVariables["REMOTE_ADDR"];
    
    			if (_ip == "192.168.10.37")
    			{
    				impresora = "impresora2";
    				//rd.Load(Path.Combine(Server.MapPath("~/Reports/Almacen/Almacen/"), "Articulo_alm.rpt"));
    			}				

    Cuando imprimo por la ip que especifico en la condición me da error. El problema es que me salta a la plantilla de error de ASP.NET MVC que viene por defecto que pone "error al procesar" y desconozco si es por que no entra por el if o por que el error viene de otra parte....

    Espero que me puedan ayudar.

    Saludos!

    martes, 12 de junio de 2018 15:44

Todas las respuestas

  • Buenas tardes, gente.

    Tengo un problema con una aplicación e impresión de report desde un pc. Para report uso Crystal Report.

    El problema que estoy teniendo es que dispongo de dos impresoras y dependiendo del pc que ejecúte la aplicación se imprime desde una impresora u otra.

    Para hacer la comprobación del equipo uso Request.UserHostAddress.

    Pongo el código.

    var impresora = "impresora1";
    
                ReportDocument rd = new ReportDocument();
    
                rd.Load(Path.Combine(Server.MapPath("~/Reports/Almacen/Oficina/"), "Articulo.rpt"));
    			//rd.Load(Path.Combine(Server.MapPath("~/Reports/Almacen/Almacen/"), "Articulo_alm.rpt"));
    			//var item2 = rd.ReportClientDocument;
    
    			// Look for a proxy address first
    			string _ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    
    			// If there is no proxy, get the standard remote address
    			if (_ip == null || _ip.ToLower() == "unknown")
    				_ip = Request.ServerVariables["REMOTE_ADDR"];
    
    			if (_ip == "192.168.10.37")
    			{
    				impresora = "impresora2";
    				//rd.Load(Path.Combine(Server.MapPath("~/Reports/Almacen/Almacen/"), "Articulo_alm.rpt"));
    			}				

    Cuando imprimo por la ip que especifico en la condición me da error. El problema es que me salta a la plantilla de error de ASP.NET MVC que viene por defecto que pone "error al procesar" y desconozco si es por que no entra por el if o por que el error viene de otra parte....

    Espero que me puedan ayudar.

    Saludos!

    Bueno, ya que no he tenido respuesta, especifico que ya se el error que me dá. Resulta que al intentar imprimir por la impresora2 esta no es detectada por el servidor.

    El problema es que impresora2 la tengo instalada en el servidor como recurso compartido y no la tengo conectada a un PrintServer….

    Como puedo especificar que imprima por ese recurso compartido? He puesto el siguiente código pero me sigue fallando.

    impresora = @"\\IP_EQUIPO\\impresora2";

    Saludos.

    miércoles, 20 de junio de 2018 6:53