/// <summary> /// 拷贝对象方法 /// </summary> /// <returns></returns> public override RptItem Clone() { RptChart newOne = new RptChart(_part); newOne._data.Copy(_data); return(newOne); }
void OnInsertChart(object sender, Mi e) { _owner.Excel.DecorationRange = null; CellRange range = _owner.Excel.ActiveSheet.Selections[0]; var item = new RptChart(_owner.GetContainer()); _owner.Info.ExecuteCmd(RptCmds.InsertChart, new InsertCmdArgs(item, range)); _owner.UpdateSelection(); }
/// <summary> /// 加载图表 /// </summary> /// <param name="p_chart"></param> void LoadChart(RptChart p_chart) { Dt.Cells.Data.Cell chartCell = _owner.Excel.Sheets[0].Cells[p_chart.Row, p_chart.Col]; chartCell.RowSpan = p_chart.RowSpan; chartCell.ColumnSpan = p_chart.ColSpan; chartCell.Background = new SolidColorBrush(Color.FromArgb(0XCC, 0XFF, 0XFD, 0XC5)); chartCell.VerticalAlignment = CellVerticalAlignment.Center; chartCell.HorizontalAlignment = CellHorizontalAlignment.Center; chartCell.FontFamily = Res.IconFont; chartCell.FontSize = 40; chartCell.Text = "\uE08D"; }
public override object Execute(object p_args) { InsertCmdArgs args = (InsertCmdArgs)p_args; RptChart chart = args.RptItem as RptChart; CellRange range = args.CellRange; chart.Row = range.Row; chart.Col = range.Column; chart.RowSpan = range.RowCount; chart.ColSpan = range.ColumnCount; chart.Part.Items.Add(chart); return(chart); }
/// <summary> /// 加载xml /// </summary> /// <param name="p_reader"></param> public virtual void ReadXml(XmlReader p_reader) { p_reader.MoveToElement(); if (p_reader.IsEmptyElement) { p_reader.Read(); return; } string name = p_reader.Name; p_reader.Read(); while (p_reader.NodeType != XmlNodeType.None) { if (p_reader.NodeType == XmlNodeType.EndElement && p_reader.Name == name) { break; } RptItem item = null; switch (p_reader.Name) { case "Text": item = new RptText(this); break; case "Table": item = new RptTable(this); break; case "Matrix": item = new RptMatrix(this); break; case "Chart": item = new RptChart(this); break; default: if (item == null) { Kit.Error(string.Format("反序列化报表模板时错误,无法识别报表项【{0}】!", p_reader.Name)); } break; } item.ReadXml(p_reader); Items.Add(item); } p_reader.Read(); }
internal void LoadItem(RptChart p_item) { if (_item == p_item) { return; } _item = p_item; Kit.RunAsync(() => { _item.Data.Changed -= OnValueChanged; _fv.Data = _item.Data; _item.Data.Changed += OnValueChanged; InitChart(); string dataSourceName = _item.Data.Str("tbl"); if (string.IsNullOrEmpty(dataSourceName)) { // 如果未选中唯一的数据源,默认选中 var ls = _item.Root.Data.DataSet; if (ls != null && ls.Count == 1) { // 使用initVal 避免重做撤消命令产生冗余操作。 _item.Data.InitVal("tbl", ls[0].Str("name")); DataDropBox(ls[0].Str("name")); } } else { for (int i = 0; i < _item.Root.Data.DataSet.Count; i++) { if (_item.Root.Data.DataSet[i].Str("name") == dataSourceName) { DataDropBox(dataSourceName); break; } } } }); }