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

مشكلة كائنات التقرير استخدام ال package srw

Featured Replies

بتاريخ:

إخواني الكرام ، تحية طيبة وبعد ،

في الحقيقة أنا لدي مشكلة في نظام التقراير وهي أن كل كائن من كائنات التقرير ( Fields, Frames, Chart ) لا يمكنني التعامل مع أي أحداث له سوي حدث الـ FormatTrigger ، والتي لا يرتجع سوي قيمة ثنائية ( True Or False ) ، والتي تمثل حالة ظهور هذا الكائن !!!

ولكن هناك حالات أخري تتطلب مني صناعة حدث علي هذا الكائن مثل ضبط عرض وإرتفاع الكائن أو ضبط قيمة الكائن أو ضبط لون الخط ولون الخلفية أو ................. الي آخرة

السؤال ، هل كل كائن يحتوي علي العديد من الأحداث بالإضافة الي الحدث FormatTrigger ؟؟ أم ان هذا الحدث هو الحدث الوحيد بتقرير الديفيلوبار ؟؟ وإذا كان هناك أحداث أخري كيف يمكنني إدراجها والتعامل معها ؟؟


شكراً ، ومنتظر الرد ،

  • بعد 2 أسابيع...
بتاريخ:
  • كاتب الموضوع

مفيش رد .... مفيش حل



طب سؤال آخر ، أنا دلوقتي عايز أغير خلف وقمة وعرض وإرتفاع عنصر معين !!!!

بمعني ، أنا قمت بإنشاء Field علي Frame Group معني ، عاوز أبعت 2 Parameter الأول للعرض الجديد للحقل ، والثاني لخلف احقل Left .

هل هذا يجوز أم لا يجوز ؟؟؟؟





شكراً

  • بعد 3 أسابيع...
بتاريخ:
إخواني الكرام ، تحية طيبة وبعد ،

في الحقيقة أنا لدي مشكلة في نظام التقراير وهي أن كل كائن من كائنات التقرير ( Fields, Frames, Chart ) لا يمكنني التعامل مع أي أحداث له سوي حدث الـ FormatTrigger ، والتي لا يرتجع سوي قيمة ثنائية ( True Or False ) ، والتي تمثل حالة ظهور هذا الكائن !!!

ولكن هناك حالات أخري تتطلب مني صناعة حدث علي هذا الكائن مثل ضبط عرض وإرتفاع الكائن أو ضبط قيمة الكائن أو ضبط لون الخط ولون الخلفية أو ................. الي آخرة

السؤال ، هل كل كائن يحتوي علي العديد من الأحداث بالإضافة الي الحدث FormatTrigger ؟؟ أم ان هذا الحدث هو الحدث الوحيد بتقرير الديفيلوبار ؟؟ وإذا كان هناك أحداث أخري كيف يمكنني إدراجها والتعامل معها ؟؟


شكراً ، ومنتظر الرد ،

الأخ الكريم /
السلام عليكم و رحمة الله و بركاته
هناك package اسمها srw يكن من خلالها التحكم في ال fields حاول استكشافها في الهلب و باذن الله ستجد فيها ما تريد . ايضا باستخدام ال Conditional formatting لل field و بالتالى يمكنك الوصول الى ما تريد باستخدام الـ package و Conditional Formatting و ForamtTrigger
بتاريخ:
  • كاتب الموضوع

أشكرك أخي الكريم .... بي لو يعني ممكن توضح أكثر !!!

أنا فعلاً وجدت هذه المكتبة لكن لا أعرف كيفية إستخدامها ...

عفواً ياريت ولو مثال او مثالين بسطاء



شكراً وجزاك الله كل خير

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

الأخ Amgad الكريم ، أشكرك كل الشكر علي هذا المسار ،

فعلاً مجموعة أمثلة جيدة ، بس أخي هذه المجموعة فعلياً موجودة في ملفات المساعدة الخاصة بالأوراكل ، لكن للأسف لا أعلم كيفية إستخدامها مع التقرير ؟؟؟

يعني مثلاً أنا لدي مثال عن RUN_REPORT كما يلي :


FUNCTION FOO RETURN BOOLEAN 
IS
BEGIN 
  srw.run_report('report=MAIL_IT desname=' || :ename || ' desformat=dflt batch=yes mgr_no=' || TO_CHAR(:empno) );
  RETURN (TRUE);
EXCEPTION 
  when srw.run_report_failure then 
  srw.message(30, 'Error mailing reports.'); 
  raise srw.program_abort; 
END; 

---------------------------------------------

FUNCTION FOO RETURN BOOLEAN 
IS
BEGIN
  srw.run_report('batch=yes report=SALARY destype=file desformat=dflt desname=salary.lis');
  srw.run_report('batch=yes report=COMMISS destype=file desformat=dflt desname=comiss.lis'); 
  srw.run_report('batch=yes report=TAXES destype=file desformat=dflt desname=comiss.lis');
  RETURN (TRUE);
END;



لكن المشكلة ان أنا مش عارف كيفية إستخدامهم ( بصراحة ) ، يعني مثلاً :
س1 هل هذا سيتم كتابتة تحت كائن FORMULA أم هو مجرد Function عادي ؟؟
س2 كيف يمكنني إستدعائة ، وما الفائدة منة ؟؟
س3 هل بإمكانك منحي مثال بسيط يوضح لي هذه الفكرة ؟؟


