Diego,

Gracias por la sugerencia. Estuve probando, pero si bien en el artículo dice 
que los métodos públicos se pueden ejecutar, en las pruebas no pasa nada. En 
realidad genera el mismo error "el objeto no soporta la propiedad o metodo"...

Veo tambien que en el atriculo sugiere ejecutar métodos de acuerdo al valor de 
una propiedad.... En el peor de los casos invento algo con esto....

Saludos

Jorge



________________________________
De: Diego Jancic <jan...@gmail.com>
Para: puntonet@mug.org.ar
Enviado: martes, 11 de mayo, 2010 13:58:29
Asunto: [puntonet] Re: [puntonet] Impresión en ASP.NET

Hola,
No te es mas facil incluir directamente el control de .net en la pagina? Sin 
usar un activeX?

http://codebetter.com/blogs/peter.van.ooijen/archive/2007/06/18/including-a-winforms-user-control-in-an-asp-net-web-page.aspx

No tenes que hacer nada raro, pero tene en cuenta las limitaciones:


For this to work well the following requirements are put on the client 
        * Use Internet Explorer. This does not work in any of the other 
browsers. 
        * Have the .NET framework installed on the client machine. 
        * The site should be included in the trusted sites list of the browser. 
        * The browser should be allowed to download files from the (trusted) 
site. 


2010/5/11 Jorge Monsalvo <jm_tecno2...@yahoo.com.ar>

Estimados,
>
>Me surgió el siguiente problema. Tengo una aplicación local (winforms) que 
>tiene una dll para la impresión de unos tickets en formato especial (el papel 
>es formulario continuo con troqueles). Por cuestiones comerciales ajenas al 
>desarrollo original tengo que portar esa impresión a una aplicación web cuyo 
>servidor va estar alojado en algun proveedor comercial. Como todo buen 
>programador, no tengo ganas (ni tiempo) de hacer un nuevo desarrollo, por lo 
>que surgió la idea de armar un ActiveX en .NET  Seguí algunos ejemplos en la 
>red y logré qué se expusiera una propiedad, pero ningún método (Obviamente los 
>métodos expuestos en realidad llaman a métodos de la dll original) . Por 
>supuesto cada a dll utilizada le agregamos una firma, y la compilamos con la 
>opcion de visibilidad COM activada.
>
>Les adjunto algunos fragmentos de código como para entender que estoy tratando 
>de hacer, pero mas alla de la ayuda con el código fuente (que se agradece 
>desde ya) quisiera sus opiniones para ver si voy por buen camino, si hay 
>componentes disponibles para bajar o comprar, o si existen alternativas de 
>bajo costo (esto es con el menor tiempo de codificación posible)
>
>Muchas Gracias!!!
>
>Jorge.
>
>Esto es el código de prueba de la DLL que generaría el componente ActiveX
>
>namespace
>{AxPrinting    publicinterfaceAxInterface    {
>    }
> 
>    [
>    {
>        {
>        }
>        publicstringSeleccionarImpresora(stringbuscar)            
>returnprt.SeleccionarImpresora(buscar); 
>        {
>        }
>        publicvoidImprimirCargoPorID(intidcargo)
>        {
>            prt.PrintCargoByID(idcargo);
>        }
>}
> 
> 
>Página web de prueba
> <headrunat="server"></
><    <title></title>head>body>        
><objectid="miClase"name="miClase"classid="clsid:0b41245e-5f3c-4371-91bb-22d95134e446"width="400"height="100"></object>   
>     <formid="form1"name="form1"action="">            
><inputtype="text"name="txt"value="enter text 
>here"><inputtype=buttonvalue="Click me"onClick="doScript();"></
> scriptlanguage="javascript"type="text/javascript">alert(form1.txt.value);
>miClase.Connstr = form1.txt.value;
>miClase.SeleccionarImpresora(
>alert(miClase.Connstr);                        //Si obviamos el error esto 
>muesta el valor correcto.</
></script>html>
>}functiondoScript() {"Cute");  //Aca falla "El objeto no soporta esa propiedad 
>o metodo"
><        </form>body>        stringSeleccionarImpresora(stringbuscar);        
>voidImprimirCargoPorID(intidCargo);        stringConnstr { get; set; 
>}ClassInterface(ClassInterfaceType.AutoDual)]     publicclassAxClass: 
>AxInterface        privateClasePrintingprt = newClasePrinting();  //Esta es la 
>clase original        publicstringConnstr            get{ returnprt.Connstr; 
>}            set{ prt.Connstr = value; }       
>
>
>
>
>



      

Responder a