QueryIt 1.0 指南
*功能描述
QueryIt是基于IIS和COM+的查询系统,使用delphi7开发。仅更改几个配置文件就可以完成对查询系统的更改,方便使用。
仅在服务器端维护查询,客户端自动获取更改。
整个系统具有通用性,没有任何特定于业务方面的代码,因此可以使用在需要的场合。
同时其源码与TForm松耦合,你可以将其集成在你的代码中。
没有操作注册表,绿色,拷贝即可使用。
通过配置文件可以
*配置自定义查询
*配置查询要求用户输入的若干条件,支持多种数据类型
文本,日期,整数,浮点数,复选框列表(支持选项也从数据库取得),下拉列表
*配置数据库连接信息,并可选是否加密
*配置查询的相关报表打印项
*隐藏字段,在客户端界面不显示
查询得到的数据可以
*导出成多种格式(excel、word、pdf、html、xml...)
*直接打印表格
*屏蔽选中的结果数据,即不打印某几条记录
*配置多个报表,并一次性打印,即对同样的结果按多种设定的格式顺序打印
*动态设置每种报表的使用打印机,方便一次性打印
*每种打印还可配置本地过滤
*运行期配置报表
*浮点数、整数的字段自动总计
*结果界面按任意字段排序
*自动将特定字段进行数字->大写金额,数字->大写数字转换
*文本类型的输入条件本地缓存历史
*webservice和COM+均可以记录日志,日志有info,error,debug3个级别
*复制选中字段或当前记录的快照到剪贴板
*文件结构
整个系统的文件结构及其作用说明如下:
src/webservice webservice代码
src/complus COM+代码
src/queryit 客户端代码
src/queryit.public QueryIt公用的pas文件
src/public 通用函数包
dist/webservice/dataservice.dll webservice实现,isapi类型的dll,应放在iis环境中
dist/webservice/config.xml 配置client升级的url
dist/webservice/logs/log4d.config日志记录配置文件
dist/complus/mtsexecutor.dll COM+实现,安装在支持组件服务的环境中
dist/complus/query.xml 查询的配置,供COM+组件载入并提供服务
dist/complus/logs/log4d.config 日志记录配置文件
dist/client/queryit.exe 客户端实现
dist/client/query.client.xml 本地配置,主要存储每个打印使用的打印机信息
dist/client/system.xml 配置webservice调用地址
dist/client/history.xml 存储输入关键字历史件
*使用方法
--如果仅仅想使用之
部署好系统后,对query.xml的配置将是工作中心。新增一个queryItem节点,客户端就会获取这个新的查询。
query.xml的装卸规则,我没有提供xslt或dtd文件,但应该能看懂的。唯一要注意的是转义字符,例如如果sql语句中需要where a<>'金' ,那么应该写成where a<>'金'。
--如果你想将QueryIt的代码上集成到你的系统中,这里有一些简要的设计说明
整个系统中webservice仅仅作为转发层存在,COM+组件启动时会载入query.xml文件,并屏蔽其中的sql和数据库连接信息,返回给客户端,客户端将收到该组件提供的查询列表。当客户端执行某个报表时,根据其中的定义的条件信息,生成供用户输入的界面,要求用户输入必要的查询条件,之后将输入的条件封装并提交给后台进行查询,后台将输入的条件应用到预定义的sql中,执行sql并返回数据。客户端接到返回数据后,将进行自动转换(如数字->大写金额)等工作,然后以表格形式呈现,并提供多种处理当前结果集的功能,如导出,打印。。。
*使用的工具和控件
delphi 7.0
raize3.0.12
ehlib3.6
fastreport2.53
acupgrader
*版权声明
QueryIt使用了一些商业的第3方控件,你可能需要为此付费,但QueryIt本身是完全免费并开源的,你可以任意的修改,使用,拷贝,分发,扩充它,作者仅希望能带给一线开发者一些便利,如果有改进的想法,希望也能mail告知,(联系方式见后),而共同研讨.
(注:以下步骤中$开头的名称都可以任取.)
1.安装com+
控制面板-管理工具-组件服务-计算机-我的电脑-COM+应用程序,右键-新建应用程序-创建空应用程序-输入$QueryItCom-服务器应用程序-下列用户-输入administrator的用户名和密码-完成
在$QueryItCom-组件上,右键-新增-组件-安装新组件-选择MtsExecutor.dll-..-完成
你还可以在MtsExecutor组件的属性上如下设置连接池,这样在真正的生产运用中,将会得到很高的性能。
2.安装WebService服务
在iis下新建虚拟目录$queryit.webservice指向dataservice.dll所在目录
右键$queryit.webservice->属性->设置“应用程序保护级别”为“低”。(缺省为中),否则soap应用将不稳定
如果访问http://该机器的ip/$queryit.webservice/dataservice.dll,有网页的化,那么就成功了。
如果该机器和安装COM+的机器不是一台机器的化,你还需要在该机器上安装COM+代理。COM+代理是由上一个COM+安装完后,在组件服务中该组件上点右键->导出生成的msi安装包。另一个替代的方法是使用webservice转发器(仅配置不同的webservice组件的config.xml文件)
3.安装client
可以直接使用client目录中的配置,仅更改system.xml文件中的webservice地址。
1<?xml version="1.0" encoding="gbk"?>
2<!--此处用来配置webservice地址信息参加下面的示例配置,第一次使用时修改wsUrl属性定义为你自己的webservice发布地址-->
3<!--sendAuth控制client是否发送认证信息往webservice服务器,而验证client是webservice缺省实现的默认行为,因此应保持其值为true-->
4<system wsUrl="http://localhost/webservice/DataService.dll" sendAuth="true">
5</system>
4.配置Com+和Query.xml
在组件服务中配置mtsexecutor的池子配置,根据最高并发量配置相应的池大小。
query.xml内有详细的说明如何配置其自身。保证query.xml和mtsexecutor.dll在同一目录下即可。
5.测试
执行queryit.exe。
*联系方式
如果您发现了任何程序的bug或需要增强的功能,可以:
--在http://blog.csdn.net/jalphi/category/188288.aspx给我留言
--发邮件往jalphi@gmail.com
但我并不保证能及时将其解决.:P
完