专利名称::一种生成单据过滤条件的方法及装置的制作方法
技术领域:
:本发明涉及数据库处理领域,特别是涉及一种生成单据过滤条件的方法及装置。
背景技术:
:企业资源计划系统(EnterpriseResourcePlanning,ERP),是指建立在信息技术基础上,对企业的所有资源(物流、资金流、信息流或人力资源)进行整合集成管理,釆用信息化手段实现企业供销链管理,从而达到对供应链上的每一环节实现科学管理的目的。在ERP系统中,需要生成各种类型的单据作为业务凭证,可以通过复制订单、发票或出库单生成单据,例如销售发票可以通过复制销售订单生成。用户有时需要对多张单据和单据中不同的分录进行过滤,以进行不同需求的业务处理。例如,在销售系统的应用中,过滤时可以以多个销售订单编号和物料名称为单据过滤条件进行过滤,筛选出符合过滤条件的单据,然后进行统一出货处理业务等。在现有的EPR系统或其他软件系统应用中,在单据过滤的过程中生成单据过滤条件的实现过程可以为首先可以在单据过滤的设置界面上,按行设置相关的比较关系,以及字段间的逻辑关系,并在所述界面上填入需要过滤的字段以及字段值,最后依据所填入的字段内容生成单据过滤条件。但是,在设置过滤条件时,如果过滤条件有很多且数据量较大的情况下,例如,在过滤条件比较复杂时,需要设置多行以及多列数据,参考图l,示出了在复杂的过滤条件中,对过滤条件的设置界面示意图。从图l中可以看出,在设定的数据量较大的情况下,需要在每一行中都设置"名称,,歹'j,即业务单据字段列,包括业务单据可过滤的所有字段,并且每一次设置都需要重新选择,如图l中的单据编号、物料名称等;同时,每行的"逻辑,,关系也需要重复定义,例如,图l中所示"并且"、"或者",进一步的,用户还需要定义括号匹配及比较关系等。结合附图l可以看出,在对单据进行过滤的过程中,如果过滤条件比较复杂,那么需要设定的数据量就比较大,例如,用户需要重复设置"名称",在名称一列需要重复输入"单据编号"和"物料名称"等字段,重复的输入使用户定义过滤条件的过程冗余度较高,进一步的,也增加了用户操作的困难度。总之,目前需要本领域技术人员迫切解决的一个技术问题就是如何能够提出一种生成单据过滤条件的方法,用以解决在单据过滤过程中生成复杂过滤条件时冗余度高的问题。
发明内容本发明所要解决的技术问题是提供一种生成单据过滤条件的方法,用以解决单据过滤过程中定义复杂过滤条件时冗余度高的问题,进一步的,还可以解决用户操作过程中易用性差的问题。本发明的另一个目的是将上述构思应用于具体的应用环境中,提供一种单据过滤的装置,从而保证该方法的实现和应用。为解决上述技术问题,本发明实施例提供了一种生成单据过滤条件的方法,包4舌根据所需的单据过滤条件,设置与需要参与过滤的单据字段相对应的字段列;选择所述字段列之间的逻辑关系,并确定所述单据字段的字段值;依据所述字段值和逻辑关系生成单据过滤条件。优选的,所述依据所述字段值和逻辑关系生成单据过滤条件包括依据所述字段值、逻辑关系和单据的时间条件生成单据过滤条件。优选的,所述依据所述字段值和逻辑关系生成单据过滤条件包括依据所述字段值和逻辑关系生成单据过滤子条件;将至少两个单据过滤子条件按照或的关系,生成单据过滤条件。优选的,所述设置与需要参与过滤的单据字段相对应的字段列包括根据需要参与过滤的单据字段,设置字段列的个数;在相应字段列的起始位置设置一个需要参与过滤的单据字段。优选的,所述方法还包括依据单据过滤条件,对待过滤的单据进行过滤。优选的,所述依据单据过滤条件,对待过滤的单据进行过滤包括将单据过滤条件组合生成取数结构化查询语言SQL;依据所述取数SQL对待过滤的单据进行过滤。优选的,其特征在于,所述方法应用于ERP系统中。本发明实施例还提供了一种生成单据过滤条件的装置,包括设置模块,根据所需的单据过滤条件,设置与需要参与过滤的单据字段相对应的字段列;选择模块,用于选择所述字段列之间的逻辑关系;确定模块,用于确定所述单据字段的字段值;生成模块,用于依据所述字段值和逻辑关系生成单据过滤条件。优选的,所述生成模块包括第一生成子模块,用于依据所述字段值和逻辑关系生成单据过滤子条件;第二生成子模块,用于将至少两个单据过滤子条件按照或的关系,生成单据过滤条件。优选的,所述设置模块包括第一设置子模块,用于根据需要参与过滤的单据字段,设置字段列的个数;第二设置子模块,用于在相应字段列的起始位置设置一个需要参与过滤的单据字段。优选的,所述装置还包括过滤模块,用于依据单据过滤条件,对待过滤的单据进行过滤。优选的,所述过滤模块包括第三生成子模块,用于将单据过滤条件组合生成取数SQL;过滤子模块,用于依据所述取数SQL对待过滤的单据进行过滤。与现有技术相比,本发明具有以下优点本发明根据所需的单据过滤条件,首先设置需要参与过滤的字段列,再将待过滤的单据字段添加至所述字段列中,并确定所述字段的字段值;然后选择所述字段列之间的逻辑关系,并设定所述字段值的行之间的固定关系;并依据所述逻辑关系和固定关系生成单据过滤条件;最后依据所述单据过滤条件以及其他需要的条件,对待过滤的单据进行过滤;使得用户可以在过滤条件相当复杂的情况下,通过设置需要参与过滤的字段列,为所述字段列中的字段确定字段值,并选择所述字段列之间的逻辑关系,以及字段列中字段值的行之间的固定关系,从而避免了重复设置字段以及字段值的过程,避免了因为数据量较大使得定义过滤条件的过程非常冗余的问题,进一步的,也提升了用户在过滤单据时定义过滤条件的易用性。图1是现有技术中复杂的过滤条件下的设置界面示意图;图2是本发明的一种生成单据过滤条件的方法实施例1的流程图;图3是本发明的一种生成单据过滤条件的方法实施例2的流程图;图4是本发明的一个具体例子中设置单据过滤条件的界面示意图;图5是本发明的一种生成单据过滤条件的装置优选实施例的结构框图6是应用图5所示的优选实施例生成单据过滤条件,并依据所述单据过滤条件进行单据过滤的流程图。具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明可用于众多通用或专用的计算系统环境或配置中。例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、包括以上任何系统或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。参考图2,示出了本发明的一种生成单据过滤条件的方法实施例1的流程图,可以包括以下步骤步骤201:根据所需的单据过滤条件,设置与需要参与过滤的单据字段相对应的字段列;步骤202:选择所述字段列之间的逻辑关系,并确定所述单据字段的字段值;步骤203:依据所述字段值和逻辑关系生成单据过滤条件。在本实施例中,考虑到用户一般情况下的需求,可以将所述字段列个数设置为3个,其中,所述逻辑关系可以包括与逻辑,或者或逻辑,所述方法可以应用于ERP系统中,也可以应用于其他业务系统中,本发明对此无需作出限定。可以看出,本实施例通过设置与需要参与过滤的单据字段相对应的字段列,具体为首先根据需要参与过滤的单据字段,设置字段列的个数;然后在相应字段列的起始位置设置一个需要参与过滤的单据字段,可以将过滤单据时所需的字段可以直接添加至所述字段列中,并为所述单据字段确定字段值,可以使用户一次设定就可以重复使用,从而减少了业务单据集合过滤的字段之间的逻辑关系定义的冗余性,进一步的,还可以提升复杂业务单据集合过滤的易用性,降低同一业务单据某种条件集合中不同业务逻辑的过滤条件定义的复杂性。参考图3,示出了本发明的一种生成单据过滤条件的方法实施例2的流程图,可以包括以下步骤步骤301:根据所需的单据过滤条件,根据需要参与过滤的单据字段,设置字段列的个数;步骤302:在相应字段列的起始位置设置一个需要参与过滤的单据字段;步骤303:选择所述字段列之间的逻辑关系,并确定所述单据字段的字段值;步骤304:依据所述字段值和逻辑关系生成单据过滤子条件;步骤305:将至少两个单据过滤子条件按照或的关系,生成单据过滤条件;步骤306:依据单据过滤条件,对待过滤的单据进行过滤。优选的,所述步骤306可以包括以下子步骤构化查询语言(StructuredQueryLanguage,SQL);子步骤3062:依据所述取数SQL对待过滤的单据进行过滤。需要说明的是,SQL是专为数据库而建立的操作命令集,是高级的非过程化编程语言,允许用户在高层数据结构上工作。其不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口,由于SQL语言属于本领域的公知技术,在此不再详述。在实际应用中,所述过滤条件可以理解为不同的单据编号,或者不同的业务逻辑(例如不同的物料名称或其他)的集合,运用这些对单据过滤内容的限定,可以过滤出用户需要的单据。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进4亍。其次,本领域4支术人员也应该知悉,i兌明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。为使本领域技术人员更好地理解本发明,以下结合本发明在实际中应用的具体例子对本发明进一步说明。步骤A1:根据所需的单据过滤条件,设置字段列的个数;在实际应用中,考虑到用户的需求,一般3个字段列即可满足过滤的需要;参考图4,示出了设置完成之后单据过滤条件的界面示意图,在图4中,定义了3个下拉列表型的字段列;步骤A2:在相应字段列的起始位置设置一个需要参与过滤的单据字段;并将所述单据的字段添加至所述字段列中,例如,在本例子中的字段为"单据编号","物料名称"等;需要说明的是,字段列个数的多少可以依据具体业务需要而进行修改,从用户的需求ERP业务应用来讲,3个字段列即可满足日常的业务应用需求;其中,所述字段列只须定义一次,不仅使用户的操作更加快捷方便,更重要的,可以在用户定义过滤条件的过程中减少冗余设置;将待过滤的单据字段添加至所述字段列中,以便于用户在过滤时进行选择和定义;此步骤定义了需要参与过滤的字段,即"单据编号",实际参与数据过滤时以字段名称"FBillNo"表示,"物料名称,,以"FMaterialName"表示;步骤A3:选择所述字段列之间的逻辑关系;在所述字段列之间,存在两种逻辑关系,第一种为AND(并且);第二种为OR(或);需要说明的是,所述字段列之间的逻辑关系只需一次定义,在生成过滤条件时可以批量应用,大大方便了用户定义单据过滤条件的;在本例子中,两组逻辑关系定义如图4所示的"且",因为本例子的业务单据有3个字段列,所以需要定义2组逻辑关系,若用户在设置字段列个数时设置了4个,则需要定义3组逻辑关系;本例子中,定义的两组"且"的逻辑关系,可以减少逻辑关系定义的冗余度;当设置的逻辑关系为"且,,时,数据处理时以"AND"表示,当设置的逻辑关系为"或"时,数据处理时以"OR"表示;步骤A4:确定所述单据字段的字段值;用户就可以在所述字段列中输入字段值,如图4所示的"单据编号"列中的"P00RD00001",以及,"物料名称,,列中的"全棉细布巴里纱60x60"等,同时,在本例子中,第3个字段列"无"中没有设置需要设置的字段值,用户可以根据需要自主选择需要不需要设置参与过滤的字段,根据图4所示的界面示意图设置所述逻辑关系和固定关系,可以实现过滤字段值的批量录入,从而可以快捷方便的实现单据的过滤;步骤A4:依据所述字段值和逻辑关系生成单据过滤子条件;确定字段值之后,可以依据字段列之间的逻辑关系,及过滤字段值生成过滤子条件,本例子中的字段列"无"可生成一个永远为真的条件,因此,一行字段值可以生成一个单据过滤子条件,具体如下所示G=(单据编号="POORD00001"且物料名称="全棉细布巴里纱60x60"且1=1)步骤A5:将至少两个单据过滤子条件按照或的关系,生成单据过滤条件;在图4中,可以看出,有两行字段值,将两行字段值按照或的关系,可以生成单据过滤条件;在本例子中,第1行与第2行之间的逻辑关系为"OR";需要说明的是,在图4中,只是设置了两行字段值,用户可以设置多行,在生成单据过滤条件时,每一行之间都是或的关系;在本例子中,图4示例生成的单据过滤条件G可以如下所示G=(单据编号="POORD00001"且物料名称="全棉细布巴里纱60x60"且1=1)或(单据编号="POORD00002"且物料名称="圓领运动衫"且1=1);读取所述条件G,可以得到如下数据G=((FBillNo='POORDOOOOl,ANDFMaterialName='全棉细布,AND1=1)OR(FBillNo='POORD0002'ANDFMaterialName='圓领运动衫,AND1=1));优选的,在生成单据过滤条件时,也可以依据所述字段值、逻辑关系和单据的时间条件一并生成单据过滤条件;在本例子中,如果单据过滤的时间为"实现6月份的销售出货业务",则将时间条件H定义为H=(FDate>='2008-06-01,ANDFDate<='2008-06-30,)综上所述,设置包括了时间条件的单据过滤条件为I,则有I=HANDG;因此,得到最终的单据过滤条件为1=(FDate〉='2008-06-01'ANDFDate<='2008-06-30')AND((FBillNo='POORDOOOOl,ANDFMaterialName='全棉细布,AND1=1)OR(FBillNo='POORD0002'ANDFMaterialName='圆领运动衫,AND1=1));需要说明的是,在本发明中,所述单据过滤条件不仅可以还包括时间条件,还可以包括其他的,未在图4中设置过的需要参与过滤的条件,或者,也可以将时间条件在图4中的界面上进行设置,这些都不影响本发明的实现,因此本发明无需对此作出限定;步骤A6:将所述单据过滤条件组合生成取数SQL;才艮据所述单据过滤条件,组合生成取数SQL,即select*fromtablewhereI(即ERP系统业务应用中,业务单据集合的过滤的取数SQL可抽象为(1)式select*fromTablewhereH;则通过本发明,高级过滤装置定义的组合条件I生成的取数SQL抽象为select*fromTablewhereI,即select*fromTablewhereHANDG;分别将前述H和G的表达式代入上式,可以得到本例子中实现单据过滤的取数SQL;步骤A7:依据所述取数SQL,对待过滤的单据进行过滤。依据所述取数SQL,即可实现对待过滤的单据进行过滤的目的,从而在ERP系统应用中实现复杂业务的快捷过滤。综上所述,本发明实施例通过一次设置需要参与过滤的单据字段,用户就可以在生成单据过滤条件时,根据所述字段以确定相应的字段值,从而可以减少对参与过滤的字段之间的逻辑关系进行重复定义,以及多次重复输入单据字段的冗余性,进一步的,还可以提升在复杂过滤条件下单据过滤的易用性,降低同一单据在某种条件集合中定义过滤条件的复杂性。参考图5,示出了本发明的一种单据过滤的装置优选实施例的结构框图,可以包括以下才莫块设置模块501,用于根据所需的单据过滤条件,设置与需要参与过滤的单据字段相对应的字段列;优选的,所述设置模块具体可以包括第一设置子模块5011,用于根据需要参与过滤的单据字段,设置字段列的个数;第二设置子模块5012,用于在相应字段列的起始位置设置一个需要参与过滤的单据字段。选择模块502,用于选择所述字段列之间的逻辑关系;确定模块503,用于确定所述字段的字段值;生成模块504,用于依据所述逻辑关系和固定关系生成过滤条件;优选的,所述生成模块具体可以包括第一生成子模块5041,用于依据所述字段值和逻辑关系生成单据过滤子条件;第二生成子模块5042,用于将至少两个单据过滤子条件按照或的关系,生成单据过滤条件。优选的,所述装置还可以包括过滤模块505,用于依据单据过滤条件,对待过滤的单据进行过滤。优选的,所述过滤模块具体可以包括第三生成子模块5051,用于将单据过滤条件组合生成取数SQL;过滤子模块5052,用于依据所述取数SQL对待过滤的单据进行过滤。在本实施例中,所述装置可以细分为四个模块,其中每个模块完成的动作都和其他模块所完成的动作相互关系,共同完成生成单据过滤条件的目的。进一步的,所述装置还可以包括过滤模块,所述过滤模块还可以包括两个子模块,并以先将过滤条件生成取数SQL,然后依据所述取数SQL对单据进行过滤的优选方式,进一步的可以过滤单据,从而可以提升在复杂条件下生成单据过滤条件的易用性,进一步的,还可以降低在生成单据过滤条件时需要定义大量参与过滤的字段之间逻辑关系的冗余性。参考图6,示出了应用图5所示的优选实施例生成单据过滤条件,并依据所述单据过滤条件进行单据过滤的流程图,可以包括以下步骤步骤601:第一设置子模块根据需要参与过滤的单据字段,设置字段列的个数;步骤602:第二设置子模块在相应字段列的起始位置设置一个需要参与过滤的单据字段;步骤603:选择模块选择所述字段列之间的逻辑关系;步骤604:确定模块确定所述字段的字段值;步骤605:第一生成子模块依据所述字段值和逻辑关系生成单据过滤子条件;步骤606:第二生成子模块将至少两个单据过滤子条件按照或的关系,生成单据过滤条件;步骤607:第三生成子模块将单据过滤条件组合生成取数SQL;步骤608:过滤子模块依据所述取数SQL对待过滤的单据进行过滤。需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较筒单,相关之处参见方法实施例的部分说明即可。以上对本发明所提供的一种生成单据过滤条件的方法及生成单据过滤条件的装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。权利要求1、一种生成单据过滤条件的方法,其特征在于,包括根据所需的单据过滤条件,设置与需要参与过滤的单据字段相对应的字段列;选择所述字段列之间的逻辑关系,并确定所述单据字段的字段值;依据所述字段值和逻辑关系生成单据过滤条件。2、如权利要求1所述的方法,其特征在于,所述依据所述字段值和逻辑关系生成单据过滤条件包括依据所述字段值、逻辑关系和单据的时间条件生成单据过滤条件。3、如权利要求1所述的方法,其特征在于,所述依据所述字段值和逻辑关系生成单据过滤条件包括依据所述字段值和逻辑关系生成单据过滤子条件;将至少两个单据过滤子条件按照或的关系,生成单据过滤条件。4、如权利要求1所述的方法,其特征在于,所述设置与需要参与过滤的单据字段相对应的字段列包括根据需要参与过滤的单据字段,设置字段列的个数;在相应字段列的起始位置设置一个需要参与过滤的单据字段。5、如权利要求l所述的方法,其特征在于,还包括依据单据过滤条件,对待过滤的单据进行过滤。6、如权利要求5所述的方法,其特征在于,所述依据单据过滤条件,对待过滤的单据进行过滤包括将单据过滤条件组合生成取数结构化查询语言SQL;依据所述取数SQL对待过滤的单据进行过滤。7、如权利要求1至6任意一项所述的方法,其特征在于,所述方法应用于ERP系统中。8、一种生成单据过滤条件的装置,其特征在于,包括设置模块,根据所需的单据过滤条件,设置与需要参与过滤的单据字段相对应的字段列;选择模块,用于选择所述字段列之间的逻辑关系;确定模块,用于确定所述单据字段的字段值;生成模块,用于依据所述字段值和逻辑关系生成单据过滤条件。9、如权利要求8所述的装置,其特征在于,所述生成模块包括第一生成子模块,用于依据所述字段值和逻辑关系生成单据过滤子条件;第二生成子模块,用于将至少两个单据过滤子条件按照或的关系,生成单据过滤条件。10、如权利要求8所述的装置,其特征在于,所述设置模块包括第一设置子模块,用于根据需要参与过滤的单据字段,设置字段列的个数;第二设置子模块,用于在相应字段列的起始位置设置一个需要参与过滤的单据字段。11、如权利要求8所述的装置,其特征在于,还包括过滤模块,用于依据单据过滤条件,对待过滤的单据进行过滤。12、如权利要求11所述的装置,其特征在于,所述过滤模块包括:第三生成子模块,用于将单据过滤条件组合生成取数SQL;全文摘要本发明提供了一种生成单据过滤条件的方法,包括根据所需的单据过滤条件,设置与需要参与过滤的单据字段相对应的字段列;选择所述字段列之间的逻辑关系,并确定所述单据字段的字段值;依据所述字段值和逻辑关系生成单据过滤条件。进一步的,还可以依据所述单据过滤条件,对待过滤的单据进行过滤。运用本发明的方法,用户可以在设置参与过滤的字段后,根据过滤条件在字段列填入相应的字段值,从而可以减少了设置需要参与过滤的单据字段之间的逻辑关系定义的冗余性,进一步的,还可以提升复杂条件下单据过滤时设置过滤条件的易用性。本发明还提供了一种生成单据过滤条件的装置。文档编号G06Q10/00GK101334794SQ200810135470公开日2008年12月31日申请日期2008年8月7日优先权日2008年8月7日发明者高玉宏申请人:金蝶软件(中国)有限公司