1"use strict";(globalThis.webpackChunkcheck_flow_docs||=[]).push([[7260],{4578(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"data-sets/views","title":"Views","description":"Views let you save a combination of filters, sorts and hidden columns so different templates can use different slices of the same Data Set.","source":"@site/docs/data-sets/views.md","sourceDirName":"data-sets","slug":"/data-sets/views","permalink":"/docs/data-sets/views","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedAt":1786528841000,"frontMatter":{"id":"views","title":"Views","sidebar_label":"Views","description":"Views let you save a combination of filters, sorts and hidden columns so different templates can use different slices of the same Data Set."},"sidebar":"docs","previous":{"title":"Records","permalink":"/docs/data-sets/records"},"next":{"title":"Import & Export CSV","permalink":"/docs/data-sets/import-export"}}');var i=n(4848),r=n(8453);const l={id:"views",title:"Views",sidebar_label:"Views",description:"Views let you save a combination of filters, sorts and hidden columns so different templates can use different slices of the same Data Set."},d=void 0,a={},o=[{value:"The All Records View",id:"the-all-records-view",level:2},{value:"Switching Between Views",id:"switching-between-views",level:2},{value:"Creating and Editing a View",id:"creating-and-editing-a-view",level:2},{value:"View Name",id:"view-name",level:3},{value:"Filters",id:"filters",level:3},{value:"Sorts",id:"sorts",level:3},{value:"Column Visibility",id:"column-visibility",level:3},{value:"Deleting a View",id:"deleting-a-view",level:2},{value:"Views and Template Links",id:"views-and-template-links",level:2},{value:"Related Pages",id:"related-pages",level:2}];function c(e){const t={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.strong,{children:"View"})," is a saved combination of ",(0,i.jsx)(t.strong,{children:"filters"}),", ",(0,i.jsx)(t.strong,{children:"sorts"})," and ",(0,i.jsx)(t.strong,{children:"column visibility"})," over a Data Set."]}),"\n",(0,i.jsxs)(t.p,{children:["Views are what make a single Data Set reusable across many templates. One ",(0,i.jsx)(t.code,{children:"Clients"})," Data Set can feed a control that offers ",(0,i.jsx)(t.em,{children:"Active Clients Only"}),", another that offers ",(0,i.jsx)(t.em,{children:"Clients in EMEA"}),", and a third that offers everything \u2014 without duplicating any data."]}),"\n",(0,i.jsxs)(t.p,{children:["Every Data Set can have up to ",(0,i.jsx)(t.strong,{children:"20 Views"}),"."]}),"\n",(0,i.jsx)(t.h2,{id:"the-all-records-view",children:"The All Records View"}),"\n",(0,i.jsxs)(t.p,{children:["Every Data Set starts with a default View called ",(0,i.jsx)(t.strong,{children:"All Records"}),". It shows every record, unsorted and with every column visible."]}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"All Records"})," is special:"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["It cannot be ",(0,i.jsx)(t.strong,{children:"renamed"}),"."]}),"\n",(0,i.jsxs)(t.li,{children:["It cannot be ",(0,i.jsx)(t.strong,{children:"deleted"}),"."]}),"\n",(0,i.jsx)(t.li,{children:"It can still have filters, sorts and hidden columns applied to it if you want to \u2014 it is only its name and its existence that are fixed."}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"switching-between-views",children:"Switching Between Views"}),"\n",(0,i.jsxs)(t.p,{children:["Each View has a tab above the grid. Click a tab to apply that View to the grid. The ",(0,i.jsx)(t.strong,{children:"+"})," tab creates a new View."]}),"\n",(0,i.jsxs)(t.p,{children:["The View you are looking at also determines what ",(0,i.jsx)(t.strong,{children:"Export CSV"})," downloads."]}),"\n",(0,i.jsx)(t.h2,{id:"creating-and-editing-a-view",children:"Creating and Editing a View"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["Click the ",(0,i.jsx)(t.strong,{children:"+"})," tab (to create) or ",(0,i.jsx)(t.strong,{children:"View Config"})," (to edit the current View)."]}),"\n",(0,i.jsx)(t.li,{children:"Configure the View in the panel that opens on the right."}),"\n",(0,i.jsxs)(t.li,{children:["Click ",(0,i.jsx)(t.strong,{children:"Save View"}),"."]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"view-name",children:"View Name"}),"\n",(0,i.jsxs)(t.p,{children:["Up to 200 characters. This is the name template authors will see when they pick a View to link to, so make it descriptive \u2014 ",(0,i.jsx)(t.em,{children:"Active Clients"}),", not ",(0,i.jsx)(t.em,{children:"View 2"}),"."]}),"\n",(0,i.jsx)(t.h3,{id:"filters",children:"Filters"}),"\n",(0,i.jsxs)(t.p,{children:["Click ",(0,i.jsx)(t.strong,{children:"Add filter"})," to add a row. Each row is a ",(0,i.jsx)(t.strong,{children:"field"}),", an ",(0,i.jsx)(t.strong,{children:"operator"}),", and a ",(0,i.jsx)(t.strong,{children:"value"}),"."]}),"\n",(0,i.jsxs)(t.p,{children:["Multiple filters are ",(0,i.jsx)(t.strong,{children:"combined with AND"})," \u2014 a record has to satisfy every filter to appear in the View."]}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Operator"}),(0,i.jsx)(t.th,{children:"Meaning"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"equals"})}),(0,i.jsx)(t.td,{children:"The value matches exactly"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"does not equal"})}),(0,i.jsx)(t.td,{children:"The value does not match"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"contains"})}),(0,i.jsx)(t.td,{children:"The value contains the text"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"does not contain"})}),(0,i.jsx)(t.td,{children:"The value does not contain the text"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"starts with"})}),(0,i.jsx)(t.td,{children:"The value begins with the text"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"ends with"})}),(0,i.jsx)(t.td,{children:"The value ends with the text"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:">"})}),(0,i.jsx)(t.td,{children:"Greater than"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:">="})}),(0,i.jsx)(t.td,{children:"Greater than or equal to"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"<"})}),(0,i.jsx)(t.td,{children:"Less than"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"<="})}),(0,i.jsx)(t.td,{children:"Less than or equal to"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"is empty"})}),(0,i.jsx)(t.td,{children:"The cell has no value"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"is not empty"})}),(0,i.jsx)(t.td,{children:"The cell has a value"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"is one of (comma list)"})}),(0,i.jsxs)(t.td,{children:["The value matches any item in a comma-separated list, e.g. ",(0,i.jsx)(t.code,{children:"USD,EUR,GBP"})]})]})]})]}),"\n",(0,i.jsxs)(t.p,{children:["Comparison operators (",(0,i.jsx)(t.code,{children:">"}),", ",(0,i.jsx)(t.code,{children:">="}),", ",(0,i.jsx)(t.code,{children:"<"}),", ",(0,i.jsx)(t.code,{children:"<="}),") compare ",(0,i.jsx)(t.strong,{children:"numerically"})," on Number fields and ",(0,i.jsx)(t.strong,{children:"chronologically"})," on Date fields. On other field types they compare as text."]}),"\n",(0,i.jsxs)(t.p,{children:["Filters on a ",(0,i.jsx)(t.strong,{children:"True/False"})," field are forgiving about how you write the value \u2014 ",(0,i.jsx)(t.code,{children:"yes"}),", ",(0,i.jsx)(t.code,{children:"1"})," and ",(0,i.jsx)(t.code,{children:"true"})," all match a stored ",(0,i.jsx)(t.code,{children:"true"}),"."]}),"\n",(0,i.jsx)(t.admonition,{type:"note",children:(0,i.jsx)(t.p,{children:"If a filter refers to a field that has since been deleted, the filter is quietly ignored rather than breaking the View."})}),"\n",(0,i.jsx)(t.h3,{id:"sorts",children:"Sorts"}),"\n",(0,i.jsxs)(t.p,{children:["Click ",(0,i.jsx)(t.strong,{children:"Add sort"})," to add a row. Each row is a ",(0,i.jsx)(t.strong,{children:"field"})," and a direction (",(0,i.jsx)(t.strong,{children:"Ascending"})," or ",(0,i.jsx)(t.strong,{children:"Descending"}),")."]}),"\n",(0,i.jsxs)(t.p,{children:["Sorts apply in the order they are listed \u2014 ",(0,i.jsx)(t.strong,{children:"top to bottom priority"}),". The first sort is the primary sort, the second breaks ties in the first, and so on."]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Number"})," fields sort numerically; ",(0,i.jsx)(t.strong,{children:"Date"})," fields sort chronologically. Anything that cannot be interpreted as a number or a date is sorted to the end."]}),"\n",(0,i.jsx)(t.li,{children:"With no sorts configured, records appear in the order they were created."}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"column-visibility",children:"Column Visibility"}),"\n",(0,i.jsx)(t.p,{children:"Tick or untick each field to control whether its column appears in the View."}),"\n",(0,i.jsx)(t.p,{children:"Hidden columns:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Are not shown in the grid for this Vie
1w."}),"\n",(0,i.jsxs)(t.li,{children:["Are ",(0,i.jsx)(t.strong,{children:"excluded from a CSV export"})," of this View."]}),"\n",(0,i.jsxs)(t.li,{children:["Are still available to ",(0,i.jsx)(t.a,{href:"/docs/data-sets/dynamic-values",children:"Data Set dynamic values"})," and to the record snapshot stored with an answer \u2014 hiding a column is a presentation choice, not a security boundary."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["You can also hide a column quickly using ",(0,i.jsx)(t.strong,{children:"Hide in this View"})," on the column header menu."]}),"\n",(0,i.jsx)(t.h2,{id:"deleting-a-view",children:"Deleting a View"}),"\n",(0,i.jsxs)(t.p,{children:["Open ",(0,i.jsx)(t.strong,{children:"View Config"})," for the View and click the red ",(0,i.jsx)(t.strong,{children:"trash"})," button."]}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:"Any Template controls linked to this View will show a warning until you re-point or remove them."}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Deleting a View that is in use is deliberately ",(0,i.jsx)(t.strong,{children:"allowed"}),". The links are left pointing at the missing View, and the template shows a warning banner when it is opened, prompting the author to re-point or remove the affected controls. See ",(0,i.jsx)(t.a,{href:"/docs/data-sets/linking-to-controls#warnings-about-broken-links",children:"Linking to Controls"}),"."]}),"\n",(0,i.jsx)(t.p,{children:"Checklists that are already running are unaffected \u2014 their answers are snapshots."}),"\n",(0,i.jsx)(t.admonition,{type:"tip",children:(0,i.jsxs)(t.p,{children:["Use ",(0,i.jsx)(t.strong,{children:"Connections"})," in the Data Set toolbar to check which templates use a View before you delete it."]})}),"\n",(0,i.jsx)(t.h2,{id:"views-and-template-links",children:"Views and Template Links"}),"\n",(0,i.jsxs)(t.p,{children:["When you link a control to a Data Set you always link it to a ",(0,i.jsx)(t.strong,{children:"specific View"}),", not to the Data Set as a whole. That is what lets the same Data Set drive several different option lists."]}),"\n",(0,i.jsx)(t.p,{children:"Two rules follow from this:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Editing a View's filters changes what appears in every control linked to it \u2014 including controls in checklists that are already running (for Dropdown and Multi-Choice)."}),"\n",(0,i.jsxs)(t.li,{children:["A linked ",(0,i.jsx)(t.strong,{children:"Table"})," control can only use a View that returns ",(0,i.jsx)(t.strong,{children:"500 records or fewer"}),", because it creates one table row per record."]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"related-pages",children:"Related Pages"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.a,{href:"/docs/data-sets/linking-to-controls",children:"Linking a Data Set to a Control"})," \u2014 a control links to a View, not to the whole Data Set."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.a,{href:"/docs/data-sets/records",children:"Records"})," \u2014 what a View filters."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.a,{href:"/docs/data-sets/fields",children:"Fields"})," \u2014 what a View can hide and sort by."]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8453(e,t,n){n.d(t,{R:()=>l,x:()=>d});var s=n(6540);const i={},r=s.createContext(i);function l(e){const t=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.