操作にアクセスする
すべての操作のリストOperation, List AllProject, List All Operations
列の統計や非線形曲線フィットなど、多くのダイアログにある再計算分析ツールは、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, Check If Hierarchy
ワークシートが結果テーブルのシートであるかどうかをチェックする場合、次のコードのようにレイヤシステムパラメータを使ってチェックすることができます。
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);
|