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;

9/26/2012

How to Change Oracle Database Character Set to Arabic


SHUTDOWN IMMEDIATE;
STARTUP MOUNT; 
ALTER SYSTEM ENABLE RESTRICTED SESSION; 
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 
ALTER SYSTEM SET AQ_TM_PROCESSES=0; 
ALTER DATABASE OPEN; 
ALTER DATABASE CHARACTER SET INTERNAL_USE AR8MSWIN1256;
SHUTDOWN IMMEDIATE;
STARTUP;


Oracle Developer 
Ahmed Arafa


5/27/2012

How to change SQL prompt name

السلام عليكم

Code

Sql> SET SQLPROMPT "Arafa>"
Arafa>
Arafa>

Oracle Developer 
Ahmed Arafa 

5/16/2012

How to Add a CONSTRAINT , How to Deferring Constraint

السلام عليكم

 CONSTRAINT سنتحدث اليوم عن القيود 
فى البدايه ما هى القيود :هى عباره عن شرط او مجموعه من الشروط يتم تنفيذها على عمود معين ومن خلال هذه القيود يتم تنفيذ الشرط DML المطلوب على جمل ال 
تتكون القيود من خمس شروط
1-NOT NULL
وهى تضمن ان لا يحتوى العمود على قيمه فارغه
2-UNIQUE
وهى تضمن ان يحتوى عمود او مجموعه من الاعمده ان القيمه الموجوده بداخله فريده من نوعها وغير مكرره على مستوى الصفوف فى الجدول
3-PRIMARY KEY
NULL وهى تضمن ان لا يكون محتوى الصف مكرر على مستوى الصفوف داخل الجدول ولا تسمح بلقيم الفارغه 
4-FOREIGN KEY
وهى تسمح بوجود علاقه بين عمودين فى جدولين مختلفين
5- CHECK
وهى تقوم بعمل شرط معين على عمود معين ويجب ان يحقق الشرط

ملحوظه
SYS_Cn Format او تقوم اوركال بتسميتها باستخدام CONSTRAINT يمكنك تسميه القيود 
 فى مرحلتين المرحله الاولى عند بناء جدول جديد المرحله التانيه بعد بناء الجدولCONSTRAINT يمكنك بناء او انشاء القيود
data dictionary يمكنك اظهار القيود باستخدام ال  

 تحديد القيود Defining Constraint

5/13/2012

The SET UNUSED Option

السلام عليكم
 The SET UNUSED Optionسنتحدث اليوم عن
تمكنك هذه الخاصيه او الامر من تاجيل استخدام عمود معين او اكثر داخل الجدول
Code

ALTER TABLE <table_name>
SET UNUSED (<column_name>);
OR
ALTER TABLE <table_name>
SET UNUSED COLUMN <column_name>;
To DROP
ALTER TABLE <table_name>
DROP UNUSED COLUMNS;
Example

ALTER TABLE dept80SET UNUSED (last_name);
ALTER TABLE dept80DROP UNUSED COLUMNS;

  drop unused columns ملحوظه :عند استخدامك ل 
فهى تقوم بمسح لكل الاعمده الغير مستخدمه فى الجدول


Oracle Developer 
Ahmed Arafa 

2/25/2012

How to convert days to years , How to get first SATURDAY after six months

السلام عليكم 
How to convert days to years

هذا الكود يمكنك من تحويل الايام الى سنوات وشهور ...المثال يوضح لك تحويل عدد 1000 يوم الى سنين وشهور

Code

select trunc(months_between(sysdate+1000, sysdate)/12) years,
months_between(sysdate+1000, sysdate)-12*trunc(months_between(sysdate+1000, sysdate)/12)months
from dual;

Result
YEARS   MONTHS
    2    8.87096774193548387096774193548387096774 
السلام عليكم
How to get first SATURDAY after six months 

من خلال الكود التالى سوف تحصل على اول سبت بعد سته اشهر
Code
SELECT
             NEXT_DAY(ADD_MONTHS(TRUNC(SYSDATE,'YEAR'),6),'SAT')
FROM  DUAL;

2/01/2012

How to get list of all parent child relation in the database

السلام عليكم

 Parent -Childيمكنك هذا الكود من استعراض العلاقات بين الجداول فى حاله ال 






1/20/2012

How to hide and show TEXT-ITEM

السلام عليكم 
LIST ITEM قد تحتاج فى بعض الاحيان لأخفاء ايتم معين من على الفورمه فى هذا المثال لدى 
يحتوى على نفس الاسماء LIST ELEMENTS يحتوى على قيمتين الاولى فيزا والثانيه نقدى و ال
 ما اريده هو عند اختيار فيزا يتم اظهار هذه العناصر
visa_number
visa_expire
Property Palette من خلال visible = no مع العلم انى قمت بتغير ال  

i create a trigger
WHEN-LIST-CHANGED

if :<block_name>.<chk_name>='Y'   <---------value when checked then  set_item_property('<block_name>.<list_item_name>',visible,property_true);else  set_item_property('<block_name>.<list_item_name>',visible,property_false);
end if;

1/15/2012

Arabic problem with PDF in Report Builder 10g

السلام عليكم

قم بفتح الريجسترى عن طريق الامر regedit
وابحث عن NLS_LANG
وتأكد انها تحتوى على اللغه العربيه مثل
ARABIC_EGYPT.AR8MSWIN1256
بعد ذلك اذهب الى المسار التالى فى حاله ويندوز اكس بى
C:\WINDOWS\Fonts
 
REPORT_PATH ثم عد الى الريجسترى مره اخرى وقم بأضافه المسار فى 
بعد ذلك اذهب الى المسار التالى
orcledsuitehome\tools\common\uifont.ali
وقم بلتعديل على الملف واضافه القيم التاليه

1/09/2012

حاجه غريبه

الواحد يبقى قاعد بيبرمج فى شاشه او عنده مشكله فى كود او بيفكر فى حل جديد ويفضل قاعد بلساعات يفكر يفكر يفكر واول ما يقوم من مكانه ويروح  حته تانيه تنط فى دماغه فكره يحل بيها المشكله اللى كانت مجنناه

1/07/2012

Country List

السلام عليكم
INSERT قمت بعمل ملف يحتوى على جميع البلاد العربيه ويحتوى ايضا على جدول الجنسيات وكود ال
يمكن تحميل الملف من الرابط  

1/05/2012

Oracle Webutil

السلام عليكم

سوف نتحدث اليوم عن اداه بسيطه تقدمها اوركال لرفع مستوى اداء النماذج لبرامج الويب
ما هو الـ webutil؟؟
هو اداه بسيطه لتحقيق التكامل اثناء تشغيل نماذج اوركال على الويب والهدف الاساسى من الاداه هو توفير وتسهيل بيئه مناسبه  للمبرمجين لتنفيذ المهام المعقده على اجهزه العميل عن طريق المتصفح.. دون الحاجه لتعلم لغات برمجه جديده لتنفيذ هذه المهام فتمكنك 
فقط PL/SQL لتنفذ بها مهامك على اجهزه العميل والتى يصعب تنفيذها باستخدام لغه ال PL/SQL  الاداه من كتابه جمل

بسم الله نبدا

بيئه عمل الشرح
Oracle forms 10g

انت فى البدايه بحاجه لتحميل الملفيين التاليين