在oracle的前端工具form4.5中,封装过程资源相当丰富,且用途广泛。笔者在系统设计中,借助其中的封装过程“forms_ddl”,解决了许多应用难题。以下就所实现部分功能作简要介绍。
一、 实现数据的批量复制
在应用系统中,经常存在需要成批量处理的数据,采用程序实现后,可以大大地提高工作效率。如以电表电耗dhjl(电表柜号dbgh,电表号dbh,倍率bl,月份yf char(6),上月表底数bs1,本月表底数bs2)为例,用户当月的工作是将上月数据再追加一次,然后将bs2值自动替换为本月(a1)的bs1值,而用户只需输入本月的bs2值。编程实现如下:
――根据上月产生当月(a1〔的记录的查询
h1:='select dbgh,dbh,bl,'''''a1'''''"yf",bs2,bs2 from nhjl
where yf=to_char(add_months(to_date(a1,'yyyymm'),-1),'yyyymm');
――生成临时表dhjl1
forms_ddl('create table dhjl1 as 'h1);
――将临时表追加到dhjl中,但不能重复
h1:='insert into nhjl select * from dhjl1 where (dbgh,dbh,bl,yf)
not in (select dbgh,dbh,bl,yf nhjl)';
forms_ddl(h1);
――删除临时表
forms_ddl('drop table dhjl1');
――提交
commit_form;
二、 解决按周期换算问题
日常应用中,还有一类具有典型周期性的应用。如在设备管理中,设备的周期性维修保养计划wxjh(设备编号sbbh,保养部位wxbw,保养内容 wxnr,维修周期wxzq,开始月份ksrq char(6)),用户在进行数据初始化之后,只要输入一个年份值(a1),就根据维修周期和输入年份换算出当年设备维修保养计划(wxjh1)的内容。程序实现如下:
a1:='01';――初始化
――产生出1月份的维修保养项目的查询语句的字符串,并初始化h1
h1:='select sbbh,wxbw,wxnr,'''''a1a2'''''"yf" from wxjh
where mod('a1a2'-to_number(ksrq),wxzq)=0 and ksrq<='''''a1a2'''';
k1:=2;――初始化
――产生出2到12月份的维修保养项目的查询语句的字符串,并用union连接
while k1<13 loop
a2:=to_char(k1);
a2:=lpad(a2,2,'0');――格式转换
h1:=h1' union ''select sbbh,wxbw,wxnr,'''''a1a2'''''"yf" from
wxjh where mod('a1a2'-to_number(ksrq),wxzq)=0
and ksrq<='''''a1a2'''';
k1:=k1+1;
end loop;
――删除旧表并创建新表
forms_ddl('drop view wxjh1');
forms_ddl('create view wxjh1 as 'h1);
三、 实现用户自定义公式列
对于应用系统来说,绝大部分的编程和维护工作是由报表的调整引起的。用户会提出自己输入公式定义新列的要求。实现方法如下:
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器