找回密码
 立即注册

QQ登录

只需一步,快速开始

婧友521

银牌会员

28

主题

59

帖子

3423

积分

银牌会员

积分
3423

活字格认证

婧友521
银牌会员   /  发表于:2012-10-19 09:53  /   查看:6548  /  回复:6
我在设计器中话的卡片如图 其中空白的8行为活跃行,如果加载的数据超过8条,卡片会自动向下延伸,现在有个问题,我在页面上放上1个按钮,点击一下,看下一张,加载别的数据,但是如果当前卡片加载了20条数据,下张卡片只需要加载1条数据,就会出现原先的卡片没有还原,活跃行的行数为20行
2012-10-19_094637.png

6 个回复

倒序浏览
婧友521
银牌会员   /  发表于:2012-10-19 11:31:00
沙发
怎么没人处理啊?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-10-19 17:53:00
板凳
回复 2楼婧友521的帖子

不太了解你数据的加载方式是什么。
我想可以通过数据条数来判断,如果加载的数据的行数小于 8 条,那可以在加载数据后使用 AddUnboundRows 方法去还原卡片样式。
回复 使用道具 举报
婧友521
银牌会员   /  发表于:2012-10-22 08:59:00
地板
这个方法不行,这张卡片是加载2张表里面的数据,即中间可延伸的加载的是一张表的数据,剩下的加载的是另一个表的数据,如果用上面这个方法,会出现该字段不属于表Table,没有什么办法能够使卡片还原成为最初始的状态吗?
回复 使用道具 举报
婧友521
银牌会员   /  发表于:2012-10-22 09:44:00
5#
OK,已经解决了
回复 使用道具 举报
婧友521
银牌会员   /  发表于:2012-10-22 09:53:00
6#
另外,还有一个问题,上面这张卡片加载的数据,下面有个总金额合计,在卡片设计的时候,设置的是中间8行的合计总金额,如果数据多的时候,卡片会自动延伸,但是总金额合计这一栏计算的总金额还是前8行的,超过8行的,无法计算,这个在程序中应该怎么解决
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-10-22 14:15:00
7#
回复 6楼婧友521的帖子

建议通过拼接公式的方法实现:

  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (IsPostBack)
  4.             {
  5.                 return;
  6.             }
  7.             this.FpSpread1.ColumnFooter.Visible = true;
  8.             string startLable = this.FpSpread1.Sheets[0].Rows[0].Label;
  9.             string endLable = this.FpSpread1.Sheets[0].Rows[this.FpSpread1.Sheets[0].RowCount - 1].Label;


  10.             StringBuilder sb = new StringBuilder();
  11.             sb.Append("SUM(");
  12.             sb.Append("A" + startLable);
  13.             sb.Append(":");
  14.             sb.Append("A" + endLable + ")");
  15.             
  16.             this.FpSpread1.Sheets[0].RowCount += 1;
  17.             this.FpSpread1.Sheets[0].Cells[this.FpSpread1.Sheets[0].RowCount - 1, 0].Formula = sb.ToString();
  18.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部