首页 > Form开发 > Form练习问题大杂汇

Form练习问题大杂汇

各位请把自己Form练习过程中遇到的各种问题上报到这里。
回帖格式:

问题现象描述:

问题分析:

解决方法:

 

 

关于作者:

昵称:Jack.shang
档案信息:jack.shang 一位从技术走向管理,再从管理走向市场的普通行者
联系方式:你可以通过syfvb@hotmail.com联系作者
点击查看发表过的所有文章...
本文永久链接: http://blog.retailsolution.cn/archives/2775

 

 

对本文的评价:

 

 

分类: Form开发 标签:
  1. 2011年8月16日15:25 | #1

    1)
    现象:Folder Form打开时报告“找不到项的引用” ,进一步提示为“XXX块.XX项”无效引用

    分析:发现其他Item都可以移动,就其中某个item移动无效,对比发现Prompt块中该Item对应的DataBlock中的Item拼写错误,导致找不到匹配的item.

    解决方法:把Data块中的item拼写更正,保持与Prompt块中对应的item一致即可。

  2. 2011年8月16日15:28 | #2

    2)
    现象:当同时存在content画布和 堆叠画布的时候,发现有时content画布上的内容没有显示。

    分析:有时第一个导航item存在与promot画布上,且在window中又未设置主画布为content画布时,会出现这种情况。

    解决方法:设置window的primary canvas 为对应的content画布即可。

  3. 2011年8月16日15:30 | #3

    3)
    现象:Form编写一切按照教程进行,但在EBS中运行时,一片空白,什么都不显示。

    分析:这可能是在服务器上编译时,路径不在$AU_TOP/forms/US的原因。

    解决方法:确保编译时路径在$AU_TOP/forms/US;

  4. cat
    2011年8月16日15:50 | #4

    4)
    现象:手电筒查询按钮,点一次查询后就变灰了,查询完成后也没有恢复成亮的,导致不能第二次查询

    分析:这是主数据块(被查询的数据块)上When-new-record-instance触发器的执行层次问题

    解决:改一下主data block的触发器WHEN-NEW-RECORD-INSTANCE ,把属性execution hierarchy改为after。

  5. cat
    2011年8月16日17:45 | #5

    5)
    现象:Folder的Form 点开后什么显示也没有,但在when-new-form-instance中使用fnd_message.debug(‘kk1’);有显示。
    分析:有同学调试发现如果第一个导航快设置为prompt块可能导致该问题
    解决方法:把主块设置为第一个导航块(在formbuilder中放在prompt块上方)

  6. 樊文达
    2011年8月16日23:54 | #6

    问题现象描述:今天在项目上碰到的一个问题,打开时不断报告错误,诸如“invalid object name”,“invalid block name”,“找不到XXX canvas” 等等,总是有点不完的错误。
    问题分析:这时可能是运用define_folder_block(,,,,省略,)定义FOLDER时,第一个参数已经存在,或者其余的参数拼写错误,导致FORM找不到合适的BLOCK,CANVAS等等。
    解决方法:检查FORM级TRIGER—–>WHEN-NEW-FORM-INSTANCE,检查define_folder_block(),下面给出该过程的详细定义:
    define_folder_block(object_name varchar2, –唯一对象名,自己定义,不能与已存在的重复
    folder_block_name varchar2 default ‘FOLDER’, –FOLDER BLOCK 的名称,注意拼写,最好用大写,下同
    prompt_block_name varchar2 default ‘PROMPT’, –PROMPT BLOCK 的名称
    folder_canvas_name varchar2 default ‘FOLDER’, –用于显示FOLDER BLOCK的画布名称
    folder_window_name varchar2 default ‘FOLDER’, –用于显示上述画布的窗口名称
    disabled_functions varchar2 default null, –是否要屏蔽某些FOLDER功能,如移动prompt项,修改等,不需要屏蔽则null
    tab_canvas_name varchar2 default null, –若是TAB FOLDER,这里填写tab画布名称,非某一page
    fixed_canvas_name varchar2 default NULL) –若是TAB FOLDER,这里填写像非TAB中,用于显示固定item所处的canvas名称

  7. liananse
    2011年8月19日13:21 | #7

    这个问题竟然纠结了一晚上加一上午,早该先看看啊。。。@cat

  8. handy
    2011年8月19日19:57 | #8

    现象:执行HAND_PLSQL_UTOCREATE.pck显示有编译错误
    解决方法:使用apps登陆后再执行就好了

  9. cat
    2011年8月20日10:19 | #9

    现象:基于view的form开发时,自动生成代码的函数需要一个主键和sequence 但原来的表上没有主键,也缺少sequence;所以执行报错;
    解决方法:原来表上规划了主键:SUB_CONTRACT_PATH_ID,只是没有建立,同学可以自己建主键 和sequence:

    1、在cux下建立主键和sequence:
    ALTER TABLE SYF_CONTRACT_PATH ADD CONSTRAINT SYF_CONTRACT_PATH_PK1 PRIMARY KEY(SUB_CONTRACT_PATH_ID);
    create sequence SYF_CONTRACT_PATH_S;
    2、在APPS下建立sequence的同义词:
    create synonym SYF_CONTRACT_PATH_S for cux.SYF_CONTRACT_PATH_S;

  10. cat
    2011年8月20日10:20 | #10

    @cat
    创建视图:create or replace view SYF_CONTRACT_PATH_V as
    select SYF_CONTRACT_PATH.rowid ROW_ID, SYF_CONTRACT_PATH.*
    from SYF_CONTRACT_PATH

  11. 樊文达
    2011年8月20日11:49 | #11

    问题现象描述:运行FOLDER form时,发现stacked canvas横向滚动条微微压住最后一行,无论怎么调也调不好

    问题分析:因为folder有自动排版功能,stacked canvas显示的高度=prompt显示项的高度+标题与文本项之间距离+(folder文本项的高度+固定行距)*行数,所以当你手动拖动stacked canvas画布布局时,“标题与文本项之间距离”就不精确了,导致最后一行被压住。

    解决方法:提供一个美观的数值,prompt显示项的高度(0.25),坐标(X,Y)=(0,0);folder文本项的高度(0.25),坐标(0,0.25);

  12. cat
    2011年8月20日13:33 | #12

    7、现象:Form在本地和服务器编译正常,但在运行时报错误:无法解决对项:folder_tools.open的引用; 无法解决对项:folder_tools.save ,folder_tools.new,folder_tools.delete的引用;

    分析:folder_tools.save 在form中实际是存在的,但运行时错误可能是因为引用的绝对路径问题,有些同学在form builder 的个人偏好设置中,在subclass Tab页-〉subclassing path 设置keep,导致fmb中保留了绝对路径引用,从而导致该问题。
    解决方法:
    把设置修改成Remove,然后重新subclass 对象组即可。

  13. cat
    2011年8月20日16:51 | #13

    8、现象:有同学在开发弹性域的时候DF未能显示,且报” 不能解决对项:S_XXX_CONTRACT_PATH.DF的引用,检查主数据库及prompt块上均已设置DFitem,且均设置为非数据库项的,这是怎么回事呢?
    分析:经检查发现是同学对FND_DESCR_FLEX.DEFINE() 中的参数理解有误,第一个参数应该是BLOCK的名称,有同学误写成Table的名称,导致该错误。

    解决方法:正确理解参数的含义并使用之,该函数的具体参数解释可参考120devg.pdf 第287页。

  14. cat
    2011年8月20日16:54 | #14

    9、现象:有同学在开发弹性域的时候,什么错误都没有,但DF就是没有显示出来。
    分析:检查发现该同学在运行时已经保存了多个folder, 且每次打开Form都会打开一个默认的Foder,而该Folder在保存的时候还没有加DF,所以这些Folder都没有包含DF 。
    解决方法:删除该Form的所有Folder,重新打开该Form即可。

  15. JAMY
    2011年8月21日10:54 | #15

    现象:在第一个TAB页中添加了弹性域,然后运行时第一个TAB页只显示了一个字段。
    分析:TAB页中的弹性域的ITEM字段位置顺序有问题,DF和第二个TAB页的ITEM放在了一起。
    解决方法:把DF放在第一个TAB的那些ITEM后。

  16. 章维
    2011年8月23日13:57 | #16

    现象:在基于 no table 的folder 基础上, 删除原来添加两个数据块,
    然后添加自己的数据(只是数据源不同),之后得到的form显示正常,能正常CURD
    只是不能更改列宽,交换列。报错FRM-99999:出现1412错误。

  17. Daniel
    2011年8月23日15:33 | #17

    来一个坑爹的。。。

    现象:打开Reports Builder时,由于是Win7旗舰版,Reports Builder显示效果与Win7的Areo冲突,就会自动黑屏,然后自动关闭了Areo然后回到没有视觉特效的界面,Reports Builder最小化到任务栏。但是怎么点都点不开。

    分析:在任务管理器里可以看到软件正常启动并运行,而且最近也没用Reports Builder,软件本身出问题的可能很小。那既然是显示效果的问题,就有可能出现不可理解的原因,正常点击任务栏图标不能最大化,在朱亮同学的帮助下,试了试鼠标右键点击任务图标选择最大化。

    解决方法:在任务栏的Reports Builder上右键点击鼠标,选择最大化,就可以了。

    ——!狂汗!坑爹啊!最小化了之后必须要右键点击选择最大化才行!困扰了我一天啊!!
    PS:还有其他的问题整理后再发。

  18. zhongjie.zhang@hand-china.com
    2011年8月27日09:33 | #18

    现象:用Oracle BI publisher desktop 工具预览示例文档中的RTF文件时,显示不能预览,而是弹出另存为。。。
    分析:当前用户对该文件的权限不够,所以不能在源文件上进行修改和其他一些操作,才会弹出另存为对话框,导致不能预览。
    解决方法:修改当前用户对该文件的权限为完全控制就OK了。

  19. jari
    2011年9月1日16:22 | #19

    FORM遇到问题:
    新建两张表department,employees,employees的主键employee_id
    和一个view:employee_v
    新建一个FORM:EMP_TEST_831,从employee_v中取数。
    编译好FORM后,新增数据,报错:

    ORA-01403: 未找到任何数据

    ————————————————————–
    FRM-40735: ON-INSERT 触发器提出了不能处理的异常状况 ORA-06502。

    将FORM中的insert语句取出到pl/sql中执行,报主键约束错误,检查了一下,employee_id 唯一!
    重新建employees表,将主键约束删除。

    FORM中的insert语句在pl/sql中执行成功,数据成功插入到employees表中。
    将FORM编译后,新增数据,报错:

    ORA-01403: 未找到任何数据

    ————————————————————–
    FRM-40735: ON-INSERT 触发器提出了不能处理的异常状况 ORA-06502。

    但查询操作正常执行。

  20. jari
    2011年9月1日16:24 | #20

    ps:
    同义词、sequence、synonym等都创建了

  21. cat
    2011年9月2日16:06 | #21

    @jari
    On-insert 一般会取回rowid 赋给block上的item row_id,如果row_id长度属性太小可引起Exception. 建议对Form的On-insert 触发器使用fnd_message.debug()跟踪,定可发现问题发生在那里。

  22. Unique
    2011年9月13日23:56 | #22

    @章维
    好像是某个数据块的滚动条没有添加

  23. 3743
    2011年10月27日19:49 | #23

    @jari
    可能是你对view的row_id没有引用属性类引起的!

  24. 2011年11月30日13:47 | #24

    10、现象:有同学做出来的Form 状态不正常(比如新增记录时,输入项目没有显示为白色或者黄色, 按F11查询时,也不能显示蓝色背景,不能增删改)
    可能原因:Datablock上的用于输入的item 的property class属性错误的设置成了prompt multrow属性。
    解决方法:将Datablock上的用于输入的item property class属性设置为正确的text_item即可。

  25. Lumen.Su
    2011年11月30日14:45 | #25

    FOLDER FORM中的一个细节问题:
    现象:
    canvas_stacked 在form中显示不全,在移动列宽度时报“FRM-41081 不能移动,:无效位置”的错误
    原因:
    在prompt数据块的item中,data block列表中需要显示在prompt画布的item的上下顺序必须与画布上的item的排列顺序一致
    解决:
    在data block的item列表中非canvas_stacked的item不能穿插在 canvas_stacked画布的的item中,需要按照顺序排列

  26. 2011年11月30日17:29 | #26

    11、现象:Folder初始化时报无效的ID ,移动Item时也报无效的ID
    原因:可能是某个固定的ITEM拼写错误,比如FOLDER_TITLE 拼写成FOLDR_TITLE,导致Folder找不到它想要的ITEM。
    解决方法:仔细检查每个ITEM的名称,看是否打错了。

  27. 静静的天空
    2011年12月1日11:40 | #27

    最近在学习EBS的form的时候,发现大多数时间都是在干一些蛋疼的页面布局的问题,有时候明明已经调好了,结果当保存的时候才发现蛋疼的form builder这个IDE太脆弱了,估计是某个属性设置错了,然后就导致IDE崩溃,而且不报错。这估计对开发人员来说是无比坑爹的一件事。鉴于布局真TM复杂,就去网上狂搜,终于发现了一篇好文章,对照文章看自己的例子,估计对布局的理解会更深入一层,这里分享下地址:
    http://blog.sina.com.cn/s/blog_5461478301008jea.html。

  28. Lumen.Su
    2011年12月1日19:17 | #28

    实现手电筒窗口查询中,在目标块中需要添加两个块级触发器

    1. PRE-QUERY
    其中用到的 APP_FIND.QUERY_RANGE 过程中有3个参数,low_value,high_value,db_item_name,前两个用于区域查询,单指查询时设定为一样的,第三个是待查询的block.item

    2.QUERY-FIND(非系统定义,需自定义)
    其中用到了app_find.query_find 过程,三个参数(block_window,find_window,find_block)
    block_window The name of the window the Find Window is invoked for
    find_window The name of the Find Window
    find_block The name of the block in the Find Window

    注意:第一个是窗口名,即待查块所在窗口名,不是待查找块的名,否则会报“无效的窗口ID”的错误

  29. Lumen.Su
    2011年12月1日19:32 | #29

    现象:手电筒窗口查询中,从APPSTAND.fmb中拉入自己的form中得QUERY_FIND数据块,画布,窗口不能重命名(如果只有一个,不重名没有影响,但是如果需要多个查询时,必须重命名)

    解决:在拉入自己的form的时候,弹出对话款,要选择是 “subclass”还是”copy”,如果要改名,就要选择copy选项,然后更改新加入的QUERY_FIND 数据块,画布,窗口 的subclass information属性,分别为Block , canvas , window ,并且这样引入的object group是可以删除的;
    如果是用subclass选项引入的,则subclass information,不需要设置,但是不能重命名,

  30. Lumen.Su
    2011年12月1日21:46 | #30

    现象:form添加了DDF之后,不能增删改,报“ora-00904,无效的DF” (描述性弹性域的block item名叫DF)

    原因:DF 这个item的 datebase item 属性 默认是 yes, 但是 没有指定DB中的任何一列,所以无法指定到DB

    解决: 修改DF 这个item(如果是folder型的,则会有两个DF,这里指的是非prompt的那个DF)datebase item 改为no

  31. 杨志威
    2011年12月2日11:03 | #31

    @Lumen.Su
    赞一个,遇到同样问题

  32. 杨志威
    2011年12月2日11:05 | #32

    关于编译的问题:查找了很久找不到过程里面的代码错误,但是重新打开formbuilder就可以通过编译,不知道大家有没有遇到过,分享下。

  33. Lumen.Su
    2011年12月5日10:52 | #33

    现象:手电筒窗口查询时,需要设置query_find块的 pre-navgation-data-block和next-navgation-data-block ,开发手册中建议设置是:query_find块的下一导航块为目标块,上一导航块为自身

    这样的导航设置如果在弹出查询框时正常查询时 是没有问题的,但是如果是打开手电筒,没有任何操作直接关闭,则Query_find窗口无法导航回到主窗口,底部消息显示“FM-40110:在第一块”

    解决:设置导航属性的时候,应该设置为:
    pre-navgation-data-block:主数据块(待查数据块)
    next-navgation-data-block: Null

  34. Lumen.Su
    2011年12月5日10:59 | #34

    现象: 手电筒窗口查询时,弹出查询框后无任何操作,直接关闭查询窗口,无法正常关闭,弹出一个 莫名奇妙的框,标题是“进展”,下面有一灰一红两个输入框

    原因:query_find 导航设置出错,

    解决:设置导航属性的时候,应该设置为:
    pre-navgation-data-block:主数据块(待查数据块)
    next-navgation-data-block: Null

  35. 静静的天空
    2011年12月6日10:08 | #35

    在做EBS下form的时候遇到个很蛋疼的问题,跟着教程走,做tab的forder开发,结果显示的时候,第一次进入只能显示canvas_stacked_fixed_field这种类型的画布,放在更高一层的canvas_stacked类型的画布反而显示不出来。按道理不会,因为后者是浮在前者上面的,怎么显示不出来呢。感觉是不是很纳闷。然后我们点击了tab的两个标签后,就能显示出来了。感觉是不是更奇怪了。其实道理很简单,跟form的初始化顺序有关。当form第一次初始化的时候,他会去找第一个可导航(key或者mouse的navigation属性为yes,一般要求key的为yes)且可见(可见是指放置在某张可见画布上)的item,如果该item中有trigger让其继续寻找下一个(寻找方法:when-new-item-instance这个trigger中:app_folder_move_cursor(‘1’);),则form builder会去寻找下一个,如果没有,则form到此为止。这样就形成了一个链,链上的item分别在哪些画布上,这些画布都会被显示一次,至于最后显示哪些,哪些被覆盖,则是你画布摆放位置问题,总之他们都显示过至少一次。值得注意的是,光标会停在最后一个找到的item所在的画布上。
    这样就不难理解为什么会出现上面的问题了,问题就在没有给switcher这个item添加画布,所以第一个找到的item就是SIGNED_UNIT_CODE,这样,显示的是contact_path_V_fix画布,而SIGNED_UNIT_CODE中又没有trigger让寻找下一个,则到此为止,其他的都没显示。切换tab后,tab中的画布获得焦点,则自然能显示了,由于又是浮动在最上面,则再不会被覆盖了。
    总结如下:1、forder开发时,这两个CURRENT_RECORD_INDICATOR和FOLDER_SWITCHER的item很中要,名字可以不同,但是类型一定要相同。两个的Item Type属性均为Text Item,但前者的subclass属性为current_record_indicator类型,用于指定当前选中的是哪一行 ,后者为switcher类型,用于进行可见块的定位导航。
    2、两个trigger很重要,直接决定了下一个显示的画布是谁。这就要求我们的item在form builder这个IDE下摆放位置要正确,不然显示的画布就会被打乱。
    3、具体代码参考appfldr.pll文件,查询app_folder_move_cursor()函数,了解各种参数是什么意思。

  36. eric
    2012年5月25日15:59 | #36

    请问解决方法是是什么?@章维

  37. cat
    2012年8月28日15:04 | #37

    现象:在Tab的Folder布局中,出现prompt的行总是比Fix上的行高,怎么弄都对不齐。
    原因:Folder动态布局假设的item高度是0.25,但有些同学把高度改成了0.3,这样folder计算错误,对View的autosize 就不对了,导致这种现象。

    解决方法:把item高度还原到0.25; 如果还不齐,注意把prompt块上的item的y坐标设置为0;

  38. cat
    2012年8月29日10:33 | #38

    @章维

    1412错误的原因很多,还碰到有个同学的Forder一切功能均正常,就是在换item位置的时候报1412错误,虽然报错,还是能用。

    后来调整了current_record_indicator 那个item的名称 为 curr_indicator 就可以了,也即让这个item的名称与其属性类的名字有所区别。

    当然此问题也没发生在每个人身上。

  39. guochaozhi
    2012年8月29日17:56 | #39

    今天在做手电筒窗口查询的时候遇到了三个问题,通过商老大与多位同学的帮助终于解决了问题。现在与大家来分享分享,以便以后大家遇到同样的问题后可以很快解决。
    第一个问题:点击手电筒后先出现错误对话框,提醒什么点击查询再选择什么执行查询之类的信息。这个问题的解决方案就是在query_find添加代码时,代码要添加在实现查询功能的数据块的block级触发器query_find里,而不是form级触发器里。加对地方后问题就解决了。
    第二个问题就是在查询窗口跳出来之前出现“窗口没有找到,id无效”的错误信息。这个的原因就是在query_find触发器添加函数app_find.query_find时,第一个参数误填了查询的block名字,正确的应该为block_window,也就是实现查询的block所在的窗口。
    第三个问题就是出现COPY的第2个参数不能为空。这个错误是pre-query里调用的app_find.query_range存储过程前面两个参数是字段值,需要使用name_in来处理字段,而第三个是字段本身,并不是一个值,所以不需要用name_in。正确用法如下:app_find.query_range(name_in(‘query_find.ORDER_NUMBER_LOW’),
    name_in(‘query_find.ORDER_NUMBER_HIGH’),’ORDER_HEADERS_4757_V.ORDER_NUMBER’);。

  40. 2012年8月30日12:23 | #40

    问题现象描述:
    综合练习二,点击提交按钮,订单状态更改,重新查询,但是焦点锁定在一个lov上,只有你选择才能改变焦点

    问题分析:
    lov总是将第一行的数据与你赋的值进行比较,如果比较失败,就会自动调用LOV,让你重新选择。
    解决方法:
    调整lov的排列顺序。

  41. 2012年8月30日12:51 | #41

    问题现象描述:
    综合练习2中在订单汇总界面选择要打开的订单条目后,点击‘打开’然后在关闭打开界面后发现订单汇总界面不能再选取其他的订单条目进行打开了!!!(就像死掉一样!)
    问题分析:当关闭‘打开界面’后,程序的执行焦点要自动转移打上一个BLOCK中,订单汇总界面之所以‘死掉了’,就是因为没有重新获得程序的执行焦点。
    解决方法:在form builder中调整BLOCK的顺序,保证‘打开界面’的订单头BLOCK的上一个BLOCK为订单汇总界面的BLOCK,这样当关闭窗口后,执行焦点将会重新回到‘订单汇总’界面。

  42. FAN
    2012年8月30日13:12 | #42

    现象:
    综合练习二,订单录入界面中,在TAB页中进行切换时,焦点会被强制定位在头信息块,此时Tab页消失,只剩下固定栏。

    问题分析:
    由于头信息中存在必填字段,如果你还没填完这些必填字段就将焦点转移到行信息块中,系统会自动将焦点转移到头信息块中。此时会影响TAB页中的布局过程。下面,我们查看其布局过程的代码:
    1、触发TAB_CHANGE事件,调用函数:when_tab_page_changed。
    2、该函数调用show_main_tab(new_tab);
    3、根据教程,show_main_tab中部分代码如下:
    if p_tab_name=’MAIN’then
    show_view(‘TAB_UNFIX1’);
    show_view(‘TAB_FIX’);
    elsif p_tab_name=’OTHER’then
    show_view(‘TAB_UNFIX2’);
    show_view(‘TAB_FIX’);
    从上面可见, 每切换一次后,show_view(‘TAB_FIX’)都会重复被执行,且最后执行。这是多余的代码,而且在有必填字段强制焦点转移的情况下,会让另外两个画布的消失。

    解决方法:
    在show_main_tab的代码中,删除两个显示固定画布的语句show_view(‘TAB_FIX’),或者把这两个语句摆在前面,即先显示固定堆叠画布,再显示非固定堆叠画布。

  43. LUBEI
    2012年9月3日14:20 | #43

    普通form的执行顺序:
    1、PRE-FORM
    2、PRE-BLOCK(BLOCK 级)
    3、WHEN-NEW-FORM-INSTANCE(form级)
    4、WHEN-NEW-BLOCK-INSTANCE(BLOCK 级)
    5、WHEN-NEW-RECORD-INSTANCE(form级)
    6、WHEN-NEW-RECORD-INSTANCE(BLOCK级)
    7、WHEN-NEW-ITEM-INSTANCE(FORM级)
    (上面block块指的是打开form第一个导航进入的数据块)

    假如说form中存在主从块,而且从块使用了folder功能
    那么在触发3和4之间就会触发 从块的WHEN-CREATE-RECORD触发器
    执行顺序变为:
    1、PRE-FORM
    2、PRE-BLOCK(BLOCK 级)
    3、WHEN-NEW-FORM-INSTANCE(form级)
    —-3.5 WHEN-CREATE-RECORD (主从块中从块级)
    4、WHEN-NEW-BLOCK-INSTANCE(BLOCK 级)
    5、WHEN-NEW-RECORD-INSTANCE(form级)
    6、WHEN-NEW-RECORD-INSTANCE(BLOCK级)
    7、WHEN-NEW-ITEM-INSTANCE(FORM级)

    问题现象:打开form时,提示FRM-41106:没有父记录,不能创建记录

    原因:很明显,这是在主从块中没有父记录的情况下,试图创建了从块记录(这和系统的属性约定相悖)
    而且,通过跟踪发现我们发现这个错误是在WHEN-CREATE-RECORD (主从块中从块级)触发器执行后弹出的。

    分析:在这个form开发过程中,从块中有一个ORDER_NUMBER,我们希望在每次新建从快记录时,自动给 ORDER_NUMBER这个 item赋值,这个功能就是通过在从块的WHEN-CREATE-RECORD触发器中添加赋值语句实现的。
    结果,根据触发器的执行顺序,在没有进入主从块中的主块之前,就执行了从块的WHEN-CREATE-RECORD触发器中的赋值语句(即试图创建从块记录)
    那么是哪里规定在没有父记录之前,不能创建从块记录呢?
    实际上在建立主从块联系时,主从块联系有一个叫做Prevent Masterless Operations 的属性:
    当这个属性为YES时,系统不允许在主块记录为空的情况下,建立从块记录。
    当这个属性为NO时,系统允许在主开为空的情况下,建立从块记录。

    解决方法:将主从块联系的Prevent Masterless Operations 属性 设置为NO

  44. jeckfan
    2012年9月6日13:17 | #44

    有的同学在开发folder时,改变窗口大小时,main画布上右侧的垂直滚动条会被stacked canvas覆盖掉,即main画布上的垂直滚动条位置不随窗口的变化而变化。
    分析:main画布上的行标识符current_record_indicator出错了。这个行标识符的名字必须与它的subclass同名,即CURRENT_RECORD_INDICATOR,不能改成其他名字。

  45. jeckfan
    2012年9月12日19:02 | #45

    大家在做form开发的时候,所有的按钮如果没有特殊需要,就要把key导航和mouse导航都设为NO,否则会引发这样那样的问题(比如在关闭window或按Tab键导航时)……

  46. shaoguo
    2012年12月16日15:26 | #46

    @cat
    说说我的:第一个folder在窗口调整大小时出现frm-1412错误,把主数据块scrollbar改为yes后解决,当然也浪费了不少时间。

  47. 张 明
    2012年12月17日14:40 | #47

    现象:基于完成建立了NOTAB的手电筒查询lov后,实现‘NOTAB的Form上的SignerUnit不在直接输入,而使用LOV输入,LOV数据来源于SYFNOTAB的signerunit字段’时,无法进行插入数据。
    原因:查询和新增时使用了同一个lov,他们应该分别使用各自的lov.因为查询和新增数据时通过lov查询的数据返回的对象不同。

  48. xingyun cai
    2013年8月29日13:07 | #48

    现象:表单在EBS中:Application Developer:application–》function;定义功能的时候保存功能时;报app-fnd-02900:
    Subfunction 函数类型验证失败。字段 form 不应包含值
    原因:Subfunction类型错误
    解决方法:特性里面选择为form

  49. cat
    2013年9月12日13:44 | #49

    现象:在综合练习2的PO订单录入界面,进行键盘导航的时候,每次都莫名其妙的导到了Summary块上去
    现象2:在综合练习2的PO订单录入界面,在输入弹性域,点击取消后就一直抱不能应用项XXXXX.空格,然后就死循环了;
    原因:可能在订单录入的的订单头块上加了很多触发器,而触发器中引用了app_folder.XXXX之类的代码,也就是在普通块上添加了folder代码响应。这是多此一举,反而引发一系列问题,具体原因可查看folder源代码appfldr.pll
    解决方法:去掉这些多余的触发器及其引用的folder Api代码。

  50. cat
    2013年12月5日11:55 | #50

    现象:按F11时提示,状态条消息: 此函数不能执行
    原因:按F11会执行Enter-query 函数,因此,此函数就是指 Enter-query函数,如果Block本身的Query-Allow 设置为No ,那么系统应该会提示“不能在此执行查询”而不是此函数不能执行。因此可能Query-allow设置为Yes,但Datasource 为空导致了这个问题。
    解决方法:把Block的Datasource设置正确的值。

评论分页
1 2 2775
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
您必须在 登录 后才能发布评论.