VIEW 有数据, BLOCK 却没有数据显示
用system:last_query 查询也有数据[@more@]1.其中一个ITEM 为CHECK BOX , 如果初始值和 UNCLICK 和数据库的不一样,那么整个块数据显示不出来!2. 其中某个ITEM 为required ,但是数据库的这个ITEM 没有数据NULL ,或者是数据不符合
stacked canvas 注意
1.FRM-40112 2.要用菜单栏 view-stacked canvas 才可以显示stacked canvas[@more@]On a stack canvas using a button , then I add a when_button_press : begin go_item('CONTROL.EMPNO'); hide_view('stack'); end; prompt Error: FRM-40112: Attempted go_item to non enabled item Control.empno but the item :empno ‘s enabled is YES . so……what is the problem ? 原因是没有给empno定位画布!
学习forms 中碰见的几个问题
工具栏画布的显示get_application_property for 循环的计数器可以不声明就使用.[@more@]我在一个form里面同时用了一个内容画布, 一个工具栏,可是运行的时候只能显示工具栏,能不能让两个画布同时显示? Set the properties in window properties GET_APPLICATION_PROPERTY Built-in Description Returns information about the current Oracle Forms application. You must call the built-in once for each value you want to retrieve. declare cursor
FORM 中输入一条记录自动保存?如何做到
在网上找了一些资料,不是实现不了就是不够完整.[@more@]1.建立parameter method_ISMODIFY, 初始值为FALSE 2. BLOCK 级别的 when-new-record-instance if :PARAMETER.method_ISMODIFY = 'TRUE' THEN :system.message_level := 25;commit_form; :system.message_level := 0;:PARAMETER.method_ISMODIFY := 'FALSE';END IF; 3. 在行上最后一个ITEM ,when-new-item-instance 写::PARAMETER.method_ISMODIFY := 'TRUE';用一下方法要结合 写INSERT 语句,不如这个效率高FORMS_DDL('commit_form'); FORMS_DDL('commit');
列表项空值
列表项空值 在执行时,在列表项下面有一个空项我怎么去掉? [@more@]改为必输项就行了, 但是必须得给定初值啊(item中的required 值改为yes)在when-new-form-instance触发器里,用delete_list_element把最后那项空白的删除就行了 如果不小心多了1行,那么需要删除item ,然后再重新添加ITEM, 重新添加list value
如何遍历一个BLOCK
LOOP--do something...IF :SYSTEM.LAST_RECORD = 'TRUE'THENEXIT;END IF;NEXT_RECORD;-- v_i := v_i + 1;END LOOP;[@more@]--example :go_block('detail');FIRST_RECORD;LOOPif :cancel_flag = 'Y' thenUPDATE xxcompany_oe_goods_label_allSET cancel_flag = 'Y',cancel_time = NVL (:header.cancel_time, SYSDATE)WHERE gl_id= :gl_id;end if; COMMIT;IF :SYSTEM.LAST_RECORD = 'TRUE'THENEXIT;END IF;NEXT_RECORD;-- v_i := v_i + 1;END LOOP;:parameter.p_query := 'y';EXECUTE_QUERY;:parameter.p_query := 'n';
1.堆叠画布 2.calendar日期输入器 3.tab 切换
1.stacked canvas1.设置画布属性: canvas stacked2.when-new-form-instance : SHOW_VIEW('HEADERS_STACKED');堆叠画布不要压住内容画布[@more@]2.calendar日期输入器calendar 1.subclass infomation: text_item_date2. lov choose:enable list lampvalidate from list ->no3. write a trigger key-listvalcalendar.show标签画布和数据块的排序一致lov 从view 里面查询有没有方法使得传递块名字到program unit 里面的函数?alias required in SELECT list of cursor to avoid duplicate column names : 指针里面有重复的数据3.tab切换块级
有些Form,在第一次进入的时候需要你选择一个ORG:弹出更改组织的窗口
有些Form,在第一次进入的时候需要你选择一个ORG,比如:PO Module->Receiving->Receipts系统的标准form在还没有获得组织参数时会先弹出更改组织的窗口,选取了组织后会继续弹出自己的form窗口,这是怎么实现的。怎么在自己的form中实现这样的功能。谢谢!![@more@]增加Choose ORG功能: (1):首先在parameter中加上CHART_OF_ACCOUNTS_ID,ORG_NAME,ORG_CODE,ORG_ID四个参数 (2):在form level 的trigger中的pre—form中加上FND_ORG.CHOOSE_ORG; (3):在form level 的trigger中的when—new—form—instance中加上 APP_WINDOW.SET_
如果一个FORM 查询出来的结果 可能不连续,数量也不一定 ,
要把查询出来的数据传到reports 里面如何做到[@more@]我提交的参数个数不一定,可能是1个也可能是100个, 也可能是67 个 解决方法: 1.把结果存到临时表中去再打印出来。2. 查询结果不是由你的参数定义好的么,再不行就把last_query的where 后面的作为参数传进去了 其实就是在FORM 上把参数处理好.在调用报表之前先执行查询
挂form 时候出现APP-FND-02900
选择表单(FORM)不能保存,同时有这个提示[@more@]解决了,特性里面,选择为FORM默认是SUBfunction..我记得默认就是FORM
如何解决Form中不能导出数据和不能输出报表的问题
Metalink推荐的解决方法。[@more@]如何解决Form中不能导出数据和不能输出报表的问题 1、以root用户登陆 2、切换到orporcli用户 #su orporcli 3、启动数据库 $/application/porcli/oracle/product/920/appsutil/scripts/PORCLI_gzebs/addbctl.sh start 4、启动数据库监听 $/application/porcli/oracle/product/920/appsutil/scripts/PORCLI_gzebs/addlnctl.sh start PORCLI 5、退出oraporcli用户 $exit 6、切换到apporcli用户 #su apporcli 7、启用环境变量 $cd /application/porcli/applmgr/1159 $. ./APPSPORCLI_gzebs.env (gzebs是当
如果要使用时间
如果有时间的话, 用datatime , 不要用date[@more@]1.用datetime 类型,无论是否基于数据库.2.FORMAT MASK hh24:mi:ss 输入000000 显示为00:00:003.根据上面的操作,那么保存的是一个date类型 但是显示为00:00:004.如果时间从LOV过来,那么datetype要一样5.LOV不能显示时间,就多写一个查询栏位 substr(to_char(c.lag_time, 'yyyy-mm-dd HH24:MI:SS'), 11, 22),这个只给用户看而已!6.如果时间为负,最好能用一个click box 选中来表示 用date 表示时间, 不存在需要为检验数据写额外代码如果有时间的话, 用datatime , 不要用date把日期转换成星期
SET_ITEM_INSTANCE_PROPERTY
SET_ITEM_INSTANCE_PROPERTY('PRGCLASS.PROGRAM_COLOR_ITEM', CURRENT_RECORD, VISUAL_ATTRIBUTE ,'TEXT_BG_MTO');set_item_property 如果数据块只有一行,用这个 SET_ITEM_INSTANCE_PROPERTY 设置多行数据块某一行的属性[@more@]
program unit 和pl/sql libraries 有什么区别
pl/sql可放一些共用的程序,不同的form只要加载了都可调用其中的程序,而program unit只是在一form中可用如果在program unit 里写了一个package ,里面有一个procedure. 那么, 在trigger 里面直接调用就可以了,不用加package 名字,pl/sql需要么[@more@]需要, 但是库文件可不同的form可调用呀一个是属性类它用于具有相同属性的继承,一个是视觉属性也就是修改item的可视性
form 挂到oracle 步骤
1. 开发template.fmb 2.上传(FTP) 到 /utsrohs/applrohs/utsrohsappl/xxuts/1.0.0/forms/US/3.用SecureCRT 远程连接 ,login: applrohsPassword: Last login: Tue Aug 15 11:59:45 from 172.21.201.14bash-2.03$ pwd/utsrohs/applrohsbash-2.03$ cd $xxuts_topbash-2.03$ pwd/utsrohs/applrohsbash-2.03$ cd $XXUTS_TOP bash-2.03$ pwd/utsrohs/applrohs/utsrohsappl/xxuts/1.0.0bash-2.03$ cd formsbash-2.03$ cd usbash: cd: us: No such file or directorybash-2.03$ cd USbash-2.03$ pwd/utsrohs/applrohs/utsrohsappl/xxuts/1.0.0/
line_num
一、建立相关Parameters二、需要在块的下列触发器事件中编码三、需要在 line_num item一级的下列触发器事件中编码四、有关行号唯一性的检查[@more@]一个 package ,如果是主从关系的form ,需要额外在包里调用header 的函数 . 如果是有其它不同的块view , 那么需要额外写两个procedure or function . 一个是 maxvalue , 一个是unique.NOTICE:1. line_num 初始值
GET last query
--in one triggerDECLARE V_LAST_QUERY VARCHAR2(1000);BEGIN V_LAST_QUERY:=GET_BLOCK_PROPERTY('detail',LAST_QUERY);PAUSE ; MESSAGE (V_LAST_QUERY);END ;[@more@]
Form 导出乱码的问题
有时候,建了新库会忘记修改一些设置,Form导出tsv数据中文全部是“靠”就是常见的问题。这种乱码的问题跟sqlplus连数据库导致乱码的原理是一样的,都是因为客户端的字符集跟服务器端的字符集不一致所致。[@more@]在sqlplus中,字符集的设置是通过设置nls_lang来实现的,EBS中则是通过设置首选项中的“客户机字符编码”来实现。以设置一般首选项。路径: 首选项-> 一般首选项 -> 客户机字符编码用Excel打开时,默认使用默认编码(GB2312)打开。
自己开发的form获得当前库存组织
fnd_profile.value('mfg_organization_id')[@more@]
料号转换程序终于开发完成
ENG05_Update 06 Item Attributes写了一个form , 2个package ,代码量5000左右,小程序,呵呵,但是该用的都用了,五脏俱全通过这次开发,熟悉了以下:1. 简单Form 二次开发(应用template 模版进行二次开发, 写常见的触发,调用自己/系统的request 等)2. ERP接口开发能力3. 熟练运用Cursor ,写package 等PL/SQL 编程能力,应该说是有一个大的飞跃。(写了两个package ,其中一个后台copy mtl_system_items_b 表里的数据,另外一个是并发程序,通过form 来调用,以报表的形式显示更新结果) 4. 对ERP里的form, function, menu