西安网站建设推荐,宜宾网站制作,顺德建设局网站,张家港城市建设规划局网站新增form步骤打开模板TEMPLATE#xff0c;将其改成自己所要的名称#xff0c;删除Data Blacks中的BLOCKNAME,DETAILBLOCK,删除Canvases中的BLOCKNAME,删除Windows中的BLOCKNAME,新增自己的Windows#xff0c;Canvases#xff0c;DateBlacks#xff0c;在form级别的PRE-FOR…新增form步骤打开模板TEMPLATE将其改成自己所要的名称删除Data Blacks中的BLOCKNAME,DETAILBLOCK,删除Canvases中的BLOCKNAME,删除Windows中的BLOCKNAME,新增自己的WindowsCanvasesDateBlacks在form级别的PRE-FORM中将Blockname改成自己新增的window若区分ORG则将FND_ORG.CHOOSE_ORG;加入BLOCK的上一行在Program_unit中打开APP_CUSTOM,修改其中的为自己的window,在triggers的when_new_item_instance中加入app_window.set_title(,:parameter.org_code),将org加入form的title.1.在Form的title上加上Org_code在Form级的WHEN-NEW-FORM-INSTANCE这个trigger中加入app_window.set_title(QUERY_FIND,:parameter.org_code);即可。2.查看弹性栏位数据来源的路径system administrator--application--flexfield--descriptive--segment3.初始化viewbegindbms_application_info.set_client_info(188);end;对需要user_id才能访问的view,需要先初始化一个合法的user_id进去beginfnd_global.apps_initialize(26872,56536,401);end;4.常用代码fnd_message.debug(show message); --show出的提示窗口raise form_trigger_failure; --配合show message使用,中断Form的执行在Form open/close的时候对界面的设定例在close_window下写入,来控制多window的Form在关闭子窗口时切回到那个block上去if (wnd QUERY_FIND) then --当query_find这个window关闭的时候app_window.close_first_window; --关闭第一个window,即为关闭这个windowelsif (wnd APPROVER_UPDATE) then --当approve_update这个window关闭时go_block(QUERY_FIND); --go_block到query_find这个block上去end if;在open_window下写入以下代码来控制新window打开的方式if (wnd UPDATE_USER) then --当window UPDATE_USER被打开时APP_WINDOW.SET_WINDOW_POSITION(UPDATE_USER, CASCADE, APPROVER_UPDATE); --设定UPDATE_USER这个window在APPROVER_UPDATE这个window的左上角稍偏下点具体详见下面的介绍SET_WINDOW_PROPERTY(UPDATE_USER, VISIBLE, PROPERTY_TRUE);GO_BLOCK(UPDATE_USER); --指定要显示的blockelsif (wnd ACT) thenAPP_WINDOW.SET_WINDOW_POSITION(ACT, CASCADE, APPROVER_UPDATE);SET_WINDOW_PROPERTY(ACT, VISIBLE, PROPERTY_TRUE);GO_BLOCK(ACT);end if;app_window.set_window_position详解procedure APP_WINDOW.SET_WINDOW_POSITION(child_window varchar2,style varchar2,parent_window varchar2 default NULL);说明:说明子窗口的显示位置参数:child_window 指定位置的子窗体名称style 子窗口的定位类型parent_window 子窗口的上阶窗口名称style:CASCADE 多个窗口从左上向右下排列RIGHT,BELOW 子窗口在父窗口的右边或者下方,且父窗口不会覆盖子窗口OVERLAP 子窗口和父窗口重叠,对齐父窗口左边,但向下位移0.3CENTER 子窗口在父窗口的中间显示FIRST_WINDOW 显示在toolbar的下方通常是主窗口处理查询时候,如果查询界面栏位不下条件,就表示这个栏位为空值方法:在显示记录的block下的KEY-EXEQRY这个trigger下做判断然后将最终的where条件赋值给这个block的default_where里面去。代码如下declarev_default_where varchar2(400); --定义变量用来存放这个block的初始where条件V_WHERE VARCHAR2(2000); --定义变量用来存放新的where条件beginv_default_where:get_block_property(:SYSTEM.CURSOR_BLOCK,DEFAULT_WHERE);--获取此block初始的where条件V_WHERE:v_default_where; --将初始的where条件赋值给V_WHERE这个变量中if v_default_where is null then --当初始条件为空时,并条件的时候不需要加where,and之类if :QUERY_FIND.EMP_CLASS_CODE is null then --如果查询界面的那个栏位为空V_WHERE:V_WHERE || EMP_CLASS_CODE is null; --将查询条件并上此栏位is nullelseV_WHERE:V_WHERE || EMP_CLASS_CODE||:QUERY_FIND.EMP_CLASS_CODE;--查询界面的栏位有值就用栏位等于的sql查询语句end if;else --当初始条件不为空,并查询条件时需要加andif :QUERY_FIND.EMP_CLASS_CODE is null thenV_WHERE:V_WHERE || and EMP_CLASS_CODE is null;elseV_WHERE:V_WHERE || and EMP_CLASS_CODE||:QUERY_FIND.EMP_CLASS_CODE;end if;end if;set_block_property(:SYSTEM.CURSOR_BLOCK,DEFAULT_WHERE,V_WHERE); --将新的查询条件赋值给这个block的default_where进行查询clear_record; /*清空否则Form下次查询的时候会把前一次的条件带入*/EXECUTE_QUERY; --执行查询命令set_block_property(:SYSTEM.CURSOR_BLOCK,DEFAULT_WHERE,v_default_where); --将原默认的default_where值重新恢复回去end;取消lov的验证set_record_property(:system.trigger_record,:system.trigger_block, STATUS,QUERY_STATUS);常用于界面上的栏位值来源于select ....into...而此栏位又有绑定lov的情况下防止以查询方式进入界面没做任何操作就需要保存或者界面上栏位在Table中只记录id用name查找时直接用select name into 栏位。设置栏位属性值app_item_property.set_property(ACT.NEW_ACT,Required,PROPERTY_TRUE);ACT.NEW_ACT block的栏位Required 属性名称PROPERTY_TRUE 属性值调用block的triggerAPP_RECORD.FOR_ALL_RECORDS(ACT_LIST,SELECT_COUNT);ACT_LIST block名称SELECT_COUNT trigger名称5.当一个window上有多个canvas的时候往往会造成某个canvas不显示解决此方法可用show_view(canvas)命令其中canvas为需要显示的canvas名称。注意当使用show_view来显示canvas时焦点会回到之前的canvas上这样在show canvas_stacked的时候就不会有问题但在show新打开的window的时候就会造成要显示的window闪一下就跑到之前的window的后面去解决此问题可以调用app_custom.open_window(ACT_LIST); 来show你要的window,其中ACT_LIST为block名称。6.弹出yes or no的询问对话框FND_MESSAGE.SET_STRING(此核流程中已有核人T是否⑵h除再}u);v_ques_no : FND_MESSAGE.QUESTION(YES,NO,NULL);if v_ques_no1 thendel_lines(p_head_id);add_lines(p_head_id,p_organization_id);elsenull;end if;7.单击按钮使得下一个要弹出的界面值清空go_block();clear_block(no_validate);8.FND_STANDARD.SET_WHO; 插入建立者建立日期最后更新者最后更新日前最后登陆人等信息9.清空block中资料app_find.clear;清除当前block的值不可用go_block();的方式清除其他的blockapp_find.clear_detail();清除指定block的值