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

بتاريخ:

السلام عليكم مشرفين واعضاء منتدنا الرئع 

ارجو ان تكونو بصحة وعافية

 

 لدي استفسار وهو كالتالي 

 

في التقرير عندي حقل مقبوضات وحقل مصروفات ولدي كذلك حقل الرصيد اريد التالي 

 

المصروفات - المقبوضات = الرصيد     ولكن بشرط ان يكون ناتج الرصيد بناء على رقم المستفيد حولت بهذا الكود ولكن كانت النتائج خاطئه 

function CF_3Formula return Number is

DUMMY    NUMBER(14,2);
begin
    IF     :SOURCE_NO = :SOURCE_NO THEN

DUMMY := :CF_2 - :CF_1 ;

RETURN(DUMMY);
    END IF;
    end;
    

ارجو التصحيح ان وجد الخطا 

او اعطائي طريقة لعمل المطلوب 

 

ولكم خالص الشكر التقدير 

بتاريخ:

السلام عليكم

نفرض ان التقرير لديك كالتالي:

رقم المستفيد     المصروفات     المقبوضات     الرصيد

1000                    5000          3000          2000

 

ضع CF_3 داخل الـ Repeating Frame على مستوى المستفيد وستظهر النتائج صحيحة.

حيث أن الـ CF_2 ستكون المصروفات.

CF_1 ستكون المقبوضات.

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

السلام عليكم

نفرض ان التقرير لديك كالتالي:

رقم المستفيد     المصروفات     المقبوضات     الرصيد

1000                    5000          3000          2000

 

ضع CF_3 داخل الـ Repeating Frame على مستوى المستفيد وستظهر النتائج صحيحة.

حيث أن الـ CF_2 ستكون المصروفات.

CF_1 ستكون المقبوضات.

 

اولا اشكر اخي احمد حسن لسرعىة الرد والتفاعل مع الموضوع 

 

CF_3 هي فعلا  داخل الـ Repeating Frame على مستوى المستفيد  

 

ومع ذلك النتيجة لم تكن صحيحه هل هناك خطا في الكود اما هناك شي اخر 

 

ارفقت لك صوره لما اريده اخي احمد هذا هو هدفي كما في الصوره

 

 

ارجو المساعده

ولك خالص الشكر والتقدير 

post-121674-0-24651800-1399460281_thumb.jpg

تم تعديل بواسطة anas.soft

بتاريخ:

ماذا تقصد بالنتيجة لم تكن صحيحة ؟

هل نتيجة عملية الطرح تعطي نتيجة خاطئة ؟؟

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

ماذا تقصد بالنتيجة لم تكن صحيحة ؟

هل نتيجة عملية الطرح تعطي نتيجة خاطئة ؟؟

 

تعم تعطي النتيجة خاطئه  

لانها بنا على خانة المصروف المقابلة فمثلا اذا كان المستفيد رقم 1 صرف له مبلغ 4000   وبعد 10 ايام   قام باعاده المبلغ 4000 هنا  المفروض ان يكون رصيده هو 0 لانه قام بتصفية عهدته 

 

ما يضهر عند هكذا وهذ خطا  

 

رقم المستفيد      اسم ا لستفيد                 المقبوض               المصروف                      الرصيد 

1                                  احمد                       0                     4000                           4000

2                                   علي                       500                      0                             500-

1                                  احمد                       4000                    0                             4000-

 

اعتقد اذا لم يتكرر رقم المستفيد ستكون النتيجه صحيحه ولكني لا اعرف الطريقه لدمج رقم المستفيد   

ام هناك طريقه اخرى اخي احمد   

 

اشكر جزيل الشكر مهندس احمد 

تم تعديل بواسطة anas.soft

بتاريخ:

لان المشكلة لديك في الكويري:

يجب عمل Sum لكل من المصروف والمقبوض وتعمل Grouping على المستفيد.

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

لان المشكلة لديك في الكويري:

يجب عمل Sum لكل من المصروف والمقبوض وتعمل Grouping على المستفيد.

 

هذا ما عملتة استاذ احمد  

واليك الكويري ارجو التصحيح  اخي العزيز 


SELECT SUM(LOC_TRANS_AMOUNT ) "LOC_TRANS_AMOUNT", 
 ACCOUNT_TYPE || COMP#  || REGION_CODE  || BRANCH#  || ACCOUNT_NO "TRANS_LOC" ,   SOURCE_TYPE ,SOURCE_NO, PAYMENT_TYPE,
TRANS_TYPE


FROM

CFL_TRANSACTIONS 

WHERE 




	 (account_type||comp#||region_code||branch#  = _CASHIER_BANK||_CO||_ACT||_BR OR 
		_CASHIER_BANK||_CO||_ACT||_BR IS NULL ) AND
	(ACCOUNT_NO= _ACCT_NO OR _ACCT_NO IS NULL) AND
	trunc(TRANS_DATE) BETWEEN :FROM_DATE_TIME AND :TO_DATE_TIME 
and TRANS_TYPE NOT IN ('01' , '02')   AND
                 (TRANS_TYPE = _TRANS_TYPE OR _TRANS_TYPE IS NULL)


	
