Skip to main content
saurabhs0003
September 15, 2021
Question

Showing data in a grid

  • September 15, 2021
  • 3 replies
  • 0 views

Hi All, I have a requirment in my Interface that I am displaying the data in a grid through Expression rule . But in that there are some fields like say isA , isB and isC  with 0 and 1 value in database . But now the The condition is that I have to show the Yes , No , N/A in the grid instead of 0 and 1 on some conditions like

1. If isA is 0 in database  then isB and isC should be N/A in the grid and isA will No in the grid

2. If isA is 1 and isB is 0 in the database then isA will be yes , isB will No  and isC is N/A in the Grid

3. If isA is 1 and isB is 1 in the database then isA will be yes , isB will be Yes and isC yes/No based on value in database

Thanks in advance

    3 replies

    acaciob0002
    September 16, 2021

    Hi [mention:80250d04270e449fb1b32cc9aa5c1ef4:e9ed411860ed4f2ba0265705b8793d05]

    You will be able to achieve your solution in many different ways, please refer to the code below as it can give you some ideas, and than you can improve and adjust for your scenario.

    a!localVariables(
      local!dataFromDb: {
        a!map(scenario: 1, isA: 0, isB: 1, isC: 1, colour: "#3498db"),
        a!map(scenario: 2, isA: 1, isB: 0, isC: 1, colour: "#2ecc71"),
        a!map(scenario: 3, isA: 1, isB: 1, isC: 0, colour: "#2980b9")
      },
      local!selectedData:null,
      local!convertedData: a!refreshVariable(
        value: if(
          isnull(local!selectedData),
          null,
          if(
          index(local!selectedData,"isA",null)=false(),  
          a!update(local!selectedData,{"isA","isB","isC"},{"Yes","N/A","N/A"}),
          if(
            index(local!selectedData,"isB",null)=true(),
            a!update(local!selectedData,{"isA","isB","isC"},{"Yes","Yes",if(index(local!selectedData,"isC",null),"Yes","No")}),
            a!update(local!selectedData,{"isA","isB","isC"},{"Yes","No","N/A"}),
          )
        )
        ),
        refreshOnReferencedVarChange: true()
      ),
      {
        a!columnsLayout(
          alignVertical: "MIDDLE",
          columns: a!forEach(
            items: local!dataFromDb,
            expression: {
              a!columnLayout(
                contents: a!cardLayout(
                  style: fv!item.colour,
                  contents: a!richTextDisplayField(
                    align: "CENTER",
                    value: a!richTextItem(
                      color: "#FFF",
                     text: concat("Scenario: ",fv!item.scenario)
                    )
                  ),
                  link: a!dynamicLink(
                    value: fv!item,
                    saveInto: a!save(local!selectedData,save!value)
                  )
                )
              )
            }
          )
        ),
       a!gridLayout(
         label: "Community Question",
         headerCells: a!forEach(
           items: {"isA","isB","isC"},
           expression:  a!gridLayoutHeaderCell(
             label: fv!item,
             align: "CENTER"
           ),
         ),
         rows: a!gridRowLayout(
          contents: {
           a!textField(
             align: "CENTER",
             readOnly: true(),
             value: index(local!convertedData,"isA",null)
           ),
           a!textField(
             align: "CENTER",
             readOnly: true(),
             value: index(local!convertedData,"isB",null)
           ),
           a!textField(
             align: "CENTER",
             readOnly: true(),
             value: index(local!convertedData,"isC",null)
           )
           }
         )
       
        
       )
      }
      
    )

    I hope that helps,

    Regards,

    Acacio B

    saurabhs0003
    September 16, 2021

    Hi Acacio,

    I have to show the respective yes , no , n/a in respective columns in the grid . Will it work for the same

    acaciob0002
    September 16, 2021

    Hey Saurabh,

    Yes it will work, if you use the code that I send as an example you can see that the values are changing in the grid according to the scenario that you select, in your case you just need to to the data transformation.

    If you have more doubts of how to adjust the example to your code, perhaps you can share part of your code and we can try to help.

    Regards,

    Acacio B