?? mainform.cs
字號:
string[] anArray = new string[values.Count];
for ( int i = 0; i < values.Count; i ++ )
anArray[i] = values[i].ToString();
return anArray;
}
/// <summary>
/// ListView甫 Initialize茄促.
/// </summary>
/// <param name="bSet"></param>
/// <param name="LView"></param>
public void InitListView( bool bSet, ListView LView){
if ( bSet == true ){
LView.Clear();
LView.FullRowSelect = true;
LView.GridLines = true;
LView.TabIndex = 0;
LView.View = System.Windows.Forms.View.Details;
}
else{
LView.Clear();
LView.FullRowSelect = false;
LView.GridLines = false;
LView.TabIndex = 0;
LView.View = System.Windows.Forms.View.Details;
}
}
/// <summary>
/// 拌魂竅扁 !!!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public bool LoadData(Excel.Worksheet worksheet, string fileName, ProgressBar progressbar,out ClusterLibrary.Data mData) {
// 肺漠 函薦
int i = 2;
int nPointDim = 1;
int nSets = (int) this.numericUpDownSetNumber.Value ;
// 霉 扼牢闌 佬綽促. 撈錠 null 撈 唱坷擱 拌魂 竅瘤 臼絆 場辰促.
Excel.Range range = worksheet.get_Range("A"+i.ToString(), "IV" + i.ToString());
System.Array myvalues = (System.Array)range.Cells.Value;
if ( myvalues.GetValue(1,1) == null ){
mData = null;
return false;
}
progressbar.PerformStep();
// Data甫 積己
mData = new ClusterLibrary.Data ( nSets );
progressbar.PerformStep();
// Point甫 唱鷗郴綽 Dimension狼 骯薦甫 歷厘
for ( ; myvalues.GetValue(1,nPointDim) != null ; nPointDim ++ );
// Dimension狼 骯薦焊促 nSets啊 歹 目檔 拌魂 竅瘤 臼絆 場辰促.
// TODO: 辟葷茄 俊礬 皋技瘤甫 焊郴芭唱 拌魂 傾儈 何盒俊輯 撈 何盒籃 鞘磐傅 且 薦 樂霸 秦具等促.
if ( nSets + 1 >= nPointDim ) return false;
// data甫 烙矯肺 歷厘且 array 函薦 急攫
int[] temp_set_info = new int[nSets];
double[] temp_point_info = new double[nPointDim - nSets - 2];
progressbar.PerformStep();
// Data甫 皋葛府俊 棵赴促.
while (true) {
// Cluster Info甸闌 免仿茄促.
try{
for ( int j = 2; j < 2 + nSets ; j ++ ){
temp_set_info[j - 2] = (System.Int32.Parse(myvalues.GetValue(1,j).ToString()) );
}
// Point狼 Dimension Info甸闌 免仿茄促.
for ( int j = 2 + nSets; j < nPointDim ; j ++ ){
temp_point_info[j - 2 - nSets] = ( System.Double.Parse(myvalues.GetValue(1,j).ToString()) );
}
}
catch( System.Exception e ){
Console.WriteLine( e.StackTrace );
Console.WriteLine( e.ToString() );
MessageBox.Show( "Set 骯薦甫 瀝犬灑 汲瀝秦 林絞矯夸. Set 骯薦啊 嘎瘤 臼嚼聰促." );
mData.ClearAll();
mData = null;
System.GC.Collect();
return false;
}
i++;
mData.AddPoint( temp_set_info, temp_point_info );
range = worksheet.get_Range("A"+i.ToString(), "IV" + i.ToString());
myvalues = (System.Array)range.Cells.Value;
if ( myvalues.GetValue(1,1) == null ){
break;
}
}
return true;
}
public ArrayList CalculateGDI ( ClusterLibrary.Data TotalData, ProgressBar ValidateProgressBar ){
ArrayList GDIResults;
ArrayList GDIResultsSet = new ArrayList();
ClusterLibrary.Set aSet;
ValidateProgressBar.Step = 100 / TotalData.Count();
for ( int i = 0; i < TotalData.Count(); i ++ ){
ValidateProgressBar.PerformStep();
aSet = TotalData[i];
GDIResults = ClusterLibrary.GDICore.ValidityIndex( aSet );
GDIResultsSet.Add ( GDIResults );
}
return GDIResultsSet;
}
public ArrayList CalculateDBI ( ClusterLibrary.Data TotalData, ProgressBar ValidateProgressBar ){
int q;
int t;
double result = 0.0;
ArrayList DBIResultsSet = new ArrayList();
ArrayList DBIResults;
string aTreeNodeString;
ClusterLibrary.Set aSet;
foreach ( TreeNode aTreeNode in this.treeViewDBI.Nodes ){
DBIResults = new ArrayList();
aTreeNodeString = aTreeNode.Text;
DBIResults.Add( aTreeNodeString );
string[] qAndt = aTreeNodeString.Split(',');
q = System.Convert.ToInt32 ( qAndt[0] );
t = System.Convert.ToInt32 ( qAndt[1] );
for ( int j = 0; j < TotalData.Count(); j ++ ) {
aSet = (ClusterLibrary.Set)TotalData[j];
result = ClusterLibrary.DBICore.calculateDBI( aSet, q, t );
DBIResults.Add( result );
}
DBIResultsSet.Add( DBIResults );
}
return DBIResultsSet;
}
/// <summary>
/// SDI 藹闌 拌魂竅綽 竊薦
/// </summary>
/// <param name="TotalData"></param>
/// <param name="ValidateProgressBar"></param>
/// <returns></returns>
public ArrayList CalculateSDI ( ClusterLibrary.Data TotalData, ProgressBar ValidateProgressBar ){
// Set狼 骯薦
int nSets = (int)this.numericUpDownSetNumber.Value;
// SDI 搬苞啊 歷厘瞪 ArrayList
ArrayList SDIResults = new ArrayList();
// SDI 拌魂 葛碘撈 甸絹樂綽 Class
ClusterLibrary.SDICore SDI = new ClusterLibrary.SDICore();
double SDIResult = 0.0;
ValidateProgressBar.PerformStep();
// 努礬膠磐 薦啊 啊厘 農霸 唱床柳 Set闌 措澇茄促
SDI.SetA( TotalData[nSets - 1] );
ValidateProgressBar.PerformStep();
// 阿 Set甸狼 SDI甫 拌魂茄促
for ( int j = 0; j < nSets; j ++ ){
SDIResult = SDI.SDI( TotalData[j]);
SDIResults.Add( SDIResult );
}
// 搬苞甫 府畔茄促
return SDIResults;
}
public void DIsplayGDIResults ( ArrayList GDIResultsSet, ProgressBar ValidateProgressBar ){
ValidateProgressBar.PerformStep();
int nSets = (int)this.numericUpDownSetNumber.Value;
this.listViewGDIResult.Columns.Add( " (inter, intra ) ", 100, System.Windows.Forms.HorizontalAlignment.Center );
ValidateProgressBar.PerformStep();
for ( int i = 1; i <= nSets ; i ++ ){
ColumnHeader headColumn = (ColumnHeader)this.listViewRawData.Columns[i].Clone();
this.listViewGDIResult.Columns.Add( headColumn );
}
ValidateProgressBar.PerformStep();
for ( int i = 0; i < 18; i ++ ){
string[] strArray = new string[nSets + 1];
strArray[0] = String.Format("( {0}, {1} )", (i%6) + 1 , (i/6) + 1 );
for ( int j = 0; j < nSets; j ++ ){
strArray[j+1] = ((ArrayList)GDIResultsSet[j])[i].ToString();
}
this.listViewGDIResult.Items.Add( new ListViewItem( strArray ) );
}
ValidateProgressBar.PerformStep();
}
public void DIsplayDBIResults ( ArrayList DBIResultsSet, ProgressBar ValidateProgressBar ){
ValidateProgressBar.PerformStep();
int nSets = (int)this.numericUpDownSetNumber.Value;
// Column狼 骯薦甫 瀝竊 ( 霉鍋擄 臨 ), Column Header甫 厘僥
ValidateProgressBar.PerformStep();
this.listViewDBIResult.Columns.Add( " Q and T ", 100, System.Windows.Forms.HorizontalAlignment.Center );
ValidateProgressBar.PerformStep();
for ( int i = 1; i <= nSets ; i ++ ){
ColumnHeader headColumn = (ColumnHeader)this.listViewRawData.Columns[i].Clone();
this.listViewDBIResult.Columns.Add( headColumn );
}
ValidateProgressBar.PerformStep();
foreach ( ArrayList DBIResults in DBIResultsSet ){
string[] strArray = this.ConvertToStringArray( DBIResults );
this.listViewDBIResult.Items.Add( new ListViewItem( strArray ) );
}
ValidateProgressBar.PerformStep();
}
public void DIsplaySDIResults ( ArrayList SDIResults, ProgressBar ValidateProgressBar ){
ValidateProgressBar.PerformStep();
int nSets = (int)this.numericUpDownSetNumber.Value;
for ( int i = 1; i <= nSets ; i ++ ){
ColumnHeader headColumn = (ColumnHeader)this.listViewRawData.Columns[i].Clone();
this.listViewSDIResult.Columns.Add( headColumn );
}
string[] strArray = this.ConvertToStringArray( SDIResults );
this.listViewSDIResult.Items.Add( new ListViewItem( strArray ) );
}
public void ClearResultListView ( ProgressBar ValidateProgressBar ){
// 搬苞甫 釬矯竅綽 list viwe甫 檬扁拳 茄促
ValidateProgressBar.Step = 30;
this.InitListView( true, this.listViewDBIResult );
ValidateProgressBar.PerformStep();
this.InitListView( true, this.listViewGDIResult );
ValidateProgressBar.PerformStep();
this.InitListView( true, this.listViewSDIResult );
ValidateProgressBar.PerformStep();
ValidateProgressBar.Step = 3;
}
private void buttonSave_Click(object sender, System.EventArgs e) {
SaveForm aSaveForm = new SaveForm(
this,
this.textBoxOpenFile.Text.TrimEnd('.','x','l','s'),
this.checkBoxGDI.Checked,
this.checkBoxDBI.Checked,
this.checkBoxSDI.Checked );
aSaveForm.ShowDialog();
}
public void SaveFiles( string GDISaveFileName, string DBISaveFileName, string SDISaveFileName, ProgressBar progressbar ){
if ( this.checkBoxGDI.Checked == true )
this.SaveResultSheet( this.listViewGDIResult, GDISaveFileName, progressbar );
if ( this.checkBoxDBI.Checked == true )
this.SaveResultSheet( this.listViewDBIResult, DBISaveFileName, progressbar );
if ( this.checkBoxSDI.Checked == true )
this.SaveResultSheet( this.listViewSDIResult, SDISaveFileName, progressbar );
}
private void SaveResultSheet ( ListView listView, string fileName, ProgressBar progressbar ){
progressbar.PerformStep();
try{
if (this.objExcel == null )
return;
Excel.Workbooks workbooks = this.objExcel.Workbooks;
Excel._Workbook workbook = workbooks.Add( Excel.XlWBATemplate.xlWBATWorksheet );
Excel.Sheets sheets = workbook.Worksheets;
Excel._Worksheet worksheet = (Excel._Worksheet) sheets.get_Item(1);
if (worksheet == null ){
MessageBox.Show("Error: worksheet == null");
}
progressbar.PerformStep();
Excel.Range range1 = worksheet.get_Range("A1", "IV1");
if (range1 == null){
MessageBox.Show("Error: range == null");
}
// ListView ColumnHeader甫 Excel俊 持綽促.
int columnHeader_Count = listView.Columns.Count;
progressbar.Maximum = progressbar.Maximum + columnHeader_Count;
for ( int j = 1; j <= columnHeader_Count ; j ++ ){
range1.Cells.set_Item(1, j, listView.Columns[j - 1].Text );
progressbar.PerformStep();
}
// ListView狼 Item闌 Excel俊 持綽促
int item_Count;
ListViewItem item;
int column_Count = listView.Items.Count;
progressbar.Maximum = progressbar.Maximum + column_Count;
progressbar.PerformStep();
for (int i = 1; i <= listView.Items.Count ; i++){
progressbar.PerformStep();
item = listView.Items[i - 1];
item_Count = item.SubItems.Count;
progressbar.Maximum = progressbar.Maximum + item_Count;
for ( int j = 1; j <= item.SubItems.Count ; j ++){
progressbar.PerformStep();
range1.Cells.set_Item(i + 1, j,item.SubItems[j - 1].Text);
}
}
try{
// Excel 郴儈闌 拳老俊 歷厘茄促
workbook.Close(true, fileName, false);
progressbar.PerformStep();
workbooks.Close();
progressbar.PerformStep();
}
catch( System.Exception e ){
System.Windows.Forms.MessageBox.Show( " 歷厘闌 秒家竅看嚼聰促" );
return;
}
}
catch( System.Exception e ){
System.Windows.Forms.MessageBox.Show ( " 促瀾苞 鞍籃 俊礬啊 慣積竅咯 歷厘撈 角菩竅看嚼聰促.\n" + e.ToString());
return;
}
// 歷厘撈 場車促綽 皋技瘤甫 焊牢促
System.Windows.Forms.MessageBox.Show (this, fileName + "甫 歷厘竅看嚼聰促" );
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -