So I have a read-only grid displayed on a site through an interface. The summary is also displayed through an interface, and the summary of a record is pictured below.
What I want to do is add a button, going to the next or previous record so that the user doesn't have to click the home button in the top-left.
I found this thread but wasn't sure how to apply it to my situation (not completely sure how to apply a!query):
community.appian.com/.../access-to-previous-and-next-records
Discussion posts and replies are publicly visible
Here's the entire code, now I'm getting an error about line 47 missing a right parenthesis, presumably because the section layout isn't closed properly somewhere
{ a!localVariables( /* the following 2 local variables would be loaded by queries given the current record ID */ local!previousNavId: 1234567896, local!nextNavId: 1234567894, a!sectionLayout( contents: { a!columnsLayout( alignVertical: "TOP", columns: { /* left bar */ a!columnLayout( width: "EXTRA_NARROW", contents: { a!cardLayout( height: "MEDIUM", showShadow: true(), tooltip: "Navigate to Previous Record", link: a!recordLink( recordType: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor', identifier: local!previousNavId, openLinkIn: "SAME_TAB", showWhen: a!isNotNullOrEmpty(local!previousNavId) ), contents: { a!richTextDisplayField( value: a!richTextItem( size: "MEDIUM", text: { char(10), char(10), char(10), a!richTextIcon(icon: "arrow-left") } ) ) } ) } ) } ), } ) a!sectionLayout( label: "Additional Contractor Information", labelIcon: "info-circle", labelSize: "EXTRA_SMALL", labelHeadingTag: "H2", labelColor: "STANDARD", contents: { a!columnsLayout( columns: { a!columnLayout( contents: { a!sideBySideLayout( items: { a!sideBySideItem( item: a!textField( label: "Name:", labelPosition: "ABOVE", value: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{6576c50e-e121-46f9-ac66-80f275bdd60b}firstName' & " " & 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{9ad498eb-f112-4373-9f83-98d98fe98f1d}lastName', readOnly: true, align: "LEFT", inputPurpose: "NAME" ), width: "AUTO" ), a!sideBySideItem( item: a!textField( label: "Phone Number:", labelPosition: "ABOVE", value: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{f4c57b1e-a70b-4b5c-abfd-91fbfa77c38f}conPhoneNumber', readOnly: true, inputPurpose: "PHONE_NUMBER" ), width: "AUTO" ), a!sideBySideItem( item: a!textField( label: "Email Address:", labelPosition: "ABOVE", value: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{2952c2ae-aeb6-47f0-9655-0628f009e981}contractorEmail', readOnly: true, align: "LEFT", inputPurpose: "EMAIL" ), width: "AUTO" ), a!sideBySideItem( item: a!textField( label: "Contractor Department:", labelPosition: "ABOVE", value: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{4b272b70-791f-4c19-a831-736b78fbd6b0}department', readOnly: true ), width: "AUTO" ) }, alignVertical: "TOP", spacing: "SPARSE", marginAbove: "LESS" ), a!sectionLayout( label: "", contents: { a!sideBySideLayout( items: { a!sideBySideItem( item: a!textField( label: "Axiom Manager Name:", labelPosition: "ABOVE", value: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{acd634c0-572b-45e4-9327-9a76ffa8ed82}mngrName', readOnly: true ), width: "AUTO" ), a!sideBySideItem( item: a!textField( label: "Axiom Manager Email:", labelPosition: "ABOVE", value: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{3e72a18f-c6b9-4223-a4e9-37631f23a060}mngrEmail', readOnly: true ), width: "AUTO" ), a!sideBySideItem( item: a!textField( label: "Company Name:", labelPosition: "ABOVE", value: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{2476f354-8a05-4418-a463-61d9127ee99d}conCompanyName', readOnly: true, align: "LEFT" ), width: "AUTO" ), a!sideBySideItem( item: a!textField( label: "Department Access:", labelPosition: "ABOVE", value: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{67465a62-d8e1-45b8-8c26-42d9daae509b}deptAcc1', readOnly: true ), width: "AUTO" ) }, alignVertical: "TOP", spacing: "SPARSE", marginAbove: "NONE" ) }, divider: "ABOVE", dividerWeight: "THIN", marginAbove: "NONE", marginBelow: "NONE" ), a!sectionLayout( label: "", contents: { a!sideBySideLayout( items: { a!sideBySideItem( item: a!textField( label: "AxStation Access:", labelPosition: "ABOVE", value: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{75ea328f-e61b-49dc-a114-24fbe17510c3}deptAcc2', saveInto: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{75ea328f-e61b-49dc-a114-24fbe17510c3}deptAcc2', readOnly: true ), width: "4X" ), a!sideBySideItem( item: a!textField( label: "AxEVA Access:", labelPosition: "ABOVE", value: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{2e1ef0ce-e242-44dc-997b-bb9124d59ef8}deptAcc3', readOnly: true ), width: "4X" ), a!sideBySideItem( item: a!textField( label: "Project Name:", labelPosition: "ABOVE", value: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{797f8093-85fb-4e18-b4b9-e5e85a7ccbe7}projName', saveInto: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{797f8093-85fb-4e18-b4b9-e5e85a7ccbe7}projName', refreshAfter: "UNFOCUS", readOnly: true, validations: {}, align: "LEFT" ), width: "4X" ), a!sideBySideItem( item: a!dateField( label: "Start Date:", labelPosition: "ABOVE", value: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{74bb741e-33e8-4a03-b7d2-cb7266951563}startDate', saveInto: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{74bb741e-33e8-4a03-b7d2-cb7266951563}startDate', readOnly: true, validations: {}, align: "LEFT" ), width: "MINIMIZE" ), a!sideBySideItem( item: a!dateField( label: "End Date:", labelPosition: "ABOVE", value: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{cd408962-3380-4ac9-b6a5-fc87f4f8e8a3}endDate', saveInto: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{cd408962-3380-4ac9-b6a5-fc87f4f8e8a3}endDate', readOnly: true, validations: {}, align: "LEFT" ), width: "MINIMIZE" ) }, alignVertical: "TOP", spacing: "SPARSE", marginAbove: "NONE" ), a!sectionLayout( label: "", contents: { a!sideBySideLayout( items: { a!sideBySideItem( item: a!textField( label: "Jama Access:", labelPosition: "ABOVE", value: ri!record['recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{cd8c4d85-bd9b-44e2-a2f0-60045bfdd5ed}JamaAccess'], saveInto: {}, refreshAfter: "UNFOCUS", readOnly: true, validations: {} ), width: "5X" ), a!sideBySideItem( item: a!textField( label: "Jira Access:", labelPosition: "ABOVE", value: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{bed01faf-582d-4cad-8429-a66c4e4dcf05}jiraAccess', saveInto: {}, refreshAfter: "UNFOCUS", readOnly: true, validations: {} ), width: "5X" ), a!sideBySideItem( item: a!textField( label: "Confluence Access:", labelPosition: "ABOVE", value: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor.fields.{46fba2da-0023-48c5-aba6-5b43e4743aa1}conAccess', saveInto: {}, refreshAfter: "UNFOCUS", readOnly: true, validations: {} ), width: "10X" ) }, alignVertical: "TOP", spacing: "STANDARD", marginAbove: "EVEN_LESS" ), a!sideBySideLayout( items: { a!sideBySideItem( item: a!linkField( label: "", labelPosition: "COLLAPSED", links: { a!recordLink( label: "Next", recordType: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor', identifier: rule!DS_NextID(), openLinkIn: "SAME_TAB" ) } ), width: "MINIMIZE" ) }, alignVertical: "TOP", spacing: "STANDARD", marginAbove: "STANDARD" ) }, divider: "ABOVE" ) }, divider: "ABOVE", dividerWeight: "THIN", marginAbove: "NONE", marginBelow: "NONE" ) }, width: "WIDE", showWhen: true ) }, alignVertical: "TOP", marginAbove: "NONE", marginBelow: "NONE", spacing: "SPARSE", showDividers: false ) }, divider: "ABOVE", marginAbove: "EVEN_LESS", marginBelow: "NONE" ), /* right bar */ a!columnLayout( width: "EXTRA_NARROW", contents: { a!cardLayout( height: "MEDIUM", showShadow: true(), tooltip: "Navigate to Next Record", link: a!recordLink( recordType: 'recordType!{d327a5dc-18d4-4ffd-8bdf-6a22b134677f}DS Contractor', identifier: local!nextNavId, openLinkIn: "SAME_TAB", showWhen: a!isNotNullOrEmpty(local!nextNavId) ), contents: { a!richTextDisplayField( value: a!richTextItem( size: "MEDIUM", text: { char(10), char(10), char(10), a!richTextIcon(icon: "arrow-right") } ) ) } ) } ) ) }
Mike Schmitt thanks for the tag! davinar9817 I approved your post. Sometimes our text repetition flag settings mistakenly get code snippets.
[clicks nonexistent "like button" ]
April Schuppel thanks! replies have still been kinda wonky but I appreciate it!
Mike Schmitt got everything to work and look pretty so I appreciate the help!
I got your newer replies in my inbox even though it looks like they got spam filtered again. i'll look at the code once i get a chance. my first hint as always though is to collapse expansive sections and look for patterns or areas where you have elements stacked or nested out-of-order, or other high-level syntax issues.
Such as: