Skip to main content
November 21, 2023
Question

How to Custom Picker Filter the Editable Interface

  • November 21, 2023
  • 2 replies
  • 0 views

When the screen loads Custom picker show load the Editable Interface. And while search example if searching any data from the grid it should return the respective row from editable grid

2 replies

stefanhelzle0001
Brainy
November 21, 2023

Can you elaborate?

November 21, 2023

a!localVariables(
  local!availableDataIndex,
  local!selectedDataIndex,
  local!availableList: rule!example().data,
  local!selectedList,
  
  local!pickedUser,
  {
    a!sectionLayout(
      contents: {
        a!columnsLayout(
          columns: {
            a!columnLayout(
              contents: {
                a!cardLayout(
                  contents: {
                    a!pickerFieldCustom(
                      label: "Custom Picker",
                      labelPosition: "ABOVE",
                      suggestFunction: rule!DWS_Sample1(
                        filter: _,
                        labels:local!availableList['recordType!{63a0b9c7-fe03-4c99-8667-a1d9a63acf3f}example.fields.{e171b194-fd76-4716-b949-b321110771ea}userName'],
                        identifiers: local!availableList['recordType!{63a0b9c7-fe03-4c99-8667-a1d9a63acf3f}example.fields.{27db380a-2a73-451f-9a40-96a5c543624b}id']
                        
                      ),
                      selectedLabels: a!forEach(
                        items: local!pickedUser,
                        expression: index(local!availableList['recordType!{63a0b9c7-fe03-4c99-8667-a1d9a63acf3f}example.fields.{e171b194-fd76-4716-b949-b321110771ea}userName'], wherecontains(fv!item, local!availableList['recordType!{63a0b9c7-fe03-4c99-8667-a1d9a63acf3f}DIL Users.fields.{27db380a-2a73-451f-9a40-96a5c543624b}id']))
                      ),
                      value: local!pickedUser,
                      saveInto: a!save(local!pickedUser, union(save!value, save!value)),
                      validations: {}
                    ),
                    a!gridLayout(
                      headerCells: { "" },
                      rows: a!forEach(
                        local!availableList,
                        a!gridRowLayout(
                          id: fv!index,
                          contents: {
                            a!textField(
                              value: fv!item['recordType!{63a0b9c7-fe03-4c99-8667-a1d9a63acf3f}example.fields.{e171b194-fd76-4716-b949-b321110771ea}userName'],
                              readOnly: true()
                            )
                          }
                        )
                      ),
                      selectionValue: local!availableDataIndex,
                      selectionSaveInto:local!availableDataIndex,
                      selectable: true(),
                      selectionStyle: "ROW_HIGHLIGHT",
                      validations: {}
                    )
                    },
                  height: "MEDIUM_PLUS",
                  marginBelow: "STANDARD"
                )
              },
              width: "MEDIUM"
            ),
            a!columnLayout(
              contents: {
                a!buttonArrayLayout(
                  buttons: {
                    a!buttonWidget(
                      label: "Add Selected",
                      icon: if(
                        a!isPageWidth("PHONE"),
                        "chevron-down",
                        "chevron-right"
                      ),
                      saveInto: {
                        /* Add chosen available items to selected list */
                        a!save(
                          local!selectedList,
                          append(
                            local!selectedList,
                            index(
                              local!availableList,
                              local!availableDataIndex,
                              {}
                            )
                          )
                        ),
                        /* Remove from available list */
                        a!save(
                          local!availableList,
                          remove(
                            local!availableList,
                            local!availableDataIndex
                          )
                        ),
                        /* Clear out choices */
                        a!save(local!availableDataIndex, null)
                      },
                      width: "FILL",
                      style: "SECONDARY",
                      disabled: or(
                        a!isNullOrEmpty(local!availableDataIndex),
                        count(local!availableList)=0
                      )
                    ),
                    a!buttonWidget(
                      label: "Add All",
                      icon: "plus",
                      saveInto: {
                        /* Add all available items to selected list */
                        a!save(local!selectedList,append(local!selectedList,
                        local!availableList)),
                        /* Clear available list */
                        a!save(local!availableList, {}),
                        /* Clear out choices */
                        a!save(local!availableDataIndex, null)
                      },
                      width: "FILL",
                      style: "SECONDARY",
                      disabled: count(local!availableList)=0
                      
                    )
                  },
                  align: "START",
                  marginBelow: "EVEN_MORE"
                ),
                a!buttonArrayLayout(
                  buttons: {
                    a!buttonWidget(
                      label: "Remove Selected",
                      icon: if(
                        a!isPageWidth("PHONE"),
                        "chevron-up",
                        "chevron-left"
                      ),
                      saveInto: {
                        /* Add chosen selected items to available list */
                        a!save(
                          local!availableList,
                          append(
                            local!availableList,
                            index(
                              local!selectedList,
                              local!selectedDataIndex,
                              {}
                            )
                          )
                        ),
                        /* Remove from selected list */
                        a!save(
                          local!selectedList,
                          remove(
                            local!selectedList,
                            local!selectedDataIndex
                          )
                        ),
                        /* Clear out choices */
                        a!save(local!selectedDataIndex, null)
                      },
                      width: "FILL",
                      style: "SECONDARY",
                      disabled: or(
                        a!isNullOrEmpty(local!selectedDataIndex),
                        length(local!selectedList)=0
                      )
                    ),
                    a!buttonWidget(
                      label: "Remove All",
                      icon: "times",
                      saveInto: {
                        /* Add all selected items to available list */
                        a!save(local!availableList,append(local!availableList,
                        local!selectedList)),
                        /* Clear selected list */
                        a!save(local!selectedList, {}),
                        /* Clear out choices */
                        a!save(local!selectedDataIndex, null)
                      },
                      width: "FILL",
                      style: "SECONDARY",
                      disabled: count(local!selectedList)=0
                    )
                  },
                  align: "START"
                )
              },
              width: "NARROW"
            ),
            a!columnLayout(
              contents: {
                a!cardLayout(
                  contents: {
                    a!pickerFieldCustom(
                      label: "Custom Picker",
                      labelPosition: "ABOVE",
                      saveInto: {},
                      validations: {}
                    ),
                   
                    a!gridLayout(
                      emptyGridMessage: " ",
                      headerCells: { "" },
                      rows: a!forEach(
                        local!selectedList,
                        a!gridRowLayout(
                          id: fv!index,
                          contents: {
                            a!textField(
                              value:  fv!item['recordType!{63a0b9c7-fe03-4c99-8667-a1d9a63acf3f}examples.fields.{e171b194-fd76-4716-b949-b321110771ea}userName'],
                              readOnly: true()
                            )
                          }
                        )
                      ),
                      selectionValue: local!selectedDataIndex,
                      selectionSaveInto:local!selectedDataIndex,
                      selectable: true(),
                      selectionStyle: "ROW_HIGHLIGHT",
                      validations: {}
                    )
                    
                  },
                  height: "MEDIUM_PLUS",
                  marginBelow: "STANDARD"
                )
              },
              width: "MEDIUM"
            ),
            a!columnLayout(contents: {})
          },
          alignVertical: "MIDDLE"
        )
      }
    )
  }
)

When searching for the data in the picker field then it should return those filtered data from the editable grid below