define mv_db char(255) function user_menu() if not has_db() then call select_db() end if let mv_db=get_db() if mv_db is null or mv_db matches " " then return end if call user_menu_int() { menu "User Menu" command "Run" "Run a user menu" call run_user_menu() command "Modify" "Modify a user menu" call modify_user_menu() command "Exit" exit menu end menu } end function function run_user_menu() error "Not implemented run_user_menu" end function function modify_user_menu() define lv_str char(255) define lv_ut1,lv_ut2 char(30) define lv_i integer define bad integer whenever error continue let lv_ut1=fgl_getenv("SYSMENUS") let lv_ut2=fgl_getenv("SYSMENUITEMS") if lv_ut1 is null or lv_ut1 matches " " then let lv_ut1="sysmenus" end if if lv_ut2 is null or lv_ut2 matches " " then let lv_ut2="sysmenuitems" end if let bad=1 let lv_str="select 1 from ",lv_ut1 prepare p1_um from lv_str if sqlca.sqlcode=0 then declare c1_um cursor for p1_um if sqlca.sqlcode=0 then open c1_um if sqlca.sqlcode=0 then fetch c1_um into lv_i if sqlca.sqlcode>=0 then let bad=0 end if end if end if end if whenever error stop if bad then let lv_str="create table ",lv_ut1 clipped," (menuname char(18), title char(60))" prepare p_cr_um from lv_str execute p_cr_um let lv_str="create table ",lv_ut2 clipped," (imenuname char(18), itemnum integer, mtext char(60),mtype char(1),progname char(60),title char(60))" prepare p_cr_umi from lv_str execute p_cr_umi end if # Tables should have been created by here end function