Comment faire pour Imprimer Automatiquement des Rapports Crystal avec l'Imprimante par Défaut
Je vais Avoir un problème sur automatiquement l'impression de rapports à l'aide de crystal reports. Ci-dessous mon code snippet
C'est une Impression mais le problème est-il ignorer les ReportView.SelectionFormula (Qui ne contient que la page 1 à la Page 10), Mais l'impression de la tous les enregistrements dans la source de données.
ConnectionInfo ConInfo;
try
{
this.Cursor = Cursors.WaitCursor;
ConInfo = ConfigureCrystalReportsRD();
ReportDocument.Load(reportToLoad);
ReportView.ReportSource = ReportDocument;
SetDBLogonForReportRD(ConInfo, ReportDocument);
SetReserveFormulaValue();
string strReportFilter = "";
strReportFilter = ReportDocument.DataDefinition.RecordSelectionFormula;
if (strReportFilter != "" && formulaFields != "")
{
ReportView.SelectionFormula = strReportFilter + " and " + formulaFields;
}
else
{
ReportView.SelectionFormula = formulaFields;
}
if (isPint == true)
{
this.Cursor = Cursors.WaitCursor;
System.Drawing.Printing.PrinterSettings printer = new System.Drawing.Printing.PrinterSettings();
System.Drawing.Printing.PageSettings page = new System.Drawing.Printing.PageSettings();
ReportDocument.PrintToPrinter(printer,page,true);
MessageBox.Show("Printing at " + printer.PrinterName + " .....");
this.Cursor = Cursors.Default;
}
this.Cursor = Cursors.Default;
}
catch (Exception e)
{
oGenMethod.ErrorMessage(e.Message, FORMID, "PreviewReport");
}
Remarque:
ReportView.PrintReport() fait le travail avec succès, mais il ouvre les Paramètres de l'Imprimante
Vous en remercie d'avance!
EDIT:
Ce qui n'allait pas dans mon code, c'est que j'ai seulement mis la RecordSelectionFormula à ReportViewer Objet n'est pas sur le Document de Rapport.
ConnectionInfo ConInfo;
string strReportFilter = "";
try
{
this.Cursor = Cursors.WaitCursor;
ConInfo = ConfigureCrystalReportsRD();
ReportDocument.Load(reportToLoad);
ReportView.ReportSource = ReportDocument;
SetDBLogonForReportRD(ConInfo, ReportDocument);
SetReserveFormulaValue();
strReportFilter = ReportDocument.DataDefinition.RecordSelectionFormula;
if (strReportFilter != "" && formulaFields != "")
ReportView.SelectionFormula = strReportFilter + " and " + formulaFields;
else
ReportView.SelectionFormula = formulaFields;
ReportDocument.DataDefinition.RecordSelectionFormula = ReportView.SelectionFormula;
if (isPint == true)
{
this.Cursor = Cursors.WaitCursor;
ReportDocument.PrintToPrinter(1, true, 0, 0);
this.Cursor = Cursors.Default;
}
Vous devez vous connecter pour publier un commentaire.
Salut si vous ne voulez pas le pop-up a montré que vous avez à utiliser le PrintToPrinter méthode de ReportDocument.
de sorte que vous devriez faire quelque chose comme ceci dans votre code
cela devrait résoudre votre problème.
Comme vous l'avez demandé, voici le code que j'utilise pour tester la formule de sélection et la PrintToPrinter méthode. J'ai d'abord créé un très facile de rapport basé sur mon compte tableau, que j'ai filtré sur mon code par le code, de sorte que je peux en obtenir un compte.
Ce code imprimer mon rapport avec un enregistrement sur elle, et si je commente la RecordSelectionFormulan ligne, le rapport s'imprime l'ensemble de la liste des comptes