サンプル15-C: 平均行

このEssbaseレポート・スクリプトのサンプルでは、計算中に数値とパーセントが部分的に含まれる平均行に列が制限されます。

レポートでは、地域の合計売上高が格納された、以前に計算された行を使用して、地域の平均パーセンテージの合計を計算する必要があります。また、レポートでは(平均を出すために)地域の数も計算する必要があります。地域の数は、キューブ・アウトラインでは定数として設定されます。この数に変更があった場合は、レポート定義を修正する必要があります。地域の数が計算されない場合は、検出が容易でないエラーが発生する可能性があります。

 Actual Total Sales for the 3 Video Products in Qtr1:  36,914   35,126   25,119 
 Budget Total Sales for the 3 Video Products in Qtr1:  37,300   34,250   26,940 
 ==================================================  ======   ======   ====== 
                  Qtr1

                      Television               VCR             Camera
                     Profit Profit_%       Profit Profit_%  Profit   Profit_% 
                     ======  =======       ====== ========  ======  ========= 
 New_York   Budget    1,020   20.40%        1,382   31.41%     540     16.68% 
            Actual      847   17.66%        1,243   29.62%     352     11.79% 
 Boston     Budget    1,020   24.88%        1,344   35.37%     277     11.79% 
            Actual    1,405   33.48%        1,002   27.49%     207      9.28% 
 Chicago    Budget    1,100   25.58%        1,062   31.24%     430     16.54% 
            Actual      728   16.51%        1,190   30.68%     369     14.72% 
 San_Fran~  Budget      930   21.63%          718   21.12%   1,270      31.75 
            Actual      674   15.54%        1,197   31.12%   1,000      27.4% 
 Seattle    Budget      390   15.60%          973   32.98%     376     16.00% 
            Actual      340   12.20%          977   31.56%     312     13.79% 
 Denver     Budget      690   22.26%          929   30.97%     462     18.86% 
            Actual      334   11.94%          914   30.48%     361     15.92% 
Los_Ange~   Budget      810   18.41%        1,101   29.76%     506     18.40% 
            Actual      429    9.11%        1,127   28.81%     377     14.62% 
 Dallas     Budget      780   21.08%        1,341   36.24%     333     13.88% 
            Actual      163    4.69%        1,055   30.28%     243     10.71% 
 Houston    Budget      690   24.64%        1,128   36.39%     432     18.00% 
            Actual      256   10.44%        1,064   34.98%     241     10.98% 
 Phoenix    Budget      630   20.32%          894   31.93%     498     20.75% 
            Actual      251    8.49%          940   31.07%     261     11.99% 

                                    Total Regions Averages

 Avg     Budget   806    21.61%    1,087    31.74%      512     19.02% 
 Avg     Actual   543    14.70%    1,071    30.49%      372     14.82% 

次のスクリプトを使用してサンプル15-Cを作成します。

{ // Declare some of the Calculated Rows to be used
  CALCULATE ROW "Avg~Budget" OFF
  CALCULATE ROW "Avg~Actual" OFF
  CALCULATE ROW "Tot Sales~Budget" OFF
  CALCULATE ROW "Tot Sales~Actual" OFF
}
// We need the values of Market->Visual->Qtr1->Sales->Actual and
// Market ->Visual->Qtr1->Sales ->Budget to compute some 
// percentages at the bottom, so get them now

Market
<CHILDREN Visual Qtr1 Sales
{ SAVEROW "Actual Sales" } Actual  // stores into first 3
                           // data columns
{ SAVEROW "Budget Sales" } Budget                                                 // of these rows, which
                           // are cols 1-3
                           // change to columns 2-4 when we
                           // specify 2 row dimensions in
                           // next section
// Since this is an example, not a formal report, we'll
// type out the values for Actual Sales and Budget Sales here so
// you can check the numbers:

{ SKIP 2
TEXT 0 "Actual Total Sales for the 3 Video Products in Qtr1:" 55 "*CALC" "Actual Sales"
TEXT 0 "Budget Total Sales for the 3 Video Products in Qtr1:" 55 "*CALC" "Budget Sales"
UCHARACTERS
SKIP 5 }
    !                      // Now we can do the main report
{ AFTER "%" 3,5,7  DECI 2 3,5,7 ZEROTEXT "--" MISSING "--" 
  WIDTH 10 0 1  }

<PAGE(Year)
Qtr1
                <COLUMN(Product,Accounts)
                <CHILDREN Visual
                Profit     // split these 2 accounts onto
                           // 2 lines to prevent default
                Profit_%   // to asymmetric mode
                           // because both column 
                           // dimensions have the same # of
                           // members selected. Could have 
                           // used <SYM instead.
<ROW(Market,Scenario)
<ONSAMELEVELAS New_York
            { SETROWOP "Avg~Actual" OFF
              SETROWOP "Avg~Budget" + 

              CALCULATE ROW "Count" = "Count" + 1.   }

            Budget 

            { SETROWOP "Avg~Budget" OFF
              SETROWOP "Avg~Actual" +           }

           >{ SKIP }

            Actual

{ UCOLUMNS SKIP 2 }
{
  // at this point, Avg~Budget and Avg~Actual ARE NOT YET
  // AVERAGES--they are the SUM of the Profit rows of each type.
  // Before converting them to averages, the report computes
  // Profit as a % of total sales for each type. Since we only
  // have 1 value for "Budget Sales" and "Actual Sales",
  // for each of the three visual products in those
  // rows, the report restricts the reference to those rows to
  // columns 2-4 while computing the percentage columns 3, 5, and 7,
  // based on profits in columns 2, 4 and 6
  // calculate the percentages for Budget
CALCULATE ROW "Avg~Budget" 3 = "Avg~Budget" 2 % "Budget Sales" 2
CALCULATE ROW "Avg~Budget" 5 = "Avg~Budget" 4 % "Budget Sales" 3
CALCULATE ROW "Avg~Budget" 7 = "Avg~Budget" 6 % "Budget Sales" 4

  // now calculate the averages
CALCULATE ROW "Avg~Budget" 2  = "Avg~Budget" / "Count"
CALCULATE ROW "Avg~Budget" 4  = "Avg~Budget" / "Count"
CALCULATE ROW "Avg~Budget" 6  = "Avg~Budget" / "Count"

  // calculate the percentages for Actual
CALCULATE ROW "Avg~Actual" 3 = "Avg~Actual" 2 % "Actual Sales" 2
CALCULATE ROW "Avg~Actual" 5 = "Avg~Actual" 4 % "Actual Sales" 3
CALCULATE ROW "Avg~Actual" 7 = "Avg~Actual" 6 % "Actual Sales" 4

  // now calculate the averages
CALCULATE ROW "Avg~Actual" 2  = "Avg~Actual" / "Count"
CALCULATE ROW "Avg~Actual" 4  = "Avg~Actual" / "Count"
CALCULATE ROW "Avg~Actual" 6  = "Avg~Actual" / "Count"

TEXT C "Total Regions Averages"
PRINTROW "Avg~Budget"
PRINTROW "Avg~Actual" }
    !