GROUP BY 
 ACCOUNT_TYPE || COMP#  || REGION_CODE  || BRANCH#  || ACCOUNT_NO ,   SOURCE_TYPE ,SOURCE_NO, PAYMENT_TYPE,TRANS_TYPE
 

اكرر شكري وامتناني اخي العزيز احمد 

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

السلام عليكم مشرفين واعضا منتدنا المبدع 

 

كي اوضح ما اقصده بشكل مبسط المشكلة عندي كالتالي 

 

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

 

الا قمت بعمل تقرير لمعرفتة التدفق النقدي  ومصدر بيانته من جدول الحركات   وفيه وهو كالتالي 

 

رقم المستفيد      اسم ا لستفيد                 المقبوض               المصروف                      الرصيد 

1                                  احمد                       0                     4000                           4000

2                                   علي                       500                      0                             500-

1                                  احمد                       4000                    0                             4000-

 

طبعا المقبوضات انا عمالها فورميلا   وكي اافرق بين المقبوضات والمصروفات عملت الكود التالي فيها   

IF :TRANS_TYPE < 50 THEN
	RETURN(:LOC_TRANS_AMOUNT1);
  ELSE
	RETURN(NULL);
  END IF;

اما المصروفات فقد عملت نفس الشرط ولكن بد عن >  عملت <  كا لتالي 

function CF_2Formula return Number is
begin

  IF :TRANS_TYPE > 50 THEN
	RETURN(:LOC_TRANS_AMOUNT1);
  ELSE
	RETURN(NULL);
  END IF;

اما بالنسبه للرصيد فقد عملت حقل واريده الفرق بين المصروفات والمقبوضات وهو كالتالي 

function CF_3Formula return Number is

DUMMY    NUMBER(14,2);
begin
    IF     :SOURCE_NO = :SOURCE_NO THEN

DUMMY := :CF_2 - :CF_1 ;

RETURN(DUMMY);
    END IF;
    end;
    

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

 

ارجو المساعده 

 

ولكم مني جزيل الشكر والتقدير

تم تعديل بواسطة anas.soft

بتاريخ:

السلام عليكم

نفذ الجملة التالية على التود وشوف النتيجة:

 

SELECT   SUM (loc_trans_amount), source_no
    FROM cfl_transactions
   WHERE (   account_type || comp# || region_code || branch# =
                                      _cashier_bank || _co || _act
                                      || _br
          OR _cashier_bank || _co || _act || _br IS NULL
         )
     AND (account_no = _acct_no OR _acct_no IS NULL)
     AND TRUNC (trans_date) BETWEEN :from_date_time AND :to_date_time
     AND trans_type NOT IN ('01', '02')
     AND (trans_type = _trans_type OR _trans_type IS NULL)
GROUP BY source_no
بتاريخ:
  • كاتب الموضوع

 

السلام عليكم

نفذ الجملة التالية على التود وشوف النتيجة:

 

SELECT   SUM (loc_trans_amount), source_no
    FROM cfl_transactions
   WHERE (   account_type || comp# || region_code || branch# =
                                      _cashier_bank || _co || _act
                                      || _br
          OR _cashier_bank || _co || _act || _br IS NULL
         )
     AND (account_no = _acct_no OR _acct_no IS NULL)
     AND TRUNC (trans_date) BETWEEN :from_date_time AND :to_date_time
     AND trans_type NOT IN ('01', '02')
     AND (trans_type = _trans_type OR _trans_type IS NULL)
GROUP BY source_no

 

 

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

 

نفذ من غير تكرار  

 

وكذلك الكيوري السابق نفذ من غير تكرار ولكن اعتقد ان مشكلة التكرار هي من الشرط الذي في حقل CF_1 واال CF_2 H الذي في التقرير  وقد وضحت كود الشرط وهو كالتالي 

 

 

السلام عليكم مشرفين واعضا منتدنا المبدع 

 

كي اوضح ما اقصده بشكل مبسط المشكلة عندي كالتالي 

 

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

 

الا قمت بعمل تقرير لمعرفتة التدفق النقدي  ومصدر بيانته من جدول الحركات   وفيه وهو كالتالي 

 

رقم المستفيد      اسم ا لستفيد                 المقبوض               المصروف                      الرصيد 

1                                  احمد                       0                     4000                           4000

2                                   علي                       500                      0                             500-

1                                  احمد                       4000                    0                             4000-

 

طبعا المقبوضات انا عمالها فورميلا   وكي اافرق بين المقبوضات والمصروفات عملت الكود التالي فيها   

IF :TRANS_TYPE < 50 THEN
	RETURN(:LOC_TRANS_AMOUNT1);
  ELSE
	RETURN(NULL);
  END IF;

اما المصروفات فقد عملت نفس الشرط ولكن بد عن >  عملت <  كا لتالي 

function CF_2Formula return Number is
begin

  IF :TRANS_TYPE > 50 THEN
	RETURN(:LOC_TRANS_AMOUNT1);
  ELSE
	RETURN(NULL);
  END IF;

