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

مشكلة فى Validators

Featured Replies

بتاريخ:

البرنامج بيقف عند الجملة                  Timestamp cc=Timestamp.toTimestamp(dd);

ا

 

package view.backing;

 
 
 
 
import javax.faces.application.Application;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
 
import javax.faces.validator.ValidatorException;
 
import model.DateInfo;
 
import model.model.Log_AppModuleImpl;
 
 
import oracle.jbo.domain.Timestamp;
 
 
public class SysDateChk1 {
    public SysDateChk1() {
    }
 
    public void Sysdatechk_validator(FacesContext facesContext,
                                     UIComponent uIComponent, Object value) throws ValidatorException{
        // Add event code here...
        System.out.println("1111111111111");
         
         String dd=String.valueOf(value);
         
         System.out.println("xxxxxxxxxxxxx"+dd); 
            Timestamp cc=Timestamp.toTimestamp(dd);
        System.out.println("yyyyyyyyyyyy"+cc); 
        
        FacesContext context =  FacesContext .getCurrentInstance();
        
        Application app = context.getApplication();
        
        ValueBinding bind = app.createValueBinding("#{data.Log_AppModuleDataControl.dataProvider}");
        
 
        Log_AppModuleImpl amm = (Log_AppModuleImpl)bind.getValue(context); 
         
        DateInfo date=amm.SysDateChk();      
        System.out.println("222222222222");
        if ( date.getDate().compareTo(cc)>0 && 
           date.getF_date().compareTo(cc)<0 &&
           date.getE_date().compareTo(cc)<0 &&
           date.getDate().getValue().getMonth()!=cc.getValue().getMonth())
            System.out.println("333333333333");
           {
            
        }
             
         FacesMessage message = new FacesMessage("خطأ تاريخ اكبر من تاريخ الجهاز او خارج السنة المالية");
         FacesContext.getCurrentInstance().addMessage(null, message);
            throw new ValidatorException(message);
        }
 
    }
 
 
 
 
 
 
 
package model.model;
 
import model.DateInfo;
import model.UserInfo;
 
import oracle.jbo.Row;
import oracle.jbo.ViewCriteria;
import oracle.jbo.ViewCriteriaRow;
import oracle.jbo.ViewObject;
import oracle.jbo.domain.Date;
import oracle.jbo.server.ApplicationModuleImpl;
import oracle.jbo.server.ViewObjectImpl;
import oracle.jbo.domain.Number;
import oracle.jbo.domain.Timestamp;
 
// ---------------------------------------------------------------------
// ---    File generated by Oracle ADF Business Components Design Time.
// ---    Fri Dec 04 19:44:25 EET 2015
// ---    Custom code may be added to this class.
// ---    Warning: Do not modify method signatures of generated methods.
// ---------------------------------------------------------------------
public class Log_AppModuleImpl extends ApplicationModuleImpl {
    /**
     * This is the default constructor (do not remove).
     */
    public Log_AppModuleImpl() {
    }
 
   
    /**
     * Container's getter for UsersView1.
     * @return UsersView1
     */
    public ViewObjectImpl getUsersView1() {
        return (ViewObjectImpl)findViewObject("UsersView1");
    }
    
    public ViewObjectImpl getFinYearView1() {
        return (ViewObjectImpl)findViewObject("etFinYearView1");
    }
    
    
    
    public UserInfo Login (String userName , String password){   
            
          UserInfo user = null;
          ViewObject vo = getUsersView1();
          ViewCriteria vc  = vo.createViewCriteria();
          ViewCriteriaRow vcr = vc.createViewCriteriaRow();
          
          vcr.setAttribute("UseName", userName);
          vcr.setAttribute("Pass", password);
          
          vc.add(vcr);
          vo.applyViewCriteria(vc);
          vo.executeQuery();
           
          if(vo.hasNext()){             
            user = new UserInfo();
            Row row = vo.next();
            user.setPassword((String)row.getAttribute("Pass"));
            user.setSerialNo(((Number)row.getAttribute("SerialNo")).intValue());            
            user.setUserName((String)row.getAttribute("UseName"));
            user.setUserId(((Number)row.getAttribute("UserId")).intValue()); 
            Date dd = new Date();
            user.setC_date((Date)dd.getCurrentDate());
            
          }
          
       
       return user;   
       }
    
    public DateInfo SysDateChk(){   
           ViewObject vo = getFinYearView1();
           ViewCriteria vc  = vo.createViewCriteria();
           ViewCriteriaRow vcr = vc.createViewCriteriaRow();            
           
           vc.add(vcr);
           vo.applyViewCriteria(vc);
           vo.executeQuery();                  
           DateInfo date = null;
            if(vo.hasNext()){
              Row row = vo.next(); 
              date = new DateInfo();                                               
               date.setV_close_month(((Number)row.getAttribute("CloseMonth")));
               date.setV_date_idl(((Number)row.getAttribute("DateId")));
               date.setE_date((Timestamp)row.getAttribute("EndDate"));
               date.setF_date((Timestamp)row.getAttribute("StDate"));
               date.setDate((Timestamp)row.getAttribute("SysDate")); 
            
          }
          
       
       return date;   
       }
}
 

 

بتاريخ:

ما الذي تحاول فعله؟

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

شكرا يا بشمهندس

ال validator  على متغير نوعه date    

String dd=String.valueOf(value)      دى الى بيعطى قيمة المتغير ولكن فى صورة string  

بحاول احوله الى Timestamp   علشان   لو فضل date  بيعطى الخطأ  can not cast java.utll.date to oracle.jbo.domain.date

فحولت ال Date الى Timestamp  وقابلتنى هذه المشكلة

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

الرسالة دى بتظهر 

 

javax.faces.el.EvaluationException: java.lang.ClassCastException: java.util.Date cannot be cast to oracle.jbo.domain.Timestamp

 

غلى الكود ده

 

    public void Sysdatechk_validator(FacesContext facesContext,
                                     UIComponent uIComponent, Object value) throws ValidatorException{
        // Add event code here...
        System.out.println("1111111111111");
         
         String dd=String.valueOf(value);
         
         System.out.println("xxxxxxxxxxxxx"+dd); 
         
        /* Timestamp cc=Timestamp.valueOf(dd, "yyyy-mm-dd hh:mm:ss");*/
         
           Timestamp cc=(Timestamp)value ;   
            System.out.println("yyyyyyyyyyyy"+cc); 
بتاريخ:

تأكد من الـ import الموجود

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

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

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

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

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

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.