Hi All,
Below is the screenshot of requirement
a!localVariables( local!Employeefilterdata:"Employee_Id", /*local!Employeefilterdata: rule!ETA_filterEmployeesData(),*/ local!Employeedata: rule!ETA_employeeData(local!Employeefilterdata), local!deletedEmployeeIds, /* Create Pagination */ local!startIndex: 1, local!batchSize: 5, local!pagingInfo: a!pagingInfo( startIndex: local!startIndex, batchSize: local!batchSize ), local!datasubset: todatasubset( arrayToPage: local!Employeedata, pagingConfiguration: local!pagingInfo ), a!formLayout( label: " Employee Data", instructions: "Add, Update and Remove Employee Data", contents: { a!imageField( label: "", labelPosition: "ABOVE", images: {a!documentImage(cons!ETA_HRA)}, size: "FIT", isThumbnail: false, style: "STANDARD", marginAbove: "EVEN_LESS" ), a!dropdownField( label: "Selection", labelPosition: "ABOVE", placeholder: "--- Select a Value ---", choiceLabels: {cons!ETA_EMPLOYEE_CDT_DSE_POINTER}, choiceValues: {cons!ETA_EMPLOYEE_CDT_DSE_POINTER}, value: local!Employeefilterdata, saveInto: {local!Employeefilterdata}, searchDisplay: "AUTO", validations: {} ), a!gridLayout( totalCount: local!datasubset.totalCount, headerCells: { /*a!gridLayoutHeaderCell(label: "Employee Id" ),*/ a!gridLayoutHeaderCell(label: "Employee Name" ), a!gridLayoutHeaderCell(label: "DOB" ), a!gridLayoutHeaderCell(label: "Department" ), a!gridLayoutHeaderCell(label: "Designation" ), /*a!gridLayoutHeaderCell(label: "Phone Number" ),*/ a!gridLayoutHeaderCell(label: "Date Of Joining" ), a!gridLayoutHeaderCell(label: "Gender" ), a!gridLayoutHeaderCell(label: "Email Address" ), a!gridLayoutHeaderCell(label: "Status"), /*a!gridLayoutHeaderCell(label: "Start Date", align: "RIGHT" ),*/ /* For the "Remove" column */ a!gridLayoutHeaderCell(label: " " ) }, /* Only needed when some columns need to be narrow */ columnConfigs: { a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:3 ), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:3 ), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:3 ), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:3 ), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:3 ), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight:2 ), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight: 4), a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight: 3) }, /* * a!forEach() will take local!employee data and used that data to loop through an * expression that creates each row. * * When modifying the recipe to work with your data, you only need to change: * 1.) the number of fields in each row * 2.) the types of fields for each column (i.e. a!textField() for text data elements) * 3.) the fv!item elements. For example fv!item.firstName would change to fv!item.yourdata */ rows: a!forEach( items: local!datasubset, expression: a!gridRowLayout( id: fv!index, contents: { /*a!textField(*/ /* Labels are not visible in grid cells but are necessary to meet accessibility requirements */ /*label: "Employee Id " & fv!index,*/ /*value: fv!item.Employee_Id,*/ /*saveInto: fv!item.Employee_Id,*/ /*required: true*/ /*),*/ /* For the Employee Name Column*/ a!textField( /* Labels are not visible in grid cells but are necessary to meet accessibility requirements */ label: "Employee Name " & fv!index, value: fv!item.Employee_Name, saveInto: {fv!item.Employee_Name, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {Employee_Name: save!value} )) }, required: true ), /* For the DOB Column*/ a!dateField( label: "DOB " & fv!index, value: fv!item.DOB, saveInto: {fv!item.DOB, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {DOB: save!value} )) }, required:true ), /* For the Department Column*/ a!dropdownField( label: "Department " & fv!index, placeholder: "-- Select -- ", choiceLabels: {"Desktop Support", "Helpdesk","Systems Engineering","Network Engineering","Application Management"}, choiceValues: {"Desktop Support", "Helpdesk","Systems Engineering","Network Engineering","Application Management"}, value: fv!item.Department, saveInto: {fv!item.Department, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {Department: save!value} )) }, required:true ), /* For the Designation Column*/ a!dropdownField( label: "Designation " & fv!index, placeholder: "-- Select -- ", ChoiceLabels: {"Cloud Computing Engineer", "Network Specialist", "Support Specialist", "Database Administrator", "Information Technology Analyst", "Technology Leadership", "Security Specialist", "Software/Application Developer"}, choiceValues: {"Cloud Computing Engineer", "Network Specialist", "Support Specialist", "Database Administrator", "Information Technology Analyst", "Technology Leadership", "Security Specialist", "Software/Application Developer"}, value: fv!item.Designation, saveInto: {fv!item.Designation, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {Designation: save!value} )) }, required:true ), /* For the Phone Number Column*/ /*a!textField(*/ /*label: "Phone Number " & fv!index,*/ /*placeholder:"555-456-7890",*/ /*value: fv!item.Phone_Number,*/ /*saveInto: fv!item.Phone_Number*/ /*),*/ a!dateField( label: "Date Of Joining " & fv!index, value: fv!item.Date_Of_Joining, saveInto: {fv!item.Date_Of_Joining, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {Date_Of_Joining: save!value} )) }, required:true, align: "RIGHT" ), /* For the Gender Column*/ a!dropdownField( label: "Gender " & fv!index, placeholder: "-- Select -- ", choiceLabels: {"Male","Female"}, choiceValues: {"Male","Female"}, value: fv!item.Gender, saveInto: {fv!item.Gender, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {Gender: save!value} )) }, required:true ), /* For the Email Address Column*/ a!textField( label: "Email Address" & fv!index, value: fv!item.Email_Address, saveInto: {fv!item.Email_Address, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {Email_Address: save!value} )) }, required:true ), a!textField( label: "Status" &fv!index, value: cons!ETA_Status, saveInto:{cons!ETA_Status, a!save(local!Employeedata[fv!identifier], updatedictionary(local!Employeedata[fv!identifier], {Email_Address: save!value} )) }, required:true ), /* For the Removal Column*/ a!richTextDisplayField( label: "Action", value: a!richTextIcon( icon: "close", /*color: "STANDARD",*/ altText: "delete " & fv!index, caption: "Remove" & fv!item.Employee_Name, link: a!dynamicLink( value: fv!identifier, saveInto: { if( isnull( fv!identifier), {}, a!save( local!deletedEmployeeIds, append(local!deletedEmployeeIds, fv!item.Employee_Id)) ), a!save(ri!Value2, true), a!save(ri!EmployeeId, local!deletedEmployeeIds), a!save(local!Employeedata, remove(local!Employeedata, save!value)), disabled: contains(local!Employeedata, fv!index) } ), linkStyle: "STANDALONE", color: "NEGATIVE" ) ) } ) ), addRowlink: a!dynamicLink( label: "Add Employee", value: 'type!{urn:com:appian:types:ETA}ETA_EmployeeDt'(), saveInto: { a!save(local!Employeedata, append(local!Employeedata, save!value)) } ), shadeAlternateRows: true, rowHeader: 1 ), /* Pagination Functionality */ rule!ETA_customPagingForGrid( startIndex: local!startIndex, batchSize: local!batchSize, totalCount: local!datasubset.totalCount ) }, buttons: a!buttonLayout( primaryButtons: a!buttonWidget( label: "Submit", saveInto: a!save(ri!Item,local!Employeedata), submit: true, style: "PRIMARY" ), secondaryButtons: { a!buttonWidget( label: "Cancel", value: true, saveInto: {ri!Cancel}, submit: true, style: "NORMAL", validate: false ) } ) ) )
Discussion posts and replies are publicly visible
Hi,
When changing the status as disabled that the whole row will be disabled or only the status. Because the status is disabled but the whole row look like an editable. So what purpose are you using that logic?. Correct me if i am wrong
Hii,
yes , when changing the status as disable then only the status will be disable.