123456789101112131415161718192021222324252627282930313233343536373839404142 |
- $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
|