找回密码
 立即注册

QQ登录

只需一步,快速开始

raul1122

中级会员

42

主题

155

帖子

980

积分

中级会员

积分
980

活字格认证微信认证勋章

raul1122
中级会员   /  发表于:2012-8-2 16:48  /   查看:9484  /  回复:12
从后台代码中给spread的某个cell赋值成功,但涉及到这个cell的运算公式,都计算不正确,都是按照数量1来计算的,好像在spread前台,并没有将该cell的值置换成我设置的值,导致计算不正确,请问如何处理

12 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-8-2 18:07:00
沙发
raul1122 你好

在Spread for ASP.NET 中,该问题应该和spread的设置有关,你需要设置spread为自动计算,代码如下
  1.     public partial class WebForm1 : System.Web.UI.Page
  2.     {
  3.         protected void Page_Load(object sender, EventArgs e)
  4.         {
  5.             if (!IsPostBack)
  6.             {
  7.                 FpSpread1.ActiveSheetView.Cells[0, 2].Formula = "A1+B1";
  8.                 FpSpread1.ClientAutoCalculation = true;
  9.                 FpSpread1.ActiveSheetView.AutoCalculation = true;
  10.             }
  11.         }

  12.         protected void Button1_Click(object sender, EventArgs e)
  13.         {
  14.             FpSpread1.ActiveSheetView.Cells[0, 0].Value = 10;
  15.         }
  16.     }
复制代码


如通过以上代码未能解决你的问题,请你发一个例子给我们调试,谢谢。
回复 使用道具 举报
raul1122
中级会员   /  发表于:2012-8-6 14:26:00
板凳
以上代码无效。计算关系是通过spread设计器设定了
回复 使用道具 举报
raul1122
中级会员   /  发表于:2012-8-6 15:18:00
地板

附上demo

顺带解决以下问题:
现在我将spread做成自定义控件,在page_onload事件中加载读取设计器设计的xml文件。同时我为自定义控件写了一个 LoadCellValue的方法,发现调用用户控件后,同时调用该方法,该方法中的spread对象还是未加载xml
之前的状态,取不到任何值,请问怎么解决? 谢谢

demo.rar

1.41 KB, 下载次数: 252

回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-8-6 18:07:00
5#
收到你发来的附件

从附件中的代码来看已经在设置了ClientAutoCalculation 和 AutoCalculation 为 True,正常情况下就可以在客户端修改数据后进行自动计算。附件是我的测试工程。

你在设置以上属性之后问题依然存在,应该还是我们的使用方法有区别,从你的代码中只能看到ClientAutoCalculation 和 AutoCalculation 的设置,但是看不到公式是如何设置的,能否发一个比较完整的工程给我调试。
回复 使用道具 举报
raul1122
中级会员   /  发表于:2012-8-13 09:18:00
6#

新demo

回复 5楼dof的帖子

用这个demo看看

demo.rar

8.96 KB, 下载次数: 247

回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-8-13 09:54:00
7#
回复 6楼raul1122的帖子

你好, Demo 已查收,调试之后回复。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-8-13 12:17:00
8#
回复 6楼raul1122的帖子

您好,由于 Demo 中后台代码无法查看。我使用您提供的模板和自定义控件新建了测试 Demo,请参考:
5502-4.zip (2.88 MB, 下载次数: 270)
回复 使用道具 举报
raul1122
中级会员   /  发表于:2012-8-13 13:51:00
9#

demo上传,谢谢

早上的demo中有个cs文件无法打开,现在已经重新上传。您给的方法中,是直接通过指定单元格赋值,我的demo中是通过调用自定义控件中的方法来赋值的。所以效果上不同。

demo.rar

8.66 KB, 下载次数: 223

回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-8-13 17:23:00
10#
raul1122 你好,

仔细调试了一下你发来的Demo,你是想通过 fjsl 参数来传递值,从我调试的结果来看,Demo中只是设置了 SRCard1.SetValueList = ret; ,然而,并没有地方去修改 Card 单元格的值

代码中有一个 SetCellValue 方法,但是没有地方调用,不知是该Demo中调用 SetCellValue 的地方被删除了,或者是其它原因

为了能够调试你的程序,我在你9楼代码的基础上进行了修改,将找不到的属性和方法注释掉了

修改之后,如果直接在单元格中输入值是可以自动完成计算的,但是我没法测试通过 fjsl 传值的情况,如果附件Demo与你实际用法不同,请直接在我的Demo上进行修改,并重现你问题的,这样我将更容易找到问题的原因



demo2.zip (13.06 KB, 下载次数: 243)
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部