- 浏览: 318782 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (169)
- ORACLE EBS FORM开发 (39)
- ORACLE EBS业务 (18)
- ORACLE DB (13)
- ACCOUNTING (0)
- 休闲娱乐 (5)
- 开发自己 (1)
- OAF开发 (15)
- LINUX (2)
- ORACLE EBS文档 (1)
- 疑难杂症 (3)
- WEB ADI (2)
- 报表开发 (2)
- EBS有用SQL (8)
- ORACLE EBS开发 (5)
- ORACLE EBS DBA (15)
- EBS日常维护 (24)
- Oracle EBS workflow (2)
- Oracle EBS 个性化 (2)
- EBS常见接口表应用 (10)
- EBS标准API应用 (3)
- Oracle EBS 数据迁移 (2)
- Oracle EBS杂项技术荟萃 (1)
- EBS之事半功倍 (1)
- ORACLE EBS ALERT (1)
- OCP之路 (4)
最新评论
-
594597634:
楼主没有给解决方案啊
!我急求如何解决啊
亲历:JBO-25058 -
sjmei:
嗯,不错,学习了
PL/SQL NO_DATA_FOUND、SQL%NOTFOUND、SQL%ROWCOUNT -
maojieming:
做公交车,应该是“关门打X”
北京公交车一族必备绝技 -
hollysun:
现在功夫都练得炉火纯青了,独孤九剑~
北京公交车一族必备绝技 -
xyh:
还有一招:锁喉功,掐死你,捏死你
北京公交车一族必备绝技
获取当前窗口
GET_VIEW_PROPERTY(GET_ITEM_PROPERTY(:SYSTEM.CURSOR_ITEM, ITEM_CANVAS),WINDOW_NAME)
设置金额显示格式
PROCEDURE FORMAT_PRICE(EVENT VARCHAR2) IS
BEGIN
IF (EVENT IN ('WHEN-VALIDATE-ITEM','POST-QUERY'))
THEN
APP_ITEM_PROPERTY.SET_PROPERTY('LINES.SUGGESTED_PRICE',FORMAT_MASK, FND_CURRENCY.GET_FORMAT_MASK(:ORDERS.CURRENCY_CODE,GET_ITEM_PROPERTY('LINES.SUGGESTED_PRICE',MAX_LENGTH)));
APP_ITEM_PROPERTY.SET_PROPERTY('LINES.TOTAL_PRICE',FORMAT_MASK, FND_CURRENCY.GET_FORMAT_MASK(:ORDERS.CURRENCY_CODE,GET_ITEM_PROPERTY('LINES.TOTAL_PRICE',MAX_LENGTH)));
ELSE
FND_MESSAGE.DEBUG('Invalid event passed to lines.format_price '||EVENT);
END IF;
END FORMAT_PRICE;
获取帐户帐套,帐户CODE相关信息
/*=====================================
** PROCEDURE: pre_form
**=====================================*/
procedure pre_form is
cursor sob_cur(sob_id number) is
SELECT sob.set_of_books_id,
sob.currency_code,
sob.chart_of_accounts_id
FROM gl_sets_of_books sob
WHERE sob.set_of_books_id = sob_id ;
l_coa_id number;
l_sob_id number;
l_currency_code varchar2(15);
l_org_id number;
l_order_num_mode varchar2(10);
begin
-- Set of Books ID
l_sob_id := fnd_profile.value('GL_SET_OF_BKS_ID');
-- org id
l_org_id := fnd_profile.value('ORG_ID');
if (l_org_id is null) then
fnd_message.set_name('FND', 'PROFILES-CANNOT READ');
fnd_message.set_token('OPTION', 'ORG_ID');
fnd_message.error;
raise form_trigger_failure;
end if;
open sob_cur(l_sob_id) ;
fetch sob_cur into l_sob_id, l_currency_code,l_coa_id;
close sob_cur;
:parameter.currency_code := l_currency_code ;
l_order_num_mode := fnd_profile.value('TRN_PO_ORDER_NUM_TYPE_036');
-- Stash values away for future reference
-- :parameter.org_id := to_number(l_org_id);
--:parameter.set_of_books_id := to_number(l_sob_id);
:parameter.chart_of_accounts_id := to_number(l_coa_id);
:parameter.order_number_mode := l_order_num_mode;
-- set amount mask
set_amount_mask;
end pre_form;
procedure set_amount_mask is
begin
-------------------------------------
-- setup amount field's format mask
-- ----------------------------------
set_item_property('HEADERS.TOTAL_AMOUNT',FORMAT_MASK,
fnd_currency.get_format_mask(
:parameter.currency_code,
get_item_property('HEADERS.TOTAL_AMOUNT', MAX_LENGTH)));
set_item_property('LINES.LINE_AMOUNT',FORMAT_MASK,
fnd_currency.get_format_mask(
:parameter.currency_code,
get_item_property('LINES.LINE_AMOUNT', MAX_LENGTH)));
end set_amount_mask;
动态提交请求
APPS.FND_REQUEST.SUBMIT_REQUEST
(
APPLICATION IN VARCHAR2 DEFAULT NULL,
PROGRAM IN VARCHAR2 DEFAULT NULL,
DESCRIPTION IN VARCHAR2 DEFAULT NULL,
START_TIME IN VARCHAR2 DEFAULT NULL,
SUB_REQUEST IN BOOLEAN DEFAULT FALSE,
chr(0),'','','','','','','','','','','','','','','','','','','',
'','','','','','','','','','', '','','','','','','','','','',
'','','','','','','','','','', '','','','','','','','','','',
'','','','','','','','','','', '','','','','','','','','','',
'','','','','','','','','','', '','','','','','','','','',''
)
RETURN NUMBER;
状态判断
get_block_property('headers',status)
:System.Mode
GET_VIEW_PROPERTY(GET_ITEM_PROPERTY(:SYSTEM.CURSOR_ITEM, ITEM_CANVAS),WINDOW_NAME
Get_Block_Property( 'LINES_PROMPT', PREVIOUSBLOCK)
GET_RECORD_PROPERTY(:SYSTEM.CURSOR_RECORD,'SHOPPEDAYOVERTB_V',Status ); --:SYSTEM.RECORD_STATUS ;
键弹性域定义和更新
定义
fnd_key_flex.define(
BLOCK=>'Items',
FIELD=>'EXPENSE_ACCID_DSP',
APPL_SHORT_NAME=>'SQLGL',
CODE=>'GL#',
ID=>'EXPENSE_CCID',
REQUIRED=>'Y',
USEDBFLDS=>'N',
updateable=>'',
VALIDATE=> 'FULL',
VRULE=> '\\nSUMMARY_FLAG\\nI\\nAPPL=SQLGL;NAME=GL_NO_PARENT_SEGMENT_ALLOWED\\nN',
NUM=>':PARAMETER.CHART_OF_ACCOUNTS_ID');
Form中执行SQL语句
sql1:=' TRUNCATE TABLE cfnd_matrix_cells';
forms_ddl(sql1);
更新
procedure update_definition(
block varchar2,
field varchar2,
enabled varchar2 default '$FFLEX_DEFAULT$',
validate varchar2 default '$FFLEX_DEFAULT$',
vdate varchar2 default '$FFLEX_DEFAULT$',
displayable varchar2 default '$FFLEX_DEFAULT$',
insertable varchar2 default '$FFLEX_DEFAULT$',
updateable varchar2 default '$FFLEX_DEFAULT$',
vrule varchar2 default '$FFLEX_DEFAULT$',
copy varchar2 default '$FFLEX_DEFAULT$',
derived varchar2 default '$FFLEX_DEFAULT$',
valatt varchar2 default '$FFLEX_DEFAULT$',
title varchar2 default '$FFLEX_DEFAULT$',
required varchar2 default '$FFLEX_DEFAULT$',
autopick varchar2 default '$FFLEX_DEFAULT$',
autocombpick varchar2 default '$FFLEX_DEFAULT$',
usedbflds varchar2 default '$FFLEX_DEFAULT$',
allownulls varchar2 default '$FFLEX_DEFAULT$',
data_set varchar2 default '$FFLEX_DEFAULT$',
column varchar2 default '$FFLEX_DEFAULT$',
where_clause varchar2 default '$FFLEX_DEFAULT$',
query_security varchar2 default '$FFLEX_DEFAULT$',
qbe_in varchar2 default '$FFLEX_DEFAULT$',
read_only varchar2 default '$FFLEX_DEFAULT$',
dinsert varchar2 default '$FFLEX_DEFAULT$',
longlist varchar2 default '$FFLEX_DEFAULT$',
no_combmsg varchar2 default '$FFLEX_DEFAULT$',
lock_flag varchar2 default '$FFLEX_DEFAULT$',
combqp_where varchar2 default '$FFLEX_DEFAULT$',
derive_always varchar2 default '$FFLEX_DEFAULT$',
help varchar2 default '$FFLEX_DEFAULT$',
default_mode varchar2 default '$FFLEX_DEFAULT$',
where_clause_msg VARCHAR2 DEFAULT '$FFLEX_DEFAULT$')
使用该方法更新相应的属性即可。
Form中导入数据
DECLARE
access_id NUMBER;
l_server_url VARCHAR2(100);
l_parameters VARCHAR2(100);
button_choice INTEGER;
l_file_id VARCHAR2(100);
l_gfm_id INTEGER;
BEGIN
IF :file.import_type IS NULL OR :file.template_name IS NULL THEN
fnd_message.set_string('请先输入完整数据.');
fnd_message.show;
RAISE form_trigger_failure;
END IF;
access_id := fnd_gfm.authorize(NULL);
-- BUG 2589587 FND File Upload form is not displayed consistently
-- in the correct language - now using fnd_function.execute to enforce
-- ICX security and NLS issues.
fnd_profile.get('APPS_WEB_AGENT',
l_server_url);
l_parameters := 'access_id=' || access_id || ' l_server_url=' || l_server_url;
fnd_function.EXECUTE(function_name => 'FND_FNDFLUPL',
open_flag => 'Y',
session_flag => 'Y',
other_params => l_parameters);
-- Display a modal message for user to indicate file upload
-- is completed.
fnd_message.set_name('FND',
'ATCHMT-FILE-UPLOAD-COMPLETE');
button_choice := fnd_message.question(button1 => 'YES',
button2 => NULL,
button3 => 'NO',
default_btn => 1,
cancel_btn => 3,
icon => 'question');
IF (button_choice = 3) THEN
NULL;
ELSIF (button_choice = 1) THEN
DELETE FROM cfnd_matrix_cells;
COMMIT;
l_file_id := '';
copy(l_file_id,
'document_header.file_name_display');
l_gfm_id := fnd_gfm.get_file_id(access_id);
IF l_gfm_id IS NOT NULL THEN
copy(to_char(l_gfm_id),
'document_header.media_id');
SELECT decode(instr(file_name,
'/'),
0,
file_name,
substr(file_name,
instr(file_name,
'/') + 1))
INTO l_file_id
FROM fnd_lobs
WHERE file_id = l_gfm_id;
IF l_file_id IS NOT NULL THEN
:file.filename := l_file_id;
SELECT cfnd_matrix_cells_s1.NEXTVAL
INTO :file.working_id
FROM dual;
cfnd_upl_pkg.extract_blob(l_gfm_id,
:file.file_cs,
chr(:file.delimiter),
:file.working_id);
go_item('CFND_MATRIX_CELLS.LINE_NO');
clear_block(no_validate);
execute_query;
DELETE FROM fnd_lobs
WHERE file_id = l_gfm_id;
forms_ddl('commit');
forms_ddl('commit');
END IF;
END IF;
END IF;
END;
FORM中获取光标所在的TAB页面
1. 在Form级触发器中添加触发WHEN-TAB-PAGE-CHANGED
2. 在此触发器中写如下代码:
DECLARE
canvas_id VARCHAR2(30); --标签页ID
BEGIN
canvas_id := GET_CANVAS_PROPERTY('标签画布名', topmost_tab_page);
IF canvas_id='标签页1' then go_block('块1');end if;
IF canvas_id='标签页2' then go_block('块2');end if;
IF canvas_id='标签页3' then go_block('块3');end if;
execute_query;
END;
设置时间
DECLARE
timer_id Timer;
one_minute NUMBER(5) := 60000;
BEGIN
timer_id := CREATE_TIMER('emp_timer', one_minute, REPEAT|NO_REPEAT);
END;
生成Editer框
DECLARE
ed_id Editor;
status BOOLEAN;
BEGIN
ed_id:=Find_Editor('edit_name'); ---由'edit_name'导航器定义
IF NOT Id_Null(ed_id) THEN
Show_Editor(ed_id, NULL, :block_name.item_name, status);
ELSE
Message('Editor "Happy_Edit_Window" not found');
RAISE Form_Trigger_Failure;
END IF;
END;
动态产生一个'LOV'框
DECLARE
lv_id LOV;
status BOOLEAN;
BEGIN
lv_id := Find_LOV('lov_name'); ---'lov_name' 由导航器定义
-- IF Id_Null(lv_id) THEN
-- lv_id := Find_LOV('lov_name1'); ---'lov_name1' 由导航器定义
-- END IF;
status := Show_LOV(lv_id,10,20);
END;
打开form上标准菜单
app_menu.set_prop('EDIT.SELECT_ALL', ENABLED, PROPERTY_ON);
app_menu.set_prop('EDIT.DESELECT_ALL', ENABLED, PROPERTY_ON);
在相应层次建立出发器即可;
From 中Item代码格式Format
A typical item handler looks like this:
procedure ITEM_NAME(event VARCHAR2) IS
IF (event = ’WHEN–VALIDATE–ITEM’) THEN
–– validate the item
ELSIF (event = ’INIT’) THEN
–– initialize this dependent item
ELSIF (event in (’PRE–RECORD’, ’POST–QUERY’)) THEN
–– etc.
ELSE fnd_message.debug(’Invalid event passed to item_name: ’ ||
EVENT);
END IF;
END ITEM_NAME;
取关键性弹性域帐户描述的方法
declare
-- Boolean parameters are translated from/to integers:
-- 0/1/null <--> false/true/null
result boolean;
begin
-- Call the function
result := fnd_flex_keyval.validate_ccid(
appl_short_name => :appl_short_name,--SQLGL
key_flex_code => :key_flex_code,--GL#
structure_number => :structure_number,--50228
combination_id => :combination_id,--113773
displayable => :displayable,--ALL
data_set => :data_set,
vrule => :vrule,
security => :security, --IGNORE
get_columns => :get_columns,
resp_appl_id => :resp_appl_id, --101
resp_id => :resp_id,--50481
user_id => :user_id, --11193
select_comb_from_view => :select_comb_from_view);
dbms_output.put_line(fnd_flex_keyval.concatenated_descriptions);
-- Convert false/true/null to 0/1/null
end;
组织访问权限的控制语句(11i)
SELECT ict.ROWID row_id,
ict.organization_id,
ict.rate,
ict.base_type_code,
flv.MEANING,
ict.adjust_account_id,
ict.description,
ict.created_by,
ict.creation_date,
ict.last_updated_by,
ict.last_update_date,
ict.last_update_login,
ood.ORGANIZATION_NAME ORGANIZATION_NAME
FROM dpos_item_cost_rate ict, org_organization_definitions ood,org_access oa,fnd_lookup_values_vl flv
WHERE ict.organization_id = ood.ORGANIZATION_ID
AND oa.organization_id=ood.ORGANIZATION_ID
AND oa.resp_application_id=fnd_profile.VALUE('RESP_APPL_ID')
AND oa.responsibility_id = fnd_profile.VALUE('RESP_ID')
循环访问所有记录
DECLARE
cur_blk VARCHAR2(40) := :System.Cursor_Block;
bk_id Block;
BEGIN
bk_id := Find_Block(cur_blk);
GO_BLOCK('SHOPPEDAYOVERTB_V');
GO_RECORD(1);
LOOP
if get_block_property(bk_id,Update_Allowed)='TRUE' then
:SHOPPEDAYOVERTB_V.import_flag:='N';
UPDATE SHOPPEDAYOVERTB SET import_flag ='N' where SHOPPEDAYOVERTB.ROWID=:SHOPPEDAYOVERTB_V.ROW_ID;
end if;
EXIT WHEN (NAME_IN('SYSTEM.LAST_RECORD') = 'TRUE');
NEXT_RECORD;
END LOOP;
commit;
END;
在查询模式下使LOV有效
To enable LOVs in ENTER–QUERY mode on an item, create an item–level KEY–LISTVAL trigger as follows:
Trigger: KEY–LISTVAL
IF (:SYSTEM.MODE != ’ENTER–QUERY’) THEN LIST_VALUES;
ELSE SHOW_LOV(’query lov’);
END IF;
关闭窗口代码段
PROCEDURE close_window (wnd VARCHAR2) IS
IF wnd = ’HEADER’ THEN
––
–– Exit the form
––
app_window.close_first_window;
ELSIF wnd = ’LINES’ THEN
––
–– Close detail windows (Shipments)
––
app_custom.close_window(’SHIPMENTS’);
––
–– If cursor is in this window,
–– move it to the HEADER block
––
IF (wnd = GET_VIEW_PROPERTY(GET_ITEM_PROPERTY(
:SYSTEM.CURSOR_ITEM,ITEM_CANVAS),
WINDOW_NAME)) THEN
GO_BLOCK(’HEADER’);
END IF;
ELSIF wnd = ’SHIPMENTS’ THEN
––
–– If cursor is in this window,
–– move it to the LINES block
––
IF (wnd = GET_VIEW_PROPERTY(GET_ITEM_PROPERTY(
:SYSTEM.CURSOR_ITEM, ITEM_CANVAS),
WINDOW_NAME)) THEN
GO_BLOCK(’LINES’);
END IF;
END IF;
––
–– THIS CODE MUST REMAIN HERE. It ensures
–– the cursor is not in the window that will
–– be closed by moving it to the previous block.
––
IF (wnd = GET_VIEW_PROPERTY(GET_ITEM_PROPERTY(
:SYSTEM.CURSOR_ITEM, ITEM_CANVAS),
WINDOW_NAME)) THEN
DO_KEY(’PREVIOUS_BLOCK’);
END IF;
––
–– Now actually close the designated window
––
HIDE_WINDOW(wnd);
END close_window;
从当前form转到请求提交页面
fnd_function.execute( function_name => 'FND_FNDRSRUN',
open_flag => 'Y',
session_flag => 'Y',
other_params => 'DODT_REQ_ID="'||TO_CHAR(l_request_id)||'"');
在R12中实现多OU编程
A.首先最重要的是要在pre-form中初始化多OU
BEGIN
APP_STANDARD.EVENT(‘PRE-FORM’);
//必须在APP_STANDARD.EVENT()后执行
MO_GLOBAL.init ('INV');--参数可以使’S’—单OU,’M’-多OU,或者已经注册过的应用简称
END;
B.初始化后获取OU的信息,在Pre-form中获取OU信息,或在块上When-Create-Record获取OU信息
Pre-form
DECLARE
l_default_org_id number;
l_default_ou_name varchar2(240);
l_ou_count number;
BEGIN
...
mo_utils.get_default_ou(l_default_org_id, l_default_ou_name, l_ou_count);
:PARAMETER.mo_default_org_id) := l_default_org_id;
:PARAMETER.mo_default_ou_name := l_default_ou_name;
:PARAMETER.mo_ou_count := l_ou_count;
...
END;
When-Create-Record
IF :parameter.mo_default_org_id is not null and :block.org_id is null THEN
:block.org_id := :parameter.mo_default_org_id);
:block.operating_unit := :parameter.mo_default_ou_name;
END IF;
C.在各个触发器实现多OU的支持的代码
When-Create-Record Trigger of Operating Unit Field Block
IF (:parameter.mo_default_org_id IS NOT NULL ) THEN
-- Defaulting org_id from profile option
:block.org_id := :parameter.mo_default_org_id;
:block.operating_unit := :parameter.mo_default_ou_name;
-- Set policy context
mo_global.set_policy_context('S’,:block.org_id);
ELSE
mo_global.set_policy_context('M', null);
END IF;
IF :<your block name.org_id> is not null\
IF :<block name.org_id> <> nvl(:<parameter.old_org_id>,-99) THEN
-- Get the cache for current org
END IF;
ELSE
-- Refresh the cache
...
END IF;
When-Validate-Item Trigger of Operating Unit field
IF (:<your block name.org_id> IS NOT NULL ) THEN
IF :<block name.org_id> <> nvl(:<parameter.old_org_id>,-99) THEN
mo_global.set_policy_context('S', :block.org_id);
-- Get the cache for the current org
END IF;
ELSE -- :block.org_id is null
mo_global.set_policy_context('M', null);
-- Refresh the cache
END IF;
When-New-Record-Instance Trigger of Operating Unit Field Block
IF (:<your block name.org_id> IS NOT NULL ) THEN
IF :<block name.org_id> <> nvl(:<parameter.old_org_id>,-99) THEN
mo_global.set_policy_context('S', :block.org_id);
-- Get the cache for the current org
END IF;
ELSE -- :block.org_id is null, so set the context to multiple
mo_global.set_policy_context('M', null);
-- Refresh the cache
END IF;
Pre-Insert Trigger of Operating Unit Field Block
Use this trigger if the form allows the user to commit multiple records.
IF (:<your block name.org_id> IS NOT NULL ) THEN
IF :<block name.org_id> <> nvl(:<parameter.old_org_id>,-99) THEN
mo_global.set_policy_context('S', :block.org_id);
-- Get the cache for the current org
END IF;
ELSE -- :block.org_id is null, so set the context to multiple
mo_global.set_policy_context('M', null);
-- Refresh the cache
END IF;
Pre-Query Trigger of Operating Unit Field Block
BEGIN
IF :parameter.mo_ou_count = 1 THEN
mo_global.set_policy_context(‘S’,:parameter.mo_default_org_id);
ELSE
mo_global.set_policy_context('M', null);
END IF;
-- Other Code
END;
Pre-Record Trigger of Operating Unit Field Block
use this trigger if the form forces the user to commit each record.
IF (:parameter.current_record is not null and
:parameter.current_record != :system.trigger_record) THEN
IF (:system.form_status in ('CHANGED','INSERT')) THEN
mo_global.set_policy_context('S', :parameter.old_org_id);
-- Get the cache for the current org
-- raise error message to the user to commit;
-- raise form_trigger_failure;
ELSE
-- No pending commits.
-- Reset the current record variable.
:parameter.current_record := '';
END IF;
ELSE
-- User has not navigated to another record.
-- Do not reset the current record variable.
null;
END IF;
Pre-Update Trigger
Use this trigger if the form allows the user to commit multiple records commits that are in different operating units.
IF (:<your block name.org_id> IS NOT NULL ) THEN
IF :<block name.org_id> <> nvl(:<parameter.old_org_id>,-99) THEN
mo_global.set_policy_context('S', :block.org_id);
-- Get the cache for the current org
END IF;
END IF;
发表评论
-
FRM-40400:事务完成:已应用和保存X条记录"消息框不显示处理方法
2013-01-16 16:28 1470每次成功退出保存修改或添加记录时窗体都会弹出“FRM-4040 ... -
app_fields.set_required_field
2012-07-05 10:12 1177用来设置某个栏位为必录 可以在A的WHEN-VALIDAT ... -
Oracle EBS Form 开发 Tips
2012-07-05 09:49 11890EBS Form开发中经常会遇到一些小问题,以免再次遇到 ... -
form 触发器的层次Before、Override、after的区别
2012-04-10 16:54 1572问题描述:当我们在Form的BLOCK级里面增加了Tri ... -
FND_MESSAGE_PUB.get及error_handler.get_message用法
2012-02-20 20:56 36701. FND_MESSAGE_PUB.get用法,调用标准AP ... -
oracle EBS User Profile使用举例
2012-02-20 20:33 5443Oracle EBS 用户配置文件 ... -
commit_form do_key('commit_form') forms_ddl('commit');
2011-11-24 18:26 16481.commit_form 针对form上面的数据变动进行co ... -
open_form,call_form,new_form 的区别
2011-11-24 18:17 1128(一) open_form是一个受限的封装过程,他可以 ... -
亲历FRM-30425
2011-10-10 10:42 1130FRM-30425: Summarized database ... -
oracleform触发器执行顺序及键定义
2011-09-08 10:57 13751当打开FORM时: (1)PRE-FORM (2 ... -
FRM-30425问题解决
2011-08-01 16:31 2867FRM-30425: Summarized database ... -
EBS中取profile值的用法
2011-05-31 12:33 2114[code]fnd_profile.value的用法: ... -
Form中Block的重新查询
2011-05-31 12:28 1079Form中某些按钮可能调用了Package对表中某些字段进行更 ... -
Oracle EBS Standard Forms 开发规范标准的目的
2011-05-31 12:26 1213两大目标:一、让程序能由人类(human kind)进行维 ... -
调用Form
2011-05-11 11:36 1025(一) open_formopen_form是一个受限的封装过 ... -
范围弹性域
2011-03-24 16:32 1138范围弹性域是使用的键弹性域的一种扩展,其没有专门的弹性注册 ... -
form做好以后,别忘记检查这些
2011-03-24 16:30 11061.常规属性的设置,如模块、数据块、画布、窗口,常规触发器 ... -
使用Form个性化修改标准Form的LOV
2011-03-24 15:24 1360本文结合一个简单的Form做描述,这是没有个性化之前的LOV, ... -
使用Custom.pll修改标准Form的LOV
2011-03-24 15:23 1661在开发过程中,经常碰到需要修改标准Form中LOV的需求,一般 ... -
form开发的小总结
2011-03-22 12:14 1725Form 开发的一些小总结.当然要实现如下的功能不一定要这样做 ...
相关推荐
包含有Eclipse SWT form开发的实例代码,非常好的参考信息
Form开发入门教程
Form1.cs代码
Oracle EBS Form开发,Form开发实例
FORM开发常用技巧,DOC文件,有截图,步骤详细
适用于ORACLE EBS FORM开发深入技巧,有利于深入了解FORM开发技术。
Oracle EBS Form 开发帮助文档 PPT模式 初学者参考
erp form开发演示文件.ppt
Oracle Form 开发资料及例子CHM
oralce ebs form 开发教程
Windows+Form开发实例:日程提醒程序
Oracle EBS Form开发,个人经验总结
适用于ORACLE EBS FORM技术开发初学者,入门级开发技术文档。
Oracle EBS Form开发小技巧汇总 2 Form中Block的重新查询 9 客户化Form中实现行号功能 12 使用Custom.pll修改标准Form的LOV 16 实现主从关系Form中汇总行金额/数量 21 Oracle EBS客户化程序中格式化金额 25 Form中...
form开发中,应客户需求,form的个性化设置是不得不考虑的一个重点 ;(顺便上传METALINK上较好的几页)
FORM开发FOLDER参考实例,按照例子可以很容易学习。
eclipse插件开发form编辑器,不错的文档,教你怎么使用form
微信小程序 表单Form实例 表单Form的应用很广泛,我们可以利用form设计登录注册,也可以设计一种答题问卷的形式,今天...主要代码,创建一个form表单: <!--pages/index/Component/FormM/FormM.wxml--> <te
FormValidation表单验证源代码,有邮箱验证,电话验证,身份证验证等其他的
pl/sql 演示文稿