我使用甲骨文表格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;
最有可能的是,您缺少以下两组中列出的文件:
frmwebutil.jar
,jacob.jar
(可能frmall_jinit.jar
也)文件在\form\java
目录或
jacob-1.14.3-x86。dll
,JNISharedSubs。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会提示您对这些文件进行签名。需要使用checking
always
选项对它们进行签名。
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中的所有新上载中,创建了一个队列,管理员可以批准或删除该队列。所有经批准的视频最终都会出现在一个列表中,