Bon voila, étant issu du monde java et n'ayant fais que très peu de C, les pointeurs et équivalent (ByVal etc...) ne sont pas du tout mon fort, et je pense que c'est de la que vient mon petit problème de code.

Le truc est tout simple : j'ai un page asp Default.aspx. Au début de mon code Default.aspx.vb j'ai ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Partial Class _Default
    Inherits System.Web.UI.Page
    Private report As New ReportDocument
Je déclare donc une variable report qui est de type ReportDocument (pour du Crystal Report donc, ca vient peut etre de la aussi le problème)

Sur ma page Default, j'ai 2 boutons, l'un qui va ouvrir un .rpt qui se trouve sur le disque dur dans la variable report, récupérer une valeur dans une textbox pour la passer en paramètre et afficher le tout dans un CrystalReportViewer. Le deuxième bouton sert à imprimer ce rapport (directement la variable report, on voudrait se passer de la barre de controle du crystalreportviewer, et je ne peux pas utiliser la méthode d'impression du crystalreportviewer). Voila donc le code des deux méthodes Button_click :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.report.Load("C:\Rapport8.rpt")
        Me.report.SetParameterValue(0, TextBox1.Text)
        CrystalReportViewer1.ReportSource = report
        CrystalReportViewer1.Visible = True
    End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
    Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
        report.PrintToPrinter(1, false, 0, 0)       
    End Sub
Problème : dans le Button2_click, la variable report est "vide" (après avoir cliquer sur le premier bouton bien entendu). Voila ce que je crois comprendre :
- je déclare une variable ReportDocument qui s'appelle "report"
- quand je clique sur le bouton 1, je charge le rapport machin.rpt en lui passant des paramètres, je l'affiche etc...
- quand je clique sur le bouton 2 après le bouton 1, j'essaye d'imprimer le rapport, mais il dit que le chemin d'accès au rapport n'est pas correct. Si j'essaye d'afficher l'attribut FileName, il n'en a pas
- j'ai donc l'impression que lorsqu'on sort de la méthode Button1_click, la variable report ne récupère pas les changements qui ont été effectués, celle qui a été modifiée n'était qu'une copie de la variable originale.

J'ai évidemment tenté toutes les combinaisons de déclaration : Dim, Friend, Public, Private, j'ai meme essaye de la déclarer en static dans la première méthode, mais rien n'y fais.

Voila, si quelqu'un peut résoudre ce problème simple, parce que moi jsuis paumé la dedans, merci d'avance !