找回密码
 立即注册

QQ登录

只需一步,快速开始

lo20061

高级会员

3

主题

24

帖子

1113

积分

高级会员

积分
1113

活字格认证

最新发帖
lo20061
高级会员   /  发表于:2011-5-13 12:28  /   查看:13736  /  回复:21
1.第一次绑定后
2.新增一行数据,重新绑定后,新增加的那行数据对应的图跟前面的图会有冲突

21 个回复

正序浏览
gw0506
超级版主   /  发表于:2011-5-17 16:30:00
22#
你太客气了,这是我们该做的。

另外,关于添加Chart之后,不能undo的问题。Spread Designer是做了特殊处理实现的,所以你的应用程序中如果需要这个功能,也要特殊处理。

具体做法是继承FarPoint.Win.Spread.UndoRedo.UndoAction类,自定义一个ChartInsertUndoAction,实现Undo等几个接口。然后在程序中使用如下代码,将ChartInsertUndoAction加入到Spread的UndoManager中即可。
  1.             this.fpSpread1.AllowUndo = true;
  2.             ChartInsertUndoAction action = new ChartInsertUndoAction(chart,chart.Model,chart.ViewType);
  3.             this.fpSpread1.UndoManager.PerformUndoAction(action);
复制代码
回复 使用道具 举报
lo20061
高级会员   /  发表于:2011-5-17 13:59:00
21#
感谢您的耐心解答,thank you
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-5-17 13:40:00
20#
我说的设计器是值得Editor,您说的设计器应该是Designer。呵呵

我的意思是,你给的第二副效果图中,使用的“Select Data Source”这个editor。你是通过代码创建的Chart,如果你把Series的value也设置了,就不需要在UI上使用editor了,这样就不会有类型的问题。

使用editor,它会以默认值为基础创建Chart以及完成用户设置,而默认值是Box形状,所以出现您现在遇到的问题。

关于Clear Format的问题,你可以通过NamedStyle来管理。你可以将需要的样式,设置给NamedStyle,并把它应用到Cell上,一旦要清楚,将其删除即可。代码示例如下:
  1. FarPoint.Win.Spread.NamedStyle backstyle = new FarPoint.Win.Spread.NamedStyle("BlueBack");
  2. backstyle.BackColor = Color.Blue;
  3. FarPoint.Win.Spread.NamedStyle text1style = new FarPoint.Win.Spread.NamedStyle("OrangeText", "BlueBack");
  4. text1style.ForeColor = Color.Orange;
  5. FarPoint.Win.Spread.NamedStyle text2style = new FarPoint.Win.Spread.NamedStyle("YellowText", "BlueBack");
  6. text2style.ForeColor = Color.Yellow;
  7. fpSpread1.NamedStyles.Add(backstyle);
  8. fpSpread1.NamedStyles.Add(text1style);
  9. fpSpread1.NamedStyles.Add(text2style);
  10. fpSpread1.ActiveSheet.Cells[0,0,4,0].StyleName = "OrangeText";
  11. fpSpread1.ActiveSheet.Cells[0,1,4,1].StyleName = "YellowText";
复制代码
回复 使用道具 举报
lo20061
高级会员   /  发表于:2011-5-17 11:56:00
19#
是啊,您的想法跟我的一样,我是通代码过来完成撤消的功能,
我并没有用设计器啊,上面的全部都是通过代码来完成的,
非常感谢您的回复,还有就是上面我说的您提供的例子的问题,您好像还没有解答呢?
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-5-17 11:26:00
18#
如果你使用代码创建并设置Chart,就通过代码,吧想要的全部设置完毕。

如果要使用设计器,就按照设计器的步骤设置。选择完数据,在调整类型。

如果代码和设计器混用,会出现问题。
回复 使用道具 举报
lo20061
高级会员   /  发表于:2011-5-17 10:10:00
17#
另外,就是上面您提供的文档中的例子,因为我只需要一个barservices,所以我把代码修改成了下面:
  1.             FarPoint.Win.Chart.BarSeries series1 = new FarPoint.Win.Chart.BarSeries();
  2.             series1.SeriesName = "Series 0";
  3.             series1.BarShape = BarShape.FullCone;
  4.             FarPoint.Win.Chart.ClusteredBarSeries series = new FarPoint.Win.Chart.ClusteredBarSeries();
  5.             series.Series.Add(series1);
  6.             FarPoint.Win.Chart.YPlotArea plotArea = new FarPoint.Win.Chart.YPlotArea();
  7.             plotArea.Location = new System.Drawing.PointF(0.2f, 0.2f);
  8.             plotArea.Size = new System.Drawing.SizeF(0.6f, 0.6f);
  9.             plotArea.Series.Add(series);
  10.             FarPoint.Win.Chart.ChartModel model = new FarPoint.Win.Chart.ChartModel();
  11.             model.PlotAreas.Add(plotArea);
  12.             FarPoint.Win.Spread.Chart.SpreadChart chart = new FarPoint.Win.Spread.Chart.SpreadChart();
  13.             chart.Size = new Size(533, 300);
  14.             chart.Location = new Point(10, 20);
  15.             chart.ViewType = FarPoint.Win.Chart.ChartViewType.View3D;
  16.             chart.Model = model;
  17.             this.fpSpread1.ActiveSheet.Charts.Add(chart);