أنا عارف أن أنا هتقل علي حضرتك ، بس والله أنا دايخ وراء هذه الطريقة من أمس ... حيث أنني أحببت ملف المساعدة كثيراً لسهولتة وبساطتة الدائمة ، لكن للأسف معظم أمثلة المكتبة SRW لا تعرض لي كيفية إستخدام هذه الـ Functions

فياريت لو توضح لي الأمور أكثر أكون شاكراً


السلام عليكم

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

بتاريخ:

بداية يمكنك البدء بأمر بسيط مثل ال srw.message -- وهو يعمل على اظهار رسائل معينة تكتبها ... ومنها يمكن متابعة مراحل تنفيذ التقرير داخل البرنامج ؟ مجرد بداية
ولكي تتعرف على كيفية استخدام اوامر ال srw
وايضا اماكن كتابة الاوامر فى اماكن محتلفة مثل
ستجد فى navigator - المستكشف فى التقارير.... ستجد زناد التقرير ... ستجد تحتها اوامر تريجيرز triggers منها

-- يتم تنفيذ الاوامر التى بداخلة قبل استدعاء شاشة متغيرات التقرير before parameter form
-- يتم تنفيذ الاوامر التى بداخلة بعد ادخال البيانات فى شاشة متغيرات التقرير after parameter form
-- يتم تنفيذ الاوامر التى بداخلة قبل استدعاء التقريرbefore reports
-- يتم تنفيذ الاوامر التى بداخلة بعد الانتهاء من التقرير after reports

ايضا يمكنك كتابة اوامر ال srw
على اى عنصر او حقل فى التقرير ... وهذا حسب امكانية تنفيذ الامر فى المكان المناسب

بصراحة انا لم استخدم الا اوامر بسيطة من ال srw
واغلبها كان مع اظهار الرسائل srw.message

فى المثال الذى ذكرتة فى سؤالك ,والخاص ب srw.run_report
سيتم استخدام هذه الاوامر قبل استدعاء التقرير ... اى انها ستكتب داخل زناد التقرير before report الموجود فى المستكشف للتقرير navigator
سيتم تحريك معلومات جديده الى ال system parameters مثل -
destype - batch - desformat
وايضا تحريك بيانات الى user parameters مثل
mgr_no -
وهى بيانات مطلوب استخدامها قبل تنفيذ التقرير

مثال اخر من الكتاب

Example 1: Suppose you have to do a bonus calculation based on salary. The bonus is a placeholder column. To do so, you could write the following formula:

function foo return boolean is 
begin if :sal < 0 then
   SRW.MESSAGE(100, 'Found a negative salary. Check
  the EMP table.');
   raise SRW.PROGRAM_ABORT;
 else
   :bonus := :sal * .01;
 end if;
 return(true);
end;

If a negative salary is found, Reports Builder will raise the message. Reports Server and Runtime will write the message into trace file.



مع ظهور الرسالة فى حالة تحقق الشرط ... سيتم كتابة الرسالة فى ملف خارجي من خلال استخدام امر SRW.PROGRAM_ABORT

مع التحية

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

أشكرك أخي الكريم

بس أخي أنا سؤالي في البداية كان متعلق بإدراج أحداث علي الأدوات وعلي التقارير نفسها !!!

وحتي الآن لم أجد إجابة شافية عن موضوعي الأساسي !!!

ولم أتخيل أن هذه المكتبة ستعوض عن هذا !!!

يعني مثلاً أنا لدي Field ، من المعروف أنه يحتوي علي حدث Format Trigger الذي دائماً يرتجع قيمة ثنائية Boolean !!!

أنا عايز أعرف هل يحتوي علي أساليب أخري من الأحداث أم لا ؟؟؟

يعني مثلاً في الكريستال هنلاقي Formula خاصة بحجم الخط وأخري خاصة بالألوان وأخري خاصة بحدود الآداة و ........ الي آخرة

طب سؤال :

انا لدي تقرير بكافة الموظفين بالشركة ، وكل موظف يملك راتب أساسي تحت حقل أسمة Sal ... كيف يمكنني تلوين أسماء الموظفين الذين يمتلكون راتب أقل من 1000 جنية شهرياً ( كعلي سبيل المثال ) .


فهل هناك أحداث أو كيفية صناعة حدث ؟؟؟؟


شكراً

بتاريخ:

الأخ / مصطفى

اليك هذه المشاركة السابقة بالمنتدى ... لتلوين سطر الطباعة فى التقرير

إضغط هنا : تلوين الاسطر

مع التحية

function R_G_I01_CODEFormatTrigger return boolean is
begin -- Automatically Generated from Report Builder.
if (:rownum mod 2='0')
then
srw.set_foreground_border_color('gray96');
srw.set_border_pattern('solid');
srw.set_foreground_fill_color('white');
srw.set_fill_pattern('solid');
end if;

return (TRUE);
end;

بتاريخ:

السلام عليكم ورحمة الله وبركاته
إضافة بسيطة
ولكي تنشئ التلوين أعلاه أدخل إلي الخاصية
conditional Formatting

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

أشكرك أخ أمجد وآسف علي التأخير ،

والموضوع إتفهم بالنسبة لي وجزاك الله كل خير


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

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

هل يمكن استخدام package srw فى تغيير الdirection من left to right إلى right to left الخاصى بالتقرير من خلال الform
برجاء الرد بسرعة فى هذا الموضوع

بتاريخ:

تغيير الـ Direction في التقارير في الـ Run Time

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

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

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

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

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

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.