ri! in the rule, hours, index =a!gridRowLayout( id: ri!index, contents: { a!textField( label: "project " & ri!index, value: if(rule!PX_LI_IsEmpty(ri!hours),null,if(rule!PX_LI_IsEmpty(ri!hours[ri!index]),null,ri!hours[ri!index].project)), saveInto: ri!hours[ri!index].project ), a!textField( label: "role " & ri!index, value: if(rule!PX_LI_IsEmpty(ri!hours),null,if(rule!PX_LI_IsEmpty(ri!hours[ri!index]),null,ri!hours[ri!index].role)), saveInto: ri!hours[ri!index].role, readonly: true ), a!dateField( label: "date " & ri!index, value:ri!hours[ri!index].date, saveInto: ri!hours[ri!index].date, readonly: true, validations: {if(rule!PX_LI_IsEmpty(ri!hours),null,if(rule!PX_LI_IsEmpty(ri!hours[ri!index]),null,if(rule!PX_LI_IsBlank(ri!hours[ri!index].date),null,if(todate(ri!hours[ri!index].date) > today(), "The due date cannot be in the future", null))))}, align: "RIGHT" ), a!integerField( label: "hours " & ri!index, value: ri!hours[ri!index].hours, saveInto: ri!hours[ri!index].hours, readonly: true, validations: null, align: "RIGHT" ), a!textField( label: "user " & ri!index, value: ri!hours[ri!index].user, saveInto: a!save(ri!hours[ri!index].user, user(loggedInUser(), "username")), readonly: true, align: "RIGHT" ), a!textField( label: "status " & ri!index, value: if(rule!PX_LI_IsEmpty(ri!hours),null,if(rule!PX_LI_IsEmpty(ri!hours[ri!index]),null,ri!hours[ri!index].status)), saveInto: ri!hours[ri!index].status, required: true ) } )