Why is this so difficult to do (record set listing)?

Why is it so hard to create something like this in Appian?

Filed 1 Field 2
Checkbox Field1Value Field2Value
Checkbox Field1Value Field2Value
Checkbox Field1Value Field2Value
Checkbox Field1Value Field2Value
Checkbox Field1Value Field2Value
Checkbox Field1Value Field2Value

3/6 records selected

I can get the check boxes and the Field 1 and Field 2 in a table as well as the selected count.

What I can't seem to get the total record count.

  Discussion posts and replies are publicly visible

Parents Reply Children
  • Thank you for the offer, but do you have any step by step tutorials on how this can be done?
    I have found the tutorials docs.appian.com/.../Grid_Tutorial.html
    on how to create most of this type of interface, but I'm not getting the record count.

    Previously, some one on this site with a title of 'Certified Appian Developer' or something like that said something along the lines of 'Data Store Entity is the old style and should not be used'. 
    Maybe they were wrong in saying that, but before they said that I was trying things out with Data Store Entity and I was having issues with that as well.
    There appears to be two or more ways to query the data (expression rule, inline) with different data types (record type, data store entity) and some examples may not use the Appian Best Practices.

    Level one certified Appian, that can be accomplished with a good memory and studying, which may not translate into actual business solutions. 

    I find that in C# or Java (SpringBoot) or most other environments creating something like this can be done relatively easy, but you may need to know Razor or ThymeLeaf or go all out with React.JS.

  • 0
    Certified Lead Developer
    in reply to petel0001

    From my perspective, Appian is NOT a UI building toolkit. It is made to implement applications driven by business processes.

    Using it to built this kind of catch-all-super-dynamic interfaces takes a lot of experience and know how.

    If this is what you are looking for, I know how to do that:

  • +1
    Certified Associate Developer
    in reply to petel0001

    if you are looking for this ->

    a!localVariables(
      /*/make sure ri!data is notnull*/
      local!fields: a!keys(index(ri!data, 1, "")),
      local!selection,
      local!selectedRows,
      {
        a!gridField(
          label: "Performance Review Schedule",
          labelPosition: "ABOVE",
          data: ri!data,
          columns: {
            a!forEach(
              items: local!fields,
              expression: a!gridColumn(
                label: fv!item,
                value: index(fv!row, fv!item, "")
              )
            )
          },
          pagesize: 10,
          selectable: true,
          selectionValue: local!selection,
          selectionSaveInto: {
            local!selection,
            a!save(
              local!selectedRows,
              append(local!selectedRows, fv!selectedRows)
            ),
            a!save(
              local!selectedRows,
              difference(local!selectedRows, fv!deselectedRows)
            )
          }
        ),
        a!richTextDisplayField(
          labelPosition: "COLLAPSED",
          value: {
            a!richTextItem(
              text: if(
                a!isNullOrEmpty(local!selectedRows),
                "0/" & length(ri!data) & " records selected",
                length(local!selectedRows) & "/" & length(ri!data) & " records selected"
              )
            )
          }
        ),
        a!buttonArrayLayout(
          buttons: {
            a!buttonWidget(
              label: "Delete",
              icon: "trash-solid",
              style: "DESTRUCTIVE",
              disabled: a!isNullOrEmpty(local!selectedRows)/*saveInto: here is logic for delete*/
              
            ),
            a!buttonWidget(
              label: "seprate",
              icon: "code",
              style: "NORMAL",
              /*saveInto: here is logic for seprate*/
              showWhen: not(or(ri!isOnlyDelete)),
              disabled: a!isNullOrEmpty(local!selectedRows)
            )
          },
          align: "START"
        )
      }
    )