cancel
Showing results for 
Search instead for 
Did you mean: 

enable and disable check box in a table

0 Kudos
405

Hi Friends,

I have a table in my output with following columns: CHECKBOX, EMPID, PROJECT, HOURS_WORKED

If employee has worked on 5projects in a week, he has five entries in the table which is followed by another employee.

Now my requirement is that at run time I should enable check box of only the first entry of the employee and the remaining four

check boxes should be in disabled mode. Could anyone suggest how to get this problem resolved.

I have already bound the data which is getting displayed in the output but the check boxes are all enabled.

Regards,

Sridhar

View Entire Topic
Kiran_Valluru
Active Contributor
0 Kudos

Hi.,

In the context create an attribute VISIBLE of type WDY_BOOLEAN. now in the layout drilldown the table and bind the read only property of column group for check box to VISIBLE.

Now in your method loop the internal table and

at new of emp_id.

  • enable check box using set_attribute( ) property.

lo_el_elem->set_atribute( name = 'VISIBLE'

value = abap_false)

end at.

hope this helps u.,

Thanks & Regards,

Kiran

0 Kudos

Hi Kiran,

I made changes as suggested by you but I am getting the error "Access via 'NULL' object reference not possible".

Can you suggest me what might be the error and give me probable solution.

Thanks,

Sridhar

Kiran_Valluru
Active Contributor
0 Kudos

Hi.,

Some where you forgot to instantiate the Context node. Go to ST22 transaction and check the source code, where you are getting error. else post your code here..

Thanks & Regards,

Kiran

former_member199125
Active Contributor
0 Kudos

Hi Sridhar,

Access null object means have several meaning, program may not be able to retrieve particular value or unable to identify variable name...

GO to ST 22... you can see the exact line where the error raised.

There will be arrow like >>>>>> before the statement.

So in result just click on pagedown button...untill you find the coding part, there you will find the above error . So now you can analyze the error or paste the same error line code then i wl tell you.

Regards

Srinivas

0 Kudos

Hi Srinivas,

I am getting output when not trying to enable or disable the check boxes dynamically and when I include the following code, its displaying "Null object" error.

lo_el_tsheet->set_attribute(

name = 'SNO'

VALUE = ABAP_TRUE ).

Below is the entire code...

METHOD ONACTIONCHANGE .

TYPES: BEGIN OF TY_APPROVAL,

LIFNR TYPE LFA1-LIFNR,

END OF TY_APPROVAL.

DATA: IT_APPROVAL TYPE STANDARD TABLE OF TY_APPROVAL,

WA_APPROVAL TYPE TY_APPROVAL.

DATA LO_ND_EMPID TYPE REF TO IF_WD_CONTEXT_NODE.

DATA LO_EL_EMPID TYPE REF TO IF_WD_CONTEXT_ELEMENT.

DATA : LO_ND_TSHEET TYPE REF TO IF_WD_CONTEXT_NODE,

LO_EL_TSHEET TYPE REF TO IF_WD_CONTEXT_ELEMENT,

LO_ND_COLUMN TYPE REF TO IF_WD_CONTEXT_NODE,

LO_EL_COLUMN TYPE REF TO IF_WD_CONTEXT_ELEMENT.

DATA LS_EMPID TYPE WD_THIS->ELEMENT_EMPID.

DATA: LO_API_CONTROLLER TYPE REF TO IF_WD_CONTROLLER,

LO_MESSAGE_MANAGER TYPE REF TO IF_WD_MESSAGE_MANAGER.

TYPES : BEGIN OF TY_EMP,

EMP_ID TYPE ZTIME_SHEET-EMP_ID,

END OF TY_EMP.

TYPES : BEGIN OF TY_TSHEET,

CHK_BOX TYPE WDY_BOOLEAN,

EMP_ID TYPE ZTIME_SHEET-EMP_ID,

EMP_NAME TYPE ZTIME_SHEET-EMP_NAME,

CUST_NAME TYPE ZTIME_SHEET-CUST_NAME,

PROJ_NAME TYPE ZTIME_SHEET-PROJ_NAME,

SUNDAY TYPE ZTIME_SHEET-SUNDAY,

END OF TY_TSHEET.

TYPES : BEGIN OF TY_FINAL,

EMP_ID TYPE ZTIME_SHEET-EMP_ID,

EMP_NAME TYPE ZTIME_SHEET-EMP_NAME,

CUST_NAME TYPE ZTIME_SHEET-CUST_NAME,

PROJ_NAME TYPE ZTIME_SHEET-PROJ_NAME,

