2009-10-20 9 views
1

Nous utilisons Intraweb pour nos applications Web et utilisons ReportBuilder pour créer des rapports sur nos applications Windows internes. Nous avons également ExtraDevices que nous avons utilisé pour nous permettre d'enregistrer nos rapports ReportBuilder en tant que fichiers Excel. Maintenant, je veux produire un rapport sur nos applications Web en tant que fichier PDF. J'ai un exemple sur la façon dont cela est fait avec ExtraDevices. Cependant, comment l'exemple suivant est-il modifié avec Intraweb?Comment diffuser des rapports ReportBuilder en tant que fichiers PDF sur Intraweb à l'aide d'ExtraDevices?

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject; Request: 
    TWebRequest; Response: TWebResponse; var Handled: Boolean); 
var 
    HD: TPDFDevice; 
    MS: TMemoryStream; 
begin 
    MS := TMemoryStream.Create; 
    HD := TPDFDevice.Create(Self); 
    HD.PrintToStream := True; 
    HD.ReportStream := MS; 
    HD.Publisher := Rpt.Publisher; 
    Rpt.PrintToDevices; 
    Response.ContentType := HD.ContentType; 
    Response.ContentStream := MS; 
    Response.SendResponse; 
    HD.Free; 
end; 

Répondre

1

Je pense avoir trouvé la réponse à ma question. J'ai simplement besoin d'utiliser TIWApplication.SendStream.

Le code serait modifié ainsi:

procedure TfrmSomeIWForm.SomeBtnClick(Sender: TObject); 
var 
    HD: TPDFDevice; 
    MS: TMemoryStream; 
begin 
    MS := TMemoryStream.Create; 
    HD := TPDFDevice.Create(Self); 
    HD.PrintToStream := True; 
    HD.ReportStream := MS; 
    HD.Publisher := Rpt.Publisher; 
    Rpt.PrintToDevices; 
    WebApplication.SendStream(MS,false,HD.ContentType); 
    HD.Free; 
end; 
0

Avez-vous vu le RaveDemo livré avec Intraweb? Je crois qu'il fait ce que vous cherchez mais avec Rave Reports. Je l'ai utilisé pour créer une version PDF d'Intraweb ReportBuilder il y a quelques temps.

Je ne suis pas sûr si elle diffuse le rapport cependant. Cela fait un moment que je l'ai regardé mais je pense qu'il peut l'enregistrer sur le disque plutôt que d'envoyer la réponse de la mémoire comme votre exemple.

+0

je vais jeter un oeil à elle. Mais bien sûr, je veux rester avec ReportBuilder puisque c'est ce que nous utilisons depuis un moment. – dmillam

+0

Pas besoin de changer pour Rave. J'utilise Reportbuilder moi-même. Le code est relativement facile à adapter de Rave à Reportbuilder. – LachlanG

Questions connexes