Next and Back Button for Records in a Read-Only Grid

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")
                            }
                          )
                        )
                      }
                    )
                  }
                  )
                )
                }
                
              
            
          

  • thanks for the tag! I approved your post. Sometimes our text repetition flag settings mistakenly get code snippets.

  • thanks! replies have still been kinda wonky but I appreciate it!

    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: