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


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

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

帅哥哟,离线,有人找我吗?
程兴刚
  71楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40574 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2009/9/6 15:38:00 [只看该作者]

以下是引用mr725在2009-9-6 13:26:00的发言:

如果老六没想到,那他应该感谢你的建议,人无完人啊~
另外,我感觉自己编写的代码,是需要‘环境’支持的,让‘环境’分家(开发和应用的环境分开),估计要动更大的‘手术’。
还有,现在都是知识分子的天下了,在总体的设计一致不对数据库有不良影响的情况下,一个单位内部,我还是希望大家都可以参加的设计(设计出自己需要的东东-当然是查询报表为主) ····



       这个帖子这么热闹,我也来凑一凑,支持您的前半部建议,个人认为最好的办法是在项目发布功能中实现编译成.dll文件功能,编译后的软件系统禁止读写原狐表代码、只调用.dll文件(这一点很重要,否则将来的开发人员使用开发端可以生成原模原样的狐表系统,可不苦了贺老师!)个人认为发布时将系统的所有代码生成至少同时生成两个.dll文件(生成后系统的.dll文件不宜太多,个个都要加密处理,避免被破译替换),一个开发版.dll另一个客户端.dll,前者开发版.dll包含开发的所有功能,由于客户文件出错、过期锁定后来修改或解除客户被锁的文件,由开发人员保留使用,后者为客户端.dll打包给客户使用,客户端必须禁止开发功能,这样调用.dll的方法速度可能会更快(猜的)!
       至于后面的建议,我倒是认为没有必要了,狐表的拿来就用理念可以让大家省却至少70%以上的编程时间,不必要来网络型开发,大家可以分体分块开发,最后组合成一个系统,在这里建议贺老师将来给狐表增加一键导出狐表代码为文本文件,为各个事件位置进行定位编码(比如编码为:表A_窗口1_××控件001,这里的001代表贺老师指定的事件编码),采用输入法的词库管理方式,同时增加一键导入合并狐表代码的功能,由户表系统自动读入文本格式代码并分别指定到对应位置,至此,您只需要在相对完成量大的文件设置表、窗体结构,然后一键导入文本格式的狐表代码,合并到相应的代码位置。这样将来还方便从不同系统中调用不同的功能,快速组成一个新的系统,这样的分块设计方式,不会应为设计人员的跳槽对企业带来不必要的损失,最后组合后的设计工作由设计团队核心负责人负责,其他人员都只能各自掌握自己的部分。由此建议贺老师,狐表新建项目时,自动记录软件狗信息,同一个设计项目,只允许初始时的软件狗打开,也就是同一个开发项目只允许同一只狗打开(采用单机注册的就无所谓了)这是对使用狐表的企业负责,也是对原开发人员的负责。

[此贴子已经被作者于2009-9-6 16:04:11编辑过]

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


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

.net采用的是中间语言,只有用到的部分才会即时编译和运行,其余的就一直静静的呆在那里。
模块的多少不影响性能,就是将窗口设计、菜单设计、表设计统统删除,对项目的运行效率,也没有丝毫的影响。

狗的部分是需要自己处理的,其实很简单,就是读取狗的ID,根据这个ID进行判断,就像foxtable和易表的ComputerID.
[此贴子已经被作者于2009-9-7 8:06:42编辑过]

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


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

请贺老师看62楼.

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


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

以下是引用cpayinyuan在2009-9-7 8:54:00的发言:
请贺老师看62楼.


1、DataTable的Fill方法开通后,一个DataTable可以处理后台多个表
2、这样复杂的处理方式,还不如在全局事件中加入几个常用事件。


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


加好友 发短信
等级:婴狐 帖子:82 积分:1202 威望:0 精华:0 注册:2008/9/1 17:51:00
  发帖心情 Post By:2009/9/7 9:05:00 [只看该作者]

老六,看看58楼。

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


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

以下是引用fangling在2009-9-7 9:05:00的发言:
老六,看看58楼。


