$PBExportHeader$f_addwhere.srf $PBExportComments$为数据窗口添加WHERE子句--函数 global type f_addwhere from function_object end type forward prototypes global function integer f_addwhere (datawindow f_dw, string f_where) end prototypes global function integer f_addwhere (datawindow f_dw, string f_where);string ls_old,ls_new,ls_old1,ls_old2 int li_pos,li_pos2 if f_where='1=1' then return 1 f_where='('+f_where+')' ls_old=trim(f_dw.describe("DataWindow.Table.Select")) ls_old=f_replace(ls_old,'~n',' ')// li_pos=pos(lower(ls_old),' order by') li_pos2=pos(lower(ls_old),' group by') if li_pos2>0 then li_pos=min(li_pos,li_pos2) if li_pos>0 then ls_old1=left(ls_old,li_pos -1) ls_old2=mid(ls_old,li_pos) else ls_old1=ls_old end if li_pos=pos(lower(ls_old1),' where ') if li_pos>0 then ls_old1=left(ls_old1,li_pos -1)+' where ('+right(ls_old1,len(ls_old1) - li_pos -6) ls_new=ls_old1+") and "+f_where+ls_old2 else ls_new=ls_old1+" where "+f_where+ls_old2 end if if f_dw.Modify('DataWindow.Table.Select="'+ls_new+'"')>'' then return 0 else return 1 end if end function