using OTSCommon.Model;
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()
{
//获取field信息
string sql = "select fieldid,fieldposx,fieldposy from field ";//select fieldid,fieldposx,fieldposy from field
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";
string sqlp = "select * from IncAData ";
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" + DT.Rows[i]["FieldId"].ToString() + ".bmp";
Field modelf = new Field() { FieldID = Convert.ToInt32(DT.Rows[i]["FieldId"].ToString()), FieldPosX = Convert.ToInt32(DT.Rows[i]["fieldposx"].ToString()), FieldPosY = Convert.ToInt32(DT.Rows[i]["fieldposy"].ToString()), FieldImage = imagePath };
DataRow[] drp = DTP.Select("fieldid=" + DT.Rows[i]["FieldId"].ToString());
List listp = dbHelper.RowsToList(drp);
foreach (Particle modelp in listp)
{
//添加FeatureList信息
DataRow[] drs = DTS.Select("fieldid=" + DT.Rows[i]["FieldId"].ToString() + " and particleid=" + modelp.ParticleId.ToString());
List flist = dbHelper.RowsToList(drs);
modelp.SegmentList = flist;
//添加ElementList信息
DataRow[] dre = DTE.Select("fieldid=" + DT.Rows[i]["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";
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;
}
}
}