Minimum Origin Version Required: Origin 8 SR0
In the active worksheet page, list all the worksheets in the listbox, After selecting the workswheet, all the columns of the selected worksheet will list in the second listbox.
#include <GetNbox.h> void Get_worksheet_column() { GETN_BOX(trRoot) // construct a GetN_Box name "trRoot" // list box GETN_LIST(wks, "Worksheet", 0, "A") // list box GETN_LIST(col, "Column", 0, "B") if( GetNBox(trRoot, node_event, "Example", NULL, GetWindow()) ) return; } int node_event(TreeNode& trRoot, int nRow, int nEvent, DWORD& dwEnables, LPCSTR lpcszNodeName, WndContainer& getNContainer, string& strAux, string& strErrMsg) { if( GETNE_ON_INIT == nEvent ) { WorksheetPage pg = Project.Pages(); //Get the active page if ( !pg ) //Check if the worksheet page exists return 0; vector<string> saNames; foreach(Layer ly in pg.Layers) { string strName; ly.GetName(strName); //Get worksheet name saNames.Add(strName); //Add worksheet name to string array } string str; str.SetTokens(saNames, '|'); //Copy a string array to a str trRoot.wks.SetAttribute(STR_COMBO_ATTRIB, str);//Show worksheet name in the listbox } if( GETNE_ON_INIT == nEvent || 0 == lstrcmp(lpcszNodeName, "wks") ) { WorksheetPage pg = Project.Pages(); //Get the active page if ( !pg ) return 0; Worksheet wks = pg.Layers(trRoot.wks.nVal); vector<string> saNamescol; foreach(Column cc in wks.Columns) { string strNamecol, strDesig; strNamecol = cc.GetLongName(); //Get columnn longname if ( strNamecol.IsEmpty() ) cc.GetName(strNamecol); int nType = cc.GetType(); //Get columns designations switch ( nType ) { case OKDATAOBJ_DESIGNATION_X: strDesig = 'X'; break; case OKDATAOBJ_DESIGNATION_Y: strDesig = 'Y'; break; case OKDATAOBJ_DESIGNATION_Z: strDesig = 'Z'; break; case OKDATAOBJ_DESIGNATION_NONE: strDesig = "None"; break; case OKDATAOBJ_DESIGNATION_ERROR: strDesig = "YErr"; break; case OKDATAOBJ_DESIGNATION_L: strDesig = 'L'; break; case OKDATAOBJ_DESIGNATION_X_ERROR: strDesig = "XErr"; break; } saNamescol.Add(strNamecol + " (" + strDesig + ")"); } string str2; str2.SetTokens(saNamescol, '|'); trRoot.col.SetAttribute(STR_COMBO_ATTRIB, str2); } return 0; }