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

مرونة التقرير

Featured Replies

بتاريخ:

اريد ان اعمل تقرير اكثر مرونة
يعني مثلا اجازات الموظف هذا التقرير لا اريد فقط ان استخرجه بواسطة رقم الموظف وانما اطلق الحرية للمستخدم لوضع ما يشاء وبناءا عليه ينتج التقرير
مثل حرية اختيار رقم موظف او حسب تاريخ معين او حسب شهر معين او حسب سنة معينة ؟ كيف يمكنني فعل ذلك ؟؟

  • الردود 26
  • المشاهدات 5.9k
  • البداية
  • اخر رد

أكثر المشاركين في هذا الموضوع

بتاريخ:

السلام عليكم
أخي ماهر بامكانك عمل اكتر من PARAMETER ...
وعلى فورم استدعاء التقرير تعمل مثلا RADIO BUTTON OT CHECK BOX مرتبط بهذه الــ PARAMETER ...
بحث لو قام باختيار الــ RADIO الخاص برقم الموظف التقرير يشتغل على البراميتر رقم الموظف...
ولو اختار الــ RADIO تاريخ معين يشتغل الباراميتر الخاص بالتاريخ...
وهكذا...
ارجو ان كون الفكرة وصلت...
او بامكان استدعاء التقرير من اكتر من فورم ولكن كل الفورمز تستدعي نفس التقرير والذي يختلف هو الباراميتر...
وبالمتيو الخاصة بالتقارير تكتب/ متلا التقرير الاول ( اجازات الموظف حسب الرقم )،(اجازات الموظف حسب تاريخ التعيين).....الخ
ولكن اجد الطريقة الاولى افضل...
بالتوفيق

تم تعديل بواسطة PALI.ORACLE

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

اخي احمد انا فاهمك ولكن المشكلة عندي في صياغة الاستعلام في التقرير خذ مثلا ما كتبته انا في التقرير لكنه لم يعمل لماذا لا اعرف :
SELECT
LEAVE.LEAVE_ID,
LEAVE.LEAVE_EMP_ID,
to_CHAR(LEAVE.LEAVE_DATE,'yyyy/MM/DD'),
LEAVE.LEAVE_REASON,
leave.leave_time_total
,
LEAVE.LEAVE_TIME_FROM,
LEAVE.LEAVE_TIME_TO,
LEAVE.LEAVE_RETURN_TIME,
LEAVE.LEAVE_DATE_ORIGINAL,
(TRIM(TRIM(EMPLOYEEs.F_NAME) || ' ' || TRIM(EMPLOYEEs.S_NAME) || ' ' || TRIM(EMPLOYEEs.T_NAME) || ' ' || TRIM(EMPLOYEEs.L_NAME))) ,
JOB_NAME,DEPT_NAME
FROM LEAVE,EMPLOYEES,JOBS,DEPARTMENTS
where
EMPLOYEES.EMP_ID=LEAVE.LEAVE_EMP_ID AND
employees.job_id=jobs.job_id
and employees.emp_dept_id=departments.dept_id AND
LEAVE.LEAVE_ID=:)_EMP_ID AND
حسب التاريخ LEAVE.LEAVE_DATE_ORIGINAL IN( :o_DATE ) AND
حسب السنة to_CHAR(LEAVE.LEAVE_DATE_ORIGINAL,'YYYY') = :blink:_YEAR AND
to_CHAR(LEAVE.LEAVE_DATE_ORIGINAL,'MM/YYYY') = ;)_month
حسب الشهر
لكن اريد ان يخرج التقرير في اي حالة يعني مش شرط يعبي كل شيء
ORDER BY LEAVE.LEAVE_DATE_ORIGINAL DESc

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

نعم جملة الاستعلام اكثر من جدول والجداول هي لاستخراج اسم الموظيفة والدائرة للموظف من الجداول الاخرى
اخي احمد الاستعلام لا يعطي اخطاء

بتاريخ:

ماهر جرب هيك:

SELECT 
LEAVE.LEAVE_ID,
LEAVE.LEAVE_EMP_ID,
LEAVE.LEAVE_DATE, 
LEAVE.LEAVE_REASON,
leave.leave_time_total,
LEAVE.LEAVE_TIME_FROM,
LEAVE.LEAVE_TIME_TO,
LEAVE.LEAVE_RETURN_TIME,
LEAVE.LEAVE_DATE_ORIGINAL,
(TRIM(TRIM(EMPLOYEEs.F_NAME) || ' ' || TRIM(EMPLOYEEs.S_NAME) || ' ' || TRIM(EMPLOYEEs.T_NAME) || ' ' || TRIM(EMPLOYEEs.L_NAME))) ,
JOB_NAME,DEPT_NAME
FROM LEAVE,EMPLOYEES,JOBS,DEPARTMENTS
where 
EMPLOYEES.EMP_ID=LEAVE.LEAVE_EMP_ID AND 
employees.job_id=jobs.job_id
and employees.emp_dept_id=departments.dept_id AND
LEAVE.LEAVE_ID=_EMP_ID OR
LEAVE.LEAVE_DATE_ORIGINAL=_DATE OR
to_CHAR(LEAVE.LEAVE_DATE_ORIGINAL,'YYYY') = _YEAR OR
to_CHAR(LEAVE.LEAVE_DATE_ORIGINAL,'MM/YYYY') = _month 
ORDER BY LEAVE.LEAVE_DATE_ORIGINAL DESc

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

