Parameter variables vs Global variables in Oracle Form
Oracle Form里,有两种全局变量,一种是Parameter variables,另外一种是Global variablesParameter variables是Form内的全局变量,Form内的所有Trigger,Program Unit都可以读取或者修改这个:parameter.var,但注意:parameter.var不能跨Form调用。Global variables是系统级别的全局变量,可在不同的Form间读取和修改。Global variables的声明方式不同于普通的变量,普通的变量我们会定义在declare区,但是Global变量不需
Compilation Sequence for Inherited Forms
假设有两个Form,Base.fmb和Function.fmb,Base.fmb为基础Form,Function.fmb引用了Base.fmb。理论上,修改了Base.fmb之后,Function.fmb也就应该被修改了。但实际上,只编译Base.fmb,Function.fmb是不会被影响到,它仍然使用旧有的逻辑。正确的方法:把Base.fmb和Function.fmb放在同一个目录下,然后先编译Base.fmb,再编译Function.fmb,这时Base.fmb的改动在Function.fmb才生效。
[小技巧]寻找菜单项所对应的SpecialX触发器
拿到一个陌生的Form,想知道某个菜单项到底在Form中对应的是哪个SpecialX Trigger,可以使用这个方法。打开Custom Code中的Show Custom Events然后点的菜单项,然后就可以知道这个菜单项到底是哪个SpecialX Trigger了。
Oracle Apps Lookup Tables,Views,Queries,FAQ
Navigation:Responsibility:Application Developer -> Application -> lookupsLookup screen is available in almost evert superuser responsibility,you can access common lookup screen. Basically records get inserted into FND_LOOKUP_TYPES and FND_LOOKUP_VALUESLookup types are list of values.The Value in the list are hard code,but the mechanism is different from the value set of type independent.The Values are stored in FND_LOOKUP_VALUES,while the values of the independent value set are stored in
FRM-18108,FRM-10102 Error when open form
新装了个XP的虚拟机,拷贝了必要的fmb和pll文件开发目录下,Form Builder(version:10)打开TEMPLATE.fmb,总是报FRM-18108,FRM-10102错误,这种错误多半是FORMS_PATH的问题,但仔细检查过注册表,FORMS_PATH参数设置应该是没有问题,并且报的相关文件都已经在开发目录下了。解决方法:1.重新拷贝了$AU_TOP/forms下TEMPLATE.fmb和APPSTAND.fmb到开发目录2.把$AU_TOP/resource下所有的pll文件又重新拷贝了一遍到开
Difference between Commit,COMMIT_FORM and Do_Key('Commit_Form')
COMMIT_FORM and COMMIT do the same thing, they apply any outstanding changes in the form to the DB and issue a DB-COMMIT.DO_KEY(\'commit_form\') executes the code which is written in your KEY-COMMIT trigger. If that trigger doesn\'t exist it does the same as COMMIT_FORM.Oracle Application Developer Guide says:Replace COMMIT with do_key(\'commit_form\'), This routine raises the exception FORM_TRIGGER_FAILURE if there is an invalid record.Sequence of Trigger Fire while Committing KEY-Commit
Difference between Do_Key('Exit_Form') and Exit_Form
In Oracle Application Developer Guide, It says following...The Oracle Applications forms have special exit processing. Do not call EXIT_FORM directly; always call do_key(’EXIT_FORM’).What\'s difference between Do_Key(\'Exit_Form\') and Exit_Form?EXIT_FORMexit_form will close form (with validation).Calling the exit_form built-in performs the standard exit form process (only). Do_Key(\'Exit_Form\')If you want to customize your exit process, you need a KEY-EXIT trigger. Then calling do_key(\'exit
OPEN_FORM, CALL_FORM, NEW_FORM and FND_FUNCTION.EXECUTE
OPEN_FORMwhen one form invokes another form by executing open_form the first form remains displayed, and operators can navigate between the forms as desired. Example:When we invoke a form from OPEN_FORM built-in, we can freely move to calling form and called form.We have FormA, FormB.We open the formB from FormA.OPEN_FOR(\'FormB\');We can move the focus to FormA and FormB without closing FormB. CALL_FORMwhen one form invokes another form by executing call_form, the called form is modal wi
How to Add Line Number into Oracle Form
Solution:1.Create a Text Item2.Database Item = No3.Calculation Mode = Formula Formula = :SYSTEM.TRIGGER_RECORDCalculation Mode property
Forms Menu Related Information
APP_SPECIAL.INSTANTIATEExample 1APP_SPECIAL.INSTANTIATE(\'SPECIAL3\',\'&Book Order\', \'POBKORD\', TRUE, \'LINE\'); APP_POPUP.INSTANTIATE(\'POPUP1\',\'First Entry\'); APP_POPUP.INSTANTIATE(\'POPUP2\',\'Second Entry\', TRUE,\'LINE\'); APP_POPUP.INSTANTIATE(\'POPUP3\',\'Third Entry\', FALSE); Example 2app_special.instantiate(\'SPECIAL12_CHECKBOX\', \'Specia&l 12 Check Box with Line\', separator=>\'LINE\'); app_special.
How to make form Read Only
Form注册里(Application Developer > Application > Function)的Parameter,加上QUERY_ONLY="YES"这样Form就为只读模式了Reference:How to Make a Form Query Only in Oracle Applications (Doc ID 1013404.102)
Form Trigger Sequence Demo Form
Form Trigger太多太庞杂,新手往往很难上手,加上一些Trigger有点偏门,用的比较少,真到想用的时候,又不知道从哪下手。所以之前就有想法写一个Demo Form,用于显示Trigger的执行顺序,今天发现已经有人写过这个东西了,也就不用重造这个轮子了。作者:Francois Degrelle(Oracle ACE)Site:http://sheikyerbouti.developpez.com/tutoforms10g/tutoforms10g.htm可以从上边的页面下载,不过需要注册(法语),
frmcmp.sh报FRM-91500
[oracle@bej301441 ~]$ frmcmp.shFRM-91500: Unable to start/complete the build.Reason:frmcmp.sh需要GUI显示,如果通过putty之类的SSH客户端连上服务器的话,无法GUI展示,所以命令会报错。Solution 1:The only catch is when you use frmcmp.sh you need to be able to launch an X session. The easiest way to check is by running xclock and seeing that the clock appears. If not you need to set the DISPLAY env variable to your computers IP. Such as: export DISPLAY=&l
Oracle Forms Versions
IAF 2CharacterNo IDEFastForms+IAG 4Character SQL*Forms25Character SQL*Forms2.35CharacterNew IDE, No PLSQL, User Exits, INP ASCII File, FRM Runtime FileSQL*Forms36CharacterMajor Rewrite, New IDE, PLSQL, X Support, Generate code to enforce constraintsOracle Forms4.06-7GUI / CharacterMajor Rewrite, New IDE, FMB source binary file, FMX Runtime, optimized for Client-Server. New interface is slow, buggy and not popular with client base.Oracle Forms4.57GUI / CharacterMajor Rewrite
Set_XXX_Property Build-Ins
Build-In List· SET_APPLICATION_PROPERTY· SET_BLOCK_PROPERTY· SET_CANVAS_PROPERTY· SET_FORM_PROPERTY· SET_ITEM_PROPERTY· SET_ITEM_INSTANCE_PROPERTY· SET_LOV_PROPERTY· SET_MENU_ITEM_PROPERTY· SET_PARAMETER_ATTR· SET_RADIO_BUTTON_PROPERTY· SET_RECORD_PROPERTY· SET_RELATION_PROPERTY· SET_REPORT_OBJECT_PROPERTY· SET_TAB_PAGE_PROPERTY· SET_VIEW_PROPERTY· SET_WINDOW_PROPERTYExampleset_item_
(V45) Trigger Execution Sequence in Forms 4.5
(V45) Trigger Execution Sequence in Forms 4.5 ============================================= Introduction This document lists the order in which triggers fire in Oracle Forms 4.5: o The first column, Action, describes the function to be performed (e.g. deleting a record). o The second column, Trigger Firing Order, describes the order in which triggers fire after a function is performed. o The third col
Oracle Form写的九宫格游戏(Sudoku Game)
高人在民间,无意间发现了一牛人用Oracle Form写的九宫格游戏(Sudoku Game),有兴趣的童鞋可以挂在自己EBS系统里,做账做累了玩玩:)详见原帖:SUDOKU.fmb -- An Oracle Forms Sudoku game programForm源码下载:Click here to download sudoku.fmb 304 KB
Dynamically Change Record Group in Form
From SQL Query1. Create a Record Group(RG)2. Create RG SQL Query asSelect 1,2,3,4,5 from dual;Make sure you set the datatype accordingly w.r.t your col in the dynamic query to be used in the below package.Here 1,2,3,4,5 represents the number of columns for your query3. Create an LOV an attach this RG to it4. Add the below logic to the trigger, Click on the field to which LOV is attached. it will show up.DECLARE result Number; rec_id RecordGroup; rwcnt NUMBER; p_lovname VARCHAR2(40);
Triggers in Oracle Forms
Triggers in Oracle FormsTriggers are blocks of PL/SQL code that are written to perform tasks when a specific event occurs within an application. In effect, an Oracle Forms trigger is an event-handler written in PL/SQL to augment (or occasionally replace) the default processing behavior. Every trigger has a name, and contains one or more PL/SQL statements. A trigger encapsulates PL/SQL code so that it can be associated with an event and executed and maintained as a distinct object.Block Process
poplist
How to populate poplist item? Your client has a form that contains a product description. They don’t want that their data entry staffs to type a product description. You, as a programmer, have been asked to change their form so that the product description item is populated from the PRODUCT table. They therefore are able to select the product description. You need to change the “text item” object