Skip to main content
New Participant
October 24, 2022
Question

Editable grid

  • October 24, 2022
  • 5 replies
  • 3 views

Hi, After adding For Each function to rows in my editable grid, the rows not showing in UI. How to make my rows visible?.

    5 replies

    stefanhelzle0001
    Brainy
    October 24, 2022

    Without any code snippet or screenshot, any tip would be just guesswork. Mode details please.

    Did you follow any of the interface patterns like this one: https://docs.appian.com/suite/help/22.3/recipe-add-edit-and-remove-data-in-an-inline-editable-grid.html

    New Participant
    October 24, 2022

    a!localVariables(
      local!newGridRow: 'type!{urn:com:appian:types:AIP}AIP_items'(),
      a!formLayout(
        label: "Purchase Request",
        contents: {
          a!sectionLayout(
            contents: {
              a!gridLayout(
                label: "Items",
                labelPosition: "ABOVE",
                headerCells: {
                  a!gridLayoutHeaderCell(label: "Description"),
                  a!gridLayoutHeaderCell(label: "Category"),
                  a!gridLayoutHeaderCell(label: "Quantity"),
                  a!gridLayoutHeaderCell(label: "Unit Price"),
                  a!gridLayoutHeaderCell(label: "Amount"),
                  a!gridLayoutHeaderCell(label: "")
                },
                columnConfigs: {
                  a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight: 3),
                  a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight: 3),
                  a!gridLayoutColumnConfig(width: "DISTRIBUTE"),
                  a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight: 2),
                  a!gridLayoutColumnConfig(width: "DISTRIBUTE", weight: 2),
                  a!gridLayoutColumnConfig(width: "ICON")
                },
                rows: {
                  a!forEach(
                    items: ri!items,
                    expression: a!gridRowLayout(
                      contents: {
                        a!textField(
                          label: "Description",
                          labelPosition: "ABOVE",
                          value: fv!item.description,
                          saveInto: fv!item.description,
                          refreshAfter: "UNFOCUS",
                          required: true,
                          validations: {}
                        ),
                        a!dropdownField(
                          label: "Category",
                          labelPosition: "ABOVE",
                          placeholder: "--- Select a Value ---",
                          choiceLabels: cons!AIP_PURCHASE_REQUEST_CATEGORIES,
                          choiceValues: cons!AIP_PURCHASE_REQUEST_CATEGORIES,
                          value: fv!item.category,
                          saveInto: fv!item.category,
                          searchDisplay: "AUTO",
                          required: true,
                          validations: {}
                        ),
                        a!integerField(
                          label: "Quantity",
                          labelPosition: "ABOVE",
                          value: fv!item.quantity,
                          saveInto: fv!item.quantity,
                          refreshAfter: "UNFOCUS",
                          required: true,
                          validations: {}
                        ),
                        a!floatingPointField(
                          label: "Unit Price",
                          labelPosition: "ABOVE",
                          value: fv!item.unitPrice,
                          saveInto: fv!item.unitPrice,
                          refreshAfter: "UNFOCUS",
                          required: true,
                          validations: {}
                        ),
                        a!textField(
                          label: "Amount",
                          labelPosition: "ABOVE",
                          value: if(
                            or(
                              isnull(fv!item.quantity),
                              isnull(fv!item.unitPrice)
                            ),
                            0,
                            tointeger(fv!item.quantity) * todecimal(fv!item.unitPrice)
                          ),
                          saveInto: fv!item.amount,
                          refreshAfter: "UNFOCUS",
                          required: true,
                          validations: {}
                        ),
                        a!richTextDisplayField(
                          labelPosition: "ABOVE",
                          value: {
                            a!richTextIcon(
                              icon: "times",
                              link: a!dynamicLink(
                                label: "Dynamic Link",
                                saveInto: {
                                  a!save(ri!items, remove(ri!items, fv!index))
                                }
                              ),
                              color: "NEGATIVE"
                            )
                          }
                        )
                      },
                      selectionDisabled: false
                    )
                  )
                },
                selectionSaveInto: {},
                addRowLink: a!dynamicLink(
                  label: "Add New Item",
                  saveInto: {
                    a!save(
                      ri!items,
                      append(ri!items, local!newGridRow)
                    )
                  }
                ),
                validations: {},
                shadeAlternateRows: true
              )
            }
          )
        },
        buttons: a!buttonLayout(
          primaryButtons: {
            a!buttonWidget(
              label: "Submit",
              submit: true,
              style: "PRIMARY"
            )
          },
          secondaryButtons: {
            a!buttonWidget(
              label: "Cancel",
              value: true,
              saveInto: ri!cancel,
              submit: true,
              style: "NORMAL",
              validate: false
            )
          }
        )
      )
    )

    New Participant
    October 24, 2022

    My Ui will showing like this, but when i removed the a! foreach function it displays the rows.