اما بالنسبه للرصيد فقد عملت حقل واريده الفرق بين المصروفات والمقبوضات وهو كالتالي 

function CF_3Formula return Number is

DUMMY    NUMBER(14,2);
begin
    IF     :SOURCE_NO = :SOURCE_NO THEN

DUMMY := :CF_2 - :CF_1 ;

RETURN(DUMMY);
    END IF;
    end;
    

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

 

ارجو المساعده 

 

ولكم مني جزيل الشكر والتقدير

 

اخي احمد انت شخص رئع بما تعني الكلمة ربي يفتح عليك ويفقك 

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

السلام عليكم

تم حل المشكلة ؟ 

وعليكم السلام

ايها المشرف المبدع احمد حسن   

 

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

SELECT   trans_loc, source_type, source_no, SUM (expenses) expenses,
         SUM (receipts) receipts, (SUM (expenses) - SUM (receipts)) balance
    FROM (SELECT trans_loc, source_type, source_no, expenses, receipts
            FROM (SELECT (SELECT NVL (SUM (b.loc_trans_amount), 0)
                            FROM cfl_transactions b
                           WHERE 1 = 1
                             AND TRUNC (b.trans_date) BETWEEN :from_date_time
                                                          AND :to_date_time
                             AND b.trans_type NOT IN ('01', '02')
                             AND b.trans_type > 50
                             AND b.source_no = a.source_no
                             AND b.account_type = a.account_type
                             AND b.comp# = a.comp#
                             AND b.region_code = a.region_code
                             AND b.branch# = a.branch#
                             AND b.account_no = a.account_no
                             AND b.trans_no = a.trans_no) expenses,
                         (SELECT NVL (SUM (b.loc_trans_amount), 0)
                            FROM cfl_transactions b
                           WHERE 1 = 1
                             AND TRUNC (b.trans_date) BETWEEN :from_date_time
                                                          AND :to_date_time
                             AND b.trans_type NOT IN ('01', '02')
                             AND b.trans_type < 50
                             AND b.source_no = a.source_no
                             AND b.account_type = a.account_type
                             AND b.comp# = a.comp#
                             AND b.region_code = a.region_code
                             AND b.branch# = a.branch#
                             AND b.account_no = a.account_no
                             AND b.trans_no = a.trans_no) receipts,
                            a.account_type
                         || a.comp#
                         || a.region_code
                         || a.branch#
                         || a.account_no "TRANS_LOC",
                         a.source_type, a.source_no, a.payment_type,
                         a.trans_type
                    FROM cfl_transactions a
                   WHERE 1 = 1
                     AND (      a.account_type
                             || a.comp#
                             || a.region_code
                             || a.branch# =
                                      _cashier_bank || _co || _act
                                      || _br
                          OR _cashier_bank || _co || _act || _br IS NULL
                         )
                     AND (a.account_no = _acct_no OR _acct_no IS NULL)
                     AND TRUNC (a.trans_date) BETWEEN :from_date_time
                                                  AND :to_date_time
                     AND a.trans_type NOT IN ('01', '02')
                     /*AND source_no = '01010136'*/))
GROUP BY trans_loc, source_type, source_no

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

 

جزاك الله خير اخي العزيز احمد حسن وان شالله في ميزان حسنتك 

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

السلام عليكم اخي العزيز المهندس احمد حسن

السلام عليكم اعضاء ومشرفين منتدنا الرئع 

 

 

 

بقي لي استفسار بما يخص التقرير وهو للتطوير التقرير كا التالي 

 

لدي في التقرير نوع لمستفيد  وقد يكون ( عهاد - اعمال - موردين الخ ) ولدي المستفيد بحد ذاته اي كل نوع مستفيد يحتوي عدد من المستفيد ين  كل مستفيد يتم تجميع المبالغ الذي المصروفه او المدفوعه له

 

الان انا لدي اعمال كل عمل صرف مثلا 10000 ولكن لم تصرف بشكل مباشر صرف مثلا على الموردين 5000 وعلى العهد 5000  انا اريد في التقرير ان يظهر اجمالي 10000 تحت نو العمستفد اعمال  المستفيد ( اسم العمل )

 

مرفق لكم صوره للتوضيح  

 

ارجو المساعده 

 

ولكم خالص الشكر والتقدير 

 

post-121674-0-26783800-1399984886_thumb.jpg

تم تعديل بواسطة anas.soft

بتاريخ:

بسم الله الرحمن الرحيم

function F_1FormatTrigger return boolean is
begin
  IF :EPENSES_VALUE IS NOT NULL THEN 
  	RETURN (FALSE)  ;

  ELSE return (TRUE);
  END IF;
  
End;


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

 

بسم الله الرحمن الرحيم

function F_1FormatTrigger return boolean is
begin
  IF :EPENSES_VALUE IS NOT NULL THEN 
  	RETURN (FALSE)  ;

  ELSE return (TRUE);
  END IF;
  
End;


السلام عليكم اخي م. اسلام 

 

لم افهم هل لك ان توضح لي اكثر اخي الكريم 

 

ولك خالص الشكر والتقدير 

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

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

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

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

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

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.