2017-07-11 3 views
2

Mein Bericht zeigt Daten in einer Form an, in der ein radioButton aktiviert ist. Wenn mein radioButton aktiviert ist, werden die Daten unten in einem Bericht angezeigt. Wenn ich auf den Display-Button ("PRINT") klicke, müssen diese Daten in einem neuen Fenster angezeigt werden.Bericht in neuem Fenster auf Knopfdruck anzeigen

private void radioButton1_Checked(object sender, EventArgs e) 
{ 
    if (radioButton1.Checked) 
    { 
     CrystalReport1 cr1 = new CrystalReport1(); 
     crystalReportViewer1.ReportSource = cr1; 
    } 
} 

Mein Problem ist hier:

private void button1_Click(object sender, EventArgs e) 
{ 
    if (radioButton1.Checked) 
    { 
     MessageBox.Show("Print dates", "Top partners"); 
    } 
} 

Ich versuchte, die meinen Bericht in MessageBox.Show, hinzuzufügen, aber einen Fehler

Kann nicht Zeichenfolge konvertieren zu erhalten.

Wie kann ich den Bericht einfach in einem neuen Fenster generieren? Oder exportieren Sie es sogar in PDF oder ein anderes Format?

enter image description here

+0

Nur um klar zu sein, Sie versuchen, Datumswerte aus dem Crystal Report zu extrahieren und sie in einer Message Box anzuzeigen? – 4444

+0

Ich habe messageBox verwendet, weil ich keine andere Methode kenne, um Daten in einem neuen Fenster anzuzeigen. Ich muss Daten aus Crystal Reports extrahieren und in einem neuen Fenster anzeigen oder in einer Datei speichern (PDF, Excell) –

Antwort

0

Es ist nicht einfach zu einem Programminformation von einem ausgeführten Crystal Report zu extrahieren. Es ist nicht unmöglich (Ich nehme an, Sie könnten eine Funktion schreiben, die die Kontrolle über Ihre Maus übernimmt und kopiert die Informationen), aber es ist definitiv nicht zu empfehlen.

Stattdessen sollten Sie Code in C# schreiben, um grundlegende Aufgaben des Berichts auszuführen. Nehmen Sie den gleichen Datensatz, führen Sie Berechnungen oder Filterungen der Daten durch und geben Sie die Werte in verwendbaren Variablen zurück. Zum Glück ist dies alles ohne den Bericht leicht möglich, und Sie können die gleiche SQL-Abfrage, die der Bericht verwendet, direkt kopieren und die Ausführung in C# optimieren. Geben Sie die Werte zurück, die Sie als Liste benötigen, und geben Sie die verwendbaren Werte für die Aufnahme bereit.

Aber leider gibt es keinen einfachen Weg, um einfach einen Wert aus einem Bericht zu holen. Crystal ist wirklich alt, was die Technologie angeht, und viele der modernen Sensibilitäten treffen nicht zu.

Verwandte Themen