بتاريخ: 8 أغسطس 201114 سنة comment_214770 بسم الله الرحمن الرحيم اخوانى الاعزاء فى المنتدى لو سمحتوا عندى سوال عاوز اطرح تاريخين من بعض فى ال adf هو عبارة عن جدول عاوز لما يختار التاريخين يطلع لى الفرق بينهم فى حقل موجود فى نفس الحقل و شكرا لكم تقديم بلاغ
بتاريخ: 8 أغسطس 201114 سنة comment_214778 سأفترض أنك تستخدم أنواع البيانات الخاصة بأوراكل وهذا يعني أنه لديك تاريخين من نوع oracle.jbo.domain.Date بحيث أن التاريخ الأول يمثله المتغير d1 والثاني يمثله d2يمكنك كتابة التالي:long diff = d1.getValue().getTime() - d2.getValue().getTime();المتغير diff يمثل الفرق بين التاريخين بوحدات المللي ثانية ، وبحسبة رياضية بسيطة يمكنك معرفة الفرق بالسنوات والشهور والأيام ، فمثلاً لحساب فرق السنوات بين التاريخين فيمكنك كتابة التالي:System.out.println(diff / 1000 / 60 / 60 / 24 / 365);وهكذا بالنسبة لأي وحدة قياس تريدها تقديم بلاغ
بتاريخ: 9 أغسطس 201114 سنة كاتب الموضوع comment_214795 بسم الله الرحمن الرحيم بشمهندس مصطفى بعد التحية طلع لى الخطأ ده oracle.jbo.domain.Date cannot be cast to java.util.Date و انا عملت import ل import java.util.Date; import java.util.GregorianCalendar; تقديم بلاغ
بتاريخ: 9 أغسطس 201114 سنة comment_214801 لو تستخدم java.util.Date فيصبح الكود كالتالي:long diff = d1.getTime() - d2.getTime();والباقي كما هو تقديم بلاغ
بتاريخ: 10 أغسطس 201114 سنة comment_214862 شوف حفترض مثلا انك عندك فى الداتابيز عمودين هما Date Started و Date End وهما بيمثلوا اجازه الموظف وعاوز تطرحهم من بعض عشان تجيب اجازه الموظف بالايام فالحل كالاتى 1 حتعمل فى ال View object الخاص بالموظفين Transiet Attribute نوعه Number وال updatable بتاعه ب never2 فى ال ViewRowImpl الخاصه بالفيو اوبجكت حتكتب الميثود دى public oracle.jbo.domain.Number calculateDays(Date started, Date end) { if (null != end) { long days = (end.getTime() - started.getTime()) / (1000 * 60 * 60 * 24); return new Number(days); } else return new Number(0); } وحتعمل import لكلاس import java.sql.Date; وفى ال default value الخاصة بال transiet Attribute حتخليها Expression وحتكتب ال expression كالاتى adf.object.calculateDays(DateStarted, DateEnd) طبعا دول هما الاتنين attributes اللى نوعهم date اللى فى الفيو اوبجكت الخاص بيك تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.