Minimum Origin Version Required: Origin 8 SR0
List all embedded graph pages in the active workbook, along with embedding information(Worksheet, Row, Column).
void get_embedded_graphs() { WorksheetPage wpg = Project.Pages(); if( wpg ) { foreach(Layer ly in wpg.Layers) { Worksheet wks = ly; foreach(Page pgEmbedded in wks.EmbeddedPages) { Worksheet wksTest; int nRow, nCol; bool bRet = pgEmbedded.GetEmbeddingInfo(wksTest, &nRow, &nCol); // TRUE if the object is embedded in a Datasheet, otherwise FALSE. if( bRet ) { printf("%s in [%s]%s!%s[%d:%d]\n", pgEmbedded.GetName(), wksTest.GetPage().GetName(), wks.GetName(), wks.Columns(nCol).GetName(), nRow+1, nRow+1); } } } } }
PageBase::GetEmbeddingInfo also can used to check if page is embedded by return value like below.
void page_is_embedded(string strGraph) { GraphPage gp(strGraph); if( !gp ) { out_str(strGraph + " is not a valid graph"); return; } if( gp.GetEmbeddingInfo() ) // TRUE if the object is embedded in a Datasheet, otherwise FALSE. { out_str(strGraph + " is embedded graph"); } else { out_str(strGraph + " is NOT embedded graph"); } }
// example to show how to create/update sparklines on all // columns on the current worksheet with alternating blue/red colors void sparkline_colors() { DWORD dwCntrl = EMBEDGRAPH_IN_LABELS | EMBEDGRAPH_HIDE_AXES | EMBEDGRAPH_HIDE_LEGENDS | EMBEDGRAPH_HIDE_SPECTRUMS | EMBEDGRAPH_HIDE_TEXT_OBJS | EMBEDGRAPH_SPARKLINE; Worksheet wks = Project.ActiveLayer(); if(!wks) return; //add this will require theme_utils.c to be added to workspace //int nRowHeight = 20 //wks_set_col_label_heights(wks, RCLT_SPARKLINE, nRowHeight, false); waitCursor hrGlass; for(int nC = 0; nC < wks.GetNumCols(); nC++) { if(wks.Columns(nC).GetType() != OKDATAOBJ_DESIGNATION_Y || is_col_all_text(wks, nC) > 0) continue; GraphPage gp; DataPlot dp = plot_col(wks, nC, gp, IDM_PLOT_LINE, true, "sparkline_label", true, 0); int ncolor = nC%2? SYSCOLOR_BLUE:SYSCOLOR_RED; dp.SetColor(ncolor); wks.EmbedGraph(RCLT_SPARKLINE, nC, gp, dwCntrl); } }