الانتقال إلى المحتوى
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 from ane form to Excel sheet

Featured Replies

بتاريخ:

السلام عليكم و رحمة الله و بركاته

كنت اسأل عن كيفية ان اضع button بالضغط عليه يخرجى البيانات الموجوده داخل ال form الى ملف excel ارجو الافاده من الاخوه الافاضل و عما اذا كان من الممكن عمل نفس الموضوع على report ام لا.. و جزاكم الله خيرا .. و اعانكم على منفعة الاخرين

بتاريخ:

يوجد مشاركات كثيره فى هذا الموضوع بالمنتدى .. استخدم خاصية البحث لتجد اكثر مما تريد
اليك احدى هذه المشاركات

سوف أعرض لك مثال معمول ال forms كيفية نقل البيانات من ORACLE إلى Excel
استعلام
DECLARE
    OUTFILE   TEXT_IO.FILE_TYPE;
BEGIN
    OUTFILE := TEXT_IO.FOPEN('C:\TEST.CSV','W');
FOR R IN (SELECT 
          EMP_NO,
                   EMP_A_NAME,
                   EMP_ID
                   FROM 
                   EMP "أنت تحدد الجدول الذي تريده"
                   
LOOP
TEXT_IO.PUT_LINE(OUTFILE,R.EMP_NO||';'||R.EMP_A_NAME||';'||R.EMP_ID);
END LOOP;     
TEXT_IO.FCLOSE(OUTFILE);
END;



طبعا يمكنك عمل العكس ولكن أولا عليك حفظ الملف بامتداد .csv (حيث يكون الفاصل بين حقل وآخر فاصلة منقوطه) ومن ثم تنفيذ الكود التالي :
كود
DECLARE
LINEBUF            VARCHAR2(1000);
OUT_FILE             TEXT_IO.FILE_TYPE;
V_COLOUMN_1      NUMBER(9); --طبعا بحسب عدد الحقول في جدولك ونوعها
V_COLOUMN_2        NUMBER(3);
V_COLOUMN_3       NUMBER(3);
V_COLOUMN_4     VARCHAR2(3);
BEGIN 
    
begin
    OUT_file := TEXT_IO.FOpen('C:\TEST.CSV','R');
    Exception when Others then
         Message('Error in Reading from file C:\TEST.CSV');
         RETURN;
end;
                         
--********** 
LOOP

BEGIN     
TEXT_IO.GET_LINE(OUT_FILE,LINEBUF);
EXCEPTION WHEN NO_DATA_FOUND THEN
EXIT;       
END;     
LINEBUF := LTRIM(LINEBUF);
V_COLOUMN_1    := SUBSTR(LINEBUF,1,9);
V_COLOUMN_2    := SUBSTR(LINEBUF,INSTR(LINEBUF,';',1,1)+1,                                   INSTR(LINEBUF,';',1,2)-INSTR(LINEBUF,';',1,1)-1 );
V_COLOUMN_3    := SUBSTR(LINEBUF,INSTR(LINEBUF,';',1,2)+1,                                   INSTR(LINEBUF,';',1,3)-INSTR(LINEBUF,';',1,2)-1 );
V_COLOUMN_4    := SUBSTR(LINEBUF,INSTR(LINEBUF,';',1,3)+1);                               
--********************** 
INSERT INTO TEST(COLOUMN_1,COLOUMN_2,COLOUMN_3,COLOUMN_4)
VALUES(V_COLOUMN_1,V_COLOUMN_2,V_COLOUMN_3,V_COLOUMN_4);
--**********************                                                            
END LOOP; 
COMMIT;
TEXT_IO.FClose(out_file); 

SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');
EXCEPTION WHEN OTHERS THEN
   MESSAGE(SQLERRM);
   SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');
   TEXT_IO.FClose(out_file);
END;



فيما يخص التقرير
يمكنك استخراج التقرير على شكل html وعرضه فى المتصفح
ثم افتح برنامج ال excel واعمل استيراد لهذا الملف

وتوجد طرق اخرى تم عرضها بالمنتدى

واليك ايضا form من مشاركة سابقه

ora_exl.zip

تم تعديل بواسطة Amgad

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

صراحه يا اخ amgad انا مش عارف اقولك ايه.. جزاك الله عنى خير الجزاء.. و افاد بك كل المسلمين

جزاك الله خيرا لاستجابتك و للافاده العظيمه التى وجدتها منك...

وفقك الله و الجميع .....

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

اخى انا استخدمت هذا الكود لاظهار عمودين من الجدول و بالفعل اضهرهما و لكن لم يهر الا اول صف فيهما بس..... اخى هذا الكو الذى استعملته على زرار كما نصحتنى و ارجو ان نعرف اين الخلل


[/code]DECLARE
oo varchar(20);
ll varchar(20);
appid pls_integer;
convid pls_integer;
nm number := 1;
fm number := 1;
rowcol varchar(20);
rowcol2 varchar(20);
cursor mm is
select job_id, job_title from jobs;

BEGIN
appid := dde.app_begin('C:\Program Files\Microsoft Office\Office10\excel c:\abc.xls',
dde.app_mode_maximized);
convid := dde.initiate('EXCEL', 'c:\abc.xls');
open mm;
loop
fetch mm
into oo, ll;
exit when mm%notfound;
rowcol := 'R' || nm || 'C1';
rowcol2 := 'R' || fm || 'C2';
dde.poke(convid, rowcol, oo, dde.cf_text, 1000);
dde.poke(convid, rowcol2, ll, dde.cf_text, 1000);
nm := nm + 1;
fm := fm + 1;
end loop;
DDE.EXECUTE(convid, '[sAVE]', 99999);
end;

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


DECLARE
oo varchar(20);
ll varchar(20);
appid pls_integer;
convid pls_integer;
nm number := 1;
fm number := 1;
rowcol varchar(20);
rowcol2 varchar(20);
cursor mm is
select job_id, job_title from jobs;

BEGIN
appid := dde.app_begin('C:\Program Files\Microsoft Office\Office10\excel c:\abc.xls',
dde.app_mode_maximized);
convid := dde.initiate('EXCEL', 'c:\abc.xls');
open mm;
loop
fetch mm
into oo, ll;
exit when mm%notfound;
rowcol := 'R' || nm || 'C1';
rowcol2 := 'R' || fm || 'C2';
dde.poke(convid, rowcol, oo, dde.cf_text, 1000);
dde.poke(convid, rowcol2, ll, dde.cf_text, 1000);
nm := nm + 1;
fm := fm + 1;
end loop;
DDE.EXECUTE(convid, '[sAVE]', 99999);
end;
بتاريخ:

بارك الله فيك و جعلك عونا لكل الأوراكلجية ..

Oracle ITself

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

هذا الكود كامل و يظهر كل الاعمده و الصفوف انا جربته



DECLARE
 j_id        varchar(200);
 j_title     varchar(200);
 j_minsal    varchar(200);
 j_maxsal    varchar(200);
 j_minsal_s  varchar(200);
 j_maxsal_s  varchar(200);
 
 
 appid  pls_integer;
 convid pls_integer;
 
 
 j1     number := 1;
 j2     number := 1;
 j3     number := 1;
 j4     number := 1;
 j5     number := 1;
 j6     number := 1;
 

 rowcol  varchar(200);
 rowcol2 varchar(200);
 rowcol3 varchar(200);
 rowcol4 varchar(200);
 rowcol5 varchar(200);
 rowcol6 varchar(200);
 
 
 cursor mm is
  
  select job_id ,job_title, min_salary, max_salary,
                  sum(min_salary) , sum(max_salary)         
    from jobs;
   
   
BEGIN
 appid  := dde.app_begin('C:\Program Files\Microsoft Office\Office10\excel c:\abc.xls',
                         dde.app_mode_maximized);
 convid := dde.initiate('EXCEL', 'c:\abc.xls');
    open mm;
    
 loop
    fetch mm
        into j_id, j_title , j_minsal, j_maxsal, j_minsal_s,j_maxsal_s;
        exit when mm%notfound;
         
      rowcol  := 'R' || j1 || 'C1';
      rowcol2 := 'R' || j2 || 'C2';
      rowcol3 := 'R' || j3 || 'C3';
      rowcol4 := 'R' || j4 || 'C4';
      rowcol5 := 'R' || j5 || 'C5';
      rowcol5 := 'R' || j6 || 'C6';
                                   
                                   
   dde.poke(convid, rowcol,  j_id,        dde.cf_text, 1000);
   dde.poke(convid, rowcol2, j_title ,    dde.cf_text, 1000);
   dde.poke(convid, rowcol3, j_minsal ,   dde.cf_text, 1000);
   dde.poke(convid, rowcol4, j_maxsal ,   dde.cf_text, 1000);
   dde.poke(convid, rowcol5, j_minsal_s , dde.cf_text, 1000);
   dde.poke(convid, rowcol6, j_maxsal_s , dde.cf_text, 1000);
   
   
        j1 := j1 + 1;
        j2 := j2 + 1;
        j3 := j3 + 1;
        j4 := j4 + 1;
        j5 := j5 + 1; 
        j6 := j6 + 1;
 end loop;
j5 := j5 + 1; 
j6 := j6 + 1;
 DDE.EXECUTE(convid, '[sAVE]', 99999);
 
end;

  • بعد 1 شهر...
بتاريخ:

مشكورررررررررررررررررررررررررررر

بتاريخ:

هنالك بكج خاص من الاوراكل يدعى DDE
ومن خلاله يمكن التعامل مع الاكسل مباشرة وسأرفق ملف يتضمن مثال على SCOTT

CONVERT_TO_EXCEL.txt

بتاريخ:

جزاكم الله جميعاً خير

أعتقد ان ايضا ممكن ان نعمل هذا BUTTON فى REPORT.

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

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

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

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

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

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.