اخي احمد جربت باستخدام رقم الموظف فقط واشتغل تمام
جربت ان اضيف مع رقم الموظف or date يعني يا اما رقم الموظف او التاريخ
فنتج التالي كمية سجلات كثيرة جدا
الذي استنتجته انه عند اضافة and مافي مشاكل حيث يسمح لك التقرير ولكن بشرط ان تملئ كل الحقول المطلوبة
لكن عند وضع or ينتج سجلات كثيرة جدا وهي سجلات غير صحيحة

بتاريخ:
اخي احمد جربت باستخدام رقم الموظف فقط واشتغل تمام
جربت ان اضيف مع رقم الموظف or date يعني يا اما رقم الموظف او التاريخ
فنتج التالي كمية سجلات كثيرة جدا
الذي استنتجته انه عند اضافة and مافي مشاكل حيث يسمح لك التقرير ولكن بشرط ان تملئ كل الحقول المطلوبة
لكن عند وضع or ينتج سجلات كثيرة جدا وهي سجلات غير صحيحة


هو المفروض انك تستخدم OR ...
بما انه بعطيك سجلات غير صحيحة...تأكد من الشرط بجملة الــ WHERE ...
وان لم يتم حل المشكله ارفق الجداول...
بالتوفيق
بتاريخ:
  • كاتب الموضوع

احمد انا متأكد من الكود وحتى لما اطبق الاستعلام على sql plus شغال تمام شيء غريب فعلا
غدا سأرفق الجدول والتقرير لانه بقي في المكتب شكرا شكرا لاهتمامك وكثر الله من امثالك كلو من اصلك الطيب يا طيب

بتاريخ:

اخي العزيز انا حسب ما فهمت انك كاتب جملة استعلام وبها اكثر من شرط والمشكلة لديك انك تريد في كل مرة تنفيذ شرط ما واهمال الآخر

مثلا او مرة اجيب التقرير بالإعتماد على رقم الموظف وثاني مرة بدي اجيب التقرير عن طريق تاريخ ما

اذا كان هذا هو المطلوب

يجب عليك استخدام عبارة LIKE بدل المساواه =
بعد ذلك قم بإعطاء قيمة افتراضية لكل البراميتر لديك بقيمة %
وفي هذه الحالة لو قمت بإستدعاء التقرير واخترت رقم الموظف سيقوم بتعويض رقم الموضف بدل قيمة % وإبقاء البراميتر الاخرى على نفس القيمة وهي %
وفي هذه الحالة سيعمل التقرير بشكل سليم
ولو قمت بطلب التقرير عن طريق التاريخ سيتم استبدال قيمة براميتر التقرير بالتاريخ المحدد وإبقاء البقية على نفس القيمة وهي % وفي هذه الحالة سيعمل التقرير ايضا


ارجو ان اكون قد فهمت المطلوب بشكل سليم لتكون اجابتي شافية

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

اخي jadquraan ساحاول في طريقتك
الجدول :
CREATE TABLE LEAVE
(
LEAVE_ID NUMBER(10),
LEAVE_EMP_ID NUMBER(10),
LEAVE_DATE DATE,
LEAVE_REASON VARCHAR2(100 BYTE),
LEAVE_TEMPLATE NUMBER(1),
LEAVE_TIME_FROM NUMBER,
LEAVE_TIME_TO NUMBER,
LEAVE_RETURN_TIME NUMBER,
LEAVE_DATE_ORIGINAL DATE,
LEAVE_TIME_TOTAL VARCHAR2(100 BYTE)
)

بتاريخ:

السلام عليكم
اخي ماهر..عملتلك تقرير على اساس 3 PARAMETERS
رقم المغادرة ورقم الموظف وتاريخ المغادرة باستخدام WHERE...
استفيد من التقرير لبناء يقية التقارير...
بالتوفيق

TEST.rar

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

مشكور اخي احمد ساجربه الان وارد لك خبر

بتاريخ:
اخي العزيز انا حسب ما فهمت انك كاتب جملة استعلام وبها اكثر من شرط والمشكلة لديك انك تريد في كل مرة تنفيذ شرط ما واهمال الآخر

مثلا او مرة اجيب التقرير بالإعتماد على رقم الموظف وثاني مرة بدي اجيب التقرير عن طريق تاريخ ما

اذا كان هذا هو المطلوب

