当前位置: 首页 > 知识库问答 >
问题:

配置WEBUTIL后Oracle Form冻结

裴成文
2023-03-14

我使用甲骨文表格10g。它是基于web的甲骨文表单应用程序。我想从Oracle窗体10g生成Excel报表。我配置了WEBUTIL并使用CLIENT_OLE2包。在触发器WHEN-BUTTON-PRESSED中声明的过程。当按下按钮时,突然表单冻结,他们什么也做不了。退出按钮和菜单选项停止工作。它不提供任何信息,也不做任何操作。

程序代码:

declare
 application client_ole2.obj_type;
 workbooks client_ole2.obj_type;
 workbook client_ole2.obj_type;
 worksheets client_ole2.obj_type;
 worksheet client_ole2.obj_type;
 cell client_ole2.obj_type;
 arglist client_ole2.list_type;
 row_num number;
 col_num number;
 fontObj client_ole2.obj_type;

cursor rec is SELECT so.descr saleorgdescr,ih.invdate invdatemaster, ih.docNUM docnum,
   TO_CHAR(ih.invdate,'mon-yyyy') invmonth
FROM ARMINVHEAD ih, SDMSALEORG so
WHERE
ih.status='69'
AND  TO_DATE(ih.INVDATE,'DD-MM-RRRR')
BETWEEN
                   TO_DATE('01-01-2008','DD-MM-RRRR') 
              AND  
                   TO_DATE('01-01-2009','DD-MM-RRRR')
order by IH.INVDATE, ih.docnum;

procedure SetCellValue(rowid number,colid number,cellValue varchar) is
 begin
 arglist := client_ole2.create_arglist;
 client_ole2.add_arg(arglist,rowid);
 client_ole2.add_arg(arglist,colid);
 cell:= client_ole2.get_obj_property(worksheet,'Cells',arglist);
 fontObj := client_ole2.get_obj_property(cell,'Font');
 client_ole2.destroy_arglist(arglist);
 client_ole2.set_property(cell,'value',cellValue);
 client_ole2.set_property(fontObj,'Size',16);
 client_ole2.set_property(fontObj,'BOLD',1);
 client_ole2.set_property(fontObj,'ColorIndex',7);
 client_ole2.release_obj(cell);
end SetCellValue;

procedure app_init is
 begin
 application := client_ole2.create_obj('Excel.Application');
 client_ole2.set_property(application,'Visible',true);
 workbooks := client_ole2.get_obj_property(application,'workbooks');
 workbook := client_ole2.Get_Obj_Property(workbooks,'add');
 worksheets := client_ole2.get_obj_property(application,'worksheets');
 worksheet := client_ole2.Get_Obj_Property(worksheets,'add');
 client_ole2.set_property(worksheet,'Name','Emp Sheet');
end app_init;

