EssGBeginZoomIn

Begins a zoom-in.

Syntax

ESSG_FUNC_M EssGBeginZoomIn (hGrid, usCells, pZoomCells, ulOptions);
ParameterData TypeDescription

hGrid

ESSG_HGRID_T

Handle passed back from EssGNewGrid.

usCells

ESSG_USHORT_T

A count of the number of cell ranges in pZoomCells (the size of array).

pZoomCells

ESSG_RANGE_T

Describes the cells to be zoomed in upon. This is a one-dimensional array of cell ranges.

ulOptions

ESSG_ULONG_T

A bitmask which describes the type of zoom-in (across or down) and the level of the zoom. The following two values are mutually exclusive:

  • ESSG_ZOOM_DOWN—Any page/title dimensions selected will be zoomed down

  • ESSG_ZOOM_ACROSS—Any page dimensions selected will be zoomed across

The following level values for ulOptions are themselves mutually exclusive:

  • ESSG_NEXTLEVEL—Children

  • ESSG_ALLLEVELS—All members

  • ESSG_BOTTOMLEVEL—Bottom level

  • ESSG_SIBLEVEL—Sibling level

  • ESSG_SAMELEVEL—Same level

  • ESSG_SAMEGENERATION—Same generation

  • ESSG_CALCLEVEL—Calculation

  • ESSG_OPTIONS—Use setting for grid options

Use bitwise OR (|) to specify the ulOptions; for example, ESSG_ZOOM_DOWN | ESSG_NEXTLEVEL

Notes

The cells to be zoomed in upon are described by a one-dimensional array of cell ranges.

Return Value

If successful, returns ESSG_STS_NOERR.

Access

None.

Example

ESSG_VOID_T ESSG_BeginZoomIn (ESSG_HGRID_T hGrid)
{
  ESSG_FUNC_M    sts = ESS_STS_NOERR;
  ESSG_PPDATA_T        ppDataIn;
  ESSG_PPDATA_T        ppDataOut;
  ESSG_RANGE_T         rDataRangeIn, rDataRangeOut;
  ESSG_ULONG_T         ulOptions;
  ESSG_USHORT_T        usCells;
  ESSG_RANGE_T         pZoomCells;
  ESSG_USHORT_T        usState;

  /* connect the grid to a database on the server */
  sts = EssGConnect(hGrid, "Rainbow", "Admin", 
        "Password", "Demo", "Basic", ESSG_CONNECT_DEFAULT);

  if(sts == 0)
  {
     ppDataIn = BuildTable(&rDataRangeIn); 
     
     ulOptions = ESSG_ZOOM_DOWN | ESSG_ALLLEVELS;
     
     pZoomCells.ulRowStart = 0;
     pZoomCells.ulColumnStart = 2;
     pZoomCells.ulNumRows = 1;
     pZoomCells.ulNumColumns = 1;
     usCells = 1;
     
     /* start the zoom in operation */
     sts = EssGBeginZoomIn(hGrid, usCells, &pZoomCells, ulOptions);
  }

  if(sts == 0)
  {
     /* send the entire grid to define the query */
     sts = EssGSendRows(hGrid, &rDataRangeIn,       
           ppDataIn);
  }

  if(sts == 0)
  {
     /* perform the zoom-in */
     sts = EssGPerformOperation(hGrid, 0);

     /* Free the built data */
     FreeTwoDim(ppDataIn, rDataRangeIn.ulNumRows);
  }

if (sts == 0)
  {
     /* determine the results of the zoom-in */
     sts = EssGGetResults(hGrid, 0, &rDataRangeOut, 
           &usState);
  }

  if(sts ==0)
  {
     /* get all the data */
     sts = EssGGetRows(hGrid, 0, &rDataRangeOut, 
           &rDataRangeOut, &ppDataOut);
  }
   
  if(sts == 0)
  {
     DisplayOutput(ppDataOut, rDataRangeOut);   
     /* Free the returned data */
     EssGFreeRows(hGrid, &rDataRangeOut, ppDataOut);
  }
    
  if( !sts)
  {
  EssGEndOperation(hGrid, 0);
  EssGDisconnect(hGrid, 0);
  }
}

See Also