Array
(
)

Crystal reports - artigo Clube Delphi ed. 61 ?

Cesarpir
   - 11 mai 2005

Oi pessoal, fiz um exemplo citado nesta edição Autor: Luciano Pimenta, mas acho que ele não imprimiu !
Na tela funciona do jeito que ele cita o exemplo, legal funcionou, mas na hora de emitir que acredito que seja o objetivo do crystal, não sai nada legal, tudo fora, será que tem algo a mais a fazer ?
Alguém já tentou fazer um relatório em crystal reports, mas não em Windows forms tô falando em Asp .Net ok!
Outra coisa, o autor diz que é muito fácil exportar relatórios no crystal PDF, Word, Excel ou RTF, apresentou o código:

Crystal.reportviewer1.Export;

Será que é somente para Windows forms ? e no Asp .Net como ficaria?

Gostaria de saber se é possível em delphi asp .net fazer um relatório que seja impresso não em tela ?
Se eu estiver esquecendo algo ou não souber algo por favor desculpas, segui passo a passo o artigo.

Obrigado

César


Cristiam
   - 11 mai 2005

No ASP.NET faça assim:

#Código


Self.CrystalReportViewer.ReportSource = ´c:\temp\report.rpt´.


;)


Cesarpir
   - 12 mai 2005

Amigo cristiam obrigado, mas acho que posso não ter explicado direito ou ainda não entendi, pois a forma de se chamar ou executar o relatório ok,

no meu projeto eu faço como o exemplo do artigo,
no page load do form:

CrystalReportViewer.ReportSource := Server.MapPath(´rptClientes.rpt´);

Vou detalhar um pouco mais acho tb que não fui claro:

A questão é com o exemplo em windows forms funciona ´Acessando o firebird´, consigo até exportar para PDF como o autor Luciano Pimenta citou, ai logo em seguida ele dá um exemplo para delphi asp .net, só que ao invés dele utilizar o mesmo Firebird ele fez com um xml que já vem com o delphi de demo ok. Isto tudo na revista.
Ai fui criei um projeto meu com firebird instalei o bdp e o odbc do firebird ok, fiz vários cadastros já incluindo alterando, blz, chegou a hora de relatórios ai começou todo o problema, ou estou fazendo errado ou o crystal não é compatível com o Firebird, consigo fazer o relatório, mas na hora de executá-lo olha a tela uma parafernalha de erro olhe só:

//
Server Error in ´/Teste´ Application.
--------------------------------------------------------------------------------

Logon failed.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: CrystalDecisions.CrystalReports.Engine.LogOnException: Logon failed.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. System.Web.UI.Page.ProcessRequestMain() 1489




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:1.1.4322.573; ASP.NET Version:1.1.4322.573
//

Obs: Criei um odbc conforme é pedido na revista, dei o nome de Teste

Para finalizar o meu objetivo é tenho que fazer um relatório que possa ser visualizado e impresso tb, e que possívelmente será exportado principalmente para PDF, vi que em windows forms tudo funciona, mas em asp.net tá dificil.

Desde já muito Obrigado pela sua atenção.

César


Cristiam
   - 12 mai 2005

Ahhhh sim, também tive esse mesmo problema.....
O que eu tive que fazer foi:

#Código


var
Teste : ReportDocument;
begin
Teste := ReportDocument.Create;
Teste.Load(´c:\inetpub\wwwroot\testeCrystal\Report1.rpt´);
teste.SetDatabaseLogon(´rafael´, ´rafael1´);
CrystalReportViewer1.ReportSource := Teste;



Veja se com isso vai funcionar o seu programa..... :wink:


Cesarpir
   - 12 mai 2005

Amigo Cristian ainda dá erro veja o código que fiz baseado no seu:

procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);
var
Teste : ReportDocument;
begin
// TODO: Put user code to initialize the page here
Teste := ReportDocument.Create;
Teste.Load(´C:\Inetpub\wwwroot\Teste\rptClientes.rpt´);
Teste.SetDatabaseLogon(´SYSDBA´,´masterkey´);
CrystalReportViewer1.ReportSource := Teste;
end;