呵呵,foxtable并没有改变以表为中心的思路,只是让表可以更灵活地插入到窗口中而已。
懂得动态生成表的用户,自然也懂得如果通过代码设置表属性的,至于事件,将更多的事件加入到全局事件中算了。


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


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

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


1、DataTable的Fill方法开通后,一个DataTable可以处理后台多个表
2、这样复杂的处理方式,还不如在全局事件中加入几个常用事件。

1、DataTable的Fill方法开通后,一个DataTable可以处理后台多个表。这样,是不是狐表中一个Table的   DataColchanged事件可以处理多个表?那么,这个表事件怎么判断当前处理的是后台的哪个表以执行相应的代码?即根据什么条件判断?(根据表名肯定是不可以了,因为表名都一样,只不过加载的后台数据不一样。)或者可以再延伸一点,是不是可以在狐表打开项目时只打开一个表(或少数几个表),并把所有表的DataColChanged事件写在这一个表的事件中,然后用这个DataTable不停的动态切换表?这样动态切换的确非常方便,但我还是很关心表事件是怎么处理的?
2、在全局事件中加入几个常用事件?不太明白。我的目的是在设计输入框绑定字段时,可以绑定窗口中动态生成的表(关闭窗口后界面中不存在这些表),这样用全局事件怎么实现?


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


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

1、可以增加一个全局变量,每次Fill之后将后台的实际表名写入这个全局变量。
2、参考:
http://www.foxtable.com/dispbbs.asp?boardid=2&Id=4211&page=2


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


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

以下是引用狐狸爸爸在2009-9-7 9:25:00的发言:
1、可以增加一个全局变量,每次Fill之后将后台的实际表名写入这个全局变量。
2、参考:
http://www.foxtable.com/dispbbs.asp?boardid=2&Id=4211&page=2

    1、用全局变量可以获得后台的实际表名?帮助中只有如何获得DataTable的名,不记得哪儿说过怎么获得后台的实际表名?如果可以获得,那么这个问题就基本可以解决了。不过还是希望贺老师不要总保留那么多,把好东西尽快都告诉大家才对!
    2、关于输入框绑定字段的问题。贺老师让我看的贴子的解决办法是:
“在设计阶段用OuterTableBuilder生成表,然后在另一个永久性的表设计窗口,控件邦定到刚刚生成的表。”
    我认为这只能算一个变通的办法,在实际应用过程中多有不便。本来SQLTable就是要生成一个临时表,但目前的狐表中存在的问题是:这个临时表只在打开窗口中生成、在设计窗口时不生成。现在你让我再用OuterTableBuilder再生成一个临时表,同一个后台数据重复生成两个临时表,一个用来在窗口中显示并建立表事件,另一个用来绑定输入框,好像有点多此一举、同时又重复浪费资源!明明一步就可以解决问题的,为什么非要走一个曲线救国的道路?
    既然都是临时表,直接改进一下,让SQLTable的临时表不仅在打开窗口时自动生成,在设计窗口时也自动生成,这样岂不更省事省时又方便!可能我说起来比较复杂,但应用起来这样应该是最方便的!或者我理解有误?

   补充:希望贺老师先不要急着否决我的意见,建议认真分析一下究竟是否易于实现,以及改进后是否真的方便。

[此贴子已经被作者于2009-9-7 9:53:53编辑过]

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


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

1、代码是自己写的,每个Fill语句的时候,是从哪一个后台的表格中填充数据,自己轻轻楚楚,在Fill之前或之后将实际的表名写入全局变量即可。
2、SQLTable是动态的,不是设计的时候生成的,运行的过程中也是不断变化的。
3、开发就是开发,开发和应用完全不同的,没有100%自动的豆浆机,准备和清洗黄豆的工作始终是要做的。
4、谁说一个临时表要两个临时表对应啊,难道一个系统没有一个永久性的表格?

世界上哪有100%顺手的开发工具?不要讨论这个问题了,再讨论我真的崩溃了!


图片点击可在新窗口打开查看

[此贴子已经被作者于2009-9-7 10:13:04编辑过]

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