- 浏览: 325939 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 1500每次成功退出保存修改或添加记录时窗体都会弹出“FRM-4040 ... -
app_fields.set_required_field
2012-07-05 10:12 1213用来设置某个栏位为必录 可以在A的WHEN-VALIDAT ... -
Oracle EBS Form 开发 Tips
2012-07-05 09:49 12030EBS Form开发中经常会遇到一些小问题,以免再次遇到 ... -
form 触发器的层次Before、Override、after的区别
2012-04-10 16:54 1606问题描述:当我们在Form的BLOCK级里面增加了Tri ... -
FND_MESSAGE_PUB.get及error_handler.get_message用法
2012-02-20 20:56 37501. FND_MESSAGE_PUB.get用法,调用标准AP ... -
oracle EBS User Profile使用举例
2012-02-20 20:33 5475Oracle EBS 用户配置文件 ... -
commit_form do_key('commit_form') forms_ddl('commit');
2011-11-24 18:26 16951.commit_form 针对form上面的数据变动进行co ... -
open_form,call_form,new_form 的区别
2011-11-24 18:17 1166(一) open_form是一个受限的封装过程,他可以 ... -
亲历FRM-30425
2011-10-10 10:42 1167FRM-30425: Summarized database ... -
oracleform触发器执行顺序及键定义
2011-09-08 10:57 14351当打开FORM时: (1)PRE-FORM (2 ... -
FRM-30425问题解决
2011-08-01 16:31 2923FRM-30425: Summarized database ... -
EBS中取profile值的用法
2011-05-31 12:33 2179[code]fnd_profile.value的用法: ... -
Form中Block的重新查询
2011-05-31 12:28 1118Form中某些按钮可能调用了Package对表中某些字段进行更 ... -
Oracle EBS Standard Forms 开发规范标准的目的
2011-05-31 12:26 1258两大目标:一、让程序能由人类(human kind)进行维 ... -
调用Form
2011-05-11 11:36 1057(一) open_formopen_form是一个受限的封装过 ... -
范围弹性域
2011-03-24 16:32 1174范围弹性域是使用的键弹性域的一种扩展,其没有专门的弹性注册 ... -
form做好以后,别忘记检查这些
2011-03-24 16:30 11351.常规属性的设置,如模块、数据块、画布、窗口,常规触发器 ... -
使用Form个性化修改标准Form的LOV
2011-03-24 15:24 1400本文结合一个简单的Form做描述,这是没有个性化之前的LOV, ... -
使用Custom.pll修改标准Form的LOV
2011-03-24 15:23 1696在开发过程中,经常碰到需要修改标准Form中LOV的需求,一般 ... -
form开发的小总结
2011-03-22 12:14 1760Form 开发的一些小总结.当然要实现如下的功能不一定要这样做 ...
相关推荐
"vb常用代码大全"集合了作者多年积累的实用代码,经过验证并带有注释,是学习和参考的好资源。 1. **VB基本语法** VB是基于事件驱动的编程语言,它使用直观的英文语句进行编程。基础语法包括变量声明、数据类型...
本压缩包中的"学习积累的代码段"显然是ASP.NET开发过程中的实战经验总结,包含了一些常用的、实用的代码片段,对于正在学习或已经从事ASP.NET开发的人员来说是非常有价值的参考资料。 在ASP.NET中,有几个核心概念...
在Windows Forms(Winform)开发中,开发者经常会遇到各种挑战,需要积累一定的经验和技巧来提高效率和代码质量。以下是对标题和描述中提及的几个常用Winform开发经验及知识的详细解析: 1. **控件通知与自定义消息...
### 多年管理系统开发经验总结——代码解决方案 #### 背景与问题分析 随着项目的迭代更新和技术的发展,管理系统在日常工作中扮演着越来越重要的角色。然而,在实际开发过程中,经常遇到一些由于早期设计不足或...
描述部分虽然重复了标题,但强调了这是作者个人积累的常用代码。 SQL是用于管理关系数据库的标准语言,用于查询、插入、更新和删除数据。以下是一些可能涵盖的SQL知识点: 1. **查询语句(SELECT)**:SQL的核心...
《VB电大图书管理系统设计——基于毕业设计的...通过阅读论文和分析源代码,学习者不仅可以掌握VB编程技术,还能了解软件开发的全生命周期,从而在理论与实践中找到平衡,为自己的毕业设计或未来的工作积累宝贵经验。
总结,Excel三国杀源代码的解析不仅展示了VBA在实际项目中的应用,还体现了利用Excel进行轻量级游戏开发的创新思维。通过对源代码的学习,我们可以汲取其中的设计思路,提升自己在Excel编程和项目管理方面的能力,为...
这些标签和库是构建动态、交互式的Java Web应用的基础,熟练掌握它们能大大提高开发效率和代码质量。在实际开发中,还会遇到更多其他的标签库,比如Spring MVC的Thymeleaf或Freemarker等,它们提供了更强大的模板...
这个"asp.net 个人常用类库"是开发者个人积累的一系列实用工具类,为 ASP.NET 开发提供了便利,降低了代码重复性,提高了开发效率。类库中包含了对B/S(浏览器/服务器)和C/S(客户端/服务器)模式下常见问题的解决...
3. `Form1.cs` - 记事本窗口的代码文件,定义了窗体和控件,以及相关的事件处理程序。 4. `Form1.Designer.cs` - 由Visual Studio自动生成的文件,包含了窗体设计的自动代码。 5. `Resources.resx` 和 `Properties....
3. **开发环境**:Eclipse搭配EclipseME插件是常用的J2ME开发环境,它提供了一流的代码编辑、调试和项目管理功能。Lomboz插件可用于开发网络应用程序。虽然JBuilder等IDE也是选项,但Eclipse的灵活性和扩展性更佳。 ...
这个"学习asp的时候收集的代码合集"很可能是你学习过程中积累的各种ASP代码示例,涵盖了一些基本到高级的ASP编程技巧和常见功能实现。 在ASP中,主要通过VBScript或JScript编写脚本,它们都是ASP默认支持的脚本语言...
VB支持多种编程模式,包括过程编程、结构化编程和面向对象编程,这使得VB成为开发Windows桌面应用的常用工具。 MinClock项目作为一个时钟应用,其主要功能可能包括实时显示时间,提供闹钟、计时器和倒计时等实用...
9. **菜单和工具栏控件**:MenuStrip和ToolStrip为用户提供菜单和工具栏,方便访问常用功能。 10. **对话框控件**:如OpenFileDialog和SaveFileDialog,它们用于打开或保存文件,MessageBox用于显示警告或确认信息...
《jQuery初学实例代码集》是一份专门为jQuery初学者准备的资源,旨在通过实例化的方式帮助读者快速理解和掌握jQuery库的常用方法与功能。在这个压缩包中,包含了多个以jQuery为核心实现的代码示例,涵盖了从基本操作...
### Web前端开发规范手册知识点详解 #### 一、规范目的 - **概述**: 本规范旨在提高团队协作效率,确保后台人员能轻松地添加新...遵循这些规范不仅有助于开发出更高质量的产品,还能促进团队间的有效沟通和技术积累。
本压缩包“VB实用素材”集成了与VB开发相关的多种资源,包括图片素材和常用代码,旨在帮助开发者在创建VB应用程序时能够更加高效和便捷。 首先,我们来谈谈VB编程中的图片素材。在VB应用中,图片常用于界面美化、...
然后结合一个实例,详细讨论了Struts在实际开发过程中的应用,最后提供一些在开发过程中积累的经验,供大家参考。 <br/>2、关键词 Struts、MVC、J2EE、Tiles、Framework <br/>3、Framework ...
了解J2ME的知识可以帮助开发者理解移动平台的历史演变,并为跨平台开发积累经验。 总结,"J2ME学习视频"是一份宝贵的教育资源,涵盖了从基础概念到实际开发的各个环节,适合希望进入移动开发领域或对嵌入式Java有...
6. **Form和Unit**: 表单(Form)是Delphi中用户界面的主要组成部分,而单元(Unit)用于组织代码,通常一个表单对应一个单元。 7. **数据绑定**: Delphi提供强大的数据绑定机制,可以方便地将界面控件与数据库字段...