设置自增加过滤条件参照内容用友软件股份有限公司U8客户服务中心99号2009年9月3日客户问题:在发货单参照订单界面的过滤界面,新增加了过滤条件-<项目编码>,但是该条件没有参照内容,需要增加参照内容为项目编码;项目编码需要参照对应的项目档案的编码点击【加载过滤方案】-【增加条件】,在过滤设计器中找到项目编码的条件,双击,进入过滤项目修改界面在过滤条件修改界面,如果要有参照需要选择编辑类型为参<参照>,选择为参照后,点击<参照ID>,参照ID中与之相关的为项目管理项目档案,选择该参照,然后【确定】重新打开过滤条件,查看<项目编码>确实有参照内容,但是参照内容不是需要的内容,订单中的项目档案在参照界面并不存在;会不会和项目大类有关系呢?对比之前的订单中的项目档案内容、参照中的档案内容和系统总项目目录中的档案内容,发现订单对应的项目大类是<管理费用项目>,而参照中对应的项目大类是<项目管理>查看订单中的项目对应的项目大类编码是00,而参照界面中对应的项目大类编码是97;查看过滤条件项目编码对应的参照ID为Fitemss97Sub_PM,对应表为Fitemss97;查询Fitemss97内容为:按此推算,<管理费用项目>对应的表为Fitemss00,查询内容为:其中正好有订单中对应的档案;无法通过参照ID实现参照内容,能否通过SQL呢?试试!查看其他使用SQl参照的条件设置为按此设置项目编码为:重新参照,显示的正是对应的项目编码,只是标题是字段名,需要改为“项目编码”将SQL语句改为selectcitemcodeas项目编码fromFitemss00,然后确定再参照,显示正确,符合客户要求;客户的要求达到了,但是扩展一下,能否将项目名称也显示出来,另外,现在只显示出一个项目大类的项目档案,能否将所有项目档案一起显示出来;将之前的语句稍微修改一下即可显示名称;1、将SQL语句改为:selectcitemcodeas项目编码,citemnameas项目名称fromFitemss00;2、标题为“项目编码,项目名称”;3、返回字段、显示字段为fld1;显示全部项目档案有些难度,因为事先并不清楚总共有哪些项目大类,SQL语句比较复杂,经过咨询确认,语句如下:declare@ctablevarchar(50),@sqlvarchar(8000)select@sql=''declareytbelwxgcursorforselectctablefromfitemopenytbelwxgfetchnextfromytbelwxginto@ctablewhile@@fetch_status=0beginselect@sql=@sql+'selectcitemcode,citemnamefrom'+@ctable+'unionall'fetchnextfromytbelwxginto@ctableendcloseytbelwxgdeallocateytbelwxgselect@sql=left(@sql,len(@sql)-len('unionall'))exec(@sql)GOSETQUOTED_IDENTIFIEROFFGOSETANSI_NULLSONGO但是此语句并不放到新增条件的SQL语句中,会有报错提示:此时想出一个方法,用触发器,将刚才的额语句设置为触发器HZW,然后在条件设置时条用触发器;设置后如下;设置后在查询,就会显示全部项目档案;