Foxtable(狐表)用户栏目专家坐堂 → 升序就无反应


  共有3156人关注过本帖树形打印复制链接

主题:升序就无反应

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/30 15:43:00 [显示全部帖子]

表达式列排序是比较慢的,特别是你有统计计算的时候,就更慢了,卡死是正常情况。

 

如果想排序,请改成数据列,用代码统计和赋值。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/30 18:35:00 [显示全部帖子]

以下是引用yangwenghd在2018/7/30 18:29:00的发言:
是列的属性吗?没有看到数据列选项呢,用代码统计和赋值怎么做啊,感谢 感谢 

 

1、转换成数据列 http://www.foxtable.com/webhelp/scr/2494.htm

 

2、循环每一行,计算和赋值(你学了这么久,请自行编写代码,如果无法运行再贴出)


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/31 11:52:00 [显示全部帖子]

回复6楼,不可以,你执行代码的时候你就知道了,获取r("分析结果")的数据很慢的。基本要1秒才能读取一行数据(每获取一次应该重新计算表达式一次)

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/31 13:16:00 [显示全部帖子]


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/1 9:00:00 [显示全部帖子]

以下是引用yangwenghd在2018/7/31 23:29:00的发言:
ClipBoard.GetText(Tables("数据分析").Current("结果转换"))
ClipBoard.SetText(Tables("数据分析").Current("分析结果"))

为什么复制粘贴列不对呢,感谢 感谢 
[此贴子已经被作者于2018/7/31 23:47:10编辑过]

 

你改成13楼的公式了没?

 

DataTables("数据分析").DataCols("分析结果").Expression = "Convert(([数据_点击率] + [等换比值_人气] + [等换比值_指数] - [等换比值_竞争])* 1000, 'System.Int64') / 1000"

 

http://www.foxtable.com/webhelp/scr/0108.htm

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/1 9:38:00 [显示全部帖子]

不论是直接赋值还是复制粘贴,都是很慢的(都会重新计算的)。所以不建议你直接写表达式处理啊。

 

1、转换成数据列 http://www.foxtable.com/webhelp/scr/2494.htm

 

2、循环每一行,计算和赋值(你学了这么久,请自行编写代码,如果无法运行再贴出)


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/1 22:12:00 [显示全部帖子]

参考代码

 

Dim tname As String = "数据分析"
DataTables(tname).DataCols("等换比值_人气").Expression = "[数据_搜索人气] / Sum([数据_搜索人气])"
Dim t As Table = Tables(tname)
Dim idx = t.Cols("等换比值_人气").index
t.Select(0, idx, t.Rows.count-1, idx)
Tables(tname).EditCopy
DataTables(tname).DataCols("等换比值_人气").Expression = ""

output.show(ClipBoard.GetText)

 

http://www.foxtable.com/webhelp/scr/2214.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/2 17:40:00 [显示全部帖子]

请贴出具体执行的代码。或者上传实例测试。

 

意思是不能把""赋值给整数列。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/2 18:14:00 [显示全部帖子]

Dim tname As String = "数据分析"
DataTables(tname).DataCols("等换比值_人气").Expression = "[数据_搜索人气] / Sum([数据_搜索人气])"
Dim t As Table = Tables(tname)
Dim idx = t.Cols("等换比值_人气").index
t.Select(0, idx, t.Rows.count-1, idx)
Tables(tname).EditCopy
DataTables(tname).DataCols("等换比值_人气").Expression = ""

output.show(ClipBoard.GetText)

t.Select(0, t.Cols("第一列").Index)
t.EditPaste


 回到顶部