为批量生成发票添加过滤条件

环境:U6
问题描述:用户有上千个客户,其中有部分客户需要开发票,其它客户不需开发票,要求进行发票管理。在系统中手工填制要求开票的销售发票,对于不需开票的单位需求在月底一次批量生成,用户有应收款管理模块。主要问题是开发票的单位不一定是本月发生的业务就本月开具发票,有可能是留在下个月或更以后的日期,所以在发货单批量生成发票中就必须要过滤出其中不需开发票的单据。
问题分析:要区分客户开不开票只能在客户档案中区别,客户档案已生成不宜修改编码及名称,其它属性也不合适,所以启用客户自定义项1“是否开票”,建档为01-不开票;02-开发票。对于每个客户需要设置其自定义项1“是否开票”的值,然后再到指生成发票中去过滤就可以人了。这时在批量生成发票的“过滤条件”和“高级条件选择”界面中找不到客户自定义项1“是否开票”这个过滤条件,如果没这过滤属性这个方法就失败了,后来想想其它也没好的方法,又看见在“高级条件选择”项中包括了其它很多的存货、表体自定义项等,不如自己也来个条件项上去。
解决方法:经过跟踪分析,确定“高级条件选择”中过滤项的内容来自“rpt_fltdef”表,其中有一字段[Expression]是指列对应数据源表达式,也就是客户自定义项1“是否开票”这个项里的档案值,这里又牵扯到“userdef”和”userdefine”两张表,”userdef”是存放自定义项的表,“userdefine”是存放自定义项档案值的,[Expression]的内容是根据自定义项ID值查询自定义项档案值的内容;[Location]是条件项显示的顺序,[iCaptionWidth]的值表示0-不显示,1-显示在“高级条件选择”条件项中,3-同时显示在“过滤条件”和“高级条件选择”中。完整语句:
INSERT INTO RPT_FLTDEF
([Location],[ID],[Name],[Note],[Expression],[ModeEx],[IsSingle],[Flag],[iLeft],[iTop], [iWidth],[iHeight],[iCaptionLeft],[iCaptionWidth],[iPage],[iRefSelect])
values (145,1909,'cCusDefine1','客户自定义项1','select cvalue as 自定义项值 from userdefine where cid = ''11''',1,1,0,1,0,0,0,0,3,0,1)
GenerateInvoiceCondition

你可能感兴趣的:(职场,条件,批量,休闲,发票)