操作にアクセスする


すべての操作のリスト

列の統計や非線形曲線フィットなど、多くのダイアログにある再計算分析ツールは、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);