MONDAY TYPE ZTIME_SHEET-MONDAY,

TUESDAY TYPE ZTIME_SHEET-TUESDAY,

WEDNESDAY TYPE ZTIME_SHEET-WEDNESDAY,

THRUSDAY TYPE ZTIME_SHEET-THRUSDAY,

FRIDAY TYPE ZTIME_SHEET-FRIDAY,

SATURDAY TYPE ZTIME_SHEET-SATURDAY,

SUNDAY TYPE ZTIME_SHEET-SUNDAY,

END OF TY_FINAL.

DATA : WA_TSHEET TYPE TY_TSHEET,

IT_TSHEET TYPE STANDARD TABLE OF TY_TSHEET,

WA_EMP TYPE TY_EMP,

IT_EMP TYPE STANDARD TABLE OF TY_EMP,

WA_TEMP TYPE TY_FINAL,

WA_FINAL TYPE TY_FINAL,

IT_FINAL TYPE STANDARD TABLE OF TY_FINAL,

WEEKNO TYPE CHAR2,

COUNT TYPE I,

S_NO TYPE WDY_BOOLEAN,

EMP_ID TYPE ZTIME_SHEET-EMP_ID,

LO_ND_APP_REJ TYPE REF TO IF_WD_CONTEXT_NODE,

LO_ND_WEEK TYPE REF TO IF_WD_CONTEXT_NODE,

LO_EL_APP_REJ TYPE REF TO IF_WD_CONTEXT_ELEMENT,

LO_EL_WEEK TYPE REF TO IF_WD_CONTEXT_ELEMENT.

DATA: LO_ND_APPL TYPE REF TO IF_WD_CONTEXT_NODE,

LO_EL_APPL TYPE REF TO IF_WD_CONTEXT_ELEMENT.

DATA: TEMP TYPE WDY_BOOLEAN.

LO_ND_WEEK = WD_CONTEXT->GET_CHILD_NODE( NAME = 'WEEK' ).

LO_EL_WEEK = LO_ND_WEEK->GET_ELEMENT( ).

LO_EL_WEEK->GET_ATTRIBUTE(

EXPORTING

NAME = `WEEK`

IMPORTING

VALUE = WEEKNO ).

LO_ND_EMPID = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_EMPID ).

  • get element via lead selection

LO_EL_EMPID = LO_ND_EMPID->GET_ELEMENT( ).

  • get all declared attributes

LO_EL_EMPID->GET_STATIC_ATTRIBUTES(

IMPORTING

STATIC_ATTRIBUTES = LS_EMPID ).

REFRESH IT_APPROVAL.

SELECT LIFNR FROM LFA1

INTO TABLE IT_APPROVAL

WHERE LNRZA = LS_EMPID-EMP_ID.

LOOP AT IT_APPROVAL INTO WA_APPROVAL.

WA_EMP-EMP_ID = WA_APPROVAL-LIFNR.

APPEND WA_EMP TO IT_EMP.

ENDLOOP.

SELECT * FROM ZTIME_SHEET INTO

CORRESPONDING FIELDS OF TABLE IT_FINAL

FOR ALL ENTRIES IN IT_EMP

WHERE EMP_ID = IT_EMP-EMP_ID AND WEEK_NO = WEEKNO

AND APPROVAL_STATUS = 'A'.

IF SY-SUBRC NE 0.

REFRESH IT_TSHEET.

FREE: LO_ND_TSHEET,LO_EL_TSHEET.

LO_ND_TSHEET = WD_CONTEXT->GET_CHILD_NODE( NAME = 'APP_REJ' ).

LO_EL_TSHEET = LO_ND_TSHEET->GET_ELEMENT( ).

LO_ND_TSHEET->BIND_ELEMENTS( IT_TSHEET ).

LO_API_CONTROLLER ?= WD_THIS->WD_GET_API( ).

CALL METHOD LO_API_CONTROLLER->GET_MESSAGE_MANAGER

RECEIVING

MESSAGE_MANAGER = LO_MESSAGE_MANAGER.

CALL METHOD LO_MESSAGE_MANAGER->REPORT_SUCCESS

EXPORTING

MESSAGE_TEXT = 'No entries for approval or rejection'.

ELSE.

SORT IT_FINAL BY EMP_ID CUST_NAME.

LO_ND_TSHEET = WD_CONTEXT->GET_CHILD_NODE( NAME = 'APP_REJ' ).

LO_EL_TSHEET = LO_ND_TSHEET->GET_ELEMENT( ).

