コード例 #1
0
ファイル: DesignCtl.cs プロジェクト: myersBR/My-FyiReporting
		private void menuInsertChart_Click(object sender, EventArgs e)
		{
			HitLocation hl = _DrawPanel.HitContainer(_MousePosition, 
				PointsX(_hScroll.Value), PointsY(_vScroll.Value));
			if (hl == null || hl.HitContainer == null)
				return;

			// Charts aren't allowed in PageHeader or PageFooter
			if (_DrawPanel.InPageHeaderOrFooter(hl.HitContainer))
			{
				MessageBox.Show(Strings.DesignCtl_Show_ChartsInsert, Strings.DesignCtl_Show_Insert);
				return;
			}

			_Undo.StartUndoGroup(Strings.DesignCtl_Undo_InsertChart);
			DialogNewChart dnc = new DialogNewChart(this._DrawPanel, hl.HitContainer);
            try
            {
                DialogResult dr = dnc.ShowDialog(this);
                if (dr != DialogResult.OK)
                {
                    _Undo.EndUndoGroup(false);
                    return;
                }
            }
            finally
            {
                dnc.Dispose();
            }
			XmlNode chart;
			if (hl.HitContainer.Name == "Table" || hl.HitContainer.Name == "fyi:Grid")
			{
				chart = _DrawPanel.ReplaceTableMatrixOrChart(hl, dnc.ChartXml);
			}
			else
				chart = _DrawPanel.PasteTableMatrixOrChart(hl.HitContainer, dnc.ChartXml, hl.HitRelative);

			if (chart == null)
			{
				_Undo.EndUndoGroup(false);
				return;
			}
			_Undo.EndUndoGroup(true);
			ReportChanged(this, new EventArgs());
			SelectionChanged(this, new EventArgs());
			ReportItemInserted(this, new EventArgs());
			_DrawPanel.Invalidate();   

			// Now bring up the property dialog
            //List<XmlNode> ar = new List<XmlNode>();
            //ar.Add(chart);
            //_Undo.StartUndoGroup("Dialog");
            //PropertyDialog pd = new PropertyDialog(_DrawPanel, ar, PropertyTypeEnum.ReportItems);
            //dr = pd.ShowDialog(this);
            //if (pd.Changed || dr == DialogResult.OK)
            //{
            //    _Undo.EndUndoGroup(true);
            //    ReportChanged(this, new EventArgs());
            //    _DrawPanel.Invalidate();   
            //}
            //else
            //    _Undo.EndUndoGroup(false);

			SetFocus();
		}
コード例 #2
0
ファイル: DesignCtl.cs プロジェクト: mnisl/OD
		private void menuInsertChart_Click(object sender, EventArgs e)
		{
			HitLocation hl = _DrawPanel.HitContainer(_MousePosition, 
				PointsX(_hScroll.Value), PointsY(_vScroll.Value));
			if (hl == null || hl.HitContainer == null)
				return;

			// Charts aren't allowed in PageHeader or PageFooter
			if (_DrawPanel.InPageHeaderOrFooter(hl.HitContainer))
			{
				MessageBox.Show("Charts can only be inserted in the body of the report.", "Insert");
				return;
			}

			_Undo.StartUndoGroup("Insert Chart");
			DialogNewChart dnc = new DialogNewChart(this._DrawPanel, hl.HitContainer);
			DialogResult dr = dnc.ShowDialog(this);
			if (dr != DialogResult.OK)
			{
				_Undo.EndUndoGroup(false);
				return;
			}
			XmlNode chart;
			if (hl.HitContainer.Name == "Table")
			{
				chart = _DrawPanel.ReplaceTableMatrixOrChart(hl, dnc.ChartXml);
			}
			else
				chart = _DrawPanel.PasteTableMatrixOrChart(hl.HitContainer, dnc.ChartXml, hl.HitRelative);

			if (chart == null)
			{
				_Undo.EndUndoGroup(false);
				return;
			}
			_Undo.EndUndoGroup(true);
			ReportChanged(this, new EventArgs());
			SelectionChanged(this, new EventArgs());
			ReportItemInserted(this, new EventArgs());
			_DrawPanel.Invalidate();   

			// Now bring up the property dialog
            List<XmlNode> ar = new List<XmlNode>();
			ar.Add(chart);
			_Undo.StartUndoGroup("Dialog");
			PropertyDialog pd = new PropertyDialog(_DrawPanel, ar, PropertyTypeEnum.ReportItems);
			dr = pd.ShowDialog(this);
			if (pd.Changed || dr == DialogResult.OK)
			{
				_Undo.EndUndoGroup(true);
				ReportChanged(this, new EventArgs());
				_DrawPanel.Invalidate();   
			}
			else
				_Undo.EndUndoGroup(false);

			SetFocus();
		}