TXDW开发文档(一) TXDW介绍
TXDW(原来命名为TXWebLibrary)是由Asp.net控件和浏览器插件(包括支持IE内核的Activex控件和支持FireFox,Chrome等浏览器的Plugin插件)组成的一组开发控件,目的是在Asp.net开发环境中,使用PowerBuilder的DataWindow控件,充分利用DataWindow控件的功能,不需要写复杂的JS来实现数据窗口的各种功能,为用户提供更好的交互性体验,而且可以非常方便的实现各种查询统计报表功能。使用TXDW来开发BS架构的系统,可以提高开发效率,缩短开发周期,从而减少开发成本,而且对后期系统功能的调整或维护,也有很大的帮助,例如在单据录入或报表中需要增加或删除字段,在不涉及业务算法的情况下,只需要修改DataWindow对象即可,不需要修改Asp.net页面。
TXDW的技术实现:
1. 在服务器端,使用DW.NET来处理数据窗口,包括绑定数据窗口对象,连接数据库,检索数据等。
2. 在客户端,则直接使用PowerBuilder的DataWindow控件。通过PBNI,在浏览器插件中调用DataWindow控件的各种功能,如InsertRow,DeleteRow,GetRow等。DataWindow控件的各种事件,如ItemChanged,EditChanged,KeyDown等,则通过PBNI的方式,反馈到浏览器插件,再形成相应的插件事件。
TXDW的请求和响应流程:
1. 客户端请求一个Asp.net页面,如果页面中存在TXDW的asp.net控件,则通过这个控件来绑定数据窗口对象,连接数据库,检索数据等。Asp.net在生成这个页面的过程中,会把该控件的数据窗口对象的内容,通过GetFullState方法,缓存到系统中。然后生成相应的JS代码,以便在客户端启用TXDW插件程序。
2. 客户端接收到服务器返回的内容,初始化相应的TXDW插件程序。TXDW插件在初始化完毕之后,从服务器读取该控件缓存的FullState的数据,然后调用SetFullState,在客户端加载数据窗口的内容。
3. 用户对数据窗口的内容进行编辑之后,如果需要保存到服务器,而通过使用JS,调用控件的GetChanges函数,返回数据窗口修改后的内容。通过AJAX方式,把内容发送到服务器。
4. 服务器接收到从客户端发来的数据,在服务器端通过SetChanges方式来恢复数据,然后更新并保存到数据库。
根据以下的流程,我们可以发现,TXDW实际上完全采用了PB三层或多层架构应用的一般处理流程,即使用GetFullState/SetFullState,GetChanges/SetChanges来处理数据窗口控件的内容和完成数据的更新。
TXDW与PowerBuilder
TXDW不是用于PB的开发环境中,来开发B/S架构的应用程序,而且用于Asp.net开发环境。但在实际的应用开发过程中,仍然需要使用PB来制作各种数据窗口对象。如果原来使用PB开发应用,希望转换为B/S架构的应用,最好的解决方案是使用Appeon进行转换。如果希望采用TXDW,则只能重用以前的数据窗口对象,大部分的业务功能,需要重写,所以并不是最好的选择方案。TXDW的目标是在Asp.net的开发环境中,使用DataWindow的功能。
TXDW与SilverLight和HTML5
TXDW与SilverLight和HTML5的功能没有重叠,也不存在冲突。采用何种技术,需要根据自已的项目需要和技术积累来决定。说白了,TXDW就是利用DataWindow控件的功能而已。既可以在一般的Asp.net应用中使用它,也可以在SilverLight应用中使用它。例如现在用SilverLight开发B/S的应用,对于报表输出还是不太方便,那么就可以用SilverLight开实现业务录入的功能,用TXDW来实现单据和报表打印功能。
TXDW的基本功能
TXDW是在服务器端,使用DW.NET,在浏览器端,是把PB中DataWindow封装为浏览器插件,并不是自已创造性的开发一个新的DataWindow控件,所以TXDW对应的PB版本的DataWindow控件有什么功能,TXDW就可以使用什么功能,否则就没有了。这点是跟其它模仿DataWindow控件的第三方产品的最大区别。其它模仿DataWindow控件的第三方产品,会根据应用的需要,增加部分PB DataWindow中没有的功能,但也有可能很多PB DataWindow有的功能,这些第三方控件没有实现。此外,TXDW可以重用原来PB应用的全部数据窗口对象,而第三方的产品,则不一定可以做到。
TXDW已经把DataWindow的大部分函数,封装为浏览器插件的函数。而且函数参数和返回值,与PB中的使用习惯一致。如GetRow,InsertRow, DeleteRow,Modify,Describe等。TXDW已经把DataWindow的大部分事件,封装为浏览器插件的事件。如ItemChanged,EditChanged,RowFocusChanged,KeyDown等。而且事件的参数和返回值,基本与pb中的保持一致。
此外,TXDW还封装了部分数据窗口常用的功能,如打印设置、排序、过滤、查找、打印预览,导出等功能。而且还实现了中国式表格报表的功能,通过使用该功能,在需要生成表格报表的时候,会非常方便,不需要手工慢慢的进行画线和排版,而且用户在使用的过程中,可以根据实际需要,调整打印的内容和格式。系统还实现了主从数据窗口的关联服务,使用这个服务,只需要在服务器端简单设置两个数据窗口控件之间的联动关系,就可以在客户端实现主从数据窗口的联动的功能。
如果有兴趣了解TXDW的具体功能和实现在的效果,可以通过以下地址http://www.gztxsoft.com/download/txweblibrary.exe 下载TXDW插件的安装程序,在安装完成之后,访问http://www.gztxsoft.com即可。如果有任何建议和意见,请来信或加入以下QQ群113564245进行交流,谢谢!