科学网

 找回密码
  注册

tag 标签: 构件

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

构件的连接(一) ——榫卯连接与斗栱
热度 13 武际可 2017-2-11 09:01
构件的连接(一) ——榫卯连接与斗栱 一位巧裁缝,能够把剪裁好的布片连缀成端庄或华丽的服装。结构工程师能够把构件连接成宏伟的大厦与各种特别用处的结构。裁缝用的是针和线。结构工程师们用的是什么手段呢?人们用的手段因材料而异。 一. 榫卯连接 我们首先来介绍一下对于木质构件的连接。最常用的就是榫卯连接。榫卯这个词,榫表示构件突出的部分,卯表示凹进的部分,榫部紧密地进入卯相互连接,就称为榫卯连接。由于木结构有数千年的发展历史,所以榫卯连接的历史也非常久远,而连接的形式和花样层出不穷,已经成为一门特殊的学问了。 图 1 浙江余姚河姆渡文化出土的榫卯连接类型 图 2 河姆渡文化榫卯连接的实物 图 1 是 1973 年发现的浙江余姚河姆渡文化出土的榫卯结构连接的类型,图 2 是榫卯连接的部分实物,河姆渡文化距今已有 5000 至 7000 年的历史。可见木构件的榫卯连接在我国的历史悠久。在这样长的历史发展中,榫卯结构产生了适应不同需求繁多的类型。下面我们就来简单归类介绍一下。 对于要把两根杆对接起来的榫卯如图 3 ,这种情形,对接的两部分需要稍长的对接长度,这样比较能够耐受弯曲,另外其中关键是有一枚楔钉插入卯孔,连接在一起的两根杆就不会在拉力作用下拉脱。 图 3 两根杆对接的榫卯结构 图 4 两根杆成直角连接时的榫卯结构 对于两根干成直角的连接,如图 4 。适应于不同情况,图上列出了 12 种不同的连接办法。有明榫,有暗榫,还有半明暗的榫;有单榫有双榫等等。值得指出的是,两根杆成直角的连接,并不一定要在杆的端头,可以发生在一根杆的中间,或者两根杆在中间相互交叉成直角或任何角度,这时就要把上述的各种榫卯技术灵活应用,或改型构思新的榫卯形式。 三根柱体相互垂直交接在一起,这无论在家具还是在房屋建筑中都是经常遇到的。实施方案有很多种。图 5 是一种称为粽角榫的连接。它使三根柱体牢固连接三面都很平滑,经常在明式家具中看到,图上的这个粽角榫是用的透榫,如果用暗榫(或称闷榫)则在三面只看到三条呈 45 °的线,一切都很平滑。显得很干净。图 6 是三根圆柱连接的情形,这种榫要求结合起来后,只看到圆柱之间的相交线。这类榫制作起来需要有较高的精度。 图 5 粽角榫 图 6 三根圆柱相交的情形 图 7 梁柱的交接 图 7 是梁柱交接的榫连接,在两根梁交叉的地方需要相互减弱一半,相互搭接后再置于开十字槽的柱头。由于梁的交接处减弱了所以在梁的下边柱上增加两片枋(如图右),以改善梁端的强度。图 8 的左边也是两根梁交接在柱头上,不过它让一根梁通过一个柱头上的榫直接搁置在柱头上,另一根梁搭接在第一根梁之上。图的右边是仿照图 5 的粽角榫将三根垂直相交的杆交汇在一起,不过却简单多了,这种榫接不能牢固地汇合,需要胶粘或螺钉仰或是楔钉加以固定。 图 8 图 9 板的榫连接 图 9 是关于板的榫卯连接,上面的三个是板面的拼接。通常的木地板都采用的是企口接。一般两块板成直角的连接,大多用燕尾榫连接。 我们上面大致介绍了木构件之间的榫连接,值得注意的是,在古代的石材建筑中也大量地应用榫卯连接。一般石栏杆、石牌坊、石桥等结构就经常使用榫卯连接。图 10 是一个石材用榫卯连接的例子。图 11 、 12 、 13 则是三座著名的石材建筑,都是用榫卯连接在一起的。 图 10 石材的榫卯连接 图11山东大汶口明石桥北起泰安市岱岳区大汶口镇南门,南至宁阳县磁窑镇茶棚村。明朝隆庆年间(公元1567-1572年)修建,故名“明石桥”。 图12 珠海十景梅溪牌坊,採用榫鉚方式構造,有瑞獸、花果、人物、書法和八仙圖案,雕刻精美。 图 13 巴尔贝克神庙位于贝鲁特东北 85 公里,建于公元 60 年前后是世界驰名的古迹。 二. 斗拱连接 中国古建筑中,在世界上一种特有的构件之间的连接方式,就是斗栱。它也可以说是榫卯连接在建筑上的一种特别的表现。 中国古代建筑是以木材为主要构件的建筑体系,梁和柱承重,门窗和墙壁只是作为围护,并不承重。这种承重的结构,下边是立柱,上面是梁桁,在立柱与梁桁之间有一种全面应用榫卯连接技术的构件,就是斗拱。由于有斗栱,能够使出檐向外远伸,也使梁柱的受力更加合理。所谓斗栱是由直接支承在柱顶或栱上的四方形的“斗”与在斗之上向上成为弓形的“栱”合成。(图 17 )所以合称为斗栱。 图 14 四川都江堰市出土 图 15 东汉山东苍山县前村出土 图 16 山东汉画像石图中已经明显看到有斗栱的构件 斗栱结构在中国有很久远的历史。大约在商周时期,中国的建筑结构中就已经有斗栱的雏形了。从青铜器的图文中已有反映,后来在战国时代的出土文物上也有斗栱的形象。在汉代的画像石上已经有大量的斗拱图像(图 14 、 15 、 17 )。开始,最早的斗栱是柱支承一根梁时候,将支撑力分为两个或三个,后来斗栱变得愈来愈复杂,一个柱头可以支承多根梁或枋。现存最早的斗拱建筑实物,应当是山西五台山佛光寺大殿(图 18 )。到了宋代,在李诫著的《营造法式》中已经详细介绍斗栱的制作与用材。明清以后,则甚至规定一些重要建筑一定要用斗栱。 图 17 斗栱连接示意图 图 18 五台山佛光寺大殿的斗拱 图 19 斗栱连接示意图 为了说明斗栱对梁的受力所起的作用,我先来看图 20 ,在马的挽具后面挽绳系在一根系杆上,它是一根等臂杠杆,就是说无论马怎样走,马两边的挽绳受力都是一样的。右边是系杆放大的情形。如果我们有两匹马来拉一辆车,那么按照图 21 挽绳的系杆安排,则两匹马在任何情况下,挽力的分担也是均匀的。如果有四匹马或八匹马来拉车呢,只要多一两层系杆,就能够使各匹马分担相同的挽力。 上面说的系杆分配的挽绳的拉力,而斗栱是要把柱头的支撑力比较均匀地分配到梁上。所分配的是压力。我们再来看图 22 ,那是一个汽车上的雨刷,它是受挽绳系杆启发的发明,它要使雨刷板 B 任何时候任何点都密切地和汽车玻璃接触,为此它设置了三层栱,每一层都是一根等臂杠杆而且具有相当好的弹性,第一层一个栱、第二层两个栱、第三层四个栱,这和我们分配马拉车的系杆是一样的。所不同的是现在是压力。经过这样分配后,摇杆通过 A 钩与雨刷的 A 孔相连给雨刷一个压力并带动雨刷在汽车玻璃上来回摇动,尽管汽车窗玻璃是不平的,而且每时每刻雨刷板所接触的玻璃的曲线都在变化,由于雨刷板所受的压力都很均匀,而且雨刷板又有一定的弹性,所以雨刷板就总是与窗玻璃贴合的,把雨滴扫得干干净净。 到这里,你该看明白了,斗栱从力学上来说至少有两重作用: 第一,斗栱的作用就是和汽车的雨刷上的“斗栱”是一样的,它也有一定的弹性。它的作用是把柱头上的集中力,分为若干个等效的相互有一定距离的集中力作用到被支承的梁上。有一点差别,雨刷与挽绳系杆的支点都近似是一个点,而斗栱之间的接触是一小块面积,正由于此,各级杠杆看作是等臂的只是一个大体的近似,另外有的栱还有中间支点,所以经过它分配的几个力虽然不能看作完全均分的,但总可以看作是以一定的比例分配的。 我们知道,集中力对梁引起的弯矩,比起同样大小的分布的若干力要大,所以斗栱使得梁的受力更为合理,它减小了梁的局部应力。 第二,斗栱还在一定程度上,减少了立柱的数目。斗栱和雨刷毕竟不同,雨刷是平面的,而斗栱是立体的,雨刷只是把摇杆的压力均匀分配到刷板的各点,而斗栱不仅把柱头的支撑力以一定的比例分配到一根梁的各点,还要把这个支撑力以一定的比例分配到纵横交错的多根梁或枋上。斗栱不仅能够把作用在一根梁上的支撑力分散,而且能够使一根立柱支承若干根梁。从而大大减少了立柱的数目,这就不仅能够使建筑的跨度增大,而且能够控制经过一根柱头上的各根梁的支撑力的合理分配,使得整个结构的受力分配更加合理。由于斗拱能够使立柱的减少,所以构件能够使建筑物的出檐外伸得很远,如图 19 ,房子的最外一排立柱是在 A 的地方,有了斗栱结构,依靠它支承了几根纵向的梁,尽量使椽的悬臂部分减短,这就能够使出檐延伸到 B 而不需要增加新的立柱。 因此斗栱的发明,而且发明得那样早,是很了不起的。 图 20 挽具后面的系杆 图 21 两匹马的系杆 图 22 汽车上的雨刷 参考文献 潘德华,斗栱,东南大学出版社, 2011 郭希孟,榫卯之美——明清家具鉴赏,中国林业出版社, 2014 2016/8/21
个人分类: 科普|41756 次阅读|16 个评论
谈构件
热度 10 武际可 2017-1-14 09:59
谈构件 前面我们说过,结构是把固体构件组织在一起的承力的系统。那么紧接着的一个问题就是,结构中最常见的是些什么构件呢? 最常见的构件是这样三类 :1 )绳、柱、杆、梁这种沿一个方向伸长其他两个维度很小的条状构件; 2 )板、壳是一个维度很小,两个维度比较大的,即比较薄能够覆盖一定面积的构件; 3 )块体构件,即构件的三个维度大小相去不远的构件。 我们后面会了解这样分类的道理,这是从结构分析的角度来考虑的,不同类的构件的力学分析形成了不同的结构力学学科。因为第一类构件可以简化为仅仅以构件的长度为参数来定位构件上点的位置,也就是说在最复杂的情况下可以用常微分方程来描述它们的待求力学量;第二类构件可以简化为以两个参数来定位构件上点的位置,一般求解它 就需要和二维偏微分方程或偏微分方程组打交道;对于块体结构,就需要与三维空间的偏微分方程组打交道了。对应于这三类构件,形成了三类不同的结构力学学科。通常的材料力学和杆系结构力学处理的是第一类构件和由这些构件组成的系统;板壳理论是专门针对第二类构件形成的力学分支学科;而对第三类构件的问题就需要弹性力学、塑性力学等专门的学科来解决了。 图 1 长陵祾恩殿剖面图 第一类构件中,最常见的就是柱和梁,它们在几千年的古建筑中已经形成定式,所谓横梁竖柱。就是说在结构中横向布置,承受重力所引起的弯曲作用的称为梁,屋脊的主梁称为栋。图 1 是明长陵的祾恩殿, 是目前中国为数不多的大型楠木殿宇。它面阔九间(通阔66.56米),进深五间(通深29.12米),象征着皇帝的“九五”之位。由60根楠木大柱支撑殿顶, 中央四根大柱的直径达 1.17 米, 殿面阔超过了故宫太和殿 。 从图上能够清楚地看出梁和柱的分布和相互搭接的构造。 梁在近代结构中,十分重要用得也很普遍,图 2 为湘桂铁路上的志城大桥。它是一座变截面的连续梁。像这种一根梁支撑在多个支座上的梁,称为连续梁,它的分析要比一根梁简单地支撑在两端的简支梁要来得复杂一点。梁与柱的受力特点不同,柱是受沿着柱的轴向方向的外力的构件,而梁所受的外力是垂直于轴向的。从这和受力特点来看,帆船上的桅杆、汽车的底盘、在大风作用下的高耸的烟筒、飞机的机翼、漂浮在有波浪起伏的水面上受浮力作用的大船、起重机的吊臂等等,都可以看作梁。由于有的梁并不是由一根密实的同一材料组成的杆状固体,而是由许多不同的构件组成的结构体系,这样的梁也称为组合梁或复合梁。 图 2 湘桂铁路志城特大桥的连续梁 图 3 由杆件组成的桁架 图 3 所示的结构,无论是作为梁的组合构件,还是作为柱的组合构件,都是由许多直杆组成,这样的结构体系称为桁架,它的基本构件只是由受拉压的杆组成。它的受力分析归结为杆系结构力学。 在承力结构的构件是弯曲的杆时,这种结构就称为栱。图 4 ,是一个典型的栱结构。此外如上一节我们提到的赵州桥、五台山显通寺的无梁殿,那种由砖石砌成的栱圈形的结构,也称为栱。对于栱来说,构件主要经受压力,有时是受弯曲和受压联合作用的。 如果构件只能承受拉力,不能承受弯曲,也不能承受压力,这种构件就称为绳索,一般吊桥的主要承力构件就是悬挂在支座塔上的两条钢索。它们是柔软不承受压力和弯曲的构件。 图 4 栱结构 在第二类构件中用得最为广泛的就是板。板是其中面是一张平面的构件。所以又称为平板。通常钢材、木材为了使用方便都事先加工成板材。板如果是承受垂直于板面的荷载的,就称为板,如果只承受平面内的载荷,即载荷作用方向处于中间平面内,在民用建筑中这种构件称为剪力墙。民用建筑的楼板、飞机的蒙皮、轮船的甲板等都是用的是板构件。 图 5 是发电厂的两座大型冷却塔,其中一座塔筒已建好还未运行另一座塔筒正在施工。这种冷却塔,目前已经有的高达 200 米,直径最大的地方有一百大几十米,但是它最薄的地方厚度只有二十公分左右。是典型的薄壳结构。对于它的设计,首先要考虑的是经受风载荷的强度,其次由于塔内外温度差比较大,还要考虑热应力,最后地基与地震的影响也要认真分析。图 6 是 1965 年 11 月 1 日英国菲尔桥电厂在大约八级风作用下八座冷却塔中倒塌三座冷却塔的情形,其他几座未倒塌的也产生很严重的裂缝,造成英国这一地区停电。后来经过研究认定是由于强度设计不够,设计风压比英国设计规范要求的塔顶的风压要低出 19% 。随后在世界各国还有由于地基问题和施工问题大塔倒毁事故的报导,可见对于薄壳结构设计中的受力分析多么复杂和重要。 随着结构的进步,愈来愈多的薄壳结构被各行各业采用。汽车的外壳、大型储油罐、火箭和导弹的主体结构、飞机的机身与船舶的外壳、大型汽轮机的外壳、水塔、化工的反应釜、锅炉、储气罐、薄壳屋顶等等,都是薄壳结构。最近兴起的充气薄膜结构,其实也可以算作一种特别的薄壳结构它是每一个局部都只能承受张力而不能承受压力的结构。在自然界也有许多薄壳结构,据了解,为了减少鸡蛋的运输与包装过程中的损耗,对于鸡蛋壳在撞击时的强度问题,就有一些单位在进行理论和实验研究。 图 5 发电厂的大型冷却塔 图 6 1965 年 11 月 1 日,英国菲尔桥八座大型冷却塔在大风中倒塌的三座冷却塔 图 7 内燃发动机的气缸 图 7 是一组内燃发动机的气缸。它是典型的块体结构。对于像这样的块体结构,要分析它的受力是很复杂的。图 8 是经 12 年于 2006 年建成的三峡大坝,是一座混凝土重力坝。坝体内还有安装水轮机和发电机的厂房,所以也是一个典型的块体结构。 图 8 三峡水库的大坝 在半个世纪以前,对于一般的块体结构几乎还没有有效的应力分析手段。已有的手段无非是在设计时做一个模型在近似受力的情况下,通过测量模型的变形来得到可参考的结果。在结构运行时,布置一些测点,来观测它的变形。这样的手段既费时又费力,效果还很不理想。完全不能适应日益复杂的结构系统的分析要求。 山穷水复疑无路,柳暗花明又一村。在计算机普及之后,大约在上世纪六十年代开始,人们发展了一种“有限单元法”去分析任何结构包括梁板壳的应力与变形。基本思想是把结构假想地剖分为很多单元体,对每个单元设置若干未知量采取近似地表达式表述其变形,然后根据外力、单元的材料性质、单元之间的连接和平衡条件得到一组规模很大的方程组,未知量个数可以达到数万乃至数百万,用计算机求解这些方程组,便可以得到这个块体结构的变形与应力分布。按照这种思想编制的通用和专用软件很快地形成了一个有相当规模的产业。用这种软件在设计之前对各种设计方案进行计算,已经成为设计的最重要的环节。有限单元法的产生与发展可以说是在计算机时代的结构力学,在它的指引下,结构设计变得愈来愈合理、结构的功能愈来愈强大、结构设计的工作量愈来愈减小,空前加速和改善了结构工程的发展。 2016 , 8 , 20
个人分类: 科普|15054 次阅读|13 个评论
中国文化分析
热度 1 benlion 2013-7-7 09:56
何谓主流文化、核心文化,儒家文化的古代中国主流价值观,那就是仁,并以信或诚信为核心,但并不等于只有儒家文化;因此,当谈论中国文化的优劣时,不能一鼓脑儿将不属于儒家,甚至与儒家精神相反的思想也归责儒家。 这里,依然是教育的分析逻辑训练、客观事实考证的学术严谨问题。 即使儒家,如同西方基督教,在历史不同时期也有相应的诠释和形态,不能脱离历史,如同谈论人才,看和用的应该是长处,短板是由人才互补和社会机制来相嵌,文化也是在一个文化整体中发挥正面的功能。 常看到一类文字或文章,对于自己没有研究过的内容,人云亦云,不假思索套用惯常词句,却并没有深入考究内涵,这也许是名人名言语录的教育模式导致,并非古代中国的熟读唐诗 3 百首;因为,那是如同古代师傅带徒弟,在吟的过程中逐渐领悟的教育模式。 当论及历史上的文化时,一定也注意一个语境和背景,时代不同,同样的事物也就会不同,不但社会,而且文化,都是一个具有时代、地理和国际环境的系统,人才也是一样,软环境和硬环境不同,人才能否发挥应有的作用也会不同。 - ( 21 世纪的中国) -
个人分类: 历史|2367 次阅读|2 个评论
new
jiangdm 2013-5-31 16:39
ew
个人分类: CHI|3 次阅读|0 个评论
王华明:航空高性能大型复杂整体构件激光直接制造技术研究进展
热度 2 sheep021 2012-11-21 14:24
王飞跃 : 从社会计算到社会制造:一场即将来临的产业革命 看了王飞跃老师的文章,忽然想起以前曾看过的一个关于3D激光打印制造的只言片语,没想到这个技术竟然是军民两用的,对社会生活的影响这么大,足以改变制造业格局,未来,不可想象哦 航空高性能大型复杂整体构件激光直接制造技术研 究进展 王华明 高性能金属构件激光直接制造技术(Laser Direct Manufacturing LDM or Laser Additive Manufacturing LAM),以金属粉末为原料,通过高能激光逐层熔化沉积生长(“生长制造”或“增材制造”),直接从零件数字化模型一步实现大型复杂整体高性能金属构件的“近终成形”,与整体锻造等传统制造技术相比,具有(1)无需大型锻造工业装备、大型锻造模具及制坯模具制造、(2)高性能金属材料制备与大型复杂零件“近终成形”一体化、(3)构件综合力学性能优异、材料利用率高、加余量小、(4)制造周期短、成本低等独特优点,是一种“变革性”的短周期、低成本、数字化、精密成形技术,为飞机、发动机钛合金、超高强度钢、高温合金等高性能、难加工大型复杂整体关键构件的制造提供了新途径。 本报告简要介绍飞机及发动机钛合金等大型复杂整体高性能结构件激光直接制造技术原理、技术特点和国内外研究现状,重点汇报北京航空航天大学在飞机、发动机钛合金、超高强度钢、高温合金等高性能难加工大型复杂整体构件激光直接制造技术研究及工程应用进展,评述和展望了钛合金等高性能金属大型复杂整体构件激光直接制造技术发展面临的技术挑战、关键科学问题和发展趋势。 ———————————————————————————————————————————————————————————————————————— 视频内容提要。 1。2012年奥巴马在卡内基梅隆大学,宣布创立美国“制造创新国家网络”计划,成立15个制造创新中心组成网络,投资10亿美元。经过5个多月的论证最后还是选了“增材制造”作为第一个中心的研究方向。 2。一个发动机叶盘,传统工艺制造属于“雕刻”,最后剩下来的只有7%。 3。f22钛框,面积5.53平方米。3万吨水压机模锻件能达到0.8平方米,8万吨能达到4.5平方米。 4。传统方法,铸锭,制胚,模具,模锻。举例一个很小飞机框,宝钢等温锻造,模具7千万,分摊到每一个零件,模具费就有几十万。又举例美国的一个飞机零件,压成一个饼3吨,到最后加工完成只有144公斤,材料利用率不到5%。 5。用他的增材制造,材料利用率80%左右。 6。 我们打印出的最大的整体结构件5平方米,美国做不了。 7。激光打印出的零件,超过或者等同于锻件的性能,抗疲劳强度,比锻件高32-53%,疲劳裂纹扩散速率降低一个数量级。常规性能和锻件差不多,但高温、持久、抗疲劳性能比锻件好很多。 8。飞机起落架的超高强度钢,用此方法抗疲劳强度可以比锻件高20%。涡轮叶片用此方法900度疲劳强度可以比第二代单晶高40%。 9。 应用方面,2005年开始,919是可以说的,其他的都不能说(涉及保密)。919,双曲面窗框,只有欧洲有有家公司能做,周期2年,先付200万美元模具费,而且零件非常贵。而我们55天就做好了,4大件,2件已经装上了飞机。 10。翅膀根的受力件,我们做出来136公斤,锻件1706公斤,节省材料90%+,节省了大量材料。10年,已经做完了性能测试,比锻件还要好。 11。05年做出图示零件(猜测是军用飞机上所使用),需要5天,现在只要几小时。 12。06年某飞机起落架的关键零部件,目前已经批生产,已经受2000多个起落。如果没有这个技术,这个飞机就出不来,可能要推两年。 13。某飞机上非常复杂的一个零件,钛合金,一架飞机好几个,现阶段传统技术无法做出来,国内三种方案去研究,两三年不成功,后又去找国外。国外先说能做,看到图纸以后,说做不了。我们临危受命,去年5月19号开始,现在已经装了很多架飞机。 14。某飞机零件原来锻胚580公斤,我们做出来36公斤。580公斤锻胚,我们没有这么大的锻造装备,锻不透,性能都不合格。就算加工出来,内应力很大,变形、开裂,成品率非常低。 15。(吐槽f22),f22的机翼和机身连接件,超大超复杂的钛合金构件,因为太复杂20、30万吨的水压机也做不出来。美国人就分成三个铸件,然后热等静压再焊接,铸件的性能很差,但美国人没办法,f22就是这样用的。(换了一个图片)我们激光成型就可以直接加工出如图示的这么大的零件,这是一个整体(意思是不用分段铸造然后焊接),上面站了一个人,大家可以看出它的尺度。他的性能比锻件还好(意思是当然就甩铸件几条街了),可以毫不谦虚地说,这是迄今世界上性能最好的、结构最复杂的构件,美国人也只能是铸造,锻是不可能的,焊也不可能,因为焊出来的性能不行。这个已经通过了8000小时的疲劳试验,一年多时间。就这个构件,铝合金、钢大家看看能不能做出来,更何况钛合金。 16。我们发动机不行,心脏病,未来发动机就是一肚子的整体叶盘,叶片和盘子分开的重量太重。而我们现在可以叶片和盘子同时出来,而且叶片我们可以随心所欲控制组织,让它长成柱状晶,他的高温性能就很好,这里我们让它长成等柱晶,**疲劳度就很好,如果温度再高,我们就可以换材料,它可以做到随心所欲,一种零件可以用很多种材料来做(不知是在同一个零件上的不同部位,还是同一种零件用不同材料)。 17。我这里面都没说具体的零件名称,牵涉到保密的大家都不要说,也不要拍照。我尽量做到没有放(图片)零件,只放毛胚,因为零件还是比较敏感。 18。 这种加工方法,不能包打天下,适合难加工的、高性能的、贵的、别的方法做不出来的零件,优势是成本、周期、性能,这个方面我们走到了美国人前面。 19。设备用的激光器都是进口,担心被美国人卡脖子,希望国家在大功率激光器上重视。 20。 5年前曾经和飞机总设计师聊天,说我们快速设计飞机,都是整体、大型、超长的结构,在2、3个月内就把飞机造出来,不开一套模具,不打一个锻件,不做一个焊缝。也许有人认为这是个梦想,但实际上这已经不是梦想了, 我们已经有这样的潜力,只是目前能力有限 。(这一段其实是欲言又止,应该是涉及保密,只好把能力藏着掖着了。这件事肯定在做,最近航空产业大爆发,绝对和他们这个技术有关。) ———————————————————————————————————————————————————————————————————————— 王华明:1962年5月生,四川省合江县人,工学博士,德国“洪堡学者”,现任北京航空航天大学教授、博士生导师,航空科学与技术国家实验室(筹)首席科学家,教育部“长江学者奖励计划”特聘教授、“国家杰出青年科学基金”及“全国五一劳动奖章”获得者, “北京市大型关键金属构件激光直接制造工程技术研究中心”主任、“大型整体金属构件激光直接制造教育部工程研究中心”主任、国防973项目技术首席专家、“高性能金属材料激光制备与成形”教育部创新团队带头人、享受国务院政府特殊津贴、入选首批“新世纪百千万人才工程国家级人选”,被评为“国防科技工业有突出贡献中青年专家”、北京高校“优秀共产党员”、北京市“教育创新标兵”、北京市“高等学校教学名师”、 “国家教学成果二等奖”等荣誉和奖励。 兼任中华“洪堡学者”协会理事,北京机械工程学会副理事长,中国机械工程学会特种加工分会常务理事、热处理分会常务理事和摩擦学分会理事,中国光学学会激光加工专业委员会常务理事,中国金属学会材料科学分会理事,国家自然科学基金委员会金属材料学科评审组成员等。 从事“高性能金属材料激光制备科学与成形制造技术”研究,获“国防科学技术一等奖”2项、二等奖1项,获“发明专利”授权12项和国际发明展览会“银奖”2项,在SCI收录、IF>1的国际学术期刊上发表研究论文100余篇。
个人分类: 生活点滴|2612 次阅读|2 个评论
经济与不同与自然的地方及数学工具的欠缺——以及一些随想
yanghualei 2012-2-19 22:28
感觉有几个问题经济至少在数学定量描述上还没有很好的处理,一是 怎么对时滞用数学描述 ,时滞怎么影响预测,时滞怎么影响收益率,时滞怎么消失;第二就是 未来变量怎么影响现在 ,这是其他学科中不曾遇到的; 第三是将来的行为有向预期收敛的趋势 ,这个怎么描述,在什么情况未来行为会远离当前的预期,甚至是方向反转; 在经济学和经济物理或者物理学之间还存在一个重大的区别,除去上述三个之外,就是 大机构的参与或者介入经济和社会活动 , 而物理一班是屏蔽外界大的作用而加以研究。最后一个就是, 社会中的制度、文化以及道德伦理法律这种导向和规范行为的社会法则采用什么样的数学表征 。 在新古典经济学的世界里,好像没有时滞这个维度,当然也缺乏很好的处理时滞的反映经济现象的数学模型,为什么没有时滞,因为市场对外部变化的反映是瞬时的,就是非局域性的,价格是均衡的价格,是静态的价格 ,只说明存在这个价格,但没有陈述这个价格如何达到的,这就引致市场的不可预测性,遵从着几何布朗运动, 但有时候就像经济交易或者资本流动过程中存在类似摩擦力的交易成本和转移成本外,市场还存在粘滞性,还存在惯性力,这种惯性力使得市场在短期是可以预测的,即可以利用过去的数据预测现在 ,现在的预测将来,而预测的效力会随着时间的增加而衰减。 昨天在上自习过程中,发现人少的时候,很容易说话,人多的时候反而不太容易说话,挺有意思的,直觉的告诉我们,越人多自习室越吵,但现实不是那样的。这个也挺有意思的,这与鸡多不下蛋一样,人太多没有效率一样。 现实中很多现象对量是敏感的,并且这种敏感不是一个方向,而是随着量的增加,敏感的方向会发生改变 ,以前写过一篇博文,在科研条件非常差的时候,提高科研待遇是好的,但是并不是一味的提高待遇就可以提高科研效率,相反,当科研待遇达到一个高度时候,在提高待遇反而是使得科研效率降低;同样随着城市化的发展,初始城市的房子开始上涨,当城市化率达到一定程度的时候,房价反而下降;这是不是具有普遍性。 我在做市场行为一致性的过程,借用物理学中一 SW 模型,做后和物理学院一青年教师讨论,他说我忽视这个模型的精华,如这个模型是存在跃迁的,而在你的文章中没有存在,而这个跃迁是很好的,其说明的是一种质变,或者是一种相变,研究经济现象是很好的,因为很多经济模型都是线性的,而线性叠加不会生成跃迁,而在此我们选择的是三角函数。而我在文章中,或者很多我的文章都是缺乏实证这个维度,也很少用数据,就是类似数学,做的比较抽象,但不具体,这也是 一个老师批评我的原因,语言太晦涩难懂,不用经济学规范研究经济学,不关注经济学的热点,不考虑现实情况,不解决现实问题,纯属于自娱自乐 。 而这个模型基本理念很简单,就是作用在某个量上有两个场,但这两场方向相反,一个是外部场,一个是内部场,我们可以做成实证的,如以房地产为例,国家对房地产进行调控,外部场可以看着利率等变量,因为他会影响从事房地产产业的资本的收益,故资本受国家的政策,如利率的控制,资本存在一种使得资本向国际意志靠拢的力,而这种力时资本的成本,但是还存在一个内部场,就是使得资本还停留在房地产上,而这种力就是房地产的资本收益,但是怎么衡量这种内部收益呢,在此我们看做城市化率的增长速度,速度越大,说明房地产收益越高,但这只是间接的衡量,而房价是我们要考察的中心量。我们撇开所谓的产业空间,也不管通过政策调控之后,我们 只关心有多少资金离开或者达到房地产行业,但不管这些资金流动到哪或者从哪里来的,这也就是我们不考虑均衡后的投资行为如今处在哪个行业上,而只关注投资行为在制度方向有多少分量 。 其对这篇文章的看法,稍微对文章的篇幅和结构做下修改,当然包括文章中的病句或者错别字,可以投一下,先让审稿人帮你 修改着, 你可以在文章的解释上多下点功夫。 如果对一篇文章你一直修改,会让你厌倦,而不想写文章 。其说当然你也可以不投,做个科研心得。但是关键是后面的建议,如在易轴的定义上我们存在争议,他认为易轴如是房价增长的方向,而制度方向是抑制房价增长的方向。其还说 这个模型一定要把跃迁体现出来,更重要的你能够计算出来,国家的调控在什么程度上,房价的速度的方向开始反转,在什么调控程度或者利率下,赋价的速度以及房价方向开始反转 ,如果计算出来的利率太大,这说明现实中调控房价的还存在其他因素,譬如限购令之类的。 什么是系统的思维方式真让我说,我也说不出一二三来,系统下面有子系统,系统又成为其他系统的子系统,如果限定一下,如果要研究某个对象,把其看做一个系统,其内部的各个构件看做子系统,而其环境看做其所处的大系统,则此时我们就可以考察 子系统对系统某方面性质的影响,子系统之间的交互作用,以及这种交互对系统性质的影响,同时环境对系统以及子系统的影响, 感觉系统思维方式,主要是一个让人考虑的全面一点。
个人分类: 交叉科学|2598 次阅读|0 个评论
国际学术交流呼唤基于知识本体的双语乃至多语的构件化单元知识库
geneculture 2011-11-22 16:09
geneculture 2011-11-22 16:06 良策之一就是建立国际共享双语乃至多语的科学文献数据库及其查询网。 良策之二则是须明确一次文献和二次文献乃至三次文献之间的评价标准。 良策之三更是要实现基于知识本体的双语乃至多语的构件化单元知识库。 博主回复(2011-11-22 16:12) : 好理想! http://blog.sciencenet.cn/home.php?mod=spaceuid=454301do=blogid=501233 geneculture 2011-11-23 00:48 逻辑 学、 数学 、 自然 科学和 工程 技术,这些学科门类,双语乃至多语都可以是相当一致的思想内容,也就是说,在这些研究领域的论文或报告都具有一义性。因此,可以要求:一次文献不受语种的限制,即:不能采用双语乃至多语的方式一稿多投。 但是, 哲学 、 人文 和 社会 乃至 艺术 的许多学科或研究领域的情形却有所不同,尤其是受语言文化背景影响大的那部分,因为,同样的说法在不同的语言及其文化背景之下,可以是完全不同的意思。例如:同一篇文章或论著,几个人翻译,其结果是大不相同的。也就是说,无论语言形式还是思想内容,都相去甚远。这类情形,许多时候,就不存在一稿多投。 注: 版权保护,主要是通过表达形式(如:语言形式)的保护而实现思想内容(即:语言内容涉及的创新知识)的 间接保护 。严格地讲, 思想 是很难保护的,除非它不公开,或者说,它不能清晰地简明扼要地被表达出来。这也是学术思想公开的价值。纸质的学术期刊和正式出版物,是物质文明的产物,电子数字的学术期刊和网络出版物,是信息文明的产物,在传播的权威性与时效性之间,不同的创新思想,具有其自身的传播特点或规律。每个人乃至每群人都可以有其自身的取与舍。这就看一个人、一所大学或一个国家,主要追求什么了? 博主回复(2011-11-23 05:27) : 挺好的讨论,学习了。
个人分类: 双语信息处理|1774 次阅读|0 个评论
VFP部件库最小系统网络版使用说明书
求新 2009-10-15 22:00
前言 软部件是为了复用而设计的由一个到多个对象或构件组合而成、面向最终系统集成的程序模块,属于系统级构件。它通过动态定义子模式的方法进一步提高数据逻辑独立性,实现数据操作界面对数据结构的独立,程序有更强的共享性、复用性与自适应性,一个部件模块可同时为多个应用服务,使用它们构建系统时常常无须编写代码或只需编写少量代码;数据在表一级的结构改变可以不要求改变程序,甚至无须再编译!它们也是一种开发平台或模板,可以帮助我们通过各种裁剪与拼装,通过各种适应性修改、扩展性修改、装饰性修改快速设计更有实际应用系统特色的领域构件。将极有利于提高系统设计效率与软件质量,降低软件开发、维护与扩展的成本。非计算机专业的专业技术人员也能很容易的设计、使用与维护管理信息系统。 部件库最小系统是按照如上思想设计的试验产品。使用该软件可以无需进入具体开发语言的命令窗口、无须知道具体开发语言的基本知识就能使用各种可以在Windows系统中使用的数据库,设计相应的应用系统。由于建立系统时一般不需要编码,也不需要编译,只要先装一个数据库,建立基本数据表,建立ODBC数据源,安装VFP6.0,再进入本最小系统,定义环境,通过选择参数建立系统驱动菜单,系统就能建立与使用,系统可以拥有多种数据录入、修改、删除、查询、导入、导出、关系运算、交叉表等多种统计计算与报表、一般的单记录形式报表、表格式报表、标签类报表、直线拟合线性回归分析与绘图、各种统计图、多种财务统计计算等程序模块;可以自动加入代码表使用、字典表使用、完整性控制、安全性控制、派生数据计算与录入等功能。建成系统只需要配置数量极少的十几个参数(只当需要使用代码、要求完整性控制与安全性控制、要求派生数据自动计算填入及对控件位置大小有特殊要求时才需要按系统提供的辅助程序生成或填入其他一些附加内容的数据)就能完成,因此效率高,易学易用。 如果构成系统的模块都具有即插即用特性,当需求在一定范围内改变时,不需要修改程序,甚至不需要重新编译,更进而在更特殊情况下不需要修改参数就能自动适应环境与需求的变化,那么系统将极易维护、极易扩展,有极强适应性,软件维护费用将大大减少,软件可用性大大提高,软件生命会大大延长,会促使管理信息系统的使用更加普及。也将有利于真正进入软件生产工业化的时代。 由于得不到国家支持,本套软件还很不完备,还不具备商业价值,还没有全面推广的基础。但是,我们希望的是能有一套软件极大地覆盖应用需求,使得软件生产工业化的目标真正得以实现,那就要求对于社会目前已有的各种应用系统都能利用部件搭建。显然,那是需要一个十分庞大的部件库才有可能实现的。但如果部件库过于庞大,将很不好用,很不好学习,甚至无法实现。我们的试验是希望找到一系列方法,使得这个部件库尽可能小。小到可以让人接受,既能满足绝大部分应用需求,又易学易用使用方便。我们的部件基于对数据库的操作展开,结合分析社会上各种应用中界面的需求与实现情况,使得一个部件能包含多种功能,并且易于通过参数设置实现性能的改变,能比较容易地派生成多种不同应用的模块,可以使部件总量减少,具有一定的理论研究价值。 该系统也是数据库等信息类课程优秀实验平台,学生如果能联系多个实际应用系统设计与操作去学习,可以在三个以上大型数据库平台上操作,可以顺应实践-理论-实践的认识模式,将使理论不再抽象,学习目的性更强,有效提高学习效果;并且使视野开阔,克服社会生活知识贫乏的先天缺陷,在活生生的应用实际中认识实际管理系统的构成,对实际系统的功能、性能、界面会建立感性认识,是很有意义的。如果学生在课程设计或毕业设计时能运用部件搭建原型系统,再用其他语言实现,会大大提高作品质量。这些都对提高教学质量,强化学生素质具有意义。 考虑到教学需要,本系统作为与《数据库原理与技术》、《管理信息系统及其开发》等书教学配套的实验平台,增加了部分辅助工具,例如可以从工具类部件8、9、查询部件7中看到实际运行过程中的SQL语句的构成,可以直接书写SQL语句传到远程数据库执行等。 目前,本系统已在武汉大学东湖分校计算机学院试用,教学时首先介绍使用方法,介绍建模知识,结合理论教学内容实际建立应用系统,了解有关理论在实践中的意义,在课程设计中要求学生结合需求分析建模并用本系统构建原型系统证明,在全体讨论通过后再用其他语言实现。这一教学过程大大提高了教学效果,证明该软件对教学有极好促进作用,学生一下接触3个数据库操作,了解各种数据库的共性与个性,促进了对数据库与软件工程、管理系统概念与理论的深入理解与真正掌握,极大强化动手能力。学生反映这软件太傻瓜、太简单;许多问题是他们无论如何想不到的,他们不知道,一些实际应用系统还需要考虑这么多的问题。工必良于器,实践证明优秀的教学工具是提高教学质量所必须的,而且是其他方法无法取代的。 目录 一、利用该套部件快速设计应用系统步骤 1.设计数据表结构,在远程数据库中建表 2. 建立文件夹 3.修改环境参数 4.设计系统的模块结构 5.设定参数建立系统 6.接口参数设计一例 7. 运行系统 二、部分接口参数的意义 1.主要接口参数的意义 2.关于某些问题的说明 三、主要部件功能与使用方法 1. 单表单记录维护部件 2. 表格式维护部件 3. 一对多数据维护部件 4. 查询部件 5. 关系运算部件 6. 数据处理与统计类部件 7.数据通信与导入导出部件 8.打印格式文件生成辅助工具 9.其他工具类部件 10.系统管理与维护类部件 结束语 一、利用该套部件快速设计应用系统步骤 1.设计数据表结构,在远程数据库中建表 首先需要安装所需要的数据库,如果安装SQL Server,身份验证设置选混合模式,不必设置密码。在数据库中建立一个数据库实例。利用操作系统(在Windows系统中通过我的电脑控制面板管理工具数据源)设置ODBC数据源。注意连接所建立的数据库实例, 在数据库中试建数据表。因为使用VFP操作,VFP中要求字段名宽度不超过10个字符,只能以汉字或英文字符打头,字段名只能由汉字或英文字符或数字或下划线构成,因此使用本系统时,远程表中字段起名也必须遵从上述规定(字段名宽度不超过10个字符,只能以汉字或英文字符打头,字段名只能由汉字或英文字符或数字或下划线构成)。如果不便,可以建立字典表进行变换处理(本系统中大多数部件都提供了借字典表变换标识的功能)。 需要注意的是,有些数据库有些数据类型不能使用。例如SQL Server中不得有uniqueidenti、timestamp,在Access、Oracle等数据库中不得使用自动编号类型等,因此在使用某些数据库系统时需要发现这样的数据类型,并回避使用这些类型。为减少摸索的时间消耗,建议只使用与VFP中允许的数据类型相容的数据类型:字符类型、数值类型(包括浮点类型)、货币类型、整型、双精度类型、日期时间型、日期型、逻辑类型、文本类型、图形类型。 2. 建立文件夹 建立自己的工作文件夹,并将部件库最小系统网络版内的全部文件拷贝到该文件夹中。 例如:建立名为chen的文件夹,再将部件库最小系统网络版文件夹中全部文件拷贝到该文件夹中(操作步骤为: 1)进入部件库最小系统网络版文件夹、选全部、复制。2)进入你的文件夹(例如chen),将贴在剪切板上的前述文件粘贴到你的文件夹中)。 3.修改环境参数 双击0环境设置.EXE程序,可以填写的内容意义如下: 标题1 指系统运行时封面中欲显示的应用系统的名字 单位名1 指系统运行时封面中欲显示的应用单位的名字或作者单位名字,可以不填 著作者名 指系统运行时封面中欲显示的著作者名字,可以不填 封面画名 指系统运行时封面上的背景画的文件名,应当为BMP文件,在当前文件夹中必须存在该文件。 数据库系统 指应用系统所基于的DBMS名称,目前供选的有Oracle9i或Oracle10g或更高版本;SQL Server2000或更高版本、Access2003或更高版本。 数据源名 指ODBC数据源名称,必须先在所安装的数据库系统中建立一个数据库实例,再利用操作系统(在Windows系统中通过我的电脑控制面板管理工具数据源)进行设置。 用户标识 指在安装远程数据库时定义的用户标识。对于Oracle数据库必须设置(例如SYSTEM),对于其他数据库,根据情况设置或不设置 连接口令 指在安装远程数据库时定义的用户密码。对于Oracle数据库必须设置,对于其他数据库,根据情况设置或不设置 例如: 标题1 工资管理系统 著作者名 王 平 封面画名 gongzi.bmp 数据库系统 选择 SQL Server 数据源名 SQL1 (假设已经通过我的电脑控制面板管理工具数据源建立了名为SQL1的数据源) 4.设计系统的模块结构 如果采用水平下拉菜单控制,执行程序(系统模块)的菜单项只能处在叶节点位置上,在该位置应选择具体部件名称;如果采用目录树控制结构,所有节点都可以兼做控制节点与操作程序模块。在设计时,最好能确定充当该模块的部件所需要的参数名字与参数内容。 5.设定参数建立系统 双击0部件驱动菜单生成.EXE程序,按设计好的系统的模块结构建立菜单的目录树结构。方法是:先在左上角新节点名栏中输入主菜单项名称,按建立第一级菜单按钮,将发现在左边菜单框内新生了一个主节点;再在新节点名栏输入第二个主菜单项名称,按建立第一级菜单按钮;,建立顶级菜单框架(如果是水平下拉菜单,建立的是水平下拉菜单的水平菜单部分)。 再在新节点名栏输入第二级某个子菜单项名称,点第一级菜单中某一项,将见到提问:是否在该菜单项下建下一级菜单,回答是后,将见到已建立下一级菜单。以同样方法建立所有水平菜单项下的下一级菜单框架。 如果采用水平下拉菜单控制,选第二级菜单的某一项的名字,再类似于接口参数输入界面中的输入输入有关参数,对于第二级菜单的每一项,都必须输入一个部件的名字和一个远程表的名字。如果熟悉VFP,也可以另建VFP的程序,在部件名称中可以填写一句以DO打头的命令,例如DO A1(注意限填一句且必须是DO打头)。另外,如果是PRG文件,在设计完毕时要选择VFP主菜单中的菜单项程序中的编译,生成FXP文件,否则不被执行。 6.接口参数设计一例 在数据表名称中输入:工资 。工资应当是远程数据库中某数据表的名字,该表必须存在,该数据不可省缺! 在关键字中保持空,不输入 。变量关键字所填内容在修改与删除操作中起作用,一般必须输入,并且应当与数据库中定义的关键字相容。如果在参数中没有给定关键字,部件程序将默认第一个字段为关键字。 本系统中除单记录数据维护部件1、单记录数据维护部件5、表格式数据维护部件1外的其他数据维护部件做录入程序使用时,要求远程数据库中不设关键字,否则录入操作将失败。前面所提三个部件对于是否在数据库中定义关键字没有要求。当做修改、删除、查询等使用时,对是否在数据库中定义关键字没有要求。 在接口参数表序号中输入:1 。接口参数表序号中填的表名默认为接口参数表1,该表中接口序号与这里定义的号数相同的那些项在本次调用中起作用。该表将影响代码表的使用、影响数据完整性控制、影响数据安全性控制、影响数据的互操作、影响文本字段与通用字段等字段表现形式。该项可以为空,意味不使用代码表及其他控制。对于不同调用,这个号可以不同,不同序号中的参数记录在本次调用中不起作用。 在打印格式文件名称中保持空,不输入 。许多部件中都集成了打印功能,如果需要打印报表的功能且已经设计了打印格式文件,可在该参数中填写预先设计好的打印格式文件的名称。对于某些数据维护部件,也可以不填打印格式文件名称,只选留相关打印按钮,也可以打印报表,将自动生成与表名同名的一个表格格式的打印格式文件并控制打印。 在字段号表中输入:1,3,5,7,11,15,19,20 。对于不同操作,需要不同的视图,这不仅是为了操作的方便,也是达到安全性控制的一个手段。本部件系统中的部件允许定义视图中涉及的字段的字段号来实现对视图的要求。所输入的数字串中每一个数字表示一个字段在数据表中的顺序号,程序将只对该视图中有关字段的数据进行操作。该参数中如果不填数据、保持为空,意味对全部字段操作。但是正确的设计应当对每一次调用都按需要选择字段,不要令其为空。 在留下按钮号中保持空,不输入 。一个部件包含多种功能,在应用时再根据需要保留部分功能,使既可以满足不同用户对界面的需求,也可以减少部件库中部件总量。本系统中所有部件都设计了多个按钮,使集成多项功能,可以通过选择按钮实现不同功能组合,满足不同应用需求。在留下按钮号中填的数据就用来选择在使用该部件时提供给用户的按钮,也就是提供给用户的功能。该参数中如果不填数据、保持为空,意味保留全部按钮。但正确的设计应当对每一次调用都按需要选择按钮,不要令其为空。 在相关表名中保持空,不输入 。如果操作涉及二个以上的表,例如选择一对多表的数据维护或查询,在主表外还要定义子表名称。可以在该栏中定义子表名称。如果是查询、统计、打印等程序,子表可能为多个,其名字也皆在此填入,注意名与名之间用逗号分隔。特别注意,本系统中部件都是对远程表操作的,因此所有相关表都必须是远程表,不能填入本地表名。在下一个版本中将允许同时使用远程表与本地表。 在外关键字中保持空,不输入 。外关键字中填的数据为主表与第一子表相连接的字段名,可以为一个或多个,通常字段名称应当相同。如果填了相关表名,该项必须填,不得令其为空。 说明:以上只对部分参数进行了说明,详细内容见本帮助程序文件的其他部分。以上。前内容为操作说明,。后的内容为注释。 7. 运行系统 退出0部件驱动菜单生成.EXE程序。在退出时将自动进行水平下拉菜单的编译操作,并试运行。注意点选退出菜单项退出试运行。 在以上操作完成后,应用系统已经自动建立。双击0项目.exe,可以进入水平下拉菜单控制的应用系统运行程序。双击0项目3.exe,进入目录树菜单控制的应用系统运行程序。 注意水平下拉菜单控制的系统的菜单程序是在运行0部件驱动菜单生成.EXE程序的退出程序时自动建立的,因此,建议不要通过对部件库驱动菜单表.DBF表自行在VFP环境中作直接修改,一定要利用0部件驱动菜单生成.EXE程序修改系统结构,否则不能修改水平下拉菜单控制的应用系统。 在运行时需要注意二个问题:如果运行出现异常,会出现无法从VFP退出的故障,这时要用ctre+alt+del进入任务管理器,强迫结束有关VFP的进程。 在运行时常常进入数据表浏览界面,有时只能按esc键才能退出该界面。 使用本系统,无论是运行最小系统还是自己组建系统、书写菜单程序,都要设置接口参数,其中最主要的参变量及其意义再特别说明如下: 二、部分接口参数的意义 1.主要接口参数的意义 (1)表名:表示本程序当前要维护的表的表的名字。 (2)接口参数表序号:在不同调用或调用不同部件时可能有不同接口设置要求,用该序号区分不同的设置。接口参数表记录你关于使用代码的要求、关于数据域完整性控制要求、安全性控制要求、派生数据的计算公式、在数据维护部件与多表数据维护部件中文本框等控件的位置与字号与字体与控件大小等数据。 (3)打印报表格式文件名:如果预先准备了打印格式文件,在这一句中说明打印报表格式文件的名字。在使用各种数据维护部件、某些查询部件时,如果在接口参数中给定了打印格式文件名,可以在进行查询(或不进行查询而对全表)按格式打印报表。如果接口参数中未给定打印格式文件名,将进入表格式报表格式生成程序,自动建立打印格式文件并打印报表,这样建立的打印报表将和主数据表同名。 (4)字段号表:给不同人或为不同用途调用同一部件时需要建立各不相同的视图、显示与操作不同字段的数据,主要目的是方便操作,也表现安全性。如果只要求显示一个表中部分字段的数据,该句说明拟在屏幕上显示的各个字段在设计结构时的顺序号。号与号之间要求用英文逗号分隔。如果为空表示选全部字段。采用字段号而不采用字段名是加强数据逻辑独立性,也为了一条语句总长度不超过254个字符。 数据维护部件1到4在界面中使用了组合框,其字段号表的字段号之前可以加a、b、c、d字样,表示该字段用组合框显示。其中,a表示只显示代码表,只能选择不能接受键盘的输入。b表示可以显示代码表,如果未登记代码表也可以显示已经输入到表中的该字段的数据(我们称之为历史数据),只能选择不能接受键盘的输入。c表示只显示代码表,可以利用鼠标选择也能接受键盘的输入。d表示可以显示代码表,如果未登记代码表也可以历史数据,可以利用鼠标选择也能选择不能接受键盘的输入。 在使用查询类部件时表示要求提供给用户选择的供组成条件表达式的那些字段的字段号列表。在使用查询类部件1与3时,只允许也必须输入1个字段的号或名(也可以是表达式或函数),后面可以加关系符(、=、、=、=、、$等)(可以不加)。 例如: 2= 学号 学号 SUM(平均成绩)= 这四个都是允许的输入方法。 查询类部件3是二条件查询程序,使用时还要求在变量字段号表0中设置另一个条件的1个字段的号或名或表达式,可以加也可以不加。使用查询类部件3也可以各输入多个字段号的表或空着不输,那么将提供组合框让用户选择字段名。 (5)留下按钮号表:许多工作都要求多个功能互相补充才能进行,也为了满足不同人不同应用的口味或需要,为了减少部件总数量,每个部件都设计了许多功能,各功能主要通过按钮体现,每次调用如果只需要其中部分功能、只要求使用部分按钮,可以在其后引号内输入拟在屏幕上显示的各个按钮的顺序号。如果为空表示选全部按钮。 (6)相关表名:如果涉及查询统计或多表维护的表单,除主表外还有其他表称为从表。使用一对多数据维护程序填且只允许填一个从表。使用多表组合查询、数据传送、统计图、生成打印格式文件等可以填0到多个从表,要求填多个从表时表名间以英文逗号分隔,且后面的表与前面的各表间至少有一个字段名相同,作为连接的字段名在设计表结构时要尽量放在各字段前面。 (7)外关键字:主从二表共有的字段、一般同时是主表的关键字。 (8)关键字1:从表关键字。只在使用一对多数据维护表单之前,且有一个关键字是数字类型,要求在添加新记录时自动按最大值加1后自动填入。在有此要求时应设置。在使用按关键字维护与多层次数据维护部件时需要填入关键字与分层字段名称。 (9)字段号表1:在查询类部件1到4、6、7和数据传送部件4到7中可以送入输出要求。可以是字段号表,中间可以加字段名,可以是表达式,可以使用如avg(字段名)、max(字段名)、min(字段名)、count(字段名)这样的函数(其中字段名表示要填具体的一个字段名称)。如果有上面五种函数之一,必须给分组字段,给的方法是在最后加一个冒号,后面跟分组字段。 例如: 学号,姓名,班级,7,sum(平均成绩):专业,班级 意义是按条件查询的记录中显示学号,姓名,班级,第7个字段及按专业与班级分组之后每组平均成绩之和。 2.关于某些问题的说明 (1)接口参数中用接口参数表序号区分不同调用,一个系统内所有调用所需要的不同的参数的数据放到一个表内,目的的方便管理。 (2)几乎所有部件内按钮都可以供选择与组合,使满足不同人、不同工作的口味与需要。在设置接口参数时,为方便操作与设计,如果选定了部件,点上按钮号表文本框,就可发现在列表框中列出了该部件所使用的所有按钮名称及序号,用鼠标点击就能按名字选择按钮,得到按钮号表。 (3)数据维护部件界面一般都由程序按固定的算法计算与安排,不需要用户考虑。但准备了数据维护部件2允许全部字段位置由用户安排。用户可以利用0最小系统.exe程序中接口参数表维护中定义字段位置程序辅助设置接口参数,之后再运行时就按接口参数表中设置安排排版。 (4)在数据域完整性控制中有时要求数据只在一个值域中选定,管理信息系统为了实现规范化与标准化也要求某些数据只能从预先选定的值域中选择输入,其实现方法普遍采用代码表。界面中则主要依靠组合框或列表框作为字段的显示控件。本系统中数据维护部件普遍加有该项功能。使用的方法是首先建立代码表(均为VFP本地表),再在参数表中注册,就可以使用了。一般使用时是界面中有一个共用的列表框,当某一个字段控件获得焦点(鼠标点中该控件)时,如果该字段存在代码表且已注册,列表框中就显示代码表内容供点选。如果未注册代码表,则显示历史数据供点选。单记录数据维护部件1到4及表格式数据维护部件1采用组合框实现该功能,定义方法是在字段号表中有关字段的字段号数字前加a或b或c或d,就表示用组合框表现字段,具体意义见下面有关内容。 (5)考虑到与数据库中设定相适应使提高运行效率,也考虑到局部要求不一定与全局要求一致,所有维护部件需要在入口参数中指定关键字,使实现实体完整性保护。 (6)查询1、查询3为使用较多但变化较大的部件。查询的内容可能涉及一个字段或二个字段、也可能是与字段相关的表达式,甚至涉及聚集函数,允许在字段号表中定义一个字段名或一个函数式或一个表达式。例如查询1的字段号表的写法中学号=、学号$、3=、学号、3,SUM(平均成绩)=、SUM(平均成绩)等都是允许的(如果是表达式或函数,必须用字段名,不能用字段号)。 查询2为二条件查询,需要在字段号表、字段号表0中分别如上给定一个条件。 查询的输出要求与分组字段(如果涉及聚集函数,必须定义分组字段)在字段号表1中设定。输出要求可以是字段号表,也可以是Select语句中能操作的表达式或函数,用逗号分隔。输出要求与分组字段名(如果需要设分组字段名称)间用冒号分隔。 格式例如:1,3,平均成绩,SUM(平均成绩):学号 意义是:输出第一、三字段、平均成绩字段内容和按学号分组分组后每组平均成绩之和等数据。其中冒号后是分组字段名称,只要有统计要求的都必须给分组字段名称。 (7)为了使界面风格可变,所有按钮的显示标签可设定。方法是在留下按钮号表中数字后都可加冒号再加新标签内容。注意该句总长不超过254个字符。 (8)为了实现进行数据处理的需求,设计了一个数据处理部件,允许在接口参数中规定所选择的处理公式或处理函数,允许用户自定义处理函数。 三、主要部件功能与使用方法 1. 单表单记录维护部件 单表单记录维护部件每次在桌面上仅显示一条记录的有关数据,可用于对数据表完成数据添加、修改、删除、对任意单个字段作等值查询、对任意单个字段作某一种条件查询、如果事先设计了打印格式文件将提供按固定格式打印报表、按任意字段索引排序等等操作。界面构成除文本框、编辑框、按钮外可以使用组合框。如果要求使用组合框,要在接口参数中字段号表的字段号前加a、b、c或d,详细内容见关于各参数意义的说明。本程序可以施加域完整性与实体完整性控制、安全性控制、可以要求使用代码表,提供从代码表或历史数据用鼠标点选录入的手段,可以要求自动进行派生数据的计算与录入。以上都通过填写接口参数表1来进行。可以执行最小系统,利用其中接口参数表维护有关程序填写或修改其内容。使用前一般要予定数据表名称与接口参数表序号。其全体显示的字体与字号、备注字段与通用字段显示大小与位置均可以设置,于上面一样设置接口参数表1中相关内容实现。这类部件用途: 可以作为数据输入模块、修改程序、删除程序、综合数据维护模块、条件查询程序、排序、批处理、打印程序模块等使用。对于有备注字段或通用字段或界面中字段较多总面积较大或希望一条条对记录进行处理的需求比较适合。 一般作为数据输入模块使用时常选择:之前录入、之后录入、清屏、浏览等按钮协同工作。 作为修改程序、删除程序等使用时常选择:第一条、上一条、下一条、末一条、查询、条件查询、浏览、浏览存盘、第?条、索引、再次索引及各种修改或删除按钮协同工作。 作综合数据维护模块则综合选择以上按钮协同工作。 作查询程序时常选择:第一条、上一条、下一条、末一条、查询、条件查询、浏览、第?条等按钮协同工作。 作排序时可只选择排序按钮,也可以选择索引、再次索引等协同工作。 作批处理模块时类似于修改使用。 作打印程序模块等使用类似于查询。加转EXCEL或打印予览或打印按钮。 如果未给定打印格式文件,当按各部件的打印予览按钮时,将首先帮你建立与数据表名加格式文件为名的打印格式文件,并进入打印予览操作。在建立过程中,提供选择需要打印的字段及定义每一拦宽度的方便。 单表单记录维护部件功能: 数据维护部件1到4使用组合框提供代码或历史数据辅助录入帮助,其他部件利用统一的列表框完成该功能,统一使用列表框可以更充分地发挥鼠标的作用。 数据维护部件1可以定义全部字段的字体、字号,定义备注字段与通用字段的字体、字号、宽度、高度、距左边距离与到顶距离,排版时尽量按接口参数给定的字段顺序排列。其中宽度、高度、距左边距离与到顶距离都按5号字标准给定数据,排版时再根据所要求的字体字号变化。 数据维护部件2可以定义全部字段的字体、字号、宽度、高度、距左边距离与到顶距离,排版时完全按接口参数给定的字段顺序排列。可以在第一次运行前给定部分字段的字体、字号、宽度、高度、距左边距离与到顶距离,运行时程序会自动安排其他字段的位置,然后,程序员可以修改接口参数表1相应序号下的这些位置与表现的参数,定稿后再运行就会按修改好后的数据排版。这样操作会比较麻烦,但界面变化的余地要大得多。 数据维护部件3直接对数据表操作,修改数据无需按存盘按钮即可完成,用作修改数据的程序模块操作比较快捷,但要注意操作时不要出错。 数据维护部件4排版方式简单,按数据表字段顺序排版,可以定义备注字段与通用字段的宽度、高度。 数据维护部件5到10排版方式与数据维护部件4相同,都采用统一的列表框提供代码数据或历史数据选择录入的方便。 数据维护部件6为直接对数据表操作。 数据维护部件7允许对接口参数中关键字中给定的关键字进行按位模糊查找到有关记录后点击选中该记录再进入维护操作。注意一定要定义关键字! 数据维护部件8允许对接口参数中关键字1中给定的二个字段名用列表框提供全部数值供选择,用户选中其中一个后,该记录会显示出来供修改。注意一定要定义关键字1! 数据维护部件9允许对接口参数中关键字1中给定的带有层次特性的多个字段名用目录树形式提供全部数值供选择,用户选中其中一个后,该记录会显示出来供修改。 注意一定要定义关键字1! 数据维护部件10为简单接口部件,不提供按钮选择功能。 如果要求使用代码表,要首先设计并生成代码表,然后在接口参数表1中加入有关说明,包括:代码表名(包含路径)、代码表别名(不包含路径)、代码字段名、内容字段名、加入字段名(目前程序中要求加入字段名与代码字段名及内容字段名中的某一个相同),而且要很实际数据表中相关字段的名称相同。 数据维护部件1与数据维护部件5进行数据录入的方式和其他部件不同,采取将SQL语句发送到远程执行的方法,使得在数据库中定义了关键字的表也能进行录入操作(其他部件许多未能解决这一问题)。但在远程数据库中关于日期类型字段常量的表示方法各不相同,目前只设计了部分方法,使得这二个部件在作录入模块时不能适应各种数据库的要求。目前已通过测试的有Oracle9i系统、Oracle10g系统、SQL Server2000系统、SQL Server2003系统、与Access2003系统。将在下一版中解决该问题。 2. 表格式维护部件 表格式维护部件以表格形式显示表中数据并提供数据维护手段。 调用时在菜单项的过程中写入的程序的格式与数据维护部件相同,只是部件名称不同。 其用途:可以作为数据输入模块、修改程序、删除程序、综合数据维护模块、条件查询程序、排序、打印程序模块等使用。对于有备注字段或通用字段或界面中字段较多总面积较大的情况不适合。如果希望次显示多条记录供处理,选择本类部件比较适合。 一般作为数据输入模块使用时常选择:之前录入、之后录入等按钮协同工作。 作为修改程序、删除程序等使用时常选择:查询、条件查询、索引、再次索引及各种存盘或删除按钮协同工作。 作查询程序时常选择:查询、条件查询等按钮协同工作。 作排序时可只选择排序按钮,也可以选择索引、再次索引等协同工作。 作打印程序模块等使用类似于查询。加转EXCEL或打印予览或打印按钮。 有关部件概况:本系统提供了6个表格式数据维护部件。都可以提供三种显示界面,通过按钮操作变换。 表格式数据维护部件1与2具有自适应功能,每写最后一条数据时会自动产生新行,因此无须添加按钮就能不断进行录入操作。在数据输入到表格中后立即自动存盘,因此也不用存盘按钮。可以用鼠标拖动使对连续一片的记录加删除记号。其他完整性保护、安全性保护、派生数据处理和单记录方式的数据维护部件相同。1和2的区别在于关于代码数据与历史数据帮助录入功能的实现方法不同,1是靠弹出的组合框,2是靠所有字段共用的列表框。当有了代码表,并且在接口参数表中进行了登记(利用最小系统的接口参数表维护菜单项下代码表登记进行操作)的情况下,如果在变量字段号表中列出了要显示的字段号,在要求有代码的字段的字段号前加a或b或c或d,然后运行表格式数据维护部件1,当焦点落到有代码字段上时,将弹出组合框,用户可以用鼠标选择合适的代码录入。当误操作使表内出现关键字重复记录时,表格式数据维护部件1往往可以用来删除这样的记录。 特别注意:为了避免录入数据中有空值,使之后操作出现不便甚至错误,建议做录入用时,选择表的全部字段,即在留下按钮号一栏中保持空白。需要将录入调用与修改、删除调用区分开来。 如果未给定打印格式文件,当按以上二部件的打印予览按钮时,将首先帮你建立与数据表名加格式文件为名的打印格式文件,并进入打印予览操作。在建立过程中,提供选择需要打印的字段及定义每一拦宽度的方便。 表格式数据维护部件3在修改完一条记录后必须按存盘按钮才能保存,是唯一可以用来修改关键字值的部件,其用途一般不做录入用,主要用来做可能要求修改关键字值的操作,但速度较慢,且要求操作存盘后退出运行,需要重新进入系统。 表格式数据维护部件4数据源直接绑定数据表,因此也无须存盘按钮,但与1和2不同,1,2设计有临时表,因此功能可以设计得强一些,便于实施实体完整性控制。该部件使用时要先按添加按钮产生一个空行后才能录入。 表格式数据维护部件5未使用接口参数表,其他与4相同。 表格式数据维护部件6允许对接口参数中关键字1中给定的带有层次特性的多个字段名用目录树形式提供全部数值供选择,用户选中其中一个后,该记录会显示出来供修改。 注意一定要定义关键字1! 表格式数据维护部件7是对本地表数据维护程序,无需入口参数,数据表名称在运行时通过按钮在本地表目录中选择给定。 3. 一对多数据维护部件 一对多数据维护部件在界面上同时显示具有一对多关系的二个数据表的数据,可以对二个表进行录入、修改、删除、查询等操作。 在操作时提供参照完整性保护。方法是:先在主表中选定一条记录,当在子表中添加一条新记录时,会自动将主表中与子表中也有的同名字段的数据取出,填写到主表中;如果在主表中删除一条记录,回提问是否同时删除字表中外关键字值相同的记录,如果回答是,将删除字表中相关记录;如果修改主表中和子表外关键字同名字段的数据,将同时按同样数据修改子表中的数据。 提供关联操作:当在主表中选择一条记录时,子表中将显示外关键字值相同的所有记录,提供修改操作方便。 其用途:在提供参照完整性保护和关联操作的情况下对主表、子表进行数据维护操作与查询操作。与单表操作的不同点在于:1、当在主表中选择一条记录时。子表中应当只显示外关键字值相同的相关记录数据供修改操作。2、当子表中录入新记录时,其外关键字数据应当等于主表中当前记录中外关键字的数据。3、当从主表中删除一条记录时,应当提示是否同时删除子表中相关联的数据,以保证参照完整性。当用户确认后,应将子表中相关联的记录一并删除。4、当修改主表中数据且修改了外关键字的值时应当将子表中外关键字的值修改为同一值。但是,一般外关键字多为子表关键字的一部分,当远程表不允许修改关键字的情况下,这一操作无法完成,因此本系统多表维护部件普遍未加该功能,统一规定不得修改关键字与外关键字的值。如果用户有特别需要,可以另外设计。 对主表的操作一般提供录入、修改、删除、查询、指针移动等功能。 对子表的操作一般提供录入、修改、删除、查询、索引、打印、转EXCEL、浏览等功能。 如果主表字段较少,需要较大子表空间,而且子表字段也不多,希望能一次显示多条记录,采用多表数据维护部件1与2较好。如果有比较多的字段需要代码表或历史数据支持,或希望多采用鼠标帮助操作,以多表数据维护部件2较好。 如果子表中存在文本、图片等内容,以选择多表数据维护部件3比较好。 多表数据维护部件4能直观看到二个数据表之间关联情况,当需要展示的二个表的字段数都不多时,可以选择使用多表数据维护部件4。该部件未附对主表作数据维护操作的功能。 如果不要求对主表作维护操作,主表数据只是子表数据的引导,使用多表数据维护部件5也比较方便。 有关部件功能性能概况:多表数据维护部件1以单记录式界面显示主表数据并允许对之做维护操作。以表格形式提供对子表数据维护的界面。某些数据需要采用组合框显示其代码表,让用户通过鼠标点击从代码表中选择代码或代码代表的内容录入到数据表中,可以保证数据的规范性、标准性、一致性,为统计操作的准确性打下基础,也可以加快录入速度。同时,某些数据可以从已经录入过的数据(称为历史数据)中选择录入,也用组合框显示去掉重复值的这些数据供用户选择。 多表数据维护部件2以类似于多表数据维护部件1,但是不采用组合框,而是采用统一的列表框显示相关字段的代码表或历史记录,以单记录式界面显示主表数据并允许对之做维护操作。以表格形式提供对子表数据维护的界面。 多表数据维护部件3以单记录式界面显示主表数据并允许对之做维护操作。同样以单记录式界面提供对子表数据维护的操作。主表与子表各采用统一的列表框显示相关字段的代码表或历史记录中的数据供选择录入。 多表数据维护部件4同时用表格形式提供对主表显示与对子表数据维护的界面,不提供对主表的维护操作。在主表数据指针改变时从表中数据相应改变。当从表添加新记录时从主表中取出当前记录中同名字段的数据自动添加到从表中,使加快录入速度。 多表数据维护部件5以列表框显示主表部分属性数据,不提供对主表的维护操作。同时以表格形式显示从表中数据并提供数据维护手段。在主表数据指针改变时从表中数据相应改变。当从表添加新记录时从主表中取出当前记录中同名字段的数据自动添加到从表中,使加快录入速度。如果预定了关键字1,将自动在添加新记录时将该字段最大值加1后填入表中,即自动编写关键字,如果未定义变量关键字1,将不做此操作,对运行无影响。 多表数据维护部件6的目的是为了某些快速录入的实现,可以根据二个表的数据先生成一个空表,在其中只填少数字段的数据,在其他表中能找到的数据自动录入到新表中,再转录入远程表。例如填写某门课的成绩,成绩表中有字段:学号、课号、分数等字段。需要根据学生表中的班级与课程表中的课名建立一个包括学号、课号与分数的空表,其中学号从主表(学生表)中根据班级查到该班级全部学生后取出学号录入新表、课号要根据课名从课程表中查到后填入新表,只留下分数数据需要用户录入,用户根据成绩单向新生成的这个临时表录入分数数据,再转录入到成绩表中,能提高操作速度。调用方法:输入的参数有:数据表名称、相关表名称、外关键字、关键字1、字段号表、字段号表1、字段号表0。其中,数据表名称、相关表名称、外关键字、关键字1、字段号表1 等的意义与输入格式与其他部件保持一致,只是相关表名称可以输入二个表的名称,之间用逗号分隔。前一个是接受最终输入的子表名(例如成绩表),后一个是另一相关子表名,例如课程表或课程代码表。要求在主表中必须有一到多个字段与第一子表中1到多个字段同名,这些字段的数据以后可以自动放到新表中。在第2子表中也必须有一到多个字段与第一子表中1到多个字段同名,这些字段的数据以后也将被自动放到新表中。在字段号表中填写主表中的字段号或字段名,可以是1个,也可以是2个,最多2个,之间用逗号分隔。填生成新表的某一字段数据的依据,例如班级,将根据这1或2个字段所选值查主表中满足匹配条件的1或多个字段的所有数据(例如学号)自动填到新表中。字段号表0中填写第2子表中的字段名,可以是1个,也可以是2个,最多2个,之间用逗号分隔。用户选择这些字段的值作为生成新表的例外一些字段数据的依据,例如课名,将根据这1或2个字段所选值((本部件规定只取一个值)例如课号)填入新表,上述自动填入的数据在之后录入过程中不可修改,这样可以加快录入速度。只有非上述数据的数据需要用户手工录入(例如分数数据),用户可以只填写分数数据及其他另外二表中非同名字段的数据。最后按添加式存盘再全部加到远程表(例如成绩表)中。 多表数据维护部件7的目的是为了快速修改子表中的数据,可以根据主表部分字段与子表部分字段建立索引目录树,当用户选择某目录时,程序自动调出相关子表中的记录在窗口中显示,用户可直接在窗口中修改,完成数据维护的工作。输入的参数有:数据表名称、相关表名称、外关键字、关键字1、字段号表、字段号表1、字段号表0等。要求将列入目录树的主表字段的字段号写到字段号表中(可以为空,那么和单表目录树结构部件功能相同),将列入目录树的子表字段的字段号写到字段号表0中,其他参数意义与填入内容与其他部件相同。构成目录项的标识的是有关字段的值,该值不得以数字打头,如果实际数据以数字打头,本程序叫自动在数字前按层次 加A、B、C等;在不同主枝上的子枝名字如果相同,之后会合并到稍前的主枝中,使搜索路径出现改变,本程序为解决此问题,将自动在相同值后面加数字区分;构成目录树的字段类型要求为字符类型,本程序将自动将整型、数值型、日期时间型改为字符型数据放入目录树,因此,本程序允许构建目录树的字段限4种类型:字符型、整型、数值型、日期时间型。 4. 查询部件 查询是对数据各类操作都需要进行的操作,其效率对系统工作效率影响极大,需要提供各种方便用户查找的界面。本系统提供了可以由程序员预先定义一个查询表达式的单条件查询、由程序员预先定义二个查询表达式的二条件查询,有关条件如果是一个,写到变量字段号表中,如果是二个,另一个写到变量字段号表0中。(以上一个到二个条件可以是字段名的条件,例如: 学号 或 学号= (如果后面有关系符,界面中将不出现供选择关系符的组合框。以下同)。 也可以是表达式,例如: 固资+活资 或 固资+活资= 可以是聚集函数,例如: sum(应发工资) 或 sum(应发工资)= 。注意如果有聚集函数,必须要给定分组字段,方法是在字段号表1中以冒号加字段名的形式给出。例如 :部门号 表示按部门号分组,再根据各组应发工资的和形成查询条件。 注意,对于单条件的情况,在字段号表中只能写一个字段名,或一个表达式。对于二条件的情况,在字段号表与字段号表0中可以写一个字段名或一个表达式,也可以写多个字段名(用逗号分隔,但其中不得有表达式),否则出错。 提供单查询部件则需要用户先选择字段,再选择关系符,再进行查询。可以设定对输出内容的要求,方法是在变量字段号表1中以字段号、字段名、表达式形式列出要求。例如 1,3,4,固资,7,10,固资+活资 字段号、字段名、表达式可以混用,也可以有聚集函数,但其后必须给出分组字段。 例如: 姓名,部门名,SUM(固资),SUM(应发):部门号 为了满足预先难以确定的查询要求,设计了从简单到复杂的多个组合查询程序,使用这些程序时,要求用户选择字段、选择关系符,再输入查询值,一个一个条件放到专门准备的编辑框中,用户可以自行修改,再进行查询。 查询部件用途:按用户需要根据各种各样的条件对数据库中数据进行查询,对文本进行检索,并按用户要求输出结果。 提供对数据库中数据按照单条件、二条件、多条件的查询,可以根据字段值、表达式、函数式、字段的子项、分组统计数据等构成条件式再进行查询,并将查询结果输出出来。查询结果可以是字段、表达式、函数式,也可以是分组统计结果。有些部件可以用于对文本的检索。有些部件可以对数据表中数据做统计操作。 一般都以列表方式显示结果,还提供打印、转存文件、转EXCEL等功能。有些部件可以转单记录维护程序,通过比较复杂的查询找到有关数据再转入数据维护操作。 有关查询部件功能与性能:查询部件1为由程序员预先定义查询表达式的单条件查询,有关条件写到变量字段号表中,可以是一个字段名,也可以是一个表达式;后面都可以加 、、=、=、、=、$、!$ 等符号。输出要求写到字段号表1中。 查询部件2为单条件查询。用户先选择字段,再选关系符,再进行查询。输出要求写到字段号表1中。 查询部件3由程序员预先定义查询表达式的二条件查询,有关条件写到变量字段号表和字段号表0中,各可以是一个字段名或一个表达式;后面都可以加 、、=、=、、=、$、!$ 等符号。也可以是由逗号分隔的多个字段号,后面不得有关系符。二个条件间可以组合成与或或的关系。输出要求写到字段号表1中。 查询部件4为简单的多条件组合查询。用户先选择字段,再选关系符,输入查询值,按加入条件的按钮,再选下一个条件,条件组合完成后,可以修改条件,再进行查询。可以将输出要求写到字段号表1中,如果不给要求,表示按全部字段输出。 查询部件5为较复杂的多条件组合查询。用户先选择字段,再选关系符,输入查询值,按加入条件的按钮,再选下一个条件,条件组合完成后,可以修改条件,再选择输出内容,包括生成涉及聚集函数的条件(一定要选分组字段),再进行查询。输出要求不能预先在接口中给出。 查询部件6到9为多表查询,将首先将列在数据表名称中的表、写到相关表名称中的各个表及在接口参数表中登记了的代码表关联到一起,在如前面类似的界面中提供查询操作。其中查询部件6为单条件查询。 查询部件7为完全SQL语句组合查询程序,也可以作SQL语言SELECT语句练习工具使用,输出为一到多个原数据表经连接之后的表的子集,输出要求与分组条件写到字段号表中,其中输出要求可以用字段号、可以用字段名、也可以用函数式(函数式与表达式中只能用字段名表示字段,不能用字段号),如果输出内容中有聚集函数或有分组条件时,必须给分组字段名,分组字段名放在输出要求之后,用冒号与前面分开。分组字段也可以有多个,由逗号分开。可以预给查询条件表达式,条件表达式要求写在字段号表1中。还可以预给分组后按组值构成的条件表达式,分组条件表达式要求写在字段号表0中。在执行程序过程中可以临时修改输出要求、分组字段、各条件表达式,再执行,程序中给了相应的帮助,使达到学习SQL语言的目的。注意,中间所使用的表名只能是远程表的视图或本地表名,远程表视图名由远程表名加视图二字构成。还要注意,表与表之间必须有一个同名字段,将根据该字段建立连接,在条件语句中必须有连接子句。如果在输出要求、条件子句等中出现同名字段名,之前必须加表或视图名,且与字段名间用逗号分隔。本程序不能使用代码表,不能根据非数据表中的字段进行查询。 查询部件8为与查询部件5类似的组合查询。 查询部件9为较复杂的查询,可以设置分组后的分组条件(条件式列在Having子句中)。关于分组条件的操作是:先选定字段,再选聚集函数,写入分组数据,加入到右下角编辑框中,再选择与加入下一条件。 查询部件10、11对备注类字段中文本进行检索式查询。在文本框中,按目前各搜索网站同样方法输入检索关键字,再进行查询。 查询部件11是简单的检索式查询,在接口参数中不给接口参数表序号,不涉及接口参数表的使用。 查询部件4到9的操作虽然麻烦,但可以适应各中查询需要,使用更灵活。不过,对操作者有较高的要求。 5. 关系运算部件 关系运算部件计算二个表之间的并集、差、交集、商,结果一般放在本地表中,有些存在转加到远程表的需求。除关系运算部件1只需要数据表名称外,其他四个部件要求定义的参数都是数据表名称(第1表名称)与相关表名称(第2表名称),此外,可以选择字段号与按钮号。 求二个表之间的并集、差、交集时要求二表字段结构相同,包括字段数量一样、字段名相同,字段的属性也要相同。本系统部件考虑到处理异构数据的需要,允许存在不同,将对本地临时表经过变换后再运算,但结果一般限存放到本地表中。 求二个表之间的商时要求二表有一到多个字段结构相同,包括字段名相同,字段的属性也要相同。作为除数的表就由这些字段构成(假如用Z代表),要求没有重复值。作为被除数的表除了有这些字段外(假如用Y代表),还有一到多个字段(假如用X代表)。在表1中X的数据存在重复,可以按其值分组,二表的商就由这些字段构成。求商的方法:对表1按X部分一组组进行分析,如果X的某一组记录的Y部分的数据全部包含Z部分的数据,就将该组X部分的字段或字段组的值加入到商表之中。 本系统包括5个关系运算部件。关系运算部件1处理比较常见的一类求交问题:在一个数据表中查找并去掉记录值完全重复的记录。本部件也允许选择一部分字段,查找这部分字段值相重复的记录。操作时先要求做查找操作,查找成功后再按物理删除按钮删除。 关系运算部件2求二表并集,实际是将二表中不重复的记录合并到一个表中,为统计操作服务。操作时可以指定一个存放结果集的本地新表,便于进一步处理。 关系运算部件3求二表商。主要运算按钮包括表1除以表2结果到本地新表按钮和按选中分组字段求商到本地新表按钮,前者自动求二表中同名同类型字段为求商字段(Y部分),表1中其余字段为分组字段(X部分)。表1中每组分组字段的值在满足除法条件时取做商的值。因此当使用该按钮求商时可以不选择分组字段与求商字段。但是,当选择了分组与求商字段后,按选择的字段求商。第二个按钮可以处理求商字段(Y部分)字段名相同但类型和其他属性不相同的求商问题,处理时会自动找出二表中(或二表选定的字段中)同名字段,如果发现其中存在字段属性不同,将自动按表1的字段属性修改表2相关字段的属性,再进行求商运算。考虑到还可能有字段名不相同的问题及只取表中部分记录进行运算的问题,提供了修改表1与表2结构的二个按钮,可以临时修改二个表的结构及按条件修改记录数据后再行操作。可以通过选择查询按钮及浏览按钮临时对表进行选择操作,注意如果既要修改字段属性又要选择记录,应先作前一操作,再将结构变换完毕后再作选择操作。以上提到的修改字段名或字段属性、选择记录等均只修改本地临时表,不影响远程表结构,可以借远程视图及一个恢复按钮将本地临时表结构恢复到开始状态。 关系运算部件4求二表差,实际是将第1表中存在而第2表中不存在的记录取出到一个本地新表中,或将第2表中存在而第1表中不存在的记录取出追加到远程第1表中。 关系运算部件5求二表交集,实际是将二表中相同的记录取出到一个本地新表中,可以选择部分字段求交。 关系运算部件2、4、5允许将某些结果传送到远程新表中,传送前需要建立新表。其中对于不同数据库,系统中设计了一个数据类型.dbf表,如果是Oracle、SQL Server、Access之外的数据库,需要选择其上某一种结构,如果皆不合适,可以修改数据类型.dbf表的内容使相适应。 该组部件可以提供数据库关系代数辅助教学工具之用。 6. 数据处理与统计类部件 关于数据表中数据的处理,除了查询与比较规范的报表外,还常有一些涉及数据统计的操作。本系统提供的本系列部件用于数据统计及打印操作。可对数据表中若干列进行求和、求平均、求最大、求最小、求记录条数或分组求和、求平均、求最大、求最小、求记录条数等操作;按某一列或某二列数据分组后求各组统计数据的操作。对统计结果显示打印或形成统计图形输出。调用多表产生的打印格式文件进行打印操作。 具体而言:数据处理部件完成记录横向数据各种处理操作,提供120多种处理程序,包括统计计算、数据预置、批处理、求函数值等。还可以自己添加新的程序,借助选择与投影界面进行数据处理。操作时首先选择记录筛选条件与定义输出要求,再选择输出结果保存位置,选择计算公式或程序,在进行处理并观察结果。用户可以在foxuser1.dbf中添加新程序,其程序名用V打头,就可以将新的处理加入到系统中,可以不断补充,使系统功能日益加强。 统计打印部件1生成交叉表及表现交叉表的柱面图、圆饼图、折线图、金三角图等。操作时,先选择记录筛选条件,不做选择意味全部记录。再选择字段,要求选择三个字段,第一个字段数据决定交叉表的纵向分组,第二个字段数据决定交叉表的横向分组,第三个字段要求为数值类型字段,按纵向分组与横向分组决定其位置(也可以为字符类型,但其中数据必须全为十进制数据)。每一组只取一个数据,如果纵向分组与横向分组数据相同的记录有多个,将只取最后一个列入表中。选择字段后,按统计按钮,将产生交叉统计表;如果按统计图按钮,先显示交叉表,再进入统计图界面,可以用柱面图、圆饼图、折线图、金三角图等表现第二个字段与第三个字段间数据关系,在图的左边列出了第一个字段各大组数据,当选某一组,再选择图形种类,就更换显示该大组的一个统计图。也可以选择全表柱面图、圆饼图、折线图,将显示所有各大组统计图。统计表可以转EXCEL再处理,也允许根据交叉统计表自动生成打印格式文件,并组织打印。 统计打印部件6允许先对每一大组中各组数据求和、求平均值、求最大值、求最小值、求记录条数之后再进行类似与统计打印部件1相同的操作。操作时需要选择统计类型,另外,第三个数据只能是数值类型。 统计打印部件2用来产生一元线性回归图形。操作时同样先选定记录选择条件,不做选择意味全部记录。再选择字段,要求选择二个字段,第一个为纵向字段,对应二维图形的纵坐标,要求必须是数值类型数据,也允许是字符类型数据,但要求其内容全由十进制数据构成,即能通过字符到数值的转换变成数值类型。第二个为横向字段,对应二维图形的横坐标,要求必须是数值类型数据或日期类型数据,也允许是字符类型数据,同样要求其内容全由十进制数据构成,即能通过字符到数值的转换变成数值类型。有些数值数据太大或太小,需要将之乘上10 的负N次方才能比较清楚地得到图形,在选择字段后,可以输入N的值。然后,按显示折线图按钮可以显示折线图;按一元线性回归按钮可以显示原数据点的分布、显示所得到的一元线性回归直线、显示一元线性回归直线方程及方均误差数。如果全是数值类型数据,允许输入横坐标数据,进而计算并显示予测的纵坐标值。 统计打印部件3在已经设计了打印格式文件的情况下,调用打印格式文件,执行打印予览或打印操作。可以将打印内容转文件保存。可以查看与临时修改欲打印的数据。可以进入修改打印格式文件的界面,对格式文件进行修改。 统计打印部件4对数据列进行求小计、分组平均、分组最大、分组最小、分组记录条数、分组方差、分组标准偏差及算术平均值的标准偏差,同时可以计算各相应总计等值。可以一次对多个字段处理。最多可按三个字段数据分组。可以输出明细带小计,也可以只输出小计与总计。可以输出最后一组的小计,也可以输出关于三级分组每组的小计。可以将输出结果转EXCEL或产生一个格式文件后进入打印程序。操作时首先选择分组字段,再选择记录筛选条件,再选择显示字段与统计字段。当用鼠标在表中点某一行时,有关行号会自动列入显示字段与统计字段框中(请注意将不需要的字段删除)。最后选择公式,再按相应按钮就可以完成统计操作。 统计打印部件5同样是对数据列进行求小计、分组平均、分组最大、分组最小、分组记录条数,同时可以计算各相应总计等值。可以一次对多个字段处理。最多可按三个字段数据分组。与统计打印部件4不同之处第1是没加入记录筛选程序,第2是不同统计类可以在一个表内显示。可以将输出结果转EXCEL或产生一个格式文件后进入打印程序或转存另一个数据表中。操作时分别选择分组字段、求和字段、求平均字段、求最大字段、求最小字段、求记录条数字段,之后按相应按钮就可以完成统计操作。 统计打印部件7类似于统计打印部件6,根据横、纵二个字段数据进行多层次分组,分析第三个数值字段数据与它们的关系,得到交叉表。 统计打印部件均具有打印报表功能,其中统计打印部件4与6具有根据模板建立打印格式文件的功能,可以预先设计字典表,表名要求以统计类字典表打头。统计打印部件6要求字段有:字段原数据、新数据二个字段。统计打印部件4要求有:字段原数据、新数据、字段名、类型等4个字段。其中,统计打印部件6的字段原数据一列填原数据表中将转为字段名的分组字段各组的值,新数据填新的对应变化的字段名,长度不超过10个字符。统计打印部件4中字段名中填当前变化的数据的字段名,必须是某个分组字段中的字段名,字段原数据填该字段原数据值,新数据填新的对应变化的数据,类型中填统计类型,例如:小计、平均、最大、最小、记录数、总计、总平均、总最大、总最小、总条数等。采用模板方式使打印格式固定,使类似于财务的损益表的报表可以容易地建立。 7.数据通信与导入导出部件 应用系统常常需要和其他系统、其他程序交换数据,本系列部件完成这项工作,包括从其他文件或数据表中导入数据,或将本系统数据表中数据导出到文件或数据表中。数据传送时,常常需要对多表预先联接、限定数据范围(包括按某条件选择记录及按某条件选择列),某些操作还要求改变数据属性(例如字段名称、数据类型与数据宽度等,有些要求按预先设计的字典表导入或导出)。文件的数据格式常见的有SDF、DELIMITED、EXCEL、HTML与自定义格式。 SDF 文件是一种 ASCII 文本文件,记录有固定长度(根据所定义的数据表格式),并且以回车和换行符结尾,各字段不分隔开。文件的默认扩展名为 .TXT。 DELIMITED文件是 ASCII 文本文件,文件中每条记录以回车和换行符结尾。各字段内容默认地由逗号分开,字符字段值还需要用引号括上。例如:Smith, 9999999, TELEPHONE。 自定义格式也是 ASCII 文本文件,文件中每条记录以回车和换行符结尾。各记录起始符与结束符及各字段内容分隔符可以由用户指定。 数据导入时常有:添加方式(原有记录保持不变,再增加导入的记录)、复盖方式(原有记录删除后增加导入的记录)与替换方式(根据关键字相同的条件用导入数据去修改原表数据)。 数据传送部件1实现从EXCEL文件导入数据,处理时要求先将原EXCEL文件中数据转到记事本中再导入,当数据类型较多时,这是一种可靠的方法。 数据传送部件2实现从一个数据表或视图中取出数据再导入到另外一表中,要区分传送的是否包括备注类型字段数据。字段名与数据类型如果一致,可以简单地实现导入,否则要先设计好字典表,再利用字典表完成逻辑异构数据的导入。操作时先选择源数据表与目的数据表,再定义字段的对应关系(字段名相同的可以按查相同字段名字段按钮自动列入)。再规定记录筛选条件,选择导入方式(添加方式、复盖方式与替换方式),再按相应按钮实现导入。 数据传送部件3从TXT文件或EXCEL文件导入数据,TXT文件格式可以为SDF、DELIMITED、或自定义格式。首先选择TXT或EXCEL文件名及目的文件名,再选择对应字段名称,选择导入方式,如果是自定义格式,要输入记录开始符、结束符与字段间分隔符,然后按相应按钮实现导入。如果从EXCEL文件导入,要求EXCEL文件为EXCEL95格式,而且最好全是字符类型数据(如果有非字符类型数据,常需要先按字符类型导入后再变换)。 数据传送部件4实现将当前系统中数据导出到另一个数据表中。可以按原结构导出,也可以改变字段名后导出,还可以改变数据类型与属性后导出。 数据传送部件5将当前系统中数据导出到文件中,文件类型包括TXT结构的SDF、DELIMITED、HTML与自定义格式及生成EXCEL文件。可以规定导出记录筛选条件。 数据传送部件6实现将当前系统中一到多个表联接数据导出到另一个数据表中。可以按原结构导出,也可以通过一个字典表改变字段名后导出,还可以改变数据类型与属性后导出。程序中提供关于字典表维护的方便。 数据传送部件7将当前系统中一到多个表联接数据导出到文件中,文件类型包括TXT结构的SDF、DELIMITED、HTML与自定义格式及生成EXCEL文件。可以规定导出记录筛选条件。 8.打印格式文件生成辅助工具 开发工具类部件提供打印格式文件生成程序,用于生成各种格式的打印报表的格式文件,其特点是提供了修改元素位置参数、通过数字调整生成界面与通过可视化环境手工修改界面等二种格式生成方式。功能包括:自动生成供生成打印格式文件的打印格式数据表、修改打印格式数据表、生成打印格式文件、进入可视化格式文件修改界面、重生成打印格式文件,多表组合查询与按格式打印等。 单记录式报表部件名为工具类部件6。 有三种格式:1、打印表每页一条记录,所有字段分为若干列,格式例如: 学号 20001220姓名王平性别男 出生日期1980/03/23班级200001电话88120302 操作时先输入标题、选字体字号,选输出的字段名,再定列数,列数以字段(标签加字段值)为单位。例如上例中列数为三。选完后按不加线条《生成表格式格式》按钮或加线条《生成表格式格式》按钮。按后要求选:打印一页或打印所有记录,但每次只打印一条记录,再下面会告知一个打印页的宽度,并显示当前各列的宽度。可以在表中修改各列宽度。最后产生打印用格式文件,该文件名为所定打印格式文件名加扩展名frx。在资源管理器的文件目录树中双击该文件名,可以进入格式文件修改程序。用户可以对初步成型的打印格式文件进一步修改,再正式加入到系统中。 2、生成整齐但不规范的表,每行总宽度相同,但列数不相同。操作时无需定列数,直接按生成非规则格式按钮就可以生成。 3、生成自定义单记录打印格式文件,每行总宽度与列数都由用户修改确定。选择相应按钮后将列出当前每一行每一列宽度,用户可以修改,然后生成。 自动生成打印格式初步格式数据表文件,该文件将有关字段及其位置简单分布在格式文件中以备修改。其内容包括:1、行号:每一个控件在打印格式文件中排在第几行。2、列号:每一个控件在打印格式文件中排在某行内第几列。3、左边距:该控件距离打印区左边的距离,以英寸为单位,1英寸等于2.52厘米,在打印格式文件生成器中标尺的单位为英寸。4、到顶距离:该控件距离打印区顶部的距离。5、长度或宽度:该控件的宽度,对于线条指线的长度。6、高度:该控件的高度。7、字号:字的大小,对于线条指线的宽度。8、上下有线条:填有或无,说明该控件上下是否加线条。9、横线纵线:对于线条用于表示其方向。10、内容:对于标签,填标签的内容;对字段变量或内存变量填变量的名字。11、所在带区:填该控件排布的位置在那一带区。A、标题带区每页打印一次;B、细节带区每条记录打印一次;C、注脚各带区在有分组情况下每组打印一次;D、总结带区全表完时打印一次。12、公式:A、对于标签,保持为空;B、对字段变量或内存变量填变量的名字,也可以填由字段或常量构成的表达式。 通常以上生成的界面都很不令人满意,可以先手工将过宽的元素宽度人为地减少。程序将自动按设定宽度决定宽度,注意在修改每列宽度时兼顾全列、全行的宽度。 表格式报表格式文件生成部件部件名为工具类部件5。 功能是根据输出的字段的要求生成表格式的报表格式文件,提供三种格式:1、明细表格:每条记录占据一行,打印满足组合查询条件的全部记录。(如果未定查询条件,将打印表中的全部记录)2、包括明细,并对部分字段总计的表格式报表,作总计的字段允许是内容由数字字符构成的字符类型数据。操作时必须选择作总计的字段并利用加入求总计字段按钮加到文本框中。3、包括明细,并对部分字段求小计或总计的表格式报表,作小计或总计的字段允许是内容由数字字符构成的字符类型数据。操作时必须选择作小计与总计的字段并利用加入求小计字段、加入求总计字段按钮加到文本框中。还必须选择分组统计的字段(最多三个,彼此用英文逗号分隔)。 例如:先在接口参数输入表单中利用打开查找并选定主表名(例:生源)、从表名(例:成绩)、代码登记表按默认值不变、从键盘输入打印格式文件名(例:AAA1),按退出或回车。 选按菜单项生成表格形式格式文件,对于问题是否生成新格式表回答是。(注:默认描述打印格式的数据表文件名是打印格式文件名加表,本例是AAA1表。如果对已有表修改,按否)。 先设计并预设标题及字体、字号。 选输出字段(例:姓名,院校名称、学号、课名、分数)、分组字段(例:姓名)、小计字段(例:分数)、总计字段(例:分数)。按 明细、小计与总计按钮就可以生成格式文件。 标签式报表生成部件部件名为工具类部件7。 根据输出的字段的要求生成标签式的报表格式文件,提供三种方式:1、一个单记录表格形式的表重复多次:先建立一个单记录表格,再复制成多个表格,这些表格中的数据可以是数据表中同样一组数据,也可以分别来自不同记录的数据。2、、一个单记录非规则格式的表重复多次:先建立一个单记录非规则格式的表,再复制成多个表,这些表中的数据可以是数据表中同样一组数据,也可以分别来自不同记录的数据。3、与2类似,但进行中会显示有关字段的位置,允许先修改后再建立标签。 操作时先选择字段,如果是表格形式,要输入每一小块的列数;如果是非规则格式,要输入一小块的宽度。然后,输入一行有多少块以及纵向一列又分多少块(构成多少块的行)。再输入行内块间距离与纵向块行之间距离。再按生成一块的按钮(有三个按钮,分别产生表格式、非规则式与可调整式单块结构)。如果需要,再按加线条的按钮。最后,如果生成不同块数据相同的标签,就按同条记录重复标签按钮,否则,按不同记录标签按钮。 9.其他工具类部件 目录树帮助系统生成部件用于生成目录树控制的有语音、图形的帮助程序的数据表,也可以用于设计音、像盒、名片、产品广告、企业介绍等。 以目录树结构形式显示帮助生成时输入的内容。本部件名为工具类部件18。 本程序默认的数据表名是目录树帮助表,如果要用其他表名,要求结构必须一致(通过复制本库提供的目录树帮助表得到),同时在调用时要写明表的名字(如果不改变表名,可以保持变量数据表名称为空格)。 使用时首先进入最小系统,运行开发工具中目录树帮助生成,建立帮助文件。操作时,如果要增加节点(不论是根节点还是枝与叶节点),先在新节点名中输入一个标签内容,如果是根节点,按建第一级节点按钮,就可以见到增加了一个根节点;如果不是根节点,是挂在某一节点个子之下的节点,就用鼠标去点这一节点,将发现该节点下新增加了一个子节点。如果要在某节点下填入帮助内容,先清干净新节点名中的内容,再点该节点,之后在右边填入帮助内容就可以了。每一个节点可以有一个文本与最多二个画面(可以专有文本或专有画面),画面中可以填画片、WORD文件、EXCEL文件与WAV声音文件。 调用帮助类部件2.EXE可以显示帮助内容。 目录树控制部件可用于工作流系统。目录树形式的菜单具有纵向分布、层次鲜明,信息量大等特点,现在越来越受欢迎。本部件用于建立目录树形式的菜单。本程序部件名为工具类部件19。默认的数据表名是目录树菜单表,如果要用其他表名,要求结构必须一致(通过复制本库提供的目录树菜单表得到),同时在调用时要写明表的名字(如果不改变表名,可以保持变量数据表名称为空格)。 使用时首先进入最小系统,运行开发工具中目录树菜单生成,建立菜单文件。操作时,与目录树帮助一样,先建立目录结构,如果要增加节点(不论是根节点还是枝与叶节点),先在新节点名中输入一个标签内容,如果是根节点,按建第一级节点按钮,就可以见到增加了一个根节点;如果不是根节点,是挂在某一节点个子之下的节点,就用鼠标去点这一节点,将发现该节点下新增加了一个子节点。如果要在某节点下填入执行程序的内容,先清干净新节点名中的内容,再点该节点,之后在右边填入程序语句内容就可以了,如果需要,还可以给定安全控制的条件。 执行系统控制类部件2可以调用该目录树菜单,控制与驱动程序工作。 为了加强系统性能,更充分发挥本系列部件的作用,许多要通过预设参数实现。本系统提供了对接口参数表1中数据维护操作的部件。 工具类部件10用于登记注册代码表。在维护程序、查询程序、数据导出程序、统计程序中如果要使用代码表,除要建立代码表外,还要进行登记才能使用。这样做的目的是希望应用更灵活。登记时要写名代码表名字、代码字段名字、内容字段名字,及准备填入(对于维护程序而言)的字段的名字。目前我们规定,这一名字(数据表中某一个字段名)要和代码表中一个字段同名。 工具类部件11用于填写数据域完整性约束条件(对于维护程序而言),可以填最大值、最小值、值集及条件表达式。 工具类部件12用于填写计算派生数据的公式(对于维护程序而言)。使当焦点离开某字段时,自动计算派生数据的值,并填入数据表中。 工具类部件13用于填写安全性约束条件(对于维护程序而言),先输入用户们注册名(相同约束的用户填到同一个框中),再输入安全性规定,可以规定某些字段对他们隐蔽,也可以用i,u,d分别表示录入许可、修改许可与删除许可。如果每填某用户的约束,则不约束其任何操作。 工具类部件14用于定义单记录维护界面中字段的外观属性,包括高、宽、距窗口左边距离、距窗口顶部距离、字号、字体。在数据维护部件1与2中全部可以起作用,在其他单记录维护部件中,只有备注与通用字段的大小设定可以起作用。注意,在定义高度时,目前程序是按行数为单位计算的,例如高5字,实际是5行,越8个字高。请在设置时进行总结调整。 工具类部件15提供对接口参数表1中全部数据的维护。 10.系统管理与维护类部件 工具类部件2提供建立新数据表功能。 工具类部件3提供修改数据表结构功能。 工具类部件4提供建立字典表功能。 工具类部件8提供建立远程数据表功能。该部件可以用于SQL语言辅助教学。 工具类部件9提供对远程表结构维护的功能。该部件可以用于SQL语言辅助教学。 以上二部件的工作需要数据类型.dbf表中数据的支持,如果是Oracle、SQL Server、Access2003之外的数据库,需要选择其上某一种结构,如果皆不合适,可以修改数据类型.dbf表的内容使相适应。 系统管理部件1为用户密码修改程序。 系统管理部件2为公用的代码表维护程序,对在接口参数表1中所给定序号组中登记了的代码表进行数据维护操作。 系统管理部件3为公用的清库程序,清库包括清空数据表或清空表的部分字段二种操作。 系统管理部件4为公用的排序程序。 结束语 本套部件库中的部件只是一个尝试,其全部完成与成熟还需要软件复用技术的爱好者及广大科技人员的共同努力。我们愿和大家一起共同为管理信息系统部件技术的发展而继续努力。 本系统由程学先、程传庆、程传慧研制。本系统的研制得到龚晓明、王富强、陈义、郑秋华、史涵、周金松、叶品菊、曾玲、陈永辉、杨晓艳、刘伟、冯昭昭、王嘉、赵岚、童亚拉、张军、刘玲玲、赵普、张继等的支持与帮助;得到湖北工业大学、武汉大学东湖分校的关心、支持与帮助;还得到许多专家支持与鼓励,特在此一并表示感谢。 需要本软件的同行可以函寄湖北省武汉市江夏区武汉大学东湖分校计科学院程学先,邮编430212,信中说明收邮件的Email地址,我们见信即发。关于这套部件的意见可以在我们在科学网上的博客中刊登,欢迎光临并发表宝贵意见!博客本主题地址: http://www.sciencetimes.com.cn/m/user_content.aspx?id=3853
个人分类: 生活点滴|8060 次阅读|1 个评论
软部件技术为什么成为独家技术
求新 2009-6-27 00:22
原载《管理观察》 1 通用软部件技术现状 我们提的通用软部件指: 应用系统中由构件组成的能独立完成一项工作的具有自适应与即插即用特性的通用程序模块。它是经封装的、 面向包括多个功能的业务工作,而不是简单单一功能的 系统级模块 ;部件之间不存在直接联系、不要求彼此间的协作、包括了界面设计方面的内容、直接依据接口参数调用、不存在动态接口, 能 通用于不同应用系统,通用于同类操作系统的多个不同数据库系统,能自动适应不同数据库结构的应用需求,在应用于现场时可以如同硬件生产一样 不加修改地 即插即用或经简单裁剪后插入使用(一般不需要编写或修改代码);即使应用需求改变,也同样只需要修改参数就能自动适应,甚至可以不需要再编译。它采用从上而下设计方法进行研制,是规范化、标准化的代码类软件。其目标是摸索软件生产工业化之路,希望成为软件生产分工的可操作的平台。 从 2000 年起在长达 9 年的时间里,我们就软部件技术进行了持久的研究,一个方向是基于 VFP 的软部件,已经能帮助我们在极短时间内完成一个具有一定功能,性能不错的管理信息系统。另一个方向是基于 JAVA 的软部件的研究,也取得进展,证明了软部件技术可以用于 JAVA 及其他语言中,具有普遍意义。现有研究证明,该技术具有促进软件发展的重要意义。目前,有一些公司,还有一些影响面很广的软件宣称采用部件进行开发,例如 Microsoft Visual Basic ( VB )就宣布支持部件对象模型 , 宣称 可以不写一行 SQL语句就建立一个系统, 但是和我们说的通用软部件不是一回事,它只是翻译用语,是对象、构件的统称,利用它提供的工具,可以在可视化的环境下使用数据库。几年前,曾出现数据王、数据通之类的软件,可以只通过参数设定、在可视化环境中建立应用系统,使用十分方便,但它们满足于建一个桌面系统,不打算穷究所有管理信息系统的界面、功能与性能的需求,也就谈不上软件生产工业化的问题。近 5 年以来,还有不少公司宣称设计出了许多具有通用性、高适应性的软构件,在构建系统或由于需求改变而修改系统时,可以不修改这些构件中的代码,只通过修改参数就能完成任务。这些构件的特性和我们提到的软部件在最基本功能上具有相似性,但是还没有一个公司宣布完成了关于这样的构件的成系列的研究,没人能说,将来的一个系统可以只由具有这样功能与性能的构件所构成。许多关于构件的研究都不强调包含界面内容,那么在应用时必须另外作界面的设计,就不可能成为具有即插即用特性的独立模块,也与软件分工生产的期望无缘。还有许多科研人员正在从事软部件技术的研究,但从理论侧面探讨的多,成系列的研究与设计的报道还未见到,公开发布通用软部件设计成果的还只此一家。 2 通用软部件技术意义 通用软部件技术是具有极大意义的技术。一个熟练的程序员设计一个中等规模的管理系统完成时间要以天计;而刚从学校毕业的大学生完成时间要以月计;但利用部件构建需要的时间只以分钟计。从发展生产力的角度看,该技术可以提高效率数十到数百倍。由于软件适应性极大提高,一旦需求变更,往往不需要修改系统,或只要简单重新配置参数就能满足需要,不会影响正常的业务工作,也大大降低维护费用,设计效率的提高与维护费用的降低有可能大大降低软件成本,该技术具有强经济效益。部件制作的规范化、标准化有利于软件质量的提高;它将使应用系统建设与维护难度下降,有利于计算机应用向更普及与更深入方向发展。该技术将软件生产划分为部件设计与系统组装及维护等二个层次,对促进实现软件生产工业化具有推进意义。 也许有专家说我们太言过其实,太过夸张,认为我们做的不过是管理系统最基本的一些界面,而且大多数部件都是基于 VFP 的,没有什么意义。确实,我们的研究只能算是接触这个技术,连起步都未必谈得上,但研究的成果至少在数据库与管理信息系统课程教学上已经可以起到加强的作用,更希望的是大家能关注这么一个方向,一个大家都期盼的前景。计算机界 30 多年前就提出了软件生产工业化的问题,但是该目标一直未能实现,主要是实现生产分工这一生产工业化的重要特征难以达到。因为软件实在太多太复杂了,变化万千,简直无法想象如何才能找到直接构建应用系统的基本单元。但我们认为,这个目标的遥远,是因为我们没有极大地去强调所有软件在设计时都必须考虑即插即用、极大范围的通用、规范化与标准化等这样一些基本要求,如果能大量生产我们前面所定义的通用软部件,能使所有应用系统全都用软部件构成,软件生产分工的时代将不那么遥远。应当要求:所有软件在设计时都要考虑通用软部件的标准,使得一个软件能尽可能多地应用到不同系统中,能直接依据接口参数调用,能做到即插即用,不仅能提高软件开发效率、降低软件成本、提高软件质量,且对推进计算机应用具有意义。 看过我们演示或使用过我们的部件库系统的人都认为我们所提的软部件技术是有道理的,是很有意义的。但是,如此重要的项目为什么发展如此缓慢,到如今还未被广泛认同呢?关键是国家科技部门对之缺少认识,支持不够。进入到当前时代,一个具有重大意义的项目只靠一二个人绝对是无法完成的,只有一些人各自独立地进行研究,要想做出什么有较大影响的事情,是十分困难的。本课题由于得不到国家科技部门的认同与支持,长期只能处在各自独立作战的状态,也就只能举步维艰了。 3 通用软部件技术的发展期盼国家科技部门的支持 我们从 2003 年起开始为本课题申请国家自然基金及多种科研基金的支持。 2003 年我们曾向一位国家自然基金委官员演示了用我们已具有一定规模的部件系统构建系统的过程,说明了我们的想法,该官员非常感兴趣,也认为这确实是一个很有意义、很有前景的项目,之后在长达 5 年的时间里,他一直关心该项目,帮助我们修改申请书,对我们的研究给出许多很有价值的意见。 05 年,他还介绍了另一位更高职务、更具有针对性的官员与我们认识,同样在之后一直给予我们以支持与帮助。但,可惜的是,所有努力都没有结果,我们所有向国家部一级的申请全部失败,所有申请都被专家们否定。 2005 年在湖北省教育厅组织的关于本项目的鉴定会上,我们向到会专家与教育厅科技处领导演示了我们基于 JAVA 与 PB 的软部件的应用情况,获得到会专家一致好评,他们在会上多次向教育厅科技处领导提出,本项目意义极大,希望能加大投入,支持发展。但以后我们面临的仍然是一次次申报,一次次失败。今年,中国科协支助地方的发展,向地方科协征集 学术交流资助项目,项目为地方科协所有,项目负责人也要换成地方科协的人员。尽管如此, 我们还是申报,请求向武汉科协支助 12 万元,我们私人出资 3 万元,帮助武汉科协建设一个网站,只希望允许我们在上面公开软部件技术,促使该技术的发展。中国科协对此十分关心,在申报截止后半个多月时间里,向武汉科协了解本项目,要求他们呈报书面申请。他们还直接与我们联系,要求我们加强与武汉科协的沟通。但该项目最终被武汉科协一位付部长所否定,他们压住本项目不予申报。 目前,我们已经向上百的老师或专家进行过介绍和讨论,还三次发布光盘,接触或使用我们的软部件模型的数以千计。一直未收到任何反面意见,所有意见都认为该系统好用,具有发展必要性。我们也曾向国外朋友介绍本技术,他们普遍对该技术感兴趣。 历经数年,对本项目投反对票的专家大概够一个连了,但我们一直未见那位专家给予我们以专业方面的帮助与建议。国家自然基金委倒是每年给予反馈意见的,归纳国家基金委专家们的反馈意见,基本有三点,一是怀疑本项目成功的可能性。二是认为申请书写的有问题,例如目标不够清晰等等。三是认为这项目不是理论问题,而是技术问题。所有专家都未给出具有专家水平的批评与建议,没有人告诉我们该项目国内外什么地方有或没有、该技术那些地方可行或不可行、所提方案那些地方是错误的或是片面的、那些工作是应当做但没有做的或是没有意义的等。 通用软部件技术不含理论问题吗?我们认为,所谓理论,是指来自对实践的归纳与总结同时又能反过来指导实践的规律与方法。理论的研究过程实际是研究怎样忽略次要因素,突出代表性的特征,使之具有指导性,并具有高的覆盖性。对于那些指导面大,对一个领域甚至行业的发展具有意义的理论是基础理论。 软件的发展一直伴随软件复用技术的发展。高级语言实现了用接近自然语言的语言代表机器语言来书写代码,且包含了循环、子程序、过程、函数、宏等具有复用性的代码。这是软件发展的最初阶段。软件工程理论总结了软件设计的一般阶段与步骤,强调阶段性、模块性。面向对象技术提出了类与对象,复用内容不再只是一段代码,为了更广泛的复用性,使能复用于更多种各不相同的场合,开始考虑将代码与环境、与界面相联系,复用内容是许多代码段与各种配置用的属性。这一理论极大促进了软件的发展,对象理论渗透到计算机应用的许多领域。这以后,出现了构件理论,初始目标是希望实现软件生产工业化。但是十多年过去了,这一目标并没有实现,目前设计软件并没有变得简单,设计难度没有降低,软件生产成本有增未降,形势更让人琢磨不透。 原因是构件定义太过宽松,甚至可以说没有一个严格的定义,也就没有一个能实施的一种或几种严格的方法。没人告诉我们,只要按那几个步骤操作,解决那几个问题,遵照什么方法或什么准则,就能设计出一个构件。特别是,它没有强调高复用性与即插即用特性,也就偏离了向软件生产工业化的最终目标。从技术侧面来谈,它没有注意软件发展的总的规律,从函数到对象,可复用软件的根本进步实际是它开始考虑环境与界面问题,也只有考虑环境与界面问题才能真正提高软件的可复用性,才能用到几乎所有地方。而构件恰恰忽视了环境与界面问题,这是一个致命的疏忽。不考虑环境与界面问题,就很难实现即插即用特性,也就偏离了程序设计理论发展的方向。因此,我们认为,严格地说,构件理论是不能和面向对象相提并论的,它不能成为面向对象理论之后软件的下一个重大理论阶段。而部件设计则强调联系实际应用系统的界面需求,联系环境,基于对数据库的基本操作展开设计,要求考虑代码运用、安全性、数据完整性、派生数据、图形与文本、处理效率、并发操作等性能,特别是要求实现即插即用。界面是千变万化的,如果要对于它的所有变化都各用一个设计去满足,那就不成为理论了,也就没有指导意义了,部件技术的核心是如何对无穷变化的界面总结出其变化特征,使得用少量的模型覆盖尽可能多的需求。我们研究软部件系统,综合了大量界面的特点,提出针对有限的对数据库的操作考虑界面的变化,并根据大量构成实际系统的模块总结了它们的功能、性能与界面特点,综合浓缩为有限的部件界面。虽然由于我们的人手太少,总结的部件数量还少,有些可能没有考虑到,有些虽有考虑但还没有实际产品问世,但是目前已有的百余个部件已经可以实现数以万计的变化,它从一个侧面给出了解决该问题的一个可行方法,表现出软部件的设计是可以做到有章可循的,完全可以总结出具有指导意义、具有收敛性的设计规律与设计方法。因此我们认为,软部件是技术,也包含具有深远意义的理论,而且涉及基础理论。 在我们年轻的时候,经常听到批评外行领导内行的呼声。在那个时代,一方面用革命性的手段发展经济,也确实促进了生产的发展,当时的许多项目都成为后来发展的基础。在基础落后、文化贫乏的大环境下,对发展生产力起到巨大推动作用。但,不可否认,许多瞎指挥都造成了巨大的浪费,代价是昂贵的。目前虽说已经在进入知识化的时代,官员们需要实现知识化,想方设法提高学历层次;一些知识分子被提拔,进入行政岗位;许多决策由专家作出等等。这些确实是进步,它为决策科学化创造了条件。但是,并不是就没有问题了。任何人所具有的知识都是有限的,专家的字面意思是专一方向的行家,按这一意思理解,就不存在所有方面都是行家的专家。因此,实际进行决策的专家可能并不是所决策问题的真正内行。尤其是对于那些在国内外算得上是创新的问题,相对于已经进行了大量前期工作与初始研究的课题提出者,其他所谓专家也都是外行。通过专家集体决策,从某种意义而言,是希望扼制腐败。但一种矛盾掩盖了另一种矛盾,这样的决策机制使得决策没有了责任人,当出现决策错误时,无法问责。专家都来自基层,无法掌控宏观全局,加上他们与同行的千丝万缕的联系,难以承受种种关系的巨大压力。他们无行政权力与责任,也就无法避免其他形式的腐败,甚至不排除腐败面扩大的问题。这样的体制有进一步发展改进的必要。我们认为,决策应当由行政决定,行政官员的职责就包括进行决策。但决策过程要民主,要充分听取各方面意见,尤其是专家们的意见。专家们的任务是提供分析、提供材料、提供意见,是对欲决策问题进行多方探讨,提出正反各种不同分析与建议,促使决策减少错误。要定性与定量地说明一个项目先进性程度、与其他项目比较的可行性、可能的经济效益与社会效益或对推进专业发展与技术进步的理论价值(这里说的定量不只是在已经设计好的什么经济效益大等类框中打勾或打圈,而是要给出相对具体的数字,并进行深入的描述),最好不要把投票作为专家们的主要职责。 4 结束语 当前关于部件技术,急盼解决的课题是:( 1 )将软件生产工业化问题提上议事日程,在 软件评价时提高自适应性、通用性、扩展性、标准化等标准的权重。( 2)按管理信息系统、通信、游戏、检测与控制等不同领域分别探索与研究通用部件实现的可能性,总结通用软部件的结构、功能、性能与界面特点,制定部件的规范与标准。 ( 3 ) 总结通用软部件的形式化表示方法。( 4)研究基于通用软部件的系统建模内容及与实现相关的语义表示方法。(5)研究通用软部件程序代码自动生成的关键问题及解决办法。(6)进一步总结各类应用系统的程序模块,分析其功能、性能与界面特点,设计出更多通用软部件,建设面向社会的能满足实际应用需要的通用软部件库。 目前党与政府都在强调科学发展观,科学发展观的根本点一是以人为本,一是强调发展。以人为本既要体现执政为民,还要强调充分发挥人的作用,调动一切积极因素,不放过任何可能导致发展的机会与可能。强调发展就是要注意加快发展生产力,特别重视科技对生产力的推进作用。那么,我们的科技部门能否有这样的人员,负责收集与推荐一些民间有关科技的建议,对于可能有前景的项目给予专门的论证与讨论,特别给予他们讨论与发言的权利,使得一些好的项目有可能脱颖而出,给科技创新更大发展空间呢? 附件1:我们2003年国家自然基金申请书概要 附件2:2003年国家自然基金委反馈意见 附件3:2005年湖北省教育厅关于部件技术鉴定意见 2003年国家自然基金申请书
个人分类: 生活点滴|3701 次阅读|4 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-16 19:08

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部