procedure save_excel(path varchar,filename varchar) is
 begin
 client_OLE2.Release_Obj(worksheet);
 client_OLE2.Release_Obj(worksheets);
 -- Save the Excel file created
 If path is not null then
   Arglist := client_OLE2.Create_Arglist;
   client_OLE2.Add_Arg(Arglist,path||'\'||file_name||'.xls');
   client_OLE2.Invoke(workbook, 'SaveAs', Arglist);
   client_OLE2.Destroy_Arglist(Arglist);
end if;
end save_excel;

begin
 app_init;
 row_num:=1;
 col_num:=1;
 SetCellValue(row_num,col_num,'saleorgdescr');
 col_num:=col_num + 1;
 SetCellValue(row_num,col_num,'invdatemaster');
 col_num:=col_num + 1;
 SetCellValue(row_num,col_num,'docnum');
 col_num:=col_num + 1;
 SetCellValue(row_num,col_num,'invmonth');
 for i in rec loop
 row_num:=row_num + 1;
 col_num:=1;
 SetCellValue(row_num,col_num,i.saleorgdescr);    
 col_num:=2;
 SetCellValue(row_num,col_num,i.invdatemaster);    
 col_num:=3;
 SetCellValue(row_num,col_num,i.docnum);
 col_num:=4;
 SetCellValue(row_num,col_num,i.invmonth);   
end loop;    
save_excel('C:','emp_data');       
client_OLE2.Release_Obj(workbook);
client_OLE2.Release_Obj(workbooks);
client_OLE2.Release_Obj(application);
end;

共有1个答案

宣原
2023-03-14

最有可能的是,您缺少以下两组中列出的文件:

  • frmwebutil.jarjacob.jar(可能frmall_jinit.jar也)文件在\form\java目录

  • jacob-1.14.3-x86。dllJNISharedSubs。dll和d2kwut60。dllC:\ProgramFiles(x86)\Java\jre1中的文件。8.0_xxx\bin目录

假设您的Oracle Fusion中间件主页是C:\Oracle\u 10g。如果它们不存在于该目录中,手动将它们移动到该目录就足够了。

  • 此外,它们优选包含在CLASSPATH中,因为CLASSPATH=C:\ORACLE_10g\form\java\jacob.jar; C:\ORACLE_10g\form\java\frmwebutil.jar;

  • 编辑文件C:\ProgramFiles(x86)\Java\jre1。8.0\u xxx\lib\security\java。策略作为添加权限java。安全所有许可到文件底部
    最后一个带分号的大括号之前

就在Forms应用程序运行之前,Oracle会提示您对这些文件进行签名。需要使用checkingalways选项对它们进行签名。

 类似资料:
  • webutil 是一款针对web开发人员开发的工具集系统,将提供常用工具的Demo以及常用js库和CSS库的样式demo。

  • 我有一个简单的聊天客户端,我正试图使用作为界面。我的问题是,使用进行聊天输入/输出后,窗口将冻结并阻塞,直到收到另一条消息。 这段代码被缩短了,但是显示了相关的部分。小部件将在很长一段时间内变得无响应,而被调用之后,直到收到消息才会响应。 当小部件再次响应时,条目字段包含输入的所有数据,但在“冻结”时间内我看不到更改。小部件也是如此。 如果有人能解释一下为什么会这样,或者指出我是否错过了这里使用的

  • 问题内容: 我在修改Python和集合类型。 最初,我认为它将提供比更好的查找性能,因为它是不变的,因此可以利用存储项目的结构。 但是,对于以下实验,情况似乎并非如此: 我使用CPython和PyPy执行了此代码,结果如下: 在CPython和PyPy中,查找性能似乎实际上要慢一些。有人知道为什么会这样吗?我没有研究实现。 问题答案: 的和实现在很大程度上共享; a只是一个添加了变异方法的a ,具

  • 问题内容: 更换播放器时,Android 出现问题。根据(http://developer.android.com/reference/android/media/MediaPlayer.html)的规范,更改时我必须对播放器进行操作。这可以正常工作,但是一旦快速连续两次调用该方法,就会冻结UI。我分析了代码,如下所示: 重设:3 setDataSource:1 准备:0 重置:3119 setD

  • 我有一个域名lxl.top,有两个通过docker部署在ngingx上的web前端项目log,admin, 能通过域名+端口号访问, 现在我想要通过log.lxl.top和admin.lxl.top分别访问这两个项目, 两个前缀已经在dns解析了, 在nginx配置文件中该怎么配置呢? 我的nginx配置文件如下

  • 我一直在尝试构建一个项目,其中Flask应用程序可以自动将选定数量的视频连接到“核心视频”。 用户可以上传视频,并将其发送到amazon s3进行存储。所有视频都由Moviepy预处理为mp4文件,以24 fps无音频运行,分辨率为720p。经过此预处理后,视频上传到amazon s3。 在s3中的所有新上载中,创建了一个队列,管理员可以批准或删除该队列。所有经批准的视频最终都会出现在一个列表中,