$PBExportHeader$f_myretrieve2.srf $PBExportComments$datasotre添加条件后retrieve--函数 global type f_myretrieve2 from function_object end type forward prototypes global function integer f_myretrieve2 (datastore f_ds, string f_where) end prototypes global function integer f_myretrieve2 (datastore f_ds, string f_where);string ls_old,ls_new,ls_old1,ls_old2 int li_pos,li_pos2 f_where='('+f_where+')' ls_old=f_ds.describe("DataWindow.Table.Select") 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) ls_old2=right(ls_old,len(ls_old) - li_pos+1) 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_ds.Modify('DataWindow.Table.Select="'+ls_new+'"')='' then f_ds.retrieve() f_ds.Modify('DataWindow.Table.Select="'+ls_old+'"') return 1 else f_ds.Modify('DataWindow.Table.Select="'+ls_old+'"') return 0 end if end function