
iModel开发
wsimei
关注软件产业发展动态和方向,喜欢软件产品研发。
展开
-
关于右键菜单模型设计
<br /> <br />系统中的界面模型中已包括控件定义和菜单定义,在新增一个界面时指定界面表现的实体,界面的名称,然后指定界面继承的基界面,就可以自动生成一个界面模型定义,且可以直接运行看到界面,默认情况下包括了实体中各个表的窗体界面edits和列表界面grids,还有一个功能界面,每个界面都是由若干控件构成,控件是自动根据实体中的表的字段定义生成,且已自动绑定数据源,这样界面打开的时候就是几个表就有表个数*2个选项卡,因为每个表都会自动生成一个gird界面与一个edids界面,每个选项卡内都有控件,当原创 2010-10-28 22:32:00 · 837 阅读 · 0 评论 -
iModel框架基本模型类介绍之MDTable
业务对象模型类MDTable该类的常用方法如下:RecEventContext CurrentRecord(bool needExist)该方法取得该对象的当前记录。原创 2011-09-02 22:44:31 · 640 阅读 · 0 评论 -
iModel框架基本模型类介绍之MDEntityClient
客户端实体类MDEntityClient该类是iModel框架的客户端实体类,完成客户端实体的管理。该类的常见方法如下:void AcceptChanges提交自上次调用 AcceptChanges 以来对该实体的实体对象进行的所有更改。备注调原创 2011-09-02 22:31:02 · 525 阅读 · 0 评论 -
iModel插件介绍之FormOpenForFunc
FormOpenForFunc插件主要功能是根据指定界面而打开该界面。参数如下:Condition 打开界面的条件,默认为常量true,如果需要指定一个动态条件,则可以在该参数中写入条件代码,返回true为执行打开界面,返回false为不打开界面。Fo原创 2011-08-27 10:29:16 · 506 阅读 · 0 评论 -
iModel Studio开发与调试环境配置
iModel Studio开发和调试环境配置 iModel Studio分为运行环境和开发环境,运行环境在安装和配置好iModel studio后就可以直接启动iModel服务管理器后,使用iModel客户端连接到服务端来运行iModel模原创 2011-08-10 13:00:09 · 759 阅读 · 0 评论 -
iModel插件介绍之QueryPlugin
简单查询插件Queryplugin该插件可以实现业务对象数据的查询和过滤功能该插件配置在实体功能上。插件参数:ConditionTableName查询条件业务对象,可以从已定义业务对象中选择。QueryExpresstion自定义查询条件表原创 2011-09-21 14:21:44 · 980 阅读 · 1 评论 -
iModel中同表引用的Sql计算表达式书写格式
在iModel中可能会在同一个表中引用自身,而会出现相同的字段,这种情况下如果要用到Sql表达式,则可以使用下面的SubTotal是想计算本业务对象中的unitprice与quatity之积,如果直接在常数Sql表达式中写unitprice*quatity则会提示“模棱二原创 2011-08-27 09:41:15 · 596 阅读 · 0 评论 -
iModel接口介绍之ISupportSelect
iModel接口简绍之ISupportSelectISupportSelect接口包含支持选择类型窗口及业务对象必需的属性支持,属性如下:IsSelect该属性是一个Bool类型的前台计算属性,其作用就是在界面中对应一个复选按钮,使得用户可以点击该按按钮来确定是否原创 2011-08-27 11:12:04 · 627 阅读 · 0 评论 -
iModel插件介绍之FieldFromParent
子对象自动从主对象属性赋值FieldFromParent该插件可以将一个实体中的主对象属性值在实体数据保存时自动赋值给子对象属性,该插件的常见应用场景是在主子关系的实体中子对象中冗余部分主对象的属性情况下,可以用该插件自动将这些冗余属性在存盘时自动从主对象赋值。该插件可配原创 2011-08-27 16:11:40 · 705 阅读 · 0 评论 -
iModel插件介绍之Func_SQL_Executor
sql脚本执行插件Func_SQL_Executor该插件可以在服务端向数据库提交执行一系列Sql语句。该插件配置在实体功能上。插件的参数如下:SqlExpr执行的Sql语句,也可以用Exec ,方式来执行一个存储过程。比如:exec TradeBill原创 2011-08-27 18:30:17 · 614 阅读 · 0 评论 -
iModel插件介绍之DataEditChecker_ForTable
业务对象修改检查插件DataEditChecker_ForTable该插件根据条件检查业务对象是否需要限制修改,常见应用场景是单据在审核后就不允许编辑。该插件配置在实体对象或业务对象上。插件参数如下:CheckExpr检查的条件表达式,返回true则检查,原创 2011-08-27 21:33:32 · 481 阅读 · 0 评论 -
iModel插件介绍之TableAmtSumPlugin
子对象金额汇总到主对象TableAmtSumPlugin该插件可自动将一个有主子关系的实体中的子对象某属性自动加总然后赋值给主表某属性,比如订单主对象有一个金额合计属性Amount,订单子对象有一个小计属性,现在要在该订单对象保存时自动汇总子对象中的小计然后赋值给主对象的合计原创 2011-08-27 15:38:21 · 522 阅读 · 0 评论 -
iModel插件介绍之DupChecker_ForTable
业务对象属性重复性检查插件DupChecker_ForTable该插件完成业务对象中重复性记录的检查。例如:如”cus_ID 不为空 就必须唯一“这样的检查。该插件配置在实体对象上。插件参数如下:Fields数组类型参数,检查的对象属性。原创 2011-08-27 16:27:13 · 463 阅读 · 0 评论 -
iModel插件介绍之DetailRequirePlugIn
子表记录不为空插件DetailRequirePlugIn该插件检查一个实体在提交保存数据时其子对象不能为空记录,常见的应用场景是单据保存时检查单据中的明细是否输入。该插件配置在实体子对象上。插件参数如下:DetailTableName要检查的实体子对象。原创 2011-08-27 21:15:45 · 914 阅读 · 0 评论 -
iModel插件介绍之Assignor_ForField
前台赋值插件Assignor_ForField该插件完成的功能是根据触发条件而对一个业务对象属性自动赋值,常见应用场景就是自动计算类属性根据其他属性值计算而自动赋值。该插件配置在要赋值的业务对象属性上。该插件的参数如下:Condition赋值条件,返回原创 2011-08-27 15:18:38 · 604 阅读 · 0 评论 -
iModel插件介绍之Func_Executor_Client
客户端功能执行检查插件Func_Executor_Client该插件完成实体功能客户端的执行前检查,提示。该插件配置在实体功能上。插件参数如下:RunExpr执行表达式是一个根据Func 参数计算出来的表达式如果返回值是true,表示检查, 需要提原创 2011-08-27 17:42:30 · 536 阅读 · 0 评论 -
iModel插年介绍之TableRelationControl
业务对象关系控制插件TableRelationControl该插件可以控制主子对象关系,一般应用场景是通过主对象过滤子对象数据,但又不想使用实体的主子关系控制,比如在一个订单选择界面,其中只想选择订单子对象中的数据,主对象只是为了过滤功能,则可以考虑使用该插件。该插件可配原创 2011-08-27 18:48:42 · 444 阅读 · 0 评论 -
iModel中二个窗口界面同时共享一个实体数据的方法
iModel中二个窗口界面同时共享一个实体数据的方法在iModel中可以在一个窗口启动后,再启动另一个窗口来显示同一个实体数据的另一部分,一个示例界面如下:点击详细后会如下弹出一个浮动窗口,显示明细数据。后面的窗体是一个子窗口风格,旁边的对话框小窗口是原创 2011-08-28 13:57:53 · 768 阅读 · 0 评论 -
iModel插件介绍之Validator_ClientField
客户端属性验证插件Validator_ClientField该插件可以在客户端界面输入时验证属性数据输入是否合乎规则。该插件配置在需要验证的业务对象属性上。插件参数如下:Condition验证的前提条件,表示是否需要验证,返回true表示需要验证,fals原创 2011-09-01 19:48:06 · 510 阅读 · 0 评论 -
iModel平台模型的三套马车(业务对象,实体,界面)
iModel平台的三大模型就是业务对象,实体,界面,其关系如下图:1,业务对象模型: 业务对象模型就是ORM(对象关系映射)模型,该模型定义了数据的存储结构(二维关系表)和应用结构(对象)的映射关系,通过业务对象模型使对关系数据的存取和操作更加容易和原创 2011-07-06 10:26:55 · 1939 阅读 · 1 评论 -
iModel中的mvc模式设计
<br />我刚进公司时,看到的版本是只有实体层而没有界面层,因为界面是通过实体中表的定义在运行过程自动生成的,这样的问题就是表现层太弱,一个实体只能由一个界面表现,不灵活,后来的设计是把界面层分开,界面是可以单独定义的,一个实体可以定义几种不同的表现形式,比如模型工具一般就是由一个分类和列表组成的XXX_List分类列表界面,一个列表与一个Edits组成的XXX_Edits编辑界面(后来Edits换成了属性编辑器),一个由列表与查询框组成的XXX_Help查询选择界面,这样可以从分类列表界面中进行对比编辑原创 2010-10-28 22:56:00 · 538 阅读 · 0 评论 -
关于查询与过滤
现在的界面结构是菜单上有查询功能项,窗口中左边是一个树控件,右边是一个列表控件,现在的设计是点选一个树控件后右边什么也不显示,而在树控件节点上有一个右键菜单项“显示此节点所有明细”点击后,在右边列表中显示所属此树节点的项目,而此时再点击主菜单项上的查询并输入条件后只能在此节点过滤后的数据中查询,显然,以前的设计把过滤与查询混淆了,我认为,点击树节点是查询,而点击主菜单查询也是查询是并列的,而过滤的意义应该是在查询出的结果集中再进行过滤。这样用户就不会为点击主菜单而查询不一到他想查的内容而困扰了。原创 2010-10-28 23:06:00 · 454 阅读 · 0 评论 -
iModel插件的嵌套
<br />iModel中有一些已经实现了的低级插件,当然,利用这些低插件可以实现任何复杂的模型访问与业务实现,但一个功能可能需要挂接几个低级插件并写很多脚本,设置若干插件参数才能实现目标功能,如果是一些通用的功能,则可以新建一个插件来包装这些低级插件,从而使插件的使用更加方便,包装的方法是在新写的插件中定义需要用到的低级插件实现类,比如我今天 写的报表功能插件A里要用到低级插件类B1,B2,B3,其中B3是服务端插件,则我在我的客户端实现类中先定义:<br />private B1 b1;<br />pr原创 2010-11-02 22:50:00 · 595 阅读 · 0 评论 -
iModel中对从存储过程获取报表数据的处理思考
一些复杂的报表数据可能会从一个复杂的存储过程计算得来的,但是如何控制一次性返回的数据量呢?如果一个用户传递的参数返回的是一个超大的数据集,则一次性返回到客户端则可能引起大麻烦,客户的漫长等待,甚至可能超时,也有可能数据会超出一次性传输数据最大字节。反正直接从服务端返回一个大数据到客户端是一个糟透的设计,在iModel中则采用了这样一种方法,从服务端返回的数据集会暂存在临时数据库中,返回给用户的是临时库的名字和表名字,当然,这些表都具有唯一名字的表,客户端在取得这些表的名称后再通过分页取数据的办法获取报表数据原创 2010-11-03 23:03:00 · 584 阅读 · 0 评论 -
imdel模型缓存技术演进
<br />第一步:<br />软件模型本来是好东西,配置性的东西都可以定义为模型,再通过统一的模型引擎解释执行,生成想要的软件,设计人员可以通过变更模型信息而不改变引擎来改变软件的结构和功能甚至界面,不过模型本身也是一个比较大的数据定义,在客户与服务模式的分布式环境下,imodel模型数据也是保存在一个数据库中,每次客户端都需要先从服务端下载模型数据,然后客户端解释翻译模型数据并动态生成软件,而模型数据的下载在互联网环境下也是需要一段不少的时间,这样就增加了软件启动时间,这个问题的解决办法是使用sqlit原创 2011-01-07 00:10:00 · 670 阅读 · 0 评论 -
iModel中的模型继承关系
<br />为了实现“小模型,大插件”的理念,iModel系统使用了模型继承的关系来解决此问题,模型引擎的主要任务就是协调系统运行,而不是实现系统功能,那么由谁来实现系统系统的功能呢?对,就是插件,但一般意义上的插件都是建立在应用层上的,但是iModel为了简化模型和引擎以及能实现主要底层功能的可替换,与引擎与功能的分离而这样做的,可继承的模型有业务对象,实体,界面三大模型,除了三大模型外,三大模型中的子模型也是可以继承的,如业务对象中的属性的类型就由业务元素指定的,业务元素有一个虚的模型BaseAtom此原创 2011-01-24 14:35:00 · 690 阅读 · 0 评论 -
基于iModel模型驱动架构下的开发方法推广的思考
我一直在思考iModel的这种模型开发方式如何能快速的让传统程序员能接受。毕竟这种开发方式与传统的开发方法差别比较大。我想当时学习mfc和com技术的时候感觉也是不容易,一套复杂的架构和技术学习最佳方法就是循序渐进,比如侯大侠的《深入浅出mfc》,另一位大侠的《大话设计模式》都能将复杂的技术讲的通俗易懂。所以我计划分几个部分也写一个《大话iModel模型驱动开发》,嘿嘿。我先原创 2011-01-27 12:16:00 · 494 阅读 · 0 评论 -
模型就像菜品的配方
<br />模型就像菜品的配方,当然,还应该加上制作的环境,因为必须能根据配方描述重现原有菜品味道,色泽,口感。对软件也一样,软件的模型定义就是要能根据模型直接生成应用系统,但实际上有些东西不是所有模型都能实现的,必须根据具体的要求再搭配操作方法和流程才能实现,比如有些客人要淡一点,有些要咸一点,有的要肉炒的嫩一点,有的要肉炒的老一点,一个好的厨师如果不能根据客人的要求而变化炒菜,则这个厨师可能离下岗不远了,呵呵,所以配方只能决定这个菜的基本配料,但具体给在不同的客人服务时,还得根据情况而调整操作方法,才能原创 2011-02-07 22:52:00 · 646 阅读 · 0 评论 -
对B/MS,C/MS架构现实的探索
<br />对B/MS,C/MS架构现实的探索<br /><br /><br />B/S都是大家熟知的browser/Server模式;而C/S就是Client/Server模式,而我提出的另二种模式都是与模型驱动架构的软件开发与运营相关,B/MS模式,就是browse/Model Server/模式,使用浏览器通过http,soap等web协议来访问服务端的模型服务模式。而C/MS就是Client/Model Server,就是模型客户端/模型服务模式,第一种方式是利用现有的html,xml,http,w原创 2011-04-03 10:09:00 · 655 阅读 · 0 评论 -
有骨有肉的模型驱动架构-iModel模型驱动开发平台
一提到模型大家可能想到的是各种各样的模型,楼盘模型,飞机模型,玩具模型,等等现实物体的微缩版,如果模型和软件开发联系到一起呢,做为一个开发人员可能想到的是IBM的Rose?还是Sybase的PowerDesigner?或者是其它的数据库和软件建模工具?在我们实际开发过程中建模工具到底起到了多大作用?是不是为我们带来了效率?不可否认的是对待大型复杂项目工程的管理上建模工具是能起到一些作原创 2011-06-10 22:36:00 · 1010 阅读 · 0 评论 -
iModel 模型驱动软件开发平台 -开启信息管理软件DIY之旅(转)
一, 软件开发历史、现状和探索。 自从有了计算机,人类的工作就变的轻松了,生活就变的丰富多彩了,这种神奇的机器在各行各业中发挥着巨大的作用,计算机极大的扩展了人类大脑的能力,甚至可以说计算机的出现加速了人类社会的发展进程。 计算机之所以不同与一般的机械设备,就是因为它有“灵魂”的,如果说硬件是计算机“身体”,而控制计算机的软件就是计算机的“灵魂”。 软件是在为了满足工作和生活需求而模拟现实世转载 2011-07-02 21:00:16 · 1008 阅读 · 1 评论 -
iModel Studio-程序员的创作画板
画家创作灵感是来自一个人长期的文化底蕴、经验积累以及对生活体现和观察等,灵感来时挥笔泼墨一幅作品可能一口气就完成了,不过,想象一下灵感来的时候还要自己去制作颜料和画笔以及画纸,也许等他全身疲惫的制作好各类绘画工具时灵感早就不知去向了。当然,现实中一般不会出现这原创 2011-07-04 00:08:14 · 1056 阅读 · 1 评论 -
一句话解释imodel studio平台技术特性
1,装配式开发iModel平台革新软件开发模式,以“模型+插件”的构建方式实现软件开发,无需或仅需少量编写代码和脚本;由静态的基础模型和动态的插件模型以及图标、图像、文档资源、权限等模型构成,而且可方便的用插件扩展已有模型的功能。以数量级的幅度提升开发效率、降原创 2011-07-04 00:59:14 · 1115 阅读 · 2 评论 -
编程初学者也可以轻松的开发分布式管理软件-使用iModel平台
设计和开发一套分布式系统对于一般的开发者来说困难还是比较大的,服务端的接口设计和调用代码设计,客户端的界面和调用设计,都不是一个新手能随便搞定的,不过iModel平台的出现将打破只要高手才能开发的分布式应用管理软件,几分钟的开发平台搭建,完全可视化填表开发,让原创 2011-07-05 14:34:46 · 739 阅读 · 0 评论 -
iModel Studio平台,重新定义开发分工
传统软件开发过程我就不说了,还是以设计为先,编码实现为后,也就是说总的来说还是以“代码”为中心,设计的目的也是为了更好的编码,但在imodel平台下,代码占的比重就很少了,或者说代码已经不是软件开发的中心,在iModel平台下,一切以模型为中心,插件为辅助,也原创 2011-07-05 15:34:21 · 875 阅读 · 1 评论 -
iModel中模型库,用户库,附加库的关系
<br />一个完整的imodel应用系统的数据库由最少四个库构成系统库,模型库,用户库和附加库,前三个库是必须的,附加库根据用户的业务规模而设定。<br />系统管理库是用于管理此数据库服务器中的其他数据库,一般只由很少的几个管理表构成,系统必须先访问此库的原创 2011-01-24 14:58:00 · 544 阅读 · 0 评论 -
面向模型之 “模型+插件”技术
面向模型之 “模型+插件”技术 -比面向对象更高一个层次的软件组织方法 -另一种软件组件复用技术原创 2011-07-05 01:13:54 · 1002 阅读 · 0 评论 -
iModel插件介绍之Func_Executor_Server
服务端功能执行检查插件Func_Executor_Server该插件可以在服务端执行一系列功能。该插件配置在功能上。插件参数CheckExpr要在服务端执行的脚本代码。如果返回值是true,表示检查 需要提示用户或者需要直接报错例如: (TCo原创 2011-09-26 11:48:29 · 538 阅读 · 0 评论