The WebExcel function EvDRE Reference documentation

Product Version: 5.0 SP2 and 4.2 SP5(?) Document Version: 2.0 Last update: March 14, 2007

Written by: Piero Ferreri

OutlookSoft internal use only

1

Reference documentation

About this version

About this version
This document has been updated to include all the changes and enhancements added to the EVDRE function after its last incarnation in OutlookSoft 4.2 SP3 and 5.0 SP1. For a detailed listing of all such changes and enhancements see appendix II at the end of this document.

Introduction
EvDRE (“Data Range Expansion”) is a powerful and flexible WebExcel function that can be used to generate different kinds of OutlookSoft-based reports and schedules in Excel, all with one easy to use interface. EvDRE combines and extends the functionality of several other “EV” functions like EvGet, EvSnd, EvExp, EvNex, etc. While these older functions are still supported for backwards-compatibility of workbooks that some users may not want to re-design, we expect EvDRE to replace them in the greatest majority of situations. The main benefits of EvDRE are:

-

It is a do-it-all function, i.e. it can be used in many different situations, allowing the user to only learn one function to build all his reports and data entry schedules. In fact:

-

It can be used for both data retrieve as well as data send operations It permits to build static workbooks (without expansions) as well as dynamic workbooks (with expansions), or mixed-type workbooks, where some dimensions are defined statically (using hard coded members) and some others are dynamically expanded The expansions can be assigned to rows, columns, or both rows and columns simultaneously and it can also handle expansions across sheets It supports any number of nesting in the expansion of both rows and columns

-

It permits to build light workbooks that are faster to download and upload, because it does not require embedding a function in each sent or retrieved cell. It achieves this result by making an extensive use of cell ranges. A custom-built query optimization engine automatically decides the most efficient way to access the database to retrieve the requested data. In most cases this greatly improves the performance and scalability of reports and schedules, because, whenever possible, EvDRE reads base-level data directly from the SQL database, reducing the workload on the OLAP engine, and, when the use of SQL queries is not possible, it interrogates the OLAP cube using very efficient, dynamicallyoptimized MDX queries. It automatically builds in the worksheet a “control panel” that allows to easily identify all the parameters used by the function and their meaning It returns easy-to-understand error messages that allow the user to immediately isolate the source of a problem

-

-

OutlookSoft internal use only

2

Reference documentation

Quick start

Quick start
You do not need to have a deep knowledge of the features of EVDRE, to start using it. All you have to do, to build your first EVDRE report, is the following: • In a clean WebExcel worksheet enter this instruction in the top leftmost cell: =EVDRE( ) • • Then hit the REFRESH button. You will be prompted a dialog box that asks you what dimensions you want in columns, what dimensions you want in rows and a few more details about your report. You may just take what is proposed by default (or make some simple adjustment), then hit Ok. Your first report will be automatically built in front of you, nicely formatted and populated with real data.

(Now let’s get serious…)

The syntax
Here’s the syntax of the EVDRE function: = EVDRE ( “ApplicationName”, KeysRange [, ExpansionsRange]) The function uses two required and one optional parameter, as here below described: ApplicationName This is the name of the application from which to retrieve or where to send data. KeysRange This parameter points to a range of cells that in turn must contain the definitions of the “key ranges” of the report. The key ranges are other ranges that ultimately control the content of the individual cells of data. The keys range must have two columns and at least 6 rows, as later described. ExpansionsRange (optional) This is an optional range containing the definitions of the expansions (as many as desired) that must be performed by the function. This range, if existing, must have 7 rows and two (or more) columns, as later described. In the following example the ranges corresponding to the three EvDRE parameters are highlighted in yellow.

OutlookSoft internal use only

3

OutlookSoft internal use only 4 . The keys range The KeysRange is a range of 2 columns and 6 (or more) rows as shown in the following example (the header row shown here below in magenta is not part of the range itself. it is a string defining a range of cells. Using a reserved name for each range allows EvDRE to make the content of this grid non-position-sensitive. when not needed. This may allow sharing the same page key range with multiple instances of EvDRE within the same workbook. as later described. contribute to define the content of each data cell. i. not all of them must have a value: only the ColKeyRange and the RowKeyRange are mandatory.Reference documentation The keys range The EvDRE function and its associated parameter ranges do not need to be in the same sheet. The names are reserved keywords and must be spelled as shown here. and the ranges can be ordered in any sequence. It is only added for clarity): RANGE PageKeyRange ColKeyRange RowKeyRange CellKeyRange GetOnlyRange FormatRange VALUE Sheet1!$B$24:$B$31 Sheet1!$G$3 Sheet1!$E$5 The first column (the RANGE column) contains the name of the ranges. However. combined with some other WebExcel settings. All the ranges specified in the KeysRange. All the others may be left blank. if desired.e. or simply hide in some other sheet the most “technical” parts of the function. Currently all 6 ranges must be included in the KeysRange. The second column (the VALUE column) contains the definition of the range. they could all be scattered across different sheets of the current workbook.

as defined in the CellKeyRange These definitions. The column current view. the INTCO and the DATASRC are controlled by the PageKeyRange B4:B6 (in green) The TIME is set by column by the ColKeyRange F5:G5 (in magenta) The ACCOUNT is set by row by the RowKeyRange D7:D9 (in blue) Following is a more detailed explanation of each key range as used by the function. as “parked” in the workbook options.). as defined in the Current View bar The workbook current view. as later described. that wins on the column key. the CATEGORY and the VIEW (MEASURES) dimensions are controlled by the system current view. if in conflict. if existing. Here the EvDRE function placed in cell A1 populates the data range F7:G9 (in yellow) using these definitions: - The ENTITY. where some options can be set. that wins on the page key.Reference documentation How the key of a cell is built The keys range can also contain two additional. take precedence from the lowest to the highest in the above list (The cell key. OutlookSoft internal use only 5 . The RPTCURRENCY. The page current view. etc. if set. How the key of a cell is built The full key (“current view”) of a cell is ultimately controlled by EvDRE “overlaying” onto each cell the definitions of a current view as defined by any combination of the following settings: 1) 2) 3) 4) 5) 6) The system current view. The following example may help understand the mechanism. as defined in the RowKeyRange The cell current view. defining a range of sorting parameters. as defined in the ColumnKeyRange The row current view. optional rows: one is an Options (or OptionsRange) field. as defined in the PageKeyRange. and another one is a SortRange field. if existing. wins on the row key.

OCT 2004.OCT 2004.OCT PERIODIC PERIODIC YTD YTD The above range (H2:K4) defines the category. for simplicity. Note that the PageKeyRange might be limited to only a few of the dimensions existing in the application. The number of rows in the range must correspond to the number of dimensions for which the current view is column-specific. A special feature of the PageKeyRange is the ability to enter multiple members in the same dimension key. OutlookSoft internal use only 6 . In such situation considering these ranges as “page” key ranges would be restrictive. this range is called PageKeyRange. This feature is explained in the advanced features section. a PageKeyRange can be thought as a duplicate of the Current View bar (or part of it) and can be specific to a given EvDRE function. Example: H 2 3 4 I J K ACTUAL BUDGET ACTUAL BUDGET 2004. time and view that should apply to the cells belonging to columns H. each one using a different PageKeyRange. The ColKeyRange (required) This is the range of cells that will define the ID of the members that apply to the corresponding columns for their respective dimensions. Any one of the non-specified dimensions will take its default view from the values specified in the Current View bar (or.Reference documentation The PageKeyRange (optional) The PageKeyRange (optional) This parameter specifies the range of cells that define the default members for some or all the dimensions in the application. the PageKeyRange should be seen as “the default view for the data range (*) of a given EvDRE function”. as later described. in reality the same sheet (page) could be populated using multiple EvDRE functions. or it might not exist at all. if set. (*) By “data range” we mean the intersection of the columns of the ColKeyRange with the rows of the RowKeyRange. J and K respectively. The PageKeyRange must be a one-column range that contains the ID of the members that apply to the whole “page” for their respective dimensions. As it can be easily deducted. if found.OCT 2004. from the workbook-specific current view as defined in the workbook options). I. Even if. The PageKeyRange may contain empty rows. they will be ignored by the function (this can be useful for template workbooks used across applications having different sets of dimensions). as one “page” (sheet) would have many of them. Technically.

The additional portions contained within the column and row key ranges (shown here in yellow) are the “heading ranges” for both the rows and the columns. The heading ranges are not populated by data but are included in the expansion process.Reference documentation The RowKeyRange (required) The RowKeyRange (required) This is the range of cells that will define the ID of the members that apply to the corresponding rows for their respective dimensions. the “data range” is show in red. … A 1 2 3 4 5 6 B C Actual Cash accrec inventory budget D …where the Column and Row Key Ranges are in light green. In this example. Example: B 10 11 12 13 14 15 C CASH EUR ACCREC EUR INVENTORY EUR CASH USD ACCREC USD INVENTORY USD The above range (B10:C15) defines the account and currency that should apply to the cells belonging to rows from 10 to 15 respectively. Intersecting the ColKeyRange with the RowKeyRange The intersection of the columns of the ColKeyRange with the rows of the RowKeyRange automatically defines a “Data Range”. These sections of the worksheet can be filled with Excel formulas or other EV functions that can come handy to retrieve the headings of the appropriate members or other relevant information. OutlookSoft internal use only 7 . which is the range of cells that EvDRE will try to populate with values coming from the database. allowing for the replication of the content of these cells in the expanded columns or rows. The number of columns in the range must correspond to the number of dimensions for which the current view is row-specific.

