كيفية التعرف عل حالة السجل Record Status

السلام عليكم
كان موجود فى الفورم system variable  اسمه :system.record_status
و كان ممكن تستخدمة للتعرف على حالة السجل  new – modified   
و اكيد التعرف على حالة السجل هيفيدك كتير
فى ال adf  كمان ممكن تعمل حاجة ذى دى لكن مش بالبساطة الموجودة فى الفورمز و ذلك لان الدنيا فى ال adf  مفصولة عن بعضها مش كلها فى layer  واحد ذى الفورم
فى المثال التالي هنعرف ازاى نعمل method  ترجعلك حالة السجل و ازاى نستخدمها فى الصفحة
1-      In the model project , go to the view object and click on java tab and generate the following java classes
·         View object class “ViewImpl”
·         View Row class “View row impl”
كما بالشكل بالشكل المرفق رقم 1
لاحظ انا عملت generate  لل view row class  لان الكلاس دى هى اللى بتمثلي السجل اللى انا هتعرف على حالته
اما الview object class  فهى الكلاس اللى هكتب فيها الميثود
كما بالشكل
2-      In the view object class write this methods

public String getRowStatus(Row row) {
        EduTranDetailsVORowImpl rwImpl = (EduTranDetailsVORowImpl) row;
        String rwStatus = translateStatusToString(rwImpl.getEntity(0).getEntityState());
        return rwStatus;
    }

    private String translateStatusToString(byte b) {
        String ret = null;
        switch (b) {
        case Entity.STATUS_INITIALIZED:
            {
                ret = "Initialized";
                break;
            }
        case Entity.STATUS_MODIFIED:
            {
                ret = "Modified";
                break;
            }
        case Entity.STATUS_UNMODIFIED:
            {
                ret = "Unmodified";
                break;
            }
        case Entity.STATUS_NEW:
            {
                ret = "New";
                break;
            }
        }
        return ret;
    }
فى الميثود الاولى  getRowStatus دى بتاخد باراميتر من نوع ROW  . يعنى بتبعتلها السجل كله ك PARAMETER  علشان ترجع حالته
طيب اية هو السجل دة؟
هو السجل اللى من النوع ال View Row class  اللى عملتلها GENERATE  اللى هى اصلا بتمثل ال ROW
فى المثال هنا اسمها EduTranDetailsVORowImpl  طبعا هتغير اسمها حسب ما هو موجود عندك
يعنى مثلا لو عندك ال view  اسمها EmployeeView  هتلاقى الكلاس اسمها EmployeeViewRowImpl

طيب انا فى الحقيقة مقدرش اعرف حالة السجل من خلال ال view  لان ال view  اصلا بتمثل SQL Query Statement    يعنى مش بتمثل السجل و لكن اللى بيمثل السجل فى ال ADF  هو ال Entity Object
لكن انا من خلال ال View  اقدر اوصل لل Entity object  بتاعها اللى هى اصلا مبنيه عليه و ذلك من خلال الميثود اللى اسمها getEntity  
و من خلال ال entity اقدر احصل على حالة السجل من خلال الميثود  اللى اسمها getEntityState
الكلا اللى انا قولته دة هو معنى السطر دة

Comments

Popular posts from this blog

Another user has changed the row with primary key oracle.jbo.Key[12 ].

weblogic windows JPS-01050: Opening of wallet based credential store failed. Reason java.io.IOException: Failed to lock cwallet.sso.lck

Working With File Throgh WebUtill