Forum
See question

Impressão automática via API C#   

24 views
0
0

Bom dia,

Estou a tentar desenvolver um codigo C# que após a criação de um documento de venda via API (que ocorre sem problema) execute a impressão automática do mesmo.

Para isso estou a usar o exemplo do GITHUB, mas no momento da impressão obtenho sempre este erro:

“O ficheiro ‘Comercial\Documentos\VNDDocumento.rpt’ não se encontra na localização indicada!”

Já confirmei na pasta e o rpt está lá, e se imprimir via Eticadata22 tudo funciona bem.

Envio em anexo um exemplo do código.

Eticadata.Cust.Executable.zip

Mais alguém teve algum problema do género? Poderá faltar alguma inicialização dos reports ?

Obrigado

Faça login para poder traduzir
Customização
Eticadata
Marked as spam
Criado há 2 anos e 1 semana vtorsilva-2
v
vtorsilva-2 Iniciante
3 answers
0
Private answer

Já efetuei as alterações acima sugeridas agora da-me o seguinte erro:

Isto acontece tanto rdl (erro semalhante) assim como crystal reports. Será necessário ter alguma dll especifica referenciada?

Faça login para poder traduzir
Marked as spam
Criado há 1 ano e 11 meses comsoftwebpedrosilva
    0
    Private answer

    Boa tarde,

    Sim estava relacionado com o Login da plataforma WEB.

    Ainda não foram terminados os testes finais, mas o erro fica ultrapassado com a abertura do exercicio e secção.

     

    Obrigado

    Faça login para poder traduzir
    Marked as spam
    Criado há 1 ano e 11 meses vtorsilva-2
    v
    vtorsilva-2 Iniciante
      1
      Private answer

      Pela análise do código, o problema é provocado por não ter iniciado a interface web, que é necessária para o processo de impressão.

      No projeto exemplo usado, o método "GetEntitiesCategory" está configurado para invocar outros métodos para obter as categorias de entidades, requerendo mais código.

      Pode alterar o método "GetNewEtiAplicacao", para além de abrir o ambiente Desktop, abrir também o ambiente Web.

      Após a instrução de abrir a secção, e antes do Catch adicionar as instruções:

      //abrir Ambiente WEB

      LoginInfo loginUsereticadata = new LoginInfo();

      loginUsereticadata.login =
      authentication.Login;

      loginUsereticadata.password =
      authentication.Password;

      loginUsereticadata.idioma = "pt-pt";

      loginUsereticadata.server =
      authentication.SQLServerName;

      loginUsereticadata.sistema =
      authentication.SystemDatabase;

      var res = EtiWebClient.Post<Object,
      LoginInfo>(etiApp.Ambiente.ServerUri, "api/Shell/LoginUser", loginUsereticadata);

       

      OpenEmpresaInfo param = new OpenEmpresaInfo();

      param.codEmpresa = authentication.Company;

      param.codExercicio =
      authentication.FiscalYearCode;

      param.codSeccao = authentication.SectionCode;

      param.mostrarJanelaIniSessao = false;

      param.reabertura = true;

      res = EtiWebClient.Post<Object,

      OpenEmpresaInfo>(etiApp.Ambiente.ServerUri, "api/Shell/OpenCompany", param);

       

      Faça login para poder traduzir
      Marked as spam
      Criado há 1 ano e 11 meses ruipedrosa-2
      r
      ruipedrosa-2 Responsiveness Member