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

Datediff In Adf

Featured Replies

بتاريخ:

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


اخوانى الاعزاء فى المنتدى

لو سمحتوا عندى سوال

عاوز اطرح تاريخين من بعض فى ال adf

هو عبارة عن جدول عاوز لما يختار التاريخين يطلع لى الفرق بينهم فى حقل موجود فى نفس الحقل

و شكرا لكم

بتاريخ:

سأفترض أنك تستخدم أنواع البيانات الخاصة بأوراكل وهذا يعني أنه لديك تاريخين من نوع oracle.jbo.domain.Date بحيث أن التاريخ الأول يمثله المتغير d1 والثاني يمثله d2
يمكنك كتابة التالي:
long diff = d1.getValue().getTime() - d2.getValue().getTime();
المتغير diff يمثل الفرق بين التاريخين بوحدات المللي ثانية ، وبحسبة رياضية بسيطة يمكنك معرفة الفرق بالسنوات والشهور والأيام ، فمثلاً لحساب فرق السنوات بين التاريخين فيمكنك كتابة التالي:
System.out.println(diff / 1000 / 60 / 60 / 24 / 365);
وهكذا بالنسبة لأي وحدة قياس تريدها

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

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



بشمهندس مصطفى بعد التحية

طلع لى الخطأ ده

 
oracle.jbo.domain.Date cannot be cast to java.util.Date



و انا عملت import ل

 
import java.util.Date;
import java.util.GregorianCalendar;

بتاريخ:

لو تستخدم java.util.Date فيصبح الكود كالتالي:
long diff = d1.getTime() - d2.getTime();
والباقي كما هو

بتاريخ:

شوف حفترض مثلا انك عندك فى الداتابيز عمودين هما Date Started و Date End وهما بيمثلوا اجازه الموظف وعاوز تطرحهم من بعض عشان تجيب اجازه الموظف بالايام فالحل كالاتى

1 حتعمل فى ال View object الخاص بالموظفين Transiet Attribute نوعه Number وال updatable بتاعه ب never
2 فى ال 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 اللى فى الفيو اوبجكت الخاص بيك

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

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

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

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

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

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.