الانتقال إلى المحتوى
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.

أريد أن أرسل ملف الرواتب على Txt File للبنك.

Featured Replies

بتاريخ:

السلام عليكم

لدي برنامج شئون موظفين HR  وأريد أن أرسل ملف الرواتب على TXT File  للبنك.

البنك يريد البيانات بشكل معين

abc,uyt,w,qor,3

NCB Bank,n,n,n,

emp_account_number,amount,date,

 

حيث أن السطر رقم واحد والسطر رقم 2 ثابتين ويكتب في الملف مره واحده والسطر الثالث هو رقم الموظف والراتب والتاريخ طبعا لكل الموظفين

أفيدوني كيف اكتب ال select حيث لو عمل Concatenate  للنص كامل سوف يتكرر السطر الأول والثاني مع كل موظف

أيضا الرقم 3 في السطر الأول هو عدد الأسطر في الملف

ساعدووووني جزاكم الله خير

 

بتاريخ:

السلام عليكم اخي الفاضل

قم بعمل بورسيدر تقوم بعمل انسيرت في جدول في الداتا بيز وادخل اولا السطرين الثابتين كما طلب البنك

ثانيا اللوب تعمل انسيرت في الجدول بالاعمده الخاصه بالموظفين

وبعد ذلك اما تعمل سيلكت وتحفظه من خلال التود تااب دليميتد

او تقوم بعمل تقرير يظهر المخرجات علي شكل تاب دليميتد

بتاريخ:

السلام عليكم

لا يوجد داعي لانشاء جدول وتخزين البيانات مره اخرى...

فقط قم باخراج اول سطرين من الـ Loop...يعني اكتب اول سطرين قبل الـ Loop الخاص باظهار بيانات الموظفين(أي سطر تريد ضهوره مره واحده فقط اكتبه قبل الـ Loop)...

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

أشكرك ياأخ المصري وألأخ أحمد

ولكن عندما لايتم إنشاء جدول لرمي البيانات فيه بجملة Insert  كيف يتم عرض البينات أو إخراجها من داخل البروسيجر.

بمعنى ممكن أعمل بروسيجر و طريق جملة Insert التي داخل البروسيجر أقوم برمي البيانات في جدول.

ولكن الأخ أحمد يقول بأنه لاحاجة لجدول فيك أعرض البيانات.

ممكن مثال بسيط لبروسيجر

بتاريخ:

السلام عليكم

إليك مثال:

 

 

 

Procedure Pu_Print_Emp_Status_Count Is


 Cursor vc_get_emp_status_count Is
 Select Count(*) No_Of_Employees, A.User_Status, 
        Nvl(Decode(:Global.Language, 1, B.Dtl_Class_Desc_Ntv, B.Dtl_Class_Desc_Frn), 'ÇáÍÇáÉ ÛíÑ ãÏÎáÉ') User_Status_Desc
   From Shows_Users A,
        Dd_Classes_Dtl B
  Where A.User_Status   = B.Class_Serial(+)
    And B.Class_Code(+) = '6'
    And A.User_Type     <> '6'
    And Nvl(A.User_Type,-1) = Nvl(:Blk_1.User_Type,Nvl(A.User_Type,-1))
  Group By A.User_Status,
           B.Dtl_Class_Desc_Ntv,
           B.Dtl_Class_Desc_Frn;


 In_File Client_Text_Io.File_Type;
 Lc$Fic                  Varchar2(1000) ;
 Vn_Date                 Number;
 Vv_File_Path            Varchar(1000);
 Line                    Varchar2(4000);  
Begin
 Lc$Fic := 'AlJawal_Status_Repor'||'.Csv';
 Vv_File_Path := Webutil_File.File_Save_Dialog ('C:\', Lc$Fic ,'','Location to save file...') ;
 In_File := Client_Text_Io.Fopen(Vv_File_Path,'w');




--========================== File Header ==========================================================
    Line := 'Status'                  ||';'||
            'No Of Employee'                ;
            
     Client_Text_Io.Put_Line(In_File,Line); 
--=================================================================================================  
  For Rec In vc_get_emp_status_count Loop 
    
    Line := Rec.User_Status_Desc     ||';'|| 
       Rec.No_Of_Employees         ;
       
   Client_Text_Io.Put_Line(In_File,Line);          
  End Loop;           


 Client_Text_Io.Fclose(In_File);
      Message('Done Successfully');
      Message(' ');
--=======================================================
  Exception When Others Then
      Null;    
End;

 

 

بتاريخ:
  • كاتب الموضوع
أشكرك ياأخ أحمد على جهودك
لكن ممكن عندي سؤال في البروسيجر بعض ال Command لم أفهمها
 
 

 

In_File Client_Text_Io.File_Type;
Begin
 Lc$Fic := 'AlJawal_Status_Repor'||'.Csv';
 Vv_File_Path := Webutil_File.File_Save_Dialog ('C:\', Lc$Fic ,'','Location to save file...') ;
 In_File := Client_Text_Io.Fopen(Vv_File_Path,'w');
  For Rec In vc_get_emp_status_count Loop 
    
    Line := Rec.User_Status_Desc     ||';'|| 
       Rec.No_Of_Employees         ;
       
   Client_Text_Io.Put_Line(In_File,Line);          
  End Loop;           




 Client_Text_Io.Fclose(In_File);
 

 

 
ممكن تشرحلي

تم تعديل بواسطة Ahmad.Hasan

بتاريخ:

ماشا الله عليك مهندس أحمد مبدع وطريقة جيده..

 

وجااري تجربتها .

 

مووفق..

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

لا لم أستخدم ابداً Webutil ولا أعرف عنها شيء.

أنا فهمت جزء كبير من البروسيجر ولكن بعض Command  لم أفهمها.

 

 

بتاريخ:

السلام عليكم

ان كنت تستخدم 10g قم بتعريف الـ Webutil وستعمل معك جميع الأكواد...

 

بالتوفيق.

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

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

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

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

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

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.