Ficou assim, a linha onde tem SetDatabaseLogon é o login do firebird ?, eu entendi que seria assim, e tive que acrescentar a uses
CrystalDecisions.CrystalReports.Engine, senão as palavras reportdocument, e outras não compilava, e a propósito, a linha Teste.Load a palavra Load tá ficando sublinhada, pq será ? mas quando executo através do run without debugging do menu run do delphi ele inicia o projeto, mas olha o erro:

Server Error in ´/Teste´ Application.
--------------------------------------------------------------------------------

Logon failed.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: CrystalDecisions.CrystalReports.Engine.LogOnException: Logon failed.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. System.Web.UI.Page.ProcessRequestMain() 1489




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:1.1.4322.573; ASP.NET Version:1.1.4322.573

Cristiam
   - 12 mai 2005

Para vc se conectar no Firebird vc digita esse usuário e senha?
Teoricamente era para funcionar assim.
Sobre o Load ele realmente fica sublinhado de vermelho.
Desculpe-me por não ter falado, mas vc precisa adicionar a uses mesmo. :oops:
Agora não sei pq não está funcionando. Eu utilizo o SQL server e funcionou perfeitamente desta forma.


Cesarpir
   - 12 mai 2005

Valeu amigo Cristian, vou continuar tentando aqui, muito obrigado mesmo, de qualquer forma logo estarei utilizando o Sql Server tb, to com quase certeza de que é o firebird mesmo, agora tava pensando se no exemplo da clube delphi o autor fez com xml será que tem como antes de executar o relatório gerar um xml com os dados necessário e ai passar para o crystal ? isto acreditando que o firebird é mesmo incompátivel né :( nossa mais que trabalho acho que isso daria, nem sei se compensa.

Aproveitando da sua bondade e a respeito de exportar o relatório para pdf, vi que agora com o seu codigo de chamar o relatório aparece o exports algo assim, vou ter que exportar para pdf, vc acha que funciona legal ou já testou com o sql server ?

Obrigado

César


Cristiam
   - 12 mai 2005

Eu estou utilizando meu relatório com SQL Server.... Está quase pronto, só faltando um pequeno detalhe. =)
Não sei como ficaria exportando para pdf, nunca pensei em fazer isso. Parece interessante. :wink:


Cristiam
   - 12 mai 2005

Tenta dar um CrystalreportViewer1.databind no final do código q te mostrei para ver se funciona.


Cesarpir
   - 13 mai 2005

Amigo Cristian olha só como ficou o código:

procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);
var
Teste : ReportDocument;
begin
// TODO: Put user code to initialize the page here
Teste := ReportDocument.Create;
Teste.Load(´C:\Inetpub\wwwroot\Teste\rptClientes.rpt´);
Teste.SetDatabaseLogon(´SYSDBA´,´masterkey´);
CrystalReportViewer1.ReportSource := Teste;
CrystalReportViewer1.Databind;
end;

Se estiver certo o que digitei não funcionou, mas não se incomode, estou fazendo um teste com firebird mas estamos adquirindo o SQL-Server logo, é que estou que nem criança para ver, e olha só eu fiz assim para exportar um relatório carregando dados de xml e funcionou:

Teste := ReportDocument.Create;
Teste.Load(´C:\Inetpub\wwwroot\Teste\rptClientes.rpt´);
Teste.ExportToDisk(exportformattype.PortableDocFormat,´C:\Teste.pdf´);
Teste.ExportToDisk(exportformattype.Excel,´C:\Teste.xls´);
Teste.ExportToDisk(exportformattype.WordForWindows,´C:\Teste.Doc´);

Se acredita que menos o pdf não funcionou, ele cria o arquivo TESTE.PDF mas na hora de abrir ele da uma msg de erro assim:

An unrecognized token ´0,05´ was found.

eee vida dura não, mas não vou desistir, assim que chegar o SQLServer, tomara que dê tudo certo, pois tenho um projeto a entregar.

Valeu mesmo pela sua atenção, obrigado.


César