Estoy usando VB 6.0 y CR 8.5 (a través de la biblioteca CRAXDRT, no es una opción actualizar en este momento).
Este código
Report.SelectPrinter
no funciona si el programa se ejecuta a través de Tareas Programadas de Windows. Funciona bien cuando los usuarios ejecutan el programa de forma interactiva. No se genera ningún error, el informe simplemente no se imprime. La variable strPrinter contiene un nombre de impresora de red válido, por ejemplo "
srvprxxxx\pr3456789"
Cualquier sugerencia/cosas para intentar hacer que SelectPrinter funcione cuando la aplicación se está ejecutando como Tareas Programadas sería de gran ayuda.
Esto es lo que ya he intentado.
Usar la biblioteca CRPEAuto en su lugar. Adivina qué, todo funciona bien. Me cambiaría a la biblioteca CRPEAuto, pero desafortunadamente no admite parámetros de informe con valores múltiples. No hay un método CRPEAuto.ParameterFieldDefinition.AddCurrentValue como en CRAXDRT.
Si conoces una forma de pasar múltiples valores de parámetros de informe usando la biblioteca CRPEAuto, te estaría agradecido.
También utilicé las funciones de API en el crpe32.dll directamente. Nuevamente, mi pequeña aplicación de prueba funcionó bien, pero desafortunadamente esta API no es una opción porque perdería la funcionalidad existente de nuestras dll internas que ya están en producción.
¿Es posible obtener el "PrintJob #" (requerido por las funciones de API CRPE32) del objeto de Informe CRAXDRT?
Parece que estoy en una situación de callejón sin salida. No importa qué biblioteca/método intente utilizar, falla en algún punto.