复制代码
您可以看到效果图1和图2,并非我想要的fullbox

第一步

第一步

新增一个空园锥图

新增一个空园锥图

我也用了您说的chart.changed事件,但是也只能是在保存后才行..
回复 使用道具 举报
lo20061
高级会员   /  发表于:2011-5-16 23:02:00
16#
真诚的谢谢您,下午有事就没有看。
不过这个解决方案“删除Chart可以直接使用Del键”可能不太理想,因为我们现在用贵公司的产品来开发财务系统,那些财务人员用惯了excel的,在excel里新增一个柱形图是可以按"Ctrl""+""Z"来撤消的,贵公司的designer里也可以实现和excel一样的功能,现在要是告诉他们不能,可能会使很多人对我们的财务软件产品缺乏兴趣。
另外,还有个问题想请教下您,就是我把某一单元格的内容就行format处理后,要怎么才可以像excel一样可以clear format呀?帮助文档好像没有这方面的处理,比如,我把字体放大了3倍,背景色改为了黄色,等,现在想clear format,只能一个一个功能的去写,个人觉得很麻烦,这几天认真认真的看了贵公司的产品的介绍,觉得贵公司的产品是一个很强大的产品,应该会有这样的类似于微软的功能吧?
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-5-16 14:17:00
15#
1. 删除Chart可以直接使用Del键。
2. 关于代码设置Chart,建议参考帮助文档中的示例代码。如下:
  1. FarPoint.Win.Chart.BarSeries series1 = new FarPoint.Win.Chart.BarSeries();
  2. series1.SeriesName = "Series 0";
  3. series1.BarShape = BarShape.FullCone;
  4. series1.Values.Add(2.0);
  5. series1.Values.Add(4.0);
  6. series1.Values.Add(3.0);
  7. series1.Values.Add(5.0);

  8. FarPoint.Win.Chart.BarSeries series2 = new FarPoint.Win.Chart.BarSeries(series1);

  9. FarPoint.Win.Chart.ClusteredBarSeries series = new FarPoint.Win.Chart.ClusteredBarSeries();
  10. series.Series.Add(series1);
  11. series.Series.Add(series2);

  12. FarPoint.Win.Chart.YPlotArea plotArea = new FarPoint.Win.Chart.YPlotArea();
  13. plotArea.Location = new System.Drawing.PointF(0.2f, 0.2f);
  14. plotArea.Size = new System.Drawing.SizeF(0.6f, 0.6f);
  15. plotArea.Series.Add(series);

  16. FarPoint.Win.Chart.ChartModel model = new FarPoint.Win.Chart.ChartModel();
  17. model.PlotAreas.Add(plotArea);

  18. FarPoint.Win.Spread.Chart.SpreadChart chart = new FarPoint.Win.Spread.Chart.SpreadChart();
  19. chart.Model = model;
  20. this.fpSpread1.Sheets[0].Charts.Add(chart);


  21. Type seriesType = typeof(FarPoint.Win.Chart.BarSeries);
  22. ChartViewType viewType = FarPoint.Win.Chart.ChartViewType.View3D;
  23. BarShape barShape = FarPoint.Win.Chart.BarShape.FullCone;
  24. bool isVertical = true;
  25. fpSpread1.ActiveSheet.AddChart(0, 0, seriesType, 200, 200, 200, 200, viewType, true);
  26. FarPoint.Win.Chart.YPlotArea plotArea = fpSpread1.ActiveSheet.Charts[fpSpread1.ActiveSheet.Charts.Count - 1].Model.PlotAreas[0] as FarPoint.Win.Chart.YPlotArea;
复制代码
3. Designer是我们为用户提供的设计器,里面的功能有时候看起来简单,实际上代码量很大。所以可能需要你多研究一下Chart的接口,效果会更理想。

更多有关Spread尤其是Chart的细节信息,请查阅帮助文档。
回复 使用道具 举报
lo20061
高级会员   /  发表于:2011-5-16 12:34:00
14#
恩,我是想删除Chart
我的spread的版本是"Spread for Windows Forms 5 (.NET Framework 3.5)"
另外,我想问下您,spread有没有提供比如它的Model的barshape的直接修改的属性方法啊?

因为现在可能还会遇到其它情况,比如,我新增了一个空白的chart(先前的都是有数据的)
第二步,我在工作表的单元格输入先前的测试数据,第三步选中第一步时新增的空白工作表,右键"select data",此时预览的chart图表不是我想要的我chart图表状态,但是贵公司提供的designer的高级功能的那个页面上又可以完美的实现我想要的效果.所以我觉得的我写法是不是有问题呀?
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部