找回密码
 立即注册

QQ登录

只需一步,快速开始

ak47

注册会员

12

主题

52

帖子

180

积分

注册会员

积分
180
ak47
注册会员   /  发表于:2016-8-26 10:53  /   查看:8436  /  回复:11
1.SpreadChart设置数据源的方法是AddChart("", SpreadChartType.ColumnStacked, "Column!$A$1F$5", 0, 100, 380, 260); 数据源是根      据"Column!$A$1F$5"区获取的,可以有其它方式设置么?
2.SpreadChart的ChartTitle设置好后可以实现鼠标双击修改title么?
3.SpreadChart可以添加右键菜单么,这样可以实现动态切换SpreadChart的类型?

11 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-8-26 13:47:08
沙发
您好
1. 数据源区域就是用公式设定的,没有其他方式
2. title没有提供双击修改,您可以用其他按钮触发事件然后修改
3. 您可以实现右键ContextMenu 。
  1.         ContextMenu cmenu = null;
  2.         MenuItem mItem;
  3.         private void GcSpreadSheet1_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
  4.         {
  5.             HitTestInformation info = gcSpreadSheet1.HitTest(e.GetPosition(gcSpreadSheet1).X, e.GetPosition(gcSpreadSheet1).Y);
  6.             if (info.FloatingObjectInfo != null && info.FloatingObjectInfo.FloatingObject != null)
  7.             {
  8.                 var chart = info.FloatingObjectInfo.FloatingObject as SpreadChart;
  9.                 if (chart != null)
  10.                 {
  11.                     e.Handled = true;
  12.                     cmenu = new ContextMenu();
  13.                     mItem = new MenuItem();
  14.                     mItem.Header = "Operate Chart Area";
  15.                     cmenu.Items.Add(mItem);
  16.                     mItem.Click += (s1, e1) =>
  17.                     {
  18.                         
  19.                     };

  20.                     mItem = new MenuItem();
  21.                     mItem.Header = "Operate Chart Bubble";
  22.                     cmenu.Items.Add(mItem);
  23.                     mItem.Click += (s1, e1) =>
  24.                     {
  25.                         
  26.                     };

  27.                     cmenu.IsOpen = true;
  28.                 }
  29.             }
  30.         }
复制代码
回复 使用道具 举报
ak47
注册会员   /  发表于:2016-8-26 17:05:01
板凳
嗯嗯好的,还有几个问题请教下
1.AddTable()datasource我给的是一个json的JArray对象,表格数据显示正确的,但是添加AddChart的时候图表只显示了一个框,数据没有展示出来?
2.添加的Table可以实现选中后拖拽操作么?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-8-26 17:15:11
地板
1. 这个您最好提供个Demo,或者详细点的代码。
2. 填充式针对单元格的,table也可以
回复 使用道具 举报
ak47
注册会员   /  发表于:2016-8-26 17:31:17
5#
效果如图所示:
blob33535460.png
1.标签1是一个Table 数据源是JArray对象。
2.标签2是chart,设置的数据比如AddChart("", SpreadChartType.ColumnStacked, "Column!$A$1F$5", 0, 100, 380, 260);但是显示不出来
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-8-29 11:45:36
6#
是您公式有问题Column!$A$1F$5 正常是一个区域 Column!$A$1:F$5
回复 使用道具 举报
ak47
注册会员   /  发表于:2016-8-29 13:54:01
7#
这是个简单的Demo,你看一下

SpreadTest.rar

10.42 MB, 下载次数: 742

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-8-29 15:21:44
8#
您好,我看了下您的代码,因为您绑定的数据源数据都是object类型,所以图表没有识别的数据,您可以编辑下数据就会发现图表有变化。
一种方式是您需要提前处理下您的JArray数据源,
或者绑定后循环处理绑定好的数据。

回复 使用道具 举报
ak47
注册会员   /  发表于:2016-8-29 15:52:08
9#
JArray对象作为Table的数据源能够展示出来,Table内部没有对数据类型进行转化么,而当用户修改值后才进行的数据类型转化?这样好像不科学呀,因为Table的具体数据源我们有可能不能确定的,以至于导致图表的展示不出来。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-8-29 16:06:41
10#
因为数据源传递JArray的是object,数据展示只是调用object的toString方法,程序无法智能到替用户决定是否将对象转换。所以传递什么展示什么。
比如您的OrderID,他可能是string,也可以是int,这个程序是无法判断的。

重新整理下数据源并不会耗费太多性能。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部