This functionality allows the user to override the current view. the column keys and the row keys.FEB Cell G9. In other words. or part of it. The overridden cells are the “corresponding” cells in the Data range. in static reports. the CellKeyRange must be equal or smaller that the data range for which it redefines the current view for some cell. Sometimes the headings ranges may be missing or may be placed to the right of the data range or even embedded in the body of the data range. In the above example they are: - Cell F8. for any cell in the data range. In the following example the CellKeyRange I7:J9 (in blue) overrides some of the elements of the current view of three cells in the data range F7:G9 (in yellow). for one or more dimensions. For this reason.JAN instead of period 2005.JAN. but it helps clarify the mechanism). (*) By corresponding cells here we mean the cells in the data range that have a corresponding position relative to the top-left corner of the CellKeyRange. a current view that is cell-specific. that reads account INVENTORY of period 2005. (The example is not very realistic. The CellKeyRange (optional) This optional range represents a range of cells that could be used to re-define the members that apply to the corresponding cells (*) for their respective dimensions. that reads period 2005.FEB OutlookSoft internal use only 8 . as defined by the page keys. The overriding cells are the cells in the CellkeyRange with a value different from blank. The definitions in the CellKeyRange work by an offset relative to the top-left corner of the data range. that reads account CASH instead of account ACCREC Cell G7. The CellKeyRange specifies which cells will have. instead of account CASH of period 2005.Reference documentation The CellKeyRange (optional) Here is a visualization of all described ranges.

but its meaning and behavior change. in the majority of cases the cell key range is hidden to the users (together with the definitions of the other ranges). The values are sent up to the last decimal place. there may be still cells within the data range for which the user only wants the function to behave in read-only mode. Example: OutlookSoft internal use only 9 . The GetOnlyRange (optional) When the workbook is defined as an input schedule. allowing the users to define Excel-based logic calculations. SEND (report vs. In presence of expansions. All cells defined in this range will only retrieve values from the DB but no entered value will be sent. Sending data EVDRE will only try to send the cells of the send range which have changed value since the last refresh action. When the workbook is defined as an “input schedule” in the workbook options. To handle this situation the user can enter a value in the GetOnlyRange parameter. as later described. as it is just part of the report parameters. the EvDRE function can be used indifferently as a GET function as well as a SEND function. In other words all cells within these ranges are read-write cells. all EvDRE functions in the workbook assume their data ranges to be “get ranges”. In other words all cells within these ranges are read-only cells. Changing the current view and trying to send the data on the screen without first performing a refresh is currently not allowed (a “No data to send” message will appear). When the workbook is defined as a “report” in the workbook options. This also includes values calculated by Excel formulas. What controls its behavior is the definition of the workbook type in the workbook options screen as selected from the eTools menu. GET vs. the CellKeyRange can still be used. Values deleted using the “Delete” key will be sent as zeros.Reference documentation The GetOnlyRange (optional) For obvious reasons. This possibility will probably be considered for an upcoming release. input schedule) As already mentioned. all EvDRE functions in the workbook assume their data ranges to be “send ranges”. even if a rounding format is applied. Text values are not sent.

a GetOnlyRange spanning all cells marked in blue in the data range will make so that any value entered in those cells will be ignored during a SEND action. EVDRE will try to interpret the content of the cells in the defined range to derive the appropriate formatting instructions to apply to different areas in the report range. For example the user should write something like “E2:E9” in the cell where the PageKeyRange must be specified. For more details on this powerful functionality see the related section below. as such. the EvDRE function requires the user to enter ranges as cell values. and not modified from the current schedule. When the FormatRange cell is left blank. When the workbook is defined as a report. This functionality is described in detail later in this document. The EvRNG( ) function As shown above. This is not very practical. the get-only cells only include calculated members. as such. the format of the data range is automatically derived from the format of the left-most and top-most cell of the data range to be expanded. ignored. in the above case. In the second case. The FormatRange (optional) This range supports two behaviors: it can point to one cell or to an entire range of cells. A different (probably more meaningful) case would be represented by a set of input cells that for some reason should only be read. they would be rejected by the posting engine anyway. Note that. In the first case EVDRE will apply the format of the defined cell to the entire data range.Reference documentation The FormatRange (optional) In the static input schedule shown above. This is not possible per se. OutlookSoft internal use only 10 . as it would be nicer to be able to simply mark the range with the mouse then hit the enter key. if sent. the GetOnlyRange parameter is redundant and. The SortRange (optional) An optional range called SortRange can be used to define how the content of the report should be sorted. because the user is not defining a parameter of a function: he’s just entering in a cell a string that defines a range.

Following is a simple example of a static report that specifies one dimension in the ColKeyRange and one dimension in the RowKeyrange. This self-adjustment. when the body of the report redefines the number of rows and columns of the report. the user can put the cursor on the cell containing the EvRNG function then hit “F2” and Excel will make the range clearly identifiable. while taking the default for all other dimensions from the system current view (no PageKeyRange is defined). in order to visualize the position of the range in the sheet. What it does is to take one or more ranges as parameters. using EVRNG in these cells is not just a nice option but a requirement. which comes “for free” as a native behavior of Excel functions. Also. allows EVDRE to retain the consistency of its parameters with the content of the report. OutlookSoft internal use only 11 . basically permitting the user to expand multiple times the same report. In this case the function will expect all valid keys for the columns and the rows to be predefined by the user in the appropriate key ranges. without ever breaking the definitions of its design. All that the user has to do. is to enter an EvRNG function in that cell. In the following example the user hit “F2” on cell E2 to highlight the range B4:B11 A very important side benefit of the EVRNG function is the following: during an expansion the parameters of the EVRNG function adjust themselves automatically. whenever the function uses expansions. and returns the entered range definitions as text.Reference documentation Static reports and schedules To make the job easier. mark the appropriate range with the mouse and hit enter. Static reports and schedules When no expansion is needed. wherever a cell requires a range as value. In other words. the user may skip altogether the ExpansionRange parameter in EvDRE. we have devised a simple function called EvRNG( ) that comes to the rescue.

It is not possible. To support this. all columns of the first row of the ColKeyRange must define a category. It is sufficient to OutlookSoft internal use only 12 . without the need to break the column or row key ranges in multiple ranges. Remark: the dimensions must be assigned a consistent position in the ranges.FEB with BUDGET (unless ACTUAL and 2005. for example. The ColKeyRange will have more than one row and the RowKeyRange will have more than one column. In the above example. both the ColKeyRange and the RowKeyRange define the key for three dimensions each. In the following example of a static report.JAN are also swapped accordingly). to swap the position of 2005. Blank cells in the RowKeyRange or in the ColKeyRange Text or blank spaces or formulas (like break totals) can be inserted in rows or in columns belonging to the data range.Reference documentation Multi-dimensional key ranges Multi-dimensional key ranges Both Column and Row key ranges can handle multiple dimensions. There is no theoretical limit to the number of dimensions that can be defined in these ranges. The only (obvious) constraint is that no dimension can be specified in BOTH ranges (a dimension may only be defined in rows or in columns). the ranges must be enlarged to accommodate the desired number of dimensions.

significantly reducing the workload of the servers during periods of peak data entry activity. the formula contained in cell G9 is calculating a value that does not match with what retrieved from the db. the cell should be filled by a value coming from the DB. The main benefit of this feature is to allow input schedules to send values that are calculated using an excel formula. but the formula will NOT be overwritten. In particular.Reference documentation Formulas embedded in the data range leave at least one blank cell in the column or row keys and the corresponding column or row will be left untouched by the function. In the following example. Another use of this feature can be to have subtotals and other values immediately calculated as soon as numbers are changed in the input cells. the excel formulas existing in row 9 and row 18 have not been overwritten. the keys in D9. if the value returned by the formula differs from what retrieved from the DB. In fact. when a send command is triggered. when the data are retrieved. With such technique it is possible to define input schedules which do not need a refreshafter-send action. as highlighted by the comment attached to the cell: OutlookSoft internal use only 13 . However. the calculated value will be sent. D10 and D18 have been left blank. without the need to continuously send them to the server and refresh the sheet. EvDRE will optionally add to the corresponding cell an Excel COMMENT that will help the user identify which are the calculated cells that are “in disagreement” with the DB. In the following example the RowKeyRange has been defined as one single range (D5:D18).e. when a refresh is triggered) the value is retrieved. When the value returned by the formula differs from what retrieved from the DB. Formulas embedded in the data range When a formula exists in a cell belonging to the data range AND the corresponding row and column keys do NOT contain blanks (i. while row 10 has been left blank. In this way the refresh operation has not tried to retrieve a value for the corresponding rows in the data range.

618.Sheet1!$F$21:$F$23 H 2005.50 45.811.481.000. two ColKeyRanges and two RowKeyRanges have been specified in the same EvDRE function call.831.apr 23 Totrev 24 grossmargin 25 netincome Total Revenue Gross Margin Net Income I 2005.000.703.918.is 30 (it will be bigger in Excel 2007. pointing to the cells marked in light green.235.372.00 44.00 2005.559.40 (279.650. but that’s a different story).98) (426. the EvDRE function must have its third parameter pointing to a range that contains the appropriate expansion definitions.027.912.553.314.483.404.196.534.mar 500.165.Sheet1!$H$19:$J$19 RowKeyRange Sheet1!$F$15:$F$17.031.382.77) (352. Such range will have: OutlookSoft internal use only 14 .16) (1. Multiple key ranges The same EvDRE function call can support multiple key ranges on both columns and rows simultaneously.may 2005.815.75 50.jun 94.500.jan 15 Cash 16 Accrec 17 inventory Cash in Bank Accounts Receivable Inventory 448.78) Note that this feature can be activated assigning multiple ranges to the same EVRNG function.00 112.Reference documentation Multiple key ranges This feature is disabled by default.H19:J19) The maximum number of parameters that can be assigned to any Excel functions – and EVRNG is no exception .92 144.58) (1.86) (849.48 119.131.436.00 113. In the above example the content of the ColKeyRange cell is: =EVRNG(H13:J13.00 125.078.170.707. but can be turned on by the option ShowComments (see the list of valid options detailed later in this document).309.867.110.50 454. Dynamic reports and schedules (expansions) To handle expansions.811.471. ColKeyRange Sheet1!$H$13:$J$13.072.298.00 2005. In the following example (a static report without expansions).feb J 2005.093.

For example if the user wants 2 expansions in columns and 3 expansions in rows. each one defining a specific parameter for each expansion. indicating whether the expansion is to be performed on the columns or on the rows. MemberSet Here the user can define the set of members to expand for the selected dimension. As it can be easily seen here. each one defining one parameter for each expansion Here below is an example of a report containing one expansion in rows and one expansion in columns. 7 rows.Reference documentation Dynamic reports and schedules (expansions) - A first column defining the name of the expansion parameter. or across sheets of the workbook. This field supports three different syntaxes: 1. A list of comma-delimited members. these columns will be 5. ROW or SHEET. The supported parameters are: ExpandIn This parameter can have the value COL. As many columns as the number of desired expansions. Dimension The name of the dimension for which a dynamic set of members should be generated. the expansion range is made up of 7 rows. basically hard coded in the field Example: OutlookSoft internal use only 15 .

TOTAL) LALL(3. someparent) Examples: BAS(TotalAssets) DEP(2005. using the following syntax: BAS(someparent) DEP(someparent) ALL(someparent) LBAS(n. ACCREC. ALL and LALL can be assigned an explicit current member different from the one specified in the page key range (or the current view). PARENTAFTER] BASMEMBERS BAS DEP ALL [.2005. SELF). DEP.Reference documentation Dynamic reports and schedules (expansions) CASH. someparent) LDEP(n. LDEP. ACCREC. These keywords can be combined in a comma-delimited list (example: DEP. INVENTORY 2. The keywords BAS. PARENTAFTER] SELF LDEP(n) LALL(n) LBAS(n) LMEMBERS(n) LBASMEMBERS(n) NOEXPAND SKIP {blank} All members in the dimension All leaves in the dimension All leaves below current member(*) All children of current member(*) All descendants of current member(*) The current member(*) All descendants down n levels All descendants down n levels All leaves down n levels All members with level n or less All leaves with level n or less Make the current dimension static Make all dimensions in the axis static Expand a set of no members (suppress axis) (*) By current member we here mean the member selected in the page key range or in the current view. A keyword indicating what members in the hierarchy to retrieve. SELF). The list can also include hard-coded members (example: CASH. LBAS. Leaving the MemberSet blank is the equivalent of suppressing the expansion altogether (yes.Worldwide2) OutlookSoft internal use only 16 .TotalAssets) LDEP(2. The valid keywords are: o o o o o o o o o o o o o o MEMBERS [. The keywords MEMBERS and ALL can be combined with a PARENTAFTER option. BAS. someparent) LALL(n. which will place the parent members after their children instead of before (the default behavior).Q1) ALL(Worldwide2) LBAS(3. there is a difference). Defining the MemberSet as SELF corresponds in doing an expansion on the current member.

Y) will give only all months of 2005 3.TOTAL) will give all quarters and all months of 2005 LDEP(2. LMEMBERS and LBASMEMBERS) also support a third parameter “Y” (or “Yes”) which will make them generate only the list of members of the selected level. by just right clicking on the related cell.2005.TOTAL. LDEP. skipping the members of all intermediate levels. Example: LDEP(2.Reference documentation Dynamic reports and schedules (expansions) The Level-based keywords (LBAS. A filter criteria based on one or more properties in the dimension Examples (valid for the ACCOUNT dimension): ACCTYPE = “INC” GROUP=”Balance Sheet” AND CALC=”Y” ELIMACC<>”” A pop-up dialog can be activated to facilitate the construction of a filter for a given dimension. etc. Remarks: - The value of the property must be enclosed in double quotes The criteria can be “equal” (=) or “different from” (<>) Multiple criteria can be combined with the AND or the OR operator Parentheses are currently NOT supported when combining multiple criteria Filters based on properties CAN be combined with hard-coded members or other keywords like BAS. The expressions are NOT case-sensitive Following is a valid example of a member set definition for the ENTITY dimension: OutlookSoft internal use only 17 . LALL.2005.

AccPay Such set of members will generate a BLANK row (or column) between the AccRec and the Banks accounts. like in the following example: MemberSet: Cash. With this setting. all the user needs to do is to right-click on the KEY or HEADING of the row where the insertion should take place and select the “EVDRE: Insert member…” option from this dialog: OutlookSoft internal use only 18 . In this case the member keys may be typed directly in the key range. Similarly. when expanded. then the expansion has been triggered. SELF. More options for this parameter are explained below Insert (optional) Setting this parameter to Y (Yes) for any ROW expansion will allow the user to perform a runtime insertion of a suppressed row. by setting this parameter to Y (Yes) for any COL expansion. it will be possible to suppress all COLUMNS retrieving empty values in all rows. . it will be possible to suppress all ROWS retrieving empty values in all columns.Reference documentation Dynamic reports and schedules (expansions) Wordwide1. In the following example the account ACCREC has been typed in the first row of the rowkey range. Banks. BAS(Sales) AND CURRENCY<>”EUR” Note: Member sets can contain NULL fields. More on these parameters is explained below. The NOEXPAND keyword may be used to convert an expanded dimension into a static one. BeforeRange and AfterRange (optional) These optional ranges can be used to specify ranges of cells that should be inserted at the beginning or at the end of the current expansion. after the expansion. AccRec. Suppress (optional) By setting this parameter to Y (Yes) for any ROW expansion.

Basically. and the user will be able to pick the keys for a new record to insert: Important remark: the behavior of the pop-up screen is controlled by the position of the “Y”: only the dimensions where the “Y” was placed (in our example the INTCO dimension) will have the member selectable from a list box. AccRec. While very rarely used. The insert parameter “Y” may also be replaced with an explicit set of members that are valid for insertion. While such inconsistency is not prevented by the product. the insert mechanism can also be activated on COLUMN keys. Those of the other dimensions will be restricted to the value they have on the row from which the insert action was triggered (In our example the ACCOUNT will be the one of the “current” row (ICACCREC). it is important to keep the member set in synch with the list of insert-able members. DEP. and cannot be changed from the pop up dialog. AccPay. OtherLiabs).Reference documentation Dynamic reports and schedules (expansions) The following dialog will appear. it is a strongly discouraged practice. OutlookSoft internal use only 19 . as the user might end up sending values to cells he does not have on the screen.etc.) Important remark: currently the user might define a (suppressed) expansion on one set of members (like Cash. BAS. Inventory) but at the same time allow for the insertion of a different set of members (like Banks. enabling the user to insert on the fly some new column into the sheet. The set may be defined using the same syntax available in the MemberSet fields (comma-delimited list. without knowing if some other value already exists in the database for these cells. while the INTCO can).

In such case the user will be also allowed to select individual inter-company members. obviously. In the following example the INSERT option has been activated only on the ACCOUNT members. OutlookSoft internal use only 20 . i.Reference documentation Dynamic reports and schedules (expansions) When a formatted member set range has been defined. Note also that the automatically insertion of the entire set will NOT be activated if the member set is not formatted. the entire block of intercompany members is automatically inserted. When an account is selected (EXTSALES in the example).e. This will be the appearance of the sheet after the insertion: Note that this behavior can be disabled if the INSERT option is also activated in the dimension using a formatted range (INTCO). if the set is defined with a one-column range (or. if it is directly defined in the MemberSet field). even if the INTCO range is defined using a formatted range. the insert action will automatically trigger the insertion of the entire set.

The top picture shows the actual result of the expansion (still a two rows range). In case the expansion returns just one member (or even no member at all) the size of the range will remain of two elements anyway. The BeforeRange and the AfterRange in expansions Two optional range parameters can be used to specify ranges of cells that should be inserted at the beginning or at the end of the current expansion. The bottom picture shows the report the way it will appear to the user (with the second row hidden). the size of these ranges can never be less than two columns (for the ColKeyRange) or two rows (for the RowKeyRange). the BeforeRange and/or the AfterRange will be repeated for each instance of the expansion. in order to work properly. It must however be remembered that. If the expansion is nested inside another expansion. however. the ColKeyRange (and/or the RowKeyRange) will automatically resize when the expansion is performed and their content will be automatically populated with the MemberSet defined in the expansion. in such case the key (and the corresponding data range) will be left empty and the entire row (or column) will be hidden. The cells defined by the BeforeRange will be inserted before the current expansion and the cells defined by the AfterRange will be inserted after the current expansion.Reference documentation The ColKeyRange and RowKeyRange in expansions The ColKeyRange and RowKeyRange in expansions When an EvDRE function uses expansions. The corresponding ranges have been inserted before and after each instance of such expansion. OutlookSoft internal use only 21 . The following example shows a report where an expansion in rows has returned only one member. In the following example a BeforeRange and an AfterRange have been defined for the inner ROW expansion.

In the keys where the range is inserted the function will automatically place the placeholder EV_AFTER (or EV_BEFORE). if defined. In case there is also an expansion of COLUMNS. The column expansion will take care of duplicating that portion for all expanded columns. OutlookSoft internal use only 22 . The ROW ranges (like those shown in the above example) will be placed horizontally starting from the FIRST column of the ROW HEADINGS range. a COLUMN range can also be composed of more than one COLUMN. will be copied for the entire range. A ROW before. The above example only contained an expansion of ROWS. placing them anywhere in the sheet (possibly in a non-visible portion) that the expansion process will automatically insert into the body of the report. Similarly.or after. COLUMN ranges will be placed vertically starting from the FIRST row of the COLUMN HEADINGS range. The FORMAT and the FORMULAS. the portion of the ROW ranges that falls inside the DATA RANGE only needs to be defined for ONE COLUMN.range can also be composed of more than one ROW (like in the example above). Here below is an example that shows how the blue and green portions of the before and after ranges have been expanded across the columns.Reference documentation The BeforeRange and the AfterRange in expansions Important remarks: The before and after ranges can be considered templates that the user designs. The VALUE will only be copied for the portion relating to the headings (the orange and red cells). Similarly.

OutlookSoft internal use only 23 .range.and after.range coexisting with an expansion of ROWS. Formulas inside the before.ranges By placing Excel formulas inside the before. the portion of the COLUMN ranges that falls inside the DATA RANGE only needs to be defined for ONE ROW.Reference documentation The BeforeRange and the AfterRange in expansions The same rule applies in case the before and after ranges are defined for the COLUMN expansion: In case of a COLUMN before.or after. When the expansion is performed. this keyword will be automatically turned into an Excel formula that calculates the sum of the members of the related expansion.or after. The example here below shows an after range for the columns containing an Excel formula calculating the difference between the preceding two columns (for clarity the sheet has been captured with the displayformula option turned on).or after. the user can dynamically add calculated rows or columns in his report expansions. The expansion has copied the formula in the column inserted after the set of categories.ranges. A special instruction EVSUM can be placed in the data range portion of a before.

ranges. The same sheet in normal view looks as follows: EVSUMs can be nested together with their related before. This sheet (captured with the formula view option turned on) shows how the EVSUMs in row 3 have been expanded into correct Excel SUM( ) formulas in rows 13 and 20.or after. OutlookSoft internal use only 24 .Reference documentation The BeforeRange and the AfterRange in expansions The following example clarifies the mechanism. The following example shows a case of nested EVSUMs in row after ranges for two dimensions (account and entity).

but it provides more flexibility to the mathematical operations being available for use in the expanded range. and the function will return the number of elements in the {range} (using the COUNT operation.Reference documentation The BeforeRange and the AfterRange in expansions A newer variation of the EVSUM keyword is the EVSUB keyword. The EVSUB basically inserts the Excel function SUBTOTAL (instead of the SUM or SUMIF functions) in the appropriate cells. ref1. which represents the SUM operation..{range}) in the sheet. Function_num Function_num Function (includes hidden values) (ignores hidden values) 1 101 AVERAGE 2 102 COUNT 3 103 COUNTA 4 104 MAX 5 105 MIN 6 106 PRODUCT 7 107 STDEV OutlookSoft internal use only 25 .. with the possibility to pass to it an identifier of the type of mathematical operation the user wants to be performed on the range of cells. ref2.) Function_num is the number 1 to 11 (includes hidden values) or 101 to 111 (ignores hidden values) that specifies which function to use in calculating subtotals within a list. the instruction EVSUB(2) will insert the Excel function SUBTOTAL(2. Here is an excerpt of the Excel documentation describing the SUBTOTAL function: Syntax = SUBTOTAL(function_num. This keyword has a similar behavior as EVSUM. Passing no parameter to EVSUB will correspond to passing a 9. as triggered by the value 2 of the identifier). . For example.

the member set defining the sheet expansion cannot be specified as relative to the content of the page key (because it will become hard-coded). also the starting sheet will have the entity ID hard-coded in the page key. Here is an example of the result of a 3D expansion performed on Entity SalesEurope and its children: The expansion has basically replicated the sheet defining the expansion in several sheets (one sheet per expanded member). for example) For the above reason. To overcome this limitation. even if initially it contained a reference to the current view (by the use of EVCVW. OutlookSoft internal use only 26 . each of the resulting tabs contains a replica of the starting EVDRE function. the member set of the sheet expansion can be either self-defined (with something like BAS(Europe) or CURRENCY=”EUR”) or made relative to what defined in the current view bar by pointing to some other cell in the sheet. The generated sheets will be named after the member being expanded in the sheet. where the ENTITY member specified in the PAGEKEY is the (hard-coded) member ID associated with the current sheet. As a result. generating a “book” of reports for the desired set of members. Technically speaking.Reference documentation The BeforeRange and the AfterRange in expansions 8 9 10 11 108 109 110 111 STDEVP SUM VAR VARP Expansions across sheets (“3D expansions”) A special case of expansion is an expansion where the member set must be enumerated across sheets. It is important to remark that the starting sheet defining the expansion will become the first sheet of the expanded set. otherwise the workbook will not be re-usable for further expansions on different current views (of the dimension expanded in SHEET). The page key defining the page member of the sheet dimension will also contain the hard coded ID of the current member.

Note that the following restrictions apply. and the member set instructions point to such cells to define the expansion rule. when the expansion is performed across sheets: • • • • There must be only one EVDRE function in the sheet defining the expansion Only one dimension can be expanded across sheets (no nested SHEET expansions) The beforeRange and the AfterRange parameters for the SHEET expansion are ignored The Insert parameter for the SHEET expansion is ignored OutlookSoft internal use only 27 .Reference documentation The BeforeRange and the AfterRange in expansions The following screen shot shows how the above example has been designed. The EVCVW function for the ENTITY has been entered in a separate cell. in order to make it re-usable for other current views. and cell D16 point to cell D10 to define things like DEP(SalesEurope) and the like. Here is a view of the formulas existing in the sheet: cell D10 contains the EVCVW function.

This range must be made of 4 columns and 4 rows as shown in the example here below. The first parameter (“column”) may contain the following: • • A column identifier (for example “J”). OutlookSoft internal use only 28 . Here below we show the result of the simple sorting definitions used in the above sample (sort rows on column J in Descending order). A blank field will default to ascending.Reference documentation Sorting Sorting The Keys range of an EVDRE function may contain an optional range called SortRange. indicating the column on which the sorting must be based A {dimension}. The first column of such range must contain the name of the sorting parameter and the remaining 3 columns will define up to 3 possible sorting methods (the limit of 3 is what Excel natively supports in its current version).{property} identifier (for example ENTITY. pointing to a range of cells defining how the rows of the report should be sorted.CURRENCY) indicating that the rows must be sorted according to the alphabetical order of the value of some property of a given dimension The second parameter (“order”) specified the order of the sorting and it can be any word beginning with “D” (for “Descending”) or “A” (for “Ascending”).

In the definition of the AfterRange the keyword %KEY% has been used.Reference documentation Sorting The third and fourth parameters (“BeforeRange” and “AfterRange”) can be used to define a range of cells that should be inserted in the report above (BeforeRange) or below (AfterRange) each change of value in the sorting criteria. OutlookSoft internal use only 29 . This keyword returns the value of the sorting element (the currency) for which a break total is being inserted. The EVSUB keyword has also been used in the data cell to create subtotals by currency. In the following example we demonstrate the use of an AfterRange applied to a report sorted by the CURRENCY of the entities.

If before. OutlookSoft internal use only 30 . It must also be noted that the sorting action is performed after the data have been refreshed. This will also happen if no EXPANSION has been triggered.or After-ranges have been defined on the sorting criteria. these ranges will be automatically removed from the report and re-applied to its content after the data have been refreshed. Everything has been taken care of automatically by the function.Reference documentation Sorting It is important to remark that in the above example the sorting on the currency of the entities has been performed without the need to retrieve in the sheet the value of the currency property. even if NO EXPANSION has been performed.

the function will return this message: EvDRE: Click refresh to generate sample Hitting the refresh button will prompt the user with a dialog proposing a default layout for the report about to be generated by the function. as follows: =EVDRE() When the user hits enter. An appropriate member set for the selected expansions will be proposed. an EvDRE function call with no parameters. The wizard will also permit to optionally generate a FORMAT range and a SORT range. This wizard will initially propose to build a report containing one expansion for the columns using the TIME dimension and one expansion for the rows using the ACCOUNT dimension.Reference documentation The EvDRE quick-build wizard The EvDRE quick-build wizard An improved wizard has been integrated in this version of EvDRE. To activate this wizard the user must simply enter. or to import the style from some predefined workbook (either local or server based). These settings will be modifiable at will dragging-and-dropping around the desired dimensions or using the appropriate movement arrows. anywhere in the sheet. to allow the user to initialize all the ranges that need to be defined for the function. OutlookSoft internal use only 31 . Hitting the “Include FORMAT Range” checkbox will offer the possibility to have a default formatting style generated automatically.

Lat but not least. the report can be generated with just ONE CELL of options (where all the options can be set using a comma delimited list of instructions) or with a RANGE listing all possible options. purely for compatibility with prior versions. if set. =EVDRE(“2 x 3”) OutlookSoft internal use only 32 . For example. The “Expand” checkbox. the following function call will generate a report template containing 2 expansions in columns and 3 expansions in rows. will automatically trigger an expansion as soon as the report is built in the Excel sheet. In alternative to this new “quick build screen”. the user may also ask for a break total to be automatically inserted in the worksheet.Reference documentation The EvDRE quick-build wizard (See below in the advanced formatting section for a complete explanation of the concept of “styles”) When a sort range is selected. if more than one expansion on either axis is desired. Basically. when the user hits the refresh button. the user can type-in the EVDRE function using the following alternative syntax: =EVDRE(“{c} x {r}”) … where {c} is the number of expansions in columns. which can be individually turned on or off (See more details on this later in this document). the older method of passing the number of expansions in the first parameter of the function is still supported. and {r) is the number of expansions in rows.

we soon came across several cases where a “dynamic” CellKeyRange would come handy. This copy is the actual CellKeyRange that the function uses to define the key of the cells of the data range. while the inter-company member must be the one corresponding to the entity selected in PAGE. while the YEAR is controlled by the content of cell E2. OutlookSoft internal use only 33 . In column H of the example the inter-company member selected in ROWS need to be swapped with the corresponding entity member. so we extended its functionality to handle these cases. the expansion has automatically created an “expanded” copy of the CellKeyRange to the right of the report Data Range. The result is a key that varies row by row based on the “PERIOD” property of the corresponding row key. However. Since the report contains a ROW expansion. In the following example.Reference documentation EvDRE advanced features EvDRE advanced features Expanded CelKeyRanges The original design of the CellKeyRange was based on the assumption that it would only make sense in static reports. Note that the first cell of the original CellKeyRange (G2) contains a formula that has been copied into the expanded CellKeyRange to the right. This result has been achieved using a CellKeyRange made up of just one ROW. the first column had to retrieve the values of each month of 2004 while the second column had to retrieve the values of each month of 2005. The example here below shows how this technique can be used to build an inter-company matching report. combined with a ROW Expansion.

Example: OutlookSoft internal use only 34 .Reference documentation “Repeated” Expansions The result is obtained placing the correct formula in the second column (H) of the CellKeyRange G3:H3. A more efficient way to build an inter-company matching report is to use two EVDRE functions overlaid on the same data range. and delimiting them with a comma. This result can be achieved defining multiple expansion ranges in the RowKeyRange field. “Repeated” Expansions One single EvDRE function can be used to perform multiple times the same expansion on the same axis (rows or columns). Note that CellKey ranges are not particularly efficient. and letting the expansion build the correct keys in column K.

and the member id has been entered directly in the first row of each row key range. This allows the user to design multiple sections of a report that are grouped in some sort of static layout. PARAMETER ExpandIn Dimension MemberSet EXPANSION 1 EXPANSION 2 ROW ROW ENTITY ACCOUNT BAS The main benefit of such technique is that the ranges can be separated by additional rows. because they are not part of any key range. In this other example a repeated expansion is associated with different static keys for the entity dimension.Reference documentation “Repeated” Expansions While the above example may not seem very meaningful. This result has been obtained with a RowKeyRange that is partly static and partly dynamic. each one customized freely by the user. and these rows will be preserved. certainly the following is. The static portion is defined as an expansion with a blank MemberSet. Yet. OutlookSoft internal use only 35 . each individual section can be expanded using the definitions of one single EvDRE function.

67 H 2005.864.725.48 2005.329.466.297.Sheet1!$G$22:$I$24 Sheet1!$E$13 EXPANSION 1 ROW ACCOUNT cash.Sheet1!$E$22:$E$24 G 2005.236.423.161.accrec.888.205.23 104.848. OutlookSoft internal use only 36 .394.404.Reference documentation “Multiple” expansions In the next example there is a different use of a repeated expansion.13 112.387.75 115.229.68 103.251.553. two sets of members for the TIME dimension have been expanded in two different RowKeyRanges. Here each repetition of the row expansion is associated with a different (static) ColKeyRange.555.882.19 46.032.596.942.695.52 I 2005.JUN 462.24 2005.MAR 460.inventory VALUE Sheet1!$F$2:$F$9 Sheet1!$G$13:$I$13. RANGE PageKeyRange ColKeyRange RowKeyRange CellKeyRange GetOnlyRange FormatRange PARAMETER ExpandIn Dimension MemberSet Sheet1!$G$15:$I$17. the user can specify multiple member sets in the MemberSet field.986.082.812.89 46.JAN 15 16 17 cash accrec inventory Cash in Bank Accounts Receivable Inventory 412.723.FEB 418.81 41.074.Sheet1!$G$20:$I$20 Sheet1!$E$15:$E$17. In the example shown here below.169.MAY 455. To assign a different member set to each expansion.53 44. delimiting them with a pipe character (“|”).60 45.17 41.618.309.620.481.41 113.821.15 “Multiple” expansions A more generic case of “repeated expansions” is when the MemberSet changes for each one of the ranges defined in the corresponding row (or column) key range.238.APR 22 23 24 cash accrec inventory Cash in Bank Accounts Receivable Inventory 448.81 2005.54 115.485.

because they do not have a corresponding value in BUDGET. OutlookSoft internal use only 37 . where all the ranges share the same (“last”) member set. In the following example. each one with its own set of members. Note that if the user specifies more ranges than sets of members. the rows have been suppressed based on the values existing in category BUDGET for both columns.Reference documentation Suppressions based on a different region There is no theoretical limit to the number of ranges that can be specified. Suppressions based on a different region Another special requirement we have been confronted with has been the ability to suppress a set of rows (or columns) based on the values existing on a different region than the one displayed in the data range. To do this the user can insert in the Suppress field. The result is that only a few of the rows with values in ACTUAL have been shown. an overriding key for one or more dimensions. in place of the normal “Y” keyword. the last set will be applied to all extra ranges. In this respect “repeated” expansions are just a sub-case of “multiple” expansions.

the categories must carry their own individual format.budget]. For example a user might want to expand a set of fixed categories inside a set of entities. The formatted range must include the key range. the headings range and at least one column (or row) of the data range. you can write: SUPPRESS=[actual.2005. OutlookSoft internal use only 38 . However. In the following example the formatted range is defined by the content of the cells B24:E26.Reference documentation Formatted member sets Multiple members of the same dimension or different dimensions can be specified in the overriding expression. For example. This can be obtained by inserting in the MemberSet cell of the corresponding expansion an EvRNG function pointing to a range of cells that defines both the set of members to use as well as their individual formats.total Formatted member sets Sometimes a fixed set of members requires a specific formatting to be applied to each individual member.

Reference documentation Unformatted member sets Formatted ranges may contain empty fields in the key range. In this case the column is interpreted as a regular member set. This feature is handy when the list exceeds the maximum length of a cell text (1024 characters). OutlookSoft internal use only 39 . similar to what can be done in a commadelimited list of members in a “regular” member set. as if all members in the range had been typed-in in a comma-delimited list of members directly in the member set cell. or when the list has been dynamically created in a range of cells by some other function like EVLST( ). Unformatted member sets A special case of a formatted range of members (see above) is a range made up of only one column.

All rows of the other entities have been retained. This output has been obtained using the keyword RETAIN({member}) in the SUPPRESS field for the INTCO dimension.budget]. in the report shown below. For example. This behavior is activated by the keyword “B” in the Suppress field (in place of “Y”) and ONLY works in combination with a “formatted range of members” assigned to the innermost expansion (See above). In the example shown here below. as at least one row had values for each of them. only the rows of entities “Sales UK” and “Sales Europe Eliminations” have been suppressed.Reference documentation Block suppressions Block suppressions An alternative suppression method is the “block” suppression. This has triggered a suppression of the ROW axis.total Retaining members in suppressions When multiple dimensions are selected in the row/(column) keys. wherever there are INTCO details associated. if even only one row (or column) has values. you can write: SUPPRESS=B:[actual. For example. but all (and only) the members with values for the inner dimension. the user wants to see all ASSET accounts and. This feature allows you to activate the suppression but also to retain (not suppress) the entire set of members of the innermost expansion. OutlookSoft internal use only 40 . A “block” suppression may also be activated while defining an alternative region to drive the suppression. intersecting them with the NON_INTERCO member of the INTCO dimension. but all accounts with no value have been assigned one row.2005. because they were all empty. see all of their values (and only those). it may easily happen that the user wants to see at least one row/(columns) for each member of the outer dimensions.

Multiple members in the PageKeyRange A special feature of the PageKeyRange is its ability to support multiple members in the same dimension key. Here the sum of two entities SalesItaly and SalesFrance has been generated on the fly by the report. This feature can be used to dynamically generate aggregations of members in a report. there will be better chances that EVDRE will go directly after the act tables to retrieve their values. a workbook option can be set. as described in the following example. in order to limit the expansion or refresh actions to only the EvDRE functions whose data ranges are in the active sheet. if the members in the page key are base level members. An important side benefit of this feature is that. OutlookSoft internal use only 41 . as set in the page key range. Workbook option “Refresh by sheet” Since SP2 build 390. whenever some details are found (here formatted with a white pattern for clarity). In this case the member to retain in the suppressed dimension will be taken from the current view. reducing the load on the OLAP engine. The RETAIN keyword can also be used without a parameter. so that all accounts will also show a TOTAL row.Reference documentation Multiple members in the PageKeyRange In this other example the user has decided to retain a parent member.

whenever a refresh or expand action is invoked only the current sheet will be updated. unless the user or some other action explicitly requests a new refresh. OutlookSoft internal use only 42 . in case the focus is returned to it.Reference documentation Workbook option “Refresh by sheet” This option can be used in large workbooks containing many sheets that might take some time to refresh all at once. If this option is set. it be a workbook open or a current view change or a refresh after send or an explicit request from the user. Note that this behavior is maintained irrespective of the action that triggered the update. All not-yet-refreshed sheets will be automatically updated as soon as the user tabs on them. Any alreadyrefreshed sheet will not be updated again.

when entered in the Options cell. where appropriate. The range may look as in the following example: The first column in the range must contain a valid option keyword. Their keywords are NOT case sensitive. The second column will activate the corresponding option with a “Y” or “Yes” value. can be combined using comma as delimiter. The options. may contain an EVRNG function pointing to a RANGE of cells listing any number of valid options.Reference documentation EVDRE Options EVDRE Options EvDRE supports a few OPTIONS that can be activated entering the appropriate keywords in the Options cell of the KeyRange. A more detailed explanation of each option is included below. the Options cell (which can also be named OptionRange). Here is the list of the currently supported options. or with a numeric value. In alternative. : Option AutofitCol Description Automatically adjust the size of the columns containing the EvDRE ranges to fit the content after refreshing data Show only the n lowest values in the entire data range The content of the data cache is written in the log file BOTTOM n DumpDataCache OutlookSoft internal use only 43 .

when requested.txt ExpandOnly Disables the refresh action. and performs only an expansion. Only missing (no data) values will be suppressed. if the value retrieved from the database is different from the one displayed by the formula All empty cells in the data range are filled with zeros Sort a given columns (old syntax – see SortRange) Force the query engine to only issue SQL queries This option inserts new rows with subtotals These options will perform a suppression on the defined data range directly in Excel Prevent the suppression of zero values. Otherwise.TUPLE (or blank for Automatic) Use a user-defined view for querying SQL data Add an Excel comment in any DataRange cell with a formula. Show only the n highest values in the entire data range ShowNullAsZero SortCol SQLOnly SumParent SuppressDataRow and SuppressDataCol SuppressNodata TOP n Option AutoFitCol OutlookSoft internal use only 44 . Data are not retrieved from the database (see the dynamic hierarchies section) These options will hide the corresponding key ranges GroupExpansion HideColKeys and HideRowKeys NoRefresh NoSend PctInput QueryEngine QueryType QueryViewName ShowComments This option prevents the system from refreshing data from the database This option prevents the system from sending data to the database Enforce a different percentage of input data to trigger SQL queries (default is 20%) Manual (or blank for Automatic) NEXJ. both zeros and missing data will be suppressed.Reference documentation EVDRE Options EvDre_log.

Reference documentation EVDRE Options The option AutoFitCol will automatically adjust the size of the columns containing the EvDRE ranges to fit with their content. and can be reviewed for debugging purposes. even if more cells have values. Option ExpandOnly OutlookSoft internal use only 45 . Remark: The filter is for now bluntly applied to the entire data range. so that any modified cell can be easily identified and sent to the database. Combining this option with the appropriate suppression instruction.txt. When the DumpDataCache option is activated. Option DumpDataCache All EVDRE input schedules maintain a hidden cache of all data retrieved in the sheet. and the user cannot define things like “give me the top 5 rows with the largest amount in the first column” or anything more sophisticated. This functionality will certainly be extended in future releases to cover those cases. only the relevant rows or columns will remain in the sheet. which is saved under the “My Documents” folder of the current user. In the example shown here below only the 5 largest values have been inserted in the data grid. Options BOT and TOP These two options will restrict the display of only the largest (TOP) or smallest (BOT) values in the data range. on every send action the content of the data cache is written in the client-based log file EvDre_log.

and. This action is triggered when data are refreshed (even if no expansion is requested). to our knowledge. Option PctInput By default EVDRE decides to split the query in one SQL query and up to 2 MDX queries. This feature can be useful when multiple EvDRE functions are used to build some complex reports. etc. This threshold can be adjusted to a higher or lover value using this option. if more than 20% of data can be read directly from the fact tables. when requested. but no data will ever be retrieved from the DB to populate the data range. their associated columns and rows in the sheet will automatically be set to “hidden”. the data will still be retrieved. basically ignoring the option. Option NoRefresh This option can be used in reports or input schedules to limit an EvDRE function to only perform expansions and / or sends. If an expansion with suppression is performed. Options QueryEngine and QueryType EVDRE uses an intelligent query engine which automatically optimizes the type (SQL or MDX) and format (cossjoins. Note that an exception to this behavior is an expansion with SUPPRESSIONS. Option NoSend This option can be used in input schedules to limit an EvDRE function to only perform expansion or refresh actions. EvDRE will only perform an expansion. While still existing. This can be obtained setting this option to “Manual” and combining it with the QueryType option to one of the possible values: NEXJ Use two-dimensional queries using the nonemptycrossjoin function TUPLE Use two-dimensional queries using tuples Option QueryViewName OutlookSoft internal use only 46 . (This option has been implemented mostly for debugging purposes. but never retrieve data from the database. This feature can be useful when multiple EVDRE functions are used in an input schedule. but never send data. to specialize their action. Mostly for debugging purposes.Reference documentation EVDRE Options The option ExpandOnly can be used to disable the refresh action for a given EVDRE function. the option QueryEngine has been implemented. in order to retrieve the data. tuples. Options HideColKeys and HideRowKeys These two options can be used when the keys of either the rows or the columns should not be shown. When this option is turned on. and another one is in charge of retrieving the values from the db on a shared data range. where one function is in charge of expanding the rows or columns.) of queries to issue. allowing the user to choose directly the format of the MDX queries to use. has been very rarely used).

when trying to read the values using SQL queries. when reading data. Option ShowComments This option can be used to turn on the Excel comments used in the data range when this one contains formulas (see “formulas embedded in the data range”). as data are entered into the latter. OutlookSoft internal use only 47 . This option will automatically fill all empty cells with zeros. Option SQLOnly In some special circumstance the customers wanted to enforce the query engine to only execute SQL queries. This can be achieved using this option. Option SumParent This expansion option can be handy to generate input schedules where the user will see the values of the parents automatically populated with the sum of the children. Option ShowNullAsZero Some customers do not like to see ranges with no data as ranges of empty cells. without the need to perform a send action. mostly for research purposes.Reference documentation EVDRE Options This option can be used to enforce the query engine to use a used-defined SQL view of the fact tables. This option is typically used in conjunction with the SQLOnly option (see below). The following example show how the cells of all parent members have been automatically populated with the appropriate SUM functions after the expansion (the sheet is shown with the “view formula” option turned on for clarity). It has been used in very rare situations.

even if expenses/liabilities are to be added into income/asset parents (and vice versa) as the value of the ACCTYPE property will be correctly taken into account. and an extra function may be applied to the combined data just for this purpose. It must however be remembered that the un-suppressed data ranges generated by the initial functions might easily exceed the maximum size of an Excel sheet. Suppression-Only options An EVDRE function can be specialized to only perform a suppression of empty rows or columns. Option SuppressNoData By default EvDRE suppressions will indifferently suppress rows or columns where all data are zero or null. It is important to note that the option only works if the member set contains the keyword ALL. OutlookSoft internal use only 48 . This feature can be useful when multiple EVDRE functions have contributed to the population of a shared grid of data. The options that can be used for this purpose are SuppressDataRow and/or SuppressDataCol. Another current limitation is that the schedule must have some base level member in both axes (rows and columns). Obviously in this case the suppression will be performed directly on the data grid in Excel. after it has been populated with some value by (probably) some other EVDRE function. In these situations the individual functions might not have the required information to be able to identify what to suppress. while still displaying those containing “stored” zeros. With the SuppressNoData option the user can ask the function to only suppress rows or columns containing no data (null values). This is in fact the only way by which the presence of all children for each parent can be enforced by the function. in creating the formulas. making this technique hard to use.Reference documentation EVDRE Options The option also works on the account dimension.

The keys and headings of the inserted rows will be indented to increase readability. and may require one or more expansions to be defined in rows or columns. This action can be activated at application level passing the name of the view to the following application parameter: EVDRE_QUERYVIEWNAME Drill-Downs Drill-downs are triggered by double-clicking on either a row or column key or a row or column heading.Reference documentation Using a special view Using a special view In some particular case the customer asked us to access the data in the fact tables using a custom view built in SQL. The double-clicking action will trigger either one of the two drill-down methods supported by EVDRE. The second method (“expand by inserting new rows”) will insert in the report a set of rows having as key the immediate dependants of the member where the double-clicking was performed. With this method. The following example shows the result of a drill-down performed on entity SALES then on entity SALESUS. The user will be able to back-step to the original view by hitting the “back” icon in the tool bar. in a report which only started with one row (see the member set SELF in the expansion) OutlookSoft internal use only 49 . and will invoke a refresh of those rows. This method of drill-down will always work. according to the setting of the workbook option shown here: The first method (“expand by overwriting rows”) will move into the current view the member where the double-clicking was performed and will invoke a new expansion of the function. irrespective of the set of members defined in the expansion. the member set of the expansion must be defined as “DEP”. The first method of drill-down can be applied indifferently to both rows and columns. for the drill-down to work.

Currently the second method can only be applied to rows (mostly because of the difficulty of indenting column headings in a visible fashion).Reference documentation Drill-Downs In case of NESTED expansions. OutlookSoft internal use only 50 . The user will be able to back-step to the original view by double-clicking again on the parent member that started the drill-down. With this method of drill-down the “back” icon is de-activated. this type of expansion can be performed specifically and independently on each dimension expanded in rows.

This behavior is activated by an expansion and is ignored if only a refresh action is performed. using multiple rows. to control the formatting actions to be triggered by EVDRE after every REFRESH action has been completed. In addition. they will be applied by the evDRE function in sequence from the first (top row) to the last (bottom row) in the range. the format properties of such cell are used to define the format to apply to all cells of the data range. as describe in detail here below. upon expansion. the format of the data range is automatically derived. each row representing one formatting instruction. When multiple formatting instructions are specified. multiple formatting instructions can be specified. Here is an example that gives an idea of how a fully-fledged set of formatting instructions could look like: OutlookSoft internal use only 51 . each column representing one separate parameter of a formatting instruction. • Extending the functionality of the FormatRange The format range can be a range made up of SIX (required) columns. as shown here: RANGE FormatRange • • VALUE {range} If the {range} value is left blank. This behavior is what EVDRE supported in its early days (and still does. If the range is greater than just ONE cell.Reference documentation Advanced formatting: the FORMAT RANGE Advanced formatting: the FORMAT RANGE Introduction Following is the description of the instructions that can be used in a FORMAT range. from the format of the left-most and top-most cell of the data range being expanded. for backwards compatibility). Overall approach EvDRE supports a formatting parameter. If the {range} value is a pointer to ONE cell. a full set of additional formatting features can be enabled.

In the example shown here below the criteria column contains the CALC keyword. and not calculated by an Excel formula). Following is a listing of the six columns and their meaning: CRITERIA EVALUATE IN FORMAT USE PARAMETERS APPLY TO What triggers the specified format The range in which the criteria must be evaluated The desired format of the cells The portions of the format that should be applied Some textual definition of the format to apply The portions of the report to which the format should be applied Following is a more detailed explanation of the meaning of each column. CRITERIA CALC The CRITERIA column can contain the following values: Note Value DEFAULT CALC INPUT STATUS=n LOCKED Meaning Is applied anyway. The columns are all required. For example the criteria could be based on the calculated or non-calculated status of a cell. The CRITERIA column The first column. and the keywords it supports. called CRITERIA. irrespective of any criteria Is only applied to calculated members Is only applied to non-calculated members Is only applied to cells with an approval status = a given value (*) Is only applied to cells with an approval status NOT YET AVAILABLE NOT YET AVAILABLE OutlookSoft internal use only 52 .Reference documentation The columns of the formatting range The columns of the formatting range Each column of the formatting range represents one parameter that can be applied to a formatting instruction. and must be defined in the order shown here (The titles row is not part of the range and could be skipped. It is here shown for clarity purposes only). defines what triggers the formatting instruction. indicating that a desired format must be applied to cells pointing to calculated values (here by calculated we mean calculated in the DB.

like “*” or “???”. called “EVALUATE IN”. defines the format to use. OutlookSoft internal use only 53 . are not yet supported The “EVALUATE IN” column The second column. For example. is available to restrict the region for which the CRITERIA must be evaluated. called FORMAT. (**) The ROWCOL keyword means that that the criteria is “true” if the condition it defines is met by both the ROW key AND the COLUMN key simultaneously. the following instruction assigns an italic font on a yellow pattern to all cells of the calculated rows. The FORMAT column The third column.property}=”{value}” Is only applied to the members of dimension {dim} with property {property} = “{value}” (*)(**) Is only applied if the row/column keys contain the passed {string}(***) Is only applied if the row/column headings contain the passed {string}(***) Is only applied to cells containing Excel formulas Is only applied to cells with a value matching the test expression Is only applied to cells being modified by a data entry action and the workbook has been set as an Input Schedule KEY=”{string}” HEADING=”{string}” FORMULA VALUE = | <> | < | > | <= | >= {value} CHANGED (*) It also supports “different-from” (<>) (**) It also supports a comma-delimited list of values (***)Wildcards.Reference documentation <>0 {dim. For example. the following instruction specifies that the calculated members must be searched in rows only: CRITERIA CALC EVALUATE IN ROW The keywords supported by the “EVALUATE IN” column are the following: Notes Value {blank} or ALL PAGE COL ROW CELL ROWCOL Meaning Evaluate the criteria in PAGE or COLUMN or ROW or CELL(*) Evaluate the criteria in PAGE Evaluate the criteria in COLUMN Evaluate the criteria in ROW Evaluate the criteria in CELL Evaluate the criteria in ROW and COLUMN (**) FUTURE FUTURE FUTURE (*) Leaving this column blank (or entering ALL) means that the criteria is “true” if the condition it defines is met by what defined in the PAGE key OR in the COLUMN key OR in the ROW key OR (if existing) in the CELL key.

PatternColorIndex Locked. this is the property that will be used by EvDRE’s formatting engine to prevent or allow a user to modify the content of the cells of a workbook. xlDiagonalUp.Reference documentation CRITERIA CALC EVALUATE IN ROW FORMAT Use this format Note that the definition of the format is directly driven by the Excel format of the FORMAT cell. Font. This fragmentation of formatting options in independent groups allows the user to “overlay” different settings that are not mutually exclusive. ALL formatting properties. FONT This means that only the PATTERN and the FONT properties of the FORMAT cell must be used.Size. can specify what components of the defined format should be applied. as defined using the native Excel formatting tools. All other formatting properties (border. Font. Font.Bold. as set in the format column. In this way the desired format is easier to define and visualize. Pattern. xlEdgeTop) (ALL + the text in the cell) Font. xlEdgeRight. xlEdgeLeft. For example we could say: CRITERIA CALC EVALUATE IN ROW FORMAT Use this format USE PATTERN.Name. etc. Weight (of each segment: xlDiagonalDown. called USE. While this property is not quite visible without opening the Excel format cell dialog box. LineStyle. Remark: it must be remembered that the format properties of a cell include the LOCK property. If this field is left blank. The USE column The fourth column.) will be ignored. FormulaHidden (the Excel style) (*) OutlookSoft internal use only 54 . and combine them into the final result. will be applied. xlEdgeBottom.Color CONTENT FONT FONTBOLD FONTCOLOR FONTNAME FONTSIZE FONTSTYLE FRAME HORIZONTALALIGNMENT INDENTLEVEL LOCK NUMBERFORMAT PATTERN PROTECTION STYLE VERTICALALIGNMENT {VBA property} (see BORDER) Locked ColorIndex. The USE column can contain one (or a comma-delimited list of some) of the following values: USE ALL BORDER Affected Range Properties ColorIndex.

For example we could have: CRITERIA EVALUATE IN FORMAT ROW CALC Use this format USE PATTERN PARAMETERS FONTSIZE=”12” The instruction in the above example defines in a textual format the font size to use. PARAMETERS CONTENT FONTBOLD FONTCOLOR FONTNAME FONTSIZE FONTSTYLE HORIZONTALALIGNMENT INDENTLEVEL LOCK NUMBERFORMAT STYLE Affected Range Properties All + the text in the cell Locked OutlookSoft internal use only 55 . The main purpose of this feature is not just to allow writing things in textual form. called PARAMETERS.SIZE Here the size of the font is derived from the property SIZE of the ACCOUNT used in the individual cell key. Note that the instructions entered in the PARAMETERS column are applied IN ADDITION to what specified in the USE column. The syntax is: {Format property} = “value” Or: {Format property} = {dimension}. like in the following example: CRITERIA EVALUATE IN FORMAT USE ROW CALC Use this format PATTERN PARAMETERS FONTSIZE=ACCOUNT. The objective is mainly to provide a means to dynamically derive the value of a formatting option from a property of a member.{property} Example: NUMBERFORMAT=ACCOUNT.FORMAT ACCOUNT.Reference documentation The PARAMETERS column A fifth column.SCALING=”1” Here is the full list of the currently supported keywords for the parameters column. can be used to enter some formatting instruction directly in textual format.

An example can be: CRITERIA EVALUATE IN FORMAT ROW CALC Use this format USE PARAMETERS APPLY TO HEADINGS With the above instruction the defined format is only applied to the headings area of the row/column containing a calculated member. called “APPLY TO”. Headings Range and Data Range Apply to the row or column Key Range (or both) Apply to the Page Key range (only valid CRITERIA=DEFAULT) Apply to the row or column Headings Range (or both) Apply to the Data range with The ODDROWS parameter Any of the above APPLY TO values may be optionally combined with an ODDROWS parameter. The APPLY TO column The sixth and last column. Here the ODDROWS parameter has been added to the formats applied to the DATA range OutlookSoft internal use only 56 . Following is an example of what the resulting appearance could be. is used to define WHERE to apply the defined format. (Correct?) The “APPLY TO” column can contain one (or a comma-delimited list of some) of the following values: Value {blank} or ALL KEY PAGEKEY HEADING DATA Meaning Apply to the Key Range. the current formatting instruction is applied to the data range only. This parameter can be sued to trigger the defined formatting only to the (guess what…) odd rows (!) of the desired range of cells. the USE and the PARAMETERS columns will honor the name of any formatting property recognized by Excel VBA code. If this field is left blank. This allows the user to customize its formatting definitions to a very fine level of precision. Please refer to Excel documentation for a full list of the supported Formatting properties.Reference documentation VERTICALALIGNMENT {VBA property} (*) (*) Over and above the keywords listed above.

the format range may contain multiple instructions. it will show a yellow pattern. this mechanism also permits to overlay different formatting properties on the same cell. Each formatting instruction is represented by one row of definitions in the format range. In addition. In the following example a calculated cell will be identified with a special font and. another way to utilize this technique is to define one different format for different ranges of the sheet. if such cell is also locked. Re-arranging the rows of this range in a different order would re-define the order by which the various formats are applied. like in the following example: OutlookSoft internal use only 57 . This mechanism can be useful when the user wants to define what format should win on some other (here the LOCKED format will overwrite the CALC format which will in turn will overwrite the DEFAULT format).Reference documentation Applying multiple formatting instructions Applying multiple formatting instructions As above said. CRITERIA DEFAULT CALC LOCKED EVALUATE IN FORMAT Use this format USE THIS FONT Use this pattern USE FONT PATTERN PARAMETERS APPLY TO Finally. each one defining one formatting definition to apply according to some criteria. Here is a first simple example: CRITERIA DEFAULT CALC LOCKED EVALUATE IN FORMAT Use this format Use this format Use this format USE PARAMETERS APPLY TO This example defines three formatting instructions (one per row) that will be applied in sequence from the top to the bottom.

Alternatively the user may replace the formatting instructions used at design-time with a smaller set of instructions that need to be dynamically re-applied at every refresh of the report. the heading range marked in yellow and the data range marked in blue. while there is no limit in the number of formatting instruction that can be inserted into a formatting range. in that they will instruct the function to apply the Excel bordering formats to the desired range. For large reports with complex formatting instructions the time to refresh may become unacceptably long. it is obvious that executing these instructions takes some time.ACCTYPE=”INC” EVALUATE IN FORMAT Green Yellow Blue USE PATTERN PATTERN PATTERN PARAMETERS APPLY TO KEY HEADING DATA In this (rather silly) example. The difference between the two is however important to remark: The BORDER instruction applies a border to each individual CELL of the range The FRAME instruction applies an external border to the RANGE as a whole Here below is an example of a report where a border has been applied to the calculated CELLS of the DATA section. In some cases it may be appropriate to only apply the formatting instructions while the report is being designed. One thing to note is that the example does not specify where to evaluate the criteria and that the “APPLY TO” keywords do not specify whether the key or the heading should belong to rows or columns.Reference documentation BORDER vs. OutlookSoft internal use only 58 . FRAME CRITERIA ACCOUNT. FRAME The instructions BORDER and FRAME have a similar meaning. especially if some of the formatting instructions must be applied cell by cell (as opposed to an entire row or column at once). and the more there are instructions to process the slower the refresh action will be. For the above reason it is advisable to try and keep the amount of formatting instructions to the required minimum. all income accounts will have the key range marked in green. or even cell). the instructions will automatically apply to row or columns according to the position of the account key (page. As a result. using the BORDER instruction. and then disable them altogether.ACCTYPE=”INC” ACCOUNT.ACCTYPE=”INC” ACCOUNT. Warning: BORDER vs. column or row. once the report is put in production.

when the border is applied to the calculated ranges of the DATA section.Reference documentation BORDER vs. using the FRAME instruction. FRAME The same report has this appearance. Here is another example of how to apply FRAMES to entire ranges of the report: OutlookSoft internal use only 59 .

This technique is much more flexible than what is provided by Excel conditional formatting. which is only limited to 3 criteria and is hard to visualize. OutlookSoft internal use only 60 .Reference documentation Applying formats to values Applying formats to values An interesting use of our conditional formatting is to apply it to the value of the cells. like in the example shown below.

to apply the formats together with the content. Note how the ALL keyword has also been used. OutlookSoft internal use only 61 .Reference documentation Using the CONTENT keyword In the following example empty cells have been assigned a yellow pattern Using the CONTENT keyword The CONTENT keyword can be used in the USE column to instruct the function that the text (or value) of the FORMAT column must be applied to the desired range. This feature can be used to overlay some text-based markers to some cells meeting some criteria. In the following example two EVDRE functions have been used to generate two columns side by side with the same content. The second EVDRE however applies the CONTENT format to the DATA range using a VALUE as CRITERIA.

In the example show below the criteria is ACCOUNT. to scale your numbers (what you asked for. The approach we suggest is the following. This can be hard coded or dynamically derived from a property (the FORMAT property in the example) 3) You make sure that only the NUMBERFORMAT property is set (with the USE parameter) and only on your data cells (with the APPLY TO parameter) The final touch. (Note that in the above example the FORMAT and SCALING properties are being displayed in the row headings range. 1) You use a property of the accounts to trigger the desired formatting in the CRITERIA parameter of the format range. in the end!). there is no need to retrieve them in the sheet) See Excel cell format custom options to explore other possibilities. OutlookSoft internal use only 62 . obviously. as.000. This is only done to clarify the example.###." will divide your numbers by 1.SCALING=1 2) You define the desired format for your numbers in the PARAMETERS field. is to include a trailing comma in the formatting string. and actually with a great deal of additional flexibility.Reference documentation Scaling numbers Scaling numbers Using the appropriate formatting instructions it is possible to replicate the scaling feature supported by the very popular EVGTS function. For example this string "#.