LOOP AT IT_FINAL INTO WA_FINAL.

WA_TEMP = WA_FINAL.

COUNT = COUNT + WA_FINAL-MONDAY + WA_FINAL-TUESDAY + WA_FINAL-WEDNESDAY + WA_FINAL-THRUSDAY

+ WA_FINAL-FRIDAY + WA_FINAL-SATURDAY + WA_FINAL-SUNDAY.

  • AT NEW EMP_ID.

  • LO_EL_TSHEET->SET_ATTRIBUTE(

  • NAME = 'SNO'

  • VALUE = ABAP_TRUE ).

  • ENDAT.

AT END OF PROJ_NAME.

CLEAR WA_TSHEET.

IF WA_TEMP-EMP_ID NE EMP_ID.

WA_TSHEET-EMP_ID = WA_TEMP-EMP_ID.

WA_TSHEET-EMP_NAME = WA_TEMP-EMP_NAME.

ELSE.

WA_TSHEET-EMP_ID = ' '.

WA_TSHEET-EMP_NAME = ' '.

ENDIF.

WA_TSHEET-CUST_NAME = WA_TEMP-CUST_NAME.

WA_TSHEET-PROJ_NAME = WA_TEMP-PROJ_NAME.

WA_TSHEET-SUNDAY = COUNT.

APPEND WA_TSHEET TO IT_TSHEET.

EMP_ID = WA_TEMP-EMP_ID.

CLEAR: WA_TSHEET,COUNT.

ENDAT.

CLEAR WA_TEMP.

CLEAR WA_FINAL.

ENDLOOP.

  • LOOP AT IT_TSHEET INTO WA_TSHEET.

  • AT NEW EMP_ID.

  • LO_EL_TSHEET->SET_ATTRIBUTE(

  • EXPORTING

  • NAME = 'SNO'

  • VALUE = ABAP_TRUE ).

  • ENDAT.

  • ENDLOOP.

  • loop at it_tsheet into wa_tsheet.

  • if wa_tsheet-emp_id ne ' '.

  • lo_el_tsheet->set_attribute( exporting name = 'S_NO'

  • VALUE = ABAP_TRUE ).

  • ELSE.

  • lo_el_tsheet->set_attribute( exporting name = 'S_NO'

  • VALUE = ABAP_FALSE ).

  • endif.

  • MODIFY IT_TSHEET FROM WA_TSHEET.

  • endloop.

LO_ND_TSHEET->BIND_ELEMENTS( IT_TSHEET ).

loop at it_tsheet into wa_tsheet.

at new emp_id.

LO_EL_TSHEET->SET_ATTRIBUTE(

EXPORTING

NAME = 'SNO'

VALUE = ABAP_TRUE ).

endat.

endloop.

FREE: LO_ND_TSHEET,LO_EL_TSHEET.

ENDIF.

ENDMETHOD.

0 Kudos

Hi Srinivas,

Sorry my last post was unreadable. I am getting output when not trying to enable or disable the check boxes dynamically and when I include the following code, its displaying "Null object" error.

lo_el_tsheet->set_attribute(

name = 'SNO'

VALUE = ABAP_TRUE ).

0 Kudos

Hi Srinivas,

I am getting output when not trying to enable or disable the check boxes dynamically and when I include the following code, its displaying "Null object" error.

*lo_el_tsheet->set_attribute(

name = 'SNO'

VALUE = ABAP_TRUE ).*

0 Kudos

Hi Srinivas,

Below is the entire code and I have instatiated the context node also. I am able to display the output without trying to enable/disable checkboxes.

*DATA : LO_ND_TSHEET TYPE REF TO IF_WD_CONTEXT_NODE,*

*LO_EL_TSHEET TYPE REF TO IF_WD_CONTEXT_ELEMENT,*

lo_el_tsheet->set_attribute(

name = 'SNO'

VALUE = ABAP_TRUE ).

Kiran_Valluru
Active Contributor
0 Kudos

Hi.,

Comment the free statement , FREE lo_nd_tsheet and check.,

Thanks & Regards,

Kiran

0 Kudos

Hi Kiran,

I have removed free statement and tried, but still getting the same error.

Thanks,

Sridhar

former_member199125
Active Contributor
0 Kudos

Hi Sachin,

no need of commenting any statements.

lo_el_tsheet = lo_nd_sheet->get_element( ).

lo_el_tsheet->set_attribute( exporting name = 'SNO'

VALUE = ABAP_TRUE ).

And SNO is of type wdy_boolean ?

Regards

Srinivas