列の統計や非線形曲線フィットなど、多くのダイアログにある再計算分析ツールは、Operationクラスに基づいています。操作全体が完了したら、結果シートまたは結果グラフに錠前アイコンが現れます。すべての操作を Project::Operationsを使って、一覧表示することができます。次のコードは、すべての操作を取得し、操作の名前を印刷するのに使うことができます。
OperationManager opManager; opManager = Project.Operations; int count = opManager.GetCount(); for(int index=0; index < count; index++) { OperationBase& op = opManager.GetOperation(index); string strName = op.GetName(); out_str(strName); }
ワークシートが結果テーブルのシートであるかどうかをチェックする場合、次のコードのようにレイヤシステムパラメータを使ってチェックすることができます。
Worksheet wks = Project.ActiveLayer(); bool bHierarchySheet = (wks.GetSystemParam(GLI_PCD_BITS) & WP_SHEET_HIERARCHY); if( bHierarchySheet ) out_str("This is a report table sheet"); else out_str("This is not a report table sheet");
次のコードは、レポートシートからレポートツリーを取得し、レポートツリーから得られる結果を文字フォーマットにリンクしたセルに変換し、新しいワークシートに配置する方法を示しています。
これはレポートシートからレポートツリーを取得する方法です。このコードを実行するには、レポートシートをアクティブにする必要があります。
Worksheet wks = Project.ActiveLayer(); Tree trResult; wks.GetReportTree(trResult);
次のコードは、レポートツリーから必要な結果を取得し、それらを文字フォーマットにリンクしたセルに変換し、新しく作成したワークシートに配置する方法を示しています。
// サマリー表に新しいシートを追加 WorksheetPage wksPage = wks.GetPage(); int index = wksPage.AddLayer(); Worksheet wksSummary = wksPage.Layers(index); string strCellPrefix; strCellPrefix.Format("cell://%s!", wks.GetName()); vector<string> vsLabels, vsValues; // パラメータ vsLabels.Add(strCellPrefix + "Parameters.Intercept.row_label2"); vsValues.Add(strCellPrefix + "Parameters.Intercept.Value"); vsLabels.Add(strCellPrefix + "Parameters.Slope.row_label2"); vsValues.Add(strCellPrefix + "Parameters.Slope.Value"); // 統計 vsLabels.Add(strCellPrefix + "RegStats.DOF.row_label"); vsValues.Add(strCellPrefix + "RegStats.C1.DOF"); vsLabels.Add(strCellPrefix + "RegStats.SSR.row_label"); vsValues.Add(strCellPrefix + "RegStats.C1.SSR"); // 列に配置 Column colLabel(wksSummary, 0); Column colValue(wksSummary, 1); colLabel.PutStringArray(vsLabels); colValue.PutStringArray(vsValues);