MSChartObject.DesignExt.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. using FastReport.DataVisualization.Charting;
  2. using FastReport.Utils;
  3. using System;
  4. using System.ComponentModel;
  5. using System.Drawing;
  6. using System.Windows.Forms;
  7. namespace FastReport.MSChart
  8. {
  9. partial class MSChartObject : IHasEditor
  10. {
  11. #region Properties
  12. /// <summary>
  13. /// This property is not relevant to this class.
  14. /// </summary>
  15. [Browsable(false)]
  16. public new string Style
  17. {
  18. get { return base.Style; }
  19. set { base.Style = value; }
  20. }
  21. /// <summary>
  22. /// This property is not relevant to this class.
  23. /// </summary>
  24. [Browsable(false)]
  25. public new string EvenStyle
  26. {
  27. get { return base.EvenStyle; }
  28. set { base.EvenStyle = value; }
  29. }
  30. /// <summary>
  31. /// This property is not relevant to this class.
  32. /// </summary>
  33. [Browsable(false)]
  34. public new string HoverStyle
  35. {
  36. get { return base.HoverStyle; }
  37. set { base.HoverStyle = value; }
  38. }
  39. #endregion
  40. #region Public Methods
  41. /// <inheritdoc/>
  42. public override SizeF GetPreferredSize()
  43. {
  44. if ((Page as ReportPage).IsImperialUnitsUsed)
  45. return new SizeF(Units.Inches * 3, Units.Inches * 2);
  46. return new SizeF(Units.Millimeters * 80, Units.Millimeters * 50);
  47. }
  48. /// <inheritdoc/>
  49. public override void OnBeforeInsert(int flags)
  50. {
  51. base.OnBeforeInsert(flags);
  52. MSChartSeries series = AddSeries(SeriesChartType.Column);
  53. series.CreateDummyData();
  54. }
  55. /// <inheritdoc/>
  56. public override void OnAfterInsert(InsertFrom source)
  57. {
  58. base.OnAfterInsert(source);
  59. if (source == InsertFrom.NewObject)
  60. Series[0].CreateUniqueName();
  61. }
  62. /// <inheritdoc/>
  63. public bool InvokeEditor()
  64. {
  65. using (MSChartObjectEditorForm form = new MSChartObjectEditorForm())
  66. {
  67. form.ChartObject = this;
  68. return form.ShowDialog() == DialogResult.OK;
  69. }
  70. }
  71. /// <inheritdoc/>
  72. public override void OnMouseMove(MouseEventArgs e)
  73. {
  74. base.OnMouseMove(e);
  75. if (Hyperlink.Kind == HyperlinkKind.DetailPage || Hyperlink.Kind == HyperlinkKind.DetailReport)
  76. {
  77. float m = DrawUtils.ScreenDpi / 96f;
  78. Chart.Size = new Size((int)(Width * m), (int)(Height * m));
  79. HitTestResult hitTest = Chart.HitTest((int)(e.X * m), (int)(e.Y * m));
  80. if (hitTest.ChartElementType == ChartElementType.DataPoint)
  81. {
  82. HotPoint = hitTest.Series.Points[hitTest.PointIndex];
  83. Hyperlink.Value = HotPoint.AxisLabel;
  84. Cursor = Cursors.Hand;
  85. }
  86. else
  87. {
  88. HotPoint = null;
  89. Hyperlink.Value = "";
  90. Cursor = Cursors.Default;
  91. }
  92. }
  93. }
  94. /// <inheritdoc/>
  95. public override void OnMouseLeave(EventArgs e)
  96. {
  97. base.OnMouseLeave(e);
  98. HotPoint = null;
  99. }
  100. #endregion
  101. }
  102. partial class SparklineObject
  103. {
  104. /// <inheritdoc/>
  105. public override SizeF GetPreferredSize()
  106. {
  107. if (Page is ReportPage && (Page as ReportPage).IsImperialUnitsUsed)
  108. return new SizeF(Units.Inches * 1, Units.Inches * 0.2f);
  109. return new SizeF(Units.Millimeters * 25, Units.Millimeters * 5);
  110. }
  111. /// <inheritdoc/>
  112. public override void OnBeforeInsert(int flags)
  113. {
  114. MSChartSeries series = AddSeries(SeriesChartType.FastLine);
  115. series.CreateDummyData();
  116. Chart.BorderSkin.SkinStyle = BorderSkinStyle.None;
  117. Chart.BorderlineDashStyle = ChartDashStyle.NotSet;
  118. Chart.ChartAreas[0].AxisX.Enabled = AxisEnabled.False;
  119. Chart.ChartAreas[0].AxisY.Enabled = AxisEnabled.False;
  120. Chart.Legends[0].Enabled = false;
  121. }
  122. }
  123. }