找回密码
 立即注册

QQ登录

只需一步,快速开始

dc22wt

论坛元老

21

主题

95

帖子

9445

积分

论坛元老

积分
9445

活字格认证

dc22wt
论坛元老   /  发表于:2012-5-30 10:25  /   查看:10500  /  回复:13
调试了几天,终于发现还是该表单分组的问题,有两个问题:1.当我的数据量达到11万的时候,要求分组的话,基本上就卡在那里不动了。2。这个问题就更诡异了,当我第一次查询的结果集少,大概3000条数据,用的是分组模式,然后再更换条件查询时,结果集可能就要11万多,这个时候我不采用分组,先用这个 fpSpread1_Sheet1.Models.Data = ((FarPoint.Win.Spread.Model.GroupDataModel)fpSpread1_Sheet1.Models.Data).TargetModel 语句取消上次查询的分组模式,然后程序就会一直卡在DATASET填充,后来我把第二次查询的结果集11玩改成500,结果就不会卡了,顺利执行,或者我把第一次的查询也不用分组模式,第二次查询的结果集依然是11万,也不会卡住,顺利执行。请问下斑竹,这个问题因该如何解决!急!!!!

13 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-5-30 11:18:00
沙发
dc22wt 你好

我这边需要先测试一下,然后给你回复。请稍等。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-5-30 15:18:00
板凳
我这边在加载10W行数据时大概需要1-2秒,对10W行数据进行分组大概需要3秒;
先加载1000行输入,然后分组,然后加载10W行数据大概需要7秒

不知你那边出现卡的显示,大概会有多长时间。
4656_Group.zip (10.37 KB, 下载次数: 743)
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-5-30 15:56:00
地板
卡的不动,你的数据不复杂,我可能11万的数据要做几万条分组。
private void CreateGroupFooter(int colindex)
        {
            // 添加默认分组列
            SheetView sheet = fpSpread1.ActiveSheet;
            sheet.AllowGroup = true;
            GroupDataModel gdm = new GroupDataModel(sheet.Models.Data);
            sheet.Models.Data = gdm;
            //SortInfo 构造函数 SortInfo(0, true) 中第一个参数为 用于分组的列索引。
            SortInfo[] siList = new SortInfo[] { new SortInfo(colindex, true) };
            gdm.Group(siList, null);

            //设置默认分组
            DefaultGroupFooter dgf = fpSpread1_Sheet1.DefaultGroupFooter[colindex];
            ISheetDataModel dataModel = dgf.DataModel;

              //  设置分组中的公式汉字显示get(5)
                FarPoint.Win.Spread.CellType.TextCellType a = new TextCellType();
                this.fpSpread1_Sheet1.Columns.Get(5).CellType = a;

                //设置分组脚中公式
                //(dataModel as IAggregationSupport).SetCellAggregationType(0, 0, AggregationType.Count);
                // (dataModel as IAggregationSupport).SetCellAggregationFormat(0, 0, "数量:{0}");
                (dataModel as IAggregationSupport).SetCellAggregationType(0, 5, AggregationType.Sum);
                (dataModel as IAggregationSupport).SetCellAggregationFormat(0, 5, "合计:{0}");
                     fpSpread1.ActiveSheet.GroupFooterVisible = true;
              
        }
这是你们之前贴给我的分组代码,麻烦你们再分析下
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-5-30 16:03:00
5#
能不能QQ远程下?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-5-30 16:07:00
6#
抱歉,我们网络受限,还不能使用QQ
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-5-30 16:10:00
7#
那你看下我这个分组代码有问题吗?
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-5-30 16:48:00
8#
斑竹快帮忙看下啊
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-5-30 16:56:00
9#
你那边现在实际需要等多长时间才能重写加载10W行数据,处理最基本的安装某列分组之外,还有什么功能,能否在3楼Demo的基础上演示你的使用方法,然后上传给我调试一下。
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-5-30 17:12:00
10#
就是卡住了,运行不下去了,除了分组,没有什么其他功能,如果说我把那11万条数据改成500条数据就什么问题都没有。。。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部