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