بتاريخ: 10 يونيو 200818 سنة comment_130967 هل يمكن لاحد ان يشرح لي هذا الكود declare CURSOR c_cur IS SELECT EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO FROM emp; MyApplication OLE2.OBJ_TYPE; args OLE2.LIST_TYPE; wb OLE2.OBJ_TYPE; wss OLE2.OBJ_TYPE; wbs OLE2.OBJ_TYPE; cell OLE2.OBJ_TYPE; went ole2.obj_type; c1 number(4); c2 number(4); args1 OLE2.LIST_TYPE; nm_of_col number:=8; begin MyApplication := OLE2.CREATE_OBJ('Excel.Application'); OLE2.SET_PROPERTY(MyApplication , 'Visible',1); wbs := OLE2.GET_OBJ_PROPERTY(MyApplication ,'Workbooks'); wb := OLE2.INVOKE_OBJ(wbs,'Add'); wss := OLE2.GET_OBJ_PROPERTY(MyApplication ,'ActiveSheet'); OLE2.SET_PROPERTY(wss , 'Value','Sheet1'); OPEN c_cur; c1:=1; LOOP fetch c_cur into :global.1,:global.2,:global.3,:global.4,:global.5,:global.6,:global.7,:global.8; exit when c_cur%NOTFOUND; --c2:=1; for vv in 1..nm_of_col loop args := OLE2.CREATE_ARGLIST; OLE2.ADD_ARG(args, c1); OLE2.ADD_ARG(args, vv); cell := OLE2.GET_OBJ_PROPERTY(wss,'Cells', args); OLE2.SET_PROPERTY(cell, 'Value',name_in( 'global.'||vv)); OLE2.DESTROY_ARGLIST(args); ole2.release_obj(cell); END LOOP; c1:=c1+1; END LOOP; CLOSE c_cur; OLE2.DESTROY_ARGLIST(args); args1 := OLE2.CREATE_ARGLIST; OLE2.ADD_ARG(args1, 'C:\DOCS\EXAMPLE.xls'); --OLE2.INVOKE(wb, 'SaveAs', args1); OLE2.DESTROY_ARGLIST(args1); --OLE2.INVOKE(wb,'CLOSE'); --ole2.invoke(MYApplication,'Quit'); ole2.release_obj(wb); ole2.release_obj(wbs); ole2.release_obj(wss); ole2.release_obj(wss); ole2.release_obj(wb); OLE2.RELEASE_OBJ(MyApplication); END; تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.