Marking row 를 Developer C# API 로 구현
Key Point 1. IndexSet(Int32,Boolean)
(1) IndexSet 란 : 선택해야하는 row 인덱스를 포함하고 있는 index Set 이다.
: Int32 -> capacity
Boolean -> 모든 인덱스의 현재 마킹상태를 초기화
true = marking check
false = marking uncheck
===========================================================================================
// 8. function 실행
function.Execute(delegate
{
// Since we will access the document we must execute on the application thread.
ApplicationThread applicationThread = document.Context.GetService<ApplicationThread>();
applicationThread.Invoke(
delegate
{
// Make sure the data table was succesfully generated so we can create the resulting page.
if (document.Data.Tables.Contains(outputDT[0]))
{
document.Transactions.ExecuteTransaction(
delegate
{
Page page = commonManager.VisualizetionMethod.CreatePage(document, commonManager.PageMethod.IsExistSameDataTableName(PromptModel.Name, document.Pages));
TablePlot sumTablePlot = commonManager.VisualizetionMethod.CreateSumTableForTwoWayAnova(analysisApp, document, page, outputDT[0]);
TablePlot resultTablePlot = commonManager.VisualizetionMethod.CreateAovTableForTwoWayAnova(analysisApp, document, page,outputDT[1]);
// BoxPlot responseScatterPlot = commonManager.VisualizetionMethod.CreateBoxPlot(analysisApp, document,page,dicInputParameter[0].Name);
//ScatterPlot residualsScatterPlot = visual.CreateResidualsVsFittedScatterPlot(analysisApp, document, page);
commonManager.VisualizetionMethod.TwoWayAnovaLayoutSetting(analysisApp, sumTablePlot,resultTablePlot);
// Marking 을위함
int rowCount = document.Data.Tables[outputDT[0]].RowCount;
DataMarkingSelection marking = sumTablePlot.Data.MarkingReference;
IndexSet indexSetTrue = new IndexSet(rowCount, true);
DataValueCursor cursor = DataValueCursor.CreateFormatted(document.Data.Tables[outputDT[0]].Columns[0]);
IEnumerable<DataRow> rowEnumer= document.Data.Tables[outputDT[0]].GetRows(indexSetTrue, cursor);
for (int i = 0; rowEnumerator.MoveNext();i++ )
{
DataRow row = rowEnumerator.Current;
if (row.Index>0)
{
indexSetTrue[row.Index] = false;
}
}
marking.SetSelection(new RowSelection(indexSetTrue), document.Data.Tables[outputDT[0]]);
});
transaction.Commit(); // We are done and commit the transaction.
}
else
{
// The expected output data table doesn't exist. We roll back the transaction.
transaction.Rollback();
}
}); //END applicationThread.Invoke...
}); //END function.Execute(delegate...
댓글 없음:
댓글 쓰기