Graph Add Wks Table
Version Info
Minimum Origin Version Required: Origin 8 SR0
Need to do before Running Examples
Prior to running the following example, the graph_utils.c file need to be loaded and compiled. This can be done from script with the following command or just add this file to your workspace.
run.LoadOC(Originlab\graph_utils.c);
Example
#include <..\Originlab\graph_utils.h>
void graph_add_table()
{
GraphPage gp;
gp.Create("Origin");
GraphLayer gl = gp.Layers(); // get active layer
// 1. create table worksheet
Worksheet wks;
wks.Create("Table", CREATE_HIDDEN); // create hidden worksheet with "Table" template
WorksheetPage wp = wks.GetPage();
wp.Rename("Table1");
// 2. set table size and fill in text; add table as link to graph
wks.SetSize(3, 2);
wks.SetCell(0, 0, "1");
wks.SetCell(0, 1, "Layer 1");
wks.SetCell(1, 0, "2");
wks.SetCell(1, 1, "Layer 2");
wks.SetCell(2, 0, "3");
wks.SetCell(2, 1, "Layer 3");
GraphObject grTable = gl.CreateLinkTable(wp.GetName(), wks);
// 3. arrange size and position of table
// get the position of graph layer
int Unit;
double dLeft, dTop, dRight, dBottom;
layer_get_position(gl, &dLeft, &dTop, &dRight, &dBottom, &Unit);
// convert unit to Inch
vector xx(4);
xx[0] = dRight - dLeft; //width
xx[1] = dBottom - dTop; //height
xx[2] = dLeft;
xx[3] = dTop;
gl.UnitsConvert(M_INCH, xx, Unit);// convert value in xx to Inch unit
// change Left and Top according to layer 3
double grLeft = xx[2] + 0.1; // left of layer 3 + 0.1 Gap
double grTop = xx[3]; // top of layer 3
Tree tr;
tr.Root.Dimension.Left.dVal = grLeft;
tr.Root.Dimension.Top.dVal = grTop;
tr.Root.Dimension.Units.nVal = 0; // 0: inch
if( 0 == grTable.UpdateThemeIDs(tr.Root) )
grTable.ApplyFormat(tr.Root, true, true);
}
|