xls or MyReportStyle1.Reference documentation Building and using your own “style” sheets Building and using your own “style” sheets It may be complex and time consuming to come up with a nice looking set of formatting definitions for your application’s reports or schedules. • Create a (dummy?) report or schedule using an Excel workbook containing one EVDRE function with the desired formatting definitions and save it locally (in My Reports or My Schedules) or on the server. the new EVDRE function will import all formatting definitions from the selected style sheet. and you may want to be able to re-use these definitions automatically in all your WebExcel templates. This is currently possible when a new report is being defined using the quick build wizard. Note that all the following Excel definitions will be imported automatically from the style workbook: • • • • • The Format range of the EVDRE function All WebExcel workbook options All Excel-defined styles The workbook color palette The range of cells to the right of the page key range and above the column headings (which might contain some “title” for the report) OutlookSoft internal use only 63 .xls. For example you may call it MyInputStyle1. When creating a new report or schedule template using the Quick Build wizard: o o o • Select the “Include FORMAT Range” option Pick the desired “Import STYLE” radio button (either “from local” or “from server”) Choose the appropriate style sheet (say MyReportStyle1. What the user has to do is described here below.xls) • When you hit the Ok button.

A style workbook may contain formatting instructions defining what cells should be locked and what not. OutlookSoft internal use only 64 . However the style workbook cannot be saved as protected. the reports already built using the older version of the style will NOT be automatically updated to use the new style definitions (this might be implemented in a future release). The protection. if desired. will need to be manually turned on in each one of the new schedules built using such style. This means that if the style workbook is later modified.Reference documentation Building and using your own “style” sheets Remarks Currently an EVDRE style may only be imported when a new report is being built using the quick build wizard.

