using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.IO;
namespace OTSIncAReportApp.DataOperation.DataAccess
{
public class FieldData
{
private SqlHelper dbHelper;
//private frmReportApp m_Report=null;
//测量文件地址
private string filePath;
public FieldData(string path)
{
dbHelper = new SqlHelper("data source='" + path + "\\FIELD_FILES\\Inclusion.db'");
filePath = path + "\\FIELD_FILES\\";
}
///
/// 获取SegmentList
///
/// Feature
///
public List GetFieldList(frmReportApp a_ReportApp)
{
//获取field信息
string sql = "select fieldid,fieldposx,fieldposy,SEMPosX,SEMPosY from IncAData group by fieldid,fieldposx,fieldposy";
DataTable DT = dbHelper.ExecuteDataTable(sql, null);
//获取Particle信息
string sqlp = "select a.*,b.XrayData from IncAData a left join XRayData b on a.FieldId =b.FieldId and a.XrayId= b.XrayIndex";
DataTable DTP = dbHelper.ExecuteDataTable(sqlp, null);
//获取Segment信息
string strs = @"select * from Segment ";
DataTable DTS = dbHelper.ExecuteDataTable(strs, null);
//获取Element信息
string sqle = @"select * from ElementChemistry ";
DataTable DTE = dbHelper.ExecuteDataTable(sqle, null);
List Fields = new List();
DirectoryInfo info = new DirectoryInfo(filePath);
int count = info.GetFiles("*.bmp").Length;
for (int i=0;i< count; i++)
{
string imagePath = filePath + "Field" + a_ReportApp.OriginalPoint.Rows[i]["ID"].ToString() + ".bmp";
Model.Field modelf = new Model.Field() { FieldID = Convert.ToInt32(a_ReportApp.OriginalPoint.Rows[i]["ID"].ToString()), FieldPosX = Convert.ToInt32(a_ReportApp.OriginalPoint.Rows[i]["FieldX"].ToString()), FieldPosY = Convert.ToInt32(a_ReportApp.OriginalPoint.Rows[i]["FieldY"].ToString()), FieldImage = imagePath };
DataRow[] drp = DTP.Select("fieldid=" + a_ReportApp.OriginalPoint.Rows[i]["ID"].ToString());
List listp = dbHelper.RowsToList(drp);
foreach (Model.Particle modelp in listp)
{
//添加FeatureList信息
DataRow[] drs = DTS.Select("fieldid=" + a_ReportApp.OriginalPoint.Rows[i]["ID"].ToString() + " and particleid=" + modelp.ParticleId.ToString());
List flist = dbHelper.RowsToList(drs);
modelp.FeatureList = flist;
//添加ElementList信息
DataRow[] dre = DTE.Select("fieldid=" + a_ReportApp.OriginalPoint.Rows[i]["ID"].ToString() + " and XRayId=" + modelp.XrayId.ToString());
List elist = dbHelper.RowsToList(dre);
modelp.ElementList = elist;
}
modelf.ParticleList = listp;
Fields.Add(modelf);
}
//foreach (DataRow dr in DT.Rows)
//{
// string imagePath = filePath + "Field" + dr["fieldid"].ToString() + ".bmp";
// Model.Field modelf = new Model.Field() { FieldID = Convert.ToInt32(dr["fieldid"]), FieldPosX = Convert.ToInt32(dr["fieldposx"]), FieldPosY = Convert.ToInt32(dr["fieldposy"]), FieldImage = imagePath };
// DataRow[] drp = DTP.Select("fieldid=" + dr["fieldid"].ToString());
// List listp = dbHelper.RowsToList(drp);
// foreach (Model.Particle modelp in listp)
// {
// //添加FeatureList信息
// DataRow[] drs = DTS.Select("fieldid=" + dr["fieldid"].ToString() + " and particleid=" + modelp.ParticleId.ToString());
// List flist = dbHelper.RowsToList(drs);
// modelp.FeatureList = flist;
// //添加ElementList信息
// DataRow[] dre = DTE.Select("fieldid=" + dr["fieldid"].ToString() + " and XRayId=" + modelp.XrayId.ToString());
// List elist = dbHelper.RowsToList(dre);
// modelp.ElementList = elist;
// }
// modelf.ParticleList = listp;
// Fields.Add(modelf);
//}
return Fields;
}
///
/// 获取SegmentDataTable
///
/// Feature
///
public DataTable GetGeneralInfo()
{
//存放查询数据的数据表
DataTable DT = null;
string sql = "select * from GeneralInfo";
DT = dbHelper.ExecuteDataTable(sql, null);
return DT;
}
///
/// 获取filed数量
///
/// Feature
///
public int GetFiledCount()
{
//存放查询数据的数据表
DataTable DT = null;
string sql = "select FieldId from Field group by FieldId";
DT = dbHelper.ExecuteDataTable(sql, null);
return DT.Rows.Count;
}
///
/// 获取颗粒数量
///
/// Feature
///
public int GetparticleCount()
{
//存放查询数据的数据表
DataTable DT = null;
string sql = "select 1 from IncAData";
DT = dbHelper.ExecuteDataTable(sql, null);
return DT.Rows.Count;
}
///
/// 获取所有的颗粒信息
///
///
public DataTable GetAllParticle_DataTable()
{
DataTable DT = null;
string sql = "select * from IncAData where typeid > 9";
DT = dbHelper.ExecuteDataTable(sql, null);
return DT;
}
///
/// 获取颗粒总面积
///
/// Feature
///
public int GetparticleArea()
{
//存放查询数据的数据表
DataTable DT = null;
string sql = "select sum(Area) from IncAData";
DT = dbHelper.ExecuteDataTable(sql, null);
return DT.Rows.Count > 0 ? Convert.ToInt32(DT.Rows[0][0]) : 0;
}
}
}