作者: JAN-1(January) FEB-2(February) MAR-3(March) APR-4(April) MAY-5(May) JUN-6(June) JUL-7(July) AUG-8(August) SEP-9(September) OCT-10(October) NOV-11(November) DEC-12(December)
******************************************************************** ****************************常用设置******************************** ---on-log 触发器编写示范 Declare flag varchar2(80):=null; cou number:=1; n number; Begin Loop logon(USERNAME,PASSWord'@'CONNECT,PROPERTY_FALSE....); flag:=Get_Application_Property(DATASOURCE); Exit when cou>8 or flag='Oracle'; cou:=cou+1; End Loop; If flag<>'ORACLE' then set_alert_property('a_1',alert_message_text, '登录失败,请返回重试'); n:=show_alert('a_1'); raise form_trigger_failure; --中断 FORM End if; End; ---对基表执行查询(只对基表) Set_Block_Property('Block_Name',Default_Where,'where ......'); Go_Block('Block_Name'); Execute_Query; *************************************************** 变量: 局部变量; 全局变量--------------1.:block.item 2.:parameter.v_name 3.:global.V_name *************************************************** ---同步发生显示 synchronize; ---实施'TRIGGER'触发 EXECUTE_TRIGGER(TRIGGER_NAME); ---清除模块 clear_block(NO_VALIDATE); 'NO_VALIDATE'不生效 --建立警告栏并由警告栏选择 Declare n number; Begin Set_Alert_Property('Alert_Name',Alert_Message_Text,'message'); n:=Show_Alert('Alert_Name'); If n=Alert_Button1 then ...; ElsIf n=Alert_Button2 then ...; End if; End; ---WINDOW设置 --运行时最大化,最小化 Set_Window_Property(FORMS_MDI_WINDOW, WINDOW_STATE, MAXIMIZEMINIMIZE); --WINDOW标题 Set_Window_Property(FORMS_MDI_WINDOW, title,'TEXT'); --退出是否为真 Set_Window_Property(FORMS_MDI_WINDOW, REMOVE_ON_EXIT,PROPERTY_FALSETRUE); ---设置系统提示信息等级 :System.Message_Level:= '5101520'; ---设置ITEM属性 --设置ITEM属性ENABLED Set_Item_Property('Block_name.Item_name',ENABLED,PROPERTY_TRUEFALSE); --设置ITEM属性NAVIGABLE Set_Item_Property('Block_name.Item_name',NAVIGABLE,PROPERTY_TRUEFALSE); --设置ITEM属性VISUAL_ATTRIBUTE Set_Item_Property('Block_name.Item_name',visual_attribute,'vname'); --'vname'由导航器中(VISUAL_ATTRIBUTES)定义 --设置ITEM属性DISPLAYED Set_Item_Property('Block_name.Item_name',displayed,TRUEFALSE); --设置ITEM属性POSITION Set_Item_Property('Block_name.Item_name',position,x,y);
--设置ITEM_SIZE Set_Item_Property('Block_name.Item_name',item_size,x,y); --设置ITEM属性LABLE Set_Item_Property('Block_name.Item_name',LABEL,'MESSAGE') ---设置LIST ITEM示范 Declare n number; Begin clear_list('b1.fkfs'); m:=populate_group('fkfs'); populate_list('b1.fkfs','fkfs'); /* 其中FKFS 为 record group ; */ End; ---增加'LIST ITEM' Add_List_Element(list_name, list_index, list_label, list_value); Add_List_Element(list_id, list_index, list_label, list_value); ---删除'LIST ITEM'项 Delete_List_Element(list_name, list_index); Delete_List_Element(list_id, list_index); 例: BEGIN Delete_List_Element('years',1); Add_List_Element('years', 1, '1994', '1994'); END; ---获得'LIST ITEM'项的组成 1.获得'LIST ITEM'的总和 GET_LIST_ELEMENT_COUNT(list_id); GET_LIST_ELEMENT_COUNT(list_name); 2.获得'LIST ITEM'的标签 GET_LIST_ELEMENT_LABEL(list_id, list_name, list_index); GET_LIST_ELEMENT_LABEL(list_name, list_index); 3.获得'LIST ITEM'的值 GET_LIST_ELEMENT_VALUE(list_id, list_index); GET_LIST_ELEMENT_VALUE(list_name, list_index); ---设置'时间' DECLARE timer_id Timer; one_minute NUMBER(5) := 60000; BEGIN timer_id := CREATE_TIMER('emp_timer', one_minute, REPEATNO_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; ---定义一个'EXCEPTION'例外 Declare err_1 exception; Begin If ... then Raise err-1; End if; Exception When err_1 then .... END; ---设置应用特性(光标类型) SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'CROSSHAIR''BUSY''HELP''DEFAULT''INSERTION'); *********************************************************************** **********************************函数********************************* ---把字符串的字符变成全大写(UPPER)全小写(LOWER)第一个字母大写(INITCAP) UPPERLOWERINITCAP(STRING) ---在文件的左('LPAD')右('RPAD')粘贴字符 LPADRPAD(STRING,LENGTH,'SET') "LENGTH"为总字符长"SET"为粘贴字符 ---在文件的左('LTRIM')右('RTRIM')删除字符 LTRIMRTRIM(SRTING,'SET') "SET"为待删除字符 ---找出'字符集'在字符串中的位置 INSTR('STRING','SET',N,M) 从'STRING'中找出'SET'从'N'位起第'M'个 ---数的绝对值 ABS(VALUE) ---'MOD'模 MOD(VALUE,除数) 返回'除数'除'VALUE'的余数常用判定'VALUE'是否为整数 ---把'VALUE'从'N'位四舍五入'ROUND' 或从'N'位截断'TRUNC' ROUNDTRUNC(VALUE,N) ---返回'VALUE'的符号 SIGN(VALUE) ---列表的最大值 GREATEST(N1,N1...);
列表的最小值 LEAST(N1,N1...); ---返回小于或等于数的最大整数 FLOOR(VALUE) floor(1.3)=1 floor(-1.3)=-2 ---返回大于或等于数的最小整数 CEIL(VALUE) cell (1.3)=2 cell (-1.3)=-1 ---取字符串长度 substr(string,start,number) number为string长度,start为string起点 ---DECODE函数,多重(if,then,else) decode(value,if1,then1,if2,then2,.....,else) ---判定'VALUE'是否为空(空值替换) NVL(UALUE,'WKFHZ') 'WKFHZ'是为空返回值,不为空则为原值 ---字段长度 length(:block_name.item_id) ---返回字符串的第一(最左)个字符的ascII值 ascII(string) ---多行'VALUE'的 (作用于多'行') AVG(VALUE)平均值 COUNT(VALUE)行数 MAX(VALUE)最大值 MIN(VALUE)最小值 SUM(VALUE)和 ---字符转换 TRANSLATE(STRING,'待转字符','转换字符'); 如 TEANSLATE('AAABBB','AB','BA') 返回'BBBAAA' ---比较单行中多个列的值获得最大('GREATEST'最小('LEAST') GREATESTLEAST(列名,列名,...) ---按表达式或位置排序 ORDER BY '表达式'OR'位置' ASCDESC ASC'升',DESC'降' 默认'ASC' *********************************************************************** *********************************************************************** ---游标的属性 (1) %ISOPEN 打开属性 布尔型 打开为TRUE 判定'光标'是否打开如未打开则打开'光标' IF NOT(CORSOR_NAME%ISOPEN) THEN OPEN CORSOR_NAME; END IF; FETCH
|