`
chengyue2007
  • 浏览: 1469718 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

oracle Form开发常用语法

 
阅读更多
Form开发常用语法
---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, MAXIMIZE|MINIMIZE);
  --WINDOW标题
  Set_Window_Property(FORMS_MDI_WINDOW, title,'TEXT');
  --退出是否为真
  Set_Window_Property(FORMS_MDI_WINDOW, REMOVE_ON_EXIT,PROPERTY_FALSE|TRUE);
---设置系统提示信息等级
  :System.Message_Level:= '5|10|15|20';
---设置ITEM属性
  --设置ITEM属性ENABLED
  Set_Item_Property('Block_name.Item_name',ENABLED,PROPERTY_TRUE|FALSE);
  --设置ITEM属性NAVIGABLE
  Set_Item_Property('Block_name.Item_name',NAVIGABLE,PROPERTY_TRUE|FALSE);
  --设置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,TRUE|FALSE);
  --设置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');

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, 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;   
---定义一个'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)
     UPPER|LOWER|INITCAP(STRING)
---在文件的左('LPAD')('RPAD')粘贴字符
      LPAD|RPAD(STRING,LENGTH,'SET')  "LENGTH"为总字符长"SET"为粘贴字符
---在文件的左('LTRIM')('RTRIM')删除字符
      LTRIM|RTRIM(SRTING,'SET')    "SET"为待删除字符
---找出'字符集'在字符串中的位置
  INSTR('STRING','SET',N,M)  'STRING'中找出'SET''N'位起第'M'
---数的绝对值
   ABS(VALUE)
---'MOD'
    MOD(VALUE,除数) 返回'除数''VALUE'的余数常用判断'VALUE'是否为整数   
---'VALUE''N'位四舍五入'ROUND'  或从'N'位截断'TRUNC'
     ROUND|TRUNC(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)  numberstring长度,startstring起点
        

---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')
    GREATEST|LEAST(列名,列名,...)
---按表达式或位置排序
   ORDER BY '表达式'OR'位置' ASC|DESC  ASC'',DESC'' 默认'ASC'   
***********************************************************************
***********************************************************************
---游标的属性
   (1) %ISOPEN  打开属性
布尔型
打开为TRUE      
        判断'光标'是否打开如未打开则打开'光标'
        IF NOT(CORSOR_NAME%ISOPEN) THEN
           OPEN CORSOR_NAME;
        END IF;
       FETCH CORSOR_NAME INTO ...
   (2) %NOTFOUND 布尔型
最近一次'FETCH'返回无结果
则为TRUE
          OPEN CORSOR_NAME;
          LOOP
               FETCH CORSOR_NAME INTO ...   
               EXIT WHEN CORSOR_NAEM%NOTFOUND;
          END LOOP;
   (3) %FOUND 布尔型
最近一次'FETCH'返回无结果
则为FALSE
         OPEN CORSOR_NAME;
         
         WHILE CORSOR_NAME%FOUND LOOP
               ......
               FETCH CORSOR_NAME INTO ...
         END LOOP;
         CLOSE CORSOR_NAME;
   (4) %ROWCOUNT NUMVER
为游标取出的行数
         OPEN CORSOR_NAME;
         LOOP
            FETCH CORSOR_NAME INTO ...
            EXIT WHEN CORSOR_NAME%ROWCOUNT&gt;5;
             ......   
         END LOOP;         
         CLOSE CORSOR_NAME;
         
---循环语句
   (1)基本循环
       LOOP
        .....
       EXIT WHILE; (EXIT WHEN X&gt;100)
       END LOOP;
   (2)WHILE循环
       WHILE ( WHEN X&gt;100) LOOP
         .....
       END LOOP;
   (3)数值型FOR循环  'X'为计数器  
       FOR X IN (第减值) Y..Z LOOP
          .....
       END LOOP;
   (4)游标FOR循环
      
         
---Exception(例外)在最近的'BEGIN''END'之间
Exception
       语法1 '没有数据找到'
       when no_data_found then
       语法2 '发生任何错误'
       when others then
       语法3 '发现多行'
       WHEN TOO_MANY_ROWS THEN
       语法4 '字符向数字转换失败'
       WHEN INVALID_NUMBER THEN      
       语法5 '被零除'
       WHEN ZERO_DIVIDE THEN
       语法6 '向唯一索引中插入重复数据'
       WHEN DUP_VAL_ON_INDEX THEN
       语法7 '非法游标操作'
       WHEN INVALID_CURSOR THEN
       语法8 '数字的,数据转换,截字符串或强制性的错误'
       WHEN VALUE_ERROR THEN  
**************************************************************************
**************************************************************************
--常用TEXT_IO
Delcare
  out_file  text_io.file_type;
Begin
  out_file:=text_io.fopen('prn','w');
  text_io.new_line(out_file,' ');
  text_io.put_line(out_file,' ')
  text_io.fclose(out_file);
End;
---文本输入输出
   TEXT_IO
   TEXT_IO PACKAGE
   TEXT_IO FCLOSE
   TEXT_IO.FILE_TYPE
   TEXT_IO.FOPEN
   TEXT_IO.IS_OPEN
   TEXT_IO.GET_LINE
   TEXT_IO.NEW_LINE
   TEXT_IO.PUT
   TEXT_IO.PUTF
   TEXT_IO.PUT_LINE
  USING TEXT_IO CONSTRUCTS
----------------------------
Declare
     Out_file     Text_io.file_type;
     L            Varchar2(100);
     L1           Varchar2(100);
     L2           Varchar2(100);
Begin
    Out_file :=text_io.fopen('c:lllogin.txt','r');
    If text_io.is_open(Out_file) then
    text_io.get_line(Out_file,L);
    text_io.get_line(Out_file,L1);
    text_io.get_line(Out_file,L2);
    Else
        Null;
    End if;
End;   
---清除全局变量
   erase('global.var_name');
---隐藏'WINDOW','VIEW','MENU'
   HIDE_WINDOW|VIEW|MENU(WINDOW|VIEW|MENU_name);
--- 增加参数add_parameter
Declare
  pl_id ParamList;
BEGIN
  pl_id:=Get_Parameter_List('tempdata');
  IF NOT Id_Null(pl_id) THEN
     Destroy_Parameter_List(pl_id);
  END IF;
  pl_id:=Create_Parameter_List('tempdata');
  Add_Parameter(pl_id,'EMP_QUERY',DATA_PARAMETER,'EMP_RECS');
  Run_Product(REPORTS,'empreport',SYNCHRONOUS,RUNTIME,
              FILESYSTEM,pl_id,NULL);
END;
---
DECLARE
  lArgs OLE2.LIST_TYPE;
BEGIN
  word.hApp:=OLE2.CREATE_OBJ('Word.Basic');
  lArgs:=OLE2.CREATE_ARGLIST;
  OLE2.ADD_ARG(lArgs,le.word_doc);
  OLE2.INVOKE(Word.hApp,'fileopen',lArgs);
  OLE2.DESTROY_ARGLIST(lArgs);
END;
***********************删除重复记录**************
  Delete from emp e
  where e.rowid &gt;
   (select min(f.rowid) from emp f
    4 where f.empno=e.empno);
分享到:
评论

相关推荐

    李兴华 java_web开发实战经典 源码 完整版收集共享

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    李兴华Java Web开发实战经典(高清版) Part2

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    mysql数据库的基本操作语法

    注意:alter modify不支持一次修改多个列,但是Oracle支持多列修改 但是MySQL可以通过多个modify的方式完成: alter table user modify tel varchar(15) default '02087654321' first, modify name varchar(20) ...

    j2ee学习路径 对初学者很有帮助

    一:J2SE 面向对象-封装、继承、多态 内存的分析 递归 集合类、泛型、自动打包与...JS常用效果如TreeView、下拉联动等 JS学习方法 JS调试方法 DreamWeaver初步(建立HTML、Table、Form、CSS)等 5:Servlet & JSP

    java web 视频、电子书、源码(李兴华老师出版)

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    php网络开发完全手册

    1.6 几种开发工具的介绍 20 1.6.1 Vi及Vim 20 1.6.2 Eclipse+PHPEclipse插件 21 1.6.3 UltraEdit 21 1.6.4 EditPlus 22 1.6.5 支持PHP的IDE环境 22 1.7 小结 23 第2章 PHP的基础语法 24 2.1 语言构成与工作原理 24 ...

    ABAP/4 用户指南

    绝对经典的资料,所有语法用法都能查到 版权所有 (c) 1996 SAP AG 公司。保留 所有权利。 未经 SAP AG公司明 确许可,本 功能描述的 任何部分都 不得以任何 形式或以任 何目的进行 复制或传播 。若此处内 容变动,恕...

    asp.net知识库

    Web Form 窗体 如何实现web页面的提示保存功能 在ASP.Net中两种利用CSS实现多界面的方法 如何在客户端调用服务端代码 页面一postback,它就显示页面的最顶端,怎样让它定位在某一位置? 如何保证页面刷新后的滚动条...

    Servlet与JSP核心编程第2版

    19.2 form元素 19.3 文本控件 19.4 按钮 19.5 复选框和单选按钮 19.6 组合框和列表框 19.7 文件上载控件 19.8 服务器端图像映射 19.9 隐藏域 19.10 控件组 19.11 制表次序 19.12 用于调试的web...

    Java学习笔记-个人整理的

    {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {1.4.1}整数与浮点数}{23}{...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    你可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP安装版本需要哪些功能。引用...

    java面试题及技巧3

    │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科面试题.pdf │ 速算.txt │ 面试题URL.txt │ ├─Javascript │ │ javascript资料(源码,教材,ppt).rar │ │ │ └─javascript资料...

    千方百计笔试题大全

    43、说出一些常用的类,包,接口,请各举5 个。 12 44、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?是否可以implements(实现)interface(接口)? 12 45、内部类可以引用他包含类的成员吗?有...

    java面试宝典

    43、说出一些常用的类,包,接口,请各举5 个。 12 44、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?是否可以implements(实现)interface(接口)? 12 45、内部类可以引用他包含类的成员吗?有...

    vfp6.0系统免费下载

    语法上的相似还意味着,Visual Basic 书籍和杂志上的代码也将有助于 Visual FoxPro 的开发人员。 问题 1-9: 多年来我一直在使用 Visual FoxPro?有什么理由需要升级到 Visual Studio? 答案: Microsoft Visual ...

Global site tag (gtag.js) - Google Analytics