Estou usando VB 6.0 e CR 8.5 (através da biblioteca CRAXDRT, não é uma opção atualizar neste momento).
Este código
Report.SelectPrinter
não funciona se o programa é executado através de Tarefas Programadas do Windows. Funciona bem quando os usuários executam o programa de forma interativa. Não é gerado nenhum erro, o relatório simplesmente não é impresso. A variável strPrinter contém um nome de impressora de rede válido, por exemplo "
srvprxxxx\pr3456789"
Qualquer sugestão/coisas para tentar fazer o SelectPrinter funcionar quando a aplicação está sendo executada como Tarefas Programadas seria de grande ajuda.
Isso é o que já tentei.
Usar a biblioteca CRPEAuto em seu lugar. Adivinha só, tudo funciona bem. Eu mudaria para a biblioteca CRPEAuto, mas infelizmente não suporta parâmetros de relatório com valores múltiplos. Não há um método CRPEAuto.ParameterFieldDefinition.AddCurrentValue como no CRAXDRT.
Se você conhece uma maneira de passar múltiplos valores de parâmetros de relatório usando a biblioteca CRPEAuto, eu ficaria agradecido.
Também utilizei as funções de API no crpe32.dll diretamente. Novamente, minha pequena aplicação de teste funcionou bem, mas infelizmente essa API não é uma opção porque perderia a funcionalidade existente de nossas dll internas que já estão em produção.
É possível obter o "PrintJob #" (necessário para as funções de API CRPE32) do objeto de Relatório CRAXDRT?
Parece que estou em um beco sem saída. Não importa qual biblioteca/método eu tente usar, falha em algum ponto.