...
The following code sample displays to the end user a clickable 'Generic filter' link, which opens a FilterBuilder window.
paste-code-macro | ||
---|---|---|
| ||
def ctx = api.getDatamartContext() // without initial filter: def filterBuilder = api.datamartFilterBuilderUserEntry("Filter", "Transaction DM") def filter = Filter.equal("InvoiceDateYear", "2015") def filterBuilder = api.datamartFilterBuilderUserEntry("Filter", "Transaction DM", filter) api.trace("filterBuilder", null, filterBuilder) def dm = ctx.getDatamart("Transaction DM") def q = ctx.newQuery(dm) q.select("Country") q.select("CustomerID") q.select("ProductID") q.select("SUM(InvoicePrice)", "Revenue") q.select("SUM(Quantity)", "Volume") q.where(filterBuilder) def result = ctx.executeQuery(q) api.trace("Data", null, result?.data) return result |
The following sample shows 2 dim filters (without default values) to the end user.
The (optional) underlying generic filter (country == Italy) is hidden and not modifiable by the user.
Note that the dim filter fields are in a sub-section with the user entry's name as the title.
...
paste-code-macro | ||
---|---|---|
| ||
def ctx = api.getDatamartContext() def dimFilters = ["CustomerID", "ProductID"] def filter = Filter.equal("Country", "Italy") def filterBuilder = api.datamartFilterBuilderUserEntry("Italy", "Transaction DM", dimFilters, filter) api.trace("Filter", null, filterBuilder) def dm = ctx.getDatamart("Transaction DM") def q = ctx.newQuery(dm) q.select("Country") q.select("CustomerID") q.select("ProductID") q.select("SUM(InvoicePrice)", "Revenue") q.select("SUM(Quantity)", "Volume") q.where(filterBuilder) api.trace("Query", null, q) def result = ctx.executeQuery(q) api.trace("Data", null, result?.data) return result |
The following sample shows two dim filters with default values (CD-00155, MB-0005) to the end user.
The (optional) underlying generic filter (country == Germany) is hidden and not modifiable by the user (do not confuse with the section title, which is taken from the user entry name).
...
paste-code-macro | ||
---|---|---|
| ||
def ctx = api.getDatamartContext() def dimFilters = ["CustomerID": "CD-00155", "ProductID": "MB-0005"] def filter = Filter.equal("Country", "Germany") def filterBuilder = api.datamartFilterBuilderUserEntry("Germany", "Transaction DM", dimFilters, filter) api.trace("Filter", null, filterBuilder) def dm = ctx.getDatamart("Transaction DM") def q = ctx.newQuery(dm) q.select("Country") q.select("CustomerID")x§ q.select("ProductID") q.select("SUM(InvoicePrice)", "Revenue") q.select("SUM(Quantity)", "Volume") q.where(filterBuilder) api.trace("Query", null, q) def result = ctx.executeQuery(q) api.trace("Data", null, result?.data) return result |