الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

هل يمكن لاحد ان يشرح لي هذا الكود(export To Excel)

Featured Replies

بتاريخ:

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;

بتاريخ:

اتمنى منك اخي الكريم وضع الكود في خانة الكود كي يتسنى لنا قراءة الكود بالشكل الصحيح ..

الكود ان شاء الله سهل وسوف احاول في شرحه لك ..

بتاريخ:
  • كاتب الموضوع

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; 

اتمنى منك اخي الكريم وضع الكود في خانة الكود كي يتسنى لنا قراءة الكود بالشكل الصحيح ..

الكود ان شاء الله سهل وسوف احاول في شرحه لك ..
بتاريخ:

سوف احاول ان اشرحلك الكود بشكل سريع وسهل .. انته تحاول ان تقوم بنقل المعلومات من اوراكل الى الاكسل -- اولا قمت باستخدام الكيرسر لكي يدخل الى قاعدة بياناتك في جدول emp

الخاصية التي قمت باستخدامها في هذا تسمى ال ole وهي التي تساعدك على نقل المعلومات بحيث انك اولا تقوم بإنشاء application من ثم sheet ومن ثم تقوم بحفظه وتسميته بعد ما تفتح الكيرسر تقوم بوضع ال records في خانات الاكسل اي you put the record in excel cell بعد ذلك تحاول ان تقوم بإغلاق ال application الذي قمت بفتحه والsheet

اي استفسار انا حاضره :lol:

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.