Foxtable(狐表)用户栏目专家坐堂 → 打开狐表项目的速度,以及动态生成表、动态绑定表的问题?


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

主题:打开狐表项目的速度,以及动态生成表、动态绑定表的问题?

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/9/3 12:17:00 [只看该作者]

以下是引用狐狸爸爸在2009-9-3 11:29:00的发言:

个人电脑而已,就是没有关联,加载60个表也是一个很差劲的设计,怨不得foxtable的。

    就凭表多就说是一个很差劲的设计?贺老师是不是也有点太绝对了?我用过的几个财务软件,一个项目中都有几十个表,打开软件时只需要10秒以内。

    我认为只要对狐表稍作改进,允许在打开项目时不加载表,就可以解决这个问题。希望贺老师不要改变概念!


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/9/3 12:25:00 [只看该作者]

几百个表的系统都有, 但是不会都出现在界面中。
现在提供了SQLTable,也告诉你了动态绑定的方法,你慢慢想办法调整设计,没有万能的开发工具。
[此贴子已经被作者于2009-9-3 12:27:09编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/9/3 12:45:00 [只看该作者]

以下是引用狐狸爸爸在2009-9-3 12:25:00的发言:
几百个表的系统都有, 但是不会都出现在界面中。
现在提供了SQLTable,也告诉你了动态绑定的方法,你慢慢想办法调整设计,没有万能的开发工具。
[此贴子已经被作者于2009-9-3 12:27:09编辑过]

    既然几百个表的系统都有,那贺老师就凭60多个表就说是差劲的设计,恐怕的确不妥吧?我认为表多表少是根据项目需要的。贺老师说得对,表多的时候,肯定不应该在打开项目时一次性加载在内存中。所以,我认为不是表多了就一定有问题,而是在打开项目时必须把所有表一次性加载,这样的大框架肯定存在问题,无法设计复杂的表比较多的项目!
    其实,正是SQLTable让我看到了动态加载表的希望,既然在窗口中就可以动态加载表并生成Table和DataTable,那么,在窗口以外用代码动态生成表,从理论上来讲应该是完全可行的。
    但是,在目前的系统中,用SQLTable动态加载表的方法虽也存在一些不便。当项目中的多个表之间的计算关系复杂的时候(即某一个表的事件会引用到其他的多个表),需要在一个窗口中同时增加多个SQLTable,由于窗口关闭时这些Table都不再存在,所以每次打开窗口时都要重复加载这多个表。虽然这样做解决了在打开项目时不加载表的问题,但却造成了系统中多次重复执行相同的任务(加载表),造成系统资源的极大浪费,既多占内存又影响运行速度。
    如果对系统稍作改进,允许在系统中(窗口以外)用代码动态加载表(与在窗口中动态加载表类似),那么,这些用代码加载的表就可以在多个窗口中引用,而且不管多少次打个窗口,都可以重复引用这些表。这样,既解决了打开项目时的不加载表的问题,又避免了系统资源的浪费,即可比较完美的解决这个问题。希望贺老师认真思考一下,是不是这个道理!

     另外,发现贺老师在最近一段时间回贴的时候,多次用到一句话:“没有万能的开发工具”,这话当然没有错,但是,在狐表推出的最初几个月中,贺老师从来没有说话这样的话。贺老师能开发出狐表这样好的系统,当然是国产软件的骄傲,但是,若没有这些狐友们提这样那样、稀奇古怪的建议,甚至提一些难缠的建议、用一些不中听的话话,狐表的功能绝不会发展到今天这么强大!所以,贺老师的这句话好像有点打击大家提建议的意思,没有万能的开发工具,难道我们就不提建议了,狐表的功能改进就到此为止了?如果答案是否定的,这句话还是少说为好。

[此贴子已经被作者于2009-9-3 12:50:59编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/9/3 13:14:00 [只看该作者]

你可以看看OuterTableBuilder,这样生成的DataTable不会丢失,可以动态绑定。

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/9/3 15:32:00 [只看该作者]

以下是引用狐狸爸爸在2009-9-3 13:14:00的发言:
你可以看看OuterTableBuilder,这样生成的DataTable不会丢失,可以动态绑定。

好像可以,我再认真试试!


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/9/4 15:13:00 [只看该作者]

 因为打开项目的速度慢,我把我的系统中所有的关联都取消了。利用动态加载表的方式加载我要的数据,基本可以做到关联表一样。报表采用直接引用的方式。现在打开项目的速度已经非常好了,我的电脑是狐爸要我扔掉的那台。

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


加好友 发短信
等级:幼狐 帖子:147 积分:947 威望:0 精华:0 注册:2009/5/12 9:43:00
  发帖心情 Post By:2009/9/4 17:55:00 [只看该作者]

以下是引用blackzhu在2009-9-4 15:13:00的发言:
 因为打开项目的速度慢,我把我的系统中所有的关联都取消了。利用动态加载表的方式加载我要的数据,基本可以做到关联表一样。报表采用直接引用的方式。现在打开项目的速度已经非常好了,我的电脑是狐爸要我扔掉的那台。


        赞成!利用多个外部数据源来分别放这60多个表,再根据系统需要,再实时的时候,利用动态加载外部数据源和动态加载外部表并动态绑定、动态关联,会让foxtable运行起来很轻松。
        我在设计一个系统的时候,我的一个窗口有八十多个控件,而这样的窗口在一个表有11个,但考虑到项目生成时首先要生成窗口,会影响系统的运行速度,我采取了在窗口动态删除,动态添加控件(添加时定位即可),动态绑定或赋值,我将这样的11个窗口省到了1个,始终用这一个窗口再做所有事,这样的话,项目在启动时不需要生成那11个窗口,运行起来启动速度与空白狐表系统无异,这仅是一个用多写一点代码换来狐表运行性能不受影响的思路,供参考,包括表也一样,很多表没必要再启动时生成,可以写在某一个需要调用该表的最前面,判断一下该表是否存在,存在直接调用,不存在动态添加,随着操作进程的延长,这些表都在不知不觉在进程中逐个添加进来,这样做的目的就是将狐表启动时的重负荷分散到各个环节,这样的话,用户根本没有任何慢的感觉,老兄可要三思老六说您系统设计结构不合理的话,一味地要求狐表将所有功能都集成在系统中,那是不现实的。
         我有一个Excel文件,大家都知道,普通的电子表格,运行速度很快,但这个文件仅仅11个表,各表2000多行,但是各表、各单元格之间的引用、计算公式太多,修改其中某一个位置,还得等一会儿才能刷新,感觉也非常慢。

[此贴子已经被作者于2009-9-4 17:56:54编辑过]

 回到顶部
美女呀,离线,留言给我吧!
yangming
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/9/4 18:45:00 [只看该作者]

以下是引用易狐在2009-9-4 17:55:00的发言:


        赞成!利用多个外部数据源来分别放这60多个表,再根据系统需要,再实时的时候,利用动态加载外部数据源和动态加载外部表并动态绑定、动态关联,会让foxtable运行起来很轻松。
        我在设计一个系统的时候,我的一个窗口有八十多个控件,而这样的窗口在一个表有11个,但考虑到项目生成时首先要生成窗口,会影响系统的运行速度,我采取了在窗口动态删除,动态添加控件(添加时定位即可),动态绑定或赋值,我将这样的11个窗口省到了1个,始终用这一个窗口再做所有事,这样的话,项目在启动时不需要生成那11个窗口,运行起来启动速度与空白狐表系统无异,这仅是一个用多写一点代码换来狐表运行性能不受影响的思路,供参考,包括表也一样,很多表没必要再启动时生成,可以写在某一个需要调用该表的最前面,判断一下该表是否存在,存在直接调用,不存在动态添加,随着操作进程的延长,这些表都在不知不觉在进程中逐个添加进来,这样做的目的就是将狐表启动时的重负荷分散到各个环节,这样的话,用户根本没有任何慢的感觉,老兄可要三思老六说您系统设计结构不合理的话,一味地要求狐表将所有功能都集成在系统中,那是不现实的。
         我有一个Excel文件,大家都知道,普通的电子表格,运行速度很快,但这个文件仅仅11个表,各表2000多行,但是各表、各单元格之间的引用、计算公式太多,修改其中某一个位置,还得等一会儿才能刷新,感觉也非常慢。

[此贴子已经被作者于2009-9-4 17:56:54编辑过]

易狐老师的做法,值得学习,有一种说法,"以空间来换时间",我想就是这样的做法吧,呵呵

[此贴子已经被作者于2009-9-4 18:45:35编辑过]

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


加好友 发短信
等级:小狐 帖子:363 积分:2998 威望:0 精华:0 注册:2008/11/11 13:42:00
  发帖心情 Post By:2009/9/4 19:00:00 [只看该作者]

有SQL外部数据,速度比以前快了!!


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


加好友 发短信
等级:幼狐 帖子:147 积分:947 威望:0 精华:0 注册:2009/5/12 9:43:00
  发帖心情 Post By:2009/9/4 20:14:00 [只看该作者]

以下是引用hnaysx在2009-9-4 19:36:00的发言:
呵呵 如果我不使用外部表 仅仅是内部表 如何做到不加载表?


      呵呵,有路不愿意走,谁也没办法,比如在电脑信息技术飞速发展、已全天下普及化的今天,还有一些老会计说,我不用电脑,就用手工记账加自己的大脑,一样是被同行尊重的老前辈!图片点击可在新窗口打开查看


 回到顶部
总数 86 上一页 1 2 3 4 5 6 7 8 9 下一页