a!localVariables( local!projectdata:rule!totaltimesheet(),
local!projectid, local!updateCounter: 0, local!employee: a!refreshVariable( refreshOnVarChange: local!updateCounter ), { a!dateField( label: "Date", labelPosition :"JUSTIFIED", value: ri!timeline.taskdate, saveInto:ri!timeline.taskdate,
), a!sectionLayout( label: "", contents: { a!gridLayout( /*label: "Grid view of an employee Details",*/ labelPosition: "ABOVE", totalCount: count(ri!timeline), headerCells: { /*a!gridLayoutHeaderCell(label: "Employee Name"),*/ a!gridLayoutHeaderCell(label: "Project Name"), a!gridLayoutHeaderCell(label: "Task Name"), a!gridLayoutHeaderCell(label: "Description"), a!gridLayoutHeaderCell(label: "Hours"), a!gridLayoutHeaderCell(label: "Status"), a!gridLayoutHeaderCell( label: "" )
}, columnConfigs: { /*a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:2),*/ a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:2), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:2), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:2), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:2), a!gridLayoutColumnConfig( width: "ICON" ) }, rows: a!forEach( items: ri!timeline, expression:a!gridRowLayout( contents: { /*a!textField(*//* */ /*value: loggedInUser(),*/ /*saveInto: {fv!item.employerName, a!save(ri!timeline.employerName, save!value)},*/ /*refreshAfter: "UNFOCUS",*/ /*required: true,*/ /*readOnly: true *//* *//* */ /*),*/ a!dropdownField( label: "project Name ", placeholderLabel: " ", choiceLabels: rule!CrochetDSR_Get_ProjectName().projectname, choiceValues: rule!CrochetDSR_Get_ProjectName().projectid, value: fv!item.projectid, saveInto: fv!item.projectid, required: true ), /*a!dropdownField(*/ /*label: "task",*/ /*placeholderLabel: " ",*/ /*choiceLabels: rule!CrochetDSR_Get_MilestoneTaskName(projectid:local!projectid).taskname,*/ /*choiceValues: rule!CrochetDSR_Get_MilestoneTaskName(projectid:local!projectid).taskname,*/ /*value: fv!item.taskname,*/ /*saveInto: fv!item.taskname,*//* */ /*required: true*/ /*) ,*/ a!textField( label: "Description ", value: fv!item.taskname, saveInto: fv!item.taskname, required: true ), a!textField( label: "Description ", value: fv!item.description, saveInto: fv!item.description, required: true ), /*a!dateField(*/ /*label: "task date ",*/ /*value: fv!item.taskdate,*/ /*saveInto: fv!item.taskdate,*/ /*required: true */ /*),*/ a!textField( label: "Hours ", value: fv!item.noofhours, saveInto: fv!item.noofhours, required: true ), a!dropdownField( label: "Status ", placeholderLabel: " ", choiceLabels: {"Done","Pending"}, choiceValues: {"Done","Pending"}, value: fv!item.Status, saveInto: fv!item.Status, required: true ), a!imageField( label: "delete " & fv!index, images: a!documentImage( document: a!iconIndicator( "REMOVE" ), altText: "Remove", link: a!dynamicLink( value: fv!index, saveInto: { a!save( ri!timeline, remove( ri!timeline, save!value ) ) } ) ) ) } ) ), /*selectionvalue: ri!selectedRowIndex,*/ /*selectionsaveinto: ri!selectedRowIndex,*/ /*selectable: true,*/ selectionrequired: false, addRowLink: a!dynamicLink( label: "Add Timesheet", saveInto: { a!save( target: ri!timeline, value: append( ri!timeline, 'type!{urn:com:appian:types:DSR}DSR_TimeSheetLineItem'( employerName: loggedInUser(), ) ) ) } ), height: "AUTO", spacing: "DENSE", borderstyle: "STANDARD", rowHeader: 1 ), a!columnsLayout( columns: { a!columnLayout( contents: {} ), a!columnLayout( contents: {} ), a!columnLayout( contents: { a!textField( label: "Total Hours ", labelPosition :"ADJACENT", value: sum(ri!timeline.noofhours), saveInto: {ri!timeline.Totalhours, a!save(ri!timeline.Totalhours, save!value)}, readOnly: true ), } ) } ), a!buttonLayout( primaryButtons: { a!buttonWidgetSubmit( label: "Submit", value: ri!timeline, /*saveInto: {a!save(ri!timeline.timesheetid,ri!pid),*/ /*ri!submitbutton,*/ /*a!writeToDataStoreEntity(*/ /*dataStoreEntity: cons!CROCHETDSR_GET_TIMESHEET,*/ /*valueToStore: ri!timeline,*/ /*)*//**/ /*},*/ showWhen: if( rule!APN_isEmpty1( ri!timeline ), false(), true() ), style: "PRIMARY", confirmHeader: { if( rule!APN_isEmpty1( ri!timeline ), "Please add at least one row", {} ) }, confirmMessage: { if( rule!APN_isEmpty1( ri!timeline ), "Please add at least one row", {} ) } ) }, secondaryButtons: { a!buttonWidget( label: "Cancel", value: true, saveInto: ri!cancel, submit: true, style: "NORMAL", validate: false ) } ) } ), }
)
Discussion posts and replies are publicly visible
Hi peter as per your answe i have divided into two tables but still the value is not saved into other CDT which in sum function.
As Mike mentioned above, read-only fields don't save results - users must interact with the field in order for the save to be triggered. In this case, I'd recommend setting your save on the button so that the value is saved when the user submits the form. For example, your submit button could look like this:
a!buttonWidget( label: "Submit", submit: true, style: "PRIMARY", saveInto: a!save( target: ri!DSR_Timesheet.totalhours, value: sum(property(ri!timeline, "noofhours", 0)) ) )
Thanks for the answer peter, issue resolved.