etc. The event BEFORE_EVDRE_REFRESH A BEFORE_EVDRE_REFRESH event is fired AFTER all EvDre expansions are performed and BEFORE starting data retrieval. and not by the position of the data range or some other range The functions are processed by sheet. Expanding multiple EVDREs When a workbook contains multiple EVDRE functions and the user request an expansion (or a refresh).) • • OutlookSoft internal use only 65 . in alphabetical order (irrespective of the position of each sheet! Sheet A first. Here are the appropriate hints: • • The order is driven by the position of the function itself. even if B comes before A in the workbook) Within a sheet.and after-ranges of the expansions are inserted. with their formats This sequence has been carefully tuned in order to make sure that the formats of the before and after ranges as well as of the formatted sets are never overridden by the formatting instructions of the format range. the functions are processed by row. the full lists of members are created (this includes the members of the formatted sets.e.and after-ranges of sorting are inserted. if they want to adjust the keys generated by an expansion. if some portions of the report must contain some already-formatted data. In other words. moving from left to right (first all EVDRE in column A. the functions are processed by column. For the adventurous. then all EVDRE in column B. the format instructions will not break such pre-defined formats.Reference documentation The sequence of events The sequence of events To fully understand what happens when a report is expanded it may be helpful to know exactly what sequence of events takes place when an expansion is triggered. i. according to the NAME of the sheet. it may be sometimes important to know the order in which the functions will be processed.) Within a column. etc. then sheet B. then the EVDRE in row 2. moving top-down (first the EVDRE in row 1. if defined) The suppressions are performed The values are refreshed The formatting instructions are applied The sorting instructions are applied The before. The users may associate their own VBA code to this event. here is such sequence: • • • • • • • • The member sets to apply are expanded. with their formats The formats of the formatted sets are applied The before. before the data are retrieved from the database.

It is important to remember that the content of the file does not work by exception. even if only one instruction must be added or modified. Cache Ratio=0.01. If a user wants to customize this connection string to his own preferences.Cache Ratio2=0. otherwise the corresponding settings will be lost. it may happen that fine-tuning them might improve the overall performance of the engine in a particular installation.xml. The format of the file content is: <root> <parameter id="CONNECTION_OPT" values="<connection string >"/> </root> Here are some examples: Example1 <root> <parameter id="CONNECTION_OPT" values=". all other default instructions must be written in the file. OutlookSoft internal use only 66 ."/> </root> Sets the OLAP connection to Microsoft defaults Example2 <root> <parameter id="CONNECTION_OPT" values="connect timeout=30. Client Cache Size=80. Cache Ratio2=0. but completely replaces the default connection string. named ev4dataserver.01. he can do so by writing the new connection string in an XML file to be stored in OutlookSoft\WebSrvr\Bin.01 While these settings have proven to be adequate in the majority of cases.Reference documentation Customizing EVDRE OLAP connection Customizing EVDRE OLAP connection The query engine used by EVDRE to access the database opens a connection to OLAP using a default connection string containing the following instructions: Client Cache Size=80. Cache Ratio=0. Client Cache Size=100"/> </root> Sets the connection timeout to 30 seconds and the client cache size to 100K Example3 <root> <parameter id="CONNECTION_OPT" values="connect timeout=30.01 "/> </root> Sets the connection timeout to 30 seconds and the client cache size to 80% of physical memory It also preserves the default values for the Cache Ratios. In other words.

When an expansion is triggered with this option turned on. This keyword basically controls how far down in the expansion we want to go. Option GroupExpansion This new option is only activated when one of the expanded axes contains the two dimensions GROUP(*) and ENTITY. as below described. In most cases this dimension is also a dimension of type “R” (Currency) and is very often used in legal consolidation applications to retain the contribution of each ENTITY into different consolidated GROUPS of entities. as set in the OWNERSHIP cube. according to the keyword defined in the member set field of the GROUP dimension. Assume you have the following members in the GROUP dimension. the two dimensions GROUP and ENTITY expand in a combined fashion. but only how EVDRE supports the navigation in a dynamic hierarchy. with the values in the properties PARENT_GROUP and ENTITY defined as follows: ID G1 G2 G3 G4 G5 PARENT_GROUP G1 G1 G2 G2 ENTITY E_G1 E_G2 E_G3 E_G4 E_G5 Also assume that this “static” hierarchy (defined here above using the PARENT_GROUP property and shown by the members in bold here below) extends down into some other ENTITIES (see the E(n) members here below). and stored in a separate cube. (*) Technically. OutlookSoft internal use only 67 . In this document we do not explain how a dynamic hierarchy is defined and maintained.Reference documentation Dynamic hierarchies Dynamic hierarchies The EVDRE function has been recently enabled to support “dynamic hierarchies” in the ENTITY dimension. Dynamic hierarchies are hierarchies that can be made specific to each CATEGORY and TIME combination and are defined in our product using a special tool called the Dynamic Hierarchy Editor. a GROUP dimension is a dimension containing the property GROUP_CURRENCY. for the current CATEGORY and TIME combination. called an OWNRSHIP cube. For a full description of dynamic hierarchies please refer to the related document.

assume that the current view has G1 as current member of the GROUP dimension. Finally.Reference documentation Option GroupExpansion Here is how the hierarchy appears in the Dynamic Hierarchy Editor: (**) The sets of TIME periods and CATEGORIES on which to base the expansion are those associated with the current EVDRE function. either as defined in the PAGE KEY range or in the opposite axis (For example. In our example. Here is what the various keywords will generate: SELF This keyword will generate all rows relative to the current group (SELF) that intersect with all valid entities for such group. the valid entities are E_G1. E1 and E2. if GROUP and ENTITY are in ROWS. the TIME and CATEGORY dimensions must be either in PAGE or in COLUMNS). as follows: OutlookSoft internal use only 68 .

G5 and G3 are indeed all dependants (ALL) of the current group G1. These children are in turn associated with all their valid ENTITY members. These dependants are in turn associated with all their valid ENTITY members. G4. ALL This keyword will generate the following rows for the following GROUP/ENTITY intersections: … where G2. BAS This keyword will generate the following rows for the following GROUP/ENTITY intersections: OutlookSoft internal use only 69 .Reference documentation Option GroupExpansion DEP This keyword will generate the following rows for the following GROUP/ENTITY intersections: … where G2 and G3 are indeed the children (DEP) of the current group G1.

The other keywords available for “regular” expansions of member sets (MEMBERS. this keyword would return the following members: E1 E2 This keyword also supports a direct assignment of the GROUP to use. GALL This basically corresponds to the list of all base level groups (BAS) below the current group G1 . if G1 is the current member of the GROUP dimension. as found in the dynamic hierarchy stored in the OWNERSHIP cube. The GDEP keyword generates the list of ENTITIES defined as dependents of the GROUP set in the page key. as here we do not include G2/E_G2. with the following syntax: GDEP(GroupName) Finally. using the syntax: GDEP(GroupName1 AND GroupName2) This syntax will generate the list of ENTITIES existing as dependents of both GroupName1 and GroupName2. for the current CATEGORY and TIME combination(s). GALL In presence of a dynamic hierarchy. BASMEMBERS) and other property-based filtering criteria are currently not supported. GBAS. This “combined filter” feature is not yet supported OutlookSoft internal use only 70 . intersected with all base level entities they are associated with.) The group expansion feature supports the PARENTAFTER keyword. Using the above example.Reference documentation The ENTITY expansion keywords GDEP. GBAS. The ENTITY expansion keywords GDEP. G4/E_G4. the ENTITY dimension also supports the member set expansion keywords GDEP (Short for “Group Dependents”). These keywords are only activated when the current application has a dimension of type GROUP as above defined. GBAS (“Group Base level members”) and GALL (“Group All members below current parent”). this keyword will also be able to perform a combined filtering. (Note that this is a slight inconsistency with what we display in the other cases. etc.

GBAS.Reference documentation The ENTITY expansion keywords GDEP. GALL OutlookSoft internal use only 71 .

TXT (client) <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="EVDRE"><![CDATA[started]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="EVDRE"><![CDATA[Caller: Sheet1!$A$1 Calc mode: 4105]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="EVDRE"><![CDATA[complete]]></debug> <debug time="2007 0111 11:54:10" module="clsMain" function="isWBOffline"><![CDATA[lock status= 0]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="doExpand"><![CDATA[started]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="doExpand"><![CDATA[before enable]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="doExpand"><![CDATA[Current Excel calculation mode: -4105]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="calculateWorkbook"><![CDATA[started]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="EVDRE"><![CDATA[started]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="EVDRE"><![CDATA[Caller: Sheet1!$A$1 Calc mode: 4105]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="EVDRE"><![CDATA[complete]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="calculateWorkbook"><![CDATA[Sheet: Sheet1]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="calculateWorkbook"><![CDATA[Sheet: Sheet2]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="calculateWorkbook"><![CDATA[Sheet: Sheet3]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="calculateWorkbook"><![CDATA[complete]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="doExpand"><![CDATA[after enable]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="expandSheets"><![CDATA[Started. EvDRE.Debugging EvDRE Appendix I . to facilitate the job of our development team in analyzing a bug. OutlookSoft internal use only 72 .TXT EVDATASERVER_TRACE.TXT Location The client’s My Documents folder {Webfolders}\{Appset}\{app}\PrivatePublications\{user} {Webfolders}\{Appset}\{app}\PrivatePublications\{user} The EVDRE_LOG file and the EVDATASERVER_DEBUG file will contain the history of all actions performed by the function (on the client and on the server respectively). Here is a sample of the content of EVDRE_LOG. To turn on the feature it is enough to create these files in their respective folders.]]></debug> <debug time="2007 0111 11:54:10" module="clsExpand" function="Class_Initialize"><![CDATA[OK]]></debug> <debug time="2007 0111 11:54:10" module="clsExpand" function="runExpand"><![CDATA[unhiding rows.. it may be helpful to turn on a debugging feature embedded in EvDRE’s client-side module and server-side module. while the EVDATASERVER_TRACE file will keep track of all the queries issued by EvDRE’s query engine.. The files are: File name EVDRE_LOG.]]></debug> <debug time="2007 0111 11:54:10" module="clsExcelFunction" function="expandSheets"><![CDATA[Complete.. will automatically append a set of information to some text files. Current EVDRE: Sheet1!$A$1]]></debug> <debug time="2007 0111 11:54:10" module="clsExpand" function="runExpand"><![CDATA[unhiding cols. they must be deleted or renamed.TXT EVDATASERVER_DEBUG. The feature can be turned on or off (files created or deleted) independently for each one of the three files. To turn it off. if they exist.Reference documentation Appendix I .Debugging EvDRE In case of problems.]]></debug> <debug time="2007 0111 11:54:10" module="clsExpand" function="Class_Terminate"><![CDATA[Complete]]></debug> ……. Current EVDRE: Sheet1!$A$1]]></debug> <debug time="2007 0111 11:54:10" module="clsExpand" function="Class_Terminate"><![CDATA[Started.. when running.

Reference documentation

Appendix I - Debugging EvDRE

Here is a sample of the content of EVDATASERVER_DEBUG.TXT (server)
<debug time="2007 0111 11:54:10" module="clsXML" function="query"><![CDATA[SQE Code Version: 5.0.444]]></debug> <debug time="2007 0111 11:54:10" module="clsXML" function="query"><![CDATA[Started...]]></debug> <debug time="2007 0111 11:54:10" module="clsXML" function="query"><![CDATA[Decompressing parameter...]]></debug> <debug time="2007 0111 11:54:10" module="clsXML" function="doQuery"><![CDATA[Started...]]></debug> <debug time="2007 0111 11:54:10" module="clsXML" function="doQuery"><![CDATA[parameters: <parameter><CV application="FINANCE" CATEGORY="ACTUAL" DATASRC="INPUT" ENTITY="SALESITALY" INTCO="NON_INTERCO" MEASURES="PERIODIC" RPTCURRENCY="LC"/><Axes><column dimension="TIME" members="2005.TOTAL|2005.Q1|2005.JAN|2005.FEB|2005.MAR|2005.Q2|2005.APR|2005.MAY|2005.JUN|2005.Q3|2005.JUL|200 5.AUG|2005.SEP|2005.Q4|2005.OCT|2005.NOV|2005.DEC"/><row dimension="ACCOUNT" members="NETINCOME|PRETAXINCOME|OPERATINGINCOME|GROSSMARGIN|TOTREV|EXTSALES|ICSALES|COSTOF GOODS|3RDPARTY|RAWMATERIALS|DIRECTLABOR|OVERHEADCOSTS|ICCOST|TOTOPEXP|SMEXP|GAEXP|TOTALD EPTEXP|TOTALPERSONNELEXP|SALARIES|SALARIES.CAT1|SALARIES.CAT2|FRINGEBENEFIT|COMMISSION|TRAVEL ENT.CAT1|TRAVELENT.CAT2|TRAVELENT|SUBCONTRACTORS|SUPPLIES|ICDIFF|NONDEPTEXP|DEPRECIATION|AMO RT|DIVEXP|OTHEREXP|TAXES"/></Axes><options suppresszero="true"/></parameter> ]]></debug> <debug time="2007 0111 11:54:10" module="clsDataQuery" function="EverestLogon5"><![CDATA[Connecting to AppSet: APSHELL5]]></debug> <debug time="2007 0111 11:54:10" module="clsDataQuery" function="EverestLogon5"><![CDATA[Logging on with User: PIEROLAB\pferreri]]></debug> <debug time="2007 0111 11:54:10" module="clsDataQuery" function="EverestLogon5"><![CDATA[create meta component...]]></debug> <debug time="2007 0111 11:54:10" module="clsDataQuery" function="EverestLogon5"><![CDATA[objMeta.GetAppSetXML worked...<APPSET><APPSETID><![CDATA[ApShell5]]></APPSETID><APPSETDESC><![CDATA[ApShell for V5]]></APPSETDESC><INSIGHTENABLE><![CDATA[False]]></INSIGHTENABLE><VERSION><![CDATA[500000]]></VE RSION><ACCESS><![CDATA[7]]></ACCESS><SQLSERVER><![CDATA[PIEROLAB]]></SQLSERVER><SQLINSTANCE> <![CDATA[]]></SQLINSTANCE><SQLPORT><![CDATA[]]></SQLPORT><SQLPROVIDER><![CDATA[SQL]]></SQLPROV IDER><SQLSERVERWITHPORT><![CDATA[PIEROLAB]]></SQLSERVERWITHPORT><OLAPSERVER><![CDATA[PIERO LAB]]></OLAPSERVER><OLAPINSTANCE><![CDATA[]]></OLAPINSTANCE><OLAPPORT><![CDATA[]]></OLAPPORT ><OLAPSERVERWITHPORT><![CDATA[PIEROLAB]]></OLAPSERVERWITHPORT><INSIGHTOLAPSERVER><![CDATA [PIEROLAB]]></INSIGHTOLAPSERVER><INSIGHTOLAPINSTANCE><![CDATA[]]></INSIGHTOLAPINSTANCE><INSIG HTOLAPPORT><![CDATA[]]></INSIGHTOLAPPORT><INSIGHTOLAPSERVERWITHPORT><![CDATA[PIEROLAB]]></IN SIGHTOLAPSERVERWITHPORT><FILESERVER><![CDATA[PIEROLAB]]></FILESERVER><DATAPATH><![CDATA[C:\ OutlookSoft\Data]]></DATAPATH><REPORTSERVER><![CDATA[PIEROLAB]]></REPORTSERVER><EXTREPORTSERVE R><![CDATA[PIEROLAB]]></EXTREPORTSERVER><REPORTWEBSITE><![CDATA[1]]></REPORTWEBSITE><REPORTP ROTOCOL><![CDATA[http]]></REPORTPROTOCOL><REPORTINSTANCE><![CDATA[]]></REPORTINSTANCE><REPOR TPORT><![CDATA[80]]></REPORTPORT><REPORTAUTHTYPE><![CDATA[Integrated]]></REPORTAUTHTYPE><REPOR TFULLPATH><![CDATA[http://PIEROLAB:80/ReportServer?/]]></REPORTFULLPATH><EXTREPORTFULLPATH><![CDAT A[http://PIEROLAB:80/ReportServer?/]]></EXTREPORTFULLPATH><APPSERVER><![CDATA[PIEROLAB]]></APPSERVER ><EXTAPPSERVER><![CDATA[PIEROLAB]]></EXTAPPSERVER><APPWEBSITE><![CDATA[1]]></APPWEBSITE><APP PROTOCOL><![CDATA[http]]></APPPROTOCOL><APPPORT><![CDATA[80]]></APPPORT><APPAUTHTYPE><![CDATA[ Windows]]></APPAUTHTYPE><APPFULLPATH><![CDATA[http://PIEROLAB:80]]></APPFULLPATH><EXTAPPFULLPAT H><![CDATA[http://PIEROLAB:80]]></EXTAPPFULLPATH><EXTWEBSERVER><![CDATA[PIEROLAB]]></EXTWEBSER VER><WEBSERVER><![CDATA[PIEROLAB]]></WEBSERVER><WEBWEBSITE><![CDATA[1]]></WEBWEBSITE><WEB PROTOCOL><![CDATA[http]]></WEBPROTOCOL><WEBPORT><![CDATA[80]]></WEBPORT><WEBAUTHTYPE><![CDA TA[Windows]]></WEBAUTHTYPE><WEBFULLPATH><![CDATA[http://PIEROLAB:80]]></WEBFULLPATH><EXTWEBFU LLPATH><![CDATA[http://PIEROLAB:80]]></EXTWEBFULLPATH></APPSET>]]></debug> <debug time="2007 0111 11:54:10" module="clsDataQuery" function="EverestLogon5"><![CDATA[objMeta version : 500000]]></debug> <debug time="2007 0111 11:54:10" module="clsDataQuery" function="EverestLogon5"><![CDATA[Connecting to OLAP...]]></debug> <debug time="2007 0111 11:54:10" module="clsXML" function="connectOLAP"><![CDATA[Connection String: Data Source=PIEROLAB;Provider=MSOLAP;Client Cache Size=80;Cache Ratio=0.01;Cache Ratio2=0.01]]></debug> ….

OutlookSoft internal use only

73

Reference documentation

Appendix I - Debugging EvDRE

Here is a sample of the content of EVDATASERVER_TRACE.TXT (server)
2007 0111 11:54:10# --------------------------------------------------Analyzing report... 2007 0111 11:54:10# Application Storage: PERIODIC 2007 0111 11:54:10# Input cells are 288 on 595 (48% Minimum required for SQL is 20%) 2007 0111 11:54:10# MEASURE:PERIODIC 2007 0111 11:54:10# Required queries are 3 2007 0111 11:54:10# 1 <II> 2007 0111 11:54:10# -------------------[TIMEID],[ACCOUNT],|[TIMEID] in (N'20050100',N'20050200',N'20050300',N'20050400',N'20050500',N'20050600',N'20050700',N'20050800',N'20050900',N'20051000', N'20051100',N'20051200') AND [ACCOUNT] in (N'EXTSALES',N'ICSALES',N'3RDPARTY',N'RAWMATERIALS',N'DIRECTLABOR',N'OVERHEADCOSTS',N'ICCOST',N'SM EXP',N'GAEXP',N'SALARIES.CAT1',N'SALARIES.CAT2',N'FRINGEBENEFIT',N'COMMISSION',N'TRAVELENT.CAT1',N'TR AVELENT.CAT2',N'TRAVELENT',N'SUBCONTRACTORS',N'SUPPLIES',N'ICDIFF',N'DEPRECIATION',N'AMORT',N'DIVEX P',N'OTHEREXP',N'TAXES') AND [CATEGORY]=N'ACTUAL' AND [DATASRC]=N'INPUT' AND [ENTITY]=N'SALESITALY' AND [INTCO]=N'NON_INTERCO' AND [RPTCURRENCY]=N'LC'|FINANCE 2007 0111 11:54:10# Returned records count: 7 2007 0111 11:54:10# Time to run query:0.1 2007 0111 11:54:10# 2 <IC> 2007 0111 11:54:10# -------------------select non empty {[TIME].[2005.JAN],[TIME].[2005.FEB],[TIME].[2005.MAR],[TIME].[2005.APR],[TIME].[2005.MAY],[TIME].[2005.JUN],[TIM E].[2005.JUL],[TIME].[2005.AUG],[TIME].[2005.SEP],[TIME].[2005.OCT],[TIME].[2005.NOV],[TIME].[2005.DEC]} on 0, non empty {[ACCOUNT].[NETINCOME],[ACCOUNT].[PRETAXINCOME],[ACCOUNT].[OPERATINGINCOME],[ACCOUNT].[GROSS MARGIN],[ACCOUNT].[TOTREV],[ACCOUNT].[COSTOFGOODS],[ACCOUNT].[TOTOPEXP],[ACCOUNT].[TOTALDEPTE XP],[ACCOUNT].[TOTALPERSONNELEXP],[ACCOUNT].[SALARIES],[ACCOUNT].[NONDEPTEXP]} on 1 from [FINANCE] where ([CATEGORY].[ACTUAL],[DATASRC].[INPUT],[ENTITY].[SALESITALY],[INTCO].[NON_INTERCO],[MEASURES].[PERIO DIC],[RPTCURRENCY].[LC]) 2007 0111 11:54:10# Returned records count: 17 2007 0111 11:54:10# Time to run query:0.1 2007 0111 11:54:10# 3 <CA> 2007 0111 11:54:10# -------------------select non empty {[TIME].[2005.TOTAL],[TIME].[2005.Q1],[TIME].[2005.Q2],[TIME].[2005.Q3],[TIME].[2005.Q4]} on 0, non empty {[ACCOUNT].[NETINCOME],[ACCOUNT].[PRETAXINCOME],[ACCOUNT].[OPERATINGINCOME],[ACCOUNT].[GROSS MARGIN],[ACCOUNT].[TOTREV],[ACCOUNT].[EXTSALES],[ACCOUNT].[ICSALES],[ACCOUNT].[COSTOFGOODS],[ACC OUNT].[3RDPARTY],[ACCOUNT].[RAWMATERIALS],[ACCOUNT].[DIRECTLABOR],[ACCOUNT].[OVERHEADCOSTS],[ ACCOUNT].[ICCOST],[ACCOUNT].[TOTOPEXP],[ACCOUNT].[SMEXP],[ACCOUNT].[GAEXP],[ACCOUNT].[TOTALDEPT EXP],[ACCOUNT].[TOTALPERSONNELEXP],[ACCOUNT].[SALARIES],[ACCOUNT].[SALARIES.CAT1],[ACCOUNT].[SAL ARIES.CAT2],[ACCOUNT].[FRINGEBENEFIT],[ACCOUNT].[COMMISSION],[ACCOUNT].[TRAVELENT.CAT1],[ACCOUN T].[TRAVELENT.CAT2],[ACCOUNT].[TRAVELENT],[ACCOUNT].[SUBCONTRACTORS],[ACCOUNT].[SUPPLIES],[ACCO UNT].[ICDIFF],[ACCOUNT].[NONDEPTEXP],[ACCOUNT].[DEPRECIATION],[ACCOUNT].[AMORT],[ACCOUNT].[DIVEXP ],[ACCOUNT].[OTHEREXP],[ACCOUNT].[TAXES]} on 1 from [FINANCE] where ([CATEGORY].[ACTUAL],[DATASRC].[INPUT],[ENTITY].[SALESITALY],[INTCO].[NON_INTERCO],[MEASURES].[PERIO DIC],[RPTCURRENCY].[LC]) 2007 0111 11:54:10# Returned records count: 27 2007 0111 11:54:10# Time to run query:0.1 2007 0111 11:54:10# Time to complete:0.3

OutlookSoft internal use only

74

Reference documentation

Appendix II - Changes introduced after 4.2 SP3 and 5.0 SP1

Appendix II - Changes introduced after 4.2 SP3 and 5.0 SP1
• • • • • • • • • • • • • • • • • • • • • Options: TOP n and BOTTOM n keywords have been provided to support data filtering. Suppression parameters: the RETAIN(<member>) keyword has been implemented to preserve a member for rows or columns with no value. Formatting: the PROTECTION keyword for USE parameter has been added to support application of the entire cell Protection section (Locked+FormulaHidden). Insert Member: added UI option to allow inserting BEFORE current row/column. Insert Member: the Insert action triggered by the "Y" keyword has become dimension-specific as opposed to the previous axis-specific behavior. Options: AutoFitCol works on the report range only, no longer on the entire UsedRange. Expansion: before executing an expansion, existing merged cells in the report range are removed to avoid expansion errors. EvDre Wizard: does not change the Worksheet color if an EvDre already exists. Options: implemented QueryViewName. Options: implemented SqlOnly. EvDre Wizard: generates a new layout of the ranges. Expansion: implemented "3D Expansions". EvDre Wizard: added support for "3D Expansions". Formatting: BORDER is now applied by-cell (USE section). Formatting: added support for FRAME (USE section). Formatting: added support for STYLE (USE and PARAMETERS sections). Formatting: added support for cell CONTENT (USE and PARAMETERS sections). Formatting: added support for all Cell properties using VBA syntax (USE and PARAMETERS sections). Expansion: BEFORE_EVDRE_REFRESH event is fired AFTER all EvDre expansions are performed and BEFORE starting data retrieval. Data Send: it is now possible to use the "DELETE" key to zero-out data range cells (a blank cell in the DataRange is sent as zero if a value is present in the data cache for that cell). Expansion: the sequence of operations has changed as follows: 1.Expansion (taking account of MemberSet of FormattedRange), 2.Suppression, 3.Data Refresh, 4.Formatting, 5.Sorting, 6.Insertion of Before and After Ranges of SortRange, 7.Application of Format of FormattedRange, 8.Insertion of Before and After Ranges of ExpandRange Formatting: the APPLY TO parameter now supports the PAGEKEY keyword to provide formatting of the PageKeyRange. If AutoFitCol option is selected, the entire column of the PageKeyRange as well as the entire report-range columns are AutoFitted. Insert Member: the FormattedRange is inserted if present in the report design. Insert Member: the operation is no longer allowed on rows (or columns) containing EV_BEFORE or EV_AFTER placeholders. MemberSet: Implemented new keywords to control returned Levels: LDEP, LALL, LBAS, LMEMBERS, LBASMEMBERS. Options: implemented a Range of Options that can be used as an alternative to the comma separated list of Options. The parameter name has also changed: "OptionRange" is the new name. However the old parameter name "Options" is still supported for backward compatibility. Wizard: an option has been added to auto-generate the OptionRange. Wizard: an option has been added to auto-expand the current EvDre. The property CALC has been added to EvDre MEASURES metadata to support CALC formatting CRITERIA.

• • • • • • • • •

OutlookSoft internal use only

75

.............................................................................21 Formulas inside the before........................................................26 Sorting ....................................................34 “Multiple” expansions ......................................10 Static reports and schedules..........................................................................................................37 Formatted member sets.................................0 SP1 Table of Contents About this version .......................2 Introduction ....................Reference documentation Appendix II ............................................4 How the key of a cell is built..................................................9 The FormatRange (optional) ........................................................................................................................................................................................................................................................................................Changes introduced after 4........................18 The ColKeyRange and RowKeyRange in expansions .........................................................................................................................................................................................................................33 Expanded CelKeyRanges.....14 Dynamic reports and schedules (expansions) ...............................................................................14 ExpandIn ................................................................................................2 SP3 and 5.....................................................7 The CellKeyRange (optional) .........................................................................................................................18 Suppress (optional) ........and after......................................................................................................................................................................................................................................28 The EvDRE quick-build wizard........15 Dimension ................................................23 Expansions across sheets (“3D expansions”) ................................................................................................................................................13 Multiple key ranges ...................................................ranges......................................38 Unformatted member sets .................................................................................................................................................36 Suppressions based on a different region......................15 BeforeRange and AfterRange (optional) ......................................................................10 The SortRange (optional)..............................................................5 The PageKeyRange (optional)........................12 Formulas embedded in the data range ......................15 MemberSet............................................40 Retaining members in suppressions ...............................6 The RowKeyRange (required) ..........10 The EvRNG( ) function........7 Intersecting the ColKeyRange with the RowKeyRange ....................................................................41 OutlookSoft internal use only 76 ........................................................................................................33 “Repeated” Expansions .........................21 The BeforeRange and the AfterRange in expansions...........................................................................................12 Blank cells in the RowKeyRange or in the ColKeyRange .................3 The syntax ...........................................................................................................................................................................................................................39 Block suppressions .......................................................................................................................................8 The GetOnlyRange (optional) .........................................................18 Insert (optional) .................................................................6 The ColKeyRange (required) .................2 Quick start.....................................................................................................11 Multi-dimensional key ranges ........................40 Multiple members in the PageKeyRange.....31 EvDRE advanced features.......................................3 The keys range ...............................................................................................

.....................................................................................................2 SP3 and 5...................54 USE........................................0 SP1 Workbook option “Refresh by sheet”........................................................................................................................................................................46 Option PctInput.............................................................................................................47 Suppression-Only options ..........47 Option SQLOnly .......................51 VALUE ....................................................55 PARAMETERS...................................Reference documentation Appendix II ....................................................................................................................................................................................................46 Option NoSend..............................................................................................................................................................................................................................................................................................................46 Option ShowComments ........................43 Option AutoFitCol .................................................51 Introduction ...........................55 Affected Range Properties ......................................61 Scaling numbers ..................................................64 OutlookSoft internal use only 77 ......56 The ODDROWS parameter...................................... FRAME .......................................46 Option QueryViewName.........................................................................................51 RANGE .........................................................................56 {blank} or ALL ..................56 Applying multiple formatting instructions..............................................................................................51 The columns of the formatting range ..................................................................................................................................................................................................................................................62 Building and using your own “style” sheets.......................................................................53 The USE column ......................................................................46 Options QueryEngine and QueryType ...........................................................................................55 The APPLY TO column .......................................................57 BORDER vs........................................................................Changes introduced after 4...........................................44 Options BOT and TOP ..........................................................................................................60 Using the CONTENT keyword ......................................................................................................................................................................................................................................................................................................................................................................................................................................52 The “EVALUATE IN” column ..............................................48 Using a special view ........48 Option SuppressNoData ....................63 Remarks ..............49 Drill-Downs ...46 Option NoRefresh....................................................................................51 Extending the functionality of the FormatRange ........................................................................52 The CRITERIA column...........................................................................................................................................................................47 Option SumParent........................49 Advanced formatting: the FORMAT RANGE ..................................................51 Overall approach....................................45 Options HideColKeys and HideRowKeys...58 Applying formats to values..........................................54 Affected Range Properties ...............................................................................................................................................54 The PARAMETERS column .................................................................................................................................45 Option ExpandOnly .............................................................................................53 The FORMAT column .........................47 Option ShowNullAsZero ..........................................................................................................45 Option DumpDataCache .................................41 EVDRE Options ...............

.......................Changes introduced after 4.......70 Appendix I ..........................................................................................................66 Dynamic hierarchies ..72 Appendix II .............................0 SP1 ...................................65 The event BEFORE_EVDRE_REFRESH........................ GALL ................75 OutlookSoft internal use only 78 ...............................................................................................................65 Expanding multiple EVDREs .........................Debugging EvDRE...................... GBAS...........Reference documentation The sequence of events..........67 The ENTITY expansion keywords GDEP...............................2 SP3 and 5...............................................65 Customizing EVDRE OLAP connection .......................................................................67 Option GroupExpansion.....................................

Sign up to vote on this title
UsefulNot useful