找回密码
 立即注册

QQ登录

只需一步,快速开始

sxyweiren

中级会员

73

主题

366

帖子

755

积分

中级会员

积分
755

活字格认证微信认证勋章

sxyweiren
中级会员   /  发表于:2021-8-5 11:56  /   查看:2295  /  回复:9
1金币
能不能给个例子,说明下FarPoint.CalcEngine.FunctionInfo.CountIfFunction.Evaluate函数的用法。

现在是统计一些单元格里面,特定值的个数。
但是这个函数到底怎么使用没有例子。能不能给讲解下。

9 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-5 16:06:23
沙发
您这边目前是要在winforms还是webform中使用呢,

如果是要在winforms中使用的话,直接为单元格设置公式即可,
使用方式和在excel中设置公式是一样的,可以参考
https://support.microsoft.com/zh ... ;rs=zh-cn&ad=cn
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2021-8-5 16:17:14
板凳
本帖最后由 sxyweiren 于 2021-8-5 16:19 编辑
Richard.Ma 发表于 2021-8-5 16:06
您这边目前是要在winforms还是webform中使用呢,

如果是要在winforms中使用的话,直接为单元格设置公式 ...

是在WinForm里面用的。
取到的结果只是用来做一个运算。不需要在单元格里面表示。
所以希望使用提供的FarPoint.CalcEngine.FunctionInfo里面的函数来实现。

这里说的CountIfFunction只是一个例子。
然后我这边希望通过这个例子来学习更多的函数的使用方法。
但是从目前的各种帮助文档里面没有找到相关的例子。
所以能否给一个Demo,使用这种多个参数的函数来进行计算。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-5 17:16:42
地板
这个目前没有办法,FunctionInfo中的CountIfFunction实际上就是用来实现CountIf公式,也只能将单元格设置为此公式来计算值,

另外,即使使用FunctionInfo来自定义公式,最终也是将自定义的公式添加到spread中,然后在单元格设置自定义的公式,和内置的这些公式也是一样的使用方式
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2021-8-5 17:25:15
5#
Richard.Ma 发表于 2021-8-5 17:16
这个目前没有办法,FunctionInfo中的CountIfFunction实际上就是用来实现CountIf公式,也只能将单元格设置为 ...
  1.             Dim objargs(1) As Object
  2.             Dim objCellargs As Object()
  3.             ReDim objCellargs(Me.spdDetail.Rows.Count - 1)
  4.             For inti As Integer = 0 To Me.spdDetail.Rows.Count - 1
  5.                 objCellargs(inti) = Me.spdDetail.Cells(inti, Me.enmCol.mstjigcd).Value
  6.             Next
  7.             objargs(0) = objCellargs
  8.             objargs(1) = pstrUSER_JIGCD
  9.             intCnt = CInt(FarPoint.CalcEngine.FunctionInfo.CountIfFunction.Evaluate(objargs))
复制代码


但是这个函数在代码里面是可以调用的呀。

现在的问题是参数传递的错误,还是本身这个公开函数不能调用的问题。
取得的结果不是我想要的。

你的意思是产品里的这部分内容实际是不能够直接调用么?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-5 18:19:42
6#
这个我会在和研发确认一下,然后给您结果
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2021-8-5 18:25:32
7#
Richard.Ma 发表于 2021-8-5 18:19
这个我会在和研发确认一下,然后给您结果

好的。麻烦了。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-5 18:27:22
8#
本帖最后由 Richard.Ma 于 2021-8-9 18:13 编辑

您好,已经和研发进行了确认,还是之前给您回复的情况,确实不支持通过代码进行计算。
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2021-8-12 09:04:54
9#
Richard.Ma 发表于 2021-8-5 18:27
您好,已经和研发进行了确认,还是之前给您回复的情况,确实不支持通过代码进行计算。

也就是说,这个部分虽然是Public函数,但是不支持外部调用的方式进行计算么?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-12 09:42:36
10#
是的,计算功能由计算引擎完成,我们不支持通过代码调用。
FarPoint.CalcEngine是V11以前的类,从 V11 开始,我们使用新了的计算引擎。 使用原来的FarPoint.CalcEngine.FunctionInfo 进行计算可能根本不正确。 “FarPoint.CalcEngine”中的这些类只是出于老版本兼容的考虑进行了保留。


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部