بتاريخ: 28 سبتمبر 200817 سنة comment_139867 السلام عليكم ورحمة الله وبركاتهيا شباب انا واقف عند هذا التقرير وهو حساب الاوقات للموظف بمعنى حساب ساعات التأخير للموظف انا انشأت تقرير توضيحي يبين ما ذا اريد وهذا هو الرابط http://www.4shared.com/file/64728218/d5ef8...rified=cfd1ba8d بحيث عدد ساعات دوام الموظف يتم حسابه من دوامه في الصبح والليل عدد الساعات المعتمدة يقوم المستخدم بادخالها عن طريق وضع براميتر عندما ينادي التقرير ا يدخل 240 ساعة مثلا ثم يقوم التقرير بانقاص عدد الساعات المعتمدة التي هي 240 من عدد ساعات عمله يأتي عدد ساعات الخصماريد عندما تكون هناك 30 دقيقة مع 30 دقيقة يتم حسابها ساعة وليس 60 دقيقة وايضا عندما انشئ ال database ماذا اضع قيم ساعة الدخول وساعة الخروج التي في التقرير نوعها date او ماذا يا ريب في هذه الايام الكريمة ان يقوم احد ما بحل التقرير هذ ا لانني تعبت صراحة ولم استطيع ان احصل على نتيجة وهذا ايضا رابط للفورمة التوضيحية انشأتها لكي تفهمو الصورة كيف ماشية بحيث ادخل البيانات بدون حسابات http://www.4shared.com/file/64863877/cd4a2...rified=cfd1ba8dارجووووو من الخبراء ان يحلو هذا التقرير وسوف ادعيله ليل ونهار تم تعديل 28 سبتمبر 200817 سنة بواسطة alsofi تقديم بلاغ
بتاريخ: 28 سبتمبر 200817 سنة comment_139873 الأخ الكريم ، المشكله كلها متعلقة بساعة الحضور الفعلية والساعة حضور الوريدية ، وكذلك عملية الإنصراف !!!أنشأ جدوي خاص بعملية الحضور والإنصراف اليومي ، يحتوي علي 5 حقول كما يلي :1- حقل لبداية الوردية ، ودة سيدرج به البداية الفعلية للوردية ، ودة سيأخذ من من جدول الورديات "بداية الوردية" ، ولكن بالطبع يجب أن تجلب بداية الوردية علي أساس ضبطها لليوم الحالي كما يلي : CREATE OR REPLACE FUNCTION GET_TIME_DAY(ID_TIME DATE) RETURN DATE AS BEGIN -- تهيئة التاريخ بحيث أن يكون ملائم لليوم الحالي أياً كان -- RETURN TO_DATE(TO_CHAR(SYSDATE,'yyyy-mm-dd') || ' ' || TO_CHAR(ID_TIME,'HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS'); END; / بحيث أنه يقوم بضبط التاريخ المخزن في حقل "بداية الوردية" في صورة اليوم الحالي.2- نهاية الوردية ، نفس بداية الوردية.3- البداية الفعلية لحضور الموظف ، ودي هنخزن فيها تايخ الساعة الحالية لحدور الموظف "بحث باركودي" ، وطبعاً سيتم التخزين علي أساس الغرض SysDate الحالي الموجود علي الحاسب الآلي.4- النهاية الفعلية لإنصراف الموظف ، نفس بداية حضور الموظف ولكن علي أساس إنصرافه.5- تاريخ اليوم ، في هذه الحالة يدرج تاريخ اليوم الحالي ولكن ليس في صورة SysDate ، ولكن جلب السجل الأول من جدول الورديات ومن ثم إدراج بداية يومة ، علشان بداية اليوم الطبيعية هي الساعة 00:00:01 ، لكن ممكن يكون بداية وردية الشركة بيكون الساعة 08:00:00 صباحاً ، دة غير أن هذا التاريخ بنستخدمة في بناء التقارير الشهرية للمرتبات مثلاً ، دة غير طبعاً الورديات والتبديل بينهم.بكدة يكون لديك جدول شامل عن عملية الحضور والإنصراف [بداية الوردية - البداية الفعلية للحضور - نهاية الوردية - النهاية الفعلية للحضور-بداية الوردية الفعلية]الآن أنت قادر علي بناء تقرير شامل عن عملية الحضور والإنصراف بالساعة والدقيقة ، بس للأسف فية عيب واحد ، أن الموظف لازم ييجي في آخر الوردية بدقائق معدودة ويخزن إنصراف الموظف حتي لا يتم إحتسابة أنه خرج في معاد غير لائق فتضطر الي جعلة يوم غياب.بالتوفيق تقديم بلاغ
بتاريخ: 29 سبتمبر 200817 سنة كاتب الموضوع comment_139882 شكرا يا اخي MMA على تفاعلك يا اخي بصراحة انا لم افهم من كلامك الكثير هل استطيع ان اعمل نفس التقرير اللذي وضعت رابطه هل يا اخي تستطيع ان تعمل لي مثال من انشاء data base وبناء التقرير ارجوو ان تساعدني لانني صراحة لي اكثر من اسبوعين وانا واقف عند هذا البرنامج لم استطع فعل شيفي الشركة التي اعمل فيها عندنا دوامين دوام في الصبح ودوام في الليل هل يا اخ MMA فكرتي هذه اللتي عملتها تنفع انا قلت سوف اعمل جدولين جدول فيه رقم الموظف . واسمه والجدول الثاني فيه الحقول الاتية الرقم . اليوم . التاريخ . ساعة دخوله .ساعة خروجه (الفترة الصباحية ) . ساعة دخوله .ساعة خروجه ( الفترة المسائية) . ملاحظاتفي التقرير اضع عدد ساعات دوام الموظف يحسبها من دوامه في الصبح والليل وفي اخر الشهر اقوم بطرح عدد الساعات الفعلية التي هي 240 ساعة او 248 ساعة هذه فقط يدخلها الموظف في التقرير ومن ثم يتم انقاصها من عدد ساعات دوام الموظف في الشهر يطلع عندنا عدد ساعات الخصمبس المشكلة لا اعرف كيف احسب الاوقات بحيث 30 دقيقة مع 30 دقيقة ساعة وليس 60 دقيقة اذا كنت على صواب فساعدني في بناء هذا التقرير على اساس database صحيحة وان كنت خطاء فصحح لي وقل لي كيف اعمل هذا البرنامج من البداية مع ارفاق مثال قمت بتوضيح التقرير اكثر عشان تفهم الصورة هذا رابط التقريرhttp://www.4shared.com/file/64907698/29689...rified=cfd1ba8dجزاك الله كل خير يا اخ MMA وارجووووو مساعدتك يا اخ MMA لم اقابل مشكلة حقيقة في برنامج ما مثل ماقبلت هذه المشكلة في هذا البرنامجوجعلها في موازيين حسناتك تم تعديل 29 سبتمبر 200817 سنة بواسطة alsofi تقديم بلاغ
بتاريخ: 29 سبتمبر 200817 سنة comment_139901 الأخ الكريم ، هو الموضوع كبير شيوية فأعزرني إذا قصرت في حقق !!!بص يا أخي ، لو تم إدخال البيانات صح سيرتجع تقارير صح الصح !!!علشان مطولش عليك ، أنظر الي المثال المرفق ... حيث طالبني أحد أصدقائي به من قبلهو نفس الفكرة تقريباً ، بس التقرير لا يحتوي علي كل شيء ، بل أهم العمليات الضرورية لبناء مثل هذا النوع من التقارير .أنظر إلية وأخبرنيبالتوفيق Presence.zip تقديم بلاغ
بتاريخ: 29 سبتمبر 200817 سنة comment_139902 مرحبااللي فهمتوا انك بدك تعمل حساب للساعات الإضافية؟؟انت لازم يكون عندك :1- وقت بداية الدوام مثلا "08:30"2- وقت نهاية الدوام مثلا "4:00"حاول تطلع على هاي الشاشة: time.zip تم تعديل 29 سبتمبر 200817 سنة بواسطة ORA-2008 تقديم بلاغ
بتاريخ: 29 سبتمبر 200817 سنة كاتب الموضوع comment_139905 ارجوووووو ان تكونو فهمتوني يا اخوانهل تستطيعون ان تساعدوني في بناء هذا التقريربالنسبة للاخ ORA-2008 لقد حملت الفورمة بس لم تساعدني في بناء التقريرارجوووكم يا اخوان ان تساعدوني في بناء هذا التقرير بلييييييييييز جزاكم الله كل خير تقديم بلاغ
بتاريخ: 30 سبتمبر 200817 سنة comment_139923 الأخ الكريم هل نظرت الي المثال الذي أدرجتة لك ؟؟؟علي فكرة هو نفس الطلب بس حاولت أن أضع في المثال طلبك علي ق در المستطاع ... ياريت تنظر وتخبرني !!!بالتوفيق تقديم بلاغ
بتاريخ: 2 أكتوبر 200817 سنة كاتب الموضوع comment_140008 السلام عليكم يا اخ MMA انا كل الاشكال عندي الحسابات عندي سؤالينالسؤال الاول : انا عملت هذا البرنامج من قبل بس المشكلة انني عملت كل الcolumns في الداتا بيز varchar2 وقمت بادخال كل شي وكان كل شي على مايرام بس المشكلة اتت في الحساب بمعنى اذا كان عندي ,30 و .30 يحسبها ,60 انا اريدها تأتي 1 بمعنى ساعة هل هناك دالة او ما شابه تقوم بالتقريب او ماشابه انا جربت round ولكن لم تأتي معي اذا كنت يا اخي تعرف اي شي عن هذا الموضوع فأرجوو ان تخبرنيالسؤال الثاني : في التقرير الذي وضعت رابطه فوق كل المشكلة عندي هو حساب الاوقات كيف اقوم بحساب وقت من وقت بمعنى جمع وقتين او طرحهما وارجوووووووو ك يا اخ MMA ان تساعدني برنامجي تقديم بلاغ
بتاريخ: 3 أكتوبر 200817 سنة comment_140020 السؤال الاول : انا عملت هذا البرنامج من قبل بس المشكلة انني عملت كل الcolumns في الداتا بيز varchar2 وقمت بادخال كل شي وكان كل شي على مايرام بس المشكلة اتت في الحساب من المفضل إستخدام قيم مناسبة للبيانات وإلا ما فائدة قاعدة البيانات بدون إستخدام إمكانياتها !!!!لكن لو مثلاً حبيت تستخدم نوع VarChar2 مع بيان رقمي أو نصي لهدف تشفير الحقول ... في هذه الحالة يجب أن تخزن البيانات صح !!!يعني مثلاً التاريخ ، لا تقم بإدراج سجل علي أساس SysDate مباشرتاً ، بل يجب إدخال كافة التنسيق كما يلي :Insert Into TBL(FLD) Values(To_Char(SysDate,'yyyy/mm/dd hh24:mi:ss')); وليس هكذا : Insert Into TBL(FLD) Falues(SysDate); طب السؤال ما هو السبب في ذلك ؟؟؟لأنك متضمنش التنسيق الصحيح للتاريخ في مسجل النظام RegEdit ، حيث مثلاً يكون التنسيق "dd/mm/yy" ، في هذه الحالة التاريخ تم إدراجة علي أساس يوم وشهر وسنة ، أما الساعة فلم يدرج منها شيء !!!حاول كدة تستخدم الكود التالي كذا مرة ، بحيث أن يكون هناك فترة بين المرة الأول والثانية ، يعني 10 دقائق : Select To_Char(To_Date(FLD),'yyyy/mm/dd hh24:mi:ss') As FLD From TBL; ستجدة كل مرة يرتجع قيمة "00:00:00" للساعة !!!يبقي الشيء الصحيح أن ندخل التاريخ كامل .. ويجب أن تعلم أن حقل التاريخ حينما يتم إدراج قيمة بداخلة عن طريق SysDate بيخزن في صورة "yyyy/mm/dd hh24:mi:ss" ، يعني كاملاً ، لكن التنسيق المرتجع دة بيختلفلكن لو إستخدمنا حقل VarChar2 مثلاً ، مش هيخزن إلا الصورة التي أدخلت بها التاريخ بمعنى اذا كان عندي ,30 و .30 يحسبها ,60 انا اريدها تأتي 1 بمعنى ساعة هل هناك دالة او ما شابه تقوم بالتقريب او ماشابه انا جربت round ولكن لم تأتي معي اذا كنت يا اخي تعرف اي شي عن هذا الموضوع فأرجوو ان تخبرني من الطبيعي أن يتم عرض النتيجة "60" وليس "1" ، لأنك بتجمع قيم رقمية عادية !!!وبعدين النظاتم العشري حاجة أو أنظمة الحاسب حاجة ونظام الساعة والتاريخ حاجة تانية !!!يعني أفضل شيء لو كنت عايز تجمع ساعة علي ساعة تحاول تصنع Function خاص بذلك بحيث أن يعاونك علي بناء عملية الجمع بينهم ... وكمبدئياً أنظر الي فكرة الجمع الصحيح بين ساعتين :Create Or Replace Function Add_Date(In_Date1 Date, In_Date2 Date) Return VarChar2 As SS Number; MI Number; HH Number; -- DD Number; -- MM Number; -- YY Number; MOD_NEXT Number := 0; ID_Return VarChar2(50); Begin SS := To_Number(To_Char(In_Date1,'SS')) + To_Number(To_Char(In_Date2,'SS')); If(SS > 59)Then MOD_NEXT := 1; SS := SS - 60; Else MOD_NEXT := 0; End If; MI := To_Number(To_Char(In_Date1,'MI')) + To_Number(To_Char(In_Date2,'MI')) + MOD_NEXT; If(MI > 59)Then MOD_NEXT := 1; MI := MI - 60; Else MOD_NEXT := 0; End If; HH := To_Number(To_Char(In_Date1,'HH24')) + To_Number(To_Char(In_Date2,'HH24')) + MOD_NEXT; If(HH > 23)Then MOD_NEXT := 1; HH := HH - 24; Else MOD_NEXT := 0; End If; ID_Return := TRIM(TO_CHAR(HH,'00')) || ':' || TRIM(TO_CHAR(MI,'00')) || ':' || TRIM(TO_CHAR(SS,'00')); Return ID_Return; End; / -- SELECT TO_CHAR(F1,'HH24:MI:SS') AS F1,TO_CHAR(F2,'HH24:MI:SS') AS F2,ADD_DATE(F1,F2) AS ADD_DATE FROM TBL; ملحوظة ، اليوم والشهر والسنة غير فعالة ، حيث لها نظام آخر !!! السؤال الثاني : في التقرير الذي وضعت رابطه فوق كل المشكلة عندي هو حساب الاوقات كيف اقوم بحساب وقت من وقت بمعنى جمع وقتين او طرحهما كما ذكرت لك تقديم بلاغ
بتاريخ: 3 أكتوبر 200817 سنة كاتب الموضوع comment_140029 شكرا يا اخ MMA على مجهودك وتفاعلك معي والله انني تعبتك معي جزاك الله كل خير وجعلها في موازيين حسناتكيا اخ MMA اريدك ان تمشي معي خطوة خطوة لكي نستطيع ان نخلص هذا البرنامج برنامجك الذي اعطيتني هو فكرته رائعة واين يا اخي فكرتك من فكرتي وهذه ليس مجاملة ولكن ان عملت البرنامج وشتغلو عليه لاكثر من شهرين وكان كل شي تمام بس جاء المدير وقال اريد حساب عدد ساعات التأخير هنا بدأت المشكلة اريد يا اخي ان تكون معي خطوة بخطوة لكي نستطيع ان نحل مشكلة الحسابات اولا انا انشأت الداتا بيز التالية بالجداول التالية employee(emp_id number primary key ,emp_name varchar2(30جدول ال times emp_id number , day varchar2(20),dat date,tim_in_am date,time_out_am date, time_in _pm date,time_out_pm date remarks varchar2(30)هذه يا اخي هي الجداول وبعد هذه الخطوة انشيء فورمة واقوم بوضع الجداول بها لكي يقوم المستخدم بالادخال بقي عندنا التقرير وهي الاشكالية الكبيرة عندي سوف اضع في الجدوال فيه وازي عليه د ما وضحت لك في الاعلى بمعنى عدد ساعات دوام الموظف عدد الساعات المعتمدة ( هنا لا يوجد اي اشكال لانه سوف يتم الادخال يدويا)مجموع عدد ساعات الموظف وايضا عدد ساعات الخصماريدك يا اخي فقط ان تقوم معي بالتطرق الى كل خطوة على حدةاولا : لنأتي الى الداتا بيز كيف اقوم بتحويل الصيغة الى وقت لانني جربت وادخلت وقت في الفورمة بس في الداتا بيز جاءت على شكل تاريخ ثانيا : لنأتي الى التقرير (الذي ارقني) اولا عدد ساعات دوام الموظف اليومية سوف يأخذها من جمع عدد الساعات في الصبح والليل ثانيا عدد الساعات المعتمدة هنا فقط سوف يقوم المستخدم بالادخال اليدوي ثالثا عدد ساعات دوام الموظف في الشهر هنا فقط سوف يقوم بجمع حقل عدد ساعاته اليومة رابعا عدد ساعات الخصم هنا سوف نقوم بطرح عدد الساعات الفعلية من عدد ساعات دوام الموظف في الشهر وشكرا على تفاعلك معي وشرحك لي طوال هذه المدة واستحملني شوية لنكمل عمل هذا البرنامج تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.