Class ReportDataScope
- Namespace
- DocWright.Reporting.Expressions
- Assembly
- DocWright.Reporting.dll
The data an expression is evaluated against — one row, and the scopes that contain it — as a report processor presents it to the expression engine.
public abstract class ReportDataScope
- Inheritance
-
ReportDataScope
- Inherited Members
Remarks
Who implements this. The report processor (Phase 54c) implements it over its grouped instance tree; tests implement it over a list of rows. The engine only ever asks questions, and each member's default answer is "this scope has no such thing", which the engine reports with a diagnostic code rather than inventing a value.
Why an abstract class and not an interface. Members can be added to it in a later version without breaking an implementer; an interface on netstandard2.0 cannot grow.
Scope names. A scope name is a dataset, a data region or a group, as the report
names it; null means the scope the expression is written in. Every method that takes a scope
returns null when the name does not denote a scope containing this row — which the engine
reports as DXP9107 — and an empty result when the scope exists and is empty.
Constructors
- ReportDataScope()
Initializes the base class.
Properties
- AggregateStringComparer
Gets the string comparison
MinandMaxuse, or null for the default: the culture's comparison, ignoring case, accents, kana type and width.
Methods
- GetDataSetRows(string)
Gets every row of a dataset, for
Lookup,LookupSetandMultiLookup.
- GetField(string)
Looks up a field of the current row.
- GetLevel(string?)
Answers
Level: the zero-based depth in a recursive hierarchy.
- GetRowNumber(string?)
Gets the current row's one-based number within a scope, for
RowNumber. Outside any detail row this is the number of rows in the scope, which is what the reference returns (measured).
- GetRows(string?, bool)
Gets the rows an aggregate reads: every row of
scopeNamethat contains this one, or — whenrecursiveis true — of this instance and its descendants in a recursive hierarchy.
- GetRowsThroughCurrent(string?)
Gets the rows of
scopeNamefrom its first row up to and including the current one, forRunningValue.
- GetScopeInstances(string?, string?)
Gets the instances of the current scope — or of
innerScopeName— that lie withinouterScopeName, for a nested aggregate such asMax(Sum(Fields!Sales.Value), "Tablix1"): the innerSumis evaluated once per instance returned here.
- IsInScope(string)
Answers
InScope.
- TryGetCurrentItemValue(out object?)
Gets the value of the report item the expression belongs to, for
Me.Value.
- TryGetPreviousRow(string?, out ReportDataScope?)
Gets the row before the current one in a scope, for
Previous.
- TryGetReportItemValue(string, out object?)
Gets the value of a report item in scope, for
ReportItems!Name.Value.
- TryGetVariable(string, out object?)
Gets a variable in scope, for
Variables!Name.Value.