/Reports/ReportManager.cs

http://github.com/khaneh/Orders · C# · 160 lines · 120 code · 29 blank · 11 comment · 8 complexity · 9c26fb2d7204f579cb8c34c9b60149ab MD5 · raw file

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Web;
  7. using System.Web.SessionState;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.HtmlControls;
  11. using CrystalDecisions.CrystalReports.Engine;
  12. using CrystalDecisions.Shared;
  13. using CrystalDecisions.Web;
  14. namespace Reports
  15. {
  16. /// <summary>
  17. /// One object from this class will initialize and print CR reports
  18. /// </summary>
  19. public class ReportManager
  20. {
  21. protected String PrinterName;
  22. protected ParameterFields paramFields = new ParameterFields ();
  23. protected ParameterField paramField = new ParameterField ();
  24. protected ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();
  25. protected ParameterField paramField2 = new ParameterField ();
  26. protected ParameterDiscreteValue discreteVal2 = new ParameterDiscreteValue ();
  27. public ReportManager()
  28. {
  29. //PrinterName="\\\\Orders1\\LQ300_O1";
  30. //PrinterName="\\\\mohammad\\LQ300_O2";
  31. //PrinterName="\\\\AHOKI\\LQ300_O3";
  32. //PrinterName="\\\\GOLABI\\LQ300_C";
  33. //PrinterName="\\\\KOOCHAK\\LQ300_P1";
  34. PrinterName="none";
  35. }
  36. public ReportManager(String Printer)
  37. {
  38. PrinterName=Printer;
  39. }
  40. public void SetPrinter(String IP)
  41. {
  42. PrinterName=Util.choosePrinter(IP);
  43. }
  44. public Boolean initReport(ReportClass crReport, CrystalReportViewer CrystalReportViewer1, String param, String ParamName)
  45. {
  46. if(param=="" || param==null ) return false;
  47. paramField.ParameterFieldName = ParamName;
  48. discreteVal.Value = param;
  49. paramField.CurrentValues.Add (discreteVal);
  50. paramFields.Add (paramField);
  51. CrystalReportViewer1.ReportSource = crReport;
  52. CrystalReportViewer1.ParameterFieldInfo = paramFields;
  53. CrystalReportViewer1.RefreshReport();
  54. return true;
  55. }
  56. public Boolean initReport(ReportClass crReport, CrystalReportViewer CrystalReportViewer1, String param1, String ParamName1, String param2, String ParamName2)
  57. {
  58. if(param1=="" || param1==null ) return false;
  59. if(param2=="" || param2==null ) return false;
  60. paramField.ParameterFieldName = ParamName1;
  61. discreteVal.Value = param1;
  62. paramField.CurrentValues.Add (discreteVal);
  63. paramFields.Add (paramField);
  64. crReport.DataDefinition.ParameterFields[0].CurrentValues.Add (discreteVal);
  65. paramField2.ParameterFieldName = ParamName2;
  66. discreteVal2.Value = param2;
  67. paramField2.CurrentValues.Add (discreteVal2);
  68. paramFields.Add (paramField2);
  69. crReport.DataDefinition.ParameterFields[1].CurrentValues.Add (discreteVal2);
  70. CrystalReportViewer1.ReportSource = crReport;
  71. CrystalReportViewer1.ParameterFieldInfo = paramFields;
  72. CrystalReportViewer1.RefreshReport();
  73. return true;
  74. }
  75. public Boolean printReport(CrystalDecisions.CrystalReports.Engine.ReportClass crReport, CrystalReportViewer CrystalReportViewer1, String param, String ParamName)
  76. {
  77. bool success=false;
  78. if (PrinterName!="none")
  79. {
  80. try
  81. {
  82. paramField.ParameterFieldName = ParamName;
  83. discreteVal.Value = param;
  84. paramField.CurrentValues.Add (discreteVal);
  85. paramFields.Add (paramField);
  86. crReport.DataDefinition.ParameterFields[0].CurrentValues.Add (discreteVal);
  87. CrystalReportViewer1.ReportSource = crReport;
  88. CrystalReportViewer1.ParameterFieldInfo = paramFields;
  89. CrystalReportViewer1.RefreshReport();
  90. ParameterValues tmpParam = new ParameterValues();
  91. tmpParam.Add(discreteVal);
  92. crReport.DataDefinition.ParameterFields[0].ApplyCurrentValues(tmpParam);
  93. crReport.PrintOptions.PrinterName = PrinterName;
  94. //crReport.PrintToPrinter(1,false,1,1);
  95. crReport.PrintToPrinter(1,false,1,99);
  96. success=true;
  97. }
  98. catch{}
  99. }
  100. return success;
  101. }
  102. public Boolean printReport(CrystalDecisions.CrystalReports.Engine.ReportClass crReport, CrystalReportViewer CrystalReportViewer1, String param1, String ParamName1, String param2, String ParamName2)
  103. {
  104. if (PrinterName=="none") return false;
  105. paramField.ParameterFieldName = ParamName1;
  106. discreteVal.Value = param1;
  107. paramField.CurrentValues.Add (discreteVal);
  108. paramFields.Add (paramField);
  109. crReport.DataDefinition.ParameterFields[0].CurrentValues.Add (discreteVal);
  110. paramField2.ParameterFieldName = ParamName2;
  111. discreteVal2.Value = param2;
  112. paramField2.CurrentValues.Add (discreteVal2);
  113. paramFields.Add (paramField2);
  114. crReport.DataDefinition.ParameterFields[1].CurrentValues.Add (discreteVal2);
  115. CrystalReportViewer1.ReportSource = crReport;
  116. CrystalReportViewer1.ParameterFieldInfo = paramFields;
  117. CrystalReportViewer1.RefreshReport();
  118. ParameterValues tmpParam = new ParameterValues();
  119. ParameterValues tmpParam2 = new ParameterValues();
  120. tmpParam.Add(discreteVal);
  121. tmpParam2.Add(discreteVal2);
  122. crReport.DataDefinition.ParameterFields[0].ApplyCurrentValues(tmpParam);
  123. crReport.DataDefinition.ParameterFields[1].ApplyCurrentValues(tmpParam2);
  124. crReport.PrintOptions.PrinterName = PrinterName;
  125. // crReport.PrintToPrinter(1,false,1,1);
  126. crReport.PrintToPrinter(1,false,1,99);
  127. //Response.write (PrinterName);
  128. return true;
  129. }
  130. }
  131. }