PROGRAM Missing_CheckGlobals; {-- *************************************************************************** -- ** Descr. : A demo script that looks for a given searchstring in the W-N-F-I -- ** trigger and reports if it can't find it! -- *************************************************************************** -- ** 17/12/01 1.001.00 Initial Creation, muellers@orcl-toolbox.com -- ***************************************************************************} var ps : TParamScreen; v_obj : longint; x : tparamboard; i : integer; frm : integer; plsql : string; ts : tstringlist; formsname : string; fname : string; shortname : string; s : string; BEGIN ps := TParamScreen.create; s := extractfiledir(paramstr[0]); x := ps.AddBoard('Analyze missing check_globals call',picOptions); x.addparam(parLabel,'MYLABEL','Please select the basepath of the modules that you wish to analyze for missing check_global call:','',''); x.addparam(parPathname,'MYPATH','Basepath',s,''); x.addparam(parLabel,'MYLABEL2','... and specify the filename for the results:','',''); x.addparam(parsaveFilename,'P_LOGSAVE','Log Filename','c:\miss_checkglobals.txt',''); x.addparam(parLabel,'MYDBLAB','Connection to use:','',''); x.addparam(parDatabaseLogon,'MYDB','Database',{'keyowner/ty12@ty12'}'',''); if ps.ShowParamScreen('') then begin fname := ps.paramvalue('P_LOGSAVE'); deletefile(fname); ts := GetFileList(ps.paramvalue('MYPATH') ,'*.fmb', true); logadd('number of objects: '+inttostr(ts.count)); if ps.paramvalue('MYDB')<>'' then api_connect(ps.paramvalue('MYDB')); for i := 0 to ts.count-1 do begin try frm := api_loadmodule(ts.strings[i],false); shortname := rpad(extractfilename(ts.strings[i]),20); formsname := generic_GetTextProp(frm, D2FP_NAME); logadd(formsname+' ('+inttostr(i+1)+'/'+inttostr(ts.count)+')'); v_obj := Generic_FindObj(frm, 'WHEN-NEW-FORM-INSTANCE', D2FFO_TRIGGER); if v_obj = 0 then begin saveappendstring(shortname+'!!!! no when_new_form_instance trigger found !'+c_cr,fname); end else begin plsql := generic_GetTextProp(v_obj,D2FP_TRG_TXT); plsql := blendout_plsql_comments(plsql); if pos('CHECK_GLOBALS',upper(plsql)) <=0 then begin saveappendstring(shortname+formsname+'.frm.'+generic_GetTextProp(v_obj, D2FP_NAME)+' [missing call to check_globals!]'+c_cr,fname); end; end; api_destroymodule(frm); except logadd('Error loading '+ts.strings[i],logerror); end; end; api_disconnect; ts.free; host('notepad.exe '+fname,false); end else begin logadd('pressed cancelbutton on parameterscreen!'); end; ps.free; END.