يجب عليك استخدام عبارة LIKE بدل المساواه =
بعد ذلك قم بإعطاء قيمة افتراضية لكل البراميتر لديك بقيمة %
وفي هذه الحالة لو قمت بإستدعاء التقرير واخترت رقم الموظف سيقوم بتعويض رقم الموضف بدل قيمة % وإبقاء البراميتر الاخرى على نفس القيمة وهي %
وفي هذه الحالة سيعمل التقرير بشكل سليم
ولو قمت بطلب التقرير عن طريق التاريخ سيتم استبدال قيمة براميتر التقرير بالتاريخ المحدد وإبقاء البقية على نفس القيمة وهي % وفي هذه الحالة سيعمل التقرير ايضا


ارجو ان اكون قد فهمت المطلوب بشكل سليم لتكون اجابتي شافية



السلام عليكم
أخي جاد...
ممكن ازا ما فيها غلبة تعمل تقرير بسيط على الفكرة اللي طرحتها...متلا على جدول الــ emp بحث تكون البراميترز رقم الموظف والراتب...او كتابة جملة استعلام باستخدام like ...لاني حاولت اني اعملها ما اشتغلت معي...
وشكرا مقدماً...

تم تعديل بواسطة PALI.ORACLE

بتاريخ:

اخي العزيز هذا مثال على الطريقة التي اعنيها

طبعا كما فهمت سؤالكم

هذا المثال يعمل على scott على جدول emp

exm.rar

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

بتاريخ:
اخي العزيز هذا مثال على الطريقة التي اعنيها

طبعا كما فهمت سؤالكم

هذا المثال يعمل على scott على جدول emp



مشكور اخي جاد..
جاري التجربة..
بتاريخ:
  • كاتب الموضوع

اخواني احمد و jadquraan
مشكورين
لكن ولا طريقة من طرقكم زبطت معي
ومازالت المشكلة قائمة حيث المشكلة ليست عند عمل الاستعلام داخل التقرير ببيانات الجداول لوحدة وانما عند عمل ربط العلاقات مع الجداول الاخرى هنا المشكلة
يعني لما استعلم بالجدول لحاله مافي مشكلة عادي
ولكن لما اضيف الربط :
FROM LEAVE,EMPLOYEES,JOBS,DEPARTMENTS
where
EMPLOYEES.EMP_ID=LEAVE.LEAVE_EMP_ID AND
employees.job_id=jobs.job_id
and employees.emp_dept_id=departments.dept_id AND
LEAVE.LEAVE_ID=:)_EMP_ID AND

هنا المشكلة ؟؟؟

بتاريخ:

السلام عليكم
اكنب الــ 4 جداول وساحاول حل المشكلة باذن الله...
تحياتي...

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

مرفق الجداول :
ملاحظة : ارفقت الجداول بطريقة مختصرة بمضمون التقرير فقط
----------------------------------------------------------------
جدول بيانات الموظفين

CREATE TABLE EMPLOYEES
(
primary key EMP_ID NUMBER(10),
F_NAME VARCHAR2(30 BYTE),
S_NAME VARCHAR2(30 BYTE),
T_NAME VARCHAR2(30 BYTE),
L_NAME VARCHAR2(30 BYT
foreign key EMP_DEPT_ID NUMBER(10),
JOB_ID NUMBER(10), foreign key
---------------------------------------------------------------
جدول الادارات
CREATE TABLE DEPARTMENTS
(
primary key DEPT_ID NUMBER(10),
DEPT_NAME VARCHAR2(50 BYTE),

----------------------------------------------------------------
جدول الوظائف
CREATE TABLE JOB_HISTORY
(
foregin key EMP_ID NUMBER(10),
START_DATE DATE,
END_DATE DATE,
JOB_ID NUMBER(10),primary key

--------------------------------------------------------------------
جدول الاستئذان
CREATE TABLE LEAVE
(
primary key LEAVE_ID NUMBER(10),
foregin key LEAVE_EMP_ID NUMBER(10),
LEAVE_DATE DATE,
LEAVE_REASON VARCHAR2(100 BYTE),
LEAVE_TEMPLATE NUMBER(1),
LEAVE_TIME_FROM NUMBER,
LEAVE_TIME_TO NUMBER,
LEAVE_RETURN_TIME NUMBER,
LEAVE_DATE_ORIGINAL DATE,
LEAVE_TIME_TOTAL VARCHAR2(100 BYTE),
ENTRY_ID NUMBER(10)
)

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

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

واحلا TEXT FILE
لعيونك ابو حميد

بتاريخ:

السلام عليكم
اخي ماهر...
جرب هذا التقرير وان شاءالله بيشتغل معاك...
بالتوفيق

REPORT.rar

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

مشكور اخي احمد قيد التجريب ساقوم ببناء تقرير بنفس الهيكلة وتجريبه شكرا لك كثيرا

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

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

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

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

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

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.