بتاريخ: 4 يونيو 200619 سنة comment_71204 ارجو ن تشرحوا لى طريقة عمل تقرير شهرى واخر نصف شهرى لبرنامج مخزون وذلك لاستعراض حركة الصادر والوارد على حسب الشهر الذى اريد وهل يكون ذلك عن طريق الباريميتر وجزاك الله كل خير مع ملاحظة اننى مبتدى قى التقارير ارجو الشرح بالتفصيل تقديم بلاغ
بتاريخ: 8 يونيو 200619 سنة comment_71573 الاخ الكريمطريقة اضافة عمل تقرير شهري ونصف شهري تعتمد على طبيعة البيانات التي تريدها فالموضوع يبدا بحساب البيانات كل شهر يعني اجمالي حساب الصادر مثلا من جدول المبيعات والوراد من جدول المشتريات خلال فترة وعادة تكون او تحسب على تاريخ الادخال في المخزون طبعا قصدي بالفترة هو ادخال شهر وسنة فقطولذلك يا اخي ممكن عمل هذا التقرير بعدة طرق منها المعقدة عن طريق جملة ال select statment بحيث تحضر البيان من اكثر من مكان ومنها السهل وهي انك تجيب الحركة على الصنف وتجيب ايه الصادر والوراد وفي هذه الحالة يلزمك استخدام الفوميلا وحتشتغل كل وحده حسب الصنفبمعنى في الكويري الرئيسية تستدعي الايتم واسمه فقط لذلك يمكن وضع هذا الكود في جملة الكويري وعرضها SELECT item_no,item_name from items ثم تضع Formula في نفس المجموعة اللي يستعرض الايتم ويكون نوعها نمبر طبعا هذه ترجع اجمالي الصادروتضع الكود التالي declare temp number; begin Select Sum(nvl(amount,0)) into temp from invoices where to_char(inv_date,'MM') =_Month and to_char(inv_date,'YYYY') =_Year and item_no=:item_no; return(temp); exception when no_data_found then return(0); end; ثم تضع Formula في نفس المجموعة اللي يستعرض الايتم ويكون نوعها نمبر طبعا هذه ترجع اجمالي الواردوتضع الكود التالي declare temp number; begin Select Sum(nvl(amount,0)) into temp from sales where to_char(sal_date,'MM') =_Month and to_char(sal_date,'YYYY') =_Year and item_no=:item_no; return(temp); exception when no_data_found then return(0); end; طبعا ال _month و :angry:_year هو عبارة عن باراميترممكن ادخاله قبل بداية التقريرطبعا تعرض هذه الفورميلا ضمن الفيلدهذا في حالة معرفة حركة الوارد والصادر على الايتموممكن تعديل الكويري الرئيسية بالتقرير اذا كنت تريد عرض الصنف الذي تم عليه الحركة في سواء صادر او واردبهذا الشكل SELECT item_no,item_name from items wher item_no in (select distinct item_no from invioce) or item_no in (select distinct item_no from sales) بالنسبة للتقرير النصف شهري فتحدد هنا من تاريخ الى تاريخ يعني مثلا من 01/06/2006 الى 15/06/2006 او من 16/06/2006 الى 30/06/2006مثال declare temp number; begin Select Sum(nvl(amount,0)) into temp from invoices where (to_char(inv_date,'dd-mm-yyyy') between _fdate and _tdate) and item_no=:item_no; return(temp); exception when no_data_found then return(0); end; حيث _fdate and _tdate هو تاريخهذه الفكرة بشكل عام وارجو ان تكون وضحت تقديم بلاغ
بتاريخ: 23 يوليو 200619 سنة كاتب الموضوع comment_74935 الاخ المشرف الستاذ اسامة شكرا كثيرا للمساعدة واسف على تاخر الرد وذلك بسبب بعض الظروف وجزاك الله كل خير تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.