Fail to sort data

Hi All,

We're facing while using Sail Grid. Please find problem explained below.Any help is much appreciated.

We're fetching the data using query record and that data is displayed in a Grid component.

Now when we try to sort the grid data by clicking on a column header then it fails to sort the data for that column and it remains sorted on the default sort info that we provided at the time of fetching data from query record.


For your reference please find sample code below. Many Thanks in advance.


=load(
local!pagingInfo: topaginginfo(1, 10),
with(
local!data: =queryrecord(
recordType: cons!COMPANY_AUDIT_LOG,
query: 'type!{www.appian.com/.../2009}Query'(
'selection|aggregation': 'type!{www.appian.com/.../2009}Aggregation'(
columns: {
'type!{www.appian.com/.../2009}AggregationColumn'(
field: "full_name",
alias: "label",
visible: true,
...

OriginalPostID-91648

OriginalPostID-91648

  Discussion posts and replies are publicly visible

Parents
  • Hi skumar, please find the code below. Its tested with our sample record.
    load(
    local!pagingInfo: topaginginfo(1,10),
    local!querydata:queryrecord(
    recordType: cons!COMPANY_AUDIT_LOG,
              query: 'type!{www.appian.com/.../2009}Query'(
              'selection|aggregation': 'type!{www.appian.com/.../2009}Aggregation'(
              columns: {
              'type!{www.appian.com/.../2009}AggregationColumn'(
              field: "full_name",
              alias: "label",
              visible: true,
              isGrouping: true
              ),
              'type!{www.appian.com/.../2009}AggregationColumn'(
              field: "no_of_company_count",
              alias: "data",
              visible: true,
              aggregationFunction: "SUM"
              )
              }
              ),          
              pagingInfo:
              a!pagingInfo(
              startIndex: 1,
              batchSize: -1,
              sort: a!sortInfo(
              field: "label",
              ascending: true
              )
              )
              )
              ),
              with(
              local!data:todatasubset(local!querydata.data,local!pagingInfo),                    
    a!formLayoutColumns(                               
              instructions: "In this report we can view the # of companies created by the Analyst(s) during a Year / Month / Week in tabular as well as graphical view",                              
              columns:{                                                  
              a!columnLayout(                                                  
              contents: {                                                            
              a!sectionLayout(                                                                      
              firstColumnContents: {                                                                                                    
              'type!{www.appian.com/.../2009}Grid'(                                                                                                              
              totalCount:local!data.totalCount,                                                                                                              
              instructions: "Test",                                                                                                              
              columns: {                                                                                                              
              'type!{www.appian.com/.../2009}GridTextColumn'(                                                                                                                                            
              label: "Analyst",                                                                                                                                                      
              data: index(local!data.data, "label",0),                                                                                                                                                      
              field: "label"                                                                                                                                            
              ),                                                                                                                                            
              'type!{www.appian.com/.../2009}GridTextColumn'(                                                                                                                                                      
              label: "# of Companies Created",                                                                                                                                                      
              data: index(local!data.data, "data",0),                                                                                                                                                      
              field: "data"                                                                                                                                            
              )                                                                                                                                  
              },                                                                                                    
              value: local!pagingInfo,                                                                                                              
              saveInto: local!pagingInfo                                                                                                    
              )                                                                      
              }                                                            
              )                                                  
              }                                        
              )                              
              }          
              )
              )
              )
    One more suggestion is to make use of common objects which makes your code look clean and easier to debug.
    Also please make a note that there is no need to handle the null data based on the totalCount using if condition. Go through the index() function which handles both empty and non-empty dataset. Let me know if you have any follow-up questions
Reply
  • Hi skumar, please find the code below. Its tested with our sample record.
    load(
    local!pagingInfo: topaginginfo(1,10),
    local!querydata:queryrecord(
    recordType: cons!COMPANY_AUDIT_LOG,
              query: 'type!{www.appian.com/.../2009}Query'(
              'selection|aggregation': 'type!{www.appian.com/.../2009}Aggregation'(
              columns: {
              'type!{www.appian.com/.../2009}AggregationColumn'(
              field: "full_name",
              alias: "label",
              visible: true,
              isGrouping: true
              ),
              'type!{www.appian.com/.../2009}AggregationColumn'(
              field: "no_of_company_count",
              alias: "data",
              visible: true,
              aggregationFunction: "SUM"
              )
              }
              ),          
              pagingInfo:
              a!pagingInfo(
              startIndex: 1,
              batchSize: -1,
              sort: a!sortInfo(
              field: "label",
              ascending: true
              )
              )
              )
              ),
              with(
              local!data:todatasubset(local!querydata.data,local!pagingInfo),                    
    a!formLayoutColumns(                               
              instructions: "In this report we can view the # of companies created by the Analyst(s) during a Year / Month / Week in tabular as well as graphical view",                              
              columns:{                                                  
              a!columnLayout(                                                  
              contents: {                                                            
              a!sectionLayout(                                                                      
              firstColumnContents: {                                                                                                    
              'type!{www.appian.com/.../2009}Grid'(                                                                                                              
              totalCount:local!data.totalCount,                                                                                                              
              instructions: "Test",                                                                                                              
              columns: {                                                                                                              
              'type!{www.appian.com/.../2009}GridTextColumn'(                                                                                                                                            
              label: "Analyst",                                                                                                                                                      
              data: index(local!data.data, "label",0),                                                                                                                                                      
              field: "label"                                                                                                                                            
              ),                                                                                                                                            
              'type!{www.appian.com/.../2009}GridTextColumn'(                                                                                                                                                      
              label: "# of Companies Created",                                                                                                                                                      
              data: index(local!data.data, "data",0),                                                                                                                                                      
              field: "data"                                                                                                                                            
              )                                                                                                                                  
              },                                                                                                    
              value: local!pagingInfo,                                                                                                              
              saveInto: local!pagingInfo                                                                                                    
              )                                                                      
              }                                                            
              )                                                  
              }                                        
              )                              
              }          
              )
              )
              )
    One more suggestion is to make use of common objects which makes your code look clean and easier to debug.
    Also please make a note that there is no need to handle the null data based on the totalCount using if condition. Go through the index() function which handles both empty and non-empty dataset. Let me know if you have any follow-up questions
Children
No Data