10/17/2012

How to Export data to excel sheet in oracle forms,Call Excel

السلام عليكم

كيف يمكنك عمل تصدير للبيانات من قاعده بيانات اوركال الى ملف اكسل من خلال الضغط على زر فى اوركال فورم 10 جى
كل ما عليك فعله هو انشاء program unit وتضع فيه الكود التالى ثم تستعدى اسم البروسيديور على الزر بأستخدام تريجر
WHEN-BUTTON-PRESSED
Code
PROCEDURE l_print_excel IS
APPLICATION OLE2.OBJ_TYPE;
WORKBOOKS OLE2.OBJ_TYPE;
WORKBOOK OLE2.OBJ_TYPE;
WORKSHEETS OLE2.OBJ_TYPE;
WORKSHEET OLE2.OBJ_TYPE;
Arglist OLE2.LIST_TYPE;
CELL OLE2.OBJ_TYPE;
r INTEGER;
c INTEGER;
file_name_cl VARCHAR2(32767);
user_cancel EXCEPTION;
Workfont OLE2.OBJ_TYPE;
WorkInterior OLE2.OBJ_TYPE;
 Cursor c1 is
Select 'EMP_CODE' COL1,'EMP_NAME' COL2
From dual;
 Cursor c2 is
Select emp_code,emp_name
From employee_master;
  --Inner Proc.
Procedure put_cell (Row_num number,
                    Col_num number,
                    put_value varchar2,
                    font_name varchar2 default null,
                    font_size binary_integer default null,
                    font_style varchar2 default null,/*here you can pass BOLD for
bold, ITALIC for italic etc*/
                    font_color binary_integer default null) is
Begin
    Arglist := OLE2.create_arglist;
    OLE2.add_arg(Arglist,row_num);
    OLE2.add_arg(Arglist,col_num); 
       cell := OLE2.get_obj_property(Worksheet,'Cells',Arglist);
    OLE2.destroy_arglist(Arglist);
    OLE2.set_property(cell,'Value',put_value);
        Workfont := OLE2.get_obj_property(cell,'Font');
    WorkInterior := OLE2.get_obj_property(cell,'Interior');
    If font_name is not null then
       OLE2.set_property(Workfont,'Name',font_name);
    End if;
    If font_size is not null then
       OLE2.set_property(Workfont,'Size',font_size);
    End if;
    If font_style is not null then              OLE2.set_property(Workfont,font_style,1);
    End if;
    If font_color is not null then              OLE2.set_property(Workfont,'ColorIndex',font_color);
    End if;
OLE2.release_obj(workinterior);
OLE2.release_obj(workfont);
OLE2.release_obj(cell);    End;  BEGIN    --Open Excel Application and make it visible
  APPLICATION := OLE2.CREATE_OBJ('Excel.Application');
  OLE2.SET_PROPERTY(APPLICATION,'Visible',True);
  -------------------------------------------------------------------------
  --Open a specified  file where i want to export data
/* Arglist := OLE2.create_arglist;
 OLE2.add_arg(Arglist,'C:\temp\test.xls');
  WORKBOOKS := OLE2.GET_OBJ_PROPERTY(APPLICATION, 'WORKBOOKS');
  WORKBOOK := OLE2.INVOKE_OBJ(WORKBOOKS, 'Open',Arglist);
  OLE2.destroy_arglist(Arglist); */
    /*open new file*/ 
  WORKBOOKS := OLE2.GET_OBJ_PROPERTY(APPLICATION, 'WORKBOOKS');
  WORKBOOK := OLE2.INVOKE_OBJ(WORKBOOKS, 'Add');
  ------------------------------------------------------------------------- 
 ---Initilize work sheet       Worksheet := OLE2.get_obj_property(Application,'Activesheet');   OLE2.set_property(Worksheet,'Name','MySheetNo.1');  
/*Print titles*/
  r := 1;
  put_Cell (r,1,'EMPLOYEE LIST OF THE COMPANY',font_style=>'BOLD');
   r := 2;
  For r1 in c1 loop
    put_Cell (r,1,r1.col1,font_style=>'BOLD');
    put_Cell (r,2,r1.col1,font_style=>'BOLD');
    r := r+1;--increment row
  END LOOP;
  /*Print Data*/
  For r2 in c2 loop  
    put_Cell (r,1,r2.emp_code);
    put_Cell (r,2,r2.emp_name);
    r := r+1;
  end loop;
    -- Save the Excel file created
  Arglist := OLE2.Create_Arglist;
  OLE2.Add_Arg(Arglist,'c:\temp\test.xls');
  OLE2.Invoke(workbook, 'Save', Arglist);
  OLE2.Destroy_Arglist(Arglist);
  -- release workbook
  OLE2.Release_Obj(worksheet);
  OLE2.Release_Obj(workbook);
  OLE2.Release_Obj(workbooks);
  OLE2.Release_Obj(application); 
End;


السلام عليكم
 How to Call Excel file from oracle form

درس اليوم عن كيف يمكنك فتح برنامج مايكروسوفت اكسل من داخل اوركال فورم 
كل ما عليك فعله هو بناء زر على الفورمه 
TRIGGER
WHEN-BUTTON-PRESSED
Code
DECLARE
AppID PLS_INTEGER;
BEGIN
AppID := DDE.App_Begin('C:\Program Files\Microsoft Office\OFFICE12/excel.exe      E:\test.xlsx',DDE.APP_MODE_MINIMIZED);
END;


قم فقط بتغير المسار الاول الى مكان تثبيت حزمه مايكروسوفت اوفيس 
فى المسار الثانى مسار الملف المراد فتحه
-->

2 comments:

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

    ReplyDelete
  2. Cool! Thanks a lot!

    ReplyDelete