不管做什么软件,查询是个非常重要的问题; 我觉得查询必须有以下几点: 1、方便性: 特别对于单据之类的查询来讲显得尤为重要,操作员在很多张单据里找自己需要的那张。 我看过很多软件是这样做的: 1、主窗体上有一个查询按钮,操作员点击这个按钮,弹出一个查询界面,里面有单号,供货商编号,供货商名称 这几个查询条件。 2、操作员输入查询条件,比如单号为20050201; 3、操作员点击确认按钮,查询窗体关闭; 4、主窗体显示查询条件的结果; 上面这种方法是绝大部分软件的做法,但是我个人非常不赞这种方法: 其弊端有: 1、操作麻烦,需要弹出一个查询界面,弹出后输入条件确认后,需要关闭该窗体才能进行查询; 2、回到主界面后,看不到操作员刚才输入的查询条件; 3、如果操作员第一次查询输入的条件不够准确,查不到相应的信息,还要回头再进入查询界面; 4、查询条件不够,比如入库单里还有制单人编号,制单人名称,制单时间,单据状态,备注等信息,如果操作员想根据这些条件来查询,系统就不提供。但是如果查询条件太多,查询界面看上去会很花,给人的感觉不太好; 2、功能性: 很多软件查询条件都作的相对比较弱,比如商品信息,一般就是按照商品编号,商品名称,商品类别这样最简单的条件查询; 但是如果操作员想按照商品的规格,单位,保质期,重量,颜色,供货商等条件进行查询就不行;如果开发人员提供所有的查询,在主界面里放那么多查询条件会把主界面搞得太乱,那就必须做一个新的查询界面,但是这样也增加了操作的复杂度; 3、开发的复杂度; 软件的各个业务复杂度不一样,查询条件也要根据客户订制,很多客户对不同窗体的查询要求也不一样,有的客户觉得 某个查询条件需要,一定要有,有的认为某个查询条件不需要,不要提供。有时当客户把软件用了一段时间后,觉得查询条件不好,需要修改。 所以我觉得需要搞个无为而治的方法,就是在控件里把查询的功能做好,不要在单独做查询功能,而且满足所有可能出现的查询条件,这样一来界面比较清爽,二来也不用自己去开发了。 下面这幅图就是实现了入库单的查询:
其查询条件是: 单据编号包含“3”,供货商编号包含“000”,供货商名称包含“大连”; 制单人名称为“daizhicun” ; 该界面里的查询通过dbgrideh自带的功能实现。而且操作简单,功能也很强大,几乎满足了所有的查询需求; 以上我对查询功能制作的一些想法,不知道